From ead46a33d6ceca97c5e9c369e1fdf7b8ddf39ac4 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Mon, 16 Aug 2010 17:14:13 +0000 Subject: [PATCH 001/165] [cage] reorganize and improve pod of Null PMC git-svn-id: https://svn.parrot.org/parrot/trunk@48525 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/null.pmc | 58 ++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/src/pmc/null.pmc b/src/pmc/null.pmc index ac0a73c017..e645b1d86a 100644 --- a/src/pmc/null.pmc +++ b/src/pmc/null.pmc @@ -11,10 +11,6 @@ src/pmc/null.pmc - NULL This simply creates a way of catching C register accesses without really slowing down the bytecode execution. -=head2 Methods - -=over 4 - =cut */ @@ -32,30 +28,14 @@ static void null_pmc_access(PARROT_INTERP, int index) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ -/* - -=item C - - - -=cut - -*/ - -PARROT_DOES_NOT_RETURN -static void -null_pmc_access(PARROT_INTERP, int index) -{ - ASSERT_ARGS(null_pmc_access) - Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_NULL_REG_ACCESS, - "Null PMC access in %s()", - Parrot_get_vtable_name(interp, index)); -} - pmclass Null singleton { /* +=head2 Vtable functions + +=over 4 + =item C Overrides the default to do nothing. @@ -102,9 +82,9 @@ Returns true if value is also a null PMC, false otherwise. =item C -=cut +Gives a more informative message than the automaticaly generated version. -Gives a more informative message than the automaticaaly generated version. +=cut */ @@ -120,6 +100,32 @@ Gives a more informative message than the automaticaaly generated version. =back +=head2 Auxiliar functions + +=over 4 + +=item C + +Throws the Null PMC access exception. + +=cut + +*/ + +PARROT_DOES_NOT_RETURN +static void +null_pmc_access(PARROT_INTERP, int index) +{ + ASSERT_ARGS(null_pmc_access) + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_NULL_REG_ACCESS, + "Null PMC access in %s()", + Parrot_get_vtable_name(interp, index)); +} + +/* + +=back + =cut */ From 52124f6cb7118821f8b581097a9489e407645eb3 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Mon, 16 Aug 2010 17:34:55 +0000 Subject: [PATCH 002/165] [cage] update headerizing git-svn-id: https://svn.parrot.org/parrot/trunk@48526 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/bigint.pmc | 1 - src/pmc/callcontext.pmc | 24 ------------------------ src/pmc/class.pmc | 10 ---------- src/pmc/eval.pmc | 6 ------ src/pmc/imageio.pmc | 16 ---------------- 5 files changed, 57 deletions(-) diff --git a/src/pmc/bigint.pmc b/src/pmc/bigint.pmc index 054dc5a214..cffbb5ffe8 100644 --- a/src/pmc/bigint.pmc +++ b/src/pmc/bigint.pmc @@ -699,7 +699,6 @@ bigint_sub_bigint(PARROT_INTERP, ARGIN(PMC *self), ARGIN(PMC *value), ARGMOD(PMC =item C - =cut */ diff --git a/src/pmc/callcontext.pmc b/src/pmc/callcontext.pmc index 253c966f1d..9cb3ddbb8d 100644 --- a/src/pmc/callcontext.pmc +++ b/src/pmc/callcontext.pmc @@ -157,8 +157,6 @@ static void mark_positionals(PARROT_INTERP, ARGIN(PMC *self)) =item C - - =cut */ @@ -182,8 +180,6 @@ ensure_positionals_storage(PARROT_INTERP, ARGIN(PMC *self), INTVAL size) =item C - - =cut */ @@ -227,8 +223,6 @@ ensure_positionals_storage_ap(PARROT_INTERP, =item C - - =cut */ @@ -248,8 +242,6 @@ get_cell_at(PARROT_INTERP, ARGIN(PMC *self), INTVAL key) =item C - - =cut */ @@ -281,8 +273,6 @@ autobox_intval(PARROT_INTERP, ARGIN(const Pcc_cell *cell)) =item C - - =cut */ @@ -314,8 +304,6 @@ autobox_floatval(PARROT_INTERP, ARGIN(const Pcc_cell *cell)) =item C - - =cut */ @@ -348,8 +336,6 @@ autobox_string(PARROT_INTERP, ARGIN(const Pcc_cell *cell)) =item C - - =cut */ @@ -388,8 +374,6 @@ autobox_pmc(PARROT_INTERP, ARGIN(Pcc_cell *cell), INTVAL type) =item C - - =cut */ @@ -420,8 +404,6 @@ get_hash(PARROT_INTERP, ARGIN(PMC *SELF)) =item C - - =cut */ @@ -451,8 +433,6 @@ mark_cell(PARROT_INTERP, ARGIN(Pcc_cell *c)) =item C - - =cut */ @@ -479,8 +459,6 @@ mark_positionals(PARROT_INTERP, ARGIN(PMC *self)) =item C - - =cut */ @@ -507,8 +485,6 @@ mark_hash(PARROT_INTERP, ARGIN(Hash *h)) =item C - - =cut */ diff --git a/src/pmc/class.pmc b/src/pmc/class.pmc index 80ade96284..af60dc88c6 100644 --- a/src/pmc/class.pmc +++ b/src/pmc/class.pmc @@ -191,8 +191,6 @@ static int pointer_compare(SHIM_INTERP, =item C - - =cut */ @@ -210,8 +208,6 @@ pointer_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a), =item C - - =cut */ @@ -228,8 +224,6 @@ key_hash_pointer(SHIM_INTERP, ARGIN(const void *value), size_t seed) =item C - - =cut */ @@ -489,8 +483,6 @@ init_class_from_hash(PARROT_INTERP, ARGMOD(PMC *self), ARGIN_NULLOK(PMC *info)) =item C - - =cut */ @@ -529,8 +521,6 @@ initialize_parents(PARROT_INTERP, ARGIN(PMC *object), ARGIN(PMC *all_parents)) =item C - - =cut */ diff --git a/src/pmc/eval.pmc b/src/pmc/eval.pmc index 9bc744844b..5e7aa0464f 100644 --- a/src/pmc/eval.pmc +++ b/src/pmc/eval.pmc @@ -57,8 +57,6 @@ static void mark_subs(PARROT_INTERP, ARGIN(PMC *self)) =item C - - =cut */ @@ -95,8 +93,6 @@ clear_fixups(PARROT_INTERP, ARGIN(const Parrot_Sub_attributes *sub_data)) =item C - - =cut */ @@ -141,8 +137,6 @@ get_sub(PARROT_INTERP, ARGIN(PMC *self), int idx) =item C - - =cut */ diff --git a/src/pmc/imageio.pmc b/src/pmc/imageio.pmc index 355187c443..6ebe15c380 100644 --- a/src/pmc/imageio.pmc +++ b/src/pmc/imageio.pmc @@ -127,8 +127,6 @@ static PMC * visit_todo_list_thaw(PARROT_INTERP, ARGIN(PMC* info)) =item C - - =cut */ @@ -150,8 +148,6 @@ GET_VISIT_CURSOR(ARGIN(const PMC *pmc)) =item C - - =cut */ @@ -171,8 +167,6 @@ SET_VISIT_CURSOR(ARGMOD(PMC *pmc), ARGIN(const char *cursor)) =item C - - =cut */ @@ -195,8 +189,6 @@ INC_VISIT_CURSOR(ARGMOD(PMC *pmc), UINTVAL inc) =item C - - =cut */ @@ -270,8 +262,6 @@ ensure_buffer_size(PARROT_INTERP, ARGIN(PMC *io), size_t len) =item C - - =cut */ @@ -290,8 +280,6 @@ INFO_HAS_DATA(ARGIN(const PMC *io)) =item C - - =cut */ @@ -311,8 +299,6 @@ id_list_get(PARROT_INTERP, ARGIN(const PMC *io), UINTVAL id) =item C - - =cut */ @@ -372,8 +358,6 @@ visit_todo_list_thaw(PARROT_INTERP, ARGIN(PMC* info)) =item C - - =cut */ From 7cb7ed6969c1922083fc2f34bba6978203591825 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Mon, 16 Aug 2010 18:37:12 +0000 Subject: [PATCH 003/165] fix and improve substr oob tests git-svn-id: https://svn.parrot.org/parrot/trunk@48527 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/op/string.t | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/t/op/string.t b/t/op/string.t index 0a1fe996d5..254e78d9f0 100644 --- a/t/op/string.t +++ b/t/op/string.t @@ -16,6 +16,8 @@ Tests Parrot string registers and operations. =cut +.include 'except_types.pasm' + .sub main :main .include 'test_more.pir' @@ -31,7 +33,7 @@ Tests Parrot string registers and operations. substr_tests() neg_substr_offset() exception_substr_oob() - exception_substr_oob() + exception_substr_oob_neg() len_greater_than_strlen() len_greater_than_strlen_neg_offset() replace_w_rep_eq_length() @@ -310,24 +312,42 @@ Tests Parrot string registers and operations. # This asks for substring that shouldn't be allowed... .sub exception_substr_oob + .local pmc eh + .local int r set $S0, "A string of length 21" - set $I0, -99 + set $I0, 99 set $I1, 6 - push_eh handler - substr $S1, $S0, $I0, $I1 -handler: - .exception_is( "Cannot take substr outside string" ) + eh = new ['ExceptionHandler'] + eh.'handle_types'(.EXCEPTION_SUBSTR_OUT_OF_STRING) + set_addr eh, handler + push_eh eh + r = 1 + + substr $S1, $S0, $I0, $I1 + r = 0 + handler: + pop_eh + is(r, 1, "substr outside string throws" ) .end # This asks for substring that shouldn't be allowed... -.sub exception_substr_oob +.sub exception_substr_oob_neg + .local pmc eh + .local int r set $S0, "A string of length 21" - set $I0, 99 + set $I0, -99 set $I1, 6 - push_eh handler - substr $S1, $S0, $I0, $I1 -handler: - .exception_is( "Cannot take substr outside string" ) + eh = new ['ExceptionHandler'] + eh.'handle_types'(.EXCEPTION_SUBSTR_OUT_OF_STRING) + set_addr eh, handler + push_eh eh + r = 1 + + substr $S1, $S0, $I0, $I1 + r = 0 + handler: + pop_eh + is(r, 1, "substr outside string throws - negative" ) .end # This asks for substring much greater than length of original string From dc60a4cd05c2007e8cfef3ec5ece237ca505ec69 Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Mon, 16 Aug 2010 18:42:50 +0000 Subject: [PATCH 004/165] eliminate useless var git-svn-id: https://svn.parrot.org/parrot/trunk@48528 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/packout.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/packout.c b/src/packout.c index 5fe01e5148..fa9e589c00 100644 --- a/src/packout.c +++ b/src/packout.c @@ -346,7 +346,6 @@ PackFile_Constant_pack(PARROT_INTERP, ASSERT_ARGS(PackFile_Constant_pack) PMC *key; size_t i; - STRING *image; *cursor++ = self->type; From 363dfc682a9d3da0440559982da1cb43fe64ce5e Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Mon, 16 Aug 2010 18:44:20 +0000 Subject: [PATCH 005/165] test for substr null string git-svn-id: https://svn.parrot.org/parrot/trunk@48529 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/op/string.t | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/t/op/string.t b/t/op/string.t index 254e78d9f0..e0964acf9e 100644 --- a/t/op/string.t +++ b/t/op/string.t @@ -32,6 +32,7 @@ Tests Parrot string registers and operations. three_argument_chopn__oob_values() substr_tests() neg_substr_offset() + exception_substr_null_string() exception_substr_oob() exception_substr_oob_neg() len_greater_than_strlen() @@ -310,6 +311,23 @@ Tests Parrot string registers and operations. is( $S1, "length", '' ) .end +.sub exception_substr_null_string + .local string s + .local pmc eh + .local int r + null s + eh = new ['ExceptionHandler'] + eh.'handle_types'(.EXCEPTION_SUBSTR_OUT_OF_STRING) + set_addr eh, handler + push_eh eh + r = 1 + substr s, s, 0, 0 + r = 0 + handler: + pop_eh + is(r, 1, "substr with null string throws" ) +.end + # This asks for substring that shouldn't be allowed... .sub exception_substr_oob .local pmc eh From 0e2210c600771f40a4f96f4a4ad09f11bc0128c1 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Tue, 17 Aug 2010 00:26:39 +0000 Subject: [PATCH 006/165] remove src/pmc/null.pmc from TODO list of pmc_docs.t git-svn-id: https://svn.parrot.org/parrot/trunk@48537 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/codingstd/pmc_docs.t | 1 - 1 file changed, 1 deletion(-) diff --git a/t/codingstd/pmc_docs.t b/t/codingstd/pmc_docs.t index b223cf1d6c..08b314bcdd 100644 --- a/t/codingstd/pmc_docs.t +++ b/t/codingstd/pmc_docs.t @@ -130,7 +130,6 @@ src/pmc/eval.pmc src/pmc/imageio.pmc src/pmc/namespace.pmc src/pmc/nci.pmc -src/pmc/null.pmc src/pmc/object.pmc src/pmc/sub.pmc src/pmc/threadinterpreter.pmc From 224acb5ab844d0baf8d6edb1756b74428ee5ba63 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 17 Aug 2010 00:58:36 +0000 Subject: [PATCH 007/165] [codingstd] Insert POD 'item' so that documentor will know where to add function documentation. git-svn-id: https://svn.parrot.org/parrot/trunk@48538 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/object.pmc | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/src/pmc/object.pmc b/src/pmc/object.pmc index c6391e8acc..95a3488861 100644 --- a/src/pmc/object.pmc +++ b/src/pmc/object.pmc @@ -85,6 +85,16 @@ static INTVAL get_attrib_index_keyed(PARROT_INTERP, /* This finds the index of an attribute in an object's attribute store and * returns it. Returns -1 if the attribute does not exist. */ +/* + +=item C + + + +=cut + +*/ + PARROT_WARN_UNUSED_RESULT static INTVAL get_attrib_index(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *name)) @@ -138,10 +148,17 @@ get_attrib_index(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *name)) return -1; } +/* + +=item C + +This variation bypasses the cache and finds the index of a particular +parent's attribute in an object's attribute store and returns it. +Returns C<-1> if the attribute does not exist. -/* This variation bypasses the cache and finds the index of a particular - * parent's attribute in an object's attribute store and returns it. Returns -1 - * if the attribute does not exist. */ +=cut + +*/ PARROT_WARN_UNUSED_RESULT static INTVAL @@ -176,6 +193,15 @@ get_attrib_index_keyed(PARROT_INTERP, ARGIN(PMC *self), ARGIN(PMC *key), ARGIN(S return -1; } +/* + +=item C + + + +=cut + +*/ PARROT_WARN_UNUSED_RESULT PARROT_CAN_RETURN_NULL @@ -192,6 +218,15 @@ find_cached(PARROT_INTERP, ARGIN(PMC *_class), ARGIN(STRING *name)) return VTABLE_get_pmc_keyed_str(interp, cache, name); } +/* + +=item C + + + +=cut + +*/ static void cache_method(PARROT_INTERP, ARGIN(PMC *_class), ARGIN(STRING *name), From c0e2876da04dd4265cd12d613df698ebf594e1ad Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 17 Aug 2010 01:06:16 +0000 Subject: [PATCH 008/165] [codingstd] Insert POD 'item' so that documentor will know where to add function documentation. git-svn-id: https://svn.parrot.org/parrot/trunk@48539 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/namespace.pmc | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/pmc/namespace.pmc b/src/pmc/namespace.pmc index 5bb181e675..399072f450 100644 --- a/src/pmc/namespace.pmc +++ b/src/pmc/namespace.pmc @@ -98,6 +98,18 @@ static int ns_insert_sub_keyed_str(PARROT_INTERP, /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ +/* + +=item C + + + +=cut + +*/ + static void add_to_class(PARROT_INTERP, ARGMOD(Parrot_NameSpace_attributes *nsinfo), ARGMOD_NULLOK(PMC *classobj), ARGIN(STRING *key), ARGIN(PMC *value)) @@ -120,6 +132,16 @@ add_to_class(PARROT_INTERP, ARGMOD(Parrot_NameSpace_attributes *nsinfo), } } +/* + +=item C + + + +=cut + +*/ + PARROT_WARN_UNUSED_RESULT static int ns_insert_sub_keyed_str(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *key), @@ -181,6 +203,16 @@ ns_insert_sub_keyed_str(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *key), return stored; } +/* + +=item C + + + +=cut + +*/ + PARROT_WARN_UNUSED_RESULT static int maybe_add_sub_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key), @@ -198,6 +230,16 @@ maybe_add_sub_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key), return 0; } +/* + +=item C + + + +=cut + +*/ + static void add_nci_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key), ARGIN_NULLOK(PMC *value)) @@ -216,6 +258,16 @@ add_nci_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key), } } +/* + +=item C + + + +=cut + +*/ + static void add_multi_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key), ARGIN_NULLOK(PMC *value)) From 4b8a2aa1f63b8707be2f53ec141b60400d204cfd Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 17 Aug 2010 01:09:57 +0000 Subject: [PATCH 009/165] [codingstd] Insert POD 'item' so that documentor will know where to add function documentation. git-svn-id: https://svn.parrot.org/parrot/trunk@48540 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/nci.pmc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/pmc/nci.pmc b/src/pmc/nci.pmc index 21defdd8da..f18bf9825d 100644 --- a/src/pmc/nci.pmc +++ b/src/pmc/nci.pmc @@ -49,6 +49,15 @@ static void pcc_params(PARROT_INTERP, /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ +/* + +=item C + + + +=cut + +*/ static void pcc_params(PARROT_INTERP, ARGIN(STRING *sig), ARGMOD(Parrot_NCI_attributes *nci_info), @@ -143,7 +152,15 @@ pcc_params(PARROT_INTERP, ARGIN(STRING *sig), ARGMOD(Parrot_NCI_attributes *nci_ mem_sys_free(sig_buf); } -/* actually build the NCI thunk */ +/* + +=item C + +Actually build the NCI thunk. + +=cut + +*/ PARROT_IGNORABLE_RESULT static nci_thunk_t From fc665fbdc5c241a06f270c6ebdfeb8c4291147a4 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 17 Aug 2010 01:12:07 +0000 Subject: [PATCH 010/165] [codingstd] Make POD item meet linelength standard. git-svn-id: https://svn.parrot.org/parrot/trunk@48541 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/nci.pmc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pmc/nci.pmc b/src/pmc/nci.pmc index f18bf9825d..daefa7e7b7 100644 --- a/src/pmc/nci.pmc +++ b/src/pmc/nci.pmc @@ -51,7 +51,8 @@ static void pcc_params(PARROT_INTERP, /* -=item C +=item C From 5a251d8ab1619fc7b4dbe34a8602dba1d9d477fd Mon Sep 17 00:00:00 2001 From: Andy Lester Date: Tue, 17 Aug 2010 02:01:28 +0000 Subject: [PATCH 011/165] Improve the diagnostics git-svn-id: https://svn.parrot.org/parrot/trunk@48542 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/codingstd/pir_code_coda.t | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/t/codingstd/pir_code_coda.t b/t/codingstd/pir_code_coda.t index 09de1a593d..cc4fd7a035 100644 --- a/t/codingstd/pir_code_coda.t +++ b/t/codingstd/pir_code_coda.t @@ -1,5 +1,5 @@ #! perl -# Copyright (C) 2006-2009, Parrot Foundation. +# Copyright (C) 2006-2010, Parrot Foundation. # $Id$ use strict; @@ -73,15 +73,13 @@ foreach my $file (@files) { if $vim_many > 1 || $emacs_many > 1; } -ok( !scalar(@no_coda), 'PIR code coda present' ) - or diag( "PIR code coda missing in " . scalar @no_coda . " files:\n@no_coda" ); - -ok( !scalar(@extra_coda), 'PIR code coda appears only once' ) - or diag( "PIR code coda repeating in " . scalar @extra_coda . " files:\n@extra_coda" ); +# If we use is_deeply, then the differences will show in the test output. +is_deeply( \@no_coda, [], 'PIR code coda present' ); +is_deeply( \@extra_coda, [], 'PIR code coda appears only once' ); # Local Variables: # mode: cperl # cperl-indent-level: 4 # fill-column: 100 # End: -# vim: expandtab shiftwidth=4: +# vim: expandtab shiftwidth=4 tabstop=4: From 705f67823809697e91706f31e9b187c16fe87915 Mon Sep 17 00:00:00 2001 From: Andy Lester Date: Tue, 17 Aug 2010 02:33:06 +0000 Subject: [PATCH 012/165] reran headerizer git-svn-id: https://svn.parrot.org/parrot/trunk@48543 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/namespace.pmc | 27 ++++++++++----------------- src/pmc/nci.pmc | 9 ++++----- src/pmc/object.pmc | 12 ++++-------- 3 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/pmc/namespace.pmc b/src/pmc/namespace.pmc index 399072f450..b1bb63006c 100644 --- a/src/pmc/namespace.pmc +++ b/src/pmc/namespace.pmc @@ -100,11 +100,8 @@ static int ns_insert_sub_keyed_str(PARROT_INTERP, /* -=item C - - +=item C =cut @@ -134,9 +131,8 @@ add_to_class(PARROT_INTERP, ARGMOD(Parrot_NameSpace_attributes *nsinfo), /* -=item C - - +=item C =cut @@ -205,9 +201,8 @@ ns_insert_sub_keyed_str(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *key), /* -=item C - - +=item C =cut @@ -232,9 +227,8 @@ maybe_add_sub_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key), /* -=item C - - +=item C =cut @@ -260,9 +254,8 @@ add_nci_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key), /* -=item C - - +=item C =cut diff --git a/src/pmc/nci.pmc b/src/pmc/nci.pmc index daefa7e7b7..c4626a109a 100644 --- a/src/pmc/nci.pmc +++ b/src/pmc/nci.pmc @@ -51,10 +51,8 @@ static void pcc_params(PARROT_INTERP, /* -=item C - - +=item C =cut @@ -155,7 +153,8 @@ pcc_params(PARROT_INTERP, ARGIN(STRING *sig), ARGMOD(Parrot_NCI_attributes *nci_ /* -=item C +=item C Actually build the NCI thunk. diff --git a/src/pmc/object.pmc b/src/pmc/object.pmc index 95a3488861..26d25dbc00 100644 --- a/src/pmc/object.pmc +++ b/src/pmc/object.pmc @@ -89,8 +89,6 @@ static INTVAL get_attrib_index_keyed(PARROT_INTERP, =item C - - =cut */ @@ -150,7 +148,8 @@ get_attrib_index(PARROT_INTERP, ARGIN(PMC *self), ARGIN(STRING *name)) /* -=item C +=item C This variation bypasses the cache and finds the index of a particular parent's attribute in an object's attribute store and returns it. @@ -197,8 +196,6 @@ get_attrib_index_keyed(PARROT_INTERP, ARGIN(PMC *self), ARGIN(PMC *key), ARGIN(S =item C - - =cut */ @@ -220,9 +217,8 @@ find_cached(PARROT_INTERP, ARGIN(PMC *_class), ARGIN(STRING *name)) /* -=item C - - +=item C =cut From c42de9321316f5ae710919de1ee7f50abfabc659 Mon Sep 17 00:00:00 2001 From: Andy Lester Date: Tue, 17 Aug 2010 03:02:21 +0000 Subject: [PATCH 013/165] reverted a coda that made perlcritic.t cranky git-svn-id: https://svn.parrot.org/parrot/trunk@48544 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/codingstd/pir_code_coda.t | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/codingstd/pir_code_coda.t b/t/codingstd/pir_code_coda.t index cc4fd7a035..d6eb8298b7 100644 --- a/t/codingstd/pir_code_coda.t +++ b/t/codingstd/pir_code_coda.t @@ -82,4 +82,4 @@ is_deeply( \@extra_coda, [], 'PIR code coda appears only once' ); # cperl-indent-level: 4 # fill-column: 100 # End: -# vim: expandtab shiftwidth=4 tabstop=4: +# vim: expandtab shiftwidth=4: From 72c40f79535f4053a1b245147badeaecc9727f9a Mon Sep 17 00:00:00 2001 From: "Patrick R. Michaud" Date: Tue, 17 Aug 2010 04:29:27 +0000 Subject: [PATCH 014/165] [nqp-rx]: Avoid calls to !cursor_debug when debugging isn't enabled. git-svn-id: https://svn.parrot.org/parrot/trunk@48545 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- ext/nqp-rx/src/stage0/HLL-s0.pir | 1162 +++++--- ext/nqp-rx/src/stage0/NQP-s0.pir | 3740 +++++++++++++++++++------- ext/nqp-rx/src/stage0/P6Regex-s0.pir | 1904 +++++++++---- ext/nqp-rx/src/stage0/Regex-s0.pir | 68 +- 4 files changed, 4889 insertions(+), 1985 deletions(-) diff --git a/ext/nqp-rx/src/stage0/HLL-s0.pir b/ext/nqp-rx/src/stage0/HLL-s0.pir index 6e84e74b5a..3a5a4c6d13 100644 --- a/ext/nqp-rx/src/stage0/HLL-s0.pir +++ b/ext/nqp-rx/src/stage0/HLL-s0.pir @@ -902,7 +902,7 @@ An operator precedence parser. ### .include 'gen/hllgrammar-grammar.pir' .namespace [] -.sub "_block11" :anon :subid("10_1280467467.13603") +.sub "_block11" :anon :subid("10_1282016519.8364") .annotate 'line', 0 get_hll_global $P14, ["HLL";"Grammar"], "_block13" capture_lex $P14 @@ -919,15 +919,15 @@ An operator precedence parser. $P332 = $P14() .annotate 'line', 1 .return ($P332) - .const 'Sub' $P334 = "106_1280467467.13603" + .const 'Sub' $P334 = "106_1282016519.8364" .return ($P334) .end .namespace [] -.sub "" :load :init :subid("post107") :outer("10_1280467467.13603") +.sub "" :load :init :subid("post107") :outer("10_1282016519.8364") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1280467467.13603" + .const 'Sub' $P12 = "10_1282016519.8364" .local pmc block set block, $P12 $P337 = get_root_global ["parrot"], "P6metaclass" @@ -936,83 +936,83 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "_block13" :subid("11_1280467467.13603") :outer("10_1280467467.13603") +.sub "_block13" :subid("11_1282016519.8364") :outer("10_1282016519.8364") .annotate 'line', 5 - .const 'Sub' $P319 = "103_1280467467.13603" + .const 'Sub' $P319 = "103_1282016519.8364" capture_lex $P319 - .const 'Sub' $P313 = "101_1280467467.13603" + .const 'Sub' $P313 = "101_1282016519.8364" capture_lex $P313 - .const 'Sub' $P300 = "98_1280467467.13603" + .const 'Sub' $P300 = "98_1282016519.8364" capture_lex $P300 - .const 'Sub' $P268 = "93_1280467467.13603" + .const 'Sub' $P268 = "93_1282016519.8364" capture_lex $P268 - .const 'Sub' $P262 = "91_1280467467.13603" + .const 'Sub' $P262 = "91_1282016519.8364" capture_lex $P262 - .const 'Sub' $P257 = "89_1280467467.13603" + .const 'Sub' $P257 = "89_1282016519.8364" capture_lex $P257 - .const 'Sub' $P251 = "87_1280467467.13603" + .const 'Sub' $P251 = "87_1282016519.8364" capture_lex $P251 - .const 'Sub' $P245 = "85_1280467467.13603" + .const 'Sub' $P245 = "85_1282016519.8364" capture_lex $P245 - .const 'Sub' $P240 = "83_1280467467.13603" + .const 'Sub' $P240 = "83_1282016519.8364" capture_lex $P240 - .const 'Sub' $P235 = "81_1280467467.13603" + .const 'Sub' $P235 = "81_1282016519.8364" capture_lex $P235 - .const 'Sub' $P230 = "79_1280467467.13603" + .const 'Sub' $P230 = "79_1282016519.8364" capture_lex $P230 - .const 'Sub' $P225 = "77_1280467467.13603" + .const 'Sub' $P225 = "77_1282016519.8364" capture_lex $P225 - .const 'Sub' $P220 = "75_1280467467.13603" + .const 'Sub' $P220 = "75_1282016519.8364" capture_lex $P220 - .const 'Sub' $P215 = "73_1280467467.13603" + .const 'Sub' $P215 = "73_1282016519.8364" capture_lex $P215 - .const 'Sub' $P210 = "71_1280467467.13603" + .const 'Sub' $P210 = "71_1282016519.8364" capture_lex $P210 - .const 'Sub' $P205 = "69_1280467467.13603" + .const 'Sub' $P205 = "69_1282016519.8364" capture_lex $P205 - .const 'Sub' $P195 = "65_1280467467.13603" + .const 'Sub' $P195 = "65_1282016519.8364" capture_lex $P195 - .const 'Sub' $P182 = "63_1280467467.13603" + .const 'Sub' $P182 = "63_1282016519.8364" capture_lex $P182 - .const 'Sub' $P170 = "61_1280467467.13603" + .const 'Sub' $P170 = "61_1282016519.8364" capture_lex $P170 - .const 'Sub' $P164 = "59_1280467467.13603" + .const 'Sub' $P164 = "59_1282016519.8364" capture_lex $P164 - .const 'Sub' $P157 = "57_1280467467.13603" + .const 'Sub' $P157 = "57_1282016519.8364" capture_lex $P157 - .const 'Sub' $P151 = "55_1280467467.13603" + .const 'Sub' $P151 = "55_1282016519.8364" capture_lex $P151 - .const 'Sub' $P144 = "53_1280467467.13603" + .const 'Sub' $P144 = "53_1282016519.8364" capture_lex $P144 - .const 'Sub' $P138 = "51_1280467467.13603" + .const 'Sub' $P138 = "51_1282016519.8364" capture_lex $P138 - .const 'Sub' $P131 = "49_1280467467.13603" + .const 'Sub' $P131 = "49_1282016519.8364" capture_lex $P131 - .const 'Sub' $P125 = "47_1280467467.13603" + .const 'Sub' $P125 = "47_1282016519.8364" capture_lex $P125 - .const 'Sub' $P119 = "45_1280467467.13603" + .const 'Sub' $P119 = "45_1282016519.8364" capture_lex $P119 - .const 'Sub' $P110 = "43_1280467467.13603" + .const 'Sub' $P110 = "43_1282016519.8364" capture_lex $P110 - .const 'Sub' $P102 = "41_1280467467.13603" + .const 'Sub' $P102 = "41_1282016519.8364" capture_lex $P102 - .const 'Sub' $P92 = "40_1280467467.13603" + .const 'Sub' $P92 = "40_1282016519.8364" capture_lex $P92 - .const 'Sub' $P86 = "38_1280467467.13603" + .const 'Sub' $P86 = "38_1282016519.8364" capture_lex $P86 - .const 'Sub' $P81 = "36_1280467467.13603" + .const 'Sub' $P81 = "36_1282016519.8364" capture_lex $P81 - .const 'Sub' $P73 = "34_1280467467.13603" + .const 'Sub' $P73 = "34_1282016519.8364" capture_lex $P73 - .const 'Sub' $P67 = "32_1280467467.13603" + .const 'Sub' $P67 = "32_1282016519.8364" capture_lex $P67 - .const 'Sub' $P61 = "30_1280467467.13603" + .const 'Sub' $P61 = "30_1282016519.8364" capture_lex $P61 - .const 'Sub' $P55 = "28_1280467467.13603" + .const 'Sub' $P55 = "28_1282016519.8364" capture_lex $P55 - .const 'Sub' $P22 = "14_1280467467.13603" + .const 'Sub' $P22 = "14_1282016519.8364" capture_lex $P22 - .const 'Sub' $P15 = "12_1280467467.13603" + .const 'Sub' $P15 = "12_1282016519.8364" capture_lex $P15 $P0 = find_dynamic_lex "$*CTXSAVE" if null $P0 goto ctxsave_done @@ -1021,17 +1021,17 @@ An operator precedence parser. $P0."ctxsave"() ctxsave_done: .annotate 'line', 33 - .const 'Sub' $P319 = "103_1280467467.13603" + .const 'Sub' $P319 = "103_1282016519.8364" capture_lex $P319 .annotate 'line', 5 .return ($P319) - .const 'Sub' $P329 = "105_1280467467.13603" + .const 'Sub' $P329 = "105_1282016519.8364" .return ($P329) .end .namespace ["HLL";"Grammar"] -.sub "ws" :subid("12_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "ws" :subid("12_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 5 .local string rx16_tgt .local int rx16_pos @@ -1039,7 +1039,9 @@ An operator precedence parser. .local int rx16_eos .local int rx16_rep .local pmc rx16_cur + .local pmc rx16_debug (rx16_cur, rx16_pos, rx16_tgt, $I10) = self."!cursor_start"() + getattribute rx16_debug, rx16_cur, "$!debug" .lex unicode:"$\x{a2}", rx16_cur .local pmc match .lex "$/", match @@ -1051,7 +1053,9 @@ An operator precedence parser. substr rx16_tgt, rx16_tgt, rx16_off rx16_start: eq $I10, 1, rx16_restart + if_null rx16_debug, debug_108 rx16_cur."!cursor_debug"("START ", "ws") + debug_108: $I10 = self.'from'() ne $I10, -1, rxscan19_done goto rxscan19_scan @@ -1087,8 +1091,8 @@ An operator precedence parser. add $I11, rx16_pos, 1 gt $I11, rx16_eos, rx16_fail sub $I11, rx16_pos, rx16_off - substr $S10, rx16_tgt, $I11, 1 - ne $S10, "#", rx16_fail + ord $I11, rx16_tgt, $I11 + ne $I11, 35, rx16_fail add rx16_pos, 1 # rx charclass_q N r 0..-1 sub $I10, rx16_pos, rx16_off @@ -1103,10 +1107,14 @@ An operator precedence parser. rxquantr20_done: # rx pass rx16_cur."!cursor_pass"(rx16_pos, "ws") + if_null rx16_debug, debug_109 rx16_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx16_pos) + debug_109: .return (rx16_cur) rx16_restart: + if_null rx16_debug, debug_110 rx16_cur."!cursor_debug"("NEXT ", "ws") + debug_110: rx16_fail: (rx16_rep, rx16_pos, $I10, $P10) = rx16_cur."!mark_fail"(0) lt rx16_pos, -1, rx16_done @@ -1114,14 +1122,16 @@ An operator precedence parser. jump $I10 rx16_done: rx16_cur."!cursor_fail"() + if_null rx16_debug, debug_111 rx16_cur."!cursor_debug"("FAIL ", "ws") + debug_111: .return (rx16_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__ws" :subid("13_1280467467.13603") :method +.sub "!PREFIX__ws" :subid("13_1282016519.8364") :method .annotate 'line', 5 new $P18, "ResizablePMCArray" push $P18, "" @@ -1130,7 +1140,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "termish" :subid("14_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "termish" :subid("14_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 5 .local string rx23_tgt .local int rx23_pos @@ -1138,8 +1148,10 @@ An operator precedence parser. .local int rx23_eos .local int rx23_rep .local pmc rx23_cur + .local pmc rx23_debug (rx23_cur, rx23_pos, rx23_tgt, $I10) = self."!cursor_start"() - rx23_cur."!cursor_caparray"("prefixish", "postfixish") + rx23_cur."!cursor_caparray"("postfixish", "prefixish") + getattribute rx23_debug, rx23_cur, "$!debug" .lex unicode:"$\x{a2}", rx23_cur .local pmc match .lex "$/", match @@ -1151,7 +1163,9 @@ An operator precedence parser. substr rx23_tgt, rx23_tgt, rx23_off rx23_start: eq $I10, 1, rx23_restart + if_null rx23_debug, debug_112 rx23_cur."!cursor_debug"("START ", "termish") + debug_112: $I10 = self.'from'() ne $I10, -1, rxscan26_done goto rxscan26_scan @@ -1223,11 +1237,15 @@ An operator precedence parser. .annotate 'line', 7 # rx pass rx23_cur."!cursor_pass"(rx23_pos, "termish") + if_null rx23_debug, debug_113 rx23_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx23_pos) + debug_113: .return (rx23_cur) rx23_restart: .annotate 'line', 5 + if_null rx23_debug, debug_114 rx23_cur."!cursor_debug"("NEXT ", "termish") + debug_114: rx23_fail: (rx23_rep, rx23_pos, $I10, $P10) = rx23_cur."!mark_fail"(0) lt rx23_pos, -1, rx23_done @@ -1235,14 +1253,16 @@ An operator precedence parser. jump $I10 rx23_done: rx23_cur."!cursor_fail"() + if_null rx23_debug, debug_115 rx23_cur."!cursor_debug"("FAIL ", "termish") + debug_115: .return (rx23_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__termish" :subid("15_1280467467.13603") :method +.sub "!PREFIX__termish" :subid("15_1282016519.8364") :method .annotate 'line', 5 new $P25, "ResizablePMCArray" push $P25, "" @@ -1251,7 +1271,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "term" :subid("16_1280467467.13603") :method +.sub "term" :subid("16_1282016519.8364") :method .annotate 'line', 13 $P32 = self."!protoregex"("term") .return ($P32) @@ -1259,7 +1279,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__term" :subid("17_1280467467.13603") :method +.sub "!PREFIX__term" :subid("17_1282016519.8364") :method .annotate 'line', 13 $P34 = self."!PREFIX__!protoregex"("term") .return ($P34) @@ -1267,7 +1287,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "infix" :subid("18_1280467467.13603") :method +.sub "infix" :subid("18_1282016519.8364") :method .annotate 'line', 14 $P36 = self."!protoregex"("infix") .return ($P36) @@ -1275,7 +1295,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__infix" :subid("19_1280467467.13603") :method +.sub "!PREFIX__infix" :subid("19_1282016519.8364") :method .annotate 'line', 14 $P38 = self."!PREFIX__!protoregex"("infix") .return ($P38) @@ -1283,7 +1303,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "prefix" :subid("20_1280467467.13603") :method +.sub "prefix" :subid("20_1282016519.8364") :method .annotate 'line', 15 $P40 = self."!protoregex"("prefix") .return ($P40) @@ -1291,7 +1311,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__prefix" :subid("21_1280467467.13603") :method +.sub "!PREFIX__prefix" :subid("21_1282016519.8364") :method .annotate 'line', 15 $P42 = self."!PREFIX__!protoregex"("prefix") .return ($P42) @@ -1299,7 +1319,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "postfix" :subid("22_1280467467.13603") :method +.sub "postfix" :subid("22_1282016519.8364") :method .annotate 'line', 16 $P44 = self."!protoregex"("postfix") .return ($P44) @@ -1307,7 +1327,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__postfix" :subid("23_1280467467.13603") :method +.sub "!PREFIX__postfix" :subid("23_1282016519.8364") :method .annotate 'line', 16 $P46 = self."!PREFIX__!protoregex"("postfix") .return ($P46) @@ -1315,7 +1335,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "circumfix" :subid("24_1280467467.13603") :method +.sub "circumfix" :subid("24_1282016519.8364") :method .annotate 'line', 17 $P48 = self."!protoregex"("circumfix") .return ($P48) @@ -1323,7 +1343,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__circumfix" :subid("25_1280467467.13603") :method +.sub "!PREFIX__circumfix" :subid("25_1282016519.8364") :method .annotate 'line', 17 $P50 = self."!PREFIX__!protoregex"("circumfix") .return ($P50) @@ -1331,7 +1351,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "postcircumfix" :subid("26_1280467467.13603") :method +.sub "postcircumfix" :subid("26_1282016519.8364") :method .annotate 'line', 18 $P52 = self."!protoregex"("postcircumfix") .return ($P52) @@ -1339,7 +1359,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__postcircumfix" :subid("27_1280467467.13603") :method +.sub "!PREFIX__postcircumfix" :subid("27_1282016519.8364") :method .annotate 'line', 18 $P54 = self."!PREFIX__!protoregex"("postcircumfix") .return ($P54) @@ -1347,7 +1367,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "term:sym" :subid("28_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "term:sym" :subid("28_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 5 .local string rx56_tgt .local int rx56_pos @@ -1355,7 +1375,9 @@ An operator precedence parser. .local int rx56_eos .local int rx56_rep .local pmc rx56_cur + .local pmc rx56_debug (rx56_cur, rx56_pos, rx56_tgt, $I10) = self."!cursor_start"() + getattribute rx56_debug, rx56_cur, "$!debug" .lex unicode:"$\x{a2}", rx56_cur .local pmc match .lex "$/", match @@ -1367,7 +1389,9 @@ An operator precedence parser. substr rx56_tgt, rx56_tgt, rx56_off rx56_start: eq $I10, 1, rx56_restart + if_null rx56_debug, debug_116 rx56_cur."!cursor_debug"("START ", "term:sym") + debug_116: $I10 = self.'from'() ne $I10, -1, rxscan60_done goto rxscan60_scan @@ -1390,11 +1414,15 @@ An operator precedence parser. rx56_pos = $P10."pos"() # rx pass rx56_cur."!cursor_pass"(rx56_pos, "term:sym") + if_null rx56_debug, debug_117 rx56_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx56_pos) + debug_117: .return (rx56_cur) rx56_restart: .annotate 'line', 5 + if_null rx56_debug, debug_118 rx56_cur."!cursor_debug"("NEXT ", "term:sym") + debug_118: rx56_fail: (rx56_rep, rx56_pos, $I10, $P10) = rx56_cur."!mark_fail"(0) lt rx56_pos, -1, rx56_done @@ -1402,14 +1430,16 @@ An operator precedence parser. jump $I10 rx56_done: rx56_cur."!cursor_fail"() + if_null rx56_debug, debug_119 rx56_cur."!cursor_debug"("FAIL ", "term:sym") + debug_119: .return (rx56_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__term:sym" :subid("29_1280467467.13603") :method +.sub "!PREFIX__term:sym" :subid("29_1282016519.8364") :method .annotate 'line', 5 $P58 = self."!PREFIX__!subrule"("circumfix", "") new $P59, "ResizablePMCArray" @@ -1419,7 +1449,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "infixish" :subid("30_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "infixish" :subid("30_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 5 .local string rx62_tgt .local int rx62_pos @@ -1427,7 +1457,9 @@ An operator precedence parser. .local int rx62_eos .local int rx62_rep .local pmc rx62_cur + .local pmc rx62_debug (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"() + getattribute rx62_debug, rx62_cur, "$!debug" .lex unicode:"$\x{a2}", rx62_cur .local pmc match .lex "$/", match @@ -1439,7 +1471,9 @@ An operator precedence parser. substr rx62_tgt, rx62_tgt, rx62_off rx62_start: eq $I10, 1, rx62_restart + if_null rx62_debug, debug_120 rx62_cur."!cursor_debug"("START ", "infixish") + debug_120: $I10 = self.'from'() ne $I10, -1, rxscan66_done goto rxscan66_scan @@ -1462,11 +1496,15 @@ An operator precedence parser. rx62_pos = $P10."pos"() # rx pass rx62_cur."!cursor_pass"(rx62_pos, "infixish") + if_null rx62_debug, debug_121 rx62_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx62_pos) + debug_121: .return (rx62_cur) rx62_restart: .annotate 'line', 5 + if_null rx62_debug, debug_122 rx62_cur."!cursor_debug"("NEXT ", "infixish") + debug_122: rx62_fail: (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0) lt rx62_pos, -1, rx62_done @@ -1474,14 +1512,16 @@ An operator precedence parser. jump $I10 rx62_done: rx62_cur."!cursor_fail"() + if_null rx62_debug, debug_123 rx62_cur."!cursor_debug"("FAIL ", "infixish") + debug_123: .return (rx62_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__infixish" :subid("31_1280467467.13603") :method +.sub "!PREFIX__infixish" :subid("31_1282016519.8364") :method .annotate 'line', 5 $P64 = self."!PREFIX__!subrule"("infix", "") new $P65, "ResizablePMCArray" @@ -1491,7 +1531,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "prefixish" :subid("32_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "prefixish" :subid("32_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 5 .local string rx68_tgt .local int rx68_pos @@ -1499,7 +1539,9 @@ An operator precedence parser. .local int rx68_eos .local int rx68_rep .local pmc rx68_cur + .local pmc rx68_debug (rx68_cur, rx68_pos, rx68_tgt, $I10) = self."!cursor_start"() + getattribute rx68_debug, rx68_cur, "$!debug" .lex unicode:"$\x{a2}", rx68_cur .local pmc match .lex "$/", match @@ -1511,7 +1553,9 @@ An operator precedence parser. substr rx68_tgt, rx68_tgt, rx68_off rx68_start: eq $I10, 1, rx68_restart + if_null rx68_debug, debug_124 rx68_cur."!cursor_debug"("START ", "prefixish") + debug_124: $I10 = self.'from'() ne $I10, -1, rxscan72_done goto rxscan72_scan @@ -1539,11 +1583,15 @@ An operator precedence parser. rx68_pos = $P10."pos"() # rx pass rx68_cur."!cursor_pass"(rx68_pos, "prefixish") + if_null rx68_debug, debug_125 rx68_cur."!cursor_debug"("PASS ", "prefixish", " at pos=", rx68_pos) + debug_125: .return (rx68_cur) rx68_restart: .annotate 'line', 5 + if_null rx68_debug, debug_126 rx68_cur."!cursor_debug"("NEXT ", "prefixish") + debug_126: rx68_fail: (rx68_rep, rx68_pos, $I10, $P10) = rx68_cur."!mark_fail"(0) lt rx68_pos, -1, rx68_done @@ -1551,14 +1599,16 @@ An operator precedence parser. jump $I10 rx68_done: rx68_cur."!cursor_fail"() + if_null rx68_debug, debug_127 rx68_cur."!cursor_debug"("FAIL ", "prefixish") + debug_127: .return (rx68_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__prefixish" :subid("33_1280467467.13603") :method +.sub "!PREFIX__prefixish" :subid("33_1282016519.8364") :method .annotate 'line', 5 $P70 = self."!PREFIX__!subrule"("prefix", "") new $P71, "ResizablePMCArray" @@ -1568,7 +1618,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "postfixish" :subid("34_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "postfixish" :subid("34_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 5 .local string rx74_tgt .local int rx74_pos @@ -1576,7 +1626,9 @@ An operator precedence parser. .local int rx74_eos .local int rx74_rep .local pmc rx74_cur + .local pmc rx74_debug (rx74_cur, rx74_pos, rx74_tgt, $I10) = self."!cursor_start"() + getattribute rx74_debug, rx74_cur, "$!debug" .lex unicode:"$\x{a2}", rx74_cur .local pmc match .lex "$/", match @@ -1588,7 +1640,9 @@ An operator precedence parser. substr rx74_tgt, rx74_tgt, rx74_off rx74_start: eq $I10, 1, rx74_restart + if_null rx74_debug, debug_128 rx74_cur."!cursor_debug"("START ", "postfixish") + debug_128: $I10 = self.'from'() ne $I10, -1, rxscan79_done goto rxscan79_scan @@ -1627,11 +1681,15 @@ An operator precedence parser. .annotate 'line', 24 # rx pass rx74_cur."!cursor_pass"(rx74_pos, "postfixish") + if_null rx74_debug, debug_129 rx74_cur."!cursor_debug"("PASS ", "postfixish", " at pos=", rx74_pos) + debug_129: .return (rx74_cur) rx74_restart: .annotate 'line', 5 + if_null rx74_debug, debug_130 rx74_cur."!cursor_debug"("NEXT ", "postfixish") + debug_130: rx74_fail: (rx74_rep, rx74_pos, $I10, $P10) = rx74_cur."!mark_fail"(0) lt rx74_pos, -1, rx74_done @@ -1639,14 +1697,16 @@ An operator precedence parser. jump $I10 rx74_done: rx74_cur."!cursor_fail"() + if_null rx74_debug, debug_131 rx74_cur."!cursor_debug"("FAIL ", "postfixish") + debug_131: .return (rx74_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__postfixish" :subid("35_1280467467.13603") :method +.sub "!PREFIX__postfixish" :subid("35_1282016519.8364") :method .annotate 'line', 5 $P76 = self."!PREFIX__!subrule"("postcircumfix", "") $P77 = self."!PREFIX__!subrule"("postfix", "") @@ -1658,7 +1718,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "nullterm" :subid("36_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "nullterm" :subid("36_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 5 .local string rx82_tgt .local int rx82_pos @@ -1666,7 +1726,9 @@ An operator precedence parser. .local int rx82_eos .local int rx82_rep .local pmc rx82_cur + .local pmc rx82_debug (rx82_cur, rx82_pos, rx82_tgt, $I10) = self."!cursor_start"() + getattribute rx82_debug, rx82_cur, "$!debug" .lex unicode:"$\x{a2}", rx82_cur .local pmc match .lex "$/", match @@ -1678,7 +1740,9 @@ An operator precedence parser. substr rx82_tgt, rx82_tgt, rx82_off rx82_start: eq $I10, 1, rx82_restart + if_null rx82_debug, debug_132 rx82_cur."!cursor_debug"("START ", "nullterm") + debug_132: $I10 = self.'from'() ne $I10, -1, rxscan85_done goto rxscan85_scan @@ -1694,11 +1758,15 @@ An operator precedence parser. .annotate 'line', 29 # rx pass rx82_cur."!cursor_pass"(rx82_pos, "nullterm") + if_null rx82_debug, debug_133 rx82_cur."!cursor_debug"("PASS ", "nullterm", " at pos=", rx82_pos) + debug_133: .return (rx82_cur) rx82_restart: .annotate 'line', 5 + if_null rx82_debug, debug_134 rx82_cur."!cursor_debug"("NEXT ", "nullterm") + debug_134: rx82_fail: (rx82_rep, rx82_pos, $I10, $P10) = rx82_cur."!mark_fail"(0) lt rx82_pos, -1, rx82_done @@ -1706,14 +1774,16 @@ An operator precedence parser. jump $I10 rx82_done: rx82_cur."!cursor_fail"() + if_null rx82_debug, debug_135 rx82_cur."!cursor_debug"("FAIL ", "nullterm") + debug_135: .return (rx82_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__nullterm" :subid("37_1280467467.13603") :method +.sub "!PREFIX__nullterm" :subid("37_1282016519.8364") :method .annotate 'line', 5 new $P84, "ResizablePMCArray" push $P84, "" @@ -1722,7 +1792,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "nullterm_alt" :subid("38_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "nullterm_alt" :subid("38_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 5 .local string rx87_tgt .local int rx87_pos @@ -1730,7 +1800,9 @@ An operator precedence parser. .local int rx87_eos .local int rx87_rep .local pmc rx87_cur + .local pmc rx87_debug (rx87_cur, rx87_pos, rx87_tgt, $I10) = self."!cursor_start"() + getattribute rx87_debug, rx87_cur, "$!debug" .lex unicode:"$\x{a2}", rx87_cur .local pmc match .lex "$/", match @@ -1742,7 +1814,9 @@ An operator precedence parser. substr rx87_tgt, rx87_tgt, rx87_off rx87_start: eq $I10, 1, rx87_restart + if_null rx87_debug, debug_136 rx87_cur."!cursor_debug"("START ", "nullterm_alt") + debug_136: $I10 = self.'from'() ne $I10, -1, rxscan91_done goto rxscan91_scan @@ -1765,11 +1839,15 @@ An operator precedence parser. rx87_pos = $P10."pos"() # rx pass rx87_cur."!cursor_pass"(rx87_pos, "nullterm_alt") + if_null rx87_debug, debug_137 rx87_cur."!cursor_debug"("PASS ", "nullterm_alt", " at pos=", rx87_pos) + debug_137: .return (rx87_cur) rx87_restart: .annotate 'line', 5 + if_null rx87_debug, debug_138 rx87_cur."!cursor_debug"("NEXT ", "nullterm_alt") + debug_138: rx87_fail: (rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0) lt rx87_pos, -1, rx87_done @@ -1777,14 +1855,16 @@ An operator precedence parser. jump $I10 rx87_done: rx87_cur."!cursor_fail"() + if_null rx87_debug, debug_139 rx87_cur."!cursor_debug"("FAIL ", "nullterm_alt") + debug_139: .return (rx87_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__nullterm_alt" :subid("39_1280467467.13603") :method +.sub "!PREFIX__nullterm_alt" :subid("39_1282016519.8364") :method .annotate 'line', 5 $P89 = self."!PREFIX__!subrule"("nullterm", "") new $P90, "ResizablePMCArray" @@ -1795,7 +1875,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] .include "except_types.pasm" -.sub "nulltermish" :subid("40_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "nulltermish" :subid("40_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 new $P94, 'ExceptionHandler' set_addr $P94, control_93 @@ -1822,7 +1902,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_delimited" :subid("41_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_delimited" :subid("41_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx103_tgt .local int rx103_pos @@ -1830,8 +1910,10 @@ An operator precedence parser. .local int rx103_eos .local int rx103_rep .local pmc rx103_cur + .local pmc rx103_debug (rx103_cur, rx103_pos, rx103_tgt, $I10) = self."!cursor_start"() rx103_cur."!cursor_caparray"("quote_atom") + getattribute rx103_debug, rx103_cur, "$!debug" .lex unicode:"$\x{a2}", rx103_cur .local pmc match .lex "$/", match @@ -1843,7 +1925,9 @@ An operator precedence parser. substr rx103_tgt, rx103_tgt, rx103_off rx103_start: eq $I10, 1, rx103_restart + if_null rx103_debug, debug_140 rx103_cur."!cursor_debug"("START ", "quote_delimited") + debug_140: $I10 = self.'from'() ne $I10, -1, rxscan107_done goto rxscan107_scan @@ -1897,11 +1981,15 @@ An operator precedence parser. .annotate 'line', 36 # rx pass rx103_cur."!cursor_pass"(rx103_pos, "quote_delimited") + if_null rx103_debug, debug_141 rx103_cur."!cursor_debug"("PASS ", "quote_delimited", " at pos=", rx103_pos) + debug_141: .return (rx103_cur) rx103_restart: .annotate 'line', 33 + if_null rx103_debug, debug_142 rx103_cur."!cursor_debug"("NEXT ", "quote_delimited") + debug_142: rx103_fail: (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0) lt rx103_pos, -1, rx103_done @@ -1909,14 +1997,16 @@ An operator precedence parser. jump $I10 rx103_done: rx103_cur."!cursor_fail"() + if_null rx103_debug, debug_143 rx103_cur."!cursor_debug"("FAIL ", "quote_delimited") + debug_143: .return (rx103_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_delimited" :subid("42_1280467467.13603") :method +.sub "!PREFIX__quote_delimited" :subid("42_1282016519.8364") :method .annotate 'line', 33 $P105 = self."!PREFIX__!subrule"("starter", "") new $P106, "ResizablePMCArray" @@ -1926,7 +2016,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_atom" :subid("43_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_atom" :subid("43_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx111_tgt .local int rx111_pos @@ -1934,7 +2024,9 @@ An operator precedence parser. .local int rx111_eos .local int rx111_rep .local pmc rx111_cur + .local pmc rx111_debug (rx111_cur, rx111_pos, rx111_tgt, $I10) = self."!cursor_start"() + getattribute rx111_debug, rx111_cur, "$!debug" .lex unicode:"$\x{a2}", rx111_cur .local pmc match .lex "$/", match @@ -1946,7 +2038,9 @@ An operator precedence parser. substr rx111_tgt, rx111_tgt, rx111_off rx111_start: eq $I10, 1, rx111_restart + if_null rx111_debug, debug_144 rx111_cur."!cursor_debug"("START ", "quote_atom") + debug_144: $I10 = self.'from'() ne $I10, -1, rxscan114_done goto rxscan114_scan @@ -2004,11 +2098,15 @@ An operator precedence parser. .annotate 'line', 40 # rx pass rx111_cur."!cursor_pass"(rx111_pos, "quote_atom") + if_null rx111_debug, debug_145 rx111_cur."!cursor_debug"("PASS ", "quote_atom", " at pos=", rx111_pos) + debug_145: .return (rx111_cur) rx111_restart: .annotate 'line', 33 + if_null rx111_debug, debug_146 rx111_cur."!cursor_debug"("NEXT ", "quote_atom") + debug_146: rx111_fail: (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0) lt rx111_pos, -1, rx111_done @@ -2016,14 +2114,16 @@ An operator precedence parser. jump $I10 rx111_done: rx111_cur."!cursor_fail"() + if_null rx111_debug, debug_147 rx111_cur."!cursor_debug"("FAIL ", "quote_atom") + debug_147: .return (rx111_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_atom" :subid("44_1280467467.13603") :method +.sub "!PREFIX__quote_atom" :subid("44_1282016519.8364") :method .annotate 'line', 33 new $P113, "ResizablePMCArray" push $P113, "" @@ -2032,7 +2132,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "decint" :subid("45_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "decint" :subid("45_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx120_tgt .local int rx120_pos @@ -2040,7 +2140,9 @@ An operator precedence parser. .local int rx120_eos .local int rx120_rep .local pmc rx120_cur + .local pmc rx120_debug (rx120_cur, rx120_pos, rx120_tgt, $I10) = self."!cursor_start"() + getattribute rx120_debug, rx120_cur, "$!debug" .lex unicode:"$\x{a2}", rx120_cur .local pmc match .lex "$/", match @@ -2052,7 +2154,9 @@ An operator precedence parser. substr rx120_tgt, rx120_tgt, rx120_off rx120_start: eq $I10, 1, rx120_restart + if_null rx120_debug, debug_148 rx120_cur."!cursor_debug"("START ", "decint") + debug_148: $I10 = self.'from'() ne $I10, -1, rxscan123_done goto rxscan123_scan @@ -2084,18 +2188,22 @@ An operator precedence parser. add $I11, rx120_pos, 1 gt $I11, rx120_eos, rx120_fail sub $I11, rx120_pos, rx120_off - substr $S10, rx120_tgt, $I11, 1 - ne $S10, "_", rx120_fail + ord $I11, rx120_tgt, $I11 + ne $I11, 95, rx120_fail add rx120_pos, 1 goto rxquantr124_loop rxquantr124_done: # rx pass rx120_cur."!cursor_pass"(rx120_pos, "decint") + if_null rx120_debug, debug_149 rx120_cur."!cursor_debug"("PASS ", "decint", " at pos=", rx120_pos) + debug_149: .return (rx120_cur) rx120_restart: .annotate 'line', 33 + if_null rx120_debug, debug_150 rx120_cur."!cursor_debug"("NEXT ", "decint") + debug_150: rx120_fail: (rx120_rep, rx120_pos, $I10, $P10) = rx120_cur."!mark_fail"(0) lt rx120_pos, -1, rx120_done @@ -2103,14 +2211,16 @@ An operator precedence parser. jump $I10 rx120_done: rx120_cur."!cursor_fail"() + if_null rx120_debug, debug_151 rx120_cur."!cursor_debug"("FAIL ", "decint") + debug_151: .return (rx120_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__decint" :subid("46_1280467467.13603") :method +.sub "!PREFIX__decint" :subid("46_1282016519.8364") :method .annotate 'line', 33 new $P122, "ResizablePMCArray" push $P122, "" @@ -2119,7 +2229,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "decints" :subid("47_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "decints" :subid("47_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx126_tgt .local int rx126_pos @@ -2127,8 +2237,10 @@ An operator precedence parser. .local int rx126_eos .local int rx126_rep .local pmc rx126_cur + .local pmc rx126_debug (rx126_cur, rx126_pos, rx126_tgt, $I10) = self."!cursor_start"() rx126_cur."!cursor_caparray"("decint") + getattribute rx126_debug, rx126_cur, "$!debug" .lex unicode:"$\x{a2}", rx126_cur .local pmc match .lex "$/", match @@ -2140,7 +2252,9 @@ An operator precedence parser. substr rx126_tgt, rx126_tgt, rx126_off rx126_start: eq $I10, 1, rx126_restart + if_null rx126_debug, debug_152 rx126_cur."!cursor_debug"("START ", "decints") + debug_152: $I10 = self.'from'() ne $I10, -1, rxscan129_done goto rxscan129_scan @@ -2183,18 +2297,22 @@ An operator precedence parser. add $I11, rx126_pos, 1 gt $I11, rx126_eos, rx126_fail sub $I11, rx126_pos, rx126_off - substr $S10, rx126_tgt, $I11, 1 - ne $S10, ",", rx126_fail + ord $I11, rx126_tgt, $I11 + ne $I11, 44, rx126_fail add rx126_pos, 1 goto rxquantr130_loop rxquantr130_done: # rx pass rx126_cur."!cursor_pass"(rx126_pos, "decints") + if_null rx126_debug, debug_153 rx126_cur."!cursor_debug"("PASS ", "decints", " at pos=", rx126_pos) + debug_153: .return (rx126_cur) rx126_restart: .annotate 'line', 33 + if_null rx126_debug, debug_154 rx126_cur."!cursor_debug"("NEXT ", "decints") + debug_154: rx126_fail: (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0) lt rx126_pos, -1, rx126_done @@ -2202,14 +2320,16 @@ An operator precedence parser. jump $I10 rx126_done: rx126_cur."!cursor_fail"() + if_null rx126_debug, debug_155 rx126_cur."!cursor_debug"("FAIL ", "decints") + debug_155: .return (rx126_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__decints" :subid("48_1280467467.13603") :method +.sub "!PREFIX__decints" :subid("48_1282016519.8364") :method .annotate 'line', 33 new $P128, "ResizablePMCArray" push $P128, "" @@ -2218,7 +2338,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "hexint" :subid("49_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "hexint" :subid("49_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx132_tgt .local int rx132_pos @@ -2226,7 +2346,9 @@ An operator precedence parser. .local int rx132_eos .local int rx132_rep .local pmc rx132_cur + .local pmc rx132_debug (rx132_cur, rx132_pos, rx132_tgt, $I10) = self."!cursor_start"() + getattribute rx132_debug, rx132_cur, "$!debug" .lex unicode:"$\x{a2}", rx132_cur .local pmc match .lex "$/", match @@ -2238,7 +2360,9 @@ An operator precedence parser. substr rx132_tgt, rx132_tgt, rx132_off rx132_start: eq $I10, 1, rx132_restart + if_null rx132_debug, debug_156 rx132_cur."!cursor_debug"("START ", "hexint") + debug_156: $I10 = self.'from'() ne $I10, -1, rxscan135_done goto rxscan135_scan @@ -2281,18 +2405,22 @@ An operator precedence parser. add $I11, rx132_pos, 1 gt $I11, rx132_eos, rx132_fail sub $I11, rx132_pos, rx132_off - substr $S10, rx132_tgt, $I11, 1 - ne $S10, "_", rx132_fail + ord $I11, rx132_tgt, $I11 + ne $I11, 95, rx132_fail add rx132_pos, 1 goto rxquantr136_loop rxquantr136_done: # rx pass rx132_cur."!cursor_pass"(rx132_pos, "hexint") + if_null rx132_debug, debug_157 rx132_cur."!cursor_debug"("PASS ", "hexint", " at pos=", rx132_pos) + debug_157: .return (rx132_cur) rx132_restart: .annotate 'line', 33 + if_null rx132_debug, debug_158 rx132_cur."!cursor_debug"("NEXT ", "hexint") + debug_158: rx132_fail: (rx132_rep, rx132_pos, $I10, $P10) = rx132_cur."!mark_fail"(0) lt rx132_pos, -1, rx132_done @@ -2300,14 +2428,16 @@ An operator precedence parser. jump $I10 rx132_done: rx132_cur."!cursor_fail"() + if_null rx132_debug, debug_159 rx132_cur."!cursor_debug"("FAIL ", "hexint") + debug_159: .return (rx132_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__hexint" :subid("50_1280467467.13603") :method +.sub "!PREFIX__hexint" :subid("50_1282016519.8364") :method .annotate 'line', 33 new $P134, "ResizablePMCArray" push $P134, "" @@ -2316,7 +2446,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "hexints" :subid("51_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "hexints" :subid("51_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx139_tgt .local int rx139_pos @@ -2324,8 +2454,10 @@ An operator precedence parser. .local int rx139_eos .local int rx139_rep .local pmc rx139_cur + .local pmc rx139_debug (rx139_cur, rx139_pos, rx139_tgt, $I10) = self."!cursor_start"() rx139_cur."!cursor_caparray"("hexint") + getattribute rx139_debug, rx139_cur, "$!debug" .lex unicode:"$\x{a2}", rx139_cur .local pmc match .lex "$/", match @@ -2337,7 +2469,9 @@ An operator precedence parser. substr rx139_tgt, rx139_tgt, rx139_off rx139_start: eq $I10, 1, rx139_restart + if_null rx139_debug, debug_160 rx139_cur."!cursor_debug"("START ", "hexints") + debug_160: $I10 = self.'from'() ne $I10, -1, rxscan142_done goto rxscan142_scan @@ -2380,18 +2514,22 @@ An operator precedence parser. add $I11, rx139_pos, 1 gt $I11, rx139_eos, rx139_fail sub $I11, rx139_pos, rx139_off - substr $S10, rx139_tgt, $I11, 1 - ne $S10, ",", rx139_fail + ord $I11, rx139_tgt, $I11 + ne $I11, 44, rx139_fail add rx139_pos, 1 goto rxquantr143_loop rxquantr143_done: # rx pass rx139_cur."!cursor_pass"(rx139_pos, "hexints") + if_null rx139_debug, debug_161 rx139_cur."!cursor_debug"("PASS ", "hexints", " at pos=", rx139_pos) + debug_161: .return (rx139_cur) rx139_restart: .annotate 'line', 33 + if_null rx139_debug, debug_162 rx139_cur."!cursor_debug"("NEXT ", "hexints") + debug_162: rx139_fail: (rx139_rep, rx139_pos, $I10, $P10) = rx139_cur."!mark_fail"(0) lt rx139_pos, -1, rx139_done @@ -2399,14 +2537,16 @@ An operator precedence parser. jump $I10 rx139_done: rx139_cur."!cursor_fail"() + if_null rx139_debug, debug_163 rx139_cur."!cursor_debug"("FAIL ", "hexints") + debug_163: .return (rx139_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__hexints" :subid("52_1280467467.13603") :method +.sub "!PREFIX__hexints" :subid("52_1282016519.8364") :method .annotate 'line', 33 new $P141, "ResizablePMCArray" push $P141, "" @@ -2415,7 +2555,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "octint" :subid("53_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "octint" :subid("53_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx145_tgt .local int rx145_pos @@ -2423,7 +2563,9 @@ An operator precedence parser. .local int rx145_eos .local int rx145_rep .local pmc rx145_cur + .local pmc rx145_debug (rx145_cur, rx145_pos, rx145_tgt, $I10) = self."!cursor_start"() + getattribute rx145_debug, rx145_cur, "$!debug" .lex unicode:"$\x{a2}", rx145_cur .local pmc match .lex "$/", match @@ -2435,7 +2577,9 @@ An operator precedence parser. substr rx145_tgt, rx145_tgt, rx145_off rx145_start: eq $I10, 1, rx145_restart + if_null rx145_debug, debug_164 rx145_cur."!cursor_debug"("START ", "octint") + debug_164: $I10 = self.'from'() ne $I10, -1, rxscan148_done goto rxscan148_scan @@ -2478,18 +2622,22 @@ An operator precedence parser. add $I11, rx145_pos, 1 gt $I11, rx145_eos, rx145_fail sub $I11, rx145_pos, rx145_off - substr $S10, rx145_tgt, $I11, 1 - ne $S10, "_", rx145_fail + ord $I11, rx145_tgt, $I11 + ne $I11, 95, rx145_fail add rx145_pos, 1 goto rxquantr149_loop rxquantr149_done: # rx pass rx145_cur."!cursor_pass"(rx145_pos, "octint") + if_null rx145_debug, debug_165 rx145_cur."!cursor_debug"("PASS ", "octint", " at pos=", rx145_pos) + debug_165: .return (rx145_cur) rx145_restart: .annotate 'line', 33 + if_null rx145_debug, debug_166 rx145_cur."!cursor_debug"("NEXT ", "octint") + debug_166: rx145_fail: (rx145_rep, rx145_pos, $I10, $P10) = rx145_cur."!mark_fail"(0) lt rx145_pos, -1, rx145_done @@ -2497,14 +2645,16 @@ An operator precedence parser. jump $I10 rx145_done: rx145_cur."!cursor_fail"() + if_null rx145_debug, debug_167 rx145_cur."!cursor_debug"("FAIL ", "octint") + debug_167: .return (rx145_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__octint" :subid("54_1280467467.13603") :method +.sub "!PREFIX__octint" :subid("54_1282016519.8364") :method .annotate 'line', 33 new $P147, "ResizablePMCArray" push $P147, "" @@ -2513,7 +2663,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "octints" :subid("55_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "octints" :subid("55_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx152_tgt .local int rx152_pos @@ -2521,8 +2671,10 @@ An operator precedence parser. .local int rx152_eos .local int rx152_rep .local pmc rx152_cur + .local pmc rx152_debug (rx152_cur, rx152_pos, rx152_tgt, $I10) = self."!cursor_start"() rx152_cur."!cursor_caparray"("octint") + getattribute rx152_debug, rx152_cur, "$!debug" .lex unicode:"$\x{a2}", rx152_cur .local pmc match .lex "$/", match @@ -2534,7 +2686,9 @@ An operator precedence parser. substr rx152_tgt, rx152_tgt, rx152_off rx152_start: eq $I10, 1, rx152_restart + if_null rx152_debug, debug_168 rx152_cur."!cursor_debug"("START ", "octints") + debug_168: $I10 = self.'from'() ne $I10, -1, rxscan155_done goto rxscan155_scan @@ -2577,18 +2731,22 @@ An operator precedence parser. add $I11, rx152_pos, 1 gt $I11, rx152_eos, rx152_fail sub $I11, rx152_pos, rx152_off - substr $S10, rx152_tgt, $I11, 1 - ne $S10, ",", rx152_fail + ord $I11, rx152_tgt, $I11 + ne $I11, 44, rx152_fail add rx152_pos, 1 goto rxquantr156_loop rxquantr156_done: # rx pass rx152_cur."!cursor_pass"(rx152_pos, "octints") + if_null rx152_debug, debug_169 rx152_cur."!cursor_debug"("PASS ", "octints", " at pos=", rx152_pos) + debug_169: .return (rx152_cur) rx152_restart: .annotate 'line', 33 + if_null rx152_debug, debug_170 rx152_cur."!cursor_debug"("NEXT ", "octints") + debug_170: rx152_fail: (rx152_rep, rx152_pos, $I10, $P10) = rx152_cur."!mark_fail"(0) lt rx152_pos, -1, rx152_done @@ -2596,14 +2754,16 @@ An operator precedence parser. jump $I10 rx152_done: rx152_cur."!cursor_fail"() + if_null rx152_debug, debug_171 rx152_cur."!cursor_debug"("FAIL ", "octints") + debug_171: .return (rx152_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__octints" :subid("56_1280467467.13603") :method +.sub "!PREFIX__octints" :subid("56_1282016519.8364") :method .annotate 'line', 33 new $P154, "ResizablePMCArray" push $P154, "" @@ -2612,7 +2772,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "binint" :subid("57_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "binint" :subid("57_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx158_tgt .local int rx158_pos @@ -2620,7 +2780,9 @@ An operator precedence parser. .local int rx158_eos .local int rx158_rep .local pmc rx158_cur + .local pmc rx158_debug (rx158_cur, rx158_pos, rx158_tgt, $I10) = self."!cursor_start"() + getattribute rx158_debug, rx158_cur, "$!debug" .lex unicode:"$\x{a2}", rx158_cur .local pmc match .lex "$/", match @@ -2632,7 +2794,9 @@ An operator precedence parser. substr rx158_tgt, rx158_tgt, rx158_off rx158_start: eq $I10, 1, rx158_restart + if_null rx158_debug, debug_172 rx158_cur."!cursor_debug"("START ", "binint") + debug_172: $I10 = self.'from'() ne $I10, -1, rxscan161_done goto rxscan161_scan @@ -2675,18 +2839,22 @@ An operator precedence parser. add $I11, rx158_pos, 1 gt $I11, rx158_eos, rx158_fail sub $I11, rx158_pos, rx158_off - substr $S10, rx158_tgt, $I11, 1 - ne $S10, "_", rx158_fail + ord $I11, rx158_tgt, $I11 + ne $I11, 95, rx158_fail add rx158_pos, 1 goto rxquantr162_loop rxquantr162_done: # rx pass rx158_cur."!cursor_pass"(rx158_pos, "binint") + if_null rx158_debug, debug_173 rx158_cur."!cursor_debug"("PASS ", "binint", " at pos=", rx158_pos) + debug_173: .return (rx158_cur) rx158_restart: .annotate 'line', 33 + if_null rx158_debug, debug_174 rx158_cur."!cursor_debug"("NEXT ", "binint") + debug_174: rx158_fail: (rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0) lt rx158_pos, -1, rx158_done @@ -2694,14 +2862,16 @@ An operator precedence parser. jump $I10 rx158_done: rx158_cur."!cursor_fail"() + if_null rx158_debug, debug_175 rx158_cur."!cursor_debug"("FAIL ", "binint") + debug_175: .return (rx158_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__binint" :subid("58_1280467467.13603") :method +.sub "!PREFIX__binint" :subid("58_1282016519.8364") :method .annotate 'line', 33 new $P160, "ResizablePMCArray" push $P160, "" @@ -2710,7 +2880,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "binints" :subid("59_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "binints" :subid("59_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx165_tgt .local int rx165_pos @@ -2718,8 +2888,10 @@ An operator precedence parser. .local int rx165_eos .local int rx165_rep .local pmc rx165_cur + .local pmc rx165_debug (rx165_cur, rx165_pos, rx165_tgt, $I10) = self."!cursor_start"() rx165_cur."!cursor_caparray"("binint") + getattribute rx165_debug, rx165_cur, "$!debug" .lex unicode:"$\x{a2}", rx165_cur .local pmc match .lex "$/", match @@ -2731,7 +2903,9 @@ An operator precedence parser. substr rx165_tgt, rx165_tgt, rx165_off rx165_start: eq $I10, 1, rx165_restart + if_null rx165_debug, debug_176 rx165_cur."!cursor_debug"("START ", "binints") + debug_176: $I10 = self.'from'() ne $I10, -1, rxscan168_done goto rxscan168_scan @@ -2774,18 +2948,22 @@ An operator precedence parser. add $I11, rx165_pos, 1 gt $I11, rx165_eos, rx165_fail sub $I11, rx165_pos, rx165_off - substr $S10, rx165_tgt, $I11, 1 - ne $S10, ",", rx165_fail + ord $I11, rx165_tgt, $I11 + ne $I11, 44, rx165_fail add rx165_pos, 1 goto rxquantr169_loop rxquantr169_done: # rx pass rx165_cur."!cursor_pass"(rx165_pos, "binints") + if_null rx165_debug, debug_177 rx165_cur."!cursor_debug"("PASS ", "binints", " at pos=", rx165_pos) + debug_177: .return (rx165_cur) rx165_restart: .annotate 'line', 33 + if_null rx165_debug, debug_178 rx165_cur."!cursor_debug"("NEXT ", "binints") + debug_178: rx165_fail: (rx165_rep, rx165_pos, $I10, $P10) = rx165_cur."!mark_fail"(0) lt rx165_pos, -1, rx165_done @@ -2793,14 +2971,16 @@ An operator precedence parser. jump $I10 rx165_done: rx165_cur."!cursor_fail"() + if_null rx165_debug, debug_179 rx165_cur."!cursor_debug"("FAIL ", "binints") + debug_179: .return (rx165_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__binints" :subid("60_1280467467.13603") :method +.sub "!PREFIX__binints" :subid("60_1282016519.8364") :method .annotate 'line', 33 new $P167, "ResizablePMCArray" push $P167, "" @@ -2809,7 +2989,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "integer" :subid("61_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "integer" :subid("61_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx171_tgt .local int rx171_pos @@ -2817,7 +2997,9 @@ An operator precedence parser. .local int rx171_eos .local int rx171_rep .local pmc rx171_cur + .local pmc rx171_debug (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"() + getattribute rx171_debug, rx171_cur, "$!debug" .lex unicode:"$\x{a2}", rx171_cur .local pmc match .lex "$/", match @@ -2829,7 +3011,9 @@ An operator precedence parser. substr rx171_tgt, rx171_tgt, rx171_off rx171_start: eq $I10, 1, rx171_restart + if_null rx171_debug, debug_180 rx171_cur."!cursor_debug"("START ", "integer") + debug_180: $I10 = self.'from'() ne $I10, -1, rxscan179_done goto rxscan179_scan @@ -2851,8 +3035,8 @@ An operator precedence parser. add $I11, rx171_pos, 1 gt $I11, rx171_eos, rx171_fail sub $I11, rx171_pos, rx171_off - substr $S10, rx171_tgt, $I11, 1 - ne $S10, "0", rx171_fail + ord $I11, rx171_tgt, $I11 + ne $I11, 48, rx171_fail add rx171_pos, 1 alt181_0: set_addr $I10, alt181_1 @@ -2861,8 +3045,8 @@ An operator precedence parser. add $I11, rx171_pos, 1 gt $I11, rx171_eos, rx171_fail sub $I11, rx171_pos, rx171_off - substr $S10, rx171_tgt, $I11, 1 - ne $S10, "b", rx171_fail + ord $I11, rx171_tgt, $I11 + ne $I11, 98, rx171_fail add rx171_pos, 1 # rx subrule "binint" subtype=capture negate= rx171_cur."!cursor_pos"(rx171_pos) @@ -2880,8 +3064,8 @@ An operator precedence parser. add $I11, rx171_pos, 1 gt $I11, rx171_eos, rx171_fail sub $I11, rx171_pos, rx171_off - substr $S10, rx171_tgt, $I11, 1 - ne $S10, "o", rx171_fail + ord $I11, rx171_tgt, $I11 + ne $I11, 111, rx171_fail add rx171_pos, 1 # rx subrule "octint" subtype=capture negate= rx171_cur."!cursor_pos"(rx171_pos) @@ -2899,8 +3083,8 @@ An operator precedence parser. add $I11, rx171_pos, 1 gt $I11, rx171_eos, rx171_fail sub $I11, rx171_pos, rx171_off - substr $S10, rx171_tgt, $I11, 1 - ne $S10, "x", rx171_fail + ord $I11, rx171_tgt, $I11 + ne $I11, 120, rx171_fail add rx171_pos, 1 # rx subrule "hexint" subtype=capture negate= rx171_cur."!cursor_pos"(rx171_pos) @@ -2916,8 +3100,8 @@ An operator precedence parser. add $I11, rx171_pos, 1 gt $I11, rx171_eos, rx171_fail sub $I11, rx171_pos, rx171_off - substr $S10, rx171_tgt, $I11, 1 - ne $S10, "d", rx171_fail + ord $I11, rx171_tgt, $I11 + ne $I11, 100, rx171_fail add rx171_pos, 1 # rx subrule "decint" subtype=capture negate= rx171_cur."!cursor_pos"(rx171_pos) @@ -2942,11 +3126,15 @@ An operator precedence parser. .annotate 'line', 60 # rx pass rx171_cur."!cursor_pass"(rx171_pos, "integer") + if_null rx171_debug, debug_181 rx171_cur."!cursor_debug"("PASS ", "integer", " at pos=", rx171_pos) + debug_181: .return (rx171_cur) rx171_restart: .annotate 'line', 33 + if_null rx171_debug, debug_182 rx171_cur."!cursor_debug"("NEXT ", "integer") + debug_182: rx171_fail: (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0) lt rx171_pos, -1, rx171_done @@ -2954,14 +3142,16 @@ An operator precedence parser. jump $I10 rx171_done: rx171_cur."!cursor_fail"() + if_null rx171_debug, debug_183 rx171_cur."!cursor_debug"("FAIL ", "integer") + debug_183: .return (rx171_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__integer" :subid("62_1280467467.13603") :method +.sub "!PREFIX__integer" :subid("62_1282016519.8364") :method .annotate 'line', 33 $P173 = self."!PREFIX__!subrule"("decint", "") $P174 = self."!PREFIX__!subrule"("decint", "0d") @@ -2979,7 +3169,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "dec_number" :subid("63_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "dec_number" :subid("63_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx183_tgt .local int rx183_pos @@ -2987,8 +3177,10 @@ An operator precedence parser. .local int rx183_eos .local int rx183_rep .local pmc rx183_cur + .local pmc rx183_debug (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"() rx183_cur."!cursor_caparray"("escale") + getattribute rx183_debug, rx183_cur, "$!debug" .lex unicode:"$\x{a2}", rx183_cur .local pmc match .lex "$/", match @@ -3000,7 +3192,9 @@ An operator precedence parser. substr rx183_tgt, rx183_tgt, rx183_off rx183_start: eq $I10, 1, rx183_restart + if_null rx183_debug, debug_184 rx183_cur."!cursor_debug"("START ", "dec_number") + debug_184: $I10 = self.'from'() ne $I10, -1, rxscan186_done goto rxscan186_scan @@ -3025,8 +3219,8 @@ An operator precedence parser. add $I11, rx183_pos, 1 gt $I11, rx183_eos, rx183_fail sub $I11, rx183_pos, rx183_off - substr $S10, rx183_tgt, $I11, 1 - ne $S10, ".", rx183_fail + ord $I11, rx183_tgt, $I11 + ne $I11, 46, rx183_fail add rx183_pos, 1 # rx charclass_q d r 1..-1 sub $I10, rx183_pos, rx183_off @@ -3083,8 +3277,8 @@ An operator precedence parser. add $I11, rx183_pos, 1 gt $I11, rx183_eos, rx183_fail sub $I11, rx183_pos, rx183_off - substr $S10, rx183_tgt, $I11, 1 - ne $S10, ".", rx183_fail + ord $I11, rx183_tgt, $I11 + ne $I11, 46, rx183_fail add rx183_pos, 1 # rx charclass_q d r 1..-1 sub $I10, rx183_pos, rx183_off @@ -3157,11 +3351,15 @@ An operator precedence parser. .annotate 'line', 71 # rx pass rx183_cur."!cursor_pass"(rx183_pos, "dec_number") + if_null rx183_debug, debug_185 rx183_cur."!cursor_debug"("PASS ", "dec_number", " at pos=", rx183_pos) + debug_185: .return (rx183_cur) rx183_restart: .annotate 'line', 33 + if_null rx183_debug, debug_186 rx183_cur."!cursor_debug"("NEXT ", "dec_number") + debug_186: rx183_fail: (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0) lt rx183_pos, -1, rx183_done @@ -3169,14 +3367,16 @@ An operator precedence parser. jump $I10 rx183_done: rx183_cur."!cursor_fail"() + if_null rx183_debug, debug_187 rx183_cur."!cursor_debug"("FAIL ", "dec_number") + debug_187: .return (rx183_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__dec_number" :subid("64_1280467467.13603") :method +.sub "!PREFIX__dec_number" :subid("64_1282016519.8364") :method .annotate 'line', 33 new $P185, "ResizablePMCArray" push $P185, "" @@ -3187,7 +3387,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "escale" :subid("65_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "escale" :subid("65_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx196_tgt .local int rx196_pos @@ -3195,7 +3395,9 @@ An operator precedence parser. .local int rx196_eos .local int rx196_rep .local pmc rx196_cur + .local pmc rx196_debug (rx196_cur, rx196_pos, rx196_tgt, $I10) = self."!cursor_start"() + getattribute rx196_debug, rx196_cur, "$!debug" .lex unicode:"$\x{a2}", rx196_cur .local pmc match .lex "$/", match @@ -3207,7 +3409,9 @@ An operator precedence parser. substr rx196_tgt, rx196_tgt, rx196_off rx196_start: eq $I10, 1, rx196_restart + if_null rx196_debug, debug_188 rx196_cur."!cursor_debug"("START ", "escale") + debug_188: $I10 = self.'from'() ne $I10, -1, rxscan199_done goto rxscan199_scan @@ -3250,11 +3454,15 @@ An operator precedence parser. add rx196_pos, rx196_off, $I11 # rx pass rx196_cur."!cursor_pass"(rx196_pos, "escale") + if_null rx196_debug, debug_189 rx196_cur."!cursor_debug"("PASS ", "escale", " at pos=", rx196_pos) + debug_189: .return (rx196_cur) rx196_restart: .annotate 'line', 33 + if_null rx196_debug, debug_190 rx196_cur."!cursor_debug"("NEXT ", "escale") + debug_190: rx196_fail: (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0) lt rx196_pos, -1, rx196_done @@ -3262,14 +3470,16 @@ An operator precedence parser. jump $I10 rx196_done: rx196_cur."!cursor_fail"() + if_null rx196_debug, debug_191 rx196_cur."!cursor_debug"("FAIL ", "escale") + debug_191: .return (rx196_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__escale" :subid("66_1280467467.13603") :method +.sub "!PREFIX__escale" :subid("66_1282016519.8364") :method .annotate 'line', 33 new $P198, "ResizablePMCArray" push $P198, "e" @@ -3279,7 +3489,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape" :subid("67_1280467467.13603") :method +.sub "quote_escape" :subid("67_1282016519.8364") :method .annotate 'line', 79 $P202 = self."!protoregex"("quote_escape") .return ($P202) @@ -3287,7 +3497,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape" :subid("68_1280467467.13603") :method +.sub "!PREFIX__quote_escape" :subid("68_1282016519.8364") :method .annotate 'line', 79 $P204 = self."!PREFIX__!protoregex"("quote_escape") .return ($P204) @@ -3295,7 +3505,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("69_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("69_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx206_tgt .local int rx206_pos @@ -3303,7 +3513,9 @@ An operator precedence parser. .local int rx206_eos .local int rx206_rep .local pmc rx206_cur + .local pmc rx206_debug (rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"() + getattribute rx206_debug, rx206_cur, "$!debug" .lex unicode:"$\x{a2}", rx206_cur .local pmc match .lex "$/", match @@ -3315,7 +3527,9 @@ An operator precedence parser. substr rx206_tgt, rx206_tgt, rx206_off rx206_start: eq $I10, 1, rx206_restart + if_null rx206_debug, debug_192 rx206_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_192: $I10 = self.'from'() ne $I10, -1, rxscan209_done goto rxscan209_scan @@ -3342,11 +3556,15 @@ An operator precedence parser. unless $P10, rx206_fail # rx pass rx206_cur."!cursor_pass"(rx206_pos, "quote_escape:sym") + if_null rx206_debug, debug_193 rx206_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx206_pos) + debug_193: .return (rx206_cur) rx206_restart: .annotate 'line', 33 + if_null rx206_debug, debug_194 rx206_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_194: rx206_fail: (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0) lt rx206_pos, -1, rx206_done @@ -3354,14 +3572,16 @@ An operator precedence parser. jump $I10 rx206_done: rx206_cur."!cursor_fail"() + if_null rx206_debug, debug_195 rx206_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_195: .return (rx206_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("70_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("70_1282016519.8364") :method .annotate 'line', 33 new $P208, "ResizablePMCArray" push $P208, "\\\\" @@ -3370,7 +3590,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("71_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("71_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx211_tgt .local int rx211_pos @@ -3378,7 +3598,9 @@ An operator precedence parser. .local int rx211_eos .local int rx211_rep .local pmc rx211_cur + .local pmc rx211_debug (rx211_cur, rx211_pos, rx211_tgt, $I10) = self."!cursor_start"() + getattribute rx211_debug, rx211_cur, "$!debug" .lex unicode:"$\x{a2}", rx211_cur .local pmc match .lex "$/", match @@ -3390,7 +3612,9 @@ An operator precedence parser. substr rx211_tgt, rx211_tgt, rx211_off rx211_start: eq $I10, 1, rx211_restart + if_null rx211_debug, debug_196 rx211_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_196: $I10 = self.'from'() ne $I10, -1, rxscan214_done goto rxscan214_scan @@ -3408,8 +3632,8 @@ An operator precedence parser. add $I11, rx211_pos, 1 gt $I11, rx211_eos, rx211_fail sub $I11, rx211_pos, rx211_off - substr $S10, rx211_tgt, $I11, 1 - ne $S10, "\\", rx211_fail + ord $I11, rx211_tgt, $I11 + ne $I11, 92, rx211_fail add rx211_pos, 1 # rx subrule "quotemod_check" subtype=zerowidth negate= rx211_cur."!cursor_pos"(rx211_pos) @@ -3424,11 +3648,15 @@ An operator precedence parser. rx211_pos = $P10."pos"() # rx pass rx211_cur."!cursor_pass"(rx211_pos, "quote_escape:sym") + if_null rx211_debug, debug_197 rx211_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx211_pos) + debug_197: .return (rx211_cur) rx211_restart: .annotate 'line', 33 + if_null rx211_debug, debug_198 rx211_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_198: rx211_fail: (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0) lt rx211_pos, -1, rx211_done @@ -3436,14 +3664,16 @@ An operator precedence parser. jump $I10 rx211_done: rx211_cur."!cursor_fail"() + if_null rx211_debug, debug_199 rx211_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_199: .return (rx211_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("72_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("72_1282016519.8364") :method .annotate 'line', 33 new $P213, "ResizablePMCArray" push $P213, "\\" @@ -3452,7 +3682,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("73_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("73_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx216_tgt .local int rx216_pos @@ -3460,7 +3690,9 @@ An operator precedence parser. .local int rx216_eos .local int rx216_rep .local pmc rx216_cur + .local pmc rx216_debug (rx216_cur, rx216_pos, rx216_tgt, $I10) = self."!cursor_start"() + getattribute rx216_debug, rx216_cur, "$!debug" .lex unicode:"$\x{a2}", rx216_cur .local pmc match .lex "$/", match @@ -3472,7 +3704,9 @@ An operator precedence parser. substr rx216_tgt, rx216_tgt, rx216_off rx216_start: eq $I10, 1, rx216_restart + if_null rx216_debug, debug_200 rx216_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_200: $I10 = self.'from'() ne $I10, -1, rxscan219_done goto rxscan219_scan @@ -3499,11 +3733,15 @@ An operator precedence parser. unless $P10, rx216_fail # rx pass rx216_cur."!cursor_pass"(rx216_pos, "quote_escape:sym") + if_null rx216_debug, debug_201 rx216_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx216_pos) + debug_201: .return (rx216_cur) rx216_restart: .annotate 'line', 33 + if_null rx216_debug, debug_202 rx216_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_202: rx216_fail: (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0) lt rx216_pos, -1, rx216_done @@ -3511,14 +3749,16 @@ An operator precedence parser. jump $I10 rx216_done: rx216_cur."!cursor_fail"() + if_null rx216_debug, debug_203 rx216_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_203: .return (rx216_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("74_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("74_1282016519.8364") :method .annotate 'line', 33 new $P218, "ResizablePMCArray" push $P218, "\\b" @@ -3527,7 +3767,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("75_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("75_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx221_tgt .local int rx221_pos @@ -3535,7 +3775,9 @@ An operator precedence parser. .local int rx221_eos .local int rx221_rep .local pmc rx221_cur + .local pmc rx221_debug (rx221_cur, rx221_pos, rx221_tgt, $I10) = self."!cursor_start"() + getattribute rx221_debug, rx221_cur, "$!debug" .lex unicode:"$\x{a2}", rx221_cur .local pmc match .lex "$/", match @@ -3547,7 +3789,9 @@ An operator precedence parser. substr rx221_tgt, rx221_tgt, rx221_off rx221_start: eq $I10, 1, rx221_restart + if_null rx221_debug, debug_204 rx221_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_204: $I10 = self.'from'() ne $I10, -1, rxscan224_done goto rxscan224_scan @@ -3574,11 +3818,15 @@ An operator precedence parser. unless $P10, rx221_fail # rx pass rx221_cur."!cursor_pass"(rx221_pos, "quote_escape:sym") + if_null rx221_debug, debug_205 rx221_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx221_pos) + debug_205: .return (rx221_cur) rx221_restart: .annotate 'line', 33 + if_null rx221_debug, debug_206 rx221_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_206: rx221_fail: (rx221_rep, rx221_pos, $I10, $P10) = rx221_cur."!mark_fail"(0) lt rx221_pos, -1, rx221_done @@ -3586,14 +3834,16 @@ An operator precedence parser. jump $I10 rx221_done: rx221_cur."!cursor_fail"() + if_null rx221_debug, debug_207 rx221_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_207: .return (rx221_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("76_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("76_1282016519.8364") :method .annotate 'line', 33 new $P223, "ResizablePMCArray" push $P223, "\\n" @@ -3602,7 +3852,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("77_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("77_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx226_tgt .local int rx226_pos @@ -3610,7 +3860,9 @@ An operator precedence parser. .local int rx226_eos .local int rx226_rep .local pmc rx226_cur + .local pmc rx226_debug (rx226_cur, rx226_pos, rx226_tgt, $I10) = self."!cursor_start"() + getattribute rx226_debug, rx226_cur, "$!debug" .lex unicode:"$\x{a2}", rx226_cur .local pmc match .lex "$/", match @@ -3622,7 +3874,9 @@ An operator precedence parser. substr rx226_tgt, rx226_tgt, rx226_off rx226_start: eq $I10, 1, rx226_restart + if_null rx226_debug, debug_208 rx226_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_208: $I10 = self.'from'() ne $I10, -1, rxscan229_done goto rxscan229_scan @@ -3649,11 +3903,15 @@ An operator precedence parser. unless $P10, rx226_fail # rx pass rx226_cur."!cursor_pass"(rx226_pos, "quote_escape:sym") + if_null rx226_debug, debug_209 rx226_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx226_pos) + debug_209: .return (rx226_cur) rx226_restart: .annotate 'line', 33 + if_null rx226_debug, debug_210 rx226_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_210: rx226_fail: (rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0) lt rx226_pos, -1, rx226_done @@ -3661,14 +3919,16 @@ An operator precedence parser. jump $I10 rx226_done: rx226_cur."!cursor_fail"() + if_null rx226_debug, debug_211 rx226_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_211: .return (rx226_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("78_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("78_1282016519.8364") :method .annotate 'line', 33 new $P228, "ResizablePMCArray" push $P228, "\\r" @@ -3677,7 +3937,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("79_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("79_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx231_tgt .local int rx231_pos @@ -3685,7 +3945,9 @@ An operator precedence parser. .local int rx231_eos .local int rx231_rep .local pmc rx231_cur + .local pmc rx231_debug (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"() + getattribute rx231_debug, rx231_cur, "$!debug" .lex unicode:"$\x{a2}", rx231_cur .local pmc match .lex "$/", match @@ -3697,7 +3959,9 @@ An operator precedence parser. substr rx231_tgt, rx231_tgt, rx231_off rx231_start: eq $I10, 1, rx231_restart + if_null rx231_debug, debug_212 rx231_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_212: $I10 = self.'from'() ne $I10, -1, rxscan234_done goto rxscan234_scan @@ -3724,11 +3988,15 @@ An operator precedence parser. unless $P10, rx231_fail # rx pass rx231_cur."!cursor_pass"(rx231_pos, "quote_escape:sym") + if_null rx231_debug, debug_213 rx231_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx231_pos) + debug_213: .return (rx231_cur) rx231_restart: .annotate 'line', 33 + if_null rx231_debug, debug_214 rx231_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_214: rx231_fail: (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0) lt rx231_pos, -1, rx231_done @@ -3736,14 +4004,16 @@ An operator precedence parser. jump $I10 rx231_done: rx231_cur."!cursor_fail"() + if_null rx231_debug, debug_215 rx231_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_215: .return (rx231_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("80_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("80_1282016519.8364") :method .annotate 'line', 33 new $P233, "ResizablePMCArray" push $P233, "\\t" @@ -3752,7 +4022,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("81_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("81_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx236_tgt .local int rx236_pos @@ -3760,7 +4030,9 @@ An operator precedence parser. .local int rx236_eos .local int rx236_rep .local pmc rx236_cur + .local pmc rx236_debug (rx236_cur, rx236_pos, rx236_tgt, $I10) = self."!cursor_start"() + getattribute rx236_debug, rx236_cur, "$!debug" .lex unicode:"$\x{a2}", rx236_cur .local pmc match .lex "$/", match @@ -3772,7 +4044,9 @@ An operator precedence parser. substr rx236_tgt, rx236_tgt, rx236_off rx236_start: eq $I10, 1, rx236_restart + if_null rx236_debug, debug_216 rx236_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_216: $I10 = self.'from'() ne $I10, -1, rxscan239_done goto rxscan239_scan @@ -3799,11 +4073,15 @@ An operator precedence parser. unless $P10, rx236_fail # rx pass rx236_cur."!cursor_pass"(rx236_pos, "quote_escape:sym") + if_null rx236_debug, debug_217 rx236_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx236_pos) + debug_217: .return (rx236_cur) rx236_restart: .annotate 'line', 33 + if_null rx236_debug, debug_218 rx236_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_218: rx236_fail: (rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0) lt rx236_pos, -1, rx236_done @@ -3811,14 +4089,16 @@ An operator precedence parser. jump $I10 rx236_done: rx236_cur."!cursor_fail"() + if_null rx236_debug, debug_219 rx236_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_219: .return (rx236_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("82_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("82_1282016519.8364") :method .annotate 'line', 33 new $P238, "ResizablePMCArray" push $P238, "\\f" @@ -3827,7 +4107,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("83_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("83_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx241_tgt .local int rx241_pos @@ -3835,7 +4115,9 @@ An operator precedence parser. .local int rx241_eos .local int rx241_rep .local pmc rx241_cur + .local pmc rx241_debug (rx241_cur, rx241_pos, rx241_tgt, $I10) = self."!cursor_start"() + getattribute rx241_debug, rx241_cur, "$!debug" .lex unicode:"$\x{a2}", rx241_cur .local pmc match .lex "$/", match @@ -3847,7 +4129,9 @@ An operator precedence parser. substr rx241_tgt, rx241_tgt, rx241_off rx241_start: eq $I10, 1, rx241_restart + if_null rx241_debug, debug_220 rx241_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_220: $I10 = self.'from'() ne $I10, -1, rxscan244_done goto rxscan244_scan @@ -3874,11 +4158,15 @@ An operator precedence parser. unless $P10, rx241_fail # rx pass rx241_cur."!cursor_pass"(rx241_pos, "quote_escape:sym") + if_null rx241_debug, debug_221 rx241_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx241_pos) + debug_221: .return (rx241_cur) rx241_restart: .annotate 'line', 33 + if_null rx241_debug, debug_222 rx241_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_222: rx241_fail: (rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0) lt rx241_pos, -1, rx241_done @@ -3886,14 +4174,16 @@ An operator precedence parser. jump $I10 rx241_done: rx241_cur."!cursor_fail"() + if_null rx241_debug, debug_223 rx241_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_223: .return (rx241_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("84_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("84_1282016519.8364") :method .annotate 'line', 33 new $P243, "ResizablePMCArray" push $P243, "\\e" @@ -3902,7 +4192,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("85_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("85_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx246_tgt .local int rx246_pos @@ -3910,7 +4200,9 @@ An operator precedence parser. .local int rx246_eos .local int rx246_rep .local pmc rx246_cur + .local pmc rx246_debug (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"() + getattribute rx246_debug, rx246_cur, "$!debug" .lex unicode:"$\x{a2}", rx246_cur .local pmc match .lex "$/", match @@ -3922,7 +4214,9 @@ An operator precedence parser. substr rx246_tgt, rx246_tgt, rx246_off rx246_start: eq $I10, 1, rx246_restart + if_null rx246_debug, debug_224 rx246_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_224: $I10 = self.'from'() ne $I10, -1, rxscan249_done goto rxscan249_scan @@ -3964,8 +4258,8 @@ An operator precedence parser. add $I11, rx246_pos, 1 gt $I11, rx246_eos, rx246_fail sub $I11, rx246_pos, rx246_off - substr $S10, rx246_tgt, $I11, 1 - ne $S10, "[", rx246_fail + ord $I11, rx246_tgt, $I11 + ne $I11, 91, rx246_fail add rx246_pos, 1 # rx subrule "hexints" subtype=capture negate= rx246_cur."!cursor_pos"(rx246_pos) @@ -3978,18 +4272,22 @@ An operator precedence parser. add $I11, rx246_pos, 1 gt $I11, rx246_eos, rx246_fail sub $I11, rx246_pos, rx246_off - substr $S10, rx246_tgt, $I11, 1 - ne $S10, "]", rx246_fail + ord $I11, rx246_tgt, $I11 + ne $I11, 93, rx246_fail add rx246_pos, 1 alt250_end: .annotate 'line', 89 # rx pass rx246_cur."!cursor_pass"(rx246_pos, "quote_escape:sym") + if_null rx246_debug, debug_225 rx246_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx246_pos) + debug_225: .return (rx246_cur) rx246_restart: .annotate 'line', 33 + if_null rx246_debug, debug_226 rx246_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_226: rx246_fail: (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0) lt rx246_pos, -1, rx246_done @@ -3997,14 +4295,16 @@ An operator precedence parser. jump $I10 rx246_done: rx246_cur."!cursor_fail"() + if_null rx246_debug, debug_227 rx246_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_227: .return (rx246_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("86_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("86_1282016519.8364") :method .annotate 'line', 33 new $P248, "ResizablePMCArray" push $P248, unicode:"\\x" @@ -4013,7 +4313,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("87_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("87_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx252_tgt .local int rx252_pos @@ -4021,7 +4321,9 @@ An operator precedence parser. .local int rx252_eos .local int rx252_rep .local pmc rx252_cur + .local pmc rx252_debug (rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"() + getattribute rx252_debug, rx252_cur, "$!debug" .lex unicode:"$\x{a2}", rx252_cur .local pmc match .lex "$/", match @@ -4033,7 +4335,9 @@ An operator precedence parser. substr rx252_tgt, rx252_tgt, rx252_off rx252_start: eq $I10, 1, rx252_restart + if_null rx252_debug, debug_228 rx252_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_228: $I10 = self.'from'() ne $I10, -1, rxscan255_done goto rxscan255_scan @@ -4075,8 +4379,8 @@ An operator precedence parser. add $I11, rx252_pos, 1 gt $I11, rx252_eos, rx252_fail sub $I11, rx252_pos, rx252_off - substr $S10, rx252_tgt, $I11, 1 - ne $S10, "[", rx252_fail + ord $I11, rx252_tgt, $I11 + ne $I11, 91, rx252_fail add rx252_pos, 1 # rx subrule "octints" subtype=capture negate= rx252_cur."!cursor_pos"(rx252_pos) @@ -4089,18 +4393,22 @@ An operator precedence parser. add $I11, rx252_pos, 1 gt $I11, rx252_eos, rx252_fail sub $I11, rx252_pos, rx252_off - substr $S10, rx252_tgt, $I11, 1 - ne $S10, "]", rx252_fail + ord $I11, rx252_tgt, $I11 + ne $I11, 93, rx252_fail add rx252_pos, 1 alt256_end: .annotate 'line', 93 # rx pass rx252_cur."!cursor_pass"(rx252_pos, "quote_escape:sym") + if_null rx252_debug, debug_229 rx252_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx252_pos) + debug_229: .return (rx252_cur) rx252_restart: .annotate 'line', 33 + if_null rx252_debug, debug_230 rx252_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_230: rx252_fail: (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0) lt rx252_pos, -1, rx252_done @@ -4108,14 +4416,16 @@ An operator precedence parser. jump $I10 rx252_done: rx252_cur."!cursor_fail"() + if_null rx252_debug, debug_231 rx252_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_231: .return (rx252_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("88_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("88_1282016519.8364") :method .annotate 'line', 33 new $P254, "ResizablePMCArray" push $P254, "\\o" @@ -4124,7 +4434,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("89_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("89_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx258_tgt .local int rx258_pos @@ -4132,7 +4442,9 @@ An operator precedence parser. .local int rx258_eos .local int rx258_rep .local pmc rx258_cur + .local pmc rx258_debug (rx258_cur, rx258_pos, rx258_tgt, $I10) = self."!cursor_start"() + getattribute rx258_debug, rx258_cur, "$!debug" .lex unicode:"$\x{a2}", rx258_cur .local pmc match .lex "$/", match @@ -4144,7 +4456,9 @@ An operator precedence parser. substr rx258_tgt, rx258_tgt, rx258_off rx258_start: eq $I10, 1, rx258_restart + if_null rx258_debug, debug_232 rx258_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_232: $I10 = self.'from'() ne $I10, -1, rxscan261_done goto rxscan261_scan @@ -4178,11 +4492,15 @@ An operator precedence parser. rx258_pos = $P10."pos"() # rx pass rx258_cur."!cursor_pass"(rx258_pos, "quote_escape:sym") + if_null rx258_debug, debug_233 rx258_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx258_pos) + debug_233: .return (rx258_cur) rx258_restart: .annotate 'line', 33 + if_null rx258_debug, debug_234 rx258_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_234: rx258_fail: (rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0) lt rx258_pos, -1, rx258_done @@ -4190,14 +4508,16 @@ An operator precedence parser. jump $I10 rx258_done: rx258_cur."!cursor_fail"() + if_null rx258_debug, debug_235 rx258_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_235: .return (rx258_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("90_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("90_1282016519.8364") :method .annotate 'line', 33 new $P260, "ResizablePMCArray" push $P260, "\\c" @@ -4206,7 +4526,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym<0>" :subid("91_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym<0>" :subid("91_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx263_tgt .local int rx263_pos @@ -4214,7 +4534,9 @@ An operator precedence parser. .local int rx263_eos .local int rx263_rep .local pmc rx263_cur + .local pmc rx263_debug (rx263_cur, rx263_pos, rx263_tgt, $I10) = self."!cursor_start"() + getattribute rx263_debug, rx263_cur, "$!debug" .lex unicode:"$\x{a2}", rx263_cur .local pmc match .lex "$/", match @@ -4226,7 +4548,9 @@ An operator precedence parser. substr rx263_tgt, rx263_tgt, rx263_off rx263_start: eq $I10, 1, rx263_restart + if_null rx263_debug, debug_236 rx263_cur."!cursor_debug"("START ", "quote_escape:sym<0>") + debug_236: $I10 = self.'from'() ne $I10, -1, rxscan266_done goto rxscan266_scan @@ -4244,8 +4568,8 @@ An operator precedence parser. add $I11, rx263_pos, 1 gt $I11, rx263_eos, rx263_fail sub $I11, rx263_pos, rx263_off - substr $S10, rx263_tgt, $I11, 1 - ne $S10, "\\", rx263_fail + ord $I11, rx263_tgt, $I11 + ne $I11, 92, rx263_fail add rx263_pos, 1 # rx subcapture "sym" set_addr $I10, rxcap_267_fail @@ -4254,8 +4578,8 @@ An operator precedence parser. add $I11, rx263_pos, 1 gt $I11, rx263_eos, rx263_fail sub $I11, rx263_pos, rx263_off - substr $S10, rx263_tgt, $I11, 1 - ne $S10, "0", rx263_fail + ord $I11, rx263_tgt, $I11 + ne $I11, 48, rx263_fail add rx263_pos, 1 set_addr $I10, rxcap_267_fail ($I12, $I11) = rx263_cur."!mark_peek"($I10) @@ -4274,11 +4598,15 @@ An operator precedence parser. unless $P10, rx263_fail # rx pass rx263_cur."!cursor_pass"(rx263_pos, "quote_escape:sym<0>") + if_null rx263_debug, debug_237 rx263_cur."!cursor_debug"("PASS ", "quote_escape:sym<0>", " at pos=", rx263_pos) + debug_237: .return (rx263_cur) rx263_restart: .annotate 'line', 33 + if_null rx263_debug, debug_238 rx263_cur."!cursor_debug"("NEXT ", "quote_escape:sym<0>") + debug_238: rx263_fail: (rx263_rep, rx263_pos, $I10, $P10) = rx263_cur."!mark_fail"(0) lt rx263_pos, -1, rx263_done @@ -4286,14 +4614,16 @@ An operator precedence parser. jump $I10 rx263_done: rx263_cur."!cursor_fail"() + if_null rx263_debug, debug_239 rx263_cur."!cursor_debug"("FAIL ", "quote_escape:sym<0>") + debug_239: .return (rx263_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1282016519.8364") :method .annotate 'line', 33 new $P265, "ResizablePMCArray" push $P265, "\\0" @@ -4302,13 +4632,13 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("93_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "quote_escape:sym" :subid("93_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 - .const 'Sub' $P288 = "97_1280467467.13603" + .const 'Sub' $P288 = "97_1282016519.8364" capture_lex $P288 - .const 'Sub' $P281 = "96_1280467467.13603" + .const 'Sub' $P281 = "96_1282016519.8364" capture_lex $P281 - .const 'Sub' $P276 = "95_1280467467.13603" + .const 'Sub' $P276 = "95_1282016519.8364" capture_lex $P276 .local string rx269_tgt .local int rx269_pos @@ -4316,7 +4646,9 @@ An operator precedence parser. .local int rx269_eos .local int rx269_rep .local pmc rx269_cur + .local pmc rx269_debug (rx269_cur, rx269_pos, rx269_tgt, $I10) = self."!cursor_start"() + getattribute rx269_debug, rx269_cur, "$!debug" .lex unicode:"$\x{a2}", rx269_cur .local pmc match .lex "$/", match @@ -4328,7 +4660,9 @@ An operator precedence parser. substr rx269_tgt, rx269_tgt, rx269_off rx269_start: eq $I10, 1, rx269_restart + if_null rx269_debug, debug_240 rx269_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_240: $I10 = self.'from'() ne $I10, -1, rxscan272_done goto rxscan272_scan @@ -4346,15 +4680,15 @@ An operator precedence parser. find_lex $P273, unicode:"$\x{a2}" $P274 = $P273."MATCH"() store_lex "$/", $P274 - .const 'Sub' $P276 = "95_1280467467.13603" + .const 'Sub' $P276 = "95_1282016519.8364" capture_lex $P276 $P277 = $P276() # rx literal "\\" add $I11, rx269_pos, 1 gt $I11, rx269_eos, rx269_fail sub $I11, rx269_pos, rx269_off - substr $S10, rx269_tgt, $I11, 1 - ne $S10, "\\", rx269_fail + ord $I11, rx269_tgt, $I11 + ne $I11, 92, rx269_fail add rx269_pos, 1 alt278_0: .annotate 'line', 101 @@ -4372,7 +4706,7 @@ An operator precedence parser. .annotate 'line', 104 # rx subrule $P281 subtype=capture negate= rx269_cur."!cursor_pos"(rx269_pos) - .const 'Sub' $P281 = "96_1280467467.13603" + .const 'Sub' $P281 = "96_1282016519.8364" capture_lex $P281 $P10 = rx269_cur.$P281() unless $P10, rx269_fail @@ -4406,7 +4740,7 @@ An operator precedence parser. find_lex $P285, unicode:"$\x{a2}" $P286 = $P285."MATCH"() store_lex "$/", $P286 - .const 'Sub' $P288 = "97_1280467467.13603" + .const 'Sub' $P288 = "97_1282016519.8364" capture_lex $P288 $P298 = $P288() alt279_end: @@ -4435,11 +4769,15 @@ An operator precedence parser. .annotate 'line', 99 # rx pass rx269_cur."!cursor_pass"(rx269_pos, "quote_escape:sym") + if_null rx269_debug, debug_247 rx269_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx269_pos) + debug_247: .return (rx269_cur) rx269_restart: .annotate 'line', 33 + if_null rx269_debug, debug_248 rx269_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_248: rx269_fail: (rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0) lt rx269_pos, -1, rx269_done @@ -4447,14 +4785,16 @@ An operator precedence parser. jump $I10 rx269_done: rx269_cur."!cursor_fail"() + if_null rx269_debug, debug_249 rx269_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_249: .return (rx269_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("94_1280467467.13603") :method +.sub "!PREFIX__quote_escape:sym" :subid("94_1282016519.8364") :method .annotate 'line', 33 new $P271, "ResizablePMCArray" push $P271, "" @@ -4463,14 +4803,14 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "_block275" :anon :subid("95_1280467467.13603") :outer("93_1280467467.13603") +.sub "_block275" :anon :subid("95_1282016519.8364") :outer("93_1282016519.8364") .annotate 'line', 100 .return () .end .namespace ["HLL";"Grammar"] -.sub "_block280" :anon :subid("96_1280467467.13603") :method :outer("93_1280467467.13603") +.sub "_block280" :anon :subid("96_1282016519.8364") :method :outer("93_1282016519.8364") .annotate 'line', 104 .local string rx282_tgt .local int rx282_pos @@ -4478,7 +4818,9 @@ An operator precedence parser. .local int rx282_eos .local int rx282_rep .local pmc rx282_cur + .local pmc rx282_debug (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"() + getattribute rx282_debug, rx282_cur, "$!debug" .lex unicode:"$\x{a2}", rx282_cur .local pmc match .lex "$/", match @@ -4490,7 +4832,9 @@ An operator precedence parser. substr rx282_tgt, rx282_tgt, rx282_off rx282_start: eq $I10, 1, rx282_restart + if_null rx282_debug, debug_241 rx282_cur."!cursor_debug"("START ", "") + debug_241: $I10 = self.'from'() ne $I10, -1, rxscan283_done goto rxscan283_scan @@ -4511,10 +4855,14 @@ An operator precedence parser. inc rx282_pos # rx pass rx282_cur."!cursor_pass"(rx282_pos, "") + if_null rx282_debug, debug_242 rx282_cur."!cursor_debug"("PASS ", "", " at pos=", rx282_pos) + debug_242: .return (rx282_cur) rx282_restart: + if_null rx282_debug, debug_243 rx282_cur."!cursor_debug"("NEXT ", "") + debug_243: rx282_fail: (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0) lt rx282_pos, -1, rx282_done @@ -4522,27 +4870,29 @@ An operator precedence parser. jump $I10 rx282_done: rx282_cur."!cursor_fail"() + if_null rx282_debug, debug_244 rx282_cur."!cursor_debug"("FAIL ", "") + debug_244: .return (rx282_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "_block287" :anon :subid("97_1280467467.13603") :outer("93_1280467467.13603") +.sub "_block287" :anon :subid("97_1282016519.8364") :outer("93_1282016519.8364") .annotate 'line', 105 find_lex $P289, "$/" $P290 = $P289."CURSOR"() new $P291, "String" assign $P291, "Unrecognized backslash sequence: '\\" find_lex $P292, "$/" - unless_null $P292, vivify_108 + unless_null $P292, vivify_245 $P292 = root_new ['parrot';'Hash'] - vivify_108: + vivify_245: set $P293, $P292["x"] - unless_null $P293, vivify_109 + unless_null $P293, vivify_246 new $P293, "Undef" - vivify_109: + vivify_246: $S294 = $P293."Str"() concat $P295, $P291, $S294 concat $P296, $P295, "'" @@ -4552,9 +4902,9 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "charname" :subid("98_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "charname" :subid("98_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 - .const 'Sub' $P310 = "100_1280467467.13603" + .const 'Sub' $P310 = "100_1282016519.8364" capture_lex $P310 .local string rx301_tgt .local int rx301_pos @@ -4562,7 +4912,9 @@ An operator precedence parser. .local int rx301_eos .local int rx301_rep .local pmc rx301_cur + .local pmc rx301_debug (rx301_cur, rx301_pos, rx301_tgt, $I10) = self."!cursor_start"() + getattribute rx301_debug, rx301_cur, "$!debug" .lex unicode:"$\x{a2}", rx301_cur .local pmc match .lex "$/", match @@ -4574,7 +4926,9 @@ An operator precedence parser. substr rx301_tgt, rx301_tgt, rx301_off rx301_start: eq $I10, 1, rx301_restart + if_null rx301_debug, debug_250 rx301_cur."!cursor_debug"("START ", "charname") + debug_250: $I10 = self.'from'() ne $I10, -1, rxscan305_done goto rxscan305_scan @@ -4634,7 +4988,7 @@ An operator precedence parser. .annotate 'line', 114 # rx subrule "before" subtype=zerowidth negate= rx301_cur."!cursor_pos"(rx301_pos) - .const 'Sub' $P310 = "100_1280467467.13603" + .const 'Sub' $P310 = "100_1282016519.8364" capture_lex $P310 $P10 = rx301_cur."before"($P310) unless $P10, rx301_fail @@ -4642,11 +4996,15 @@ An operator precedence parser. .annotate 'line', 111 # rx pass rx301_cur."!cursor_pass"(rx301_pos, "charname") + if_null rx301_debug, debug_255 rx301_cur."!cursor_debug"("PASS ", "charname", " at pos=", rx301_pos) + debug_255: .return (rx301_cur) rx301_restart: .annotate 'line', 33 + if_null rx301_debug, debug_256 rx301_cur."!cursor_debug"("NEXT ", "charname") + debug_256: rx301_fail: (rx301_rep, rx301_pos, $I10, $P10) = rx301_cur."!mark_fail"(0) lt rx301_pos, -1, rx301_done @@ -4654,14 +5012,16 @@ An operator precedence parser. jump $I10 rx301_done: rx301_cur."!cursor_fail"() + if_null rx301_debug, debug_257 rx301_cur."!cursor_debug"("FAIL ", "charname") + debug_257: .return (rx301_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__charname" :subid("99_1280467467.13603") :method +.sub "!PREFIX__charname" :subid("99_1282016519.8364") :method .annotate 'line', 33 $P303 = self."!PREFIX__!subrule"("integer", "") new $P304, "ResizablePMCArray" @@ -4723,7 +5083,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "_block309" :anon :subid("100_1280467467.13603") :method :outer("98_1280467467.13603") +.sub "_block309" :anon :subid("100_1282016519.8364") :method :outer("98_1282016519.8364") .annotate 'line', 114 .local string rx311_tgt .local int rx311_pos @@ -4731,7 +5091,9 @@ An operator precedence parser. .local int rx311_eos .local int rx311_rep .local pmc rx311_cur + .local pmc rx311_debug (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"() + getattribute rx311_debug, rx311_cur, "$!debug" .lex unicode:"$\x{a2}", rx311_cur .local pmc match .lex "$/", match @@ -4743,7 +5105,9 @@ An operator precedence parser. substr rx311_tgt, rx311_tgt, rx311_off rx311_start: eq $I10, 1, rx311_restart + if_null rx311_debug, debug_251 rx311_cur."!cursor_debug"("START ", "") + debug_251: $I10 = self.'from'() ne $I10, -1, rxscan312_done goto rxscan312_scan @@ -4769,10 +5133,14 @@ An operator precedence parser. inc rx311_pos # rx pass rx311_cur."!cursor_pass"(rx311_pos, "") + if_null rx311_debug, debug_252 rx311_cur."!cursor_debug"("PASS ", "", " at pos=", rx311_pos) + debug_252: .return (rx311_cur) rx311_restart: + if_null rx311_debug, debug_253 rx311_cur."!cursor_debug"("NEXT ", "") + debug_253: rx311_fail: (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0) lt rx311_pos, -1, rx311_done @@ -4780,14 +5148,16 @@ An operator precedence parser. jump $I10 rx311_done: rx311_cur."!cursor_fail"() + if_null rx311_debug, debug_254 rx311_cur."!cursor_debug"("FAIL ", "") + debug_254: .return (rx311_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "charnames" :subid("101_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "charnames" :subid("101_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx314_tgt .local int rx314_pos @@ -4795,8 +5165,10 @@ An operator precedence parser. .local int rx314_eos .local int rx314_rep .local pmc rx314_cur + .local pmc rx314_debug (rx314_cur, rx314_pos, rx314_tgt, $I10) = self."!cursor_start"() rx314_cur."!cursor_caparray"("charname") + getattribute rx314_debug, rx314_cur, "$!debug" .lex unicode:"$\x{a2}", rx314_cur .local pmc match .lex "$/", match @@ -4808,7 +5180,9 @@ An operator precedence parser. substr rx314_tgt, rx314_tgt, rx314_off rx314_start: eq $I10, 1, rx314_restart + if_null rx314_debug, debug_258 rx314_cur."!cursor_debug"("START ", "charnames") + debug_258: $I10 = self.'from'() ne $I10, -1, rxscan317_done goto rxscan317_scan @@ -4851,18 +5225,22 @@ An operator precedence parser. add $I11, rx314_pos, 1 gt $I11, rx314_eos, rx314_fail sub $I11, rx314_pos, rx314_off - substr $S10, rx314_tgt, $I11, 1 - ne $S10, ",", rx314_fail + ord $I11, rx314_tgt, $I11 + ne $I11, 44, rx314_fail add rx314_pos, 1 goto rxquantr318_loop rxquantr318_done: # rx pass rx314_cur."!cursor_pass"(rx314_pos, "charnames") + if_null rx314_debug, debug_259 rx314_cur."!cursor_debug"("PASS ", "charnames", " at pos=", rx314_pos) + debug_259: .return (rx314_cur) rx314_restart: .annotate 'line', 33 + if_null rx314_debug, debug_260 rx314_cur."!cursor_debug"("NEXT ", "charnames") + debug_260: rx314_fail: (rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0) lt rx314_pos, -1, rx314_done @@ -4870,14 +5248,16 @@ An operator precedence parser. jump $I10 rx314_done: rx314_cur."!cursor_fail"() + if_null rx314_debug, debug_261 rx314_cur."!cursor_debug"("FAIL ", "charnames") + debug_261: .return (rx314_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__charnames" :subid("102_1280467467.13603") :method +.sub "!PREFIX__charnames" :subid("102_1282016519.8364") :method .annotate 'line', 33 new $P316, "ResizablePMCArray" push $P316, "" @@ -4886,7 +5266,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "charspec" :subid("103_1280467467.13603") :method :outer("11_1280467467.13603") +.sub "charspec" :subid("103_1282016519.8364") :method :outer("11_1282016519.8364") .annotate 'line', 33 .local string rx320_tgt .local int rx320_pos @@ -4894,7 +5274,9 @@ An operator precedence parser. .local int rx320_eos .local int rx320_rep .local pmc rx320_cur + .local pmc rx320_debug (rx320_cur, rx320_pos, rx320_tgt, $I10) = self."!cursor_start"() + getattribute rx320_debug, rx320_cur, "$!debug" .lex unicode:"$\x{a2}", rx320_cur .local pmc match .lex "$/", match @@ -4906,7 +5288,9 @@ An operator precedence parser. substr rx320_tgt, rx320_tgt, rx320_off rx320_start: eq $I10, 1, rx320_restart + if_null rx320_debug, debug_262 rx320_cur."!cursor_debug"("START ", "charspec") + debug_262: $I10 = self.'from'() ne $I10, -1, rxscan325_done goto rxscan325_scan @@ -4928,8 +5312,8 @@ An operator precedence parser. add $I11, rx320_pos, 1 gt $I11, rx320_eos, rx320_fail sub $I11, rx320_pos, rx320_off - substr $S10, rx320_tgt, $I11, 1 - ne $S10, "[", rx320_fail + ord $I11, rx320_tgt, $I11 + ne $I11, 91, rx320_fail add rx320_pos, 1 # rx subrule "charnames" subtype=capture negate= rx320_cur."!cursor_pos"(rx320_pos) @@ -4942,8 +5326,8 @@ An operator precedence parser. add $I11, rx320_pos, 1 gt $I11, rx320_eos, rx320_fail sub $I11, rx320_pos, rx320_off - substr $S10, rx320_tgt, $I11, 1 - ne $S10, "]", rx320_fail + ord $I11, rx320_tgt, $I11 + ne $I11, 93, rx320_fail add rx320_pos, 1 goto alt326_end alt326_1: @@ -4964,8 +5348,8 @@ An operator precedence parser. add $I11, rx320_pos, 1 gt $I11, rx320_eos, rx320_fail sub $I11, rx320_pos, rx320_off - substr $S10, rx320_tgt, $I11, 1 - ne $S10, "_", rx320_fail + ord $I11, rx320_tgt, $I11 + ne $I11, 95, rx320_fail add rx320_pos, 1 # rx charclass_q d r 1..-1 sub $I10, rx320_pos, rx320_off @@ -5003,11 +5387,15 @@ An operator precedence parser. .annotate 'line', 117 # rx pass rx320_cur."!cursor_pass"(rx320_pos, "charspec") + if_null rx320_debug, debug_263 rx320_cur."!cursor_debug"("PASS ", "charspec", " at pos=", rx320_pos) + debug_263: .return (rx320_cur) rx320_restart: .annotate 'line', 33 + if_null rx320_debug, debug_264 rx320_cur."!cursor_debug"("NEXT ", "charspec") + debug_264: rx320_fail: (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0) lt rx320_pos, -1, rx320_done @@ -5015,14 +5403,16 @@ An operator precedence parser. jump $I10 rx320_done: rx320_cur."!cursor_fail"() + if_null rx320_debug, debug_265 rx320_cur."!cursor_debug"("FAIL ", "charspec") + debug_265: .return (rx320_cur) .return () .end .namespace ["HLL";"Grammar"] -.sub "!PREFIX__charspec" :subid("104_1280467467.13603") :method +.sub "!PREFIX__charspec" :subid("104_1282016519.8364") :method .annotate 'line', 33 $P322 = self."!PREFIX__!subrule"("panic", "") $P323 = self."!PREFIX__!subrule"("charnames", "[") @@ -5063,18 +5453,18 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "_block328" :load :anon :subid("105_1280467467.13603") +.sub "_block328" :load :anon :subid("105_1282016519.8364") .annotate 'line', 5 - .const 'Sub' $P330 = "11_1280467467.13603" + .const 'Sub' $P330 = "11_1282016519.8364" $P331 = $P330() .return ($P331) .end .namespace [] -.sub "_block333" :load :anon :subid("106_1280467467.13603") +.sub "_block333" :load :anon :subid("106_1282016519.8364") .annotate 'line', 1 - .const 'Sub' $P335 = "10_1280467467.13603" + .const 'Sub' $P335 = "10_1282016519.8364" $P336 = $P335() .return ($P336) .end @@ -5082,7 +5472,7 @@ An operator precedence parser. ### .include 'gen/hllgrammar-actions.pir' .namespace [] -.sub "_block11" :anon :subid("10_1280467468.44761") +.sub "_block11" :anon :subid("10_1282016521.02645") .annotate 'line', 0 get_hll_global $P14, ["HLL";"Actions"], "_block13" capture_lex $P14 @@ -5099,15 +5489,15 @@ An operator precedence parser. $P627 = $P14() .annotate 'line', 1 .return ($P627) - .const 'Sub' $P629 = "55_1280467468.44761" + .const 'Sub' $P629 = "55_1282016521.02645" .return ($P629) .end .namespace [] -.sub "" :load :init :subid("post56") :outer("10_1280467468.44761") +.sub "" :load :init :subid("post56") :outer("10_1282016521.02645") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1280467468.44761" + .const 'Sub' $P12 = "10_1282016521.02645" .local pmc block set block, $P12 $P632 = get_root_global ["parrot"], "P6metaclass" @@ -5116,75 +5506,75 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block13" :subid("11_1280467468.44761") :outer("10_1280467468.44761") +.sub "_block13" :subid("11_1282016521.02645") :outer("10_1282016521.02645") .annotate 'line', 3 - .const 'Sub' $P605 = "53_1280467468.44761" + .const 'Sub' $P605 = "53_1282016521.02645" capture_lex $P605 - .const 'Sub' $P580 = "51_1280467468.44761" + .const 'Sub' $P580 = "51_1282016521.02645" capture_lex $P580 - .const 'Sub' $P550 = "50_1280467468.44761" + .const 'Sub' $P550 = "50_1282016521.02645" capture_lex $P550 - .const 'Sub' $P531 = "49_1280467468.44761" + .const 'Sub' $P531 = "49_1282016521.02645" capture_lex $P531 - .const 'Sub' $P524 = "48_1280467468.44761" + .const 'Sub' $P524 = "48_1282016521.02645" capture_lex $P524 - .const 'Sub' $P514 = "47_1280467468.44761" + .const 'Sub' $P514 = "47_1282016521.02645" capture_lex $P514 - .const 'Sub' $P497 = "46_1280467468.44761" + .const 'Sub' $P497 = "46_1282016521.02645" capture_lex $P497 - .const 'Sub' $P480 = "45_1280467468.44761" + .const 'Sub' $P480 = "45_1282016521.02645" capture_lex $P480 - .const 'Sub' $P473 = "44_1280467468.44761" + .const 'Sub' $P473 = "44_1282016521.02645" capture_lex $P473 - .const 'Sub' $P466 = "43_1280467468.44761" + .const 'Sub' $P466 = "43_1282016521.02645" capture_lex $P466 - .const 'Sub' $P459 = "42_1280467468.44761" + .const 'Sub' $P459 = "42_1282016521.02645" capture_lex $P459 - .const 'Sub' $P452 = "41_1280467468.44761" + .const 'Sub' $P452 = "41_1282016521.02645" capture_lex $P452 - .const 'Sub' $P445 = "40_1280467468.44761" + .const 'Sub' $P445 = "40_1282016521.02645" capture_lex $P445 - .const 'Sub' $P438 = "39_1280467468.44761" + .const 'Sub' $P438 = "39_1282016521.02645" capture_lex $P438 - .const 'Sub' $P428 = "38_1280467468.44761" + .const 'Sub' $P428 = "38_1282016521.02645" capture_lex $P428 - .const 'Sub' $P421 = "37_1280467468.44761" + .const 'Sub' $P421 = "37_1282016521.02645" capture_lex $P421 - .const 'Sub' $P405 = "36_1280467468.44761" + .const 'Sub' $P405 = "36_1282016521.02645" capture_lex $P405 - .const 'Sub' $P330 = "34_1280467468.44761" + .const 'Sub' $P330 = "34_1282016521.02645" capture_lex $P330 - .const 'Sub' $P267 = "31_1280467468.44761" + .const 'Sub' $P267 = "31_1282016521.02645" capture_lex $P267 - .const 'Sub' $P258 = "30_1280467468.44761" + .const 'Sub' $P258 = "30_1282016521.02645" capture_lex $P258 - .const 'Sub' $P249 = "29_1280467468.44761" + .const 'Sub' $P249 = "29_1282016521.02645" capture_lex $P249 - .const 'Sub' $P240 = "28_1280467468.44761" + .const 'Sub' $P240 = "28_1282016521.02645" capture_lex $P240 - .const 'Sub' $P231 = "27_1280467468.44761" + .const 'Sub' $P231 = "27_1282016521.02645" capture_lex $P231 - .const 'Sub' $P222 = "26_1280467468.44761" + .const 'Sub' $P222 = "26_1282016521.02645" capture_lex $P222 - .const 'Sub' $P212 = "25_1280467468.44761" + .const 'Sub' $P212 = "25_1282016521.02645" capture_lex $P212 - .const 'Sub' $P202 = "24_1280467468.44761" + .const 'Sub' $P202 = "24_1282016521.02645" capture_lex $P202 - .const 'Sub' $P194 = "23_1280467468.44761" + .const 'Sub' $P194 = "23_1282016521.02645" capture_lex $P194 - .const 'Sub' $P184 = "22_1280467468.44761" + .const 'Sub' $P184 = "22_1282016521.02645" capture_lex $P184 - .const 'Sub' $P174 = "21_1280467468.44761" + .const 'Sub' $P174 = "21_1282016521.02645" capture_lex $P174 - .const 'Sub' $P73 = "18_1280467468.44761" + .const 'Sub' $P73 = "18_1282016521.02645" capture_lex $P73 - .const 'Sub' $P35 = "15_1280467468.44761" + .const 'Sub' $P35 = "15_1282016521.02645" capture_lex $P35 - .const 'Sub' $P28 = "14_1280467468.44761" + .const 'Sub' $P28 = "14_1282016521.02645" capture_lex $P28 - .const 'Sub' $P22 = "13_1280467468.44761" + .const 'Sub' $P22 = "13_1282016521.02645" capture_lex $P22 - .const 'Sub' $P15 = "12_1280467468.44761" + .const 'Sub' $P15 = "12_1282016521.02645" capture_lex $P15 $P0 = find_dynamic_lex "$*CTXSAVE" if null $P0 goto ctxsave_done @@ -5193,18 +5583,18 @@ An operator precedence parser. $P0."ctxsave"() ctxsave_done: .annotate 'line', 225 - .const 'Sub' $P605 = "53_1280467468.44761" + .const 'Sub' $P605 = "53_1282016521.02645" newclosure $P622, $P605 .annotate 'line', 3 .return ($P622) - .const 'Sub' $P624 = "54_1280467468.44761" + .const 'Sub' $P624 = "54_1282016521.02645" .return ($P624) .end .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "string_to_int" :subid("12_1280467468.44761") :outer("11_1280467468.44761") +.sub "string_to_int" :subid("12_1282016521.02645") :outer("11_1282016521.02645") .param pmc param_18 .param pmc param_19 .annotate 'line', 3 @@ -5258,7 +5648,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "ints_to_string" :subid("13_1280467468.44761") :outer("11_1280467468.44761") +.sub "ints_to_string" :subid("13_1282016521.02645") :outer("11_1282016521.02645") .param pmc param_25 .annotate 'line', 37 new $P24, 'ExceptionHandler' @@ -5300,7 +5690,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "CTXSAVE" :subid("14_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "CTXSAVE" :subid("14_1282016521.02645") :method :outer("11_1282016521.02645") .annotate 'line', 62 new $P30, 'ExceptionHandler' set_addr $P30, control_29 @@ -5330,10 +5720,10 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "SET_BLOCK_OUTER_CTX" :subid("15_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "SET_BLOCK_OUTER_CTX" :subid("15_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_38 .annotate 'line', 76 - .const 'Sub' $P48 = "16_1280467468.44761" + .const 'Sub' $P48 = "16_1282016521.02645" capture_lex $P48 new $P37, 'ExceptionHandler' set_addr $P37, control_36 @@ -5368,7 +5758,7 @@ An operator precedence parser. set $P43, $I46 goto if_44_end if_44: - .const 'Sub' $P48 = "16_1280467468.44761" + .const 'Sub' $P48 = "16_1282016521.02645" capture_lex $P48 $P71 = $P48() set $P43, $P71 @@ -5385,9 +5775,9 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "_block47" :anon :subid("16_1280467468.44761") :outer("15_1280467468.44761") +.sub "_block47" :anon :subid("16_1282016521.02645") :outer("15_1282016521.02645") .annotate 'line', 78 - .const 'Sub' $P62 = "17_1280467468.44761" + .const 'Sub' $P62 = "17_1282016521.02645" capture_lex $P62 .annotate 'line', 79 $P49 = root_new ['parrot';'ResizablePMCArray'] @@ -5417,7 +5807,7 @@ An operator precedence parser. unless $P56, loop68_done shift $P60, $P56 loop68_redo: - .const 'Sub' $P62 = "17_1280467468.44761" + .const 'Sub' $P62 = "17_1282016521.02645" capture_lex $P62 $P62($P60) loop68_next: @@ -5437,7 +5827,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block61" :anon :subid("17_1280467468.44761") :outer("16_1280467468.44761") +.sub "_block61" :anon :subid("17_1282016521.02645") :outer("16_1282016521.02645") .param pmc param_63 .annotate 'line', 82 .lex "$_", param_63 @@ -5453,14 +5843,14 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "EXPR" :subid("18_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "EXPR" :subid("18_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_76 .param pmc param_77 :optional .param int has_param_77 :opt_flag .annotate 'line', 89 - .const 'Sub' $P156 = "20_1280467468.44761" + .const 'Sub' $P156 = "20_1282016521.02645" capture_lex $P156 - .const 'Sub' $P123 = "19_1280467468.44761" + .const 'Sub' $P123 = "19_1282016521.02645" capture_lex $P123 new $P75, 'ExceptionHandler' set_addr $P75, control_74 @@ -5595,7 +5985,7 @@ An operator precedence parser. find_lex $P120, "$past" $P121 = $P120."name"() if $P121, unless_119_end - .const 'Sub' $P123 = "19_1280467468.44761" + .const 'Sub' $P123 = "19_1282016521.02645" capture_lex $P123 $P123() unless_119_end: @@ -5619,7 +6009,7 @@ An operator precedence parser. unless $P150, loop167_done shift $P154, $P150 loop167_redo: - .const 'Sub' $P156 = "20_1280467468.44761" + .const 'Sub' $P156 = "20_1282016521.02645" capture_lex $P156 $P156($P154) loop167_next: @@ -5664,7 +6054,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block122" :anon :subid("19_1280467468.44761") :outer("18_1280467468.44761") +.sub "_block122" :anon :subid("19_1282016521.02645") :outer("18_1282016521.02645") .annotate 'line', 98 new $P124, "Undef" .lex "$name", $P124 @@ -5714,7 +6104,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block155" :anon :subid("20_1280467468.44761") :outer("18_1280467468.44761") +.sub "_block155" :anon :subid("20_1282016521.02645") :outer("18_1282016521.02645") .param pmc param_157 .annotate 'line', 109 .lex "$_", param_157 @@ -5738,7 +6128,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("21_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "term:sym" :subid("21_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_177 .annotate 'line', 114 new $P176, 'ExceptionHandler' @@ -5769,7 +6159,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "termish" :subid("22_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "termish" :subid("22_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_187 .annotate 'line', 116 new $P186, 'ExceptionHandler' @@ -5800,7 +6190,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "nullterm" :subid("23_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "nullterm" :subid("23_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_197 .annotate 'line', 117 new $P196, 'ExceptionHandler' @@ -5823,7 +6213,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "nullterm_alt" :subid("24_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "nullterm_alt" :subid("24_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_205 .annotate 'line', 118 new $P204, 'ExceptionHandler' @@ -5854,7 +6244,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "integer" :subid("25_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "integer" :subid("25_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_215 .annotate 'line', 120 new $P214, 'ExceptionHandler' @@ -5885,7 +6275,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "dec_number" :subid("26_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "dec_number" :subid("26_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_225 .annotate 'line', 122 new $P224, 'ExceptionHandler' @@ -5909,7 +6299,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "decint" :subid("27_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "decint" :subid("27_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_234 .annotate 'line', 124 new $P233, 'ExceptionHandler' @@ -5933,7 +6323,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "hexint" :subid("28_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "hexint" :subid("28_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_243 .annotate 'line', 125 new $P242, 'ExceptionHandler' @@ -5957,7 +6347,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "octint" :subid("29_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "octint" :subid("29_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_252 .annotate 'line', 126 new $P251, 'ExceptionHandler' @@ -5981,7 +6371,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "binint" :subid("30_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "binint" :subid("30_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_261 .annotate 'line', 127 new $P260, 'ExceptionHandler' @@ -6005,10 +6395,10 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_EXPR" :subid("31_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_EXPR" :subid("31_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_270 .annotate 'line', 129 - .const 'Sub' $P286 = "32_1280467468.44761" + .const 'Sub' $P286 = "32_1282016521.02645" capture_lex $P286 new $P269, 'ExceptionHandler' set_addr $P269, control_268 @@ -6040,7 +6430,7 @@ An operator precedence parser. $P282 = $P280."ACCEPTS"($P281) if $P282, if_279 .annotate 'line', 135 - .const 'Sub' $P286 = "32_1280467468.44761" + .const 'Sub' $P286 = "32_1282016521.02645" capture_lex $P286 $P286() goto if_279_end @@ -6080,9 +6470,9 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "_block285" :anon :subid("32_1280467468.44761") :outer("31_1280467468.44761") +.sub "_block285" :anon :subid("32_1282016521.02645") :outer("31_1282016521.02645") .annotate 'line', 135 - .const 'Sub' $P305 = "33_1280467468.44761" + .const 'Sub' $P305 = "33_1282016521.02645" capture_lex $P305 .annotate 'line', 136 $P287 = root_new ['parrot';'ResizablePMCArray'] @@ -6133,7 +6523,7 @@ An operator precedence parser. unless $P300, loop310_done shift $P303, $P300 loop310_redo: - .const 'Sub' $P305 = "33_1280467468.44761" + .const 'Sub' $P305 = "33_1282016521.02645" capture_lex $P305 $P305($P303) loop310_next: @@ -6156,7 +6546,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block304" :anon :subid("33_1280467468.44761") :outer("32_1280467468.44761") +.sub "_block304" :anon :subid("33_1282016521.02645") :outer("32_1282016521.02645") .param pmc param_306 .annotate 'line', 139 .lex "$_", param_306 @@ -6169,10 +6559,10 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_delimited" :subid("34_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_delimited" :subid("34_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_333 .annotate 'line', 152 - .const 'Sub' $P345 = "35_1280467468.44761" + .const 'Sub' $P345 = "35_1282016521.02645" capture_lex $P345 new $P332, 'ExceptionHandler' set_addr $P332, control_331 @@ -6215,7 +6605,7 @@ An operator precedence parser. unless $P339, loop377_done shift $P343, $P339 loop377_redo: - .const 'Sub' $P345 = "35_1280467468.44761" + .const 'Sub' $P345 = "35_1282016521.02645" capture_lex $P345 $P345($P343) loop377_next: @@ -6293,7 +6683,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block344" :anon :subid("35_1280467468.44761") :outer("34_1280467468.44761") +.sub "_block344" :anon :subid("35_1282016521.02645") :outer("34_1282016521.02645") .param pmc param_347 .annotate 'line', 156 new $P346, "Undef" @@ -6363,7 +6753,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_atom" :subid("36_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_atom" :subid("36_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_408 .annotate 'line', 177 new $P407, 'ExceptionHandler' @@ -6413,7 +6803,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("37_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("37_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_424 .annotate 'line', 181 new $P423, 'ExceptionHandler' @@ -6435,7 +6825,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("38_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("38_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_431 .annotate 'line', 182 new $P430, 'ExceptionHandler' @@ -6466,7 +6856,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("39_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("39_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_441 .annotate 'line', 184 new $P440, 'ExceptionHandler' @@ -6488,7 +6878,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("40_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("40_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_448 .annotate 'line', 185 new $P447, 'ExceptionHandler' @@ -6510,7 +6900,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("41_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("41_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_455 .annotate 'line', 186 new $P454, 'ExceptionHandler' @@ -6532,7 +6922,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("42_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("42_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_462 .annotate 'line', 187 new $P461, 'ExceptionHandler' @@ -6554,7 +6944,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("43_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("43_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_469 .annotate 'line', 188 new $P468, 'ExceptionHandler' @@ -6576,7 +6966,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("44_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("44_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_476 .annotate 'line', 189 new $P475, 'ExceptionHandler' @@ -6598,7 +6988,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("45_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("45_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_483 .annotate 'line', 191 new $P482, 'ExceptionHandler' @@ -6657,7 +7047,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("46_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("46_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_500 .annotate 'line', 195 new $P499, 'ExceptionHandler' @@ -6716,7 +7106,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("47_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("47_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_517 .annotate 'line', 199 new $P516, 'ExceptionHandler' @@ -6749,7 +7139,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym<0>" :subid("48_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym<0>" :subid("48_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_527 .annotate 'line', 203 new $P526, 'ExceptionHandler' @@ -6773,7 +7163,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("49_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "quote_escape:sym" :subid("49_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_534 .annotate 'line', 207 new $P533, 'ExceptionHandler' @@ -6832,7 +7222,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "charname" :subid("50_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "charname" :subid("50_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_553 .annotate 'line', 211 new $P552, 'ExceptionHandler' @@ -6906,10 +7296,10 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "charnames" :subid("51_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "charnames" :subid("51_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_583 .annotate 'line', 219 - .const 'Sub' $P592 = "52_1280467468.44761" + .const 'Sub' $P592 = "52_1282016521.02645" capture_lex $P592 new $P582, 'ExceptionHandler' set_addr $P582, control_581 @@ -6943,7 +7333,7 @@ An operator precedence parser. unless $P586, loop598_done shift $P590, $P586 loop598_redo: - .const 'Sub' $P592 = "52_1280467468.44761" + .const 'Sub' $P592 = "52_1282016521.02645" capture_lex $P592 $P592($P590) loop598_next: @@ -6972,7 +7362,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block591" :anon :subid("52_1280467468.44761") :outer("51_1280467468.44761") +.sub "_block591" :anon :subid("52_1282016521.02645") :outer("51_1282016521.02645") .param pmc param_593 .annotate 'line', 221 .lex "$_", param_593 @@ -6987,7 +7377,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "charspec" :subid("53_1280467468.44761") :method :outer("11_1280467468.44761") +.sub "charspec" :subid("53_1282016521.02645") :method :outer("11_1282016521.02645") .param pmc param_608 .annotate 'line', 225 new $P607, 'ExceptionHandler' @@ -7037,18 +7427,18 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block623" :load :anon :subid("54_1280467468.44761") +.sub "_block623" :load :anon :subid("54_1282016521.02645") .annotate 'line', 3 - .const 'Sub' $P625 = "11_1280467468.44761" + .const 'Sub' $P625 = "11_1282016521.02645" $P626 = $P625() .return ($P626) .end .namespace [] -.sub "_block628" :load :anon :subid("55_1280467468.44761") +.sub "_block628" :load :anon :subid("55_1282016521.02645") .annotate 'line', 1 - .const 'Sub' $P630 = "10_1280467468.44761" + .const 'Sub' $P630 = "10_1282016521.02645" $P631 = $P630() .return ($P631) .end @@ -7056,7 +7446,7 @@ An operator precedence parser. ### .include 'gen/hllcompiler.pir' .namespace [] -.sub "_block11" :anon :subid("10_1280467469.30058") +.sub "_block11" :anon :subid("10_1282016521.80094") .annotate 'line', 0 get_hll_global $P14, ["HLL";"Compiler"], "_block13" capture_lex $P14 @@ -7073,15 +7463,15 @@ An operator precedence parser. $P497 = $P14() .annotate 'line', 1 .return ($P497) - .const 'Sub' $P499 = "36_1280467469.30058" + .const 'Sub' $P499 = "36_1282016521.80094" .return ($P499) .end .namespace [] -.sub "" :load :init :subid("post37") :outer("10_1280467469.30058") +.sub "" :load :init :subid("post37") :outer("10_1282016521.80094") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1280467469.30058" + .const 'Sub' $P12 = "10_1282016521.80094" .local pmc block set block, $P12 .annotate 'line', 2 @@ -7095,36 +7485,36 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block13" :subid("11_1280467469.30058") :outer("10_1280467469.30058") +.sub "_block13" :subid("11_1282016521.80094") :outer("10_1282016521.80094") .annotate 'line', 6 - .const 'Sub' $P489 = "35_1280467469.30058" + .const 'Sub' $P489 = "35_1282016521.80094" capture_lex $P489 - .const 'Sub' $P447 = "33_1280467469.30058" + .const 'Sub' $P447 = "33_1282016521.80094" capture_lex $P447 - .const 'Sub' $P298 = "26_1280467469.30058" + .const 'Sub' $P298 = "26_1282016521.80094" capture_lex $P298 - .const 'Sub' $P283 = "25_1280467469.30058" + .const 'Sub' $P283 = "25_1282016521.80094" capture_lex $P283 - .const 'Sub' $P188 = "20_1280467469.30058" + .const 'Sub' $P188 = "20_1282016521.80094" capture_lex $P188 - .const 'Sub' $P153 = "18_1280467469.30058" + .const 'Sub' $P153 = "18_1282016521.80094" capture_lex $P153 - .const 'Sub' $P138 = "17_1280467469.30058" + .const 'Sub' $P138 = "17_1282016521.80094" capture_lex $P138 - .const 'Sub' $P122 = "16_1280467469.30058" + .const 'Sub' $P122 = "16_1282016521.80094" capture_lex $P122 - .const 'Sub' $P33 = "13_1280467469.30058" + .const 'Sub' $P33 = "13_1282016521.80094" capture_lex $P33 - .const 'Sub' $P15 = "12_1280467469.30058" + .const 'Sub' $P15 = "12_1282016521.80094" capture_lex $P15 .annotate 'line', 14 - .const 'Sub' $P15 = "12_1280467469.30058" + .const 'Sub' $P15 = "12_1282016521.80094" newclosure $P31, $P15 .lex "value_type", $P31 .annotate 'line', 10 find_lex $P32, "value_type" .annotate 'line', 165 - .const 'Sub' $P489 = "35_1280467469.30058" + .const 'Sub' $P489 = "35_1282016521.80094" newclosure $P495, $P489 .annotate 'line', 6 .return ($P495) @@ -7132,7 +7522,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "" :load :init :subid("post38") :outer("11_1280467469.30058") +.sub "" :load :init :subid("post38") :outer("11_1282016521.80094") .annotate 'line', 6 get_hll_global $P14, ["HLL";"Compiler"], "_block13" .local pmc block @@ -7145,7 +7535,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "value_type" :subid("12_1280467469.30058") :outer("11_1280467469.30058") +.sub "value_type" :subid("12_1282016521.80094") :outer("11_1282016521.80094") .param pmc param_18 .annotate 'line', 14 new $P17, 'ExceptionHandler' @@ -7190,15 +7580,15 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "get_exports" :subid("13_1280467469.30058") :method :outer("11_1280467469.30058") +.sub "get_exports" :subid("13_1282016521.80094") :method :outer("11_1282016521.80094") .param pmc param_36 .param pmc param_39 :slurpy .param pmc param_37 :optional :named("tagset") .param int has_param_37 :opt_flag .annotate 'line', 20 - .const 'Sub' $P105 = "15_1280467469.30058" + .const 'Sub' $P105 = "15_1282016521.80094" capture_lex $P105 - .const 'Sub' $P84 = "14_1280467469.30058" + .const 'Sub' $P84 = "14_1282016521.80094" capture_lex $P84 new $P35, 'ExceptionHandler' set_addr $P35, control_34 @@ -7304,7 +7694,7 @@ An operator precedence parser. unless $P100, loop117_done shift $P103, $P100 loop117_redo: - .const 'Sub' $P105 = "15_1280467469.30058" + .const 'Sub' $P105 = "15_1282016521.80094" capture_lex $P105 $P105($P103) loop117_next: @@ -7334,7 +7724,7 @@ An operator precedence parser. unless $P79, loop97_done shift $P82, $P79 loop97_redo: - .const 'Sub' $P84 = "14_1280467469.30058" + .const 'Sub' $P84 = "14_1282016521.80094" capture_lex $P84 $P84($P82) loop97_next: @@ -7362,7 +7752,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block104" :anon :subid("15_1280467469.30058") :outer("13_1280467469.30058") +.sub "_block104" :anon :subid("15_1282016521.80094") :outer("13_1282016521.80094") .param pmc param_107 .annotate 'line', 40 new $P106, "Undef" @@ -7394,7 +7784,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block83" :anon :subid("14_1280467469.30058") :outer("13_1280467469.30058") +.sub "_block83" :anon :subid("14_1282016521.80094") :outer("13_1282016521.80094") .param pmc param_86 .annotate 'line', 34 new $P85, "Undef" @@ -7434,7 +7824,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "get_module" :subid("16_1280467469.30058") :method :outer("11_1280467469.30058") +.sub "get_module" :subid("16_1282016521.80094") :method :outer("11_1282016521.80094") .param pmc param_125 .annotate 'line', 47 new $P124, 'ExceptionHandler' @@ -7475,7 +7865,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "language" :subid("17_1280467469.30058") :method :outer("11_1280467469.30058") +.sub "language" :subid("17_1282016521.80094") :method :outer("11_1282016521.80094") .param pmc param_141 :optional .param int has_param_141 :opt_flag .annotate 'line', 53 @@ -7520,10 +7910,10 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "load_module" :subid("18_1280467469.30058") :method :outer("11_1280467469.30058") +.sub "load_module" :subid("18_1282016521.80094") :method :outer("11_1282016521.80094") .param pmc param_156 .annotate 'line', 61 - .const 'Sub' $P166 = "19_1280467469.30058" + .const 'Sub' $P166 = "19_1282016521.80094" capture_lex $P166 new $P155, 'ExceptionHandler' set_addr $P155, control_154 @@ -7550,7 +7940,7 @@ An operator precedence parser. assign $P164, 0 store_lex "$loaded", $P164 .annotate 'line', 64 - .const 'Sub' $P166 = "19_1280467469.30058" + .const 'Sub' $P166 = "19_1282016521.80094" capture_lex $P166 $P166() .annotate 'line', 65 @@ -7580,7 +7970,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block165" :anon :subid("19_1280467469.30058") :outer("18_1280467469.30058") +.sub "_block165" :anon :subid("19_1282016521.80094") :outer("18_1282016521.80094") .annotate 'line', 64 new $P173, 'ExceptionHandler' set_addr $P173, control_172 @@ -7614,11 +8004,11 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "import" :subid("20_1280467469.30058") :method :outer("11_1280467469.30058") +.sub "import" :subid("20_1282016521.80094") :method :outer("11_1282016521.80094") .param pmc param_191 .param pmc param_192 .annotate 'line', 69 - .const 'Sub' $P198 = "21_1280467469.30058" + .const 'Sub' $P198 = "21_1282016521.80094" capture_lex $P198 new $P190, 'ExceptionHandler' set_addr $P190, control_189 @@ -7640,7 +8030,7 @@ An operator precedence parser. unless $P193, loop279_done shift $P196, $P193 loop279_redo: - .const 'Sub' $P198 = "21_1280467469.30058" + .const 'Sub' $P198 = "21_1282016521.80094" capture_lex $P198 $P198($P196) loop279_next: @@ -7666,14 +8056,14 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block197" :anon :subid("21_1280467469.30058") :outer("20_1280467469.30058") +.sub "_block197" :anon :subid("21_1282016521.80094") :outer("20_1282016521.80094") .param pmc param_201 .annotate 'line', 70 - .const 'Sub' $P268 = "24_1280467469.30058" + .const 'Sub' $P268 = "24_1282016521.80094" capture_lex $P268 - .const 'Sub' $P248 = "23_1280467469.30058" + .const 'Sub' $P248 = "23_1282016521.80094" capture_lex $P248 - .const 'Sub' $P219 = "22_1280467469.30058" + .const 'Sub' $P219 = "22_1282016521.80094" capture_lex $P219 .annotate 'line', 71 new $P199, "Undef" @@ -7721,7 +8111,7 @@ An operator precedence parser. unless $P263, loop276_done shift $P266, $P263 loop276_redo: - .const 'Sub' $P268 = "24_1280467469.30058" + .const 'Sub' $P268 = "24_1282016521.80094" capture_lex $P268 $P268($P266) loop276_next: @@ -7753,7 +8143,7 @@ An operator precedence parser. unless $P243, loop260_done shift $P246, $P243 loop260_redo: - .const 'Sub' $P248 = "23_1280467469.30058" + .const 'Sub' $P248 = "23_1282016521.80094" capture_lex $P248 $P248($P246) loop260_next: @@ -7787,7 +8177,7 @@ An operator precedence parser. unless $P214, loop232_done shift $P217, $P214 loop232_redo: - .const 'Sub' $P219 = "22_1280467469.30058" + .const 'Sub' $P219 = "22_1282016521.80094" capture_lex $P219 $P219($P217) loop232_next: @@ -7810,7 +8200,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block267" :anon :subid("24_1280467469.30058") :outer("21_1280467469.30058") +.sub "_block267" :anon :subid("24_1282016521.80094") :outer("21_1282016521.80094") .param pmc param_269 .annotate 'line', 80 .lex "$_", param_269 @@ -7830,7 +8220,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block247" :anon :subid("23_1280467469.30058") :outer("21_1280467469.30058") +.sub "_block247" :anon :subid("23_1282016521.80094") :outer("21_1282016521.80094") .param pmc param_249 .annotate 'line', 77 .lex "$_", param_249 @@ -7850,7 +8240,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block218" :anon :subid("22_1280467469.30058") :outer("21_1280467469.30058") +.sub "_block218" :anon :subid("22_1282016521.80094") :outer("21_1282016521.80094") .param pmc param_220 .annotate 'line', 74 .lex "$_", param_220 @@ -7872,7 +8262,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "autoprint" :subid("25_1280467469.30058") :method :outer("11_1280467469.30058") +.sub "autoprint" :subid("25_1282016521.80094") :method :outer("11_1282016521.80094") .param pmc param_286 .annotate 'line', 85 new $P285, 'ExceptionHandler' @@ -7916,10 +8306,10 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "interactive" :subid("26_1280467469.30058") :method :outer("11_1280467469.30058") +.sub "interactive" :subid("26_1282016521.80094") :method :outer("11_1282016521.80094") .param pmc param_301 :slurpy :named .annotate 'line', 90 - .const 'Sub' $P333 = "27_1280467469.30058" + .const 'Sub' $P333 = "27_1282016521.80094" capture_lex $P333 new $P300, 'ExceptionHandler' set_addr $P300, control_299 @@ -8006,7 +8396,7 @@ An operator precedence parser. assign $P331, 1 unless $P331, loop443_done loop443_redo: - .const 'Sub' $P333 = "27_1280467469.30058" + .const 'Sub' $P333 = "27_1282016521.80094" capture_lex $P333 $P333() loop443_next: @@ -8031,9 +8421,9 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block332" :anon :subid("27_1280467469.30058") :outer("26_1280467469.30058") +.sub "_block332" :anon :subid("27_1282016521.80094") :outer("26_1282016521.80094") .annotate 'line', 102 - .const 'Sub' $P365 = "28_1280467469.30058" + .const 'Sub' $P365 = "28_1282016521.80094" capture_lex $P365 .annotate 'line', 105 new $P334, "Undef" @@ -8101,7 +8491,7 @@ An operator precedence parser. set $P361, $P363 goto if_362_end if_362: - .const 'Sub' $P365 = "28_1280467469.30058" + .const 'Sub' $P365 = "28_1282016521.80094" capture_lex $P365 $P442 = $P365() set $P361, $P442 @@ -8113,11 +8503,11 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block364" :anon :subid("28_1280467469.30058") :outer("27_1280467469.30058") +.sub "_block364" :anon :subid("28_1282016521.80094") :outer("27_1282016521.80094") .annotate 'line', 115 - .const 'Sub' $P398 = "31_1280467469.30058" + .const 'Sub' $P398 = "31_1282016521.80094" capture_lex $P398 - .const 'Sub' $P371 = "29_1280467469.30058" + .const 'Sub' $P371 = "29_1282016521.80094" capture_lex $P371 .annotate 'line', 117 new $P366, "Undef" @@ -8128,7 +8518,7 @@ An operator precedence parser. store_lex "$code", $P368 find_lex $P369, "$output" .annotate 'line', 118 - .const 'Sub' $P371 = "29_1280467469.30058" + .const 'Sub' $P371 = "29_1282016521.80094" capture_lex $P371 $P371() .annotate 'line', 125 @@ -8141,7 +8531,7 @@ An operator precedence parser. vivify_67: defined $I396, $P395 unless $I396, if_394_end - .const 'Sub' $P398 = "31_1280467469.30058" + .const 'Sub' $P398 = "31_1282016521.80094" capture_lex $P398 $P398() if_394_end: @@ -8195,9 +8585,9 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block370" :anon :subid("29_1280467469.30058") :outer("28_1280467469.30058") +.sub "_block370" :anon :subid("29_1282016521.80094") :outer("28_1282016521.80094") .annotate 'line', 118 - .const 'Sub' $P383 = "30_1280467469.30058" + .const 'Sub' $P383 = "30_1282016521.80094" capture_lex $P383 new $P379, 'ExceptionHandler' set_addr $P379, control_378 @@ -8217,7 +8607,7 @@ An operator precedence parser. .annotate 'line', 120 .local pmc exception .get_results (exception) - .const 'Sub' $P383 = "30_1280467469.30058" + .const 'Sub' $P383 = "30_1282016521.80094" newclosure $P391, $P383 $P391(exception) new $P392, 'Integer' @@ -8237,7 +8627,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block382" :anon :subid("30_1280467469.30058") :outer("29_1280467469.30058") +.sub "_block382" :anon :subid("30_1282016521.80094") :outer("29_1282016521.80094") .param pmc param_384 .annotate 'line', 120 .lex "$_", param_384 @@ -8260,9 +8650,9 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block397" :anon :subid("31_1280467469.30058") :outer("28_1280467469.30058") +.sub "_block397" :anon :subid("31_1282016521.80094") :outer("28_1282016521.80094") .annotate 'line', 125 - .const 'Sub' $P409 = "32_1280467469.30058" + .const 'Sub' $P409 = "32_1282016521.80094" capture_lex $P409 .annotate 'line', 126 get_global $P399, "$interactive_ctx" @@ -8299,7 +8689,7 @@ An operator precedence parser. unless $P403, loop416_done shift $P407, $P403 loop416_redo: - .const 'Sub' $P409 = "32_1280467469.30058" + .const 'Sub' $P409 = "32_1282016521.80094" capture_lex $P409 $P409($P407) loop416_next: @@ -8322,7 +8712,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block408" :anon :subid("32_1280467469.30058") :outer("31_1280467469.30058") +.sub "_block408" :anon :subid("32_1282016521.80094") :outer("31_1282016521.80094") .param pmc param_410 .annotate 'line', 128 .lex "$_", param_410 @@ -8344,12 +8734,12 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "eval" :subid("33_1280467469.30058") :method :outer("11_1280467469.30058") +.sub "eval" :subid("33_1282016521.80094") :method :outer("11_1282016521.80094") .param pmc param_450 .param pmc param_451 :slurpy .param pmc param_452 :slurpy :named .annotate 'line', 146 - .const 'Sub' $P471 = "34_1280467469.30058" + .const 'Sub' $P471 = "34_1282016521.80094" capture_lex $P471 new $P449, 'ExceptionHandler' set_addr $P449, control_448 @@ -8396,7 +8786,7 @@ An operator precedence parser. set $P460, $I469 if_461_end: unless $P460, if_459_end - .const 'Sub' $P471 = "34_1280467469.30058" + .const 'Sub' $P471 = "34_1282016521.80094" capture_lex $P471 $P471() if_459_end: @@ -8413,7 +8803,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block470" :anon :subid("34_1280467469.30058") :outer("33_1280467469.30058") +.sub "_block470" :anon :subid("34_1282016521.80094") :outer("33_1282016521.80094") .annotate 'line', 152 new $P472, "Undef" .lex "$outer_ctx", $P472 @@ -8467,7 +8857,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "ctxsave" :subid("35_1280467469.30058") :method :outer("11_1280467469.30058") +.sub "ctxsave" :subid("35_1282016521.80094") :method :outer("11_1282016521.80094") .annotate 'line', 165 new $P491, 'ExceptionHandler' set_addr $P491, control_490 @@ -8495,9 +8885,9 @@ An operator precedence parser. .namespace [] -.sub "_block498" :load :anon :subid("36_1280467469.30058") +.sub "_block498" :load :anon :subid("36_1282016521.80094") .annotate 'line', 1 - .const 'Sub' $P500 = "10_1280467469.30058" + .const 'Sub' $P500 = "10_1282016521.80094" $P501 = $P500() .return ($P501) .end diff --git a/ext/nqp-rx/src/stage0/NQP-s0.pir b/ext/nqp-rx/src/stage0/NQP-s0.pir index 5d6501fa55..0cc6647ca1 100644 --- a/ext/nqp-rx/src/stage0/NQP-s0.pir +++ b/ext/nqp-rx/src/stage0/NQP-s0.pir @@ -15,7 +15,7 @@ NQP::Compiler - NQP compiler ### .include 'gen/nqp-grammar.pir' .namespace [] -.sub "_block11" :anon :subid("10_1280467477.44751") +.sub "_block11" :anon :subid("10_1282016529.10767") .annotate 'line', 0 get_hll_global $P14, ["NQP";"Grammar"], "_block13" capture_lex $P14 @@ -32,15 +32,15 @@ NQP::Compiler - NQP compiler $P1423 = $P14() .annotate 'line', 1 .return ($P1423) - .const 'Sub' $P1425 = "371_1280467477.44751" + .const 'Sub' $P1425 = "371_1282016529.10767" .return ($P1425) .end .namespace [] -.sub "" :load :init :subid("post372") :outer("10_1280467477.44751") +.sub "" :load :init :subid("post372") :outer("10_1282016529.10767") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1280467477.44751" + .const 'Sub' $P12 = "10_1282016529.10767" .local pmc block set block, $P12 $P1428 = get_root_global ["parrot"], "P6metaclass" @@ -49,321 +49,321 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block13" :subid("11_1280467477.44751") :outer("10_1280467477.44751") +.sub "_block13" :subid("11_1282016529.10767") :outer("10_1282016529.10767") .annotate 'line', 4 get_hll_global $P1340, ["NQP";"Regex"], "_block1339" capture_lex $P1340 - .const 'Sub' $P1326 = "348_1280467477.44751" + .const 'Sub' $P1326 = "348_1282016529.10767" capture_lex $P1326 - .const 'Sub' $P1320 = "346_1280467477.44751" + .const 'Sub' $P1320 = "346_1282016529.10767" capture_lex $P1320 - .const 'Sub' $P1314 = "344_1280467477.44751" + .const 'Sub' $P1314 = "344_1282016529.10767" capture_lex $P1314 - .const 'Sub' $P1308 = "342_1280467477.44751" + .const 'Sub' $P1308 = "342_1282016529.10767" capture_lex $P1308 - .const 'Sub' $P1302 = "340_1280467477.44751" + .const 'Sub' $P1302 = "340_1282016529.10767" capture_lex $P1302 - .const 'Sub' $P1296 = "338_1280467477.44751" + .const 'Sub' $P1296 = "338_1282016529.10767" capture_lex $P1296 - .const 'Sub' $P1289 = "336_1280467477.44751" + .const 'Sub' $P1289 = "336_1282016529.10767" capture_lex $P1289 - .const 'Sub' $P1282 = "334_1280467477.44751" + .const 'Sub' $P1282 = "334_1282016529.10767" capture_lex $P1282 - .const 'Sub' $P1275 = "332_1280467477.44751" + .const 'Sub' $P1275 = "332_1282016529.10767" capture_lex $P1275 - .const 'Sub' $P1268 = "330_1280467477.44751" + .const 'Sub' $P1268 = "330_1282016529.10767" capture_lex $P1268 - .const 'Sub' $P1262 = "328_1280467477.44751" + .const 'Sub' $P1262 = "328_1282016529.10767" capture_lex $P1262 - .const 'Sub' $P1255 = "326_1280467477.44751" + .const 'Sub' $P1255 = "326_1282016529.10767" capture_lex $P1255 - .const 'Sub' $P1248 = "324_1280467477.44751" + .const 'Sub' $P1248 = "324_1282016529.10767" capture_lex $P1248 - .const 'Sub' $P1241 = "322_1280467477.44751" + .const 'Sub' $P1241 = "322_1282016529.10767" capture_lex $P1241 - .const 'Sub' $P1234 = "320_1280467477.44751" + .const 'Sub' $P1234 = "320_1282016529.10767" capture_lex $P1234 - .const 'Sub' $P1227 = "318_1280467477.44751" + .const 'Sub' $P1227 = "318_1282016529.10767" capture_lex $P1227 - .const 'Sub' $P1220 = "316_1280467477.44751" + .const 'Sub' $P1220 = "316_1282016529.10767" capture_lex $P1220 - .const 'Sub' $P1213 = "314_1280467477.44751" + .const 'Sub' $P1213 = "314_1282016529.10767" capture_lex $P1213 - .const 'Sub' $P1206 = "312_1280467477.44751" + .const 'Sub' $P1206 = "312_1282016529.10767" capture_lex $P1206 - .const 'Sub' $P1199 = "310_1280467477.44751" + .const 'Sub' $P1199 = "310_1282016529.10767" capture_lex $P1199 - .const 'Sub' $P1192 = "308_1280467477.44751" + .const 'Sub' $P1192 = "308_1282016529.10767" capture_lex $P1192 - .const 'Sub' $P1185 = "306_1280467477.44751" + .const 'Sub' $P1185 = "306_1282016529.10767" capture_lex $P1185 - .const 'Sub' $P1178 = "304_1280467477.44751" + .const 'Sub' $P1178 = "304_1282016529.10767" capture_lex $P1178 - .const 'Sub' $P1171 = "302_1280467477.44751" + .const 'Sub' $P1171 = "302_1282016529.10767" capture_lex $P1171 - .const 'Sub' $P1164 = "300_1280467477.44751" + .const 'Sub' $P1164 = "300_1282016529.10767" capture_lex $P1164 - .const 'Sub' $P1157 = "298_1280467477.44751" + .const 'Sub' $P1157 = "298_1282016529.10767" capture_lex $P1157 - .const 'Sub' $P1150 = "296_1280467477.44751" + .const 'Sub' $P1150 = "296_1282016529.10767" capture_lex $P1150 - .const 'Sub' $P1143 = "294_1280467477.44751" + .const 'Sub' $P1143 = "294_1282016529.10767" capture_lex $P1143 - .const 'Sub' $P1136 = "292_1280467477.44751" + .const 'Sub' $P1136 = "292_1282016529.10767" capture_lex $P1136 - .const 'Sub' $P1129 = "290_1280467477.44751" + .const 'Sub' $P1129 = "290_1282016529.10767" capture_lex $P1129 - .const 'Sub' $P1122 = "288_1280467477.44751" + .const 'Sub' $P1122 = "288_1282016529.10767" capture_lex $P1122 - .const 'Sub' $P1115 = "286_1280467477.44751" + .const 'Sub' $P1115 = "286_1282016529.10767" capture_lex $P1115 - .const 'Sub' $P1108 = "284_1280467477.44751" + .const 'Sub' $P1108 = "284_1282016529.10767" capture_lex $P1108 - .const 'Sub' $P1101 = "282_1280467477.44751" + .const 'Sub' $P1101 = "282_1282016529.10767" capture_lex $P1101 - .const 'Sub' $P1094 = "280_1280467477.44751" + .const 'Sub' $P1094 = "280_1282016529.10767" capture_lex $P1094 - .const 'Sub' $P1087 = "278_1280467477.44751" + .const 'Sub' $P1087 = "278_1282016529.10767" capture_lex $P1087 - .const 'Sub' $P1080 = "276_1280467477.44751" + .const 'Sub' $P1080 = "276_1282016529.10767" capture_lex $P1080 - .const 'Sub' $P1073 = "274_1280467477.44751" + .const 'Sub' $P1073 = "274_1282016529.10767" capture_lex $P1073 - .const 'Sub' $P1066 = "272_1280467477.44751" + .const 'Sub' $P1066 = "272_1282016529.10767" capture_lex $P1066 - .const 'Sub' $P1059 = "270_1280467477.44751" + .const 'Sub' $P1059 = "270_1282016529.10767" capture_lex $P1059 - .const 'Sub' $P1053 = "268_1280467477.44751" + .const 'Sub' $P1053 = "268_1282016529.10767" capture_lex $P1053 - .const 'Sub' $P1046 = "266_1280467477.44751" + .const 'Sub' $P1046 = "266_1282016529.10767" capture_lex $P1046 - .const 'Sub' $P1039 = "264_1280467477.44751" + .const 'Sub' $P1039 = "264_1282016529.10767" capture_lex $P1039 - .const 'Sub' $P1032 = "262_1280467477.44751" + .const 'Sub' $P1032 = "262_1282016529.10767" capture_lex $P1032 - .const 'Sub' $P1025 = "260_1280467477.44751" + .const 'Sub' $P1025 = "260_1282016529.10767" capture_lex $P1025 - .const 'Sub' $P1018 = "258_1280467477.44751" + .const 'Sub' $P1018 = "258_1282016529.10767" capture_lex $P1018 - .const 'Sub' $P1011 = "256_1280467477.44751" + .const 'Sub' $P1011 = "256_1282016529.10767" capture_lex $P1011 - .const 'Sub' $P1004 = "254_1280467477.44751" + .const 'Sub' $P1004 = "254_1282016529.10767" capture_lex $P1004 - .const 'Sub' $P998 = "252_1280467477.44751" + .const 'Sub' $P998 = "252_1282016529.10767" capture_lex $P998 - .const 'Sub' $P992 = "250_1280467477.44751" + .const 'Sub' $P992 = "250_1282016529.10767" capture_lex $P992 - .const 'Sub' $P987 = "248_1280467477.44751" + .const 'Sub' $P987 = "248_1282016529.10767" capture_lex $P987 - .const 'Sub' $P981 = "246_1280467477.44751" + .const 'Sub' $P981 = "246_1282016529.10767" capture_lex $P981 - .const 'Sub' $P975 = "244_1280467477.44751" + .const 'Sub' $P975 = "244_1282016529.10767" capture_lex $P975 - .const 'Sub' $P970 = "242_1280467477.44751" + .const 'Sub' $P970 = "242_1282016529.10767" capture_lex $P970 - .const 'Sub' $P965 = "240_1280467477.44751" + .const 'Sub' $P965 = "240_1282016529.10767" capture_lex $P965 - .const 'Sub' $P957 = "238_1280467477.44751" + .const 'Sub' $P957 = "238_1282016529.10767" capture_lex $P957 - .const 'Sub' $P948 = "236_1280467477.44751" + .const 'Sub' $P948 = "236_1282016529.10767" capture_lex $P948 - .const 'Sub' $P943 = "234_1280467477.44751" + .const 'Sub' $P943 = "234_1282016529.10767" capture_lex $P943 - .const 'Sub' $P938 = "232_1280467477.44751" + .const 'Sub' $P938 = "232_1282016529.10767" capture_lex $P938 - .const 'Sub' $P933 = "230_1280467477.44751" + .const 'Sub' $P933 = "230_1282016529.10767" capture_lex $P933 - .const 'Sub' $P925 = "228_1280467477.44751" + .const 'Sub' $P925 = "228_1282016529.10767" capture_lex $P925 - .const 'Sub' $P917 = "226_1280467477.44751" + .const 'Sub' $P917 = "226_1282016529.10767" capture_lex $P917 - .const 'Sub' $P912 = "224_1280467477.44751" + .const 'Sub' $P912 = "224_1282016529.10767" capture_lex $P912 - .const 'Sub' $P907 = "222_1280467477.44751" + .const 'Sub' $P907 = "222_1282016529.10767" capture_lex $P907 - .const 'Sub' $P902 = "220_1280467477.44751" + .const 'Sub' $P902 = "220_1282016529.10767" capture_lex $P902 - .const 'Sub' $P896 = "218_1280467477.44751" + .const 'Sub' $P896 = "218_1282016529.10767" capture_lex $P896 - .const 'Sub' $P890 = "216_1280467477.44751" + .const 'Sub' $P890 = "216_1282016529.10767" capture_lex $P890 - .const 'Sub' $P884 = "214_1280467477.44751" + .const 'Sub' $P884 = "214_1282016529.10767" capture_lex $P884 - .const 'Sub' $P878 = "212_1280467477.44751" + .const 'Sub' $P878 = "212_1282016529.10767" capture_lex $P878 - .const 'Sub' $P872 = "210_1280467477.44751" + .const 'Sub' $P872 = "210_1282016529.10767" capture_lex $P872 - .const 'Sub' $P867 = "208_1280467477.44751" + .const 'Sub' $P867 = "208_1282016529.10767" capture_lex $P867 - .const 'Sub' $P862 = "206_1280467477.44751" + .const 'Sub' $P862 = "206_1282016529.10767" capture_lex $P862 - .const 'Sub' $P850 = "202_1280467477.44751" + .const 'Sub' $P850 = "202_1282016529.10767" capture_lex $P850 - .const 'Sub' $P842 = "200_1280467477.44751" + .const 'Sub' $P842 = "200_1282016529.10767" capture_lex $P842 - .const 'Sub' $P836 = "198_1280467477.44751" + .const 'Sub' $P836 = "198_1282016529.10767" capture_lex $P836 - .const 'Sub' $P829 = "196_1280467477.44751" + .const 'Sub' $P829 = "196_1282016529.10767" capture_lex $P829 - .const 'Sub' $P823 = "194_1280467477.44751" + .const 'Sub' $P823 = "194_1282016529.10767" capture_lex $P823 - .const 'Sub' $P815 = "192_1280467477.44751" + .const 'Sub' $P815 = "192_1282016529.10767" capture_lex $P815 - .const 'Sub' $P807 = "190_1280467477.44751" + .const 'Sub' $P807 = "190_1282016529.10767" capture_lex $P807 - .const 'Sub' $P801 = "188_1280467477.44751" + .const 'Sub' $P801 = "188_1282016529.10767" capture_lex $P801 - .const 'Sub' $P795 = "186_1280467477.44751" + .const 'Sub' $P795 = "186_1282016529.10767" capture_lex $P795 - .const 'Sub' $P781 = "182_1280467477.44751" + .const 'Sub' $P781 = "182_1282016529.10767" capture_lex $P781 - .const 'Sub' $P744 = "180_1280467477.44751" + .const 'Sub' $P744 = "180_1282016529.10767" capture_lex $P744 - .const 'Sub' $P735 = "178_1280467477.44751" + .const 'Sub' $P735 = "178_1282016529.10767" capture_lex $P735 - .const 'Sub' $P729 = "176_1280467477.44751" + .const 'Sub' $P729 = "176_1282016529.10767" capture_lex $P729 - .const 'Sub' $P719 = "174_1280467477.44751" + .const 'Sub' $P719 = "174_1282016529.10767" capture_lex $P719 - .const 'Sub' $P706 = "172_1280467477.44751" + .const 'Sub' $P706 = "172_1282016529.10767" capture_lex $P706 - .const 'Sub' $P699 = "170_1280467477.44751" + .const 'Sub' $P699 = "170_1282016529.10767" capture_lex $P699 - .const 'Sub' $P691 = "168_1280467477.44751" + .const 'Sub' $P691 = "168_1282016529.10767" capture_lex $P691 - .const 'Sub' $P681 = "166_1280467477.44751" + .const 'Sub' $P681 = "166_1282016529.10767" capture_lex $P681 - .const 'Sub' $P657 = "162_1280467477.44751" + .const 'Sub' $P657 = "162_1282016529.10767" capture_lex $P657 - .const 'Sub' $P634 = "160_1280467477.44751" + .const 'Sub' $P634 = "160_1282016529.10767" capture_lex $P634 - .const 'Sub' $P627 = "158_1280467477.44751" + .const 'Sub' $P627 = "158_1282016529.10767" capture_lex $P627 - .const 'Sub' $P620 = "156_1280467477.44751" + .const 'Sub' $P620 = "156_1282016529.10767" capture_lex $P620 - .const 'Sub' $P610 = "152_1280467477.44751" + .const 'Sub' $P610 = "152_1282016529.10767" capture_lex $P610 - .const 'Sub' $P602 = "150_1280467477.44751" + .const 'Sub' $P602 = "150_1282016529.10767" capture_lex $P602 - .const 'Sub' $P596 = "148_1280467477.44751" + .const 'Sub' $P596 = "148_1282016529.10767" capture_lex $P596 - .const 'Sub' $P583 = "146_1280467477.44751" + .const 'Sub' $P583 = "146_1282016529.10767" capture_lex $P583 - .const 'Sub' $P576 = "144_1280467477.44751" + .const 'Sub' $P576 = "144_1282016529.10767" capture_lex $P576 - .const 'Sub' $P569 = "142_1280467477.44751" + .const 'Sub' $P569 = "142_1282016529.10767" capture_lex $P569 - .const 'Sub' $P562 = "140_1280467477.44751" + .const 'Sub' $P562 = "140_1282016529.10767" capture_lex $P562 - .const 'Sub' $P535 = "136_1280467477.44751" + .const 'Sub' $P535 = "136_1282016529.10767" capture_lex $P535 - .const 'Sub' $P526 = "134_1280467477.44751" + .const 'Sub' $P526 = "134_1282016529.10767" capture_lex $P526 - .const 'Sub' $P519 = "132_1280467477.44751" + .const 'Sub' $P519 = "132_1282016529.10767" capture_lex $P519 - .const 'Sub' $P510 = "128_1280467477.44751" + .const 'Sub' $P510 = "128_1282016529.10767" capture_lex $P510 - .const 'Sub' $P505 = "126_1280467477.44751" + .const 'Sub' $P505 = "126_1282016529.10767" capture_lex $P505 - .const 'Sub' $P493 = "124_1280467477.44751" + .const 'Sub' $P493 = "124_1282016529.10767" capture_lex $P493 - .const 'Sub' $P481 = "122_1280467477.44751" + .const 'Sub' $P481 = "122_1282016529.10767" capture_lex $P481 - .const 'Sub' $P474 = "120_1280467477.44751" + .const 'Sub' $P474 = "120_1282016529.10767" capture_lex $P474 - .const 'Sub' $P469 = "118_1280467477.44751" + .const 'Sub' $P469 = "118_1282016529.10767" capture_lex $P469 - .const 'Sub' $P463 = "116_1280467477.44751" + .const 'Sub' $P463 = "116_1282016529.10767" capture_lex $P463 - .const 'Sub' $P457 = "114_1280467477.44751" + .const 'Sub' $P457 = "114_1282016529.10767" capture_lex $P457 - .const 'Sub' $P447 = "111_1280467477.44751" + .const 'Sub' $P447 = "111_1282016529.10767" capture_lex $P447 - .const 'Sub' $P441 = "109_1280467477.44751" + .const 'Sub' $P441 = "109_1282016529.10767" capture_lex $P441 - .const 'Sub' $P435 = "107_1280467477.44751" + .const 'Sub' $P435 = "107_1282016529.10767" capture_lex $P435 - .const 'Sub' $P429 = "105_1280467477.44751" + .const 'Sub' $P429 = "105_1282016529.10767" capture_lex $P429 - .const 'Sub' $P423 = "103_1280467477.44751" + .const 'Sub' $P423 = "103_1282016529.10767" capture_lex $P423 - .const 'Sub' $P417 = "101_1280467477.44751" + .const 'Sub' $P417 = "101_1282016529.10767" capture_lex $P417 - .const 'Sub' $P411 = "99_1280467477.44751" + .const 'Sub' $P411 = "99_1282016529.10767" capture_lex $P411 - .const 'Sub' $P402 = "97_1280467477.44751" + .const 'Sub' $P402 = "97_1282016529.10767" capture_lex $P402 - .const 'Sub' $P393 = "95_1280467477.44751" + .const 'Sub' $P393 = "95_1282016529.10767" capture_lex $P393 - .const 'Sub' $P384 = "93_1280467477.44751" + .const 'Sub' $P384 = "93_1282016529.10767" capture_lex $P384 - .const 'Sub' $P371 = "89_1280467477.44751" + .const 'Sub' $P371 = "89_1282016529.10767" capture_lex $P371 - .const 'Sub' $P362 = "87_1280467477.44751" + .const 'Sub' $P362 = "87_1282016529.10767" capture_lex $P362 - .const 'Sub' $P352 = "83_1280467477.44751" + .const 'Sub' $P352 = "83_1282016529.10767" capture_lex $P352 - .const 'Sub' $P345 = "81_1280467477.44751" + .const 'Sub' $P345 = "81_1282016529.10767" capture_lex $P345 - .const 'Sub' $P338 = "79_1280467477.44751" + .const 'Sub' $P338 = "79_1282016529.10767" capture_lex $P338 - .const 'Sub' $P326 = "75_1280467477.44751" + .const 'Sub' $P326 = "75_1282016529.10767" capture_lex $P326 - .const 'Sub' $P318 = "73_1280467477.44751" + .const 'Sub' $P318 = "73_1282016529.10767" capture_lex $P318 - .const 'Sub' $P310 = "71_1280467477.44751" + .const 'Sub' $P310 = "71_1282016529.10767" capture_lex $P310 - .const 'Sub' $P290 = "69_1280467477.44751" + .const 'Sub' $P290 = "69_1282016529.10767" capture_lex $P290 - .const 'Sub' $P281 = "67_1280467477.44751" + .const 'Sub' $P281 = "67_1282016529.10767" capture_lex $P281 - .const 'Sub' $P263 = "64_1280467477.44751" + .const 'Sub' $P263 = "64_1282016529.10767" capture_lex $P263 - .const 'Sub' $P245 = "62_1280467477.44751" + .const 'Sub' $P245 = "62_1282016529.10767" capture_lex $P245 - .const 'Sub' $P236 = "58_1280467477.44751" + .const 'Sub' $P236 = "58_1282016529.10767" capture_lex $P236 - .const 'Sub' $P231 = "56_1280467477.44751" + .const 'Sub' $P231 = "56_1282016529.10767" capture_lex $P231 - .const 'Sub' $P222 = "52_1280467477.44751" + .const 'Sub' $P222 = "52_1282016529.10767" capture_lex $P222 - .const 'Sub' $P217 = "50_1280467477.44751" + .const 'Sub' $P217 = "50_1282016529.10767" capture_lex $P217 - .const 'Sub' $P212 = "48_1280467477.44751" + .const 'Sub' $P212 = "48_1282016529.10767" capture_lex $P212 - .const 'Sub' $P203 = "46_1280467477.44751" + .const 'Sub' $P203 = "46_1282016529.10767" capture_lex $P203 - .const 'Sub' $P196 = "44_1280467477.44751" + .const 'Sub' $P196 = "44_1282016529.10767" capture_lex $P196 - .const 'Sub' $P190 = "42_1280467477.44751" + .const 'Sub' $P190 = "42_1282016529.10767" capture_lex $P190 - .const 'Sub' $P182 = "40_1280467477.44751" + .const 'Sub' $P182 = "40_1282016529.10767" capture_lex $P182 - .const 'Sub' $P176 = "38_1280467477.44751" + .const 'Sub' $P176 = "38_1282016529.10767" capture_lex $P176 - .const 'Sub' $P170 = "36_1280467477.44751" + .const 'Sub' $P170 = "36_1282016529.10767" capture_lex $P170 - .const 'Sub' $P155 = "33_1280467477.44751" + .const 'Sub' $P155 = "33_1282016529.10767" capture_lex $P155 - .const 'Sub' $P141 = "31_1280467477.44751" + .const 'Sub' $P141 = "31_1282016529.10767" capture_lex $P141 - .const 'Sub' $P134 = "29_1280467477.44751" + .const 'Sub' $P134 = "29_1282016529.10767" capture_lex $P134 - .const 'Sub' $P95 = "26_1280467477.44751" + .const 'Sub' $P95 = "26_1282016529.10767" capture_lex $P95 - .const 'Sub' $P80 = "23_1280467477.44751" + .const 'Sub' $P80 = "23_1282016529.10767" capture_lex $P80 - .const 'Sub' $P69 = "21_1280467477.44751" + .const 'Sub' $P69 = "21_1282016529.10767" capture_lex $P69 - .const 'Sub' $P57 = "19_1280467477.44751" + .const 'Sub' $P57 = "19_1282016529.10767" capture_lex $P57 - .const 'Sub' $P49 = "17_1280467477.44751" + .const 'Sub' $P49 = "17_1282016529.10767" capture_lex $P49 - .const 'Sub' $P42 = "15_1280467477.44751" + .const 'Sub' $P42 = "15_1282016529.10767" capture_lex $P42 - .const 'Sub' $P35 = "13_1280467477.44751" + .const 'Sub' $P35 = "13_1282016529.10767" capture_lex $P35 - .const 'Sub' $P15 = "12_1280467477.44751" + .const 'Sub' $P15 = "12_1282016529.10767" capture_lex $P15 $P0 = find_dynamic_lex "$*CTXSAVE" if null $P0 goto ctxsave_done @@ -377,13 +377,13 @@ NQP::Compiler - NQP compiler $P1402 = $P1340() .annotate 'line', 4 .return ($P1402) - .const 'Sub' $P1404 = "370_1280467477.44751" + .const 'Sub' $P1404 = "370_1282016529.10767" .return ($P1404) .end .namespace ["NQP";"Grammar"] -.sub "" :load :init :subid("post373") :outer("11_1280467477.44751") +.sub "" :load :init :subid("post373") :outer("11_1282016529.10767") .annotate 'line', 4 get_hll_global $P14, ["NQP";"Grammar"], "_block13" .local pmc block @@ -441,7 +441,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] .include "except_types.pasm" -.sub "TOP" :subid("12_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "TOP" :subid("12_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 new $P17, 'ExceptionHandler' set_addr $P17, control_16 @@ -531,7 +531,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "identifier" :subid("13_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "identifier" :subid("13_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx36_tgt .local int rx36_pos @@ -539,7 +539,9 @@ NQP::Compiler - NQP compiler .local int rx36_eos .local int rx36_rep .local pmc rx36_cur + .local pmc rx36_debug (rx36_cur, rx36_pos, rx36_tgt, $I10) = self."!cursor_start"() + getattribute rx36_debug, rx36_cur, "$!debug" .lex unicode:"$\x{a2}", rx36_cur .local pmc match .lex "$/", match @@ -551,7 +553,9 @@ NQP::Compiler - NQP compiler substr rx36_tgt, rx36_tgt, rx36_off rx36_start: eq $I10, 1, rx36_restart + if_null rx36_debug, debug_384 rx36_cur."!cursor_debug"("START ", "identifier") + debug_384: $I10 = self.'from'() ne $I10, -1, rxscan40_done goto rxscan40_scan @@ -594,11 +598,15 @@ NQP::Compiler - NQP compiler rxquantr41_done: # rx pass rx36_cur."!cursor_pass"(rx36_pos, "identifier") + if_null rx36_debug, debug_385 rx36_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx36_pos) + debug_385: .return (rx36_cur) rx36_restart: .annotate 'line', 4 + if_null rx36_debug, debug_386 rx36_cur."!cursor_debug"("NEXT ", "identifier") + debug_386: rx36_fail: (rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0) lt rx36_pos, -1, rx36_done @@ -606,14 +614,16 @@ NQP::Compiler - NQP compiler jump $I10 rx36_done: rx36_cur."!cursor_fail"() + if_null rx36_debug, debug_387 rx36_cur."!cursor_debug"("FAIL ", "identifier") + debug_387: .return (rx36_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__identifier" :subid("14_1280467477.44751") :method +.sub "!PREFIX__identifier" :subid("14_1282016529.10767") :method .annotate 'line', 4 $P38 = self."!PREFIX__!subrule"("ident", "") new $P39, "ResizablePMCArray" @@ -623,7 +633,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "name" :subid("15_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "name" :subid("15_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx43_tgt .local int rx43_pos @@ -631,8 +641,10 @@ NQP::Compiler - NQP compiler .local int rx43_eos .local int rx43_rep .local pmc rx43_cur + .local pmc rx43_debug (rx43_cur, rx43_pos, rx43_tgt, $I10) = self."!cursor_start"() rx43_cur."!cursor_caparray"("identifier") + getattribute rx43_debug, rx43_cur, "$!debug" .lex unicode:"$\x{a2}", rx43_cur .local pmc match .lex "$/", match @@ -644,7 +656,9 @@ NQP::Compiler - NQP compiler substr rx43_tgt, rx43_tgt, rx43_off rx43_start: eq $I10, 1, rx43_restart + if_null rx43_debug, debug_388 rx43_cur."!cursor_debug"("START ", "name") + debug_388: $I10 = self.'from'() ne $I10, -1, rxscan46_done goto rxscan46_scan @@ -690,11 +704,15 @@ NQP::Compiler - NQP compiler rxquantr47_done: # rx pass rx43_cur."!cursor_pass"(rx43_pos, "name") + if_null rx43_debug, debug_389 rx43_cur."!cursor_debug"("PASS ", "name", " at pos=", rx43_pos) + debug_389: .return (rx43_cur) rx43_restart: .annotate 'line', 4 + if_null rx43_debug, debug_390 rx43_cur."!cursor_debug"("NEXT ", "name") + debug_390: rx43_fail: (rx43_rep, rx43_pos, $I10, $P10) = rx43_cur."!mark_fail"(0) lt rx43_pos, -1, rx43_done @@ -702,14 +720,16 @@ NQP::Compiler - NQP compiler jump $I10 rx43_done: rx43_cur."!cursor_fail"() + if_null rx43_debug, debug_391 rx43_cur."!cursor_debug"("FAIL ", "name") + debug_391: .return (rx43_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__name" :subid("16_1280467477.44751") :method +.sub "!PREFIX__name" :subid("16_1282016529.10767") :method .annotate 'line', 4 new $P45, "ResizablePMCArray" push $P45, "" @@ -718,7 +738,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "deflongname" :subid("17_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "deflongname" :subid("17_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx50_tgt .local int rx50_pos @@ -726,8 +746,10 @@ NQP::Compiler - NQP compiler .local int rx50_eos .local int rx50_rep .local pmc rx50_cur + .local pmc rx50_debug (rx50_cur, rx50_pos, rx50_tgt, $I10) = self."!cursor_start"() rx50_cur."!cursor_caparray"("colonpair") + getattribute rx50_debug, rx50_cur, "$!debug" .lex unicode:"$\x{a2}", rx50_cur .local pmc match .lex "$/", match @@ -739,7 +761,9 @@ NQP::Compiler - NQP compiler substr rx50_tgt, rx50_tgt, rx50_off rx50_start: eq $I10, 1, rx50_restart + if_null rx50_debug, debug_392 rx50_cur."!cursor_debug"("START ", "deflongname") + debug_392: $I10 = self.'from'() ne $I10, -1, rxscan54_done goto rxscan54_scan @@ -783,11 +807,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 21 # rx pass rx50_cur."!cursor_pass"(rx50_pos, "deflongname") + if_null rx50_debug, debug_393 rx50_cur."!cursor_debug"("PASS ", "deflongname", " at pos=", rx50_pos) + debug_393: .return (rx50_cur) rx50_restart: .annotate 'line', 4 + if_null rx50_debug, debug_394 rx50_cur."!cursor_debug"("NEXT ", "deflongname") + debug_394: rx50_fail: (rx50_rep, rx50_pos, $I10, $P10) = rx50_cur."!mark_fail"(0) lt rx50_pos, -1, rx50_done @@ -795,14 +823,16 @@ NQP::Compiler - NQP compiler jump $I10 rx50_done: rx50_cur."!cursor_fail"() + if_null rx50_debug, debug_395 rx50_cur."!cursor_debug"("FAIL ", "deflongname") + debug_395: .return (rx50_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__deflongname" :subid("18_1280467477.44751") :method +.sub "!PREFIX__deflongname" :subid("18_1282016529.10767") :method .annotate 'line', 4 $P52 = self."!PREFIX__!subrule"("identifier", "") new $P53, "ResizablePMCArray" @@ -812,7 +842,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "ENDSTMT" :subid("19_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "ENDSTMT" :subid("19_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx58_tgt .local int rx58_pos @@ -820,7 +850,9 @@ NQP::Compiler - NQP compiler .local int rx58_eos .local int rx58_rep .local pmc rx58_cur + .local pmc rx58_debug (rx58_cur, rx58_pos, rx58_tgt, $I10) = self."!cursor_start"() + getattribute rx58_debug, rx58_cur, "$!debug" .lex unicode:"$\x{a2}", rx58_cur .local pmc match .lex "$/", match @@ -832,7 +864,9 @@ NQP::Compiler - NQP compiler substr rx58_tgt, rx58_tgt, rx58_off rx58_start: eq $I10, 1, rx58_restart + if_null rx58_debug, debug_396 rx58_cur."!cursor_debug"("START ", "ENDSTMT") + debug_396: $I10 = self.'from'() ne $I10, -1, rxscan61_done goto rxscan61_scan @@ -940,11 +974,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 25 # rx pass rx58_cur."!cursor_pass"(rx58_pos, "ENDSTMT") + if_null rx58_debug, debug_397 rx58_cur."!cursor_debug"("PASS ", "ENDSTMT", " at pos=", rx58_pos) + debug_397: .return (rx58_cur) rx58_restart: .annotate 'line', 4 + if_null rx58_debug, debug_398 rx58_cur."!cursor_debug"("NEXT ", "ENDSTMT") + debug_398: rx58_fail: (rx58_rep, rx58_pos, $I10, $P10) = rx58_cur."!mark_fail"(0) lt rx58_pos, -1, rx58_done @@ -952,14 +990,16 @@ NQP::Compiler - NQP compiler jump $I10 rx58_done: rx58_cur."!cursor_fail"() + if_null rx58_debug, debug_399 rx58_cur."!cursor_debug"("FAIL ", "ENDSTMT") + debug_399: .return (rx58_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__ENDSTMT" :subid("20_1280467477.44751") :method +.sub "!PREFIX__ENDSTMT" :subid("20_1282016529.10767") :method .annotate 'line', 4 new $P60, "ResizablePMCArray" push $P60, "" @@ -968,7 +1008,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "ws" :subid("21_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "ws" :subid("21_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx70_tgt .local int rx70_pos @@ -976,7 +1016,9 @@ NQP::Compiler - NQP compiler .local int rx70_eos .local int rx70_rep .local pmc rx70_cur + .local pmc rx70_debug (rx70_cur, rx70_pos, rx70_tgt, $I10) = self."!cursor_start"() + getattribute rx70_debug, rx70_cur, "$!debug" .lex unicode:"$\x{a2}", rx70_cur .local pmc match .lex "$/", match @@ -988,7 +1030,9 @@ NQP::Compiler - NQP compiler substr rx70_tgt, rx70_tgt, rx70_off rx70_start: eq $I10, 1, rx70_restart + if_null rx70_debug, debug_400 rx70_cur."!cursor_debug"("START ", "ws") + debug_400: $I10 = self.'from'() ne $I10, -1, rxscan73_done goto rxscan73_scan @@ -1052,8 +1096,8 @@ NQP::Compiler - NQP compiler add $I11, rx70_pos, 1 gt $I11, rx70_eos, rx70_fail sub $I11, rx70_pos, rx70_off - substr $S10, rx70_tgt, $I11, 1 - ne $S10, "#", rx70_fail + ord $I11, rx70_tgt, $I11 + ne $I11, 35, rx70_fail add rx70_pos, 1 # rx charclass_q N r 0..-1 sub $I10, rx70_pos, rx70_off @@ -1114,11 +1158,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 32 # rx pass rx70_cur."!cursor_pass"(rx70_pos, "ws") + if_null rx70_debug, debug_401 rx70_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx70_pos) + debug_401: .return (rx70_cur) rx70_restart: .annotate 'line', 4 + if_null rx70_debug, debug_402 rx70_cur."!cursor_debug"("NEXT ", "ws") + debug_402: rx70_fail: (rx70_rep, rx70_pos, $I10, $P10) = rx70_cur."!mark_fail"(0) lt rx70_pos, -1, rx70_done @@ -1126,14 +1174,16 @@ NQP::Compiler - NQP compiler jump $I10 rx70_done: rx70_cur."!cursor_fail"() + if_null rx70_debug, debug_403 rx70_cur."!cursor_debug"("FAIL ", "ws") + debug_403: .return (rx70_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__ws" :subid("22_1280467477.44751") :method +.sub "!PREFIX__ws" :subid("22_1282016529.10767") :method .annotate 'line', 4 new $P72, "ResizablePMCArray" push $P72, "" @@ -1143,9 +1193,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "unv" :subid("23_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "unv" :subid("23_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 - .const 'Sub' $P88 = "25_1280467477.44751" + .const 'Sub' $P88 = "25_1282016529.10767" capture_lex $P88 .local string rx81_tgt .local int rx81_pos @@ -1153,7 +1203,9 @@ NQP::Compiler - NQP compiler .local int rx81_eos .local int rx81_rep .local pmc rx81_cur + .local pmc rx81_debug (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"() + getattribute rx81_debug, rx81_cur, "$!debug" .lex unicode:"$\x{a2}", rx81_cur .local pmc match .lex "$/", match @@ -1165,7 +1217,9 @@ NQP::Compiler - NQP compiler substr rx81_tgt, rx81_tgt, rx81_off rx81_start: eq $I10, 1, rx81_restart + if_null rx81_debug, debug_404 rx81_cur."!cursor_debug"("START ", "unv") + debug_404: $I10 = self.'from'() ne $I10, -1, rxscan84_done goto rxscan84_scan @@ -1193,7 +1247,7 @@ NQP::Compiler - NQP compiler rxanchor86_done: # rx subrule "before" subtype=zerowidth negate= rx81_cur."!cursor_pos"(rx81_pos) - .const 'Sub' $P88 = "25_1280467477.44751" + .const 'Sub' $P88 = "25_1282016529.10767" capture_lex $P88 $P10 = rx81_cur."before"($P88) unless $P10, rx81_fail @@ -1228,8 +1282,8 @@ NQP::Compiler - NQP compiler add $I11, rx81_pos, 1 gt $I11, rx81_eos, rx81_fail sub $I11, rx81_pos, rx81_off - substr $S10, rx81_tgt, $I11, 1 - ne $S10, "#", rx81_fail + ord $I11, rx81_tgt, $I11 + ne $I11, 35, rx81_fail add rx81_pos, 1 # rx charclass_q N r 0..-1 sub $I10, rx81_pos, rx81_off @@ -1259,11 +1313,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 43 # rx pass rx81_cur."!cursor_pass"(rx81_pos, "unv") + if_null rx81_debug, debug_409 rx81_cur."!cursor_debug"("PASS ", "unv", " at pos=", rx81_pos) + debug_409: .return (rx81_cur) rx81_restart: .annotate 'line', 4 + if_null rx81_debug, debug_410 rx81_cur."!cursor_debug"("NEXT ", "unv") + debug_410: rx81_fail: (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0) lt rx81_pos, -1, rx81_done @@ -1271,14 +1329,16 @@ NQP::Compiler - NQP compiler jump $I10 rx81_done: rx81_cur."!cursor_fail"() + if_null rx81_debug, debug_411 rx81_cur."!cursor_debug"("FAIL ", "unv") + debug_411: .return (rx81_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__unv" :subid("24_1280467477.44751") :method +.sub "!PREFIX__unv" :subid("24_1282016529.10767") :method .annotate 'line', 4 new $P83, "ResizablePMCArray" push $P83, "" @@ -1289,7 +1349,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block87" :anon :subid("25_1280467477.44751") :method :outer("23_1280467477.44751") +.sub "_block87" :anon :subid("25_1282016529.10767") :method :outer("23_1282016529.10767") .annotate 'line', 46 .local string rx89_tgt .local int rx89_pos @@ -1297,7 +1357,9 @@ NQP::Compiler - NQP compiler .local int rx89_eos .local int rx89_rep .local pmc rx89_cur + .local pmc rx89_debug (rx89_cur, rx89_pos, rx89_tgt, $I10) = self."!cursor_start"() + getattribute rx89_debug, rx89_cur, "$!debug" .lex unicode:"$\x{a2}", rx89_cur .local pmc match .lex "$/", match @@ -1309,7 +1371,9 @@ NQP::Compiler - NQP compiler substr rx89_tgt, rx89_tgt, rx89_off rx89_start: eq $I10, 1, rx89_restart + if_null rx89_debug, debug_405 rx89_cur."!cursor_debug"("START ", "") + debug_405: $I10 = self.'from'() ne $I10, -1, rxscan90_done goto rxscan90_scan @@ -1343,8 +1407,8 @@ NQP::Compiler - NQP compiler add $I11, rx89_pos, 1 gt $I11, rx89_eos, rx89_fail sub $I11, rx89_pos, rx89_off - substr $S10, rx89_tgt, $I11, 1 - ne $S10, "=", rx89_fail + ord $I11, rx89_tgt, $I11 + ne $I11, 61, rx89_fail add rx89_pos, 1 alt92_0: set_addr $I10, alt92_1 @@ -1361,16 +1425,20 @@ NQP::Compiler - NQP compiler add $I11, rx89_pos, 1 gt $I11, rx89_eos, rx89_fail sub $I11, rx89_pos, rx89_off - substr $S10, rx89_tgt, $I11, 1 - ne $S10, "\\", rx89_fail + ord $I11, rx89_tgt, $I11 + ne $I11, 92, rx89_fail add rx89_pos, 1 alt92_end: # rx pass rx89_cur."!cursor_pass"(rx89_pos, "") + if_null rx89_debug, debug_406 rx89_cur."!cursor_debug"("PASS ", "", " at pos=", rx89_pos) + debug_406: .return (rx89_cur) rx89_restart: + if_null rx89_debug, debug_407 rx89_cur."!cursor_debug"("NEXT ", "") + debug_407: rx89_fail: (rx89_rep, rx89_pos, $I10, $P10) = rx89_cur."!mark_fail"(0) lt rx89_pos, -1, rx89_done @@ -1378,16 +1446,18 @@ NQP::Compiler - NQP compiler jump $I10 rx89_done: rx89_cur."!cursor_fail"() + if_null rx89_debug, debug_408 rx89_cur."!cursor_debug"("FAIL ", "") + debug_408: .return (rx89_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "pod_comment" :subid("26_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "pod_comment" :subid("26_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 - .const 'Sub' $P127 = "28_1280467477.44751" + .const 'Sub' $P127 = "28_1282016529.10767" capture_lex $P127 .local string rx96_tgt .local int rx96_pos @@ -1395,7 +1465,9 @@ NQP::Compiler - NQP compiler .local int rx96_eos .local int rx96_rep .local pmc rx96_cur + .local pmc rx96_debug (rx96_cur, rx96_pos, rx96_tgt, $I10) = self."!cursor_start"() + getattribute rx96_debug, rx96_cur, "$!debug" .lex unicode:"$\x{a2}", rx96_cur .local pmc match .lex "$/", match @@ -1407,7 +1479,9 @@ NQP::Compiler - NQP compiler substr rx96_tgt, rx96_tgt, rx96_off rx96_start: eq $I10, 1, rx96_restart + if_null rx96_debug, debug_412 rx96_cur."!cursor_debug"("START ", "pod_comment") + debug_412: $I10 = self.'from'() ne $I10, -1, rxscan99_done goto rxscan99_scan @@ -1450,8 +1524,8 @@ NQP::Compiler - NQP compiler add $I11, rx96_pos, 1 gt $I11, rx96_eos, rx96_fail sub $I11, rx96_pos, rx96_off - substr $S10, rx96_tgt, $I11, 1 - ne $S10, "=", rx96_fail + ord $I11, rx96_tgt, $I11 + ne $I11, 61, rx96_fail add rx96_pos, 1 alt102_0: .annotate 'line', 54 @@ -1777,8 +1851,8 @@ NQP::Compiler - NQP compiler add $I11, rx96_pos, 1 gt $I11, rx96_eos, rx96_fail sub $I11, rx96_pos, rx96_off - substr $S10, rx96_tgt, $I11, 1 - ne $S10, "#", rx96_fail + ord $I11, rx96_tgt, $I11 + ne $I11, 35, rx96_fail add rx96_pos, 1 goto alt117_end alt117_2: @@ -1893,7 +1967,7 @@ NQP::Compiler - NQP compiler rxanchor125_done: # rx subrule "before" subtype=zerowidth negate= rx96_cur."!cursor_pos"(rx96_pos) - .const 'Sub' $P127 = "28_1280467477.44751" + .const 'Sub' $P127 = "28_1282016529.10767" capture_lex $P127 $P10 = rx96_cur."before"($P127) unless $P10, rx96_fail @@ -1927,11 +2001,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 52 # rx pass rx96_cur."!cursor_pass"(rx96_pos, "pod_comment") + if_null rx96_debug, debug_417 rx96_cur."!cursor_debug"("PASS ", "pod_comment", " at pos=", rx96_pos) + debug_417: .return (rx96_cur) rx96_restart: .annotate 'line', 4 + if_null rx96_debug, debug_418 rx96_cur."!cursor_debug"("NEXT ", "pod_comment") + debug_418: rx96_fail: (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0) lt rx96_pos, -1, rx96_done @@ -1939,14 +2017,16 @@ NQP::Compiler - NQP compiler jump $I10 rx96_done: rx96_cur."!cursor_fail"() + if_null rx96_debug, debug_419 rx96_cur."!cursor_debug"("FAIL ", "pod_comment") + debug_419: .return (rx96_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__pod_comment" :subid("27_1280467477.44751") :method +.sub "!PREFIX__pod_comment" :subid("27_1282016529.10767") :method .annotate 'line', 4 new $P98, "ResizablePMCArray" push $P98, "" @@ -1955,7 +2035,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block126" :anon :subid("28_1280467477.44751") :method :outer("26_1280467477.44751") +.sub "_block126" :anon :subid("28_1282016529.10767") :method :outer("26_1282016529.10767") .annotate 'line', 69 .local string rx128_tgt .local int rx128_pos @@ -1963,7 +2043,9 @@ NQP::Compiler - NQP compiler .local int rx128_eos .local int rx128_rep .local pmc rx128_cur + .local pmc rx128_debug (rx128_cur, rx128_pos, rx128_tgt, $I10) = self."!cursor_start"() + getattribute rx128_debug, rx128_cur, "$!debug" .lex unicode:"$\x{a2}", rx128_cur .local pmc match .lex "$/", match @@ -1975,7 +2057,9 @@ NQP::Compiler - NQP compiler substr rx128_tgt, rx128_tgt, rx128_off rx128_start: eq $I10, 1, rx128_restart + if_null rx128_debug, debug_413 rx128_cur."!cursor_debug"("START ", "") + debug_413: $I10 = self.'from'() ne $I10, -1, rxscan129_done goto rxscan129_scan @@ -2013,8 +2097,8 @@ NQP::Compiler - NQP compiler add $I11, rx128_pos, 1 gt $I11, rx128_eos, rx128_fail sub $I11, rx128_pos, rx128_off - substr $S10, rx128_tgt, $I11, 1 - ne $S10, "=", rx128_fail + ord $I11, rx128_tgt, $I11 + ne $I11, 61, rx128_fail add rx128_pos, 1 .annotate 'line', 72 # rx rxquantr132 ** 0..1 @@ -2063,10 +2147,14 @@ NQP::Compiler - NQP compiler .annotate 'line', 69 # rx pass rx128_cur."!cursor_pass"(rx128_pos, "") + if_null rx128_debug, debug_414 rx128_cur."!cursor_debug"("PASS ", "", " at pos=", rx128_pos) + debug_414: .return (rx128_cur) rx128_restart: + if_null rx128_debug, debug_415 rx128_cur."!cursor_debug"("NEXT ", "") + debug_415: rx128_fail: (rx128_rep, rx128_pos, $I10, $P10) = rx128_cur."!mark_fail"(0) lt rx128_pos, -1, rx128_done @@ -2074,14 +2162,16 @@ NQP::Compiler - NQP compiler jump $I10 rx128_done: rx128_cur."!cursor_fail"() + if_null rx128_debug, debug_416 rx128_cur."!cursor_debug"("FAIL ", "") + debug_416: .return (rx128_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "comp_unit" :subid("29_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "comp_unit" :subid("29_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx135_tgt .local int rx135_pos @@ -2089,7 +2179,9 @@ NQP::Compiler - NQP compiler .local int rx135_eos .local int rx135_rep .local pmc rx135_cur + .local pmc rx135_debug (rx135_cur, rx135_pos, rx135_tgt, $I10) = self."!cursor_start"() + getattribute rx135_debug, rx135_cur, "$!debug" .lex unicode:"$\x{a2}", rx135_cur .local pmc match .lex "$/", match @@ -2101,7 +2193,9 @@ NQP::Compiler - NQP compiler substr rx135_tgt, rx135_tgt, rx135_off rx135_start: eq $I10, 1, rx135_restart + if_null rx135_debug, debug_420 rx135_cur."!cursor_debug"("START ", "comp_unit") + debug_420: $I10 = self.'from'() ne $I10, -1, rxscan139_done goto rxscan139_scan @@ -2151,11 +2245,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 83 # rx pass rx135_cur."!cursor_pass"(rx135_pos, "comp_unit") + if_null rx135_debug, debug_421 rx135_cur."!cursor_debug"("PASS ", "comp_unit", " at pos=", rx135_pos) + debug_421: .return (rx135_cur) rx135_restart: .annotate 'line', 4 + if_null rx135_debug, debug_422 rx135_cur."!cursor_debug"("NEXT ", "comp_unit") + debug_422: rx135_fail: (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0) lt rx135_pos, -1, rx135_done @@ -2163,14 +2261,16 @@ NQP::Compiler - NQP compiler jump $I10 rx135_done: rx135_cur."!cursor_fail"() + if_null rx135_debug, debug_423 rx135_cur."!cursor_debug"("FAIL ", "comp_unit") + debug_423: .return (rx135_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__comp_unit" :subid("30_1280467477.44751") :method +.sub "!PREFIX__comp_unit" :subid("30_1282016529.10767") :method .annotate 'line', 4 $P137 = self."!PREFIX__!subrule"("newpad", "") new $P138, "ResizablePMCArray" @@ -2180,7 +2280,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statementlist" :subid("31_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statementlist" :subid("31_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx142_tgt .local int rx142_pos @@ -2188,8 +2288,10 @@ NQP::Compiler - NQP compiler .local int rx142_eos .local int rx142_rep .local pmc rx142_cur + .local pmc rx142_debug (rx142_cur, rx142_pos, rx142_tgt, $I10) = self."!cursor_start"() rx142_cur."!cursor_caparray"("statement") + getattribute rx142_debug, rx142_cur, "$!debug" .lex unicode:"$\x{a2}", rx142_cur .local pmc match .lex "$/", match @@ -2201,7 +2303,9 @@ NQP::Compiler - NQP compiler substr rx142_tgt, rx142_tgt, rx142_off rx142_start: eq $I10, 1, rx142_restart + if_null rx142_debug, debug_424 rx142_cur."!cursor_debug"("START ", "statementlist") + debug_424: $I10 = self.'from'() ne $I10, -1, rxscan147_done goto rxscan147_scan @@ -2275,11 +2379,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 90 # rx pass rx142_cur."!cursor_pass"(rx142_pos, "statementlist") + if_null rx142_debug, debug_425 rx142_cur."!cursor_debug"("PASS ", "statementlist", " at pos=", rx142_pos) + debug_425: .return (rx142_cur) rx142_restart: .annotate 'line', 4 + if_null rx142_debug, debug_426 rx142_cur."!cursor_debug"("NEXT ", "statementlist") + debug_426: rx142_fail: (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0) lt rx142_pos, -1, rx142_done @@ -2287,14 +2395,16 @@ NQP::Compiler - NQP compiler jump $I10 rx142_done: rx142_cur."!cursor_fail"() + if_null rx142_debug, debug_427 rx142_cur."!cursor_debug"("FAIL ", "statementlist") + debug_427: .return (rx142_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statementlist" :subid("32_1280467477.44751") :method +.sub "!PREFIX__statementlist" :subid("32_1282016529.10767") :method .annotate 'line', 4 $P144 = self."!PREFIX__!subrule"("ws", "") $P145 = self."!PREFIX__!subrule"("ws", "") @@ -2306,9 +2416,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement" :subid("33_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement" :subid("33_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 - .const 'Sub' $P161 = "35_1280467477.44751" + .const 'Sub' $P161 = "35_1282016529.10767" capture_lex $P161 .local string rx156_tgt .local int rx156_pos @@ -2316,8 +2426,10 @@ NQP::Compiler - NQP compiler .local int rx156_eos .local int rx156_rep .local pmc rx156_cur + .local pmc rx156_debug (rx156_cur, rx156_pos, rx156_tgt, $I10) = self."!cursor_start"() - rx156_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond") + rx156_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop") + getattribute rx156_debug, rx156_cur, "$!debug" .lex unicode:"$\x{a2}", rx156_cur .local pmc match .lex "$/", match @@ -2329,7 +2441,9 @@ NQP::Compiler - NQP compiler substr rx156_tgt, rx156_tgt, rx156_off rx156_start: eq $I10, 1, rx156_restart + if_null rx156_debug, debug_428 rx156_cur."!cursor_debug"("START ", "statement") + debug_428: $I10 = self.'from'() ne $I10, -1, rxscan159_done goto rxscan159_scan @@ -2345,7 +2459,7 @@ NQP::Compiler - NQP compiler .annotate 'line', 96 # rx subrule "before" subtype=zerowidth negate=1 rx156_cur."!cursor_pos"(rx156_pos) - .const 'Sub' $P161 = "35_1280467477.44751" + .const 'Sub' $P161 = "35_1282016529.10767" capture_lex $P161 $P10 = rx156_cur."before"($P161) if $P10, rx156_fail @@ -2441,11 +2555,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 95 # rx pass rx156_cur."!cursor_pass"(rx156_pos, "statement") + if_null rx156_debug, debug_433 rx156_cur."!cursor_debug"("PASS ", "statement", " at pos=", rx156_pos) + debug_433: .return (rx156_cur) rx156_restart: .annotate 'line', 4 + if_null rx156_debug, debug_434 rx156_cur."!cursor_debug"("NEXT ", "statement") + debug_434: rx156_fail: (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0) lt rx156_pos, -1, rx156_done @@ -2453,14 +2571,16 @@ NQP::Compiler - NQP compiler jump $I10 rx156_done: rx156_cur."!cursor_fail"() + if_null rx156_debug, debug_435 rx156_cur."!cursor_debug"("FAIL ", "statement") + debug_435: .return (rx156_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement" :subid("34_1280467477.44751") :method +.sub "!PREFIX__statement" :subid("34_1282016529.10767") :method .annotate 'line', 4 new $P158, "ResizablePMCArray" push $P158, "" @@ -2469,7 +2589,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block160" :anon :subid("35_1280467477.44751") :method :outer("33_1280467477.44751") +.sub "_block160" :anon :subid("35_1282016529.10767") :method :outer("33_1282016529.10767") .annotate 'line', 96 .local string rx162_tgt .local int rx162_pos @@ -2477,7 +2597,9 @@ NQP::Compiler - NQP compiler .local int rx162_eos .local int rx162_rep .local pmc rx162_cur + .local pmc rx162_debug (rx162_cur, rx162_pos, rx162_tgt, $I10) = self."!cursor_start"() + getattribute rx162_debug, rx162_cur, "$!debug" .lex unicode:"$\x{a2}", rx162_cur .local pmc match .lex "$/", match @@ -2489,7 +2611,9 @@ NQP::Compiler - NQP compiler substr rx162_tgt, rx162_tgt, rx162_off rx162_start: eq $I10, 1, rx162_restart + if_null rx162_debug, debug_429 rx162_cur."!cursor_debug"("START ", "") + debug_429: $I10 = self.'from'() ne $I10, -1, rxscan163_done goto rxscan163_scan @@ -2519,10 +2643,14 @@ NQP::Compiler - NQP compiler alt164_end: # rx pass rx162_cur."!cursor_pass"(rx162_pos, "") + if_null rx162_debug, debug_430 rx162_cur."!cursor_debug"("PASS ", "", " at pos=", rx162_pos) + debug_430: .return (rx162_cur) rx162_restart: + if_null rx162_debug, debug_431 rx162_cur."!cursor_debug"("NEXT ", "") + debug_431: rx162_fail: (rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0) lt rx162_pos, -1, rx162_done @@ -2530,14 +2658,16 @@ NQP::Compiler - NQP compiler jump $I10 rx162_done: rx162_cur."!cursor_fail"() + if_null rx162_debug, debug_432 rx162_cur."!cursor_debug"("FAIL ", "") + debug_432: .return (rx162_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "eat_terminator" :subid("36_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "eat_terminator" :subid("36_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx171_tgt .local int rx171_pos @@ -2545,7 +2675,9 @@ NQP::Compiler - NQP compiler .local int rx171_eos .local int rx171_rep .local pmc rx171_cur + .local pmc rx171_debug (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"() + getattribute rx171_debug, rx171_cur, "$!debug" .lex unicode:"$\x{a2}", rx171_cur .local pmc match .lex "$/", match @@ -2557,7 +2689,9 @@ NQP::Compiler - NQP compiler substr rx171_tgt, rx171_tgt, rx171_off rx171_start: eq $I10, 1, rx171_restart + if_null rx171_debug, debug_436 rx171_cur."!cursor_debug"("START ", "eat_terminator") + debug_436: $I10 = self.'from'() ne $I10, -1, rxscan174_done goto rxscan174_scan @@ -2579,8 +2713,8 @@ NQP::Compiler - NQP compiler add $I11, rx171_pos, 1 gt $I11, rx171_eos, rx171_fail sub $I11, rx171_pos, rx171_off - substr $S10, rx171_tgt, $I11, 1 - ne $S10, ";", rx171_fail + ord $I11, rx171_tgt, $I11 + ne $I11, 59, rx171_fail add rx171_pos, 1 goto alt175_end alt175_1: @@ -2609,11 +2743,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 108 # rx pass rx171_cur."!cursor_pass"(rx171_pos, "eat_terminator") + if_null rx171_debug, debug_437 rx171_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx171_pos) + debug_437: .return (rx171_cur) rx171_restart: .annotate 'line', 4 + if_null rx171_debug, debug_438 rx171_cur."!cursor_debug"("NEXT ", "eat_terminator") + debug_438: rx171_fail: (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0) lt rx171_pos, -1, rx171_done @@ -2621,14 +2759,16 @@ NQP::Compiler - NQP compiler jump $I10 rx171_done: rx171_cur."!cursor_fail"() + if_null rx171_debug, debug_439 rx171_cur."!cursor_debug"("FAIL ", "eat_terminator") + debug_439: .return (rx171_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__eat_terminator" :subid("37_1280467477.44751") :method +.sub "!PREFIX__eat_terminator" :subid("37_1282016529.10767") :method .annotate 'line', 4 new $P173, "ResizablePMCArray" push $P173, "" @@ -2640,7 +2780,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "xblock" :subid("38_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "xblock" :subid("38_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx177_tgt .local int rx177_pos @@ -2648,7 +2788,9 @@ NQP::Compiler - NQP compiler .local int rx177_eos .local int rx177_rep .local pmc rx177_cur + .local pmc rx177_debug (rx177_cur, rx177_pos, rx177_tgt, $I10) = self."!cursor_start"() + getattribute rx177_debug, rx177_cur, "$!debug" .lex unicode:"$\x{a2}", rx177_cur .local pmc match .lex "$/", match @@ -2660,7 +2802,9 @@ NQP::Compiler - NQP compiler substr rx177_tgt, rx177_tgt, rx177_off rx177_start: eq $I10, 1, rx177_restart + if_null rx177_debug, debug_440 rx177_cur."!cursor_debug"("START ", "xblock") + debug_440: $I10 = self.'from'() ne $I10, -1, rxscan181_done goto rxscan181_scan @@ -2696,11 +2840,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 115 # rx pass rx177_cur."!cursor_pass"(rx177_pos, "xblock") + if_null rx177_debug, debug_441 rx177_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx177_pos) + debug_441: .return (rx177_cur) rx177_restart: .annotate 'line', 4 + if_null rx177_debug, debug_442 rx177_cur."!cursor_debug"("NEXT ", "xblock") + debug_442: rx177_fail: (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0) lt rx177_pos, -1, rx177_done @@ -2708,14 +2856,16 @@ NQP::Compiler - NQP compiler jump $I10 rx177_done: rx177_cur."!cursor_fail"() + if_null rx177_debug, debug_443 rx177_cur."!cursor_debug"("FAIL ", "xblock") + debug_443: .return (rx177_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__xblock" :subid("39_1280467477.44751") :method +.sub "!PREFIX__xblock" :subid("39_1282016529.10767") :method .annotate 'line', 4 $P179 = self."!PREFIX__!subrule"("EXPR", "") new $P180, "ResizablePMCArray" @@ -2725,7 +2875,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "pblock" :subid("40_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "pblock" :subid("40_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx183_tgt .local int rx183_pos @@ -2733,7 +2883,9 @@ NQP::Compiler - NQP compiler .local int rx183_eos .local int rx183_rep .local pmc rx183_cur + .local pmc rx183_debug (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"() + getattribute rx183_debug, rx183_cur, "$!debug" .lex unicode:"$\x{a2}", rx183_cur .local pmc match .lex "$/", match @@ -2745,7 +2897,9 @@ NQP::Compiler - NQP compiler substr rx183_tgt, rx183_tgt, rx183_off rx183_start: eq $I10, 1, rx183_restart + if_null rx183_debug, debug_444 rx183_cur."!cursor_debug"("START ", "pblock") + debug_444: $I10 = self.'from'() ne $I10, -1, rxscan188_done goto rxscan188_scan @@ -2829,11 +2983,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 119 # rx pass rx183_cur."!cursor_pass"(rx183_pos, "pblock") + if_null rx183_debug, debug_445 rx183_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx183_pos) + debug_445: .return (rx183_cur) rx183_restart: .annotate 'line', 4 + if_null rx183_debug, debug_446 rx183_cur."!cursor_debug"("NEXT ", "pblock") + debug_446: rx183_fail: (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0) lt rx183_pos, -1, rx183_done @@ -2841,14 +2999,16 @@ NQP::Compiler - NQP compiler jump $I10 rx183_done: rx183_cur."!cursor_fail"() + if_null rx183_debug, debug_447 rx183_cur."!cursor_debug"("FAIL ", "pblock") + debug_447: .return (rx183_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__pblock" :subid("41_1280467477.44751") :method +.sub "!PREFIX__pblock" :subid("41_1282016529.10767") :method .annotate 'line', 4 $P185 = self."!PREFIX__!subrule"("panic", "") $P186 = self."!PREFIX__!subrule"("lambda", "") @@ -2861,7 +3021,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "lambda" :subid("42_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "lambda" :subid("42_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx191_tgt .local int rx191_pos @@ -2869,7 +3029,9 @@ NQP::Compiler - NQP compiler .local int rx191_eos .local int rx191_rep .local pmc rx191_cur + .local pmc rx191_debug (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"() + getattribute rx191_debug, rx191_cur, "$!debug" .lex unicode:"$\x{a2}", rx191_cur .local pmc match .lex "$/", match @@ -2881,7 +3043,9 @@ NQP::Compiler - NQP compiler substr rx191_tgt, rx191_tgt, rx191_off rx191_start: eq $I10, 1, rx191_restart + if_null rx191_debug, debug_448 rx191_cur."!cursor_debug"("START ", "lambda") + debug_448: $I10 = self.'from'() ne $I10, -1, rxscan194_done goto rxscan194_scan @@ -2917,11 +3081,15 @@ NQP::Compiler - NQP compiler alt195_end: # rx pass rx191_cur."!cursor_pass"(rx191_pos, "lambda") + if_null rx191_debug, debug_449 rx191_cur."!cursor_debug"("PASS ", "lambda", " at pos=", rx191_pos) + debug_449: .return (rx191_cur) rx191_restart: .annotate 'line', 4 + if_null rx191_debug, debug_450 rx191_cur."!cursor_debug"("NEXT ", "lambda") + debug_450: rx191_fail: (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0) lt rx191_pos, -1, rx191_done @@ -2929,14 +3097,16 @@ NQP::Compiler - NQP compiler jump $I10 rx191_done: rx191_cur."!cursor_fail"() + if_null rx191_debug, debug_451 rx191_cur."!cursor_debug"("FAIL ", "lambda") + debug_451: .return (rx191_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__lambda" :subid("43_1280467477.44751") :method +.sub "!PREFIX__lambda" :subid("43_1282016529.10767") :method .annotate 'line', 4 new $P193, "ResizablePMCArray" push $P193, "<->" @@ -2946,7 +3116,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "block" :subid("44_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "block" :subid("44_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx197_tgt .local int rx197_pos @@ -2954,7 +3124,9 @@ NQP::Compiler - NQP compiler .local int rx197_eos .local int rx197_rep .local pmc rx197_cur + .local pmc rx197_debug (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"() + getattribute rx197_debug, rx197_cur, "$!debug" .lex unicode:"$\x{a2}", rx197_cur .local pmc match .lex "$/", match @@ -2966,7 +3138,9 @@ NQP::Compiler - NQP compiler substr rx197_tgt, rx197_tgt, rx197_off rx197_start: eq $I10, 1, rx197_restart + if_null rx197_debug, debug_452 rx197_cur."!cursor_debug"("START ", "block") + debug_452: $I10 = self.'from'() ne $I10, -1, rxscan201_done goto rxscan201_scan @@ -3014,11 +3188,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 132 # rx pass rx197_cur."!cursor_pass"(rx197_pos, "block") + if_null rx197_debug, debug_453 rx197_cur."!cursor_debug"("PASS ", "block", " at pos=", rx197_pos) + debug_453: .return (rx197_cur) rx197_restart: .annotate 'line', 4 + if_null rx197_debug, debug_454 rx197_cur."!cursor_debug"("NEXT ", "block") + debug_454: rx197_fail: (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0) lt rx197_pos, -1, rx197_done @@ -3026,14 +3204,16 @@ NQP::Compiler - NQP compiler jump $I10 rx197_done: rx197_cur."!cursor_fail"() + if_null rx197_debug, debug_455 rx197_cur."!cursor_debug"("FAIL ", "block") + debug_455: .return (rx197_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__block" :subid("45_1280467477.44751") :method +.sub "!PREFIX__block" :subid("45_1282016529.10767") :method .annotate 'line', 4 $P199 = self."!PREFIX__!subrule"("panic", "") new $P200, "ResizablePMCArray" @@ -3044,7 +3224,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "blockoid" :subid("46_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "blockoid" :subid("46_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx204_tgt .local int rx204_pos @@ -3052,7 +3232,9 @@ NQP::Compiler - NQP compiler .local int rx204_eos .local int rx204_rep .local pmc rx204_cur + .local pmc rx204_debug (rx204_cur, rx204_pos, rx204_tgt, $I10) = self."!cursor_start"() + getattribute rx204_debug, rx204_cur, "$!debug" .lex unicode:"$\x{a2}", rx204_cur .local pmc match .lex "$/", match @@ -3064,7 +3246,9 @@ NQP::Compiler - NQP compiler substr rx204_tgt, rx204_tgt, rx204_off rx204_start: eq $I10, 1, rx204_restart + if_null rx204_debug, debug_456 rx204_cur."!cursor_debug"("START ", "blockoid") + debug_456: $I10 = self.'from'() ne $I10, -1, rxscan208_done goto rxscan208_scan @@ -3088,8 +3272,8 @@ NQP::Compiler - NQP compiler add $I11, rx204_pos, 1 gt $I11, rx204_eos, rx204_fail sub $I11, rx204_pos, rx204_off - substr $S10, rx204_tgt, $I11, 1 - ne $S10, "{", rx204_fail + ord $I11, rx204_tgt, $I11 + ne $I11, 123, rx204_fail add rx204_pos, 1 # rx subrule "statementlist" subtype=capture negate= rx204_cur."!cursor_pos"(rx204_pos) @@ -3105,8 +3289,8 @@ NQP::Compiler - NQP compiler add $I11, rx204_pos, 1 gt $I11, rx204_eos, rx204_fail sub $I11, rx204_pos, rx204_off - substr $S10, rx204_tgt, $I11, 1 - ne $S10, "}", rx204_fail + ord $I11, rx204_tgt, $I11 + ne $I11, 125, rx204_fail add rx204_pos, 1 goto alt209_end alt209_1: @@ -3131,11 +3315,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 138 # rx pass rx204_cur."!cursor_pass"(rx204_pos, "blockoid") + if_null rx204_debug, debug_457 rx204_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx204_pos) + debug_457: .return (rx204_cur) rx204_restart: .annotate 'line', 4 + if_null rx204_debug, debug_458 rx204_cur."!cursor_debug"("NEXT ", "blockoid") + debug_458: rx204_fail: (rx204_rep, rx204_pos, $I10, $P10) = rx204_cur."!mark_fail"(0) lt rx204_pos, -1, rx204_done @@ -3143,14 +3331,16 @@ NQP::Compiler - NQP compiler jump $I10 rx204_done: rx204_cur."!cursor_fail"() + if_null rx204_debug, debug_459 rx204_cur."!cursor_debug"("FAIL ", "blockoid") + debug_459: .return (rx204_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__blockoid" :subid("47_1280467477.44751") :method +.sub "!PREFIX__blockoid" :subid("47_1282016529.10767") :method .annotate 'line', 4 $P206 = self."!PREFIX__!subrule"("finishpad", "") new $P207, "ResizablePMCArray" @@ -3160,7 +3350,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "newpad" :subid("48_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "newpad" :subid("48_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx213_tgt .local int rx213_pos @@ -3168,7 +3358,9 @@ NQP::Compiler - NQP compiler .local int rx213_eos .local int rx213_rep .local pmc rx213_cur + .local pmc rx213_debug (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"() + getattribute rx213_debug, rx213_cur, "$!debug" .lex unicode:"$\x{a2}", rx213_cur .local pmc match .lex "$/", match @@ -3180,7 +3372,9 @@ NQP::Compiler - NQP compiler substr rx213_tgt, rx213_tgt, rx213_off rx213_start: eq $I10, 1, rx213_restart + if_null rx213_debug, debug_460 rx213_cur."!cursor_debug"("START ", "newpad") + debug_460: $I10 = self.'from'() ne $I10, -1, rxscan216_done goto rxscan216_scan @@ -3196,11 +3390,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 144 # rx pass rx213_cur."!cursor_pass"(rx213_pos, "newpad") + if_null rx213_debug, debug_461 rx213_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx213_pos) + debug_461: .return (rx213_cur) rx213_restart: .annotate 'line', 4 + if_null rx213_debug, debug_462 rx213_cur."!cursor_debug"("NEXT ", "newpad") + debug_462: rx213_fail: (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0) lt rx213_pos, -1, rx213_done @@ -3208,14 +3406,16 @@ NQP::Compiler - NQP compiler jump $I10 rx213_done: rx213_cur."!cursor_fail"() + if_null rx213_debug, debug_463 rx213_cur."!cursor_debug"("FAIL ", "newpad") + debug_463: .return (rx213_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__newpad" :subid("49_1280467477.44751") :method +.sub "!PREFIX__newpad" :subid("49_1282016529.10767") :method .annotate 'line', 4 new $P215, "ResizablePMCArray" push $P215, "" @@ -3224,7 +3424,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "outerctx" :subid("50_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "outerctx" :subid("50_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx218_tgt .local int rx218_pos @@ -3232,7 +3432,9 @@ NQP::Compiler - NQP compiler .local int rx218_eos .local int rx218_rep .local pmc rx218_cur + .local pmc rx218_debug (rx218_cur, rx218_pos, rx218_tgt, $I10) = self."!cursor_start"() + getattribute rx218_debug, rx218_cur, "$!debug" .lex unicode:"$\x{a2}", rx218_cur .local pmc match .lex "$/", match @@ -3244,7 +3446,9 @@ NQP::Compiler - NQP compiler substr rx218_tgt, rx218_tgt, rx218_off rx218_start: eq $I10, 1, rx218_restart + if_null rx218_debug, debug_464 rx218_cur."!cursor_debug"("START ", "outerctx") + debug_464: $I10 = self.'from'() ne $I10, -1, rxscan221_done goto rxscan221_scan @@ -3260,11 +3464,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 145 # rx pass rx218_cur."!cursor_pass"(rx218_pos, "outerctx") + if_null rx218_debug, debug_465 rx218_cur."!cursor_debug"("PASS ", "outerctx", " at pos=", rx218_pos) + debug_465: .return (rx218_cur) rx218_restart: .annotate 'line', 4 + if_null rx218_debug, debug_466 rx218_cur."!cursor_debug"("NEXT ", "outerctx") + debug_466: rx218_fail: (rx218_rep, rx218_pos, $I10, $P10) = rx218_cur."!mark_fail"(0) lt rx218_pos, -1, rx218_done @@ -3272,14 +3480,16 @@ NQP::Compiler - NQP compiler jump $I10 rx218_done: rx218_cur."!cursor_fail"() + if_null rx218_debug, debug_467 rx218_cur."!cursor_debug"("FAIL ", "outerctx") + debug_467: .return (rx218_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__outerctx" :subid("51_1280467477.44751") :method +.sub "!PREFIX__outerctx" :subid("51_1282016529.10767") :method .annotate 'line', 4 new $P220, "ResizablePMCArray" push $P220, "" @@ -3288,7 +3498,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "finishpad" :subid("52_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "finishpad" :subid("52_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx223_tgt .local int rx223_pos @@ -3296,7 +3506,9 @@ NQP::Compiler - NQP compiler .local int rx223_eos .local int rx223_rep .local pmc rx223_cur + .local pmc rx223_debug (rx223_cur, rx223_pos, rx223_tgt, $I10) = self."!cursor_start"() + getattribute rx223_debug, rx223_cur, "$!debug" .lex unicode:"$\x{a2}", rx223_cur .local pmc match .lex "$/", match @@ -3308,7 +3520,9 @@ NQP::Compiler - NQP compiler substr rx223_tgt, rx223_tgt, rx223_off rx223_start: eq $I10, 1, rx223_restart + if_null rx223_debug, debug_468 rx223_cur."!cursor_debug"("START ", "finishpad") + debug_468: $I10 = self.'from'() ne $I10, -1, rxscan226_done goto rxscan226_scan @@ -3324,11 +3538,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 146 # rx pass rx223_cur."!cursor_pass"(rx223_pos, "finishpad") + if_null rx223_debug, debug_469 rx223_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx223_pos) + debug_469: .return (rx223_cur) rx223_restart: .annotate 'line', 4 + if_null rx223_debug, debug_470 rx223_cur."!cursor_debug"("NEXT ", "finishpad") + debug_470: rx223_fail: (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0) lt rx223_pos, -1, rx223_done @@ -3336,14 +3554,16 @@ NQP::Compiler - NQP compiler jump $I10 rx223_done: rx223_cur."!cursor_fail"() + if_null rx223_debug, debug_471 rx223_cur."!cursor_debug"("FAIL ", "finishpad") + debug_471: .return (rx223_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__finishpad" :subid("53_1280467477.44751") :method +.sub "!PREFIX__finishpad" :subid("53_1282016529.10767") :method .annotate 'line', 4 new $P225, "ResizablePMCArray" push $P225, "" @@ -3352,7 +3572,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "terminator" :subid("54_1280467477.44751") :method +.sub "terminator" :subid("54_1282016529.10767") :method .annotate 'line', 148 $P228 = self."!protoregex"("terminator") .return ($P228) @@ -3360,7 +3580,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__terminator" :subid("55_1280467477.44751") :method +.sub "!PREFIX__terminator" :subid("55_1282016529.10767") :method .annotate 'line', 148 $P230 = self."!PREFIX__!protoregex"("terminator") .return ($P230) @@ -3368,7 +3588,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "terminator:sym<;>" :subid("56_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "terminator:sym<;>" :subid("56_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx232_tgt .local int rx232_pos @@ -3376,7 +3596,9 @@ NQP::Compiler - NQP compiler .local int rx232_eos .local int rx232_rep .local pmc rx232_cur + .local pmc rx232_debug (rx232_cur, rx232_pos, rx232_tgt, $I10) = self."!cursor_start"() + getattribute rx232_debug, rx232_cur, "$!debug" .lex unicode:"$\x{a2}", rx232_cur .local pmc match .lex "$/", match @@ -3388,7 +3610,9 @@ NQP::Compiler - NQP compiler substr rx232_tgt, rx232_tgt, rx232_off rx232_start: eq $I10, 1, rx232_restart + if_null rx232_debug, debug_472 rx232_cur."!cursor_debug"("START ", "terminator:sym<;>") + debug_472: $I10 = self.'from'() ne $I10, -1, rxscan235_done goto rxscan235_scan @@ -3410,11 +3634,15 @@ NQP::Compiler - NQP compiler lt $I11, 0, rx232_fail # rx pass rx232_cur."!cursor_pass"(rx232_pos, "terminator:sym<;>") + if_null rx232_debug, debug_473 rx232_cur."!cursor_debug"("PASS ", "terminator:sym<;>", " at pos=", rx232_pos) + debug_473: .return (rx232_cur) rx232_restart: .annotate 'line', 4 + if_null rx232_debug, debug_474 rx232_cur."!cursor_debug"("NEXT ", "terminator:sym<;>") + debug_474: rx232_fail: (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0) lt rx232_pos, -1, rx232_done @@ -3422,14 +3650,16 @@ NQP::Compiler - NQP compiler jump $I10 rx232_done: rx232_cur."!cursor_fail"() + if_null rx232_debug, debug_475 rx232_cur."!cursor_debug"("FAIL ", "terminator:sym<;>") + debug_475: .return (rx232_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__terminator:sym<;>" :subid("57_1280467477.44751") :method +.sub "!PREFIX__terminator:sym<;>" :subid("57_1282016529.10767") :method .annotate 'line', 4 new $P234, "ResizablePMCArray" push $P234, ";" @@ -3438,7 +3668,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "terminator:sym<}>" :subid("58_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "terminator:sym<}>" :subid("58_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx237_tgt .local int rx237_pos @@ -3446,7 +3676,9 @@ NQP::Compiler - NQP compiler .local int rx237_eos .local int rx237_rep .local pmc rx237_cur + .local pmc rx237_debug (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"() + getattribute rx237_debug, rx237_cur, "$!debug" .lex unicode:"$\x{a2}", rx237_cur .local pmc match .lex "$/", match @@ -3458,7 +3690,9 @@ NQP::Compiler - NQP compiler substr rx237_tgt, rx237_tgt, rx237_off rx237_start: eq $I10, 1, rx237_restart + if_null rx237_debug, debug_476 rx237_cur."!cursor_debug"("START ", "terminator:sym<}>") + debug_476: $I10 = self.'from'() ne $I10, -1, rxscan240_done goto rxscan240_scan @@ -3480,11 +3714,15 @@ NQP::Compiler - NQP compiler lt $I11, 0, rx237_fail # rx pass rx237_cur."!cursor_pass"(rx237_pos, "terminator:sym<}>") + if_null rx237_debug, debug_477 rx237_cur."!cursor_debug"("PASS ", "terminator:sym<}>", " at pos=", rx237_pos) + debug_477: .return (rx237_cur) rx237_restart: .annotate 'line', 4 + if_null rx237_debug, debug_478 rx237_cur."!cursor_debug"("NEXT ", "terminator:sym<}>") + debug_478: rx237_fail: (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0) lt rx237_pos, -1, rx237_done @@ -3492,14 +3730,16 @@ NQP::Compiler - NQP compiler jump $I10 rx237_done: rx237_cur."!cursor_fail"() + if_null rx237_debug, debug_479 rx237_cur."!cursor_debug"("FAIL ", "terminator:sym<}>") + debug_479: .return (rx237_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__terminator:sym<}>" :subid("59_1280467477.44751") :method +.sub "!PREFIX__terminator:sym<}>" :subid("59_1282016529.10767") :method .annotate 'line', 4 new $P239, "ResizablePMCArray" push $P239, "}" @@ -3508,7 +3748,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control" :subid("60_1280467477.44751") :method +.sub "statement_control" :subid("60_1282016529.10767") :method .annotate 'line', 155 $P242 = self."!protoregex"("statement_control") .return ($P242) @@ -3516,7 +3756,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control" :subid("61_1280467477.44751") :method +.sub "!PREFIX__statement_control" :subid("61_1282016529.10767") :method .annotate 'line', 155 $P244 = self."!PREFIX__!protoregex"("statement_control") .return ($P244) @@ -3524,7 +3764,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("62_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_control:sym" :subid("62_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx246_tgt .local int rx246_pos @@ -3532,8 +3772,10 @@ NQP::Compiler - NQP compiler .local int rx246_eos .local int rx246_rep .local pmc rx246_cur + .local pmc rx246_debug (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"() - rx246_cur."!cursor_caparray"("xblock", "else") + rx246_cur."!cursor_caparray"("else", "xblock") + getattribute rx246_debug, rx246_cur, "$!debug" .lex unicode:"$\x{a2}", rx246_cur .local pmc match .lex "$/", match @@ -3545,7 +3787,9 @@ NQP::Compiler - NQP compiler substr rx246_tgt, rx246_tgt, rx246_off rx246_start: eq $I10, 1, rx246_restart + if_null rx246_debug, debug_480 rx246_cur."!cursor_debug"("START ", "statement_control:sym") + debug_480: $I10 = self.'from'() ne $I10, -1, rxscan249_done goto rxscan249_scan @@ -3706,11 +3950,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 157 # rx pass rx246_cur."!cursor_pass"(rx246_pos, "statement_control:sym") + if_null rx246_debug, debug_481 rx246_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx246_pos) + debug_481: .return (rx246_cur) rx246_restart: .annotate 'line', 4 + if_null rx246_debug, debug_482 rx246_cur."!cursor_debug"("NEXT ", "statement_control:sym") + debug_482: rx246_fail: (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0) lt rx246_pos, -1, rx246_done @@ -3718,14 +3966,16 @@ NQP::Compiler - NQP compiler jump $I10 rx246_done: rx246_cur."!cursor_fail"() + if_null rx246_debug, debug_483 rx246_cur."!cursor_debug"("FAIL ", "statement_control:sym") + debug_483: .return (rx246_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("63_1280467477.44751") :method +.sub "!PREFIX__statement_control:sym" :subid("63_1282016529.10767") :method .annotate 'line', 4 new $P248, "ResizablePMCArray" push $P248, "if" @@ -3734,9 +3984,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("64_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_control:sym" :subid("64_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 - .const 'Sub' $P274 = "66_1280467477.44751" + .const 'Sub' $P274 = "66_1282016529.10767" capture_lex $P274 .local string rx264_tgt .local int rx264_pos @@ -3744,7 +3994,9 @@ NQP::Compiler - NQP compiler .local int rx264_eos .local int rx264_rep .local pmc rx264_cur + .local pmc rx264_debug (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"() + getattribute rx264_debug, rx264_cur, "$!debug" .lex unicode:"$\x{a2}", rx264_cur .local pmc match .lex "$/", match @@ -3756,7 +4008,9 @@ NQP::Compiler - NQP compiler substr rx264_tgt, rx264_tgt, rx264_off rx264_start: eq $I10, 1, rx264_restart + if_null rx264_debug, debug_484 rx264_cur."!cursor_debug"("START ", "statement_control:sym") + debug_484: $I10 = self.'from'() ne $I10, -1, rxscan267_done goto rxscan267_scan @@ -3826,7 +4080,7 @@ NQP::Compiler - NQP compiler rx264_pos = $P10."pos"() # rx subrule "before" subtype=zerowidth negate=1 rx264_cur."!cursor_pos"(rx264_pos) - .const 'Sub' $P274 = "66_1280467477.44751" + .const 'Sub' $P274 = "66_1282016529.10767" capture_lex $P274 $P10 = rx264_cur."before"($P274) if $P10, rx264_fail @@ -3861,11 +4115,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 164 # rx pass rx264_cur."!cursor_pass"(rx264_pos, "statement_control:sym") + if_null rx264_debug, debug_489 rx264_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx264_pos) + debug_489: .return (rx264_cur) rx264_restart: .annotate 'line', 4 + if_null rx264_debug, debug_490 rx264_cur."!cursor_debug"("NEXT ", "statement_control:sym") + debug_490: rx264_fail: (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0) lt rx264_pos, -1, rx264_done @@ -3873,14 +4131,16 @@ NQP::Compiler - NQP compiler jump $I10 rx264_done: rx264_cur."!cursor_fail"() + if_null rx264_debug, debug_491 rx264_cur."!cursor_debug"("FAIL ", "statement_control:sym") + debug_491: .return (rx264_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("65_1280467477.44751") :method +.sub "!PREFIX__statement_control:sym" :subid("65_1282016529.10767") :method .annotate 'line', 4 new $P266, "ResizablePMCArray" push $P266, "unless" @@ -3889,7 +4149,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block273" :anon :subid("66_1280467477.44751") :method :outer("64_1280467477.44751") +.sub "_block273" :anon :subid("66_1282016529.10767") :method :outer("64_1282016529.10767") .annotate 'line', 167 .local string rx275_tgt .local int rx275_pos @@ -3897,7 +4157,9 @@ NQP::Compiler - NQP compiler .local int rx275_eos .local int rx275_rep .local pmc rx275_cur + .local pmc rx275_debug (rx275_cur, rx275_pos, rx275_tgt, $I10) = self."!cursor_start"() + getattribute rx275_debug, rx275_cur, "$!debug" .lex unicode:"$\x{a2}", rx275_cur .local pmc match .lex "$/", match @@ -3909,7 +4171,9 @@ NQP::Compiler - NQP compiler substr rx275_tgt, rx275_tgt, rx275_off rx275_start: eq $I10, 1, rx275_restart + if_null rx275_debug, debug_485 rx275_cur."!cursor_debug"("START ", "") + debug_485: $I10 = self.'from'() ne $I10, -1, rxscan276_done goto rxscan276_scan @@ -3931,10 +4195,14 @@ NQP::Compiler - NQP compiler add rx275_pos, 4 # rx pass rx275_cur."!cursor_pass"(rx275_pos, "") + if_null rx275_debug, debug_486 rx275_cur."!cursor_debug"("PASS ", "", " at pos=", rx275_pos) + debug_486: .return (rx275_cur) rx275_restart: + if_null rx275_debug, debug_487 rx275_cur."!cursor_debug"("NEXT ", "") + debug_487: rx275_fail: (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0) lt rx275_pos, -1, rx275_done @@ -3942,14 +4210,16 @@ NQP::Compiler - NQP compiler jump $I10 rx275_done: rx275_cur."!cursor_fail"() + if_null rx275_debug, debug_488 rx275_cur."!cursor_debug"("FAIL ", "") + debug_488: .return (rx275_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("67_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_control:sym" :subid("67_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx282_tgt .local int rx282_pos @@ -3957,7 +4227,9 @@ NQP::Compiler - NQP compiler .local int rx282_eos .local int rx282_rep .local pmc rx282_cur + .local pmc rx282_debug (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"() + getattribute rx282_debug, rx282_cur, "$!debug" .lex unicode:"$\x{a2}", rx282_cur .local pmc match .lex "$/", match @@ -3969,7 +4241,9 @@ NQP::Compiler - NQP compiler substr rx282_tgt, rx282_tgt, rx282_off rx282_start: eq $I10, 1, rx282_restart + if_null rx282_debug, debug_492 rx282_cur."!cursor_debug"("START ", "statement_control:sym") + debug_492: $I10 = self.'from'() ne $I10, -1, rxscan285_done goto rxscan285_scan @@ -4044,11 +4318,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 170 # rx pass rx282_cur."!cursor_pass"(rx282_pos, "statement_control:sym") + if_null rx282_debug, debug_493 rx282_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx282_pos) + debug_493: .return (rx282_cur) rx282_restart: .annotate 'line', 4 + if_null rx282_debug, debug_494 rx282_cur."!cursor_debug"("NEXT ", "statement_control:sym") + debug_494: rx282_fail: (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0) lt rx282_pos, -1, rx282_done @@ -4056,14 +4334,16 @@ NQP::Compiler - NQP compiler jump $I10 rx282_done: rx282_cur."!cursor_fail"() + if_null rx282_debug, debug_495 rx282_cur."!cursor_debug"("FAIL ", "statement_control:sym") + debug_495: .return (rx282_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("68_1280467477.44751") :method +.sub "!PREFIX__statement_control:sym" :subid("68_1282016529.10767") :method .annotate 'line', 4 new $P284, "ResizablePMCArray" push $P284, "until" @@ -4073,7 +4353,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("69_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_control:sym" :subid("69_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx291_tgt .local int rx291_pos @@ -4081,7 +4361,9 @@ NQP::Compiler - NQP compiler .local int rx291_eos .local int rx291_rep .local pmc rx291_cur + .local pmc rx291_debug (rx291_cur, rx291_pos, rx291_tgt, $I10) = self."!cursor_start"() + getattribute rx291_debug, rx291_cur, "$!debug" .lex unicode:"$\x{a2}", rx291_cur .local pmc match .lex "$/", match @@ -4093,7 +4375,9 @@ NQP::Compiler - NQP compiler substr rx291_tgt, rx291_tgt, rx291_off rx291_start: eq $I10, 1, rx291_restart + if_null rx291_debug, debug_496 rx291_cur."!cursor_debug"("START ", "statement_control:sym") + debug_496: $I10 = self.'from'() ne $I10, -1, rxscan294_done goto rxscan294_scan @@ -4293,11 +4577,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 175 # rx pass rx291_cur."!cursor_pass"(rx291_pos, "statement_control:sym") + if_null rx291_debug, debug_497 rx291_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx291_pos) + debug_497: .return (rx291_cur) rx291_restart: .annotate 'line', 4 + if_null rx291_debug, debug_498 rx291_cur."!cursor_debug"("NEXT ", "statement_control:sym") + debug_498: rx291_fail: (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0) lt rx291_pos, -1, rx291_done @@ -4305,14 +4593,16 @@ NQP::Compiler - NQP compiler jump $I10 rx291_done: rx291_cur."!cursor_fail"() + if_null rx291_debug, debug_499 rx291_cur."!cursor_debug"("FAIL ", "statement_control:sym") + debug_499: .return (rx291_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("70_1280467477.44751") :method +.sub "!PREFIX__statement_control:sym" :subid("70_1282016529.10767") :method .annotate 'line', 4 new $P293, "ResizablePMCArray" push $P293, "repeat" @@ -4321,7 +4611,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("71_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_control:sym" :subid("71_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx311_tgt .local int rx311_pos @@ -4329,7 +4619,9 @@ NQP::Compiler - NQP compiler .local int rx311_eos .local int rx311_rep .local pmc rx311_cur + .local pmc rx311_debug (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"() + getattribute rx311_debug, rx311_cur, "$!debug" .lex unicode:"$\x{a2}", rx311_cur .local pmc match .lex "$/", match @@ -4341,7 +4633,9 @@ NQP::Compiler - NQP compiler substr rx311_tgt, rx311_tgt, rx311_off rx311_start: eq $I10, 1, rx311_restart + if_null rx311_debug, debug_500 rx311_cur."!cursor_debug"("START ", "statement_control:sym") + debug_500: $I10 = self.'from'() ne $I10, -1, rxscan314_done goto rxscan314_scan @@ -4403,11 +4697,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 183 # rx pass rx311_cur."!cursor_pass"(rx311_pos, "statement_control:sym") + if_null rx311_debug, debug_501 rx311_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx311_pos) + debug_501: .return (rx311_cur) rx311_restart: .annotate 'line', 4 + if_null rx311_debug, debug_502 rx311_cur."!cursor_debug"("NEXT ", "statement_control:sym") + debug_502: rx311_fail: (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0) lt rx311_pos, -1, rx311_done @@ -4415,14 +4713,16 @@ NQP::Compiler - NQP compiler jump $I10 rx311_done: rx311_cur."!cursor_fail"() + if_null rx311_debug, debug_503 rx311_cur."!cursor_debug"("FAIL ", "statement_control:sym") + debug_503: .return (rx311_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("72_1280467477.44751") :method +.sub "!PREFIX__statement_control:sym" :subid("72_1282016529.10767") :method .annotate 'line', 4 new $P313, "ResizablePMCArray" push $P313, "for" @@ -4431,7 +4731,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("73_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_control:sym" :subid("73_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx319_tgt .local int rx319_pos @@ -4439,7 +4739,9 @@ NQP::Compiler - NQP compiler .local int rx319_eos .local int rx319_rep .local pmc rx319_cur + .local pmc rx319_debug (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"() + getattribute rx319_debug, rx319_cur, "$!debug" .lex unicode:"$\x{a2}", rx319_cur .local pmc match .lex "$/", match @@ -4451,7 +4753,9 @@ NQP::Compiler - NQP compiler substr rx319_tgt, rx319_tgt, rx319_off rx319_start: eq $I10, 1, rx319_restart + if_null rx319_debug, debug_504 rx319_cur."!cursor_debug"("START ", "statement_control:sym") + debug_504: $I10 = self.'from'() ne $I10, -1, rxscan322_done goto rxscan322_scan @@ -4513,11 +4817,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 188 # rx pass rx319_cur."!cursor_pass"(rx319_pos, "statement_control:sym") + if_null rx319_debug, debug_505 rx319_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx319_pos) + debug_505: .return (rx319_cur) rx319_restart: .annotate 'line', 4 + if_null rx319_debug, debug_506 rx319_cur."!cursor_debug"("NEXT ", "statement_control:sym") + debug_506: rx319_fail: (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0) lt rx319_pos, -1, rx319_done @@ -4525,14 +4833,16 @@ NQP::Compiler - NQP compiler jump $I10 rx319_done: rx319_cur."!cursor_fail"() + if_null rx319_debug, debug_507 rx319_cur."!cursor_debug"("FAIL ", "statement_control:sym") + debug_507: .return (rx319_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("74_1280467477.44751") :method +.sub "!PREFIX__statement_control:sym" :subid("74_1282016529.10767") :method .annotate 'line', 4 new $P321, "ResizablePMCArray" push $P321, "CATCH" @@ -4541,7 +4851,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("75_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_control:sym" :subid("75_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx327_tgt .local int rx327_pos @@ -4549,7 +4859,9 @@ NQP::Compiler - NQP compiler .local int rx327_eos .local int rx327_rep .local pmc rx327_cur + .local pmc rx327_debug (rx327_cur, rx327_pos, rx327_tgt, $I10) = self."!cursor_start"() + getattribute rx327_debug, rx327_cur, "$!debug" .lex unicode:"$\x{a2}", rx327_cur .local pmc match .lex "$/", match @@ -4561,7 +4873,9 @@ NQP::Compiler - NQP compiler substr rx327_tgt, rx327_tgt, rx327_off rx327_start: eq $I10, 1, rx327_restart + if_null rx327_debug, debug_508 rx327_cur."!cursor_debug"("START ", "statement_control:sym") + debug_508: $I10 = self.'from'() ne $I10, -1, rxscan330_done goto rxscan330_scan @@ -4623,11 +4937,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 193 # rx pass rx327_cur."!cursor_pass"(rx327_pos, "statement_control:sym") + if_null rx327_debug, debug_509 rx327_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx327_pos) + debug_509: .return (rx327_cur) rx327_restart: .annotate 'line', 4 + if_null rx327_debug, debug_510 rx327_cur."!cursor_debug"("NEXT ", "statement_control:sym") + debug_510: rx327_fail: (rx327_rep, rx327_pos, $I10, $P10) = rx327_cur."!mark_fail"(0) lt rx327_pos, -1, rx327_done @@ -4635,14 +4953,16 @@ NQP::Compiler - NQP compiler jump $I10 rx327_done: rx327_cur."!cursor_fail"() + if_null rx327_debug, debug_511 rx327_cur."!cursor_debug"("FAIL ", "statement_control:sym") + debug_511: .return (rx327_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("76_1280467477.44751") :method +.sub "!PREFIX__statement_control:sym" :subid("76_1282016529.10767") :method .annotate 'line', 4 new $P329, "ResizablePMCArray" push $P329, "CONTROL" @@ -4651,7 +4971,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_prefix" :subid("77_1280467477.44751") :method +.sub "statement_prefix" :subid("77_1282016529.10767") :method .annotate 'line', 198 $P335 = self."!protoregex"("statement_prefix") .return ($P335) @@ -4659,7 +4979,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_prefix" :subid("78_1280467477.44751") :method +.sub "!PREFIX__statement_prefix" :subid("78_1282016529.10767") :method .annotate 'line', 198 $P337 = self."!PREFIX__!protoregex"("statement_prefix") .return ($P337) @@ -4667,7 +4987,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_prefix:sym" :subid("79_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_prefix:sym" :subid("79_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx339_tgt .local int rx339_pos @@ -4675,7 +4995,9 @@ NQP::Compiler - NQP compiler .local int rx339_eos .local int rx339_rep .local pmc rx339_cur + .local pmc rx339_debug (rx339_cur, rx339_pos, rx339_tgt, $I10) = self."!cursor_start"() + getattribute rx339_debug, rx339_cur, "$!debug" .lex unicode:"$\x{a2}", rx339_cur .local pmc match .lex "$/", match @@ -4687,7 +5009,9 @@ NQP::Compiler - NQP compiler substr rx339_tgt, rx339_tgt, rx339_off rx339_start: eq $I10, 1, rx339_restart + if_null rx339_debug, debug_512 rx339_cur."!cursor_debug"("START ", "statement_prefix:sym") + debug_512: $I10 = self.'from'() ne $I10, -1, rxscan343_done goto rxscan343_scan @@ -4731,11 +5055,15 @@ NQP::Compiler - NQP compiler rx339_pos = $P10."pos"() # rx pass rx339_cur."!cursor_pass"(rx339_pos, "statement_prefix:sym") + if_null rx339_debug, debug_513 rx339_cur."!cursor_debug"("PASS ", "statement_prefix:sym", " at pos=", rx339_pos) + debug_513: .return (rx339_cur) rx339_restart: .annotate 'line', 4 + if_null rx339_debug, debug_514 rx339_cur."!cursor_debug"("NEXT ", "statement_prefix:sym") + debug_514: rx339_fail: (rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0) lt rx339_pos, -1, rx339_done @@ -4743,14 +5071,16 @@ NQP::Compiler - NQP compiler jump $I10 rx339_done: rx339_cur."!cursor_fail"() + if_null rx339_debug, debug_515 rx339_cur."!cursor_debug"("FAIL ", "statement_prefix:sym") + debug_515: .return (rx339_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_prefix:sym" :subid("80_1280467477.44751") :method +.sub "!PREFIX__statement_prefix:sym" :subid("80_1282016529.10767") :method .annotate 'line', 4 $P341 = self."!PREFIX__!subrule"("blorst", "INIT") new $P342, "ResizablePMCArray" @@ -4760,7 +5090,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_prefix:sym" :subid("81_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_prefix:sym" :subid("81_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx346_tgt .local int rx346_pos @@ -4768,7 +5098,9 @@ NQP::Compiler - NQP compiler .local int rx346_eos .local int rx346_rep .local pmc rx346_cur + .local pmc rx346_debug (rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"() + getattribute rx346_debug, rx346_cur, "$!debug" .lex unicode:"$\x{a2}", rx346_cur .local pmc match .lex "$/", match @@ -4780,7 +5112,9 @@ NQP::Compiler - NQP compiler substr rx346_tgt, rx346_tgt, rx346_off rx346_start: eq $I10, 1, rx346_restart + if_null rx346_debug, debug_516 rx346_cur."!cursor_debug"("START ", "statement_prefix:sym") + debug_516: $I10 = self.'from'() ne $I10, -1, rxscan350_done goto rxscan350_scan @@ -4826,11 +5160,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 201 # rx pass rx346_cur."!cursor_pass"(rx346_pos, "statement_prefix:sym") + if_null rx346_debug, debug_517 rx346_cur."!cursor_debug"("PASS ", "statement_prefix:sym", " at pos=", rx346_pos) + debug_517: .return (rx346_cur) rx346_restart: .annotate 'line', 4 + if_null rx346_debug, debug_518 rx346_cur."!cursor_debug"("NEXT ", "statement_prefix:sym") + debug_518: rx346_fail: (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0) lt rx346_pos, -1, rx346_done @@ -4838,14 +5176,16 @@ NQP::Compiler - NQP compiler jump $I10 rx346_done: rx346_cur."!cursor_fail"() + if_null rx346_debug, debug_519 rx346_cur."!cursor_debug"("FAIL ", "statement_prefix:sym") + debug_519: .return (rx346_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_prefix:sym" :subid("82_1280467477.44751") :method +.sub "!PREFIX__statement_prefix:sym" :subid("82_1282016529.10767") :method .annotate 'line', 4 $P348 = self."!PREFIX__!subrule"("blorst", "try") new $P349, "ResizablePMCArray" @@ -4855,7 +5195,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "blorst" :subid("83_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "blorst" :subid("83_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx353_tgt .local int rx353_pos @@ -4863,7 +5203,9 @@ NQP::Compiler - NQP compiler .local int rx353_eos .local int rx353_rep .local pmc rx353_cur + .local pmc rx353_debug (rx353_cur, rx353_pos, rx353_tgt, $I10) = self."!cursor_start"() + getattribute rx353_debug, rx353_cur, "$!debug" .lex unicode:"$\x{a2}", rx353_cur .local pmc match .lex "$/", match @@ -4875,7 +5217,9 @@ NQP::Compiler - NQP compiler substr rx353_tgt, rx353_tgt, rx353_off rx353_start: eq $I10, 1, rx353_restart + if_null rx353_debug, debug_520 rx353_cur."!cursor_debug"("START ", "blorst") + debug_520: $I10 = self.'from'() ne $I10, -1, rxscan356_done goto rxscan356_scan @@ -4929,11 +5273,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 206 # rx pass rx353_cur."!cursor_pass"(rx353_pos, "blorst") + if_null rx353_debug, debug_521 rx353_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx353_pos) + debug_521: .return (rx353_cur) rx353_restart: .annotate 'line', 4 + if_null rx353_debug, debug_522 rx353_cur."!cursor_debug"("NEXT ", "blorst") + debug_522: rx353_fail: (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0) lt rx353_pos, -1, rx353_done @@ -4941,14 +5289,16 @@ NQP::Compiler - NQP compiler jump $I10 rx353_done: rx353_cur."!cursor_fail"() + if_null rx353_debug, debug_523 rx353_cur."!cursor_debug"("FAIL ", "blorst") + debug_523: .return (rx353_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__blorst" :subid("84_1280467477.44751") :method +.sub "!PREFIX__blorst" :subid("84_1282016529.10767") :method .annotate 'line', 4 new $P355, "ResizablePMCArray" push $P355, "" @@ -4957,7 +5307,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_cond" :subid("85_1280467477.44751") :method +.sub "statement_mod_cond" :subid("85_1282016529.10767") :method .annotate 'line', 212 $P359 = self."!protoregex"("statement_mod_cond") .return ($P359) @@ -4965,7 +5315,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_cond" :subid("86_1280467477.44751") :method +.sub "!PREFIX__statement_mod_cond" :subid("86_1282016529.10767") :method .annotate 'line', 212 $P361 = self."!PREFIX__!protoregex"("statement_mod_cond") .return ($P361) @@ -4973,7 +5323,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_cond:sym" :subid("87_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_mod_cond:sym" :subid("87_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx363_tgt .local int rx363_pos @@ -4981,7 +5331,9 @@ NQP::Compiler - NQP compiler .local int rx363_eos .local int rx363_rep .local pmc rx363_cur + .local pmc rx363_debug (rx363_cur, rx363_pos, rx363_tgt, $I10) = self."!cursor_start"() + getattribute rx363_debug, rx363_cur, "$!debug" .lex unicode:"$\x{a2}", rx363_cur .local pmc match .lex "$/", match @@ -4993,7 +5345,9 @@ NQP::Compiler - NQP compiler substr rx363_tgt, rx363_tgt, rx363_off rx363_start: eq $I10, 1, rx363_restart + if_null rx363_debug, debug_524 rx363_cur."!cursor_debug"("START ", "statement_mod_cond:sym") + debug_524: $I10 = self.'from'() ne $I10, -1, rxscan367_done goto rxscan367_scan @@ -5047,11 +5401,15 @@ NQP::Compiler - NQP compiler rx363_pos = $P10."pos"() # rx pass rx363_cur."!cursor_pass"(rx363_pos, "statement_mod_cond:sym") + if_null rx363_debug, debug_525 rx363_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym", " at pos=", rx363_pos) + debug_525: .return (rx363_cur) rx363_restart: .annotate 'line', 4 + if_null rx363_debug, debug_526 rx363_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym") + debug_526: rx363_fail: (rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0) lt rx363_pos, -1, rx363_done @@ -5059,14 +5417,16 @@ NQP::Compiler - NQP compiler jump $I10 rx363_done: rx363_cur."!cursor_fail"() + if_null rx363_debug, debug_527 rx363_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym") + debug_527: .return (rx363_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_cond:sym" :subid("88_1280467477.44751") :method +.sub "!PREFIX__statement_mod_cond:sym" :subid("88_1282016529.10767") :method .annotate 'line', 4 $P365 = self."!PREFIX__!subrule"("ws", "if") new $P366, "ResizablePMCArray" @@ -5076,7 +5436,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_cond:sym" :subid("89_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_mod_cond:sym" :subid("89_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx372_tgt .local int rx372_pos @@ -5084,7 +5444,9 @@ NQP::Compiler - NQP compiler .local int rx372_eos .local int rx372_rep .local pmc rx372_cur + .local pmc rx372_debug (rx372_cur, rx372_pos, rx372_tgt, $I10) = self."!cursor_start"() + getattribute rx372_debug, rx372_cur, "$!debug" .lex unicode:"$\x{a2}", rx372_cur .local pmc match .lex "$/", match @@ -5096,7 +5458,9 @@ NQP::Compiler - NQP compiler substr rx372_tgt, rx372_tgt, rx372_off rx372_start: eq $I10, 1, rx372_restart + if_null rx372_debug, debug_528 rx372_cur."!cursor_debug"("START ", "statement_mod_cond:sym") + debug_528: $I10 = self.'from'() ne $I10, -1, rxscan376_done goto rxscan376_scan @@ -5150,11 +5514,15 @@ NQP::Compiler - NQP compiler rx372_pos = $P10."pos"() # rx pass rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym") + if_null rx372_debug, debug_529 rx372_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym", " at pos=", rx372_pos) + debug_529: .return (rx372_cur) rx372_restart: .annotate 'line', 4 + if_null rx372_debug, debug_530 rx372_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym") + debug_530: rx372_fail: (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0) lt rx372_pos, -1, rx372_done @@ -5162,14 +5530,16 @@ NQP::Compiler - NQP compiler jump $I10 rx372_done: rx372_cur."!cursor_fail"() + if_null rx372_debug, debug_531 rx372_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym") + debug_531: .return (rx372_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_cond:sym" :subid("90_1280467477.44751") :method +.sub "!PREFIX__statement_mod_cond:sym" :subid("90_1282016529.10767") :method .annotate 'line', 4 $P374 = self."!PREFIX__!subrule"("ws", "unless") new $P375, "ResizablePMCArray" @@ -5179,7 +5549,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_loop" :subid("91_1280467477.44751") :method +.sub "statement_mod_loop" :subid("91_1282016529.10767") :method .annotate 'line', 217 $P381 = self."!protoregex"("statement_mod_loop") .return ($P381) @@ -5187,7 +5557,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_loop" :subid("92_1280467477.44751") :method +.sub "!PREFIX__statement_mod_loop" :subid("92_1282016529.10767") :method .annotate 'line', 217 $P383 = self."!PREFIX__!protoregex"("statement_mod_loop") .return ($P383) @@ -5195,7 +5565,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_loop:sym" :subid("93_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_mod_loop:sym" :subid("93_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx385_tgt .local int rx385_pos @@ -5203,7 +5573,9 @@ NQP::Compiler - NQP compiler .local int rx385_eos .local int rx385_rep .local pmc rx385_cur + .local pmc rx385_debug (rx385_cur, rx385_pos, rx385_tgt, $I10) = self."!cursor_start"() + getattribute rx385_debug, rx385_cur, "$!debug" .lex unicode:"$\x{a2}", rx385_cur .local pmc match .lex "$/", match @@ -5215,7 +5587,9 @@ NQP::Compiler - NQP compiler substr rx385_tgt, rx385_tgt, rx385_off rx385_start: eq $I10, 1, rx385_restart + if_null rx385_debug, debug_532 rx385_cur."!cursor_debug"("START ", "statement_mod_loop:sym") + debug_532: $I10 = self.'from'() ne $I10, -1, rxscan389_done goto rxscan389_scan @@ -5269,11 +5643,15 @@ NQP::Compiler - NQP compiler rx385_pos = $P10."pos"() # rx pass rx385_cur."!cursor_pass"(rx385_pos, "statement_mod_loop:sym") + if_null rx385_debug, debug_533 rx385_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym", " at pos=", rx385_pos) + debug_533: .return (rx385_cur) rx385_restart: .annotate 'line', 4 + if_null rx385_debug, debug_534 rx385_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym") + debug_534: rx385_fail: (rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0) lt rx385_pos, -1, rx385_done @@ -5281,14 +5659,16 @@ NQP::Compiler - NQP compiler jump $I10 rx385_done: rx385_cur."!cursor_fail"() + if_null rx385_debug, debug_535 rx385_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym") + debug_535: .return (rx385_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_loop:sym" :subid("94_1280467477.44751") :method +.sub "!PREFIX__statement_mod_loop:sym" :subid("94_1282016529.10767") :method .annotate 'line', 4 $P387 = self."!PREFIX__!subrule"("ws", "while") new $P388, "ResizablePMCArray" @@ -5298,7 +5678,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_loop:sym" :subid("95_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_mod_loop:sym" :subid("95_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx394_tgt .local int rx394_pos @@ -5306,7 +5686,9 @@ NQP::Compiler - NQP compiler .local int rx394_eos .local int rx394_rep .local pmc rx394_cur + .local pmc rx394_debug (rx394_cur, rx394_pos, rx394_tgt, $I10) = self."!cursor_start"() + getattribute rx394_debug, rx394_cur, "$!debug" .lex unicode:"$\x{a2}", rx394_cur .local pmc match .lex "$/", match @@ -5318,7 +5700,9 @@ NQP::Compiler - NQP compiler substr rx394_tgt, rx394_tgt, rx394_off rx394_start: eq $I10, 1, rx394_restart + if_null rx394_debug, debug_536 rx394_cur."!cursor_debug"("START ", "statement_mod_loop:sym") + debug_536: $I10 = self.'from'() ne $I10, -1, rxscan398_done goto rxscan398_scan @@ -5372,11 +5756,15 @@ NQP::Compiler - NQP compiler rx394_pos = $P10."pos"() # rx pass rx394_cur."!cursor_pass"(rx394_pos, "statement_mod_loop:sym") + if_null rx394_debug, debug_537 rx394_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym", " at pos=", rx394_pos) + debug_537: .return (rx394_cur) rx394_restart: .annotate 'line', 4 + if_null rx394_debug, debug_538 rx394_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym") + debug_538: rx394_fail: (rx394_rep, rx394_pos, $I10, $P10) = rx394_cur."!mark_fail"(0) lt rx394_pos, -1, rx394_done @@ -5384,14 +5772,16 @@ NQP::Compiler - NQP compiler jump $I10 rx394_done: rx394_cur."!cursor_fail"() + if_null rx394_debug, debug_539 rx394_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym") + debug_539: .return (rx394_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_loop:sym" :subid("96_1280467477.44751") :method +.sub "!PREFIX__statement_mod_loop:sym" :subid("96_1282016529.10767") :method .annotate 'line', 4 $P396 = self."!PREFIX__!subrule"("ws", "until") new $P397, "ResizablePMCArray" @@ -5401,7 +5791,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_loop:sym" :subid("97_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "statement_mod_loop:sym" :subid("97_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx403_tgt .local int rx403_pos @@ -5409,7 +5799,9 @@ NQP::Compiler - NQP compiler .local int rx403_eos .local int rx403_rep .local pmc rx403_cur + .local pmc rx403_debug (rx403_cur, rx403_pos, rx403_tgt, $I10) = self."!cursor_start"() + getattribute rx403_debug, rx403_cur, "$!debug" .lex unicode:"$\x{a2}", rx403_cur .local pmc match .lex "$/", match @@ -5421,7 +5813,9 @@ NQP::Compiler - NQP compiler substr rx403_tgt, rx403_tgt, rx403_off rx403_start: eq $I10, 1, rx403_restart + if_null rx403_debug, debug_540 rx403_cur."!cursor_debug"("START ", "statement_mod_loop:sym") + debug_540: $I10 = self.'from'() ne $I10, -1, rxscan407_done goto rxscan407_scan @@ -5475,11 +5869,15 @@ NQP::Compiler - NQP compiler rx403_pos = $P10."pos"() # rx pass rx403_cur."!cursor_pass"(rx403_pos, "statement_mod_loop:sym") + if_null rx403_debug, debug_541 rx403_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym", " at pos=", rx403_pos) + debug_541: .return (rx403_cur) rx403_restart: .annotate 'line', 4 + if_null rx403_debug, debug_542 rx403_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym") + debug_542: rx403_fail: (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0) lt rx403_pos, -1, rx403_done @@ -5487,14 +5885,16 @@ NQP::Compiler - NQP compiler jump $I10 rx403_done: rx403_cur."!cursor_fail"() + if_null rx403_debug, debug_543 rx403_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym") + debug_543: .return (rx403_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_loop:sym" :subid("98_1280467477.44751") :method +.sub "!PREFIX__statement_mod_loop:sym" :subid("98_1282016529.10767") :method .annotate 'line', 4 $P405 = self."!PREFIX__!subrule"("ws", "for") new $P406, "ResizablePMCArray" @@ -5504,7 +5904,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("99_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("99_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx412_tgt .local int rx412_pos @@ -5512,7 +5912,9 @@ NQP::Compiler - NQP compiler .local int rx412_eos .local int rx412_rep .local pmc rx412_cur + .local pmc rx412_debug (rx412_cur, rx412_pos, rx412_tgt, $I10) = self."!cursor_start"() + getattribute rx412_debug, rx412_cur, "$!debug" .lex unicode:"$\x{a2}", rx412_cur .local pmc match .lex "$/", match @@ -5524,7 +5926,9 @@ NQP::Compiler - NQP compiler substr rx412_tgt, rx412_tgt, rx412_off rx412_start: eq $I10, 1, rx412_restart + if_null rx412_debug, debug_544 rx412_cur."!cursor_debug"("START ", "term:sym") + debug_544: $I10 = self.'from'() ne $I10, -1, rxscan416_done goto rxscan416_scan @@ -5547,11 +5951,15 @@ NQP::Compiler - NQP compiler rx412_pos = $P10."pos"() # rx pass rx412_cur."!cursor_pass"(rx412_pos, "term:sym") + if_null rx412_debug, debug_545 rx412_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx412_pos) + debug_545: .return (rx412_cur) rx412_restart: .annotate 'line', 4 + if_null rx412_debug, debug_546 rx412_cur."!cursor_debug"("NEXT ", "term:sym") + debug_546: rx412_fail: (rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0) lt rx412_pos, -1, rx412_done @@ -5559,14 +5967,16 @@ NQP::Compiler - NQP compiler jump $I10 rx412_done: rx412_cur."!cursor_fail"() + if_null rx412_debug, debug_547 rx412_cur."!cursor_debug"("FAIL ", "term:sym") + debug_547: .return (rx412_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("100_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("100_1282016529.10767") :method .annotate 'line', 4 $P414 = self."!PREFIX__!subrule"("fatarrow", "") new $P415, "ResizablePMCArray" @@ -5576,7 +5986,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("101_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("101_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx418_tgt .local int rx418_pos @@ -5584,7 +5994,9 @@ NQP::Compiler - NQP compiler .local int rx418_eos .local int rx418_rep .local pmc rx418_cur + .local pmc rx418_debug (rx418_cur, rx418_pos, rx418_tgt, $I10) = self."!cursor_start"() + getattribute rx418_debug, rx418_cur, "$!debug" .lex unicode:"$\x{a2}", rx418_cur .local pmc match .lex "$/", match @@ -5596,7 +6008,9 @@ NQP::Compiler - NQP compiler substr rx418_tgt, rx418_tgt, rx418_off rx418_start: eq $I10, 1, rx418_restart + if_null rx418_debug, debug_548 rx418_cur."!cursor_debug"("START ", "term:sym") + debug_548: $I10 = self.'from'() ne $I10, -1, rxscan422_done goto rxscan422_scan @@ -5619,11 +6033,15 @@ NQP::Compiler - NQP compiler rx418_pos = $P10."pos"() # rx pass rx418_cur."!cursor_pass"(rx418_pos, "term:sym") + if_null rx418_debug, debug_549 rx418_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx418_pos) + debug_549: .return (rx418_cur) rx418_restart: .annotate 'line', 4 + if_null rx418_debug, debug_550 rx418_cur."!cursor_debug"("NEXT ", "term:sym") + debug_550: rx418_fail: (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0) lt rx418_pos, -1, rx418_done @@ -5631,14 +6049,16 @@ NQP::Compiler - NQP compiler jump $I10 rx418_done: rx418_cur."!cursor_fail"() + if_null rx418_debug, debug_551 rx418_cur."!cursor_debug"("FAIL ", "term:sym") + debug_551: .return (rx418_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("102_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("102_1282016529.10767") :method .annotate 'line', 4 $P420 = self."!PREFIX__!subrule"("colonpair", "") new $P421, "ResizablePMCArray" @@ -5648,7 +6068,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("103_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("103_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx424_tgt .local int rx424_pos @@ -5656,7 +6076,9 @@ NQP::Compiler - NQP compiler .local int rx424_eos .local int rx424_rep .local pmc rx424_cur + .local pmc rx424_debug (rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"() + getattribute rx424_debug, rx424_cur, "$!debug" .lex unicode:"$\x{a2}", rx424_cur .local pmc match .lex "$/", match @@ -5668,7 +6090,9 @@ NQP::Compiler - NQP compiler substr rx424_tgt, rx424_tgt, rx424_off rx424_start: eq $I10, 1, rx424_restart + if_null rx424_debug, debug_552 rx424_cur."!cursor_debug"("START ", "term:sym") + debug_552: $I10 = self.'from'() ne $I10, -1, rxscan428_done goto rxscan428_scan @@ -5691,11 +6115,15 @@ NQP::Compiler - NQP compiler rx424_pos = $P10."pos"() # rx pass rx424_cur."!cursor_pass"(rx424_pos, "term:sym") + if_null rx424_debug, debug_553 rx424_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx424_pos) + debug_553: .return (rx424_cur) rx424_restart: .annotate 'line', 4 + if_null rx424_debug, debug_554 rx424_cur."!cursor_debug"("NEXT ", "term:sym") + debug_554: rx424_fail: (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0) lt rx424_pos, -1, rx424_done @@ -5703,14 +6131,16 @@ NQP::Compiler - NQP compiler jump $I10 rx424_done: rx424_cur."!cursor_fail"() + if_null rx424_debug, debug_555 rx424_cur."!cursor_debug"("FAIL ", "term:sym") + debug_555: .return (rx424_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("104_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("104_1282016529.10767") :method .annotate 'line', 4 $P426 = self."!PREFIX__!subrule"("variable", "") new $P427, "ResizablePMCArray" @@ -5720,7 +6150,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("105_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("105_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx430_tgt .local int rx430_pos @@ -5728,7 +6158,9 @@ NQP::Compiler - NQP compiler .local int rx430_eos .local int rx430_rep .local pmc rx430_cur + .local pmc rx430_debug (rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"() + getattribute rx430_debug, rx430_cur, "$!debug" .lex unicode:"$\x{a2}", rx430_cur .local pmc match .lex "$/", match @@ -5740,7 +6172,9 @@ NQP::Compiler - NQP compiler substr rx430_tgt, rx430_tgt, rx430_off rx430_start: eq $I10, 1, rx430_restart + if_null rx430_debug, debug_556 rx430_cur."!cursor_debug"("START ", "term:sym") + debug_556: $I10 = self.'from'() ne $I10, -1, rxscan434_done goto rxscan434_scan @@ -5763,11 +6197,15 @@ NQP::Compiler - NQP compiler rx430_pos = $P10."pos"() # rx pass rx430_cur."!cursor_pass"(rx430_pos, "term:sym") + if_null rx430_debug, debug_557 rx430_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx430_pos) + debug_557: .return (rx430_cur) rx430_restart: .annotate 'line', 4 + if_null rx430_debug, debug_558 rx430_cur."!cursor_debug"("NEXT ", "term:sym") + debug_558: rx430_fail: (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0) lt rx430_pos, -1, rx430_done @@ -5775,14 +6213,16 @@ NQP::Compiler - NQP compiler jump $I10 rx430_done: rx430_cur."!cursor_fail"() + if_null rx430_debug, debug_559 rx430_cur."!cursor_debug"("FAIL ", "term:sym") + debug_559: .return (rx430_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("106_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("106_1282016529.10767") :method .annotate 'line', 4 $P432 = self."!PREFIX__!subrule"("package_declarator", "") new $P433, "ResizablePMCArray" @@ -5792,7 +6232,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("107_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("107_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx436_tgt .local int rx436_pos @@ -5800,7 +6240,9 @@ NQP::Compiler - NQP compiler .local int rx436_eos .local int rx436_rep .local pmc rx436_cur + .local pmc rx436_debug (rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"() + getattribute rx436_debug, rx436_cur, "$!debug" .lex unicode:"$\x{a2}", rx436_cur .local pmc match .lex "$/", match @@ -5812,7 +6254,9 @@ NQP::Compiler - NQP compiler substr rx436_tgt, rx436_tgt, rx436_off rx436_start: eq $I10, 1, rx436_restart + if_null rx436_debug, debug_560 rx436_cur."!cursor_debug"("START ", "term:sym") + debug_560: $I10 = self.'from'() ne $I10, -1, rxscan440_done goto rxscan440_scan @@ -5835,11 +6279,15 @@ NQP::Compiler - NQP compiler rx436_pos = $P10."pos"() # rx pass rx436_cur."!cursor_pass"(rx436_pos, "term:sym") + if_null rx436_debug, debug_561 rx436_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx436_pos) + debug_561: .return (rx436_cur) rx436_restart: .annotate 'line', 4 + if_null rx436_debug, debug_562 rx436_cur."!cursor_debug"("NEXT ", "term:sym") + debug_562: rx436_fail: (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0) lt rx436_pos, -1, rx436_done @@ -5847,14 +6295,16 @@ NQP::Compiler - NQP compiler jump $I10 rx436_done: rx436_cur."!cursor_fail"() + if_null rx436_debug, debug_563 rx436_cur."!cursor_debug"("FAIL ", "term:sym") + debug_563: .return (rx436_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("108_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("108_1282016529.10767") :method .annotate 'line', 4 $P438 = self."!PREFIX__!subrule"("scope_declarator", "") new $P439, "ResizablePMCArray" @@ -5864,7 +6314,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("109_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("109_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx442_tgt .local int rx442_pos @@ -5872,7 +6322,9 @@ NQP::Compiler - NQP compiler .local int rx442_eos .local int rx442_rep .local pmc rx442_cur + .local pmc rx442_debug (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"() + getattribute rx442_debug, rx442_cur, "$!debug" .lex unicode:"$\x{a2}", rx442_cur .local pmc match .lex "$/", match @@ -5884,7 +6336,9 @@ NQP::Compiler - NQP compiler substr rx442_tgt, rx442_tgt, rx442_off rx442_start: eq $I10, 1, rx442_restart + if_null rx442_debug, debug_564 rx442_cur."!cursor_debug"("START ", "term:sym") + debug_564: $I10 = self.'from'() ne $I10, -1, rxscan446_done goto rxscan446_scan @@ -5907,11 +6361,15 @@ NQP::Compiler - NQP compiler rx442_pos = $P10."pos"() # rx pass rx442_cur."!cursor_pass"(rx442_pos, "term:sym") + if_null rx442_debug, debug_565 rx442_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx442_pos) + debug_565: .return (rx442_cur) rx442_restart: .annotate 'line', 4 + if_null rx442_debug, debug_566 rx442_cur."!cursor_debug"("NEXT ", "term:sym") + debug_566: rx442_fail: (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0) lt rx442_pos, -1, rx442_done @@ -5919,14 +6377,16 @@ NQP::Compiler - NQP compiler jump $I10 rx442_done: rx442_cur."!cursor_fail"() + if_null rx442_debug, debug_567 rx442_cur."!cursor_debug"("FAIL ", "term:sym") + debug_567: .return (rx442_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("110_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("110_1282016529.10767") :method .annotate 'line', 4 $P444 = self."!PREFIX__!subrule"("routine_declarator", "") new $P445, "ResizablePMCArray" @@ -5936,9 +6396,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("111_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("111_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 - .const 'Sub' $P453 = "113_1280467477.44751" + .const 'Sub' $P453 = "113_1282016529.10767" capture_lex $P453 .local string rx448_tgt .local int rx448_pos @@ -5946,7 +6406,9 @@ NQP::Compiler - NQP compiler .local int rx448_eos .local int rx448_rep .local pmc rx448_cur + .local pmc rx448_debug (rx448_cur, rx448_pos, rx448_tgt, $I10) = self."!cursor_start"() + getattribute rx448_debug, rx448_cur, "$!debug" .lex unicode:"$\x{a2}", rx448_cur .local pmc match .lex "$/", match @@ -5958,7 +6420,9 @@ NQP::Compiler - NQP compiler substr rx448_tgt, rx448_tgt, rx448_off rx448_start: eq $I10, 1, rx448_restart + if_null rx448_debug, debug_568 rx448_cur."!cursor_debug"("START ", "term:sym") + debug_568: $I10 = self.'from'() ne $I10, -1, rxscan451_done goto rxscan451_scan @@ -5974,7 +6438,7 @@ NQP::Compiler - NQP compiler .annotate 'line', 231 # rx subrule "before" subtype=zerowidth negate= rx448_cur."!cursor_pos"(rx448_pos) - .const 'Sub' $P453 = "113_1280467477.44751" + .const 'Sub' $P453 = "113_1282016529.10767" capture_lex $P453 $P10 = rx448_cur."before"($P453) unless $P10, rx448_fail @@ -5987,11 +6451,15 @@ NQP::Compiler - NQP compiler rx448_pos = $P10."pos"() # rx pass rx448_cur."!cursor_pass"(rx448_pos, "term:sym") + if_null rx448_debug, debug_573 rx448_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx448_pos) + debug_573: .return (rx448_cur) rx448_restart: .annotate 'line', 4 + if_null rx448_debug, debug_574 rx448_cur."!cursor_debug"("NEXT ", "term:sym") + debug_574: rx448_fail: (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0) lt rx448_pos, -1, rx448_done @@ -5999,14 +6467,16 @@ NQP::Compiler - NQP compiler jump $I10 rx448_done: rx448_cur."!cursor_fail"() + if_null rx448_debug, debug_575 rx448_cur."!cursor_debug"("FAIL ", "term:sym") + debug_575: .return (rx448_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("112_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("112_1282016529.10767") :method .annotate 'line', 4 new $P450, "ResizablePMCArray" push $P450, "" @@ -6015,7 +6485,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block452" :anon :subid("113_1280467477.44751") :method :outer("111_1280467477.44751") +.sub "_block452" :anon :subid("113_1282016529.10767") :method :outer("111_1282016529.10767") .annotate 'line', 231 .local string rx454_tgt .local int rx454_pos @@ -6023,7 +6493,9 @@ NQP::Compiler - NQP compiler .local int rx454_eos .local int rx454_rep .local pmc rx454_cur + .local pmc rx454_debug (rx454_cur, rx454_pos, rx454_tgt, $I10) = self."!cursor_start"() + getattribute rx454_debug, rx454_cur, "$!debug" .lex unicode:"$\x{a2}", rx454_cur .local pmc match .lex "$/", match @@ -6035,7 +6507,9 @@ NQP::Compiler - NQP compiler substr rx454_tgt, rx454_tgt, rx454_off rx454_start: eq $I10, 1, rx454_restart + if_null rx454_debug, debug_569 rx454_cur."!cursor_debug"("START ", "") + debug_569: $I10 = self.'from'() ne $I10, -1, rxscan455_done goto rxscan455_scan @@ -6081,10 +6555,14 @@ NQP::Compiler - NQP compiler alt456_end: # rx pass rx454_cur."!cursor_pass"(rx454_pos, "") + if_null rx454_debug, debug_570 rx454_cur."!cursor_debug"("PASS ", "", " at pos=", rx454_pos) + debug_570: .return (rx454_cur) rx454_restart: + if_null rx454_debug, debug_571 rx454_cur."!cursor_debug"("NEXT ", "") + debug_571: rx454_fail: (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0) lt rx454_pos, -1, rx454_done @@ -6092,14 +6570,16 @@ NQP::Compiler - NQP compiler jump $I10 rx454_done: rx454_cur."!cursor_fail"() + if_null rx454_debug, debug_572 rx454_cur."!cursor_debug"("FAIL ", "") + debug_572: .return (rx454_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("114_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("114_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx458_tgt .local int rx458_pos @@ -6107,7 +6587,9 @@ NQP::Compiler - NQP compiler .local int rx458_eos .local int rx458_rep .local pmc rx458_cur + .local pmc rx458_debug (rx458_cur, rx458_pos, rx458_tgt, $I10) = self."!cursor_start"() + getattribute rx458_debug, rx458_cur, "$!debug" .lex unicode:"$\x{a2}", rx458_cur .local pmc match .lex "$/", match @@ -6119,7 +6601,9 @@ NQP::Compiler - NQP compiler substr rx458_tgt, rx458_tgt, rx458_off rx458_start: eq $I10, 1, rx458_restart + if_null rx458_debug, debug_576 rx458_cur."!cursor_debug"("START ", "term:sym") + debug_576: $I10 = self.'from'() ne $I10, -1, rxscan462_done goto rxscan462_scan @@ -6142,11 +6626,15 @@ NQP::Compiler - NQP compiler rx458_pos = $P10."pos"() # rx pass rx458_cur."!cursor_pass"(rx458_pos, "term:sym") + if_null rx458_debug, debug_577 rx458_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx458_pos) + debug_577: .return (rx458_cur) rx458_restart: .annotate 'line', 4 + if_null rx458_debug, debug_578 rx458_cur."!cursor_debug"("NEXT ", "term:sym") + debug_578: rx458_fail: (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0) lt rx458_pos, -1, rx458_done @@ -6154,14 +6642,16 @@ NQP::Compiler - NQP compiler jump $I10 rx458_done: rx458_cur."!cursor_fail"() + if_null rx458_debug, debug_579 rx458_cur."!cursor_debug"("FAIL ", "term:sym") + debug_579: .return (rx458_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("115_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("115_1282016529.10767") :method .annotate 'line', 4 $P460 = self."!PREFIX__!subrule"("regex_declarator", "") new $P461, "ResizablePMCArray" @@ -6171,7 +6661,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("116_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("116_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx464_tgt .local int rx464_pos @@ -6179,7 +6669,9 @@ NQP::Compiler - NQP compiler .local int rx464_eos .local int rx464_rep .local pmc rx464_cur + .local pmc rx464_debug (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"() + getattribute rx464_debug, rx464_cur, "$!debug" .lex unicode:"$\x{a2}", rx464_cur .local pmc match .lex "$/", match @@ -6191,7 +6683,9 @@ NQP::Compiler - NQP compiler substr rx464_tgt, rx464_tgt, rx464_off rx464_start: eq $I10, 1, rx464_restart + if_null rx464_debug, debug_580 rx464_cur."!cursor_debug"("START ", "term:sym") + debug_580: $I10 = self.'from'() ne $I10, -1, rxscan468_done goto rxscan468_scan @@ -6214,11 +6708,15 @@ NQP::Compiler - NQP compiler rx464_pos = $P10."pos"() # rx pass rx464_cur."!cursor_pass"(rx464_pos, "term:sym") + if_null rx464_debug, debug_581 rx464_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx464_pos) + debug_581: .return (rx464_cur) rx464_restart: .annotate 'line', 4 + if_null rx464_debug, debug_582 rx464_cur."!cursor_debug"("NEXT ", "term:sym") + debug_582: rx464_fail: (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0) lt rx464_pos, -1, rx464_done @@ -6226,14 +6724,16 @@ NQP::Compiler - NQP compiler jump $I10 rx464_done: rx464_cur."!cursor_fail"() + if_null rx464_debug, debug_583 rx464_cur."!cursor_debug"("FAIL ", "term:sym") + debug_583: .return (rx464_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("117_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("117_1282016529.10767") :method .annotate 'line', 4 $P466 = self."!PREFIX__!subrule"("statement_prefix", "") new $P467, "ResizablePMCArray" @@ -6243,7 +6743,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("118_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("118_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx470_tgt .local int rx470_pos @@ -6251,7 +6751,9 @@ NQP::Compiler - NQP compiler .local int rx470_eos .local int rx470_rep .local pmc rx470_cur + .local pmc rx470_debug (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"() + getattribute rx470_debug, rx470_cur, "$!debug" .lex unicode:"$\x{a2}", rx470_cur .local pmc match .lex "$/", match @@ -6263,7 +6765,9 @@ NQP::Compiler - NQP compiler substr rx470_tgt, rx470_tgt, rx470_off rx470_start: eq $I10, 1, rx470_restart + if_null rx470_debug, debug_584 rx470_cur."!cursor_debug"("START ", "term:sym") + debug_584: $I10 = self.'from'() ne $I10, -1, rxscan473_done goto rxscan473_scan @@ -6290,11 +6794,15 @@ NQP::Compiler - NQP compiler rx470_pos = $P10."pos"() # rx pass rx470_cur."!cursor_pass"(rx470_pos, "term:sym") + if_null rx470_debug, debug_585 rx470_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx470_pos) + debug_585: .return (rx470_cur) rx470_restart: .annotate 'line', 4 + if_null rx470_debug, debug_586 rx470_cur."!cursor_debug"("NEXT ", "term:sym") + debug_586: rx470_fail: (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0) lt rx470_pos, -1, rx470_done @@ -6302,14 +6810,16 @@ NQP::Compiler - NQP compiler jump $I10 rx470_done: rx470_cur."!cursor_fail"() + if_null rx470_debug, debug_587 rx470_cur."!cursor_debug"("FAIL ", "term:sym") + debug_587: .return (rx470_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("119_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("119_1282016529.10767") :method .annotate 'line', 4 new $P472, "ResizablePMCArray" push $P472, "" @@ -6318,7 +6828,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "fatarrow" :subid("120_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "fatarrow" :subid("120_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx475_tgt .local int rx475_pos @@ -6326,7 +6836,9 @@ NQP::Compiler - NQP compiler .local int rx475_eos .local int rx475_rep .local pmc rx475_cur + .local pmc rx475_debug (rx475_cur, rx475_pos, rx475_tgt, $I10) = self."!cursor_start"() + getattribute rx475_debug, rx475_cur, "$!debug" .lex unicode:"$\x{a2}", rx475_cur .local pmc match .lex "$/", match @@ -6338,7 +6850,9 @@ NQP::Compiler - NQP compiler substr rx475_tgt, rx475_tgt, rx475_off rx475_start: eq $I10, 1, rx475_restart + if_null rx475_debug, debug_588 rx475_cur."!cursor_debug"("START ", "fatarrow") + debug_588: $I10 = self.'from'() ne $I10, -1, rxscan479_done goto rxscan479_scan @@ -6398,11 +6912,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 236 # rx pass rx475_cur."!cursor_pass"(rx475_pos, "fatarrow") + if_null rx475_debug, debug_589 rx475_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx475_pos) + debug_589: .return (rx475_cur) rx475_restart: .annotate 'line', 4 + if_null rx475_debug, debug_590 rx475_cur."!cursor_debug"("NEXT ", "fatarrow") + debug_590: rx475_fail: (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0) lt rx475_pos, -1, rx475_done @@ -6410,14 +6928,16 @@ NQP::Compiler - NQP compiler jump $I10 rx475_done: rx475_cur."!cursor_fail"() + if_null rx475_debug, debug_591 rx475_cur."!cursor_debug"("FAIL ", "fatarrow") + debug_591: .return (rx475_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__fatarrow" :subid("121_1280467477.44751") :method +.sub "!PREFIX__fatarrow" :subid("121_1282016529.10767") :method .annotate 'line', 4 $P477 = self."!PREFIX__!subrule"("identifier", "") new $P478, "ResizablePMCArray" @@ -6427,7 +6947,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "colonpair" :subid("122_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "colonpair" :subid("122_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx482_tgt .local int rx482_pos @@ -6435,8 +6955,10 @@ NQP::Compiler - NQP compiler .local int rx482_eos .local int rx482_rep .local pmc rx482_cur + .local pmc rx482_debug (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"() rx482_cur."!cursor_caparray"("circumfix") + getattribute rx482_debug, rx482_cur, "$!debug" .lex unicode:"$\x{a2}", rx482_cur .local pmc match .lex "$/", match @@ -6448,7 +6970,9 @@ NQP::Compiler - NQP compiler substr rx482_tgt, rx482_tgt, rx482_off rx482_start: eq $I10, 1, rx482_restart + if_null rx482_debug, debug_592 rx482_cur."!cursor_debug"("START ", "colonpair") + debug_592: $I10 = self.'from'() ne $I10, -1, rxscan488_done goto rxscan488_scan @@ -6466,8 +6990,8 @@ NQP::Compiler - NQP compiler add $I11, rx482_pos, 1 gt $I11, rx482_eos, rx482_fail sub $I11, rx482_pos, rx482_off - substr $S10, rx482_tgt, $I11, 1 - ne $S10, ":", rx482_fail + ord $I11, rx482_tgt, $I11 + ne $I11, 58, rx482_fail add rx482_pos, 1 alt489_0: .annotate 'line', 242 @@ -6481,8 +7005,8 @@ NQP::Compiler - NQP compiler add $I11, rx482_pos, 1 gt $I11, rx482_eos, rx482_fail sub $I11, rx482_pos, rx482_off - substr $S10, rx482_tgt, $I11, 1 - ne $S10, "!", rx482_fail + ord $I11, rx482_tgt, $I11 + ne $I11, 33, rx482_fail add rx482_pos, 1 set_addr $I10, rxcap_490_fail ($I12, $I11) = rx482_cur."!mark_peek"($I10) @@ -6548,11 +7072,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 240 # rx pass rx482_cur."!cursor_pass"(rx482_pos, "colonpair") + if_null rx482_debug, debug_593 rx482_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx482_pos) + debug_593: .return (rx482_cur) rx482_restart: .annotate 'line', 4 + if_null rx482_debug, debug_594 rx482_cur."!cursor_debug"("NEXT ", "colonpair") + debug_594: rx482_fail: (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0) lt rx482_pos, -1, rx482_done @@ -6560,14 +7088,16 @@ NQP::Compiler - NQP compiler jump $I10 rx482_done: rx482_cur."!cursor_fail"() + if_null rx482_debug, debug_595 rx482_cur."!cursor_debug"("FAIL ", "colonpair") + debug_595: .return (rx482_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__colonpair" :subid("123_1280467477.44751") :method +.sub "!PREFIX__colonpair" :subid("123_1282016529.10767") :method .annotate 'line', 4 $P484 = self."!PREFIX__!subrule"("circumfix", ":") $P485 = self."!PREFIX__!subrule"("identifier", ":") @@ -6581,7 +7111,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "variable" :subid("124_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "variable" :subid("124_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx494_tgt .local int rx494_pos @@ -6589,8 +7119,10 @@ NQP::Compiler - NQP compiler .local int rx494_eos .local int rx494_rep .local pmc rx494_cur + .local pmc rx494_debug (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"() rx494_cur."!cursor_caparray"("twigil") + getattribute rx494_debug, rx494_cur, "$!debug" .lex unicode:"$\x{a2}", rx494_cur .local pmc match .lex "$/", match @@ -6602,7 +7134,9 @@ NQP::Compiler - NQP compiler substr rx494_tgt, rx494_tgt, rx494_off rx494_start: eq $I10, 1, rx494_restart + if_null rx494_debug, debug_596 rx494_cur."!cursor_debug"("START ", "variable") + debug_596: $I10 = self.'from'() ne $I10, -1, rxscan499_done goto rxscan499_scan @@ -6689,8 +7223,8 @@ NQP::Compiler - NQP compiler add $I11, rx494_pos, 1 gt $I11, rx494_eos, rx494_fail sub $I11, rx494_pos, rx494_off - substr $S10, rx494_tgt, $I11, 1 - ne $S10, "$", rx494_fail + ord $I11, rx494_tgt, $I11 + ne $I11, 36, rx494_fail add rx494_pos, 1 set_addr $I10, rxcap_503_fail ($I12, $I11) = rx494_cur."!mark_peek"($I10) @@ -6728,11 +7262,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 249 # rx pass rx494_cur."!cursor_pass"(rx494_pos, "variable") + if_null rx494_debug, debug_597 rx494_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx494_pos) + debug_597: .return (rx494_cur) rx494_restart: .annotate 'line', 4 + if_null rx494_debug, debug_598 rx494_cur."!cursor_debug"("NEXT ", "variable") + debug_598: rx494_fail: (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0) lt rx494_pos, -1, rx494_done @@ -6740,14 +7278,16 @@ NQP::Compiler - NQP compiler jump $I10 rx494_done: rx494_cur."!cursor_fail"() + if_null rx494_debug, debug_599 rx494_cur."!cursor_debug"("FAIL ", "variable") + debug_599: .return (rx494_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__variable" :subid("125_1280467477.44751") :method +.sub "!PREFIX__variable" :subid("125_1282016529.10767") :method .annotate 'line', 4 $P496 = self."!PREFIX__!subrule"("sigil", "") $P497 = self."!PREFIX__!subrule"("sigil", "") @@ -6762,7 +7302,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "sigil" :subid("126_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "sigil" :subid("126_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx506_tgt .local int rx506_pos @@ -6770,7 +7310,9 @@ NQP::Compiler - NQP compiler .local int rx506_eos .local int rx506_rep .local pmc rx506_cur + .local pmc rx506_debug (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"() + getattribute rx506_debug, rx506_cur, "$!debug" .lex unicode:"$\x{a2}", rx506_cur .local pmc match .lex "$/", match @@ -6782,7 +7324,9 @@ NQP::Compiler - NQP compiler substr rx506_tgt, rx506_tgt, rx506_off rx506_start: eq $I10, 1, rx506_restart + if_null rx506_debug, debug_600 rx506_cur."!cursor_debug"("START ", "sigil") + debug_600: $I10 = self.'from'() ne $I10, -1, rxscan509_done goto rxscan509_scan @@ -6805,11 +7349,15 @@ NQP::Compiler - NQP compiler inc rx506_pos # rx pass rx506_cur."!cursor_pass"(rx506_pos, "sigil") + if_null rx506_debug, debug_601 rx506_cur."!cursor_debug"("PASS ", "sigil", " at pos=", rx506_pos) + debug_601: .return (rx506_cur) rx506_restart: .annotate 'line', 4 + if_null rx506_debug, debug_602 rx506_cur."!cursor_debug"("NEXT ", "sigil") + debug_602: rx506_fail: (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0) lt rx506_pos, -1, rx506_done @@ -6817,14 +7365,16 @@ NQP::Compiler - NQP compiler jump $I10 rx506_done: rx506_cur."!cursor_fail"() + if_null rx506_debug, debug_603 rx506_cur."!cursor_debug"("FAIL ", "sigil") + debug_603: .return (rx506_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__sigil" :subid("127_1280467477.44751") :method +.sub "!PREFIX__sigil" :subid("127_1282016529.10767") :method .annotate 'line', 4 new $P508, "ResizablePMCArray" push $P508, "&" @@ -6836,7 +7386,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "twigil" :subid("128_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "twigil" :subid("128_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx511_tgt .local int rx511_pos @@ -6844,7 +7394,9 @@ NQP::Compiler - NQP compiler .local int rx511_eos .local int rx511_rep .local pmc rx511_cur + .local pmc rx511_debug (rx511_cur, rx511_pos, rx511_tgt, $I10) = self."!cursor_start"() + getattribute rx511_debug, rx511_cur, "$!debug" .lex unicode:"$\x{a2}", rx511_cur .local pmc match .lex "$/", match @@ -6856,7 +7408,9 @@ NQP::Compiler - NQP compiler substr rx511_tgt, rx511_tgt, rx511_off rx511_start: eq $I10, 1, rx511_restart + if_null rx511_debug, debug_604 rx511_cur."!cursor_debug"("START ", "twigil") + debug_604: $I10 = self.'from'() ne $I10, -1, rxscan514_done goto rxscan514_scan @@ -6879,11 +7433,15 @@ NQP::Compiler - NQP compiler inc rx511_pos # rx pass rx511_cur."!cursor_pass"(rx511_pos, "twigil") + if_null rx511_debug, debug_605 rx511_cur."!cursor_debug"("PASS ", "twigil", " at pos=", rx511_pos) + debug_605: .return (rx511_cur) rx511_restart: .annotate 'line', 4 + if_null rx511_debug, debug_606 rx511_cur."!cursor_debug"("NEXT ", "twigil") + debug_606: rx511_fail: (rx511_rep, rx511_pos, $I10, $P10) = rx511_cur."!mark_fail"(0) lt rx511_pos, -1, rx511_done @@ -6891,14 +7449,16 @@ NQP::Compiler - NQP compiler jump $I10 rx511_done: rx511_cur."!cursor_fail"() + if_null rx511_debug, debug_607 rx511_cur."!cursor_debug"("FAIL ", "twigil") + debug_607: .return (rx511_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__twigil" :subid("129_1280467477.44751") :method +.sub "!PREFIX__twigil" :subid("129_1282016529.10767") :method .annotate 'line', 4 new $P513, "ResizablePMCArray" push $P513, "?" @@ -6909,7 +7469,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "package_declarator" :subid("130_1280467477.44751") :method +.sub "package_declarator" :subid("130_1282016529.10767") :method .annotate 'line', 259 $P516 = self."!protoregex"("package_declarator") .return ($P516) @@ -6917,7 +7477,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__package_declarator" :subid("131_1280467477.44751") :method +.sub "!PREFIX__package_declarator" :subid("131_1282016529.10767") :method .annotate 'line', 259 $P518 = self."!PREFIX__!protoregex"("package_declarator") .return ($P518) @@ -6925,7 +7485,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "package_declarator:sym" :subid("132_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "package_declarator:sym" :subid("132_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx520_tgt .local int rx520_pos @@ -6933,7 +7493,9 @@ NQP::Compiler - NQP compiler .local int rx520_eos .local int rx520_rep .local pmc rx520_cur + .local pmc rx520_debug (rx520_cur, rx520_pos, rx520_tgt, $I10) = self."!cursor_start"() + getattribute rx520_debug, rx520_cur, "$!debug" .lex unicode:"$\x{a2}", rx520_cur .local pmc match .lex "$/", match @@ -6945,7 +7507,9 @@ NQP::Compiler - NQP compiler substr rx520_tgt, rx520_tgt, rx520_off rx520_start: eq $I10, 1, rx520_restart + if_null rx520_debug, debug_608 rx520_cur."!cursor_debug"("START ", "package_declarator:sym") + debug_608: $I10 = self.'from'() ne $I10, -1, rxscan524_done goto rxscan524_scan @@ -6989,11 +7553,15 @@ NQP::Compiler - NQP compiler rx520_pos = $P10."pos"() # rx pass rx520_cur."!cursor_pass"(rx520_pos, "package_declarator:sym") + if_null rx520_debug, debug_609 rx520_cur."!cursor_debug"("PASS ", "package_declarator:sym", " at pos=", rx520_pos) + debug_609: .return (rx520_cur) rx520_restart: .annotate 'line', 4 + if_null rx520_debug, debug_610 rx520_cur."!cursor_debug"("NEXT ", "package_declarator:sym") + debug_610: rx520_fail: (rx520_rep, rx520_pos, $I10, $P10) = rx520_cur."!mark_fail"(0) lt rx520_pos, -1, rx520_done @@ -7001,14 +7569,16 @@ NQP::Compiler - NQP compiler jump $I10 rx520_done: rx520_cur."!cursor_fail"() + if_null rx520_debug, debug_611 rx520_cur."!cursor_debug"("FAIL ", "package_declarator:sym") + debug_611: .return (rx520_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__package_declarator:sym" :subid("133_1280467477.44751") :method +.sub "!PREFIX__package_declarator:sym" :subid("133_1282016529.10767") :method .annotate 'line', 4 $P522 = self."!PREFIX__!subrule"("package_def", "module") new $P523, "ResizablePMCArray" @@ -7018,7 +7588,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "package_declarator:sym" :subid("134_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "package_declarator:sym" :subid("134_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx527_tgt .local int rx527_pos @@ -7026,7 +7596,9 @@ NQP::Compiler - NQP compiler .local int rx527_eos .local int rx527_rep .local pmc rx527_cur + .local pmc rx527_debug (rx527_cur, rx527_pos, rx527_tgt, $I10) = self."!cursor_start"() + getattribute rx527_debug, rx527_cur, "$!debug" .lex unicode:"$\x{a2}", rx527_cur .local pmc match .lex "$/", match @@ -7038,7 +7610,9 @@ NQP::Compiler - NQP compiler substr rx527_tgt, rx527_tgt, rx527_off rx527_start: eq $I10, 1, rx527_restart + if_null rx527_debug, debug_612 rx527_cur."!cursor_debug"("START ", "package_declarator:sym") + debug_612: $I10 = self.'from'() ne $I10, -1, rxscan532_done goto rxscan532_scan @@ -7095,11 +7669,15 @@ NQP::Compiler - NQP compiler rx527_pos = $P10."pos"() # rx pass rx527_cur."!cursor_pass"(rx527_pos, "package_declarator:sym") + if_null rx527_debug, debug_613 rx527_cur."!cursor_debug"("PASS ", "package_declarator:sym", " at pos=", rx527_pos) + debug_613: .return (rx527_cur) rx527_restart: .annotate 'line', 4 + if_null rx527_debug, debug_614 rx527_cur."!cursor_debug"("NEXT ", "package_declarator:sym") + debug_614: rx527_fail: (rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0) lt rx527_pos, -1, rx527_done @@ -7107,14 +7685,16 @@ NQP::Compiler - NQP compiler jump $I10 rx527_done: rx527_cur."!cursor_fail"() + if_null rx527_debug, debug_615 rx527_cur."!cursor_debug"("FAIL ", "package_declarator:sym") + debug_615: .return (rx527_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__package_declarator:sym" :subid("135_1280467477.44751") :method +.sub "!PREFIX__package_declarator:sym" :subid("135_1282016529.10767") :method .annotate 'line', 4 $P529 = self."!PREFIX__!subrule"("package_def", "grammar") $P530 = self."!PREFIX__!subrule"("package_def", "class") @@ -7126,7 +7706,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "package_def" :subid("136_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "package_def" :subid("136_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx536_tgt .local int rx536_pos @@ -7134,8 +7714,10 @@ NQP::Compiler - NQP compiler .local int rx536_eos .local int rx536_rep .local pmc rx536_cur + .local pmc rx536_debug (rx536_cur, rx536_pos, rx536_tgt, $I10) = self."!cursor_start"() rx536_cur."!cursor_caparray"("parent") + getattribute rx536_debug, rx536_cur, "$!debug" .lex unicode:"$\x{a2}", rx536_cur .local pmc match .lex "$/", match @@ -7147,7 +7729,9 @@ NQP::Compiler - NQP compiler substr rx536_tgt, rx536_tgt, rx536_off rx536_start: eq $I10, 1, rx536_restart + if_null rx536_debug, debug_616 rx536_cur."!cursor_debug"("START ", "package_def") + debug_616: $I10 = self.'from'() ne $I10, -1, rxscan540_done goto rxscan540_scan @@ -7235,8 +7819,8 @@ NQP::Compiler - NQP compiler add $I11, rx536_pos, 1 gt $I11, rx536_eos, rx536_fail sub $I11, rx536_pos, rx536_off - substr $S10, rx536_tgt, $I11, 1 - ne $S10, ";", rx536_fail + ord $I11, rx536_tgt, $I11 + ne $I11, 59, rx536_fail add rx536_pos, 1 # rx subrule "ws" subtype=method negate= rx536_cur."!cursor_pos"(rx536_pos) @@ -7316,11 +7900,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 263 # rx pass rx536_cur."!cursor_pass"(rx536_pos, "package_def") + if_null rx536_debug, debug_617 rx536_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx536_pos) + debug_617: .return (rx536_cur) rx536_restart: .annotate 'line', 4 + if_null rx536_debug, debug_618 rx536_cur."!cursor_debug"("NEXT ", "package_def") + debug_618: rx536_fail: (rx536_rep, rx536_pos, $I10, $P10) = rx536_cur."!mark_fail"(0) lt rx536_pos, -1, rx536_done @@ -7328,14 +7916,16 @@ NQP::Compiler - NQP compiler jump $I10 rx536_done: rx536_cur."!cursor_fail"() + if_null rx536_debug, debug_619 rx536_cur."!cursor_debug"("FAIL ", "package_def") + debug_619: .return (rx536_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__package_def" :subid("137_1280467477.44751") :method +.sub "!PREFIX__package_def" :subid("137_1282016529.10767") :method .annotate 'line', 4 $P538 = self."!PREFIX__!subrule"("ws", "") new $P539, "ResizablePMCArray" @@ -7345,7 +7935,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scope_declarator" :subid("138_1280467477.44751") :method +.sub "scope_declarator" :subid("138_1282016529.10767") :method .annotate 'line', 273 $P559 = self."!protoregex"("scope_declarator") .return ($P559) @@ -7353,7 +7943,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scope_declarator" :subid("139_1280467477.44751") :method +.sub "!PREFIX__scope_declarator" :subid("139_1282016529.10767") :method .annotate 'line', 273 $P561 = self."!PREFIX__!protoregex"("scope_declarator") .return ($P561) @@ -7361,7 +7951,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scope_declarator:sym" :subid("140_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "scope_declarator:sym" :subid("140_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx563_tgt .local int rx563_pos @@ -7369,7 +7959,9 @@ NQP::Compiler - NQP compiler .local int rx563_eos .local int rx563_rep .local pmc rx563_cur + .local pmc rx563_debug (rx563_cur, rx563_pos, rx563_tgt, $I10) = self."!cursor_start"() + getattribute rx563_debug, rx563_cur, "$!debug" .lex unicode:"$\x{a2}", rx563_cur .local pmc match .lex "$/", match @@ -7381,7 +7973,9 @@ NQP::Compiler - NQP compiler substr rx563_tgt, rx563_tgt, rx563_off rx563_start: eq $I10, 1, rx563_restart + if_null rx563_debug, debug_620 rx563_cur."!cursor_debug"("START ", "scope_declarator:sym") + debug_620: $I10 = self.'from'() ne $I10, -1, rxscan567_done goto rxscan567_scan @@ -7425,11 +8019,15 @@ NQP::Compiler - NQP compiler rx563_pos = $P10."pos"() # rx pass rx563_cur."!cursor_pass"(rx563_pos, "scope_declarator:sym") + if_null rx563_debug, debug_621 rx563_cur."!cursor_debug"("PASS ", "scope_declarator:sym", " at pos=", rx563_pos) + debug_621: .return (rx563_cur) rx563_restart: .annotate 'line', 4 + if_null rx563_debug, debug_622 rx563_cur."!cursor_debug"("NEXT ", "scope_declarator:sym") + debug_622: rx563_fail: (rx563_rep, rx563_pos, $I10, $P10) = rx563_cur."!mark_fail"(0) lt rx563_pos, -1, rx563_done @@ -7437,14 +8035,16 @@ NQP::Compiler - NQP compiler jump $I10 rx563_done: rx563_cur."!cursor_fail"() + if_null rx563_debug, debug_623 rx563_cur."!cursor_debug"("FAIL ", "scope_declarator:sym") + debug_623: .return (rx563_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scope_declarator:sym" :subid("141_1280467477.44751") :method +.sub "!PREFIX__scope_declarator:sym" :subid("141_1282016529.10767") :method .annotate 'line', 4 $P565 = self."!PREFIX__!subrule"("scoped", "my") new $P566, "ResizablePMCArray" @@ -7454,7 +8054,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scope_declarator:sym" :subid("142_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "scope_declarator:sym" :subid("142_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx570_tgt .local int rx570_pos @@ -7462,7 +8062,9 @@ NQP::Compiler - NQP compiler .local int rx570_eos .local int rx570_rep .local pmc rx570_cur + .local pmc rx570_debug (rx570_cur, rx570_pos, rx570_tgt, $I10) = self."!cursor_start"() + getattribute rx570_debug, rx570_cur, "$!debug" .lex unicode:"$\x{a2}", rx570_cur .local pmc match .lex "$/", match @@ -7474,7 +8076,9 @@ NQP::Compiler - NQP compiler substr rx570_tgt, rx570_tgt, rx570_off rx570_start: eq $I10, 1, rx570_restart + if_null rx570_debug, debug_624 rx570_cur."!cursor_debug"("START ", "scope_declarator:sym") + debug_624: $I10 = self.'from'() ne $I10, -1, rxscan574_done goto rxscan574_scan @@ -7518,11 +8122,15 @@ NQP::Compiler - NQP compiler rx570_pos = $P10."pos"() # rx pass rx570_cur."!cursor_pass"(rx570_pos, "scope_declarator:sym") + if_null rx570_debug, debug_625 rx570_cur."!cursor_debug"("PASS ", "scope_declarator:sym", " at pos=", rx570_pos) + debug_625: .return (rx570_cur) rx570_restart: .annotate 'line', 4 + if_null rx570_debug, debug_626 rx570_cur."!cursor_debug"("NEXT ", "scope_declarator:sym") + debug_626: rx570_fail: (rx570_rep, rx570_pos, $I10, $P10) = rx570_cur."!mark_fail"(0) lt rx570_pos, -1, rx570_done @@ -7530,14 +8138,16 @@ NQP::Compiler - NQP compiler jump $I10 rx570_done: rx570_cur."!cursor_fail"() + if_null rx570_debug, debug_627 rx570_cur."!cursor_debug"("FAIL ", "scope_declarator:sym") + debug_627: .return (rx570_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scope_declarator:sym" :subid("143_1280467477.44751") :method +.sub "!PREFIX__scope_declarator:sym" :subid("143_1282016529.10767") :method .annotate 'line', 4 $P572 = self."!PREFIX__!subrule"("scoped", "our") new $P573, "ResizablePMCArray" @@ -7547,7 +8157,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scope_declarator:sym" :subid("144_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "scope_declarator:sym" :subid("144_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx577_tgt .local int rx577_pos @@ -7555,7 +8165,9 @@ NQP::Compiler - NQP compiler .local int rx577_eos .local int rx577_rep .local pmc rx577_cur + .local pmc rx577_debug (rx577_cur, rx577_pos, rx577_tgt, $I10) = self."!cursor_start"() + getattribute rx577_debug, rx577_cur, "$!debug" .lex unicode:"$\x{a2}", rx577_cur .local pmc match .lex "$/", match @@ -7567,7 +8179,9 @@ NQP::Compiler - NQP compiler substr rx577_tgt, rx577_tgt, rx577_off rx577_start: eq $I10, 1, rx577_restart + if_null rx577_debug, debug_628 rx577_cur."!cursor_debug"("START ", "scope_declarator:sym") + debug_628: $I10 = self.'from'() ne $I10, -1, rxscan581_done goto rxscan581_scan @@ -7611,11 +8225,15 @@ NQP::Compiler - NQP compiler rx577_pos = $P10."pos"() # rx pass rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym") + if_null rx577_debug, debug_629 rx577_cur."!cursor_debug"("PASS ", "scope_declarator:sym", " at pos=", rx577_pos) + debug_629: .return (rx577_cur) rx577_restart: .annotate 'line', 4 + if_null rx577_debug, debug_630 rx577_cur."!cursor_debug"("NEXT ", "scope_declarator:sym") + debug_630: rx577_fail: (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0) lt rx577_pos, -1, rx577_done @@ -7623,14 +8241,16 @@ NQP::Compiler - NQP compiler jump $I10 rx577_done: rx577_cur."!cursor_fail"() + if_null rx577_debug, debug_631 rx577_cur."!cursor_debug"("FAIL ", "scope_declarator:sym") + debug_631: .return (rx577_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scope_declarator:sym" :subid("145_1280467477.44751") :method +.sub "!PREFIX__scope_declarator:sym" :subid("145_1282016529.10767") :method .annotate 'line', 4 $P579 = self."!PREFIX__!subrule"("scoped", "has") new $P580, "ResizablePMCArray" @@ -7640,7 +8260,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scoped" :subid("146_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "scoped" :subid("146_1282016529.10767") :method :outer("11_1282016529.10767") .param pmc param_584 .annotate 'line', 278 .lex "$*SCOPE", param_584 @@ -7651,7 +8271,9 @@ NQP::Compiler - NQP compiler .local int rx585_eos .local int rx585_rep .local pmc rx585_cur + .local pmc rx585_debug (rx585_cur, rx585_pos, rx585_tgt, $I10) = self."!cursor_start"() + getattribute rx585_debug, rx585_cur, "$!debug" .lex unicode:"$\x{a2}", rx585_cur .local pmc match .lex "$/", match @@ -7663,7 +8285,9 @@ NQP::Compiler - NQP compiler substr rx585_tgt, rx585_tgt, rx585_off rx585_start: eq $I10, 1, rx585_restart + if_null rx585_debug, debug_632 rx585_cur."!cursor_debug"("START ", "scoped") + debug_632: $I10 = self.'from'() ne $I10, -1, rxscan590_done goto rxscan590_scan @@ -7722,11 +8346,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 278 # rx pass rx585_cur."!cursor_pass"(rx585_pos, "scoped") + if_null rx585_debug, debug_633 rx585_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx585_pos) + debug_633: .return (rx585_cur) rx585_restart: .annotate 'line', 4 + if_null rx585_debug, debug_634 rx585_cur."!cursor_debug"("NEXT ", "scoped") + debug_634: rx585_fail: (rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0) lt rx585_pos, -1, rx585_done @@ -7734,14 +8362,16 @@ NQP::Compiler - NQP compiler jump $I10 rx585_done: rx585_cur."!cursor_fail"() + if_null rx585_debug, debug_635 rx585_cur."!cursor_debug"("FAIL ", "scoped") + debug_635: .return (rx585_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scoped" :subid("147_1280467477.44751") :method +.sub "!PREFIX__scoped" :subid("147_1282016529.10767") :method .annotate 'line', 4 $P587 = self."!PREFIX__!subrule"("ws", "") $P588 = self."!PREFIX__!subrule"("ws", "") @@ -7753,7 +8383,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "typename" :subid("148_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "typename" :subid("148_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx597_tgt .local int rx597_pos @@ -7761,7 +8391,9 @@ NQP::Compiler - NQP compiler .local int rx597_eos .local int rx597_rep .local pmc rx597_cur + .local pmc rx597_debug (rx597_cur, rx597_pos, rx597_tgt, $I10) = self."!cursor_start"() + getattribute rx597_debug, rx597_cur, "$!debug" .lex unicode:"$\x{a2}", rx597_cur .local pmc match .lex "$/", match @@ -7773,7 +8405,9 @@ NQP::Compiler - NQP compiler substr rx597_tgt, rx597_tgt, rx597_off rx597_start: eq $I10, 1, rx597_restart + if_null rx597_debug, debug_636 rx597_cur."!cursor_debug"("START ", "typename") + debug_636: $I10 = self.'from'() ne $I10, -1, rxscan601_done goto rxscan601_scan @@ -7796,11 +8430,15 @@ NQP::Compiler - NQP compiler rx597_pos = $P10."pos"() # rx pass rx597_cur."!cursor_pass"(rx597_pos, "typename") + if_null rx597_debug, debug_637 rx597_cur."!cursor_debug"("PASS ", "typename", " at pos=", rx597_pos) + debug_637: .return (rx597_cur) rx597_restart: .annotate 'line', 4 + if_null rx597_debug, debug_638 rx597_cur."!cursor_debug"("NEXT ", "typename") + debug_638: rx597_fail: (rx597_rep, rx597_pos, $I10, $P10) = rx597_cur."!mark_fail"(0) lt rx597_pos, -1, rx597_done @@ -7808,14 +8446,16 @@ NQP::Compiler - NQP compiler jump $I10 rx597_done: rx597_cur."!cursor_fail"() + if_null rx597_debug, debug_639 rx597_cur."!cursor_debug"("FAIL ", "typename") + debug_639: .return (rx597_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__typename" :subid("149_1280467477.44751") :method +.sub "!PREFIX__typename" :subid("149_1282016529.10767") :method .annotate 'line', 4 $P599 = self."!PREFIX__!subrule"("name", "") new $P600, "ResizablePMCArray" @@ -7825,7 +8465,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "declarator" :subid("150_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "declarator" :subid("150_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx603_tgt .local int rx603_pos @@ -7833,7 +8473,9 @@ NQP::Compiler - NQP compiler .local int rx603_eos .local int rx603_rep .local pmc rx603_cur + .local pmc rx603_debug (rx603_cur, rx603_pos, rx603_tgt, $I10) = self."!cursor_start"() + getattribute rx603_debug, rx603_cur, "$!debug" .lex unicode:"$\x{a2}", rx603_cur .local pmc match .lex "$/", match @@ -7845,7 +8487,9 @@ NQP::Compiler - NQP compiler substr rx603_tgt, rx603_tgt, rx603_off rx603_start: eq $I10, 1, rx603_restart + if_null rx603_debug, debug_640 rx603_cur."!cursor_debug"("START ", "declarator") + debug_640: $I10 = self.'from'() ne $I10, -1, rxscan608_done goto rxscan608_scan @@ -7884,11 +8528,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 285 # rx pass rx603_cur."!cursor_pass"(rx603_pos, "declarator") + if_null rx603_debug, debug_641 rx603_cur."!cursor_debug"("PASS ", "declarator", " at pos=", rx603_pos) + debug_641: .return (rx603_cur) rx603_restart: .annotate 'line', 4 + if_null rx603_debug, debug_642 rx603_cur."!cursor_debug"("NEXT ", "declarator") + debug_642: rx603_fail: (rx603_rep, rx603_pos, $I10, $P10) = rx603_cur."!mark_fail"(0) lt rx603_pos, -1, rx603_done @@ -7896,14 +8544,16 @@ NQP::Compiler - NQP compiler jump $I10 rx603_done: rx603_cur."!cursor_fail"() + if_null rx603_debug, debug_643 rx603_cur."!cursor_debug"("FAIL ", "declarator") + debug_643: .return (rx603_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__declarator" :subid("151_1280467477.44751") :method +.sub "!PREFIX__declarator" :subid("151_1282016529.10767") :method .annotate 'line', 4 $P605 = self."!PREFIX__!subrule"("routine_declarator", "") $P606 = self."!PREFIX__!subrule"("variable_declarator", "") @@ -7915,7 +8565,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "variable_declarator" :subid("152_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "variable_declarator" :subid("152_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx611_tgt .local int rx611_pos @@ -7923,7 +8573,9 @@ NQP::Compiler - NQP compiler .local int rx611_eos .local int rx611_rep .local pmc rx611_cur + .local pmc rx611_debug (rx611_cur, rx611_pos, rx611_tgt, $I10) = self."!cursor_start"() + getattribute rx611_debug, rx611_cur, "$!debug" .lex unicode:"$\x{a2}", rx611_cur .local pmc match .lex "$/", match @@ -7935,7 +8587,9 @@ NQP::Compiler - NQP compiler substr rx611_tgt, rx611_tgt, rx611_off rx611_start: eq $I10, 1, rx611_restart + if_null rx611_debug, debug_644 rx611_cur."!cursor_debug"("START ", "variable_declarator") + debug_644: $I10 = self.'from'() ne $I10, -1, rxscan615_done goto rxscan615_scan @@ -7958,11 +8612,15 @@ NQP::Compiler - NQP compiler rx611_pos = $P10."pos"() # rx pass rx611_cur."!cursor_pass"(rx611_pos, "variable_declarator") + if_null rx611_debug, debug_645 rx611_cur."!cursor_debug"("PASS ", "variable_declarator", " at pos=", rx611_pos) + debug_645: .return (rx611_cur) rx611_restart: .annotate 'line', 4 + if_null rx611_debug, debug_646 rx611_cur."!cursor_debug"("NEXT ", "variable_declarator") + debug_646: rx611_fail: (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0) lt rx611_pos, -1, rx611_done @@ -7970,14 +8628,16 @@ NQP::Compiler - NQP compiler jump $I10 rx611_done: rx611_cur."!cursor_fail"() + if_null rx611_debug, debug_647 rx611_cur."!cursor_debug"("FAIL ", "variable_declarator") + debug_647: .return (rx611_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__variable_declarator" :subid("153_1280467477.44751") :method +.sub "!PREFIX__variable_declarator" :subid("153_1282016529.10767") :method .annotate 'line', 4 $P613 = self."!PREFIX__!subrule"("variable", "") new $P614, "ResizablePMCArray" @@ -7987,7 +8647,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "routine_declarator" :subid("154_1280467477.44751") :method +.sub "routine_declarator" :subid("154_1282016529.10767") :method .annotate 'line', 292 $P617 = self."!protoregex"("routine_declarator") .return ($P617) @@ -7995,7 +8655,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__routine_declarator" :subid("155_1280467477.44751") :method +.sub "!PREFIX__routine_declarator" :subid("155_1282016529.10767") :method .annotate 'line', 292 $P619 = self."!PREFIX__!protoregex"("routine_declarator") .return ($P619) @@ -8003,7 +8663,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "routine_declarator:sym" :subid("156_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "routine_declarator:sym" :subid("156_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx621_tgt .local int rx621_pos @@ -8011,7 +8671,9 @@ NQP::Compiler - NQP compiler .local int rx621_eos .local int rx621_rep .local pmc rx621_cur + .local pmc rx621_debug (rx621_cur, rx621_pos, rx621_tgt, $I10) = self."!cursor_start"() + getattribute rx621_debug, rx621_cur, "$!debug" .lex unicode:"$\x{a2}", rx621_cur .local pmc match .lex "$/", match @@ -8023,7 +8685,9 @@ NQP::Compiler - NQP compiler substr rx621_tgt, rx621_tgt, rx621_off rx621_start: eq $I10, 1, rx621_restart + if_null rx621_debug, debug_648 rx621_cur."!cursor_debug"("START ", "routine_declarator:sym") + debug_648: $I10 = self.'from'() ne $I10, -1, rxscan625_done goto rxscan625_scan @@ -8067,11 +8731,15 @@ NQP::Compiler - NQP compiler rx621_pos = $P10."pos"() # rx pass rx621_cur."!cursor_pass"(rx621_pos, "routine_declarator:sym") + if_null rx621_debug, debug_649 rx621_cur."!cursor_debug"("PASS ", "routine_declarator:sym", " at pos=", rx621_pos) + debug_649: .return (rx621_cur) rx621_restart: .annotate 'line', 4 + if_null rx621_debug, debug_650 rx621_cur."!cursor_debug"("NEXT ", "routine_declarator:sym") + debug_650: rx621_fail: (rx621_rep, rx621_pos, $I10, $P10) = rx621_cur."!mark_fail"(0) lt rx621_pos, -1, rx621_done @@ -8079,14 +8747,16 @@ NQP::Compiler - NQP compiler jump $I10 rx621_done: rx621_cur."!cursor_fail"() + if_null rx621_debug, debug_651 rx621_cur."!cursor_debug"("FAIL ", "routine_declarator:sym") + debug_651: .return (rx621_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__routine_declarator:sym" :subid("157_1280467477.44751") :method +.sub "!PREFIX__routine_declarator:sym" :subid("157_1282016529.10767") :method .annotate 'line', 4 $P623 = self."!PREFIX__!subrule"("routine_def", "sub") new $P624, "ResizablePMCArray" @@ -8096,7 +8766,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "routine_declarator:sym" :subid("158_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "routine_declarator:sym" :subid("158_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx628_tgt .local int rx628_pos @@ -8104,7 +8774,9 @@ NQP::Compiler - NQP compiler .local int rx628_eos .local int rx628_rep .local pmc rx628_cur + .local pmc rx628_debug (rx628_cur, rx628_pos, rx628_tgt, $I10) = self."!cursor_start"() + getattribute rx628_debug, rx628_cur, "$!debug" .lex unicode:"$\x{a2}", rx628_cur .local pmc match .lex "$/", match @@ -8116,7 +8788,9 @@ NQP::Compiler - NQP compiler substr rx628_tgt, rx628_tgt, rx628_off rx628_start: eq $I10, 1, rx628_restart + if_null rx628_debug, debug_652 rx628_cur."!cursor_debug"("START ", "routine_declarator:sym") + debug_652: $I10 = self.'from'() ne $I10, -1, rxscan632_done goto rxscan632_scan @@ -8160,11 +8834,15 @@ NQP::Compiler - NQP compiler rx628_pos = $P10."pos"() # rx pass rx628_cur."!cursor_pass"(rx628_pos, "routine_declarator:sym") + if_null rx628_debug, debug_653 rx628_cur."!cursor_debug"("PASS ", "routine_declarator:sym", " at pos=", rx628_pos) + debug_653: .return (rx628_cur) rx628_restart: .annotate 'line', 4 + if_null rx628_debug, debug_654 rx628_cur."!cursor_debug"("NEXT ", "routine_declarator:sym") + debug_654: rx628_fail: (rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0) lt rx628_pos, -1, rx628_done @@ -8172,14 +8850,16 @@ NQP::Compiler - NQP compiler jump $I10 rx628_done: rx628_cur."!cursor_fail"() + if_null rx628_debug, debug_655 rx628_cur."!cursor_debug"("FAIL ", "routine_declarator:sym") + debug_655: .return (rx628_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__routine_declarator:sym" :subid("159_1280467477.44751") :method +.sub "!PREFIX__routine_declarator:sym" :subid("159_1282016529.10767") :method .annotate 'line', 4 $P630 = self."!PREFIX__!subrule"("method_def", "method") new $P631, "ResizablePMCArray" @@ -8189,7 +8869,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "routine_def" :subid("160_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "routine_def" :subid("160_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx635_tgt .local int rx635_pos @@ -8197,8 +8877,10 @@ NQP::Compiler - NQP compiler .local int rx635_eos .local int rx635_rep .local pmc rx635_cur + .local pmc rx635_debug (rx635_cur, rx635_pos, rx635_tgt, $I10) = self."!cursor_start"() - rx635_cur."!cursor_caparray"("sigil", "deflongname") + rx635_cur."!cursor_caparray"("deflongname", "sigil") + getattribute rx635_debug, rx635_cur, "$!debug" .lex unicode:"$\x{a2}", rx635_cur .local pmc match .lex "$/", match @@ -8210,7 +8892,9 @@ NQP::Compiler - NQP compiler substr rx635_tgt, rx635_tgt, rx635_off rx635_start: eq $I10, 1, rx635_restart + if_null rx635_debug, debug_656 rx635_cur."!cursor_debug"("START ", "routine_def") + debug_656: $I10 = self.'from'() ne $I10, -1, rxscan639_done goto rxscan639_scan @@ -8250,8 +8934,8 @@ NQP::Compiler - NQP compiler add $I11, rx635_pos, 1 gt $I11, rx635_eos, rx635_fail sub $I11, rx635_pos, rx635_off - substr $S10, rx635_tgt, $I11, 1 - ne $S10, "&", rx635_fail + ord $I11, rx635_tgt, $I11 + ne $I11, 38, rx635_fail add rx635_pos, 1 set_addr $I10, rxquantr643_done (rx635_rep) = rx635_cur."!mark_commit"($I10) @@ -8311,8 +8995,8 @@ NQP::Compiler - NQP compiler add $I11, rx635_pos, 1 gt $I11, rx635_eos, rx635_fail sub $I11, rx635_pos, rx635_off - substr $S10, rx635_tgt, $I11, 1 - ne $S10, "(", rx635_fail + ord $I11, rx635_tgt, $I11 + ne $I11, 40, rx635_fail add rx635_pos, 1 # rx subrule "ws" subtype=method negate= rx635_cur."!cursor_pos"(rx635_pos) @@ -8335,8 +9019,8 @@ NQP::Compiler - NQP compiler add $I11, rx635_pos, 1 gt $I11, rx635_eos, rx635_fail sub $I11, rx635_pos, rx635_off - substr $S10, rx635_tgt, $I11, 1 - ne $S10, ")", rx635_fail + ord $I11, rx635_tgt, $I11 + ne $I11, 41, rx635_fail add rx635_pos, 1 # rx subrule "ws" subtype=method negate= rx635_cur."!cursor_pos"(rx635_pos) @@ -8383,11 +9067,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 296 # rx pass rx635_cur."!cursor_pass"(rx635_pos, "routine_def") + if_null rx635_debug, debug_657 rx635_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx635_pos) + debug_657: .return (rx635_cur) rx635_restart: .annotate 'line', 4 + if_null rx635_debug, debug_658 rx635_cur."!cursor_debug"("NEXT ", "routine_def") + debug_658: rx635_fail: (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0) lt rx635_pos, -1, rx635_done @@ -8395,14 +9083,16 @@ NQP::Compiler - NQP compiler jump $I10 rx635_done: rx635_cur."!cursor_fail"() + if_null rx635_debug, debug_659 rx635_cur."!cursor_debug"("FAIL ", "routine_def") + debug_659: .return (rx635_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__routine_def" :subid("161_1280467477.44751") :method +.sub "!PREFIX__routine_def" :subid("161_1282016529.10767") :method .annotate 'line', 4 $P637 = self."!PREFIX__!subrule"("ws", "") new $P638, "ResizablePMCArray" @@ -8412,7 +9102,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "method_def" :subid("162_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "method_def" :subid("162_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx658_tgt .local int rx658_pos @@ -8420,8 +9110,10 @@ NQP::Compiler - NQP compiler .local int rx658_eos .local int rx658_rep .local pmc rx658_cur + .local pmc rx658_debug (rx658_cur, rx658_pos, rx658_tgt, $I10) = self."!cursor_start"() rx658_cur."!cursor_caparray"("deflongname") + getattribute rx658_debug, rx658_cur, "$!debug" .lex unicode:"$\x{a2}", rx658_cur .local pmc match .lex "$/", match @@ -8433,7 +9125,9 @@ NQP::Compiler - NQP compiler substr rx658_tgt, rx658_tgt, rx658_off rx658_start: eq $I10, 1, rx658_restart + if_null rx658_debug, debug_660 rx658_cur."!cursor_debug"("START ", "method_def") + debug_660: $I10 = self.'from'() ne $I10, -1, rxscan662_done goto rxscan662_scan @@ -8502,8 +9196,8 @@ NQP::Compiler - NQP compiler add $I11, rx658_pos, 1 gt $I11, rx658_eos, rx658_fail sub $I11, rx658_pos, rx658_off - substr $S10, rx658_tgt, $I11, 1 - ne $S10, "(", rx658_fail + ord $I11, rx658_tgt, $I11 + ne $I11, 40, rx658_fail add rx658_pos, 1 # rx subrule "ws" subtype=method negate= rx658_cur."!cursor_pos"(rx658_pos) @@ -8526,8 +9220,8 @@ NQP::Compiler - NQP compiler add $I11, rx658_pos, 1 gt $I11, rx658_eos, rx658_fail sub $I11, rx658_pos, rx658_off - substr $S10, rx658_tgt, $I11, 1 - ne $S10, ")", rx658_fail + ord $I11, rx658_tgt, $I11 + ne $I11, 41, rx658_fail add rx658_pos, 1 # rx subrule "ws" subtype=method negate= rx658_cur."!cursor_pos"(rx658_pos) @@ -8574,11 +9268,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 304 # rx pass rx658_cur."!cursor_pass"(rx658_pos, "method_def") + if_null rx658_debug, debug_661 rx658_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx658_pos) + debug_661: .return (rx658_cur) rx658_restart: .annotate 'line', 4 + if_null rx658_debug, debug_662 rx658_cur."!cursor_debug"("NEXT ", "method_def") + debug_662: rx658_fail: (rx658_rep, rx658_pos, $I10, $P10) = rx658_cur."!mark_fail"(0) lt rx658_pos, -1, rx658_done @@ -8586,14 +9284,16 @@ NQP::Compiler - NQP compiler jump $I10 rx658_done: rx658_cur."!cursor_fail"() + if_null rx658_debug, debug_663 rx658_cur."!cursor_debug"("FAIL ", "method_def") + debug_663: .return (rx658_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__method_def" :subid("163_1280467477.44751") :method +.sub "!PREFIX__method_def" :subid("163_1282016529.10767") :method .annotate 'line', 4 $P660 = self."!PREFIX__!subrule"("ws", "") new $P661, "ResizablePMCArray" @@ -8603,7 +9303,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "multi_declarator" :subid("164_1280467477.44751") :method +.sub "multi_declarator" :subid("164_1282016529.10767") :method .annotate 'line', 312 $P678 = self."!protoregex"("multi_declarator") .return ($P678) @@ -8611,7 +9311,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__multi_declarator" :subid("165_1280467477.44751") :method +.sub "!PREFIX__multi_declarator" :subid("165_1282016529.10767") :method .annotate 'line', 312 $P680 = self."!PREFIX__!protoregex"("multi_declarator") .return ($P680) @@ -8619,7 +9319,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "multi_declarator:sym" :subid("166_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "multi_declarator:sym" :subid("166_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 314 new $P682, "Undef" .lex "$*MULTINESS", $P682 @@ -8630,7 +9330,9 @@ NQP::Compiler - NQP compiler .local int rx683_eos .local int rx683_rep .local pmc rx683_cur + .local pmc rx683_debug (rx683_cur, rx683_pos, rx683_tgt, $I10) = self."!cursor_start"() + getattribute rx683_debug, rx683_cur, "$!debug" .lex unicode:"$\x{a2}", rx683_cur .local pmc match .lex "$/", match @@ -8642,7 +9344,9 @@ NQP::Compiler - NQP compiler substr rx683_tgt, rx683_tgt, rx683_off rx683_start: eq $I10, 1, rx683_restart + if_null rx683_debug, debug_664 rx683_cur."!cursor_debug"("START ", "multi_declarator:sym") + debug_664: $I10 = self.'from'() ne $I10, -1, rxscan687_done goto rxscan687_scan @@ -8720,11 +9424,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 313 # rx pass rx683_cur."!cursor_pass"(rx683_pos, "multi_declarator:sym") + if_null rx683_debug, debug_665 rx683_cur."!cursor_debug"("PASS ", "multi_declarator:sym", " at pos=", rx683_pos) + debug_665: .return (rx683_cur) rx683_restart: .annotate 'line', 4 + if_null rx683_debug, debug_666 rx683_cur."!cursor_debug"("NEXT ", "multi_declarator:sym") + debug_666: rx683_fail: (rx683_rep, rx683_pos, $I10, $P10) = rx683_cur."!mark_fail"(0) lt rx683_pos, -1, rx683_done @@ -8732,14 +9440,16 @@ NQP::Compiler - NQP compiler jump $I10 rx683_done: rx683_cur."!cursor_fail"() + if_null rx683_debug, debug_667 rx683_cur."!cursor_debug"("FAIL ", "multi_declarator:sym") + debug_667: .return (rx683_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__multi_declarator:sym" :subid("167_1280467477.44751") :method +.sub "!PREFIX__multi_declarator:sym" :subid("167_1282016529.10767") :method .annotate 'line', 4 $P685 = self."!PREFIX__!subrule"("ws", "multi") new $P686, "ResizablePMCArray" @@ -8749,7 +9459,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "multi_declarator:sym" :subid("168_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "multi_declarator:sym" :subid("168_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 319 new $P692, "Undef" .lex "$*MULTINESS", $P692 @@ -8760,7 +9470,9 @@ NQP::Compiler - NQP compiler .local int rx693_eos .local int rx693_rep .local pmc rx693_cur + .local pmc rx693_debug (rx693_cur, rx693_pos, rx693_tgt, $I10) = self."!cursor_start"() + getattribute rx693_debug, rx693_cur, "$!debug" .lex unicode:"$\x{a2}", rx693_cur .local pmc match .lex "$/", match @@ -8772,7 +9484,9 @@ NQP::Compiler - NQP compiler substr rx693_tgt, rx693_tgt, rx693_off rx693_start: eq $I10, 1, rx693_restart + if_null rx693_debug, debug_668 rx693_cur."!cursor_debug"("START ", "multi_declarator:sym") + debug_668: $I10 = self.'from'() ne $I10, -1, rxscan697_done goto rxscan697_scan @@ -8801,11 +9515,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 318 # rx pass rx693_cur."!cursor_pass"(rx693_pos, "multi_declarator:sym") + if_null rx693_debug, debug_669 rx693_cur."!cursor_debug"("PASS ", "multi_declarator:sym", " at pos=", rx693_pos) + debug_669: .return (rx693_cur) rx693_restart: .annotate 'line', 4 + if_null rx693_debug, debug_670 rx693_cur."!cursor_debug"("NEXT ", "multi_declarator:sym") + debug_670: rx693_fail: (rx693_rep, rx693_pos, $I10, $P10) = rx693_cur."!mark_fail"(0) lt rx693_pos, -1, rx693_done @@ -8813,14 +9531,16 @@ NQP::Compiler - NQP compiler jump $I10 rx693_done: rx693_cur."!cursor_fail"() + if_null rx693_debug, debug_671 rx693_cur."!cursor_debug"("FAIL ", "multi_declarator:sym") + debug_671: .return (rx693_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__multi_declarator:sym" :subid("169_1280467477.44751") :method +.sub "!PREFIX__multi_declarator:sym" :subid("169_1282016529.10767") :method .annotate 'line', 4 $P695 = self."!PREFIX__!subrule"("declarator", "") new $P696, "ResizablePMCArray" @@ -8830,7 +9550,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "signature" :subid("170_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "signature" :subid("170_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx700_tgt .local int rx700_pos @@ -8838,8 +9558,10 @@ NQP::Compiler - NQP compiler .local int rx700_eos .local int rx700_rep .local pmc rx700_cur + .local pmc rx700_debug (rx700_cur, rx700_pos, rx700_tgt, $I10) = self."!cursor_start"() rx700_cur."!cursor_caparray"("parameter") + getattribute rx700_debug, rx700_cur, "$!debug" .lex unicode:"$\x{a2}", rx700_cur .local pmc match .lex "$/", match @@ -8851,7 +9573,9 @@ NQP::Compiler - NQP compiler substr rx700_tgt, rx700_tgt, rx700_off rx700_start: eq $I10, 1, rx700_restart + if_null rx700_debug, debug_672 rx700_cur."!cursor_debug"("START ", "signature") + debug_672: $I10 = self.'from'() ne $I10, -1, rxscan703_done goto rxscan703_scan @@ -8898,8 +9622,8 @@ NQP::Compiler - NQP compiler add $I11, rx700_pos, 1 gt $I11, rx700_eos, rx700_fail sub $I11, rx700_pos, rx700_off - substr $S10, rx700_tgt, $I11, 1 - ne $S10, ",", rx700_fail + ord $I11, rx700_tgt, $I11 + ne $I11, 44, rx700_fail add rx700_pos, 1 goto rxquantr705_loop rxquantr705_done: @@ -8908,11 +9632,15 @@ NQP::Compiler - NQP compiler rxquantr704_done: # rx pass rx700_cur."!cursor_pass"(rx700_pos, "signature") + if_null rx700_debug, debug_673 rx700_cur."!cursor_debug"("PASS ", "signature", " at pos=", rx700_pos) + debug_673: .return (rx700_cur) rx700_restart: .annotate 'line', 4 + if_null rx700_debug, debug_674 rx700_cur."!cursor_debug"("NEXT ", "signature") + debug_674: rx700_fail: (rx700_rep, rx700_pos, $I10, $P10) = rx700_cur."!mark_fail"(0) lt rx700_pos, -1, rx700_done @@ -8920,14 +9648,16 @@ NQP::Compiler - NQP compiler jump $I10 rx700_done: rx700_cur."!cursor_fail"() + if_null rx700_debug, debug_675 rx700_cur."!cursor_debug"("FAIL ", "signature") + debug_675: .return (rx700_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__signature" :subid("171_1280467477.44751") :method +.sub "!PREFIX__signature" :subid("171_1282016529.10767") :method .annotate 'line', 4 new $P702, "ResizablePMCArray" push $P702, "" @@ -8936,7 +9666,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "parameter" :subid("172_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "parameter" :subid("172_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx707_tgt .local int rx707_pos @@ -8944,8 +9674,10 @@ NQP::Compiler - NQP compiler .local int rx707_eos .local int rx707_rep .local pmc rx707_cur + .local pmc rx707_debug (rx707_cur, rx707_pos, rx707_tgt, $I10) = self."!cursor_start"() - rx707_cur."!cursor_caparray"("typename", "default_value") + rx707_cur."!cursor_caparray"("default_value", "typename") + getattribute rx707_debug, rx707_cur, "$!debug" .lex unicode:"$\x{a2}", rx707_cur .local pmc match .lex "$/", match @@ -8957,7 +9689,9 @@ NQP::Compiler - NQP compiler substr rx707_tgt, rx707_tgt, rx707_off rx707_start: eq $I10, 1, rx707_restart + if_null rx707_debug, debug_676 rx707_cur."!cursor_debug"("START ", "parameter") + debug_676: $I10 = self.'from'() ne $I10, -1, rxscan710_done goto rxscan710_scan @@ -9005,8 +9739,8 @@ NQP::Compiler - NQP compiler add $I11, rx707_pos, 1 gt $I11, rx707_eos, rx707_fail sub $I11, rx707_pos, rx707_off - substr $S10, rx707_tgt, $I11, 1 - ne $S10, "*", rx707_fail + ord $I11, rx707_tgt, $I11 + ne $I11, 42, rx707_fail add rx707_pos, 1 set_addr $I10, rxcap_713_fail ($I12, $I11) = rx707_cur."!mark_peek"($I10) @@ -9059,8 +9793,8 @@ NQP::Compiler - NQP compiler add $I11, rx707_pos, 1 gt $I11, rx707_eos, rx707_fail sub $I11, rx707_pos, rx707_off - substr $S10, rx707_tgt, $I11, 1 - ne $S10, "?", rx707_fail + ord $I11, rx707_tgt, $I11 + ne $I11, 63, rx707_fail add rx707_pos, 1 goto alt715_end alt715_1: @@ -9070,8 +9804,8 @@ NQP::Compiler - NQP compiler add $I11, rx707_pos, 1 gt $I11, rx707_eos, rx707_fail sub $I11, rx707_pos, rx707_off - substr $S10, rx707_tgt, $I11, 1 - ne $S10, "!", rx707_fail + ord $I11, rx707_tgt, $I11 + ne $I11, 33, rx707_fail add rx707_pos, 1 goto alt715_end alt715_2: @@ -9112,11 +9846,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 325 # rx pass rx707_cur."!cursor_pass"(rx707_pos, "parameter") + if_null rx707_debug, debug_677 rx707_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx707_pos) + debug_677: .return (rx707_cur) rx707_restart: .annotate 'line', 4 + if_null rx707_debug, debug_678 rx707_cur."!cursor_debug"("NEXT ", "parameter") + debug_678: rx707_fail: (rx707_rep, rx707_pos, $I10, $P10) = rx707_cur."!mark_fail"(0) lt rx707_pos, -1, rx707_done @@ -9124,14 +9862,16 @@ NQP::Compiler - NQP compiler jump $I10 rx707_done: rx707_cur."!cursor_fail"() + if_null rx707_debug, debug_679 rx707_cur."!cursor_debug"("FAIL ", "parameter") + debug_679: .return (rx707_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__parameter" :subid("173_1280467477.44751") :method +.sub "!PREFIX__parameter" :subid("173_1282016529.10767") :method .annotate 'line', 4 new $P709, "ResizablePMCArray" push $P709, "" @@ -9140,7 +9880,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "param_var" :subid("174_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "param_var" :subid("174_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx720_tgt .local int rx720_pos @@ -9148,8 +9888,10 @@ NQP::Compiler - NQP compiler .local int rx720_eos .local int rx720_rep .local pmc rx720_cur + .local pmc rx720_debug (rx720_cur, rx720_pos, rx720_tgt, $I10) = self."!cursor_start"() rx720_cur."!cursor_caparray"("twigil") + getattribute rx720_debug, rx720_cur, "$!debug" .lex unicode:"$\x{a2}", rx720_cur .local pmc match .lex "$/", match @@ -9161,7 +9903,9 @@ NQP::Compiler - NQP compiler substr rx720_tgt, rx720_tgt, rx720_off rx720_start: eq $I10, 1, rx720_restart + if_null rx720_debug, debug_680 rx720_cur."!cursor_debug"("START ", "param_var") + debug_680: $I10 = self.'from'() ne $I10, -1, rxscan724_done goto rxscan724_scan @@ -9240,11 +9984,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 334 # rx pass rx720_cur."!cursor_pass"(rx720_pos, "param_var") + if_null rx720_debug, debug_681 rx720_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx720_pos) + debug_681: .return (rx720_cur) rx720_restart: .annotate 'line', 4 + if_null rx720_debug, debug_682 rx720_cur."!cursor_debug"("NEXT ", "param_var") + debug_682: rx720_fail: (rx720_rep, rx720_pos, $I10, $P10) = rx720_cur."!mark_fail"(0) lt rx720_pos, -1, rx720_done @@ -9252,14 +10000,16 @@ NQP::Compiler - NQP compiler jump $I10 rx720_done: rx720_cur."!cursor_fail"() + if_null rx720_debug, debug_683 rx720_cur."!cursor_debug"("FAIL ", "param_var") + debug_683: .return (rx720_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__param_var" :subid("175_1280467477.44751") :method +.sub "!PREFIX__param_var" :subid("175_1282016529.10767") :method .annotate 'line', 4 $P722 = self."!PREFIX__!subrule"("sigil", "") new $P723, "ResizablePMCArray" @@ -9269,7 +10019,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "named_param" :subid("176_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "named_param" :subid("176_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx730_tgt .local int rx730_pos @@ -9277,7 +10027,9 @@ NQP::Compiler - NQP compiler .local int rx730_eos .local int rx730_rep .local pmc rx730_cur + .local pmc rx730_debug (rx730_cur, rx730_pos, rx730_tgt, $I10) = self."!cursor_start"() + getattribute rx730_debug, rx730_cur, "$!debug" .lex unicode:"$\x{a2}", rx730_cur .local pmc match .lex "$/", match @@ -9289,7 +10041,9 @@ NQP::Compiler - NQP compiler substr rx730_tgt, rx730_tgt, rx730_off rx730_start: eq $I10, 1, rx730_restart + if_null rx730_debug, debug_684 rx730_cur."!cursor_debug"("START ", "named_param") + debug_684: $I10 = self.'from'() ne $I10, -1, rxscan734_done goto rxscan734_scan @@ -9307,8 +10061,8 @@ NQP::Compiler - NQP compiler add $I11, rx730_pos, 1 gt $I11, rx730_eos, rx730_fail sub $I11, rx730_pos, rx730_off - substr $S10, rx730_tgt, $I11, 1 - ne $S10, ":", rx730_fail + ord $I11, rx730_tgt, $I11 + ne $I11, 58, rx730_fail add rx730_pos, 1 # rx subrule "param_var" subtype=capture negate= rx730_cur."!cursor_pos"(rx730_pos) @@ -9320,11 +10074,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 339 # rx pass rx730_cur."!cursor_pass"(rx730_pos, "named_param") + if_null rx730_debug, debug_685 rx730_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx730_pos) + debug_685: .return (rx730_cur) rx730_restart: .annotate 'line', 4 + if_null rx730_debug, debug_686 rx730_cur."!cursor_debug"("NEXT ", "named_param") + debug_686: rx730_fail: (rx730_rep, rx730_pos, $I10, $P10) = rx730_cur."!mark_fail"(0) lt rx730_pos, -1, rx730_done @@ -9332,14 +10090,16 @@ NQP::Compiler - NQP compiler jump $I10 rx730_done: rx730_cur."!cursor_fail"() + if_null rx730_debug, debug_687 rx730_cur."!cursor_debug"("FAIL ", "named_param") + debug_687: .return (rx730_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__named_param" :subid("177_1280467477.44751") :method +.sub "!PREFIX__named_param" :subid("177_1282016529.10767") :method .annotate 'line', 4 $P732 = self."!PREFIX__!subrule"("param_var", ":") new $P733, "ResizablePMCArray" @@ -9349,7 +10109,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "default_value" :subid("178_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "default_value" :subid("178_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx736_tgt .local int rx736_pos @@ -9357,7 +10117,9 @@ NQP::Compiler - NQP compiler .local int rx736_eos .local int rx736_rep .local pmc rx736_cur + .local pmc rx736_debug (rx736_cur, rx736_pos, rx736_tgt, $I10) = self."!cursor_start"() + getattribute rx736_debug, rx736_cur, "$!debug" .lex unicode:"$\x{a2}", rx736_cur .local pmc match .lex "$/", match @@ -9369,7 +10131,9 @@ NQP::Compiler - NQP compiler substr rx736_tgt, rx736_tgt, rx736_off rx736_start: eq $I10, 1, rx736_restart + if_null rx736_debug, debug_688 rx736_cur."!cursor_debug"("START ", "default_value") + debug_688: $I10 = self.'from'() ne $I10, -1, rxscan740_done goto rxscan740_scan @@ -9392,8 +10156,8 @@ NQP::Compiler - NQP compiler add $I11, rx736_pos, 1 gt $I11, rx736_eos, rx736_fail sub $I11, rx736_pos, rx736_off - substr $S10, rx736_tgt, $I11, 1 - ne $S10, "=", rx736_fail + ord $I11, rx736_tgt, $I11 + ne $I11, 61, rx736_fail add rx736_pos, 1 # rx subrule "ws" subtype=method negate= rx736_cur."!cursor_pos"(rx736_pos) @@ -9414,11 +10178,15 @@ NQP::Compiler - NQP compiler rx736_pos = $P10."pos"() # rx pass rx736_cur."!cursor_pass"(rx736_pos, "default_value") + if_null rx736_debug, debug_689 rx736_cur."!cursor_debug"("PASS ", "default_value", " at pos=", rx736_pos) + debug_689: .return (rx736_cur) rx736_restart: .annotate 'line', 4 + if_null rx736_debug, debug_690 rx736_cur."!cursor_debug"("NEXT ", "default_value") + debug_690: rx736_fail: (rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0) lt rx736_pos, -1, rx736_done @@ -9426,14 +10194,16 @@ NQP::Compiler - NQP compiler jump $I10 rx736_done: rx736_cur."!cursor_fail"() + if_null rx736_debug, debug_691 rx736_cur."!cursor_debug"("FAIL ", "default_value") + debug_691: .return (rx736_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__default_value" :subid("179_1280467477.44751") :method +.sub "!PREFIX__default_value" :subid("179_1282016529.10767") :method .annotate 'line', 4 $P738 = self."!PREFIX__!subrule"("ws", "") new $P739, "ResizablePMCArray" @@ -9443,7 +10213,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "regex_declarator" :subid("180_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "regex_declarator" :subid("180_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx745_tgt .local int rx745_pos @@ -9451,8 +10221,10 @@ NQP::Compiler - NQP compiler .local int rx745_eos .local int rx745_rep .local pmc rx745_cur + .local pmc rx745_debug (rx745_cur, rx745_pos, rx745_tgt, $I10) = self."!cursor_start"() rx745_cur."!cursor_caparray"("signature") + getattribute rx745_debug, rx745_cur, "$!debug" .lex unicode:"$\x{a2}", rx745_cur .local pmc match .lex "$/", match @@ -9464,7 +10236,9 @@ NQP::Compiler - NQP compiler substr rx745_tgt, rx745_tgt, rx745_off rx745_start: eq $I10, 1, rx745_restart + if_null rx745_debug, debug_692 rx745_cur."!cursor_debug"("START ", "regex_declarator") + debug_692: $I10 = self.'from'() ne $I10, -1, rxscan749_done goto rxscan749_scan @@ -9582,8 +10356,8 @@ NQP::Compiler - NQP compiler add $I11, rx745_pos, 1 gt $I11, rx745_eos, rx745_fail sub $I11, rx745_pos, rx745_off - substr $S10, rx745_tgt, $I11, 1 - ne $S10, "{", rx745_fail + ord $I11, rx745_tgt, $I11 + ne $I11, 123, rx745_fail add rx745_pos, 1 # rx subrule "ws" subtype=method negate= rx745_cur."!cursor_pos"(rx745_pos) @@ -9606,8 +10380,8 @@ NQP::Compiler - NQP compiler add $I11, rx745_pos, 1 gt $I11, rx745_eos, rx745_fail sub $I11, rx745_pos, rx745_off - substr $S10, rx745_tgt, $I11, 1 - ne $S10, "}", rx745_fail + ord $I11, rx745_tgt, $I11 + ne $I11, 125, rx745_fail add rx745_pos, 1 # rx subrule "ENDSTMT" subtype=zerowidth negate= rx745_cur."!cursor_pos"(rx745_pos) @@ -9740,8 +10514,8 @@ NQP::Compiler - NQP compiler add $I11, rx745_pos, 1 gt $I11, rx745_eos, rx745_fail sub $I11, rx745_pos, rx745_off - substr $S10, rx745_tgt, $I11, 1 - ne $S10, "(", rx745_fail + ord $I11, rx745_tgt, $I11 + ne $I11, 40, rx745_fail add rx745_pos, 1 # rx subrule "ws" subtype=method negate= rx745_cur."!cursor_pos"(rx745_pos) @@ -9764,8 +10538,8 @@ NQP::Compiler - NQP compiler add $I11, rx745_pos, 1 gt $I11, rx745_eos, rx745_fail sub $I11, rx745_pos, rx745_off - substr $S10, rx745_tgt, $I11, 1 - ne $S10, ")", rx745_fail + ord $I11, rx745_tgt, $I11 + ne $I11, 41, rx745_fail add rx745_pos, 1 # rx subrule "ws" subtype=method negate= rx745_cur."!cursor_pos"(rx745_pos) @@ -9794,8 +10568,8 @@ NQP::Compiler - NQP compiler add $I11, rx745_pos, 1 gt $I11, rx745_eos, rx745_fail sub $I11, rx745_pos, rx745_off - substr $S10, rx745_tgt, $I11, 1 - ne $S10, "{", rx745_fail + ord $I11, rx745_tgt, $I11 + ne $I11, 123, rx745_fail add rx745_pos, 1 # rx subrule "LANG" subtype=capture negate= rx745_cur."!cursor_pos"(rx745_pos) @@ -9808,8 +10582,8 @@ NQP::Compiler - NQP compiler add $I11, rx745_pos, 1 gt $I11, rx745_eos, rx745_fail sub $I11, rx745_pos, rx745_off - substr $S10, rx745_tgt, $I11, 1 - ne $S10, "}", rx745_fail + ord $I11, rx745_tgt, $I11 + ne $I11, 125, rx745_fail add rx745_pos, 1 # rx subrule "ENDSTMT" subtype=zerowidth negate= rx745_cur."!cursor_pos"(rx745_pos) @@ -9830,11 +10604,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 345 # rx pass rx745_cur."!cursor_pass"(rx745_pos, "regex_declarator") + if_null rx745_debug, debug_693 rx745_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx745_pos) + debug_693: .return (rx745_cur) rx745_restart: .annotate 'line', 4 + if_null rx745_debug, debug_694 rx745_cur."!cursor_debug"("NEXT ", "regex_declarator") + debug_694: rx745_fail: (rx745_rep, rx745_pos, $I10, $P10) = rx745_cur."!mark_fail"(0) lt rx745_pos, -1, rx745_done @@ -9842,14 +10620,16 @@ NQP::Compiler - NQP compiler jump $I10 rx745_done: rx745_cur."!cursor_fail"() + if_null rx745_debug, debug_695 rx745_cur."!cursor_debug"("FAIL ", "regex_declarator") + debug_695: .return (rx745_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__regex_declarator" :subid("181_1280467477.44751") :method +.sub "!PREFIX__regex_declarator" :subid("181_1282016529.10767") :method .annotate 'line', 4 $P747 = self."!PREFIX__!subrule"("ws", "") new $P748, "ResizablePMCArray" @@ -9859,7 +10639,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "dotty" :subid("182_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "dotty" :subid("182_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx782_tgt .local int rx782_pos @@ -9867,8 +10647,10 @@ NQP::Compiler - NQP compiler .local int rx782_eos .local int rx782_rep .local pmc rx782_cur + .local pmc rx782_debug (rx782_cur, rx782_pos, rx782_tgt, $I10) = self."!cursor_start"() rx782_cur."!cursor_caparray"("args") + getattribute rx782_debug, rx782_cur, "$!debug" .lex unicode:"$\x{a2}", rx782_cur .local pmc match .lex "$/", match @@ -9880,7 +10662,9 @@ NQP::Compiler - NQP compiler substr rx782_tgt, rx782_tgt, rx782_off rx782_start: eq $I10, 1, rx782_restart + if_null rx782_debug, debug_696 rx782_cur."!cursor_debug"("START ", "dotty") + debug_696: $I10 = self.'from'() ne $I10, -1, rxscan786_done goto rxscan786_scan @@ -9898,8 +10682,8 @@ NQP::Compiler - NQP compiler add $I11, rx782_pos, 1 gt $I11, rx782_eos, rx782_fail sub $I11, rx782_pos, rx782_off - substr $S10, rx782_tgt, $I11, 1 - ne $S10, ".", rx782_fail + ord $I11, rx782_tgt, $I11 + ne $I11, 46, rx782_fail add rx782_pos, 1 alt787_0: .annotate 'line', 364 @@ -9977,8 +10761,8 @@ NQP::Compiler - NQP compiler add $I11, rx782_pos, 1 gt $I11, rx782_eos, rx782_fail sub $I11, rx782_pos, rx782_off - substr $S10, rx782_tgt, $I11, 1 - ne $S10, ":", rx782_fail + ord $I11, rx782_tgt, $I11 + ne $I11, 58, rx782_fail add rx782_pos, 1 # rx charclass s ge rx782_pos, rx782_eos, rx782_fail @@ -10001,11 +10785,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 362 # rx pass rx782_cur."!cursor_pass"(rx782_pos, "dotty") + if_null rx782_debug, debug_697 rx782_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx782_pos) + debug_697: .return (rx782_cur) rx782_restart: .annotate 'line', 4 + if_null rx782_debug, debug_698 rx782_cur."!cursor_debug"("NEXT ", "dotty") + debug_698: rx782_fail: (rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0) lt rx782_pos, -1, rx782_done @@ -10013,14 +10801,16 @@ NQP::Compiler - NQP compiler jump $I10 rx782_done: rx782_cur."!cursor_fail"() + if_null rx782_debug, debug_699 rx782_cur."!cursor_debug"("FAIL ", "dotty") + debug_699: .return (rx782_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__dotty" :subid("183_1280467477.44751") :method +.sub "!PREFIX__dotty" :subid("183_1282016529.10767") :method .annotate 'line', 4 $P784 = self."!PREFIX__!subrule"("deflongname", ".") new $P785, "ResizablePMCArray" @@ -10032,7 +10822,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term" :subid("184_1280467477.44751") :method +.sub "term" :subid("184_1282016529.10767") :method .annotate 'line', 376 $P792 = self."!protoregex"("term") .return ($P792) @@ -10040,7 +10830,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term" :subid("185_1280467477.44751") :method +.sub "!PREFIX__term" :subid("185_1282016529.10767") :method .annotate 'line', 376 $P794 = self."!PREFIX__!protoregex"("term") .return ($P794) @@ -10048,7 +10838,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("186_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("186_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx796_tgt .local int rx796_pos @@ -10056,7 +10846,9 @@ NQP::Compiler - NQP compiler .local int rx796_eos .local int rx796_rep .local pmc rx796_cur + .local pmc rx796_debug (rx796_cur, rx796_pos, rx796_tgt, $I10) = self."!cursor_start"() + getattribute rx796_debug, rx796_cur, "$!debug" .lex unicode:"$\x{a2}", rx796_cur .local pmc match .lex "$/", match @@ -10068,7 +10860,9 @@ NQP::Compiler - NQP compiler substr rx796_tgt, rx796_tgt, rx796_off rx796_start: eq $I10, 1, rx796_restart + if_null rx796_debug, debug_700 rx796_cur."!cursor_debug"("START ", "term:sym") + debug_700: $I10 = self.'from'() ne $I10, -1, rxscan799_done goto rxscan799_scan @@ -10113,11 +10907,15 @@ NQP::Compiler - NQP compiler unless $I11, rx796_fail # rx pass rx796_cur."!cursor_pass"(rx796_pos, "term:sym") + if_null rx796_debug, debug_701 rx796_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx796_pos) + debug_701: .return (rx796_cur) rx796_restart: .annotate 'line', 4 + if_null rx796_debug, debug_702 rx796_cur."!cursor_debug"("NEXT ", "term:sym") + debug_702: rx796_fail: (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0) lt rx796_pos, -1, rx796_done @@ -10125,14 +10923,16 @@ NQP::Compiler - NQP compiler jump $I10 rx796_done: rx796_cur."!cursor_fail"() + if_null rx796_debug, debug_703 rx796_cur."!cursor_debug"("FAIL ", "term:sym") + debug_703: .return (rx796_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("187_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("187_1282016529.10767") :method .annotate 'line', 4 new $P798, "ResizablePMCArray" push $P798, "self" @@ -10141,7 +10941,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("188_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("188_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx802_tgt .local int rx802_pos @@ -10149,7 +10949,9 @@ NQP::Compiler - NQP compiler .local int rx802_eos .local int rx802_rep .local pmc rx802_cur + .local pmc rx802_debug (rx802_cur, rx802_pos, rx802_tgt, $I10) = self."!cursor_start"() + getattribute rx802_debug, rx802_cur, "$!debug" .lex unicode:"$\x{a2}", rx802_cur .local pmc match .lex "$/", match @@ -10161,7 +10963,9 @@ NQP::Compiler - NQP compiler substr rx802_tgt, rx802_tgt, rx802_off rx802_start: eq $I10, 1, rx802_restart + if_null rx802_debug, debug_704 rx802_cur."!cursor_debug"("START ", "term:sym") + debug_704: $I10 = self.'from'() ne $I10, -1, rxscan806_done goto rxscan806_scan @@ -10198,11 +11002,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 380 # rx pass rx802_cur."!cursor_pass"(rx802_pos, "term:sym") + if_null rx802_debug, debug_705 rx802_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx802_pos) + debug_705: .return (rx802_cur) rx802_restart: .annotate 'line', 4 + if_null rx802_debug, debug_706 rx802_cur."!cursor_debug"("NEXT ", "term:sym") + debug_706: rx802_fail: (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0) lt rx802_pos, -1, rx802_done @@ -10210,14 +11018,16 @@ NQP::Compiler - NQP compiler jump $I10 rx802_done: rx802_cur."!cursor_fail"() + if_null rx802_debug, debug_707 rx802_cur."!cursor_debug"("FAIL ", "term:sym") + debug_707: .return (rx802_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("189_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("189_1282016529.10767") :method .annotate 'line', 4 $P804 = self."!PREFIX__!subrule"("deflongname", "") new $P805, "ResizablePMCArray" @@ -10227,7 +11037,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("190_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("190_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx808_tgt .local int rx808_pos @@ -10235,8 +11045,10 @@ NQP::Compiler - NQP compiler .local int rx808_eos .local int rx808_rep .local pmc rx808_cur + .local pmc rx808_debug (rx808_cur, rx808_pos, rx808_tgt, $I10) = self."!cursor_start"() rx808_cur."!cursor_caparray"("args") + getattribute rx808_debug, rx808_cur, "$!debug" .lex unicode:"$\x{a2}", rx808_cur .local pmc match .lex "$/", match @@ -10248,7 +11060,9 @@ NQP::Compiler - NQP compiler substr rx808_tgt, rx808_tgt, rx808_off rx808_start: eq $I10, 1, rx808_restart + if_null rx808_debug, debug_708 rx808_cur."!cursor_debug"("START ", "term:sym") + debug_708: $I10 = self.'from'() ne $I10, -1, rxscan812_done goto rxscan812_scan @@ -10292,11 +11106,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 384 # rx pass rx808_cur."!cursor_pass"(rx808_pos, "term:sym") + if_null rx808_debug, debug_709 rx808_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx808_pos) + debug_709: .return (rx808_cur) rx808_restart: .annotate 'line', 4 + if_null rx808_debug, debug_710 rx808_cur."!cursor_debug"("NEXT ", "term:sym") + debug_710: rx808_fail: (rx808_rep, rx808_pos, $I10, $P10) = rx808_cur."!mark_fail"(0) lt rx808_pos, -1, rx808_done @@ -10304,14 +11122,16 @@ NQP::Compiler - NQP compiler jump $I10 rx808_done: rx808_cur."!cursor_fail"() + if_null rx808_debug, debug_711 rx808_cur."!cursor_debug"("FAIL ", "term:sym") + debug_711: .return (rx808_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("191_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("191_1282016529.10767") :method .annotate 'line', 4 $P810 = self."!PREFIX__!subrule"("name", "") new $P811, "ResizablePMCArray" @@ -10321,7 +11141,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("192_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("192_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx816_tgt .local int rx816_pos @@ -10329,8 +11149,10 @@ NQP::Compiler - NQP compiler .local int rx816_eos .local int rx816_rep .local pmc rx816_cur + .local pmc rx816_debug (rx816_cur, rx816_pos, rx816_tgt, $I10) = self."!cursor_start"() rx816_cur."!cursor_caparray"("args") + getattribute rx816_debug, rx816_cur, "$!debug" .lex unicode:"$\x{a2}", rx816_cur .local pmc match .lex "$/", match @@ -10342,7 +11164,9 @@ NQP::Compiler - NQP compiler substr rx816_tgt, rx816_tgt, rx816_off rx816_start: eq $I10, 1, rx816_restart + if_null rx816_debug, debug_712 rx816_cur."!cursor_debug"("START ", "term:sym") + debug_712: $I10 = self.'from'() ne $I10, -1, rxscan819_done goto rxscan819_scan @@ -10406,11 +11230,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 388 # rx pass rx816_cur."!cursor_pass"(rx816_pos, "term:sym") + if_null rx816_debug, debug_713 rx816_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx816_pos) + debug_713: .return (rx816_cur) rx816_restart: .annotate 'line', 4 + if_null rx816_debug, debug_714 rx816_cur."!cursor_debug"("NEXT ", "term:sym") + debug_714: rx816_fail: (rx816_rep, rx816_pos, $I10, $P10) = rx816_cur."!mark_fail"(0) lt rx816_pos, -1, rx816_done @@ -10418,14 +11246,16 @@ NQP::Compiler - NQP compiler jump $I10 rx816_done: rx816_cur."!cursor_fail"() + if_null rx816_debug, debug_715 rx816_cur."!cursor_debug"("FAIL ", "term:sym") + debug_715: .return (rx816_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("193_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("193_1282016529.10767") :method .annotate 'line', 4 new $P818, "ResizablePMCArray" push $P818, "pir::" @@ -10434,7 +11264,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "args" :subid("194_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "args" :subid("194_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx824_tgt .local int rx824_pos @@ -10442,7 +11272,9 @@ NQP::Compiler - NQP compiler .local int rx824_eos .local int rx824_rep .local pmc rx824_cur + .local pmc rx824_debug (rx824_cur, rx824_pos, rx824_tgt, $I10) = self."!cursor_start"() + getattribute rx824_debug, rx824_cur, "$!debug" .lex unicode:"$\x{a2}", rx824_cur .local pmc match .lex "$/", match @@ -10454,7 +11286,9 @@ NQP::Compiler - NQP compiler substr rx824_tgt, rx824_tgt, rx824_off rx824_start: eq $I10, 1, rx824_restart + if_null rx824_debug, debug_716 rx824_cur."!cursor_debug"("START ", "args") + debug_716: $I10 = self.'from'() ne $I10, -1, rxscan828_done goto rxscan828_scan @@ -10472,8 +11306,8 @@ NQP::Compiler - NQP compiler add $I11, rx824_pos, 1 gt $I11, rx824_eos, rx824_fail sub $I11, rx824_pos, rx824_off - substr $S10, rx824_tgt, $I11, 1 - ne $S10, "(", rx824_fail + ord $I11, rx824_tgt, $I11 + ne $I11, 40, rx824_fail add rx824_pos, 1 # rx subrule "arglist" subtype=capture negate= rx824_cur."!cursor_pos"(rx824_pos) @@ -10486,16 +11320,20 @@ NQP::Compiler - NQP compiler add $I11, rx824_pos, 1 gt $I11, rx824_eos, rx824_fail sub $I11, rx824_pos, rx824_off - substr $S10, rx824_tgt, $I11, 1 - ne $S10, ")", rx824_fail + ord $I11, rx824_tgt, $I11 + ne $I11, 41, rx824_fail add rx824_pos, 1 # rx pass rx824_cur."!cursor_pass"(rx824_pos, "args") + if_null rx824_debug, debug_717 rx824_cur."!cursor_debug"("PASS ", "args", " at pos=", rx824_pos) + debug_717: .return (rx824_cur) rx824_restart: .annotate 'line', 4 + if_null rx824_debug, debug_718 rx824_cur."!cursor_debug"("NEXT ", "args") + debug_718: rx824_fail: (rx824_rep, rx824_pos, $I10, $P10) = rx824_cur."!mark_fail"(0) lt rx824_pos, -1, rx824_done @@ -10503,14 +11341,16 @@ NQP::Compiler - NQP compiler jump $I10 rx824_done: rx824_cur."!cursor_fail"() + if_null rx824_debug, debug_719 rx824_cur."!cursor_debug"("FAIL ", "args") + debug_719: .return (rx824_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__args" :subid("195_1280467477.44751") :method +.sub "!PREFIX__args" :subid("195_1282016529.10767") :method .annotate 'line', 4 $P826 = self."!PREFIX__!subrule"("arglist", "(") new $P827, "ResizablePMCArray" @@ -10520,7 +11360,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "arglist" :subid("196_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "arglist" :subid("196_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx830_tgt .local int rx830_pos @@ -10528,7 +11368,9 @@ NQP::Compiler - NQP compiler .local int rx830_eos .local int rx830_rep .local pmc rx830_cur + .local pmc rx830_debug (rx830_cur, rx830_pos, rx830_tgt, $I10) = self."!cursor_start"() + getattribute rx830_debug, rx830_cur, "$!debug" .lex unicode:"$\x{a2}", rx830_cur .local pmc match .lex "$/", match @@ -10540,7 +11382,9 @@ NQP::Compiler - NQP compiler substr rx830_tgt, rx830_tgt, rx830_off rx830_start: eq $I10, 1, rx830_restart + if_null rx830_debug, debug_720 rx830_cur."!cursor_debug"("START ", "arglist") + debug_720: $I10 = self.'from'() ne $I10, -1, rxscan834_done goto rxscan834_scan @@ -10577,11 +11421,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 396 # rx pass rx830_cur."!cursor_pass"(rx830_pos, "arglist") + if_null rx830_debug, debug_721 rx830_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx830_pos) + debug_721: .return (rx830_cur) rx830_restart: .annotate 'line', 4 + if_null rx830_debug, debug_722 rx830_cur."!cursor_debug"("NEXT ", "arglist") + debug_722: rx830_fail: (rx830_rep, rx830_pos, $I10, $P10) = rx830_cur."!mark_fail"(0) lt rx830_pos, -1, rx830_done @@ -10589,14 +11437,16 @@ NQP::Compiler - NQP compiler jump $I10 rx830_done: rx830_cur."!cursor_fail"() + if_null rx830_debug, debug_723 rx830_cur."!cursor_debug"("FAIL ", "arglist") + debug_723: .return (rx830_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__arglist" :subid("197_1280467477.44751") :method +.sub "!PREFIX__arglist" :subid("197_1282016529.10767") :method .annotate 'line', 4 $P832 = self."!PREFIX__!subrule"("ws", "") new $P833, "ResizablePMCArray" @@ -10606,7 +11456,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("198_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("198_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx837_tgt .local int rx837_pos @@ -10614,7 +11464,9 @@ NQP::Compiler - NQP compiler .local int rx837_eos .local int rx837_rep .local pmc rx837_cur + .local pmc rx837_debug (rx837_cur, rx837_pos, rx837_tgt, $I10) = self."!cursor_start"() + getattribute rx837_debug, rx837_cur, "$!debug" .lex unicode:"$\x{a2}", rx837_cur .local pmc match .lex "$/", match @@ -10626,7 +11478,9 @@ NQP::Compiler - NQP compiler substr rx837_tgt, rx837_tgt, rx837_off rx837_start: eq $I10, 1, rx837_restart + if_null rx837_debug, debug_724 rx837_cur."!cursor_debug"("START ", "term:sym") + debug_724: $I10 = self.'from'() ne $I10, -1, rxscan841_done goto rxscan841_scan @@ -10649,11 +11503,15 @@ NQP::Compiler - NQP compiler rx837_pos = $P10."pos"() # rx pass rx837_cur."!cursor_pass"(rx837_pos, "term:sym") + if_null rx837_debug, debug_725 rx837_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx837_pos) + debug_725: .return (rx837_cur) rx837_restart: .annotate 'line', 4 + if_null rx837_debug, debug_726 rx837_cur."!cursor_debug"("NEXT ", "term:sym") + debug_726: rx837_fail: (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0) lt rx837_pos, -1, rx837_done @@ -10661,14 +11519,16 @@ NQP::Compiler - NQP compiler jump $I10 rx837_done: rx837_cur."!cursor_fail"() + if_null rx837_debug, debug_727 rx837_cur."!cursor_debug"("FAIL ", "term:sym") + debug_727: .return (rx837_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("199_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("199_1282016529.10767") :method .annotate 'line', 4 $P839 = self."!PREFIX__!subrule"("value", "") new $P840, "ResizablePMCArray" @@ -10678,7 +11538,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "value" :subid("200_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "value" :subid("200_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx843_tgt .local int rx843_pos @@ -10686,7 +11546,9 @@ NQP::Compiler - NQP compiler .local int rx843_eos .local int rx843_rep .local pmc rx843_cur + .local pmc rx843_debug (rx843_cur, rx843_pos, rx843_tgt, $I10) = self."!cursor_start"() + getattribute rx843_debug, rx843_cur, "$!debug" .lex unicode:"$\x{a2}", rx843_cur .local pmc match .lex "$/", match @@ -10698,7 +11560,9 @@ NQP::Compiler - NQP compiler substr rx843_tgt, rx843_tgt, rx843_off rx843_start: eq $I10, 1, rx843_restart + if_null rx843_debug, debug_728 rx843_cur."!cursor_debug"("START ", "value") + debug_728: $I10 = self.'from'() ne $I10, -1, rxscan848_done goto rxscan848_scan @@ -10737,11 +11601,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 407 # rx pass rx843_cur."!cursor_pass"(rx843_pos, "value") + if_null rx843_debug, debug_729 rx843_cur."!cursor_debug"("PASS ", "value", " at pos=", rx843_pos) + debug_729: .return (rx843_cur) rx843_restart: .annotate 'line', 4 + if_null rx843_debug, debug_730 rx843_cur."!cursor_debug"("NEXT ", "value") + debug_730: rx843_fail: (rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0) lt rx843_pos, -1, rx843_done @@ -10749,14 +11617,16 @@ NQP::Compiler - NQP compiler jump $I10 rx843_done: rx843_cur."!cursor_fail"() + if_null rx843_debug, debug_731 rx843_cur."!cursor_debug"("FAIL ", "value") + debug_731: .return (rx843_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__value" :subid("201_1280467477.44751") :method +.sub "!PREFIX__value" :subid("201_1282016529.10767") :method .annotate 'line', 4 $P845 = self."!PREFIX__!subrule"("number", "") $P846 = self."!PREFIX__!subrule"("quote", "") @@ -10768,7 +11638,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "number" :subid("202_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "number" :subid("202_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx851_tgt .local int rx851_pos @@ -10776,7 +11646,9 @@ NQP::Compiler - NQP compiler .local int rx851_eos .local int rx851_rep .local pmc rx851_cur + .local pmc rx851_debug (rx851_cur, rx851_pos, rx851_tgt, $I10) = self."!cursor_start"() + getattribute rx851_debug, rx851_cur, "$!debug" .lex unicode:"$\x{a2}", rx851_cur .local pmc match .lex "$/", match @@ -10788,7 +11660,9 @@ NQP::Compiler - NQP compiler substr rx851_tgt, rx851_tgt, rx851_off rx851_start: eq $I10, 1, rx851_restart + if_null rx851_debug, debug_732 rx851_cur."!cursor_debug"("START ", "number") + debug_732: $I10 = self.'from'() ne $I10, -1, rxscan854_done goto rxscan854_scan @@ -10854,11 +11728,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 412 # rx pass rx851_cur."!cursor_pass"(rx851_pos, "number") + if_null rx851_debug, debug_733 rx851_cur."!cursor_debug"("PASS ", "number", " at pos=", rx851_pos) + debug_733: .return (rx851_cur) rx851_restart: .annotate 'line', 4 + if_null rx851_debug, debug_734 rx851_cur."!cursor_debug"("NEXT ", "number") + debug_734: rx851_fail: (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0) lt rx851_pos, -1, rx851_done @@ -10866,14 +11744,16 @@ NQP::Compiler - NQP compiler jump $I10 rx851_done: rx851_cur."!cursor_fail"() + if_null rx851_debug, debug_735 rx851_cur."!cursor_debug"("FAIL ", "number") + debug_735: .return (rx851_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__number" :subid("203_1280467477.44751") :method +.sub "!PREFIX__number" :subid("203_1282016529.10767") :method .annotate 'line', 4 new $P853, "ResizablePMCArray" push $P853, "" @@ -10882,7 +11762,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote" :subid("204_1280467477.44751") :method +.sub "quote" :subid("204_1282016529.10767") :method .annotate 'line', 417 $P859 = self."!protoregex"("quote") .return ($P859) @@ -10890,7 +11770,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote" :subid("205_1280467477.44751") :method +.sub "!PREFIX__quote" :subid("205_1282016529.10767") :method .annotate 'line', 417 $P861 = self."!PREFIX__!protoregex"("quote") .return ($P861) @@ -10898,7 +11778,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("206_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote:sym" :subid("206_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx863_tgt .local int rx863_pos @@ -10906,7 +11786,9 @@ NQP::Compiler - NQP compiler .local int rx863_eos .local int rx863_rep .local pmc rx863_cur + .local pmc rx863_debug (rx863_cur, rx863_pos, rx863_tgt, $I10) = self."!cursor_start"() + getattribute rx863_debug, rx863_cur, "$!debug" .lex unicode:"$\x{a2}", rx863_cur .local pmc match .lex "$/", match @@ -10918,7 +11800,9 @@ NQP::Compiler - NQP compiler substr rx863_tgt, rx863_tgt, rx863_off rx863_start: eq $I10, 1, rx863_restart + if_null rx863_debug, debug_736 rx863_cur."!cursor_debug"("START ", "quote:sym") + debug_736: $I10 = self.'from'() ne $I10, -1, rxscan866_done goto rxscan866_scan @@ -10947,11 +11831,15 @@ NQP::Compiler - NQP compiler rx863_pos = $P10."pos"() # rx pass rx863_cur."!cursor_pass"(rx863_pos, "quote:sym") + if_null rx863_debug, debug_737 rx863_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx863_pos) + debug_737: .return (rx863_cur) rx863_restart: .annotate 'line', 4 + if_null rx863_debug, debug_738 rx863_cur."!cursor_debug"("NEXT ", "quote:sym") + debug_738: rx863_fail: (rx863_rep, rx863_pos, $I10, $P10) = rx863_cur."!mark_fail"(0) lt rx863_pos, -1, rx863_done @@ -10959,14 +11847,16 @@ NQP::Compiler - NQP compiler jump $I10 rx863_done: rx863_cur."!cursor_fail"() + if_null rx863_debug, debug_739 rx863_cur."!cursor_debug"("FAIL ", "quote:sym") + debug_739: .return (rx863_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("207_1280467477.44751") :method +.sub "!PREFIX__quote:sym" :subid("207_1282016529.10767") :method .annotate 'line', 4 new $P865, "ResizablePMCArray" push $P865, "'" @@ -10975,7 +11865,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("208_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote:sym" :subid("208_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx868_tgt .local int rx868_pos @@ -10983,7 +11873,9 @@ NQP::Compiler - NQP compiler .local int rx868_eos .local int rx868_rep .local pmc rx868_cur + .local pmc rx868_debug (rx868_cur, rx868_pos, rx868_tgt, $I10) = self."!cursor_start"() + getattribute rx868_debug, rx868_cur, "$!debug" .lex unicode:"$\x{a2}", rx868_cur .local pmc match .lex "$/", match @@ -10995,7 +11887,9 @@ NQP::Compiler - NQP compiler substr rx868_tgt, rx868_tgt, rx868_off rx868_start: eq $I10, 1, rx868_restart + if_null rx868_debug, debug_740 rx868_cur."!cursor_debug"("START ", "quote:sym") + debug_740: $I10 = self.'from'() ne $I10, -1, rxscan871_done goto rxscan871_scan @@ -11024,11 +11918,15 @@ NQP::Compiler - NQP compiler rx868_pos = $P10."pos"() # rx pass rx868_cur."!cursor_pass"(rx868_pos, "quote:sym") + if_null rx868_debug, debug_741 rx868_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx868_pos) + debug_741: .return (rx868_cur) rx868_restart: .annotate 'line', 4 + if_null rx868_debug, debug_742 rx868_cur."!cursor_debug"("NEXT ", "quote:sym") + debug_742: rx868_fail: (rx868_rep, rx868_pos, $I10, $P10) = rx868_cur."!mark_fail"(0) lt rx868_pos, -1, rx868_done @@ -11036,14 +11934,16 @@ NQP::Compiler - NQP compiler jump $I10 rx868_done: rx868_cur."!cursor_fail"() + if_null rx868_debug, debug_743 rx868_cur."!cursor_debug"("FAIL ", "quote:sym") + debug_743: .return (rx868_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("209_1280467477.44751") :method +.sub "!PREFIX__quote:sym" :subid("209_1282016529.10767") :method .annotate 'line', 4 new $P870, "ResizablePMCArray" push $P870, "\"" @@ -11052,7 +11952,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("210_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote:sym" :subid("210_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx873_tgt .local int rx873_pos @@ -11060,7 +11960,9 @@ NQP::Compiler - NQP compiler .local int rx873_eos .local int rx873_rep .local pmc rx873_cur + .local pmc rx873_debug (rx873_cur, rx873_pos, rx873_tgt, $I10) = self."!cursor_start"() + getattribute rx873_debug, rx873_cur, "$!debug" .lex unicode:"$\x{a2}", rx873_cur .local pmc match .lex "$/", match @@ -11072,7 +11974,9 @@ NQP::Compiler - NQP compiler substr rx873_tgt, rx873_tgt, rx873_off rx873_start: eq $I10, 1, rx873_restart + if_null rx873_debug, debug_744 rx873_cur."!cursor_debug"("START ", "quote:sym") + debug_744: $I10 = self.'from'() ne $I10, -1, rxscan877_done goto rxscan877_scan @@ -11090,8 +11994,8 @@ NQP::Compiler - NQP compiler add $I11, rx873_pos, 1 gt $I11, rx873_eos, rx873_fail sub $I11, rx873_pos, rx873_off - substr $S10, rx873_tgt, $I11, 1 - ne $S10, "q", rx873_fail + ord $I11, rx873_tgt, $I11 + ne $I11, 113, rx873_fail add rx873_pos, 1 # rxanchor rwb le rx873_pos, 0, rx873_fail @@ -11121,11 +12025,15 @@ NQP::Compiler - NQP compiler rx873_pos = $P10."pos"() # rx pass rx873_cur."!cursor_pass"(rx873_pos, "quote:sym") + if_null rx873_debug, debug_745 rx873_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx873_pos) + debug_745: .return (rx873_cur) rx873_restart: .annotate 'line', 4 + if_null rx873_debug, debug_746 rx873_cur."!cursor_debug"("NEXT ", "quote:sym") + debug_746: rx873_fail: (rx873_rep, rx873_pos, $I10, $P10) = rx873_cur."!mark_fail"(0) lt rx873_pos, -1, rx873_done @@ -11133,14 +12041,16 @@ NQP::Compiler - NQP compiler jump $I10 rx873_done: rx873_cur."!cursor_fail"() + if_null rx873_debug, debug_747 rx873_cur."!cursor_debug"("FAIL ", "quote:sym") + debug_747: .return (rx873_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("211_1280467477.44751") :method +.sub "!PREFIX__quote:sym" :subid("211_1282016529.10767") :method .annotate 'line', 4 $P875 = self."!PREFIX__!subrule"("ws", "q") new $P876, "ResizablePMCArray" @@ -11150,7 +12060,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("212_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote:sym" :subid("212_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx879_tgt .local int rx879_pos @@ -11158,7 +12068,9 @@ NQP::Compiler - NQP compiler .local int rx879_eos .local int rx879_rep .local pmc rx879_cur + .local pmc rx879_debug (rx879_cur, rx879_pos, rx879_tgt, $I10) = self."!cursor_start"() + getattribute rx879_debug, rx879_cur, "$!debug" .lex unicode:"$\x{a2}", rx879_cur .local pmc match .lex "$/", match @@ -11170,7 +12082,9 @@ NQP::Compiler - NQP compiler substr rx879_tgt, rx879_tgt, rx879_off rx879_start: eq $I10, 1, rx879_restart + if_null rx879_debug, debug_748 rx879_cur."!cursor_debug"("START ", "quote:sym") + debug_748: $I10 = self.'from'() ne $I10, -1, rxscan883_done goto rxscan883_scan @@ -11219,11 +12133,15 @@ NQP::Compiler - NQP compiler rx879_pos = $P10."pos"() # rx pass rx879_cur."!cursor_pass"(rx879_pos, "quote:sym") + if_null rx879_debug, debug_749 rx879_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx879_pos) + debug_749: .return (rx879_cur) rx879_restart: .annotate 'line', 4 + if_null rx879_debug, debug_750 rx879_cur."!cursor_debug"("NEXT ", "quote:sym") + debug_750: rx879_fail: (rx879_rep, rx879_pos, $I10, $P10) = rx879_cur."!mark_fail"(0) lt rx879_pos, -1, rx879_done @@ -11231,14 +12149,16 @@ NQP::Compiler - NQP compiler jump $I10 rx879_done: rx879_cur."!cursor_fail"() + if_null rx879_debug, debug_751 rx879_cur."!cursor_debug"("FAIL ", "quote:sym") + debug_751: .return (rx879_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("213_1280467477.44751") :method +.sub "!PREFIX__quote:sym" :subid("213_1282016529.10767") :method .annotate 'line', 4 $P881 = self."!PREFIX__!subrule"("ws", "qq") new $P882, "ResizablePMCArray" @@ -11248,7 +12168,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("214_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote:sym" :subid("214_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx885_tgt .local int rx885_pos @@ -11256,7 +12176,9 @@ NQP::Compiler - NQP compiler .local int rx885_eos .local int rx885_rep .local pmc rx885_cur + .local pmc rx885_debug (rx885_cur, rx885_pos, rx885_tgt, $I10) = self."!cursor_start"() + getattribute rx885_debug, rx885_cur, "$!debug" .lex unicode:"$\x{a2}", rx885_cur .local pmc match .lex "$/", match @@ -11268,7 +12190,9 @@ NQP::Compiler - NQP compiler substr rx885_tgt, rx885_tgt, rx885_off rx885_start: eq $I10, 1, rx885_restart + if_null rx885_debug, debug_752 rx885_cur."!cursor_debug"("START ", "quote:sym") + debug_752: $I10 = self.'from'() ne $I10, -1, rxscan889_done goto rxscan889_scan @@ -11286,8 +12210,8 @@ NQP::Compiler - NQP compiler add $I11, rx885_pos, 1 gt $I11, rx885_eos, rx885_fail sub $I11, rx885_pos, rx885_off - substr $S10, rx885_tgt, $I11, 1 - ne $S10, "Q", rx885_fail + ord $I11, rx885_tgt, $I11 + ne $I11, 81, rx885_fail add rx885_pos, 1 # rxanchor rwb le rx885_pos, 0, rx885_fail @@ -11317,11 +12241,15 @@ NQP::Compiler - NQP compiler rx885_pos = $P10."pos"() # rx pass rx885_cur."!cursor_pass"(rx885_pos, "quote:sym") + if_null rx885_debug, debug_753 rx885_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx885_pos) + debug_753: .return (rx885_cur) rx885_restart: .annotate 'line', 4 + if_null rx885_debug, debug_754 rx885_cur."!cursor_debug"("NEXT ", "quote:sym") + debug_754: rx885_fail: (rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0) lt rx885_pos, -1, rx885_done @@ -11329,14 +12257,16 @@ NQP::Compiler - NQP compiler jump $I10 rx885_done: rx885_cur."!cursor_fail"() + if_null rx885_debug, debug_755 rx885_cur."!cursor_debug"("FAIL ", "quote:sym") + debug_755: .return (rx885_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("215_1280467477.44751") :method +.sub "!PREFIX__quote:sym" :subid("215_1282016529.10767") :method .annotate 'line', 4 $P887 = self."!PREFIX__!subrule"("ws", "Q") new $P888, "ResizablePMCArray" @@ -11346,7 +12276,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("216_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote:sym" :subid("216_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx891_tgt .local int rx891_pos @@ -11354,7 +12284,9 @@ NQP::Compiler - NQP compiler .local int rx891_eos .local int rx891_rep .local pmc rx891_cur + .local pmc rx891_debug (rx891_cur, rx891_pos, rx891_tgt, $I10) = self."!cursor_start"() + getattribute rx891_debug, rx891_cur, "$!debug" .lex unicode:"$\x{a2}", rx891_cur .local pmc match .lex "$/", match @@ -11366,7 +12298,9 @@ NQP::Compiler - NQP compiler substr rx891_tgt, rx891_tgt, rx891_off rx891_start: eq $I10, 1, rx891_restart + if_null rx891_debug, debug_756 rx891_cur."!cursor_debug"("START ", "quote:sym") + debug_756: $I10 = self.'from'() ne $I10, -1, rxscan895_done goto rxscan895_scan @@ -11401,11 +12335,15 @@ NQP::Compiler - NQP compiler rx891_pos = $P10."pos"() # rx pass rx891_cur."!cursor_pass"(rx891_pos, "quote:sym") + if_null rx891_debug, debug_757 rx891_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx891_pos) + debug_757: .return (rx891_cur) rx891_restart: .annotate 'line', 4 + if_null rx891_debug, debug_758 rx891_cur."!cursor_debug"("NEXT ", "quote:sym") + debug_758: rx891_fail: (rx891_rep, rx891_pos, $I10, $P10) = rx891_cur."!mark_fail"(0) lt rx891_pos, -1, rx891_done @@ -11413,14 +12351,16 @@ NQP::Compiler - NQP compiler jump $I10 rx891_done: rx891_cur."!cursor_fail"() + if_null rx891_debug, debug_759 rx891_cur."!cursor_debug"("FAIL ", "quote:sym") + debug_759: .return (rx891_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("217_1280467477.44751") :method +.sub "!PREFIX__quote:sym" :subid("217_1282016529.10767") :method .annotate 'line', 4 $P893 = self."!PREFIX__!subrule"("ws", "Q:PIR") new $P894, "ResizablePMCArray" @@ -11430,7 +12370,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("218_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote:sym" :subid("218_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx897_tgt .local int rx897_pos @@ -11438,7 +12378,9 @@ NQP::Compiler - NQP compiler .local int rx897_eos .local int rx897_rep .local pmc rx897_cur + .local pmc rx897_debug (rx897_cur, rx897_pos, rx897_tgt, $I10) = self."!cursor_start"() + getattribute rx897_debug, rx897_cur, "$!debug" .lex unicode:"$\x{a2}", rx897_cur .local pmc match .lex "$/", match @@ -11450,7 +12392,9 @@ NQP::Compiler - NQP compiler substr rx897_tgt, rx897_tgt, rx897_off rx897_start: eq $I10, 1, rx897_restart + if_null rx897_debug, debug_760 rx897_cur."!cursor_debug"("START ", "quote:sym") + debug_760: $I10 = self.'from'() ne $I10, -1, rxscan901_done goto rxscan901_scan @@ -11468,8 +12412,8 @@ NQP::Compiler - NQP compiler add $I11, rx897_pos, 1 gt $I11, rx897_eos, rx897_fail sub $I11, rx897_pos, rx897_off - substr $S10, rx897_tgt, $I11, 1 - ne $S10, "/", rx897_fail + ord $I11, rx897_tgt, $I11 + ne $I11, 47, rx897_fail add rx897_pos, 1 .annotate 'line', 426 # rx subrule "newpad" subtype=method negate= @@ -11494,17 +12438,21 @@ NQP::Compiler - NQP compiler add $I11, rx897_pos, 1 gt $I11, rx897_eos, rx897_fail sub $I11, rx897_pos, rx897_off - substr $S10, rx897_tgt, $I11, 1 - ne $S10, "/", rx897_fail + ord $I11, rx897_tgt, $I11 + ne $I11, 47, rx897_fail add rx897_pos, 1 .annotate 'line', 424 # rx pass rx897_cur."!cursor_pass"(rx897_pos, "quote:sym") + if_null rx897_debug, debug_761 rx897_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx897_pos) + debug_761: .return (rx897_cur) rx897_restart: .annotate 'line', 4 + if_null rx897_debug, debug_762 rx897_cur."!cursor_debug"("NEXT ", "quote:sym") + debug_762: rx897_fail: (rx897_rep, rx897_pos, $I10, $P10) = rx897_cur."!mark_fail"(0) lt rx897_pos, -1, rx897_done @@ -11512,14 +12460,16 @@ NQP::Compiler - NQP compiler jump $I10 rx897_done: rx897_cur."!cursor_fail"() + if_null rx897_debug, debug_763 rx897_cur."!cursor_debug"("FAIL ", "quote:sym") + debug_763: .return (rx897_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("219_1280467477.44751") :method +.sub "!PREFIX__quote:sym" :subid("219_1282016529.10767") :method .annotate 'line', 4 $P899 = self."!PREFIX__!subrule"("newpad", "/") new $P900, "ResizablePMCArray" @@ -11529,7 +12479,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote_escape:sym<$>" :subid("220_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote_escape:sym<$>" :subid("220_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx903_tgt .local int rx903_pos @@ -11537,7 +12487,9 @@ NQP::Compiler - NQP compiler .local int rx903_eos .local int rx903_rep .local pmc rx903_cur + .local pmc rx903_debug (rx903_cur, rx903_pos, rx903_tgt, $I10) = self."!cursor_start"() + getattribute rx903_debug, rx903_cur, "$!debug" .lex unicode:"$\x{a2}", rx903_cur .local pmc match .lex "$/", match @@ -11549,7 +12501,9 @@ NQP::Compiler - NQP compiler substr rx903_tgt, rx903_tgt, rx903_off rx903_start: eq $I10, 1, rx903_restart + if_null rx903_debug, debug_764 rx903_cur."!cursor_debug"("START ", "quote_escape:sym<$>") + debug_764: $I10 = self.'from'() ne $I10, -1, rxscan906_done goto rxscan906_scan @@ -11582,11 +12536,15 @@ NQP::Compiler - NQP compiler rx903_pos = $P10."pos"() # rx pass rx903_cur."!cursor_pass"(rx903_pos, "quote_escape:sym<$>") + if_null rx903_debug, debug_765 rx903_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx903_pos) + debug_765: .return (rx903_cur) rx903_restart: .annotate 'line', 4 + if_null rx903_debug, debug_766 rx903_cur."!cursor_debug"("NEXT ", "quote_escape:sym<$>") + debug_766: rx903_fail: (rx903_rep, rx903_pos, $I10, $P10) = rx903_cur."!mark_fail"(0) lt rx903_pos, -1, rx903_done @@ -11594,14 +12552,16 @@ NQP::Compiler - NQP compiler jump $I10 rx903_done: rx903_cur."!cursor_fail"() + if_null rx903_debug, debug_767 rx903_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>") + debug_767: .return (rx903_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote_escape:sym<$>" :subid("221_1280467477.44751") :method +.sub "!PREFIX__quote_escape:sym<$>" :subid("221_1282016529.10767") :method .annotate 'line', 4 new $P905, "ResizablePMCArray" push $P905, "$" @@ -11610,7 +12570,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote_escape:sym<{ }>" :subid("222_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote_escape:sym<{ }>" :subid("222_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx908_tgt .local int rx908_pos @@ -11618,7 +12578,9 @@ NQP::Compiler - NQP compiler .local int rx908_eos .local int rx908_rep .local pmc rx908_cur + .local pmc rx908_debug (rx908_cur, rx908_pos, rx908_tgt, $I10) = self."!cursor_start"() + getattribute rx908_debug, rx908_cur, "$!debug" .lex unicode:"$\x{a2}", rx908_cur .local pmc match .lex "$/", match @@ -11630,7 +12592,9 @@ NQP::Compiler - NQP compiler substr rx908_tgt, rx908_tgt, rx908_off rx908_start: eq $I10, 1, rx908_restart + if_null rx908_debug, debug_768 rx908_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>") + debug_768: $I10 = self.'from'() ne $I10, -1, rxscan911_done goto rxscan911_scan @@ -11663,11 +12627,15 @@ NQP::Compiler - NQP compiler rx908_pos = $P10."pos"() # rx pass rx908_cur."!cursor_pass"(rx908_pos, "quote_escape:sym<{ }>") + if_null rx908_debug, debug_769 rx908_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx908_pos) + debug_769: .return (rx908_cur) rx908_restart: .annotate 'line', 4 + if_null rx908_debug, debug_770 rx908_cur."!cursor_debug"("NEXT ", "quote_escape:sym<{ }>") + debug_770: rx908_fail: (rx908_rep, rx908_pos, $I10, $P10) = rx908_cur."!mark_fail"(0) lt rx908_pos, -1, rx908_done @@ -11675,14 +12643,16 @@ NQP::Compiler - NQP compiler jump $I10 rx908_done: rx908_cur."!cursor_fail"() + if_null rx908_debug, debug_771 rx908_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>") + debug_771: .return (rx908_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote_escape:sym<{ }>" :subid("223_1280467477.44751") :method +.sub "!PREFIX__quote_escape:sym<{ }>" :subid("223_1282016529.10767") :method .annotate 'line', 4 new $P910, "ResizablePMCArray" push $P910, "{" @@ -11691,7 +12661,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote_escape:sym" :subid("224_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "quote_escape:sym" :subid("224_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx913_tgt .local int rx913_pos @@ -11699,7 +12669,9 @@ NQP::Compiler - NQP compiler .local int rx913_eos .local int rx913_rep .local pmc rx913_cur + .local pmc rx913_debug (rx913_cur, rx913_pos, rx913_tgt, $I10) = self."!cursor_start"() + getattribute rx913_debug, rx913_cur, "$!debug" .lex unicode:"$\x{a2}", rx913_cur .local pmc match .lex "$/", match @@ -11711,7 +12683,9 @@ NQP::Compiler - NQP compiler substr rx913_tgt, rx913_tgt, rx913_off rx913_start: eq $I10, 1, rx913_restart + if_null rx913_debug, debug_772 rx913_cur."!cursor_debug"("START ", "quote_escape:sym") + debug_772: $I10 = self.'from'() ne $I10, -1, rxscan916_done goto rxscan916_scan @@ -11738,11 +12712,15 @@ NQP::Compiler - NQP compiler unless $P10, rx913_fail # rx pass rx913_cur."!cursor_pass"(rx913_pos, "quote_escape:sym") + if_null rx913_debug, debug_773 rx913_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx913_pos) + debug_773: .return (rx913_cur) rx913_restart: .annotate 'line', 4 + if_null rx913_debug, debug_774 rx913_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + debug_774: rx913_fail: (rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0) lt rx913_pos, -1, rx913_done @@ -11750,14 +12728,16 @@ NQP::Compiler - NQP compiler jump $I10 rx913_done: rx913_cur."!cursor_fail"() + if_null rx913_debug, debug_775 rx913_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + debug_775: .return (rx913_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("225_1280467477.44751") :method +.sub "!PREFIX__quote_escape:sym" :subid("225_1282016529.10767") :method .annotate 'line', 4 new $P915, "ResizablePMCArray" push $P915, "\\e" @@ -11766,7 +12746,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym<( )>" :subid("226_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "circumfix:sym<( )>" :subid("226_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx918_tgt .local int rx918_pos @@ -11774,8 +12754,10 @@ NQP::Compiler - NQP compiler .local int rx918_eos .local int rx918_rep .local pmc rx918_cur + .local pmc rx918_debug (rx918_cur, rx918_pos, rx918_tgt, $I10) = self."!cursor_start"() rx918_cur."!cursor_caparray"("EXPR") + getattribute rx918_debug, rx918_cur, "$!debug" .lex unicode:"$\x{a2}", rx918_cur .local pmc match .lex "$/", match @@ -11787,7 +12769,9 @@ NQP::Compiler - NQP compiler substr rx918_tgt, rx918_tgt, rx918_off rx918_start: eq $I10, 1, rx918_restart + if_null rx918_debug, debug_776 rx918_cur."!cursor_debug"("START ", "circumfix:sym<( )>") + debug_776: $I10 = self.'from'() ne $I10, -1, rxscan922_done goto rxscan922_scan @@ -11805,8 +12789,8 @@ NQP::Compiler - NQP compiler add $I11, rx918_pos, 1 gt $I11, rx918_eos, rx918_fail sub $I11, rx918_pos, rx918_off - substr $S10, rx918_tgt, $I11, 1 - ne $S10, "(", rx918_fail + ord $I11, rx918_tgt, $I11 + ne $I11, 40, rx918_fail add rx918_pos, 1 # rx subrule "ws" subtype=method negate= rx918_cur."!cursor_pos"(rx918_pos) @@ -11837,16 +12821,20 @@ NQP::Compiler - NQP compiler add $I11, rx918_pos, 1 gt $I11, rx918_eos, rx918_fail sub $I11, rx918_pos, rx918_off - substr $S10, rx918_tgt, $I11, 1 - ne $S10, ")", rx918_fail + ord $I11, rx918_tgt, $I11 + ne $I11, 41, rx918_fail add rx918_pos, 1 # rx pass rx918_cur."!cursor_pass"(rx918_pos, "circumfix:sym<( )>") + if_null rx918_debug, debug_777 rx918_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx918_pos) + debug_777: .return (rx918_cur) rx918_restart: .annotate 'line', 4 + if_null rx918_debug, debug_778 rx918_cur."!cursor_debug"("NEXT ", "circumfix:sym<( )>") + debug_778: rx918_fail: (rx918_rep, rx918_pos, $I10, $P10) = rx918_cur."!mark_fail"(0) lt rx918_pos, -1, rx918_done @@ -11854,14 +12842,16 @@ NQP::Compiler - NQP compiler jump $I10 rx918_done: rx918_cur."!cursor_fail"() + if_null rx918_debug, debug_779 rx918_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>") + debug_779: .return (rx918_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym<( )>" :subid("227_1280467477.44751") :method +.sub "!PREFIX__circumfix:sym<( )>" :subid("227_1282016529.10767") :method .annotate 'line', 4 $P920 = self."!PREFIX__!subrule"("ws", "(") new $P921, "ResizablePMCArray" @@ -11871,7 +12861,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym<[ ]>" :subid("228_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "circumfix:sym<[ ]>" :subid("228_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx926_tgt .local int rx926_pos @@ -11879,8 +12869,10 @@ NQP::Compiler - NQP compiler .local int rx926_eos .local int rx926_rep .local pmc rx926_cur + .local pmc rx926_debug (rx926_cur, rx926_pos, rx926_tgt, $I10) = self."!cursor_start"() rx926_cur."!cursor_caparray"("EXPR") + getattribute rx926_debug, rx926_cur, "$!debug" .lex unicode:"$\x{a2}", rx926_cur .local pmc match .lex "$/", match @@ -11892,7 +12884,9 @@ NQP::Compiler - NQP compiler substr rx926_tgt, rx926_tgt, rx926_off rx926_start: eq $I10, 1, rx926_restart + if_null rx926_debug, debug_780 rx926_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>") + debug_780: $I10 = self.'from'() ne $I10, -1, rxscan930_done goto rxscan930_scan @@ -11910,8 +12904,8 @@ NQP::Compiler - NQP compiler add $I11, rx926_pos, 1 gt $I11, rx926_eos, rx926_fail sub $I11, rx926_pos, rx926_off - substr $S10, rx926_tgt, $I11, 1 - ne $S10, "[", rx926_fail + ord $I11, rx926_tgt, $I11 + ne $I11, 91, rx926_fail add rx926_pos, 1 # rx subrule "ws" subtype=method negate= rx926_cur."!cursor_pos"(rx926_pos) @@ -11942,16 +12936,20 @@ NQP::Compiler - NQP compiler add $I11, rx926_pos, 1 gt $I11, rx926_eos, rx926_fail sub $I11, rx926_pos, rx926_off - substr $S10, rx926_tgt, $I11, 1 - ne $S10, "]", rx926_fail + ord $I11, rx926_tgt, $I11 + ne $I11, 93, rx926_fail add rx926_pos, 1 # rx pass rx926_cur."!cursor_pass"(rx926_pos, "circumfix:sym<[ ]>") + if_null rx926_debug, debug_781 rx926_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx926_pos) + debug_781: .return (rx926_cur) rx926_restart: .annotate 'line', 4 + if_null rx926_debug, debug_782 rx926_cur."!cursor_debug"("NEXT ", "circumfix:sym<[ ]>") + debug_782: rx926_fail: (rx926_rep, rx926_pos, $I10, $P10) = rx926_cur."!mark_fail"(0) lt rx926_pos, -1, rx926_done @@ -11959,14 +12957,16 @@ NQP::Compiler - NQP compiler jump $I10 rx926_done: rx926_cur."!cursor_fail"() + if_null rx926_debug, debug_783 rx926_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>") + debug_783: .return (rx926_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym<[ ]>" :subid("229_1280467477.44751") :method +.sub "!PREFIX__circumfix:sym<[ ]>" :subid("229_1282016529.10767") :method .annotate 'line', 4 $P928 = self."!PREFIX__!subrule"("ws", "[") new $P929, "ResizablePMCArray" @@ -11976,7 +12976,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym" :subid("230_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "circumfix:sym" :subid("230_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx934_tgt .local int rx934_pos @@ -11984,7 +12984,9 @@ NQP::Compiler - NQP compiler .local int rx934_eos .local int rx934_rep .local pmc rx934_cur + .local pmc rx934_debug (rx934_cur, rx934_pos, rx934_tgt, $I10) = self."!cursor_start"() + getattribute rx934_debug, rx934_cur, "$!debug" .lex unicode:"$\x{a2}", rx934_cur .local pmc match .lex "$/", match @@ -11996,7 +12998,9 @@ NQP::Compiler - NQP compiler substr rx934_tgt, rx934_tgt, rx934_off rx934_start: eq $I10, 1, rx934_restart + if_null rx934_debug, debug_784 rx934_cur."!cursor_debug"("START ", "circumfix:sym") + debug_784: $I10 = self.'from'() ne $I10, -1, rxscan937_done goto rxscan937_scan @@ -12025,11 +13029,15 @@ NQP::Compiler - NQP compiler rx934_pos = $P10."pos"() # rx pass rx934_cur."!cursor_pass"(rx934_pos, "circumfix:sym") + if_null rx934_debug, debug_785 rx934_cur."!cursor_debug"("PASS ", "circumfix:sym", " at pos=", rx934_pos) + debug_785: .return (rx934_cur) rx934_restart: .annotate 'line', 4 + if_null rx934_debug, debug_786 rx934_cur."!cursor_debug"("NEXT ", "circumfix:sym") + debug_786: rx934_fail: (rx934_rep, rx934_pos, $I10, $P10) = rx934_cur."!mark_fail"(0) lt rx934_pos, -1, rx934_done @@ -12037,14 +13045,16 @@ NQP::Compiler - NQP compiler jump $I10 rx934_done: rx934_cur."!cursor_fail"() + if_null rx934_debug, debug_787 rx934_cur."!cursor_debug"("FAIL ", "circumfix:sym") + debug_787: .return (rx934_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym" :subid("231_1280467477.44751") :method +.sub "!PREFIX__circumfix:sym" :subid("231_1282016529.10767") :method .annotate 'line', 4 new $P936, "ResizablePMCArray" push $P936, "<" @@ -12053,7 +13063,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("232_1280467477.44751") :method :outer("11_1280467477.44751") +.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("232_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx939_tgt .local int rx939_pos @@ -12061,7 +13071,9 @@ NQP::Compiler - NQP compiler .local int rx939_eos .local int rx939_rep .local pmc rx939_cur + .local pmc rx939_debug (rx939_cur, rx939_pos, rx939_tgt, $I10) = self."!cursor_start"() + getattribute rx939_debug, rx939_cur, "$!debug" .lex unicode:"$\x{a2}", rx939_cur .local pmc match .lex "$/", match @@ -12073,7 +13085,9 @@ NQP::Compiler - NQP compiler substr rx939_tgt, rx939_tgt, rx939_off rx939_start: eq $I10, 1, rx939_restart + if_null rx939_debug, debug_788 rx939_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>") + debug_788: $I10 = self.'from'() ne $I10, -1, rxscan942_done goto rxscan942_scan @@ -12102,11 +13116,15 @@ NQP::Compiler - NQP compiler rx939_pos = $P10."pos"() # rx pass rx939_cur."!cursor_pass"(rx939_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>") + if_null rx939_debug, debug_789 rx939_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos) + debug_789: .return (rx939_cur) rx939_restart: .annotate 'line', 4 + if_null rx939_debug, debug_790 rx939_cur."!cursor_debug"("NEXT ", unicode:"circumfix:sym<\x{ab} \x{bb}>") + debug_790: rx939_fail: (rx939_rep, rx939_pos, $I10, $P10) = rx939_cur."!mark_fail"(0) lt rx939_pos, -1, rx939_done @@ -12114,14 +13132,16 @@ NQP::Compiler - NQP compiler jump $I10 rx939_done: rx939_cur."!cursor_fail"() + if_null rx939_debug, debug_791 rx939_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>") + debug_791: .return (rx939_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("233_1280467477.44751") :method +.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("233_1282016529.10767") :method .annotate 'line', 4 new $P941, "ResizablePMCArray" push $P941, unicode:"\x{ab}" @@ -12130,7 +13150,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym<{ }>" :subid("234_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "circumfix:sym<{ }>" :subid("234_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx944_tgt .local int rx944_pos @@ -12138,7 +13158,9 @@ NQP::Compiler - NQP compiler .local int rx944_eos .local int rx944_rep .local pmc rx944_cur + .local pmc rx944_debug (rx944_cur, rx944_pos, rx944_tgt, $I10) = self."!cursor_start"() + getattribute rx944_debug, rx944_cur, "$!debug" .lex unicode:"$\x{a2}", rx944_cur .local pmc match .lex "$/", match @@ -12150,7 +13172,9 @@ NQP::Compiler - NQP compiler substr rx944_tgt, rx944_tgt, rx944_off rx944_start: eq $I10, 1, rx944_restart + if_null rx944_debug, debug_792 rx944_cur."!cursor_debug"("START ", "circumfix:sym<{ }>") + debug_792: $I10 = self.'from'() ne $I10, -1, rxscan947_done goto rxscan947_scan @@ -12179,11 +13203,15 @@ NQP::Compiler - NQP compiler rx944_pos = $P10."pos"() # rx pass rx944_cur."!cursor_pass"(rx944_pos, "circumfix:sym<{ }>") + if_null rx944_debug, debug_793 rx944_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx944_pos) + debug_793: .return (rx944_cur) rx944_restart: .annotate 'line', 4 + if_null rx944_debug, debug_794 rx944_cur."!cursor_debug"("NEXT ", "circumfix:sym<{ }>") + debug_794: rx944_fail: (rx944_rep, rx944_pos, $I10, $P10) = rx944_cur."!mark_fail"(0) lt rx944_pos, -1, rx944_done @@ -12191,14 +13219,16 @@ NQP::Compiler - NQP compiler jump $I10 rx944_done: rx944_cur."!cursor_fail"() + if_null rx944_debug, debug_795 rx944_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>") + debug_795: .return (rx944_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym<{ }>" :subid("235_1280467477.44751") :method +.sub "!PREFIX__circumfix:sym<{ }>" :subid("235_1282016529.10767") :method .annotate 'line', 4 new $P946, "ResizablePMCArray" push $P946, "{" @@ -12207,7 +13237,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym" :subid("236_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "circumfix:sym" :subid("236_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx949_tgt .local int rx949_pos @@ -12215,7 +13245,9 @@ NQP::Compiler - NQP compiler .local int rx949_eos .local int rx949_rep .local pmc rx949_cur + .local pmc rx949_debug (rx949_cur, rx949_pos, rx949_tgt, $I10) = self."!cursor_start"() + getattribute rx949_debug, rx949_cur, "$!debug" .lex unicode:"$\x{a2}", rx949_cur .local pmc match .lex "$/", match @@ -12227,7 +13259,9 @@ NQP::Compiler - NQP compiler substr rx949_tgt, rx949_tgt, rx949_off rx949_start: eq $I10, 1, rx949_restart + if_null rx949_debug, debug_796 rx949_cur."!cursor_debug"("START ", "circumfix:sym") + debug_796: $I10 = self.'from'() ne $I10, -1, rxscan953_done goto rxscan953_scan @@ -12252,8 +13286,8 @@ NQP::Compiler - NQP compiler add $I11, rx949_pos, 1 gt $I11, rx949_eos, rx949_fail sub $I11, rx949_pos, rx949_off - substr $S10, rx949_tgt, $I11, 1 - ne $S10, "(", rx949_fail + ord $I11, rx949_tgt, $I11 + ne $I11, 40, rx949_fail add rx949_pos, 1 # rx subrule "semilist" subtype=capture negate= rx949_cur."!cursor_pos"(rx949_pos) @@ -12269,8 +13303,8 @@ NQP::Compiler - NQP compiler add $I11, rx949_pos, 1 gt $I11, rx949_eos, rx949_fail sub $I11, rx949_pos, rx949_off - substr $S10, rx949_tgt, $I11, 1 - ne $S10, ")", rx949_fail + ord $I11, rx949_tgt, $I11 + ne $I11, 41, rx949_fail add rx949_pos, 1 goto alt954_end alt954_1: @@ -12289,11 +13323,15 @@ NQP::Compiler - NQP compiler alt954_end: # rx pass rx949_cur."!cursor_pass"(rx949_pos, "circumfix:sym") + if_null rx949_debug, debug_797 rx949_cur."!cursor_debug"("PASS ", "circumfix:sym", " at pos=", rx949_pos) + debug_797: .return (rx949_cur) rx949_restart: .annotate 'line', 4 + if_null rx949_debug, debug_798 rx949_cur."!cursor_debug"("NEXT ", "circumfix:sym") + debug_798: rx949_fail: (rx949_rep, rx949_pos, $I10, $P10) = rx949_cur."!mark_fail"(0) lt rx949_pos, -1, rx949_done @@ -12301,14 +13339,16 @@ NQP::Compiler - NQP compiler jump $I10 rx949_done: rx949_cur."!cursor_fail"() + if_null rx949_debug, debug_799 rx949_cur."!cursor_debug"("FAIL ", "circumfix:sym") + debug_799: .return (rx949_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym" :subid("237_1280467477.44751") :method +.sub "!PREFIX__circumfix:sym" :subid("237_1282016529.10767") :method .annotate 'line', 4 $P951 = self."!PREFIX__!subrule"("sigil", "") new $P952, "ResizablePMCArray" @@ -12318,7 +13358,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "semilist" :subid("238_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "semilist" :subid("238_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 4 .local string rx958_tgt .local int rx958_pos @@ -12326,7 +13366,9 @@ NQP::Compiler - NQP compiler .local int rx958_eos .local int rx958_rep .local pmc rx958_cur + .local pmc rx958_debug (rx958_cur, rx958_pos, rx958_tgt, $I10) = self."!cursor_start"() + getattribute rx958_debug, rx958_cur, "$!debug" .lex unicode:"$\x{a2}", rx958_cur .local pmc match .lex "$/", match @@ -12338,7 +13380,9 @@ NQP::Compiler - NQP compiler substr rx958_tgt, rx958_tgt, rx958_off rx958_start: eq $I10, 1, rx958_restart + if_null rx958_debug, debug_800 rx958_cur."!cursor_debug"("START ", "semilist") + debug_800: $I10 = self.'from'() ne $I10, -1, rxscan962_done goto rxscan962_scan @@ -12371,11 +13415,15 @@ NQP::Compiler - NQP compiler rx958_pos = $P10."pos"() # rx pass rx958_cur."!cursor_pass"(rx958_pos, "semilist") + if_null rx958_debug, debug_801 rx958_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx958_pos) + debug_801: .return (rx958_cur) rx958_restart: .annotate 'line', 4 + if_null rx958_debug, debug_802 rx958_cur."!cursor_debug"("NEXT ", "semilist") + debug_802: rx958_fail: (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0) lt rx958_pos, -1, rx958_done @@ -12383,14 +13431,16 @@ NQP::Compiler - NQP compiler jump $I10 rx958_done: rx958_cur."!cursor_fail"() + if_null rx958_debug, debug_803 rx958_cur."!cursor_debug"("FAIL ", "semilist") + debug_803: .return (rx958_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__semilist" :subid("239_1280467477.44751") :method +.sub "!PREFIX__semilist" :subid("239_1282016529.10767") :method .annotate 'line', 4 $P960 = self."!PREFIX__!subrule"("ws", "") new $P961, "ResizablePMCArray" @@ -12400,7 +13450,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infixish" :subid("240_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infixish" :subid("240_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx966_tgt .local int rx966_pos @@ -12408,7 +13458,9 @@ NQP::Compiler - NQP compiler .local int rx966_eos .local int rx966_rep .local pmc rx966_cur + .local pmc rx966_debug (rx966_cur, rx966_pos, rx966_tgt, $I10) = self."!cursor_start"() + getattribute rx966_debug, rx966_cur, "$!debug" .lex unicode:"$\x{a2}", rx966_cur .local pmc match .lex "$/", match @@ -12420,7 +13472,9 @@ NQP::Compiler - NQP compiler substr rx966_tgt, rx966_tgt, rx966_off rx966_start: eq $I10, 1, rx966_restart + if_null rx966_debug, debug_804 rx966_cur."!cursor_debug"("START ", "infixish") + debug_804: $I10 = self.'from'() ne $I10, -1, rxscan969_done goto rxscan969_scan @@ -12447,11 +13501,15 @@ NQP::Compiler - NQP compiler rx966_pos = $P10."pos"() # rx pass rx966_cur."!cursor_pass"(rx966_pos, "infixish") + if_null rx966_debug, debug_805 rx966_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx966_pos) + debug_805: .return (rx966_cur) rx966_restart: .annotate 'line', 447 + if_null rx966_debug, debug_806 rx966_cur."!cursor_debug"("NEXT ", "infixish") + debug_806: rx966_fail: (rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0) lt rx966_pos, -1, rx966_done @@ -12459,14 +13517,16 @@ NQP::Compiler - NQP compiler jump $I10 rx966_done: rx966_cur."!cursor_fail"() + if_null rx966_debug, debug_807 rx966_cur."!cursor_debug"("FAIL ", "infixish") + debug_807: .return (rx966_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infixish" :subid("241_1280467477.44751") :method +.sub "!PREFIX__infixish" :subid("241_1282016529.10767") :method .annotate 'line', 447 new $P968, "ResizablePMCArray" push $P968, "" @@ -12475,7 +13535,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infixstopper" :subid("242_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infixstopper" :subid("242_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx971_tgt .local int rx971_pos @@ -12483,7 +13543,9 @@ NQP::Compiler - NQP compiler .local int rx971_eos .local int rx971_rep .local pmc rx971_cur + .local pmc rx971_debug (rx971_cur, rx971_pos, rx971_tgt, $I10) = self."!cursor_start"() + getattribute rx971_debug, rx971_cur, "$!debug" .lex unicode:"$\x{a2}", rx971_cur .local pmc match .lex "$/", match @@ -12495,7 +13557,9 @@ NQP::Compiler - NQP compiler substr rx971_tgt, rx971_tgt, rx971_off rx971_start: eq $I10, 1, rx971_restart + if_null rx971_debug, debug_808 rx971_cur."!cursor_debug"("START ", "infixstopper") + debug_808: $I10 = self.'from'() ne $I10, -1, rxscan974_done goto rxscan974_scan @@ -12515,11 +13579,15 @@ NQP::Compiler - NQP compiler unless $P10, rx971_fail # rx pass rx971_cur."!cursor_pass"(rx971_pos, "infixstopper") + if_null rx971_debug, debug_809 rx971_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx971_pos) + debug_809: .return (rx971_cur) rx971_restart: .annotate 'line', 447 + if_null rx971_debug, debug_810 rx971_cur."!cursor_debug"("NEXT ", "infixstopper") + debug_810: rx971_fail: (rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0) lt rx971_pos, -1, rx971_done @@ -12527,14 +13595,16 @@ NQP::Compiler - NQP compiler jump $I10 rx971_done: rx971_cur."!cursor_fail"() + if_null rx971_debug, debug_811 rx971_cur."!cursor_debug"("FAIL ", "infixstopper") + debug_811: .return (rx971_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infixstopper" :subid("243_1280467477.44751") :method +.sub "!PREFIX__infixstopper" :subid("243_1282016529.10767") :method .annotate 'line', 447 new $P973, "ResizablePMCArray" push $P973, "" @@ -12543,7 +13613,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postcircumfix:sym<[ ]>" :subid("244_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "postcircumfix:sym<[ ]>" :subid("244_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx976_tgt .local int rx976_pos @@ -12551,7 +13621,9 @@ NQP::Compiler - NQP compiler .local int rx976_eos .local int rx976_rep .local pmc rx976_cur + .local pmc rx976_debug (rx976_cur, rx976_pos, rx976_tgt, $I10) = self."!cursor_start"() + getattribute rx976_debug, rx976_cur, "$!debug" .lex unicode:"$\x{a2}", rx976_cur .local pmc match .lex "$/", match @@ -12563,7 +13635,9 @@ NQP::Compiler - NQP compiler substr rx976_tgt, rx976_tgt, rx976_off rx976_start: eq $I10, 1, rx976_restart + if_null rx976_debug, debug_812 rx976_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>") + debug_812: $I10 = self.'from'() ne $I10, -1, rxscan980_done goto rxscan980_scan @@ -12581,8 +13655,8 @@ NQP::Compiler - NQP compiler add $I11, rx976_pos, 1 gt $I11, rx976_eos, rx976_fail sub $I11, rx976_pos, rx976_off - substr $S10, rx976_tgt, $I11, 1 - ne $S10, "[", rx976_fail + ord $I11, rx976_tgt, $I11 + ne $I11, 91, rx976_fail add rx976_pos, 1 # rx subrule "ws" subtype=method negate= rx976_cur."!cursor_pos"(rx976_pos) @@ -12600,8 +13674,8 @@ NQP::Compiler - NQP compiler add $I11, rx976_pos, 1 gt $I11, rx976_eos, rx976_fail sub $I11, rx976_pos, rx976_off - substr $S10, rx976_tgt, $I11, 1 - ne $S10, "]", rx976_fail + ord $I11, rx976_tgt, $I11 + ne $I11, 93, rx976_fail add rx976_pos, 1 .annotate 'line', 471 # rx subrule "O" subtype=capture negate= @@ -12614,11 +13688,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 469 # rx pass rx976_cur."!cursor_pass"(rx976_pos, "postcircumfix:sym<[ ]>") + if_null rx976_debug, debug_813 rx976_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos) + debug_813: .return (rx976_cur) rx976_restart: .annotate 'line', 447 + if_null rx976_debug, debug_814 rx976_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<[ ]>") + debug_814: rx976_fail: (rx976_rep, rx976_pos, $I10, $P10) = rx976_cur."!mark_fail"(0) lt rx976_pos, -1, rx976_done @@ -12626,14 +13704,16 @@ NQP::Compiler - NQP compiler jump $I10 rx976_done: rx976_cur."!cursor_fail"() + if_null rx976_debug, debug_815 rx976_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>") + debug_815: .return (rx976_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("245_1280467477.44751") :method +.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("245_1282016529.10767") :method .annotate 'line', 447 $P978 = self."!PREFIX__!subrule"("ws", "[") new $P979, "ResizablePMCArray" @@ -12643,7 +13723,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postcircumfix:sym<{ }>" :subid("246_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "postcircumfix:sym<{ }>" :subid("246_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx982_tgt .local int rx982_pos @@ -12651,7 +13731,9 @@ NQP::Compiler - NQP compiler .local int rx982_eos .local int rx982_rep .local pmc rx982_cur + .local pmc rx982_debug (rx982_cur, rx982_pos, rx982_tgt, $I10) = self."!cursor_start"() + getattribute rx982_debug, rx982_cur, "$!debug" .lex unicode:"$\x{a2}", rx982_cur .local pmc match .lex "$/", match @@ -12663,7 +13745,9 @@ NQP::Compiler - NQP compiler substr rx982_tgt, rx982_tgt, rx982_off rx982_start: eq $I10, 1, rx982_restart + if_null rx982_debug, debug_816 rx982_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>") + debug_816: $I10 = self.'from'() ne $I10, -1, rxscan986_done goto rxscan986_scan @@ -12681,8 +13765,8 @@ NQP::Compiler - NQP compiler add $I11, rx982_pos, 1 gt $I11, rx982_eos, rx982_fail sub $I11, rx982_pos, rx982_off - substr $S10, rx982_tgt, $I11, 1 - ne $S10, "{", rx982_fail + ord $I11, rx982_tgt, $I11 + ne $I11, 123, rx982_fail add rx982_pos, 1 # rx subrule "ws" subtype=method negate= rx982_cur."!cursor_pos"(rx982_pos) @@ -12700,8 +13784,8 @@ NQP::Compiler - NQP compiler add $I11, rx982_pos, 1 gt $I11, rx982_eos, rx982_fail sub $I11, rx982_pos, rx982_off - substr $S10, rx982_tgt, $I11, 1 - ne $S10, "}", rx982_fail + ord $I11, rx982_tgt, $I11 + ne $I11, 125, rx982_fail add rx982_pos, 1 .annotate 'line', 476 # rx subrule "O" subtype=capture negate= @@ -12714,11 +13798,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 474 # rx pass rx982_cur."!cursor_pass"(rx982_pos, "postcircumfix:sym<{ }>") + if_null rx982_debug, debug_817 rx982_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx982_pos) + debug_817: .return (rx982_cur) rx982_restart: .annotate 'line', 447 + if_null rx982_debug, debug_818 rx982_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<{ }>") + debug_818: rx982_fail: (rx982_rep, rx982_pos, $I10, $P10) = rx982_cur."!mark_fail"(0) lt rx982_pos, -1, rx982_done @@ -12726,14 +13814,16 @@ NQP::Compiler - NQP compiler jump $I10 rx982_done: rx982_cur."!cursor_fail"() + if_null rx982_debug, debug_819 rx982_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>") + debug_819: .return (rx982_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("247_1280467477.44751") :method +.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("247_1282016529.10767") :method .annotate 'line', 447 $P984 = self."!PREFIX__!subrule"("ws", "{") new $P985, "ResizablePMCArray" @@ -12743,7 +13833,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postcircumfix:sym" :subid("248_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "postcircumfix:sym" :subid("248_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx988_tgt .local int rx988_pos @@ -12751,7 +13841,9 @@ NQP::Compiler - NQP compiler .local int rx988_eos .local int rx988_rep .local pmc rx988_cur + .local pmc rx988_debug (rx988_cur, rx988_pos, rx988_tgt, $I10) = self."!cursor_start"() + getattribute rx988_debug, rx988_cur, "$!debug" .lex unicode:"$\x{a2}", rx988_cur .local pmc match .lex "$/", match @@ -12763,7 +13855,9 @@ NQP::Compiler - NQP compiler substr rx988_tgt, rx988_tgt, rx988_off rx988_start: eq $I10, 1, rx988_restart + if_null rx988_debug, debug_820 rx988_cur."!cursor_debug"("START ", "postcircumfix:sym") + debug_820: $I10 = self.'from'() ne $I10, -1, rxscan991_done goto rxscan991_scan @@ -12801,11 +13895,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 479 # rx pass rx988_cur."!cursor_pass"(rx988_pos, "postcircumfix:sym") + if_null rx988_debug, debug_821 rx988_cur."!cursor_debug"("PASS ", "postcircumfix:sym", " at pos=", rx988_pos) + debug_821: .return (rx988_cur) rx988_restart: .annotate 'line', 447 + if_null rx988_debug, debug_822 rx988_cur."!cursor_debug"("NEXT ", "postcircumfix:sym") + debug_822: rx988_fail: (rx988_rep, rx988_pos, $I10, $P10) = rx988_cur."!mark_fail"(0) lt rx988_pos, -1, rx988_done @@ -12813,14 +13911,16 @@ NQP::Compiler - NQP compiler jump $I10 rx988_done: rx988_cur."!cursor_fail"() + if_null rx988_debug, debug_823 rx988_cur."!cursor_debug"("FAIL ", "postcircumfix:sym") + debug_823: .return (rx988_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postcircumfix:sym" :subid("249_1280467477.44751") :method +.sub "!PREFIX__postcircumfix:sym" :subid("249_1282016529.10767") :method .annotate 'line', 447 new $P990, "ResizablePMCArray" push $P990, "<" @@ -12829,7 +13929,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postcircumfix:sym<( )>" :subid("250_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "postcircumfix:sym<( )>" :subid("250_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx993_tgt .local int rx993_pos @@ -12837,7 +13937,9 @@ NQP::Compiler - NQP compiler .local int rx993_eos .local int rx993_rep .local pmc rx993_cur + .local pmc rx993_debug (rx993_cur, rx993_pos, rx993_tgt, $I10) = self."!cursor_start"() + getattribute rx993_debug, rx993_cur, "$!debug" .lex unicode:"$\x{a2}", rx993_cur .local pmc match .lex "$/", match @@ -12849,7 +13951,9 @@ NQP::Compiler - NQP compiler substr rx993_tgt, rx993_tgt, rx993_off rx993_start: eq $I10, 1, rx993_restart + if_null rx993_debug, debug_824 rx993_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>") + debug_824: $I10 = self.'from'() ne $I10, -1, rxscan997_done goto rxscan997_scan @@ -12867,8 +13971,8 @@ NQP::Compiler - NQP compiler add $I11, rx993_pos, 1 gt $I11, rx993_eos, rx993_fail sub $I11, rx993_pos, rx993_off - substr $S10, rx993_tgt, $I11, 1 - ne $S10, "(", rx993_fail + ord $I11, rx993_tgt, $I11 + ne $I11, 40, rx993_fail add rx993_pos, 1 # rx subrule "ws" subtype=method negate= rx993_cur."!cursor_pos"(rx993_pos) @@ -12886,8 +13990,8 @@ NQP::Compiler - NQP compiler add $I11, rx993_pos, 1 gt $I11, rx993_eos, rx993_fail sub $I11, rx993_pos, rx993_off - substr $S10, rx993_tgt, $I11, 1 - ne $S10, ")", rx993_fail + ord $I11, rx993_tgt, $I11 + ne $I11, 41, rx993_fail add rx993_pos, 1 .annotate 'line', 486 # rx subrule "O" subtype=capture negate= @@ -12900,11 +14004,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 484 # rx pass rx993_cur."!cursor_pass"(rx993_pos, "postcircumfix:sym<( )>") + if_null rx993_debug, debug_825 rx993_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx993_pos) + debug_825: .return (rx993_cur) rx993_restart: .annotate 'line', 447 + if_null rx993_debug, debug_826 rx993_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<( )>") + debug_826: rx993_fail: (rx993_rep, rx993_pos, $I10, $P10) = rx993_cur."!mark_fail"(0) lt rx993_pos, -1, rx993_done @@ -12912,14 +14020,16 @@ NQP::Compiler - NQP compiler jump $I10 rx993_done: rx993_cur."!cursor_fail"() + if_null rx993_debug, debug_827 rx993_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>") + debug_827: .return (rx993_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postcircumfix:sym<( )>" :subid("251_1280467477.44751") :method +.sub "!PREFIX__postcircumfix:sym<( )>" :subid("251_1282016529.10767") :method .annotate 'line', 447 $P995 = self."!PREFIX__!subrule"("ws", "(") new $P996, "ResizablePMCArray" @@ -12929,7 +14039,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postfix:sym<.>" :subid("252_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "postfix:sym<.>" :subid("252_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx999_tgt .local int rx999_pos @@ -12937,7 +14047,9 @@ NQP::Compiler - NQP compiler .local int rx999_eos .local int rx999_rep .local pmc rx999_cur + .local pmc rx999_debug (rx999_cur, rx999_pos, rx999_tgt, $I10) = self."!cursor_start"() + getattribute rx999_debug, rx999_cur, "$!debug" .lex unicode:"$\x{a2}", rx999_cur .local pmc match .lex "$/", match @@ -12949,7 +14061,9 @@ NQP::Compiler - NQP compiler substr rx999_tgt, rx999_tgt, rx999_off rx999_start: eq $I10, 1, rx999_restart + if_null rx999_debug, debug_828 rx999_cur."!cursor_debug"("START ", "postfix:sym<.>") + debug_828: $I10 = self.'from'() ne $I10, -1, rxscan1003_done goto rxscan1003_scan @@ -12979,11 +14093,15 @@ NQP::Compiler - NQP compiler rx999_pos = $P10."pos"() # rx pass rx999_cur."!cursor_pass"(rx999_pos, "postfix:sym<.>") + if_null rx999_debug, debug_829 rx999_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx999_pos) + debug_829: .return (rx999_cur) rx999_restart: .annotate 'line', 447 + if_null rx999_debug, debug_830 rx999_cur."!cursor_debug"("NEXT ", "postfix:sym<.>") + debug_830: rx999_fail: (rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0) lt rx999_pos, -1, rx999_done @@ -12991,14 +14109,16 @@ NQP::Compiler - NQP compiler jump $I10 rx999_done: rx999_cur."!cursor_fail"() + if_null rx999_debug, debug_831 rx999_cur."!cursor_debug"("FAIL ", "postfix:sym<.>") + debug_831: .return (rx999_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postfix:sym<.>" :subid("253_1280467477.44751") :method +.sub "!PREFIX__postfix:sym<.>" :subid("253_1282016529.10767") :method .annotate 'line', 447 $P1001 = self."!PREFIX__!subrule"("dotty", "") new $P1002, "ResizablePMCArray" @@ -13008,7 +14128,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<++>" :subid("254_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym<++>" :subid("254_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1005_tgt .local int rx1005_pos @@ -13016,7 +14136,9 @@ NQP::Compiler - NQP compiler .local int rx1005_eos .local int rx1005_rep .local pmc rx1005_cur + .local pmc rx1005_debug (rx1005_cur, rx1005_pos, rx1005_tgt, $I10) = self."!cursor_start"() + getattribute rx1005_debug, rx1005_cur, "$!debug" .lex unicode:"$\x{a2}", rx1005_cur .local pmc match .lex "$/", match @@ -13028,7 +14150,9 @@ NQP::Compiler - NQP compiler substr rx1005_tgt, rx1005_tgt, rx1005_off rx1005_start: eq $I10, 1, rx1005_restart + if_null rx1005_debug, debug_832 rx1005_cur."!cursor_debug"("START ", "prefix:sym<++>") + debug_832: $I10 = self.'from'() ne $I10, -1, rxscan1009_done goto rxscan1009_scan @@ -13072,11 +14196,15 @@ NQP::Compiler - NQP compiler rx1005_pos = $P10."pos"() # rx pass rx1005_cur."!cursor_pass"(rx1005_pos, "prefix:sym<++>") + if_null rx1005_debug, debug_833 rx1005_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx1005_pos) + debug_833: .return (rx1005_cur) rx1005_restart: .annotate 'line', 447 + if_null rx1005_debug, debug_834 rx1005_cur."!cursor_debug"("NEXT ", "prefix:sym<++>") + debug_834: rx1005_fail: (rx1005_rep, rx1005_pos, $I10, $P10) = rx1005_cur."!mark_fail"(0) lt rx1005_pos, -1, rx1005_done @@ -13084,14 +14212,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1005_done: rx1005_cur."!cursor_fail"() + if_null rx1005_debug, debug_835 rx1005_cur."!cursor_debug"("FAIL ", "prefix:sym<++>") + debug_835: .return (rx1005_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<++>" :subid("255_1280467477.44751") :method +.sub "!PREFIX__prefix:sym<++>" :subid("255_1282016529.10767") :method .annotate 'line', 447 $P1007 = self."!PREFIX__!subrule"("O", "++") new $P1008, "ResizablePMCArray" @@ -13101,7 +14231,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<-->" :subid("256_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym<-->" :subid("256_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1012_tgt .local int rx1012_pos @@ -13109,7 +14239,9 @@ NQP::Compiler - NQP compiler .local int rx1012_eos .local int rx1012_rep .local pmc rx1012_cur + .local pmc rx1012_debug (rx1012_cur, rx1012_pos, rx1012_tgt, $I10) = self."!cursor_start"() + getattribute rx1012_debug, rx1012_cur, "$!debug" .lex unicode:"$\x{a2}", rx1012_cur .local pmc match .lex "$/", match @@ -13121,7 +14253,9 @@ NQP::Compiler - NQP compiler substr rx1012_tgt, rx1012_tgt, rx1012_off rx1012_start: eq $I10, 1, rx1012_restart + if_null rx1012_debug, debug_836 rx1012_cur."!cursor_debug"("START ", "prefix:sym<-->") + debug_836: $I10 = self.'from'() ne $I10, -1, rxscan1016_done goto rxscan1016_scan @@ -13165,11 +14299,15 @@ NQP::Compiler - NQP compiler rx1012_pos = $P10."pos"() # rx pass rx1012_cur."!cursor_pass"(rx1012_pos, "prefix:sym<-->") + if_null rx1012_debug, debug_837 rx1012_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx1012_pos) + debug_837: .return (rx1012_cur) rx1012_restart: .annotate 'line', 447 + if_null rx1012_debug, debug_838 rx1012_cur."!cursor_debug"("NEXT ", "prefix:sym<-->") + debug_838: rx1012_fail: (rx1012_rep, rx1012_pos, $I10, $P10) = rx1012_cur."!mark_fail"(0) lt rx1012_pos, -1, rx1012_done @@ -13177,14 +14315,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1012_done: rx1012_cur."!cursor_fail"() + if_null rx1012_debug, debug_839 rx1012_cur."!cursor_debug"("FAIL ", "prefix:sym<-->") + debug_839: .return (rx1012_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<-->" :subid("257_1280467477.44751") :method +.sub "!PREFIX__prefix:sym<-->" :subid("257_1282016529.10767") :method .annotate 'line', 447 $P1014 = self."!PREFIX__!subrule"("O", "--") new $P1015, "ResizablePMCArray" @@ -13194,7 +14334,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postfix:sym<++>" :subid("258_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "postfix:sym<++>" :subid("258_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1019_tgt .local int rx1019_pos @@ -13202,7 +14342,9 @@ NQP::Compiler - NQP compiler .local int rx1019_eos .local int rx1019_rep .local pmc rx1019_cur + .local pmc rx1019_debug (rx1019_cur, rx1019_pos, rx1019_tgt, $I10) = self."!cursor_start"() + getattribute rx1019_debug, rx1019_cur, "$!debug" .lex unicode:"$\x{a2}", rx1019_cur .local pmc match .lex "$/", match @@ -13214,7 +14356,9 @@ NQP::Compiler - NQP compiler substr rx1019_tgt, rx1019_tgt, rx1019_off rx1019_start: eq $I10, 1, rx1019_restart + if_null rx1019_debug, debug_840 rx1019_cur."!cursor_debug"("START ", "postfix:sym<++>") + debug_840: $I10 = self.'from'() ne $I10, -1, rxscan1023_done goto rxscan1023_scan @@ -13258,11 +14402,15 @@ NQP::Compiler - NQP compiler rx1019_pos = $P10."pos"() # rx pass rx1019_cur."!cursor_pass"(rx1019_pos, "postfix:sym<++>") + if_null rx1019_debug, debug_841 rx1019_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx1019_pos) + debug_841: .return (rx1019_cur) rx1019_restart: .annotate 'line', 447 + if_null rx1019_debug, debug_842 rx1019_cur."!cursor_debug"("NEXT ", "postfix:sym<++>") + debug_842: rx1019_fail: (rx1019_rep, rx1019_pos, $I10, $P10) = rx1019_cur."!mark_fail"(0) lt rx1019_pos, -1, rx1019_done @@ -13270,14 +14418,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1019_done: rx1019_cur."!cursor_fail"() + if_null rx1019_debug, debug_843 rx1019_cur."!cursor_debug"("FAIL ", "postfix:sym<++>") + debug_843: .return (rx1019_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postfix:sym<++>" :subid("259_1280467477.44751") :method +.sub "!PREFIX__postfix:sym<++>" :subid("259_1282016529.10767") :method .annotate 'line', 447 $P1021 = self."!PREFIX__!subrule"("O", "++") new $P1022, "ResizablePMCArray" @@ -13287,7 +14437,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postfix:sym<-->" :subid("260_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "postfix:sym<-->" :subid("260_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1026_tgt .local int rx1026_pos @@ -13295,7 +14445,9 @@ NQP::Compiler - NQP compiler .local int rx1026_eos .local int rx1026_rep .local pmc rx1026_cur + .local pmc rx1026_debug (rx1026_cur, rx1026_pos, rx1026_tgt, $I10) = self."!cursor_start"() + getattribute rx1026_debug, rx1026_cur, "$!debug" .lex unicode:"$\x{a2}", rx1026_cur .local pmc match .lex "$/", match @@ -13307,7 +14459,9 @@ NQP::Compiler - NQP compiler substr rx1026_tgt, rx1026_tgt, rx1026_off rx1026_start: eq $I10, 1, rx1026_restart + if_null rx1026_debug, debug_844 rx1026_cur."!cursor_debug"("START ", "postfix:sym<-->") + debug_844: $I10 = self.'from'() ne $I10, -1, rxscan1030_done goto rxscan1030_scan @@ -13351,11 +14505,15 @@ NQP::Compiler - NQP compiler rx1026_pos = $P10."pos"() # rx pass rx1026_cur."!cursor_pass"(rx1026_pos, "postfix:sym<-->") + if_null rx1026_debug, debug_845 rx1026_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx1026_pos) + debug_845: .return (rx1026_cur) rx1026_restart: .annotate 'line', 447 + if_null rx1026_debug, debug_846 rx1026_cur."!cursor_debug"("NEXT ", "postfix:sym<-->") + debug_846: rx1026_fail: (rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0) lt rx1026_pos, -1, rx1026_done @@ -13363,14 +14521,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1026_done: rx1026_cur."!cursor_fail"() + if_null rx1026_debug, debug_847 rx1026_cur."!cursor_debug"("FAIL ", "postfix:sym<-->") + debug_847: .return (rx1026_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postfix:sym<-->" :subid("261_1280467477.44751") :method +.sub "!PREFIX__postfix:sym<-->" :subid("261_1282016529.10767") :method .annotate 'line', 447 $P1028 = self."!PREFIX__!subrule"("O", "--") new $P1029, "ResizablePMCArray" @@ -13380,7 +14540,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<**>" :subid("262_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<**>" :subid("262_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1033_tgt .local int rx1033_pos @@ -13388,7 +14548,9 @@ NQP::Compiler - NQP compiler .local int rx1033_eos .local int rx1033_rep .local pmc rx1033_cur + .local pmc rx1033_debug (rx1033_cur, rx1033_pos, rx1033_tgt, $I10) = self."!cursor_start"() + getattribute rx1033_debug, rx1033_cur, "$!debug" .lex unicode:"$\x{a2}", rx1033_cur .local pmc match .lex "$/", match @@ -13400,7 +14562,9 @@ NQP::Compiler - NQP compiler substr rx1033_tgt, rx1033_tgt, rx1033_off rx1033_start: eq $I10, 1, rx1033_restart + if_null rx1033_debug, debug_848 rx1033_cur."!cursor_debug"("START ", "infix:sym<**>") + debug_848: $I10 = self.'from'() ne $I10, -1, rxscan1037_done goto rxscan1037_scan @@ -13444,11 +14608,15 @@ NQP::Compiler - NQP compiler rx1033_pos = $P10."pos"() # rx pass rx1033_cur."!cursor_pass"(rx1033_pos, "infix:sym<**>") + if_null rx1033_debug, debug_849 rx1033_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx1033_pos) + debug_849: .return (rx1033_cur) rx1033_restart: .annotate 'line', 447 + if_null rx1033_debug, debug_850 rx1033_cur."!cursor_debug"("NEXT ", "infix:sym<**>") + debug_850: rx1033_fail: (rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0) lt rx1033_pos, -1, rx1033_done @@ -13456,14 +14624,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1033_done: rx1033_cur."!cursor_fail"() + if_null rx1033_debug, debug_851 rx1033_cur."!cursor_debug"("FAIL ", "infix:sym<**>") + debug_851: .return (rx1033_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<**>" :subid("263_1280467477.44751") :method +.sub "!PREFIX__infix:sym<**>" :subid("263_1282016529.10767") :method .annotate 'line', 447 $P1035 = self."!PREFIX__!subrule"("O", "**") new $P1036, "ResizablePMCArray" @@ -13473,7 +14643,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<+>" :subid("264_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym<+>" :subid("264_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1040_tgt .local int rx1040_pos @@ -13481,7 +14651,9 @@ NQP::Compiler - NQP compiler .local int rx1040_eos .local int rx1040_rep .local pmc rx1040_cur + .local pmc rx1040_debug (rx1040_cur, rx1040_pos, rx1040_tgt, $I10) = self."!cursor_start"() + getattribute rx1040_debug, rx1040_cur, "$!debug" .lex unicode:"$\x{a2}", rx1040_cur .local pmc match .lex "$/", match @@ -13493,7 +14665,9 @@ NQP::Compiler - NQP compiler substr rx1040_tgt, rx1040_tgt, rx1040_off rx1040_start: eq $I10, 1, rx1040_restart + if_null rx1040_debug, debug_852 rx1040_cur."!cursor_debug"("START ", "prefix:sym<+>") + debug_852: $I10 = self.'from'() ne $I10, -1, rxscan1044_done goto rxscan1044_scan @@ -13514,8 +14688,8 @@ NQP::Compiler - NQP compiler add $I11, rx1040_pos, 1 gt $I11, rx1040_eos, rx1040_fail sub $I11, rx1040_pos, rx1040_off - substr $S10, rx1040_tgt, $I11, 1 - ne $S10, "+", rx1040_fail + ord $I11, rx1040_tgt, $I11 + ne $I11, 43, rx1040_fail add rx1040_pos, 1 set_addr $I10, rxcap_1045_fail ($I12, $I11) = rx1040_cur."!mark_peek"($I10) @@ -13537,11 +14711,15 @@ NQP::Compiler - NQP compiler rx1040_pos = $P10."pos"() # rx pass rx1040_cur."!cursor_pass"(rx1040_pos, "prefix:sym<+>") + if_null rx1040_debug, debug_853 rx1040_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx1040_pos) + debug_853: .return (rx1040_cur) rx1040_restart: .annotate 'line', 447 + if_null rx1040_debug, debug_854 rx1040_cur."!cursor_debug"("NEXT ", "prefix:sym<+>") + debug_854: rx1040_fail: (rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0) lt rx1040_pos, -1, rx1040_done @@ -13549,14 +14727,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1040_done: rx1040_cur."!cursor_fail"() + if_null rx1040_debug, debug_855 rx1040_cur."!cursor_debug"("FAIL ", "prefix:sym<+>") + debug_855: .return (rx1040_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<+>" :subid("265_1280467477.44751") :method +.sub "!PREFIX__prefix:sym<+>" :subid("265_1282016529.10767") :method .annotate 'line', 447 $P1042 = self."!PREFIX__!subrule"("O", "+") new $P1043, "ResizablePMCArray" @@ -13566,7 +14746,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<~>" :subid("266_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym<~>" :subid("266_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1047_tgt .local int rx1047_pos @@ -13574,7 +14754,9 @@ NQP::Compiler - NQP compiler .local int rx1047_eos .local int rx1047_rep .local pmc rx1047_cur + .local pmc rx1047_debug (rx1047_cur, rx1047_pos, rx1047_tgt, $I10) = self."!cursor_start"() + getattribute rx1047_debug, rx1047_cur, "$!debug" .lex unicode:"$\x{a2}", rx1047_cur .local pmc match .lex "$/", match @@ -13586,7 +14768,9 @@ NQP::Compiler - NQP compiler substr rx1047_tgt, rx1047_tgt, rx1047_off rx1047_start: eq $I10, 1, rx1047_restart + if_null rx1047_debug, debug_856 rx1047_cur."!cursor_debug"("START ", "prefix:sym<~>") + debug_856: $I10 = self.'from'() ne $I10, -1, rxscan1051_done goto rxscan1051_scan @@ -13607,8 +14791,8 @@ NQP::Compiler - NQP compiler add $I11, rx1047_pos, 1 gt $I11, rx1047_eos, rx1047_fail sub $I11, rx1047_pos, rx1047_off - substr $S10, rx1047_tgt, $I11, 1 - ne $S10, "~", rx1047_fail + ord $I11, rx1047_tgt, $I11 + ne $I11, 126, rx1047_fail add rx1047_pos, 1 set_addr $I10, rxcap_1052_fail ($I12, $I11) = rx1047_cur."!mark_peek"($I10) @@ -13630,11 +14814,15 @@ NQP::Compiler - NQP compiler rx1047_pos = $P10."pos"() # rx pass rx1047_cur."!cursor_pass"(rx1047_pos, "prefix:sym<~>") + if_null rx1047_debug, debug_857 rx1047_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx1047_pos) + debug_857: .return (rx1047_cur) rx1047_restart: .annotate 'line', 447 + if_null rx1047_debug, debug_858 rx1047_cur."!cursor_debug"("NEXT ", "prefix:sym<~>") + debug_858: rx1047_fail: (rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0) lt rx1047_pos, -1, rx1047_done @@ -13642,14 +14830,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1047_done: rx1047_cur."!cursor_fail"() + if_null rx1047_debug, debug_859 rx1047_cur."!cursor_debug"("FAIL ", "prefix:sym<~>") + debug_859: .return (rx1047_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<~>" :subid("267_1280467477.44751") :method +.sub "!PREFIX__prefix:sym<~>" :subid("267_1282016529.10767") :method .annotate 'line', 447 $P1049 = self."!PREFIX__!subrule"("O", "~") new $P1050, "ResizablePMCArray" @@ -13659,7 +14849,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<->" :subid("268_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym<->" :subid("268_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1054_tgt .local int rx1054_pos @@ -13667,7 +14857,9 @@ NQP::Compiler - NQP compiler .local int rx1054_eos .local int rx1054_rep .local pmc rx1054_cur + .local pmc rx1054_debug (rx1054_cur, rx1054_pos, rx1054_tgt, $I10) = self."!cursor_start"() + getattribute rx1054_debug, rx1054_cur, "$!debug" .lex unicode:"$\x{a2}", rx1054_cur .local pmc match .lex "$/", match @@ -13679,7 +14871,9 @@ NQP::Compiler - NQP compiler substr rx1054_tgt, rx1054_tgt, rx1054_off rx1054_start: eq $I10, 1, rx1054_restart + if_null rx1054_debug, debug_860 rx1054_cur."!cursor_debug"("START ", "prefix:sym<->") + debug_860: $I10 = self.'from'() ne $I10, -1, rxscan1057_done goto rxscan1057_scan @@ -13700,8 +14894,8 @@ NQP::Compiler - NQP compiler add $I11, rx1054_pos, 1 gt $I11, rx1054_eos, rx1054_fail sub $I11, rx1054_pos, rx1054_off - substr $S10, rx1054_tgt, $I11, 1 - ne $S10, "-", rx1054_fail + ord $I11, rx1054_tgt, $I11 + ne $I11, 45, rx1054_fail add rx1054_pos, 1 set_addr $I10, rxcap_1058_fail ($I12, $I11) = rx1054_cur."!mark_peek"($I10) @@ -13733,11 +14927,15 @@ NQP::Compiler - NQP compiler rx1054_pos = $P10."pos"() # rx pass rx1054_cur."!cursor_pass"(rx1054_pos, "prefix:sym<->") + if_null rx1054_debug, debug_861 rx1054_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx1054_pos) + debug_861: .return (rx1054_cur) rx1054_restart: .annotate 'line', 447 + if_null rx1054_debug, debug_862 rx1054_cur."!cursor_debug"("NEXT ", "prefix:sym<->") + debug_862: rx1054_fail: (rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0) lt rx1054_pos, -1, rx1054_done @@ -13745,14 +14943,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1054_done: rx1054_cur."!cursor_fail"() + if_null rx1054_debug, debug_863 rx1054_cur."!cursor_debug"("FAIL ", "prefix:sym<->") + debug_863: .return (rx1054_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<->" :subid("269_1280467477.44751") :method +.sub "!PREFIX__prefix:sym<->" :subid("269_1282016529.10767") :method .annotate 'line', 447 new $P1056, "ResizablePMCArray" push $P1056, "-" @@ -13761,7 +14961,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym" :subid("270_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym" :subid("270_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1060_tgt .local int rx1060_pos @@ -13769,7 +14969,9 @@ NQP::Compiler - NQP compiler .local int rx1060_eos .local int rx1060_rep .local pmc rx1060_cur + .local pmc rx1060_debug (rx1060_cur, rx1060_pos, rx1060_tgt, $I10) = self."!cursor_start"() + getattribute rx1060_debug, rx1060_cur, "$!debug" .lex unicode:"$\x{a2}", rx1060_cur .local pmc match .lex "$/", match @@ -13781,7 +14983,9 @@ NQP::Compiler - NQP compiler substr rx1060_tgt, rx1060_tgt, rx1060_off rx1060_start: eq $I10, 1, rx1060_restart + if_null rx1060_debug, debug_864 rx1060_cur."!cursor_debug"("START ", "prefix:sym") + debug_864: $I10 = self.'from'() ne $I10, -1, rxscan1064_done goto rxscan1064_scan @@ -13802,8 +15006,8 @@ NQP::Compiler - NQP compiler add $I11, rx1060_pos, 1 gt $I11, rx1060_eos, rx1060_fail sub $I11, rx1060_pos, rx1060_off - substr $S10, rx1060_tgt, $I11, 1 - ne $S10, "?", rx1060_fail + ord $I11, rx1060_tgt, $I11 + ne $I11, 63, rx1060_fail add rx1060_pos, 1 set_addr $I10, rxcap_1065_fail ($I12, $I11) = rx1060_cur."!mark_peek"($I10) @@ -13825,11 +15029,15 @@ NQP::Compiler - NQP compiler rx1060_pos = $P10."pos"() # rx pass rx1060_cur."!cursor_pass"(rx1060_pos, "prefix:sym") + if_null rx1060_debug, debug_865 rx1060_cur."!cursor_debug"("PASS ", "prefix:sym", " at pos=", rx1060_pos) + debug_865: .return (rx1060_cur) rx1060_restart: .annotate 'line', 447 + if_null rx1060_debug, debug_866 rx1060_cur."!cursor_debug"("NEXT ", "prefix:sym") + debug_866: rx1060_fail: (rx1060_rep, rx1060_pos, $I10, $P10) = rx1060_cur."!mark_fail"(0) lt rx1060_pos, -1, rx1060_done @@ -13837,14 +15045,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1060_done: rx1060_cur."!cursor_fail"() + if_null rx1060_debug, debug_867 rx1060_cur."!cursor_debug"("FAIL ", "prefix:sym") + debug_867: .return (rx1060_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym" :subid("271_1280467477.44751") :method +.sub "!PREFIX__prefix:sym" :subid("271_1282016529.10767") :method .annotate 'line', 447 $P1062 = self."!PREFIX__!subrule"("O", "?") new $P1063, "ResizablePMCArray" @@ -13854,7 +15064,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym" :subid("272_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym" :subid("272_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1067_tgt .local int rx1067_pos @@ -13862,7 +15072,9 @@ NQP::Compiler - NQP compiler .local int rx1067_eos .local int rx1067_rep .local pmc rx1067_cur + .local pmc rx1067_debug (rx1067_cur, rx1067_pos, rx1067_tgt, $I10) = self."!cursor_start"() + getattribute rx1067_debug, rx1067_cur, "$!debug" .lex unicode:"$\x{a2}", rx1067_cur .local pmc match .lex "$/", match @@ -13874,7 +15086,9 @@ NQP::Compiler - NQP compiler substr rx1067_tgt, rx1067_tgt, rx1067_off rx1067_start: eq $I10, 1, rx1067_restart + if_null rx1067_debug, debug_868 rx1067_cur."!cursor_debug"("START ", "prefix:sym") + debug_868: $I10 = self.'from'() ne $I10, -1, rxscan1071_done goto rxscan1071_scan @@ -13895,8 +15109,8 @@ NQP::Compiler - NQP compiler add $I11, rx1067_pos, 1 gt $I11, rx1067_eos, rx1067_fail sub $I11, rx1067_pos, rx1067_off - substr $S10, rx1067_tgt, $I11, 1 - ne $S10, "!", rx1067_fail + ord $I11, rx1067_tgt, $I11 + ne $I11, 33, rx1067_fail add rx1067_pos, 1 set_addr $I10, rxcap_1072_fail ($I12, $I11) = rx1067_cur."!mark_peek"($I10) @@ -13918,11 +15132,15 @@ NQP::Compiler - NQP compiler rx1067_pos = $P10."pos"() # rx pass rx1067_cur."!cursor_pass"(rx1067_pos, "prefix:sym") + if_null rx1067_debug, debug_869 rx1067_cur."!cursor_debug"("PASS ", "prefix:sym", " at pos=", rx1067_pos) + debug_869: .return (rx1067_cur) rx1067_restart: .annotate 'line', 447 + if_null rx1067_debug, debug_870 rx1067_cur."!cursor_debug"("NEXT ", "prefix:sym") + debug_870: rx1067_fail: (rx1067_rep, rx1067_pos, $I10, $P10) = rx1067_cur."!mark_fail"(0) lt rx1067_pos, -1, rx1067_done @@ -13930,14 +15148,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1067_done: rx1067_cur."!cursor_fail"() + if_null rx1067_debug, debug_871 rx1067_cur."!cursor_debug"("FAIL ", "prefix:sym") + debug_871: .return (rx1067_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym" :subid("273_1280467477.44751") :method +.sub "!PREFIX__prefix:sym" :subid("273_1282016529.10767") :method .annotate 'line', 447 $P1069 = self."!PREFIX__!subrule"("O", "!") new $P1070, "ResizablePMCArray" @@ -13947,7 +15167,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<|>" :subid("274_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym<|>" :subid("274_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1074_tgt .local int rx1074_pos @@ -13955,7 +15175,9 @@ NQP::Compiler - NQP compiler .local int rx1074_eos .local int rx1074_rep .local pmc rx1074_cur + .local pmc rx1074_debug (rx1074_cur, rx1074_pos, rx1074_tgt, $I10) = self."!cursor_start"() + getattribute rx1074_debug, rx1074_cur, "$!debug" .lex unicode:"$\x{a2}", rx1074_cur .local pmc match .lex "$/", match @@ -13967,7 +15189,9 @@ NQP::Compiler - NQP compiler substr rx1074_tgt, rx1074_tgt, rx1074_off rx1074_start: eq $I10, 1, rx1074_restart + if_null rx1074_debug, debug_872 rx1074_cur."!cursor_debug"("START ", "prefix:sym<|>") + debug_872: $I10 = self.'from'() ne $I10, -1, rxscan1078_done goto rxscan1078_scan @@ -13988,8 +15212,8 @@ NQP::Compiler - NQP compiler add $I11, rx1074_pos, 1 gt $I11, rx1074_eos, rx1074_fail sub $I11, rx1074_pos, rx1074_off - substr $S10, rx1074_tgt, $I11, 1 - ne $S10, "|", rx1074_fail + ord $I11, rx1074_tgt, $I11 + ne $I11, 124, rx1074_fail add rx1074_pos, 1 set_addr $I10, rxcap_1079_fail ($I12, $I11) = rx1074_cur."!mark_peek"($I10) @@ -14011,11 +15235,15 @@ NQP::Compiler - NQP compiler rx1074_pos = $P10."pos"() # rx pass rx1074_cur."!cursor_pass"(rx1074_pos, "prefix:sym<|>") + if_null rx1074_debug, debug_873 rx1074_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1074_pos) + debug_873: .return (rx1074_cur) rx1074_restart: .annotate 'line', 447 + if_null rx1074_debug, debug_874 rx1074_cur."!cursor_debug"("NEXT ", "prefix:sym<|>") + debug_874: rx1074_fail: (rx1074_rep, rx1074_pos, $I10, $P10) = rx1074_cur."!mark_fail"(0) lt rx1074_pos, -1, rx1074_done @@ -14023,14 +15251,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1074_done: rx1074_cur."!cursor_fail"() + if_null rx1074_debug, debug_875 rx1074_cur."!cursor_debug"("FAIL ", "prefix:sym<|>") + debug_875: .return (rx1074_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<|>" :subid("275_1280467477.44751") :method +.sub "!PREFIX__prefix:sym<|>" :subid("275_1282016529.10767") :method .annotate 'line', 447 $P1076 = self."!PREFIX__!subrule"("O", "|") new $P1077, "ResizablePMCArray" @@ -14040,7 +15270,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<*>" :subid("276_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<*>" :subid("276_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1081_tgt .local int rx1081_pos @@ -14048,7 +15278,9 @@ NQP::Compiler - NQP compiler .local int rx1081_eos .local int rx1081_rep .local pmc rx1081_cur + .local pmc rx1081_debug (rx1081_cur, rx1081_pos, rx1081_tgt, $I10) = self."!cursor_start"() + getattribute rx1081_debug, rx1081_cur, "$!debug" .lex unicode:"$\x{a2}", rx1081_cur .local pmc match .lex "$/", match @@ -14060,7 +15292,9 @@ NQP::Compiler - NQP compiler substr rx1081_tgt, rx1081_tgt, rx1081_off rx1081_start: eq $I10, 1, rx1081_restart + if_null rx1081_debug, debug_876 rx1081_cur."!cursor_debug"("START ", "infix:sym<*>") + debug_876: $I10 = self.'from'() ne $I10, -1, rxscan1085_done goto rxscan1085_scan @@ -14081,8 +15315,8 @@ NQP::Compiler - NQP compiler add $I11, rx1081_pos, 1 gt $I11, rx1081_eos, rx1081_fail sub $I11, rx1081_pos, rx1081_off - substr $S10, rx1081_tgt, $I11, 1 - ne $S10, "*", rx1081_fail + ord $I11, rx1081_tgt, $I11 + ne $I11, 42, rx1081_fail add rx1081_pos, 1 set_addr $I10, rxcap_1086_fail ($I12, $I11) = rx1081_cur."!mark_peek"($I10) @@ -14104,11 +15338,15 @@ NQP::Compiler - NQP compiler rx1081_pos = $P10."pos"() # rx pass rx1081_cur."!cursor_pass"(rx1081_pos, "infix:sym<*>") + if_null rx1081_debug, debug_877 rx1081_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1081_pos) + debug_877: .return (rx1081_cur) rx1081_restart: .annotate 'line', 447 + if_null rx1081_debug, debug_878 rx1081_cur."!cursor_debug"("NEXT ", "infix:sym<*>") + debug_878: rx1081_fail: (rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0) lt rx1081_pos, -1, rx1081_done @@ -14116,14 +15354,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1081_done: rx1081_cur."!cursor_fail"() + if_null rx1081_debug, debug_879 rx1081_cur."!cursor_debug"("FAIL ", "infix:sym<*>") + debug_879: .return (rx1081_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<*>" :subid("277_1280467477.44751") :method +.sub "!PREFIX__infix:sym<*>" :subid("277_1282016529.10767") :method .annotate 'line', 447 $P1083 = self."!PREFIX__!subrule"("O", "*") new $P1084, "ResizablePMCArray" @@ -14133,7 +15373,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("278_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("278_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1088_tgt .local int rx1088_pos @@ -14141,7 +15381,9 @@ NQP::Compiler - NQP compiler .local int rx1088_eos .local int rx1088_rep .local pmc rx1088_cur + .local pmc rx1088_debug (rx1088_cur, rx1088_pos, rx1088_tgt, $I10) = self."!cursor_start"() + getattribute rx1088_debug, rx1088_cur, "$!debug" .lex unicode:"$\x{a2}", rx1088_cur .local pmc match .lex "$/", match @@ -14153,7 +15395,9 @@ NQP::Compiler - NQP compiler substr rx1088_tgt, rx1088_tgt, rx1088_off rx1088_start: eq $I10, 1, rx1088_restart + if_null rx1088_debug, debug_880 rx1088_cur."!cursor_debug"("START ", "infix:sym") + debug_880: $I10 = self.'from'() ne $I10, -1, rxscan1092_done goto rxscan1092_scan @@ -14174,8 +15418,8 @@ NQP::Compiler - NQP compiler add $I11, rx1088_pos, 1 gt $I11, rx1088_eos, rx1088_fail sub $I11, rx1088_pos, rx1088_off - substr $S10, rx1088_tgt, $I11, 1 - ne $S10, "/", rx1088_fail + ord $I11, rx1088_tgt, $I11 + ne $I11, 47, rx1088_fail add rx1088_pos, 1 set_addr $I10, rxcap_1093_fail ($I12, $I11) = rx1088_cur."!mark_peek"($I10) @@ -14197,11 +15441,15 @@ NQP::Compiler - NQP compiler rx1088_pos = $P10."pos"() # rx pass rx1088_cur."!cursor_pass"(rx1088_pos, "infix:sym") + if_null rx1088_debug, debug_881 rx1088_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1088_pos) + debug_881: .return (rx1088_cur) rx1088_restart: .annotate 'line', 447 + if_null rx1088_debug, debug_882 rx1088_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_882: rx1088_fail: (rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0) lt rx1088_pos, -1, rx1088_done @@ -14209,14 +15457,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1088_done: rx1088_cur."!cursor_fail"() + if_null rx1088_debug, debug_883 rx1088_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_883: .return (rx1088_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("279_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("279_1282016529.10767") :method .annotate 'line', 447 $P1090 = self."!PREFIX__!subrule"("O", "/") new $P1091, "ResizablePMCArray" @@ -14226,7 +15476,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<%>" :subid("280_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<%>" :subid("280_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1095_tgt .local int rx1095_pos @@ -14234,7 +15484,9 @@ NQP::Compiler - NQP compiler .local int rx1095_eos .local int rx1095_rep .local pmc rx1095_cur + .local pmc rx1095_debug (rx1095_cur, rx1095_pos, rx1095_tgt, $I10) = self."!cursor_start"() + getattribute rx1095_debug, rx1095_cur, "$!debug" .lex unicode:"$\x{a2}", rx1095_cur .local pmc match .lex "$/", match @@ -14246,7 +15498,9 @@ NQP::Compiler - NQP compiler substr rx1095_tgt, rx1095_tgt, rx1095_off rx1095_start: eq $I10, 1, rx1095_restart + if_null rx1095_debug, debug_884 rx1095_cur."!cursor_debug"("START ", "infix:sym<%>") + debug_884: $I10 = self.'from'() ne $I10, -1, rxscan1099_done goto rxscan1099_scan @@ -14267,8 +15521,8 @@ NQP::Compiler - NQP compiler add $I11, rx1095_pos, 1 gt $I11, rx1095_eos, rx1095_fail sub $I11, rx1095_pos, rx1095_off - substr $S10, rx1095_tgt, $I11, 1 - ne $S10, "%", rx1095_fail + ord $I11, rx1095_tgt, $I11 + ne $I11, 37, rx1095_fail add rx1095_pos, 1 set_addr $I10, rxcap_1100_fail ($I12, $I11) = rx1095_cur."!mark_peek"($I10) @@ -14290,11 +15544,15 @@ NQP::Compiler - NQP compiler rx1095_pos = $P10."pos"() # rx pass rx1095_cur."!cursor_pass"(rx1095_pos, "infix:sym<%>") + if_null rx1095_debug, debug_885 rx1095_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1095_pos) + debug_885: .return (rx1095_cur) rx1095_restart: .annotate 'line', 447 + if_null rx1095_debug, debug_886 rx1095_cur."!cursor_debug"("NEXT ", "infix:sym<%>") + debug_886: rx1095_fail: (rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0) lt rx1095_pos, -1, rx1095_done @@ -14302,14 +15560,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1095_done: rx1095_cur."!cursor_fail"() + if_null rx1095_debug, debug_887 rx1095_cur."!cursor_debug"("FAIL ", "infix:sym<%>") + debug_887: .return (rx1095_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<%>" :subid("281_1280467477.44751") :method +.sub "!PREFIX__infix:sym<%>" :subid("281_1282016529.10767") :method .annotate 'line', 447 $P1097 = self."!PREFIX__!subrule"("O", "%") new $P1098, "ResizablePMCArray" @@ -14319,7 +15579,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<+&>" :subid("282_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<+&>" :subid("282_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1102_tgt .local int rx1102_pos @@ -14327,7 +15587,9 @@ NQP::Compiler - NQP compiler .local int rx1102_eos .local int rx1102_rep .local pmc rx1102_cur + .local pmc rx1102_debug (rx1102_cur, rx1102_pos, rx1102_tgt, $I10) = self."!cursor_start"() + getattribute rx1102_debug, rx1102_cur, "$!debug" .lex unicode:"$\x{a2}", rx1102_cur .local pmc match .lex "$/", match @@ -14339,7 +15601,9 @@ NQP::Compiler - NQP compiler substr rx1102_tgt, rx1102_tgt, rx1102_off rx1102_start: eq $I10, 1, rx1102_restart + if_null rx1102_debug, debug_888 rx1102_cur."!cursor_debug"("START ", "infix:sym<+&>") + debug_888: $I10 = self.'from'() ne $I10, -1, rxscan1106_done goto rxscan1106_scan @@ -14383,11 +15647,15 @@ NQP::Compiler - NQP compiler rx1102_pos = $P10."pos"() # rx pass rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<+&>") + if_null rx1102_debug, debug_889 rx1102_cur."!cursor_debug"("PASS ", "infix:sym<+&>", " at pos=", rx1102_pos) + debug_889: .return (rx1102_cur) rx1102_restart: .annotate 'line', 447 + if_null rx1102_debug, debug_890 rx1102_cur."!cursor_debug"("NEXT ", "infix:sym<+&>") + debug_890: rx1102_fail: (rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0) lt rx1102_pos, -1, rx1102_done @@ -14395,14 +15663,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1102_done: rx1102_cur."!cursor_fail"() + if_null rx1102_debug, debug_891 rx1102_cur."!cursor_debug"("FAIL ", "infix:sym<+&>") + debug_891: .return (rx1102_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<+&>" :subid("283_1280467477.44751") :method +.sub "!PREFIX__infix:sym<+&>" :subid("283_1282016529.10767") :method .annotate 'line', 447 $P1104 = self."!PREFIX__!subrule"("O", "+&") new $P1105, "ResizablePMCArray" @@ -14412,7 +15682,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<+>" :subid("284_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<+>" :subid("284_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1109_tgt .local int rx1109_pos @@ -14420,7 +15690,9 @@ NQP::Compiler - NQP compiler .local int rx1109_eos .local int rx1109_rep .local pmc rx1109_cur + .local pmc rx1109_debug (rx1109_cur, rx1109_pos, rx1109_tgt, $I10) = self."!cursor_start"() + getattribute rx1109_debug, rx1109_cur, "$!debug" .lex unicode:"$\x{a2}", rx1109_cur .local pmc match .lex "$/", match @@ -14432,7 +15704,9 @@ NQP::Compiler - NQP compiler substr rx1109_tgt, rx1109_tgt, rx1109_off rx1109_start: eq $I10, 1, rx1109_restart + if_null rx1109_debug, debug_892 rx1109_cur."!cursor_debug"("START ", "infix:sym<+>") + debug_892: $I10 = self.'from'() ne $I10, -1, rxscan1113_done goto rxscan1113_scan @@ -14453,8 +15727,8 @@ NQP::Compiler - NQP compiler add $I11, rx1109_pos, 1 gt $I11, rx1109_eos, rx1109_fail sub $I11, rx1109_pos, rx1109_off - substr $S10, rx1109_tgt, $I11, 1 - ne $S10, "+", rx1109_fail + ord $I11, rx1109_tgt, $I11 + ne $I11, 43, rx1109_fail add rx1109_pos, 1 set_addr $I10, rxcap_1114_fail ($I12, $I11) = rx1109_cur."!mark_peek"($I10) @@ -14476,11 +15750,15 @@ NQP::Compiler - NQP compiler rx1109_pos = $P10."pos"() # rx pass rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym<+>") + if_null rx1109_debug, debug_893 rx1109_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1109_pos) + debug_893: .return (rx1109_cur) rx1109_restart: .annotate 'line', 447 + if_null rx1109_debug, debug_894 rx1109_cur."!cursor_debug"("NEXT ", "infix:sym<+>") + debug_894: rx1109_fail: (rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0) lt rx1109_pos, -1, rx1109_done @@ -14488,14 +15766,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1109_done: rx1109_cur."!cursor_fail"() + if_null rx1109_debug, debug_895 rx1109_cur."!cursor_debug"("FAIL ", "infix:sym<+>") + debug_895: .return (rx1109_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<+>" :subid("285_1280467477.44751") :method +.sub "!PREFIX__infix:sym<+>" :subid("285_1282016529.10767") :method .annotate 'line', 447 $P1111 = self."!PREFIX__!subrule"("O", "+") new $P1112, "ResizablePMCArray" @@ -14505,7 +15785,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<->" :subid("286_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<->" :subid("286_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1116_tgt .local int rx1116_pos @@ -14513,7 +15793,9 @@ NQP::Compiler - NQP compiler .local int rx1116_eos .local int rx1116_rep .local pmc rx1116_cur + .local pmc rx1116_debug (rx1116_cur, rx1116_pos, rx1116_tgt, $I10) = self."!cursor_start"() + getattribute rx1116_debug, rx1116_cur, "$!debug" .lex unicode:"$\x{a2}", rx1116_cur .local pmc match .lex "$/", match @@ -14525,7 +15807,9 @@ NQP::Compiler - NQP compiler substr rx1116_tgt, rx1116_tgt, rx1116_off rx1116_start: eq $I10, 1, rx1116_restart + if_null rx1116_debug, debug_896 rx1116_cur."!cursor_debug"("START ", "infix:sym<->") + debug_896: $I10 = self.'from'() ne $I10, -1, rxscan1120_done goto rxscan1120_scan @@ -14546,8 +15830,8 @@ NQP::Compiler - NQP compiler add $I11, rx1116_pos, 1 gt $I11, rx1116_eos, rx1116_fail sub $I11, rx1116_pos, rx1116_off - substr $S10, rx1116_tgt, $I11, 1 - ne $S10, "-", rx1116_fail + ord $I11, rx1116_tgt, $I11 + ne $I11, 45, rx1116_fail add rx1116_pos, 1 set_addr $I10, rxcap_1121_fail ($I12, $I11) = rx1116_cur."!mark_peek"($I10) @@ -14569,11 +15853,15 @@ NQP::Compiler - NQP compiler rx1116_pos = $P10."pos"() # rx pass rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<->") + if_null rx1116_debug, debug_897 rx1116_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1116_pos) + debug_897: .return (rx1116_cur) rx1116_restart: .annotate 'line', 447 + if_null rx1116_debug, debug_898 rx1116_cur."!cursor_debug"("NEXT ", "infix:sym<->") + debug_898: rx1116_fail: (rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0) lt rx1116_pos, -1, rx1116_done @@ -14581,14 +15869,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1116_done: rx1116_cur."!cursor_fail"() + if_null rx1116_debug, debug_899 rx1116_cur."!cursor_debug"("FAIL ", "infix:sym<->") + debug_899: .return (rx1116_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<->" :subid("287_1280467477.44751") :method +.sub "!PREFIX__infix:sym<->" :subid("287_1282016529.10767") :method .annotate 'line', 447 $P1118 = self."!PREFIX__!subrule"("O", "-") new $P1119, "ResizablePMCArray" @@ -14598,7 +15888,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<+|>" :subid("288_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<+|>" :subid("288_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1123_tgt .local int rx1123_pos @@ -14606,7 +15896,9 @@ NQP::Compiler - NQP compiler .local int rx1123_eos .local int rx1123_rep .local pmc rx1123_cur + .local pmc rx1123_debug (rx1123_cur, rx1123_pos, rx1123_tgt, $I10) = self."!cursor_start"() + getattribute rx1123_debug, rx1123_cur, "$!debug" .lex unicode:"$\x{a2}", rx1123_cur .local pmc match .lex "$/", match @@ -14618,7 +15910,9 @@ NQP::Compiler - NQP compiler substr rx1123_tgt, rx1123_tgt, rx1123_off rx1123_start: eq $I10, 1, rx1123_restart + if_null rx1123_debug, debug_900 rx1123_cur."!cursor_debug"("START ", "infix:sym<+|>") + debug_900: $I10 = self.'from'() ne $I10, -1, rxscan1127_done goto rxscan1127_scan @@ -14662,11 +15956,15 @@ NQP::Compiler - NQP compiler rx1123_pos = $P10."pos"() # rx pass rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+|>") + if_null rx1123_debug, debug_901 rx1123_cur."!cursor_debug"("PASS ", "infix:sym<+|>", " at pos=", rx1123_pos) + debug_901: .return (rx1123_cur) rx1123_restart: .annotate 'line', 447 + if_null rx1123_debug, debug_902 rx1123_cur."!cursor_debug"("NEXT ", "infix:sym<+|>") + debug_902: rx1123_fail: (rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0) lt rx1123_pos, -1, rx1123_done @@ -14674,14 +15972,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1123_done: rx1123_cur."!cursor_fail"() + if_null rx1123_debug, debug_903 rx1123_cur."!cursor_debug"("FAIL ", "infix:sym<+|>") + debug_903: .return (rx1123_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<+|>" :subid("289_1280467477.44751") :method +.sub "!PREFIX__infix:sym<+|>" :subid("289_1282016529.10767") :method .annotate 'line', 447 $P1125 = self."!PREFIX__!subrule"("O", "+|") new $P1126, "ResizablePMCArray" @@ -14691,7 +15991,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<+^>" :subid("290_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<+^>" :subid("290_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1130_tgt .local int rx1130_pos @@ -14699,7 +15999,9 @@ NQP::Compiler - NQP compiler .local int rx1130_eos .local int rx1130_rep .local pmc rx1130_cur + .local pmc rx1130_debug (rx1130_cur, rx1130_pos, rx1130_tgt, $I10) = self."!cursor_start"() + getattribute rx1130_debug, rx1130_cur, "$!debug" .lex unicode:"$\x{a2}", rx1130_cur .local pmc match .lex "$/", match @@ -14711,7 +16013,9 @@ NQP::Compiler - NQP compiler substr rx1130_tgt, rx1130_tgt, rx1130_off rx1130_start: eq $I10, 1, rx1130_restart + if_null rx1130_debug, debug_904 rx1130_cur."!cursor_debug"("START ", "infix:sym<+^>") + debug_904: $I10 = self.'from'() ne $I10, -1, rxscan1134_done goto rxscan1134_scan @@ -14755,11 +16059,15 @@ NQP::Compiler - NQP compiler rx1130_pos = $P10."pos"() # rx pass rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<+^>") + if_null rx1130_debug, debug_905 rx1130_cur."!cursor_debug"("PASS ", "infix:sym<+^>", " at pos=", rx1130_pos) + debug_905: .return (rx1130_cur) rx1130_restart: .annotate 'line', 447 + if_null rx1130_debug, debug_906 rx1130_cur."!cursor_debug"("NEXT ", "infix:sym<+^>") + debug_906: rx1130_fail: (rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0) lt rx1130_pos, -1, rx1130_done @@ -14767,14 +16075,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1130_done: rx1130_cur."!cursor_fail"() + if_null rx1130_debug, debug_907 rx1130_cur."!cursor_debug"("FAIL ", "infix:sym<+^>") + debug_907: .return (rx1130_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<+^>" :subid("291_1280467477.44751") :method +.sub "!PREFIX__infix:sym<+^>" :subid("291_1282016529.10767") :method .annotate 'line', 447 $P1132 = self."!PREFIX__!subrule"("O", "+^") new $P1133, "ResizablePMCArray" @@ -14784,7 +16094,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<~>" :subid("292_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<~>" :subid("292_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1137_tgt .local int rx1137_pos @@ -14792,7 +16102,9 @@ NQP::Compiler - NQP compiler .local int rx1137_eos .local int rx1137_rep .local pmc rx1137_cur + .local pmc rx1137_debug (rx1137_cur, rx1137_pos, rx1137_tgt, $I10) = self."!cursor_start"() + getattribute rx1137_debug, rx1137_cur, "$!debug" .lex unicode:"$\x{a2}", rx1137_cur .local pmc match .lex "$/", match @@ -14804,7 +16116,9 @@ NQP::Compiler - NQP compiler substr rx1137_tgt, rx1137_tgt, rx1137_off rx1137_start: eq $I10, 1, rx1137_restart + if_null rx1137_debug, debug_908 rx1137_cur."!cursor_debug"("START ", "infix:sym<~>") + debug_908: $I10 = self.'from'() ne $I10, -1, rxscan1141_done goto rxscan1141_scan @@ -14825,8 +16139,8 @@ NQP::Compiler - NQP compiler add $I11, rx1137_pos, 1 gt $I11, rx1137_eos, rx1137_fail sub $I11, rx1137_pos, rx1137_off - substr $S10, rx1137_tgt, $I11, 1 - ne $S10, "~", rx1137_fail + ord $I11, rx1137_tgt, $I11 + ne $I11, 126, rx1137_fail add rx1137_pos, 1 set_addr $I10, rxcap_1142_fail ($I12, $I11) = rx1137_cur."!mark_peek"($I10) @@ -14848,11 +16162,15 @@ NQP::Compiler - NQP compiler rx1137_pos = $P10."pos"() # rx pass rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>") + if_null rx1137_debug, debug_909 rx1137_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1137_pos) + debug_909: .return (rx1137_cur) rx1137_restart: .annotate 'line', 447 + if_null rx1137_debug, debug_910 rx1137_cur."!cursor_debug"("NEXT ", "infix:sym<~>") + debug_910: rx1137_fail: (rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0) lt rx1137_pos, -1, rx1137_done @@ -14860,14 +16178,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1137_done: rx1137_cur."!cursor_fail"() + if_null rx1137_debug, debug_911 rx1137_cur."!cursor_debug"("FAIL ", "infix:sym<~>") + debug_911: .return (rx1137_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<~>" :subid("293_1280467477.44751") :method +.sub "!PREFIX__infix:sym<~>" :subid("293_1282016529.10767") :method .annotate 'line', 447 $P1139 = self."!PREFIX__!subrule"("O", "~") new $P1140, "ResizablePMCArray" @@ -14877,7 +16197,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<==>" :subid("294_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<==>" :subid("294_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1144_tgt .local int rx1144_pos @@ -14885,7 +16205,9 @@ NQP::Compiler - NQP compiler .local int rx1144_eos .local int rx1144_rep .local pmc rx1144_cur + .local pmc rx1144_debug (rx1144_cur, rx1144_pos, rx1144_tgt, $I10) = self."!cursor_start"() + getattribute rx1144_debug, rx1144_cur, "$!debug" .lex unicode:"$\x{a2}", rx1144_cur .local pmc match .lex "$/", match @@ -14897,7 +16219,9 @@ NQP::Compiler - NQP compiler substr rx1144_tgt, rx1144_tgt, rx1144_off rx1144_start: eq $I10, 1, rx1144_restart + if_null rx1144_debug, debug_912 rx1144_cur."!cursor_debug"("START ", "infix:sym<==>") + debug_912: $I10 = self.'from'() ne $I10, -1, rxscan1148_done goto rxscan1148_scan @@ -14941,11 +16265,15 @@ NQP::Compiler - NQP compiler rx1144_pos = $P10."pos"() # rx pass rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>") + if_null rx1144_debug, debug_913 rx1144_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1144_pos) + debug_913: .return (rx1144_cur) rx1144_restart: .annotate 'line', 447 + if_null rx1144_debug, debug_914 rx1144_cur."!cursor_debug"("NEXT ", "infix:sym<==>") + debug_914: rx1144_fail: (rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0) lt rx1144_pos, -1, rx1144_done @@ -14953,14 +16281,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1144_done: rx1144_cur."!cursor_fail"() + if_null rx1144_debug, debug_915 rx1144_cur."!cursor_debug"("FAIL ", "infix:sym<==>") + debug_915: .return (rx1144_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<==>" :subid("295_1280467477.44751") :method +.sub "!PREFIX__infix:sym<==>" :subid("295_1282016529.10767") :method .annotate 'line', 447 $P1146 = self."!PREFIX__!subrule"("O", "==") new $P1147, "ResizablePMCArray" @@ -14970,7 +16300,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("296_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("296_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1151_tgt .local int rx1151_pos @@ -14978,7 +16308,9 @@ NQP::Compiler - NQP compiler .local int rx1151_eos .local int rx1151_rep .local pmc rx1151_cur + .local pmc rx1151_debug (rx1151_cur, rx1151_pos, rx1151_tgt, $I10) = self."!cursor_start"() + getattribute rx1151_debug, rx1151_cur, "$!debug" .lex unicode:"$\x{a2}", rx1151_cur .local pmc match .lex "$/", match @@ -14990,7 +16322,9 @@ NQP::Compiler - NQP compiler substr rx1151_tgt, rx1151_tgt, rx1151_off rx1151_start: eq $I10, 1, rx1151_restart + if_null rx1151_debug, debug_916 rx1151_cur."!cursor_debug"("START ", "infix:sym") + debug_916: $I10 = self.'from'() ne $I10, -1, rxscan1155_done goto rxscan1155_scan @@ -15034,11 +16368,15 @@ NQP::Compiler - NQP compiler rx1151_pos = $P10."pos"() # rx pass rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym") + if_null rx1151_debug, debug_917 rx1151_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1151_pos) + debug_917: .return (rx1151_cur) rx1151_restart: .annotate 'line', 447 + if_null rx1151_debug, debug_918 rx1151_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_918: rx1151_fail: (rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0) lt rx1151_pos, -1, rx1151_done @@ -15046,14 +16384,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1151_done: rx1151_cur."!cursor_fail"() + if_null rx1151_debug, debug_919 rx1151_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_919: .return (rx1151_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("297_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("297_1282016529.10767") :method .annotate 'line', 447 $P1153 = self."!PREFIX__!subrule"("O", "!=") new $P1154, "ResizablePMCArray" @@ -15063,7 +16403,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<<=>" :subid("298_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<<=>" :subid("298_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1158_tgt .local int rx1158_pos @@ -15071,7 +16411,9 @@ NQP::Compiler - NQP compiler .local int rx1158_eos .local int rx1158_rep .local pmc rx1158_cur + .local pmc rx1158_debug (rx1158_cur, rx1158_pos, rx1158_tgt, $I10) = self."!cursor_start"() + getattribute rx1158_debug, rx1158_cur, "$!debug" .lex unicode:"$\x{a2}", rx1158_cur .local pmc match .lex "$/", match @@ -15083,7 +16425,9 @@ NQP::Compiler - NQP compiler substr rx1158_tgt, rx1158_tgt, rx1158_off rx1158_start: eq $I10, 1, rx1158_restart + if_null rx1158_debug, debug_920 rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>") + debug_920: $I10 = self.'from'() ne $I10, -1, rxscan1162_done goto rxscan1162_scan @@ -15127,11 +16471,15 @@ NQP::Compiler - NQP compiler rx1158_pos = $P10."pos"() # rx pass rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>") + if_null rx1158_debug, debug_921 rx1158_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1158_pos) + debug_921: .return (rx1158_cur) rx1158_restart: .annotate 'line', 447 + if_null rx1158_debug, debug_922 rx1158_cur."!cursor_debug"("NEXT ", "infix:sym<<=>") + debug_922: rx1158_fail: (rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0) lt rx1158_pos, -1, rx1158_done @@ -15139,14 +16487,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1158_done: rx1158_cur."!cursor_fail"() + if_null rx1158_debug, debug_923 rx1158_cur."!cursor_debug"("FAIL ", "infix:sym<<=>") + debug_923: .return (rx1158_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<<=>" :subid("299_1280467477.44751") :method +.sub "!PREFIX__infix:sym<<=>" :subid("299_1282016529.10767") :method .annotate 'line', 447 $P1160 = self."!PREFIX__!subrule"("O", "<=") new $P1161, "ResizablePMCArray" @@ -15156,7 +16506,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<>=>" :subid("300_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<>=>" :subid("300_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1165_tgt .local int rx1165_pos @@ -15164,7 +16514,9 @@ NQP::Compiler - NQP compiler .local int rx1165_eos .local int rx1165_rep .local pmc rx1165_cur + .local pmc rx1165_debug (rx1165_cur, rx1165_pos, rx1165_tgt, $I10) = self."!cursor_start"() + getattribute rx1165_debug, rx1165_cur, "$!debug" .lex unicode:"$\x{a2}", rx1165_cur .local pmc match .lex "$/", match @@ -15176,7 +16528,9 @@ NQP::Compiler - NQP compiler substr rx1165_tgt, rx1165_tgt, rx1165_off rx1165_start: eq $I10, 1, rx1165_restart + if_null rx1165_debug, debug_924 rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>") + debug_924: $I10 = self.'from'() ne $I10, -1, rxscan1169_done goto rxscan1169_scan @@ -15220,11 +16574,15 @@ NQP::Compiler - NQP compiler rx1165_pos = $P10."pos"() # rx pass rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>") + if_null rx1165_debug, debug_925 rx1165_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1165_pos) + debug_925: .return (rx1165_cur) rx1165_restart: .annotate 'line', 447 + if_null rx1165_debug, debug_926 rx1165_cur."!cursor_debug"("NEXT ", "infix:sym<>=>") + debug_926: rx1165_fail: (rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0) lt rx1165_pos, -1, rx1165_done @@ -15232,14 +16590,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1165_done: rx1165_cur."!cursor_fail"() + if_null rx1165_debug, debug_927 rx1165_cur."!cursor_debug"("FAIL ", "infix:sym<>=>") + debug_927: .return (rx1165_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<>=>" :subid("301_1280467477.44751") :method +.sub "!PREFIX__infix:sym<>=>" :subid("301_1282016529.10767") :method .annotate 'line', 447 $P1167 = self."!PREFIX__!subrule"("O", ">=") new $P1168, "ResizablePMCArray" @@ -15249,7 +16609,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<<>" :subid("302_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<<>" :subid("302_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1172_tgt .local int rx1172_pos @@ -15257,7 +16617,9 @@ NQP::Compiler - NQP compiler .local int rx1172_eos .local int rx1172_rep .local pmc rx1172_cur + .local pmc rx1172_debug (rx1172_cur, rx1172_pos, rx1172_tgt, $I10) = self."!cursor_start"() + getattribute rx1172_debug, rx1172_cur, "$!debug" .lex unicode:"$\x{a2}", rx1172_cur .local pmc match .lex "$/", match @@ -15269,7 +16631,9 @@ NQP::Compiler - NQP compiler substr rx1172_tgt, rx1172_tgt, rx1172_off rx1172_start: eq $I10, 1, rx1172_restart + if_null rx1172_debug, debug_928 rx1172_cur."!cursor_debug"("START ", "infix:sym<<>") + debug_928: $I10 = self.'from'() ne $I10, -1, rxscan1176_done goto rxscan1176_scan @@ -15290,8 +16654,8 @@ NQP::Compiler - NQP compiler add $I11, rx1172_pos, 1 gt $I11, rx1172_eos, rx1172_fail sub $I11, rx1172_pos, rx1172_off - substr $S10, rx1172_tgt, $I11, 1 - ne $S10, "<", rx1172_fail + ord $I11, rx1172_tgt, $I11 + ne $I11, 60, rx1172_fail add rx1172_pos, 1 set_addr $I10, rxcap_1177_fail ($I12, $I11) = rx1172_cur."!mark_peek"($I10) @@ -15313,11 +16677,15 @@ NQP::Compiler - NQP compiler rx1172_pos = $P10."pos"() # rx pass rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>") + if_null rx1172_debug, debug_929 rx1172_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1172_pos) + debug_929: .return (rx1172_cur) rx1172_restart: .annotate 'line', 447 + if_null rx1172_debug, debug_930 rx1172_cur."!cursor_debug"("NEXT ", "infix:sym<<>") + debug_930: rx1172_fail: (rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0) lt rx1172_pos, -1, rx1172_done @@ -15325,14 +16693,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1172_done: rx1172_cur."!cursor_fail"() + if_null rx1172_debug, debug_931 rx1172_cur."!cursor_debug"("FAIL ", "infix:sym<<>") + debug_931: .return (rx1172_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<<>" :subid("303_1280467477.44751") :method +.sub "!PREFIX__infix:sym<<>" :subid("303_1282016529.10767") :method .annotate 'line', 447 $P1174 = self."!PREFIX__!subrule"("O", "<") new $P1175, "ResizablePMCArray" @@ -15342,7 +16712,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<>>" :subid("304_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<>>" :subid("304_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1179_tgt .local int rx1179_pos @@ -15350,7 +16720,9 @@ NQP::Compiler - NQP compiler .local int rx1179_eos .local int rx1179_rep .local pmc rx1179_cur + .local pmc rx1179_debug (rx1179_cur, rx1179_pos, rx1179_tgt, $I10) = self."!cursor_start"() + getattribute rx1179_debug, rx1179_cur, "$!debug" .lex unicode:"$\x{a2}", rx1179_cur .local pmc match .lex "$/", match @@ -15362,7 +16734,9 @@ NQP::Compiler - NQP compiler substr rx1179_tgt, rx1179_tgt, rx1179_off rx1179_start: eq $I10, 1, rx1179_restart + if_null rx1179_debug, debug_932 rx1179_cur."!cursor_debug"("START ", "infix:sym<>>") + debug_932: $I10 = self.'from'() ne $I10, -1, rxscan1183_done goto rxscan1183_scan @@ -15383,8 +16757,8 @@ NQP::Compiler - NQP compiler add $I11, rx1179_pos, 1 gt $I11, rx1179_eos, rx1179_fail sub $I11, rx1179_pos, rx1179_off - substr $S10, rx1179_tgt, $I11, 1 - ne $S10, ">", rx1179_fail + ord $I11, rx1179_tgt, $I11 + ne $I11, 62, rx1179_fail add rx1179_pos, 1 set_addr $I10, rxcap_1184_fail ($I12, $I11) = rx1179_cur."!mark_peek"($I10) @@ -15406,11 +16780,15 @@ NQP::Compiler - NQP compiler rx1179_pos = $P10."pos"() # rx pass rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>") + if_null rx1179_debug, debug_933 rx1179_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1179_pos) + debug_933: .return (rx1179_cur) rx1179_restart: .annotate 'line', 447 + if_null rx1179_debug, debug_934 rx1179_cur."!cursor_debug"("NEXT ", "infix:sym<>>") + debug_934: rx1179_fail: (rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0) lt rx1179_pos, -1, rx1179_done @@ -15418,14 +16796,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1179_done: rx1179_cur."!cursor_fail"() + if_null rx1179_debug, debug_935 rx1179_cur."!cursor_debug"("FAIL ", "infix:sym<>>") + debug_935: .return (rx1179_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<>>" :subid("305_1280467477.44751") :method +.sub "!PREFIX__infix:sym<>>" :subid("305_1282016529.10767") :method .annotate 'line', 447 $P1181 = self."!PREFIX__!subrule"("O", ">") new $P1182, "ResizablePMCArray" @@ -15435,7 +16815,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("306_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("306_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1186_tgt .local int rx1186_pos @@ -15443,7 +16823,9 @@ NQP::Compiler - NQP compiler .local int rx1186_eos .local int rx1186_rep .local pmc rx1186_cur + .local pmc rx1186_debug (rx1186_cur, rx1186_pos, rx1186_tgt, $I10) = self."!cursor_start"() + getattribute rx1186_debug, rx1186_cur, "$!debug" .lex unicode:"$\x{a2}", rx1186_cur .local pmc match .lex "$/", match @@ -15455,7 +16837,9 @@ NQP::Compiler - NQP compiler substr rx1186_tgt, rx1186_tgt, rx1186_off rx1186_start: eq $I10, 1, rx1186_restart + if_null rx1186_debug, debug_936 rx1186_cur."!cursor_debug"("START ", "infix:sym") + debug_936: $I10 = self.'from'() ne $I10, -1, rxscan1190_done goto rxscan1190_scan @@ -15499,11 +16883,15 @@ NQP::Compiler - NQP compiler rx1186_pos = $P10."pos"() # rx pass rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym") + if_null rx1186_debug, debug_937 rx1186_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1186_pos) + debug_937: .return (rx1186_cur) rx1186_restart: .annotate 'line', 447 + if_null rx1186_debug, debug_938 rx1186_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_938: rx1186_fail: (rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0) lt rx1186_pos, -1, rx1186_done @@ -15511,14 +16899,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1186_done: rx1186_cur."!cursor_fail"() + if_null rx1186_debug, debug_939 rx1186_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_939: .return (rx1186_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("307_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("307_1282016529.10767") :method .annotate 'line', 447 $P1188 = self."!PREFIX__!subrule"("O", "eq") new $P1189, "ResizablePMCArray" @@ -15528,7 +16918,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("308_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("308_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1193_tgt .local int rx1193_pos @@ -15536,7 +16926,9 @@ NQP::Compiler - NQP compiler .local int rx1193_eos .local int rx1193_rep .local pmc rx1193_cur + .local pmc rx1193_debug (rx1193_cur, rx1193_pos, rx1193_tgt, $I10) = self."!cursor_start"() + getattribute rx1193_debug, rx1193_cur, "$!debug" .lex unicode:"$\x{a2}", rx1193_cur .local pmc match .lex "$/", match @@ -15548,7 +16940,9 @@ NQP::Compiler - NQP compiler substr rx1193_tgt, rx1193_tgt, rx1193_off rx1193_start: eq $I10, 1, rx1193_restart + if_null rx1193_debug, debug_940 rx1193_cur."!cursor_debug"("START ", "infix:sym") + debug_940: $I10 = self.'from'() ne $I10, -1, rxscan1197_done goto rxscan1197_scan @@ -15592,11 +16986,15 @@ NQP::Compiler - NQP compiler rx1193_pos = $P10."pos"() # rx pass rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym") + if_null rx1193_debug, debug_941 rx1193_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1193_pos) + debug_941: .return (rx1193_cur) rx1193_restart: .annotate 'line', 447 + if_null rx1193_debug, debug_942 rx1193_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_942: rx1193_fail: (rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0) lt rx1193_pos, -1, rx1193_done @@ -15604,14 +17002,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1193_done: rx1193_cur."!cursor_fail"() + if_null rx1193_debug, debug_943 rx1193_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_943: .return (rx1193_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("309_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("309_1282016529.10767") :method .annotate 'line', 447 $P1195 = self."!PREFIX__!subrule"("O", "ne") new $P1196, "ResizablePMCArray" @@ -15621,7 +17021,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("310_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("310_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1200_tgt .local int rx1200_pos @@ -15629,7 +17029,9 @@ NQP::Compiler - NQP compiler .local int rx1200_eos .local int rx1200_rep .local pmc rx1200_cur + .local pmc rx1200_debug (rx1200_cur, rx1200_pos, rx1200_tgt, $I10) = self."!cursor_start"() + getattribute rx1200_debug, rx1200_cur, "$!debug" .lex unicode:"$\x{a2}", rx1200_cur .local pmc match .lex "$/", match @@ -15641,7 +17043,9 @@ NQP::Compiler - NQP compiler substr rx1200_tgt, rx1200_tgt, rx1200_off rx1200_start: eq $I10, 1, rx1200_restart + if_null rx1200_debug, debug_944 rx1200_cur."!cursor_debug"("START ", "infix:sym") + debug_944: $I10 = self.'from'() ne $I10, -1, rxscan1204_done goto rxscan1204_scan @@ -15685,11 +17089,15 @@ NQP::Compiler - NQP compiler rx1200_pos = $P10."pos"() # rx pass rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym") + if_null rx1200_debug, debug_945 rx1200_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1200_pos) + debug_945: .return (rx1200_cur) rx1200_restart: .annotate 'line', 447 + if_null rx1200_debug, debug_946 rx1200_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_946: rx1200_fail: (rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0) lt rx1200_pos, -1, rx1200_done @@ -15697,14 +17105,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1200_done: rx1200_cur."!cursor_fail"() + if_null rx1200_debug, debug_947 rx1200_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_947: .return (rx1200_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("311_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("311_1282016529.10767") :method .annotate 'line', 447 $P1202 = self."!PREFIX__!subrule"("O", "le") new $P1203, "ResizablePMCArray" @@ -15714,7 +17124,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("312_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("312_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1207_tgt .local int rx1207_pos @@ -15722,7 +17132,9 @@ NQP::Compiler - NQP compiler .local int rx1207_eos .local int rx1207_rep .local pmc rx1207_cur + .local pmc rx1207_debug (rx1207_cur, rx1207_pos, rx1207_tgt, $I10) = self."!cursor_start"() + getattribute rx1207_debug, rx1207_cur, "$!debug" .lex unicode:"$\x{a2}", rx1207_cur .local pmc match .lex "$/", match @@ -15734,7 +17146,9 @@ NQP::Compiler - NQP compiler substr rx1207_tgt, rx1207_tgt, rx1207_off rx1207_start: eq $I10, 1, rx1207_restart + if_null rx1207_debug, debug_948 rx1207_cur."!cursor_debug"("START ", "infix:sym") + debug_948: $I10 = self.'from'() ne $I10, -1, rxscan1211_done goto rxscan1211_scan @@ -15778,11 +17192,15 @@ NQP::Compiler - NQP compiler rx1207_pos = $P10."pos"() # rx pass rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym") + if_null rx1207_debug, debug_949 rx1207_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1207_pos) + debug_949: .return (rx1207_cur) rx1207_restart: .annotate 'line', 447 + if_null rx1207_debug, debug_950 rx1207_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_950: rx1207_fail: (rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0) lt rx1207_pos, -1, rx1207_done @@ -15790,14 +17208,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1207_done: rx1207_cur."!cursor_fail"() + if_null rx1207_debug, debug_951 rx1207_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_951: .return (rx1207_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("313_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("313_1282016529.10767") :method .annotate 'line', 447 $P1209 = self."!PREFIX__!subrule"("O", "ge") new $P1210, "ResizablePMCArray" @@ -15807,7 +17227,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("314_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("314_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1214_tgt .local int rx1214_pos @@ -15815,7 +17235,9 @@ NQP::Compiler - NQP compiler .local int rx1214_eos .local int rx1214_rep .local pmc rx1214_cur + .local pmc rx1214_debug (rx1214_cur, rx1214_pos, rx1214_tgt, $I10) = self."!cursor_start"() + getattribute rx1214_debug, rx1214_cur, "$!debug" .lex unicode:"$\x{a2}", rx1214_cur .local pmc match .lex "$/", match @@ -15827,7 +17249,9 @@ NQP::Compiler - NQP compiler substr rx1214_tgt, rx1214_tgt, rx1214_off rx1214_start: eq $I10, 1, rx1214_restart + if_null rx1214_debug, debug_952 rx1214_cur."!cursor_debug"("START ", "infix:sym") + debug_952: $I10 = self.'from'() ne $I10, -1, rxscan1218_done goto rxscan1218_scan @@ -15871,11 +17295,15 @@ NQP::Compiler - NQP compiler rx1214_pos = $P10."pos"() # rx pass rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym") + if_null rx1214_debug, debug_953 rx1214_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1214_pos) + debug_953: .return (rx1214_cur) rx1214_restart: .annotate 'line', 447 + if_null rx1214_debug, debug_954 rx1214_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_954: rx1214_fail: (rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0) lt rx1214_pos, -1, rx1214_done @@ -15883,14 +17311,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1214_done: rx1214_cur."!cursor_fail"() + if_null rx1214_debug, debug_955 rx1214_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_955: .return (rx1214_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("315_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("315_1282016529.10767") :method .annotate 'line', 447 $P1216 = self."!PREFIX__!subrule"("O", "lt") new $P1217, "ResizablePMCArray" @@ -15900,7 +17330,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("316_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("316_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1221_tgt .local int rx1221_pos @@ -15908,7 +17338,9 @@ NQP::Compiler - NQP compiler .local int rx1221_eos .local int rx1221_rep .local pmc rx1221_cur + .local pmc rx1221_debug (rx1221_cur, rx1221_pos, rx1221_tgt, $I10) = self."!cursor_start"() + getattribute rx1221_debug, rx1221_cur, "$!debug" .lex unicode:"$\x{a2}", rx1221_cur .local pmc match .lex "$/", match @@ -15920,7 +17352,9 @@ NQP::Compiler - NQP compiler substr rx1221_tgt, rx1221_tgt, rx1221_off rx1221_start: eq $I10, 1, rx1221_restart + if_null rx1221_debug, debug_956 rx1221_cur."!cursor_debug"("START ", "infix:sym") + debug_956: $I10 = self.'from'() ne $I10, -1, rxscan1225_done goto rxscan1225_scan @@ -15964,11 +17398,15 @@ NQP::Compiler - NQP compiler rx1221_pos = $P10."pos"() # rx pass rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym") + if_null rx1221_debug, debug_957 rx1221_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1221_pos) + debug_957: .return (rx1221_cur) rx1221_restart: .annotate 'line', 447 + if_null rx1221_debug, debug_958 rx1221_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_958: rx1221_fail: (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0) lt rx1221_pos, -1, rx1221_done @@ -15976,14 +17414,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1221_done: rx1221_cur."!cursor_fail"() + if_null rx1221_debug, debug_959 rx1221_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_959: .return (rx1221_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("317_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("317_1282016529.10767") :method .annotate 'line', 447 $P1223 = self."!PREFIX__!subrule"("O", "gt") new $P1224, "ResizablePMCArray" @@ -15993,7 +17433,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<=:=>" :subid("318_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<=:=>" :subid("318_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1228_tgt .local int rx1228_pos @@ -16001,7 +17441,9 @@ NQP::Compiler - NQP compiler .local int rx1228_eos .local int rx1228_rep .local pmc rx1228_cur + .local pmc rx1228_debug (rx1228_cur, rx1228_pos, rx1228_tgt, $I10) = self."!cursor_start"() + getattribute rx1228_debug, rx1228_cur, "$!debug" .lex unicode:"$\x{a2}", rx1228_cur .local pmc match .lex "$/", match @@ -16013,7 +17455,9 @@ NQP::Compiler - NQP compiler substr rx1228_tgt, rx1228_tgt, rx1228_off rx1228_start: eq $I10, 1, rx1228_restart + if_null rx1228_debug, debug_960 rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>") + debug_960: $I10 = self.'from'() ne $I10, -1, rxscan1232_done goto rxscan1232_scan @@ -16057,11 +17501,15 @@ NQP::Compiler - NQP compiler rx1228_pos = $P10."pos"() # rx pass rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>") + if_null rx1228_debug, debug_961 rx1228_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1228_pos) + debug_961: .return (rx1228_cur) rx1228_restart: .annotate 'line', 447 + if_null rx1228_debug, debug_962 rx1228_cur."!cursor_debug"("NEXT ", "infix:sym<=:=>") + debug_962: rx1228_fail: (rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0) lt rx1228_pos, -1, rx1228_done @@ -16069,14 +17517,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1228_done: rx1228_cur."!cursor_fail"() + if_null rx1228_debug, debug_963 rx1228_cur."!cursor_debug"("FAIL ", "infix:sym<=:=>") + debug_963: .return (rx1228_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<=:=>" :subid("319_1280467477.44751") :method +.sub "!PREFIX__infix:sym<=:=>" :subid("319_1282016529.10767") :method .annotate 'line', 447 $P1230 = self."!PREFIX__!subrule"("O", "=:=") new $P1231, "ResizablePMCArray" @@ -16086,7 +17536,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<~~>" :subid("320_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<~~>" :subid("320_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1235_tgt .local int rx1235_pos @@ -16094,7 +17544,9 @@ NQP::Compiler - NQP compiler .local int rx1235_eos .local int rx1235_rep .local pmc rx1235_cur + .local pmc rx1235_debug (rx1235_cur, rx1235_pos, rx1235_tgt, $I10) = self."!cursor_start"() + getattribute rx1235_debug, rx1235_cur, "$!debug" .lex unicode:"$\x{a2}", rx1235_cur .local pmc match .lex "$/", match @@ -16106,7 +17558,9 @@ NQP::Compiler - NQP compiler substr rx1235_tgt, rx1235_tgt, rx1235_off rx1235_start: eq $I10, 1, rx1235_restart + if_null rx1235_debug, debug_964 rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>") + debug_964: $I10 = self.'from'() ne $I10, -1, rxscan1239_done goto rxscan1239_scan @@ -16150,11 +17604,15 @@ NQP::Compiler - NQP compiler rx1235_pos = $P10."pos"() # rx pass rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>") + if_null rx1235_debug, debug_965 rx1235_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1235_pos) + debug_965: .return (rx1235_cur) rx1235_restart: .annotate 'line', 447 + if_null rx1235_debug, debug_966 rx1235_cur."!cursor_debug"("NEXT ", "infix:sym<~~>") + debug_966: rx1235_fail: (rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0) lt rx1235_pos, -1, rx1235_done @@ -16162,14 +17620,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1235_done: rx1235_cur."!cursor_fail"() + if_null rx1235_debug, debug_967 rx1235_cur."!cursor_debug"("FAIL ", "infix:sym<~~>") + debug_967: .return (rx1235_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<~~>" :subid("321_1280467477.44751") :method +.sub "!PREFIX__infix:sym<~~>" :subid("321_1282016529.10767") :method .annotate 'line', 447 $P1237 = self."!PREFIX__!subrule"("O", "~~") new $P1238, "ResizablePMCArray" @@ -16179,7 +17639,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<&&>" :subid("322_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<&&>" :subid("322_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1242_tgt .local int rx1242_pos @@ -16187,7 +17647,9 @@ NQP::Compiler - NQP compiler .local int rx1242_eos .local int rx1242_rep .local pmc rx1242_cur + .local pmc rx1242_debug (rx1242_cur, rx1242_pos, rx1242_tgt, $I10) = self."!cursor_start"() + getattribute rx1242_debug, rx1242_cur, "$!debug" .lex unicode:"$\x{a2}", rx1242_cur .local pmc match .lex "$/", match @@ -16199,7 +17661,9 @@ NQP::Compiler - NQP compiler substr rx1242_tgt, rx1242_tgt, rx1242_off rx1242_start: eq $I10, 1, rx1242_restart + if_null rx1242_debug, debug_968 rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>") + debug_968: $I10 = self.'from'() ne $I10, -1, rxscan1246_done goto rxscan1246_scan @@ -16243,11 +17707,15 @@ NQP::Compiler - NQP compiler rx1242_pos = $P10."pos"() # rx pass rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>") + if_null rx1242_debug, debug_969 rx1242_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1242_pos) + debug_969: .return (rx1242_cur) rx1242_restart: .annotate 'line', 447 + if_null rx1242_debug, debug_970 rx1242_cur."!cursor_debug"("NEXT ", "infix:sym<&&>") + debug_970: rx1242_fail: (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0) lt rx1242_pos, -1, rx1242_done @@ -16255,14 +17723,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1242_done: rx1242_cur."!cursor_fail"() + if_null rx1242_debug, debug_971 rx1242_cur."!cursor_debug"("FAIL ", "infix:sym<&&>") + debug_971: .return (rx1242_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<&&>" :subid("323_1280467477.44751") :method +.sub "!PREFIX__infix:sym<&&>" :subid("323_1282016529.10767") :method .annotate 'line', 447 $P1244 = self."!PREFIX__!subrule"("O", "&&") new $P1245, "ResizablePMCArray" @@ -16272,7 +17742,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<||>" :subid("324_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<||>" :subid("324_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1249_tgt .local int rx1249_pos @@ -16280,7 +17750,9 @@ NQP::Compiler - NQP compiler .local int rx1249_eos .local int rx1249_rep .local pmc rx1249_cur + .local pmc rx1249_debug (rx1249_cur, rx1249_pos, rx1249_tgt, $I10) = self."!cursor_start"() + getattribute rx1249_debug, rx1249_cur, "$!debug" .lex unicode:"$\x{a2}", rx1249_cur .local pmc match .lex "$/", match @@ -16292,7 +17764,9 @@ NQP::Compiler - NQP compiler substr rx1249_tgt, rx1249_tgt, rx1249_off rx1249_start: eq $I10, 1, rx1249_restart + if_null rx1249_debug, debug_972 rx1249_cur."!cursor_debug"("START ", "infix:sym<||>") + debug_972: $I10 = self.'from'() ne $I10, -1, rxscan1253_done goto rxscan1253_scan @@ -16336,11 +17810,15 @@ NQP::Compiler - NQP compiler rx1249_pos = $P10."pos"() # rx pass rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>") + if_null rx1249_debug, debug_973 rx1249_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1249_pos) + debug_973: .return (rx1249_cur) rx1249_restart: .annotate 'line', 447 + if_null rx1249_debug, debug_974 rx1249_cur."!cursor_debug"("NEXT ", "infix:sym<||>") + debug_974: rx1249_fail: (rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0) lt rx1249_pos, -1, rx1249_done @@ -16348,14 +17826,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1249_done: rx1249_cur."!cursor_fail"() + if_null rx1249_debug, debug_975 rx1249_cur."!cursor_debug"("FAIL ", "infix:sym<||>") + debug_975: .return (rx1249_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<||>" :subid("325_1280467477.44751") :method +.sub "!PREFIX__infix:sym<||>" :subid("325_1282016529.10767") :method .annotate 'line', 447 $P1251 = self."!PREFIX__!subrule"("O", "||") new $P1252, "ResizablePMCArray" @@ -16365,7 +17845,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("326_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("326_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1256_tgt .local int rx1256_pos @@ -16373,7 +17853,9 @@ NQP::Compiler - NQP compiler .local int rx1256_eos .local int rx1256_rep .local pmc rx1256_cur + .local pmc rx1256_debug (rx1256_cur, rx1256_pos, rx1256_tgt, $I10) = self."!cursor_start"() + getattribute rx1256_debug, rx1256_cur, "$!debug" .lex unicode:"$\x{a2}", rx1256_cur .local pmc match .lex "$/", match @@ -16385,7 +17867,9 @@ NQP::Compiler - NQP compiler substr rx1256_tgt, rx1256_tgt, rx1256_off rx1256_start: eq $I10, 1, rx1256_restart + if_null rx1256_debug, debug_976 rx1256_cur."!cursor_debug"("START ", "infix:sym") + debug_976: $I10 = self.'from'() ne $I10, -1, rxscan1260_done goto rxscan1260_scan @@ -16429,11 +17913,15 @@ NQP::Compiler - NQP compiler rx1256_pos = $P10."pos"() # rx pass rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym") + if_null rx1256_debug, debug_977 rx1256_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1256_pos) + debug_977: .return (rx1256_cur) rx1256_restart: .annotate 'line', 447 + if_null rx1256_debug, debug_978 rx1256_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_978: rx1256_fail: (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0) lt rx1256_pos, -1, rx1256_done @@ -16441,14 +17929,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1256_done: rx1256_cur."!cursor_fail"() + if_null rx1256_debug, debug_979 rx1256_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_979: .return (rx1256_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("327_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("327_1282016529.10767") :method .annotate 'line', 447 $P1258 = self."!PREFIX__!subrule"("O", "//") new $P1259, "ResizablePMCArray" @@ -16458,7 +17948,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("328_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym" :subid("328_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1263_tgt .local int rx1263_pos @@ -16466,7 +17956,9 @@ NQP::Compiler - NQP compiler .local int rx1263_eos .local int rx1263_rep .local pmc rx1263_cur + .local pmc rx1263_debug (rx1263_cur, rx1263_pos, rx1263_tgt, $I10) = self."!cursor_start"() + getattribute rx1263_debug, rx1263_cur, "$!debug" .lex unicode:"$\x{a2}", rx1263_cur .local pmc match .lex "$/", match @@ -16478,7 +17970,9 @@ NQP::Compiler - NQP compiler substr rx1263_tgt, rx1263_tgt, rx1263_off rx1263_start: eq $I10, 1, rx1263_restart + if_null rx1263_debug, debug_980 rx1263_cur."!cursor_debug"("START ", "infix:sym") + debug_980: $I10 = self.'from'() ne $I10, -1, rxscan1267_done goto rxscan1267_scan @@ -16532,11 +18026,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 539 # rx pass rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym") + if_null rx1263_debug, debug_981 rx1263_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1263_pos) + debug_981: .return (rx1263_cur) rx1263_restart: .annotate 'line', 447 + if_null rx1263_debug, debug_982 rx1263_cur."!cursor_debug"("NEXT ", "infix:sym") + debug_982: rx1263_fail: (rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0) lt rx1263_pos, -1, rx1263_done @@ -16544,14 +18042,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1263_done: rx1263_cur."!cursor_fail"() + if_null rx1263_debug, debug_983 rx1263_cur."!cursor_debug"("FAIL ", "infix:sym") + debug_983: .return (rx1263_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("329_1280467477.44751") :method +.sub "!PREFIX__infix:sym" :subid("329_1282016529.10767") :method .annotate 'line', 447 $P1265 = self."!PREFIX__!subrule"("ws", "??") new $P1266, "ResizablePMCArray" @@ -16561,7 +18061,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<=>" :subid("330_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<=>" :subid("330_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1269_tgt .local int rx1269_pos @@ -16569,7 +18069,9 @@ NQP::Compiler - NQP compiler .local int rx1269_eos .local int rx1269_rep .local pmc rx1269_cur + .local pmc rx1269_debug (rx1269_cur, rx1269_pos, rx1269_tgt, $I10) = self."!cursor_start"() + getattribute rx1269_debug, rx1269_cur, "$!debug" .lex unicode:"$\x{a2}", rx1269_cur .local pmc match .lex "$/", match @@ -16581,7 +18083,9 @@ NQP::Compiler - NQP compiler substr rx1269_tgt, rx1269_tgt, rx1269_off rx1269_start: eq $I10, 1, rx1269_restart + if_null rx1269_debug, debug_984 rx1269_cur."!cursor_debug"("START ", "infix:sym<=>") + debug_984: $I10 = self.'from'() ne $I10, -1, rxscan1273_done goto rxscan1273_scan @@ -16602,8 +18106,8 @@ NQP::Compiler - NQP compiler add $I11, rx1269_pos, 1 gt $I11, rx1269_eos, rx1269_fail sub $I11, rx1269_pos, rx1269_off - substr $S10, rx1269_tgt, $I11, 1 - ne $S10, "=", rx1269_fail + ord $I11, rx1269_tgt, $I11 + ne $I11, 61, rx1269_fail add rx1269_pos, 1 set_addr $I10, rxcap_1274_fail ($I12, $I11) = rx1269_cur."!mark_peek"($I10) @@ -16624,11 +18128,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 547 # rx pass rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>") + if_null rx1269_debug, debug_985 rx1269_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1269_pos) + debug_985: .return (rx1269_cur) rx1269_restart: .annotate 'line', 447 + if_null rx1269_debug, debug_986 rx1269_cur."!cursor_debug"("NEXT ", "infix:sym<=>") + debug_986: rx1269_fail: (rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0) lt rx1269_pos, -1, rx1269_done @@ -16636,14 +18144,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1269_done: rx1269_cur."!cursor_fail"() + if_null rx1269_debug, debug_987 rx1269_cur."!cursor_debug"("FAIL ", "infix:sym<=>") + debug_987: .return (rx1269_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<=>" :subid("331_1280467477.44751") :method +.sub "!PREFIX__infix:sym<=>" :subid("331_1282016529.10767") :method .annotate 'line', 447 $P1271 = self."!PREFIX__!subrule"("panic", "=") new $P1272, "ResizablePMCArray" @@ -16653,7 +18163,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<:=>" :subid("332_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<:=>" :subid("332_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1276_tgt .local int rx1276_pos @@ -16661,7 +18171,9 @@ NQP::Compiler - NQP compiler .local int rx1276_eos .local int rx1276_rep .local pmc rx1276_cur + .local pmc rx1276_debug (rx1276_cur, rx1276_pos, rx1276_tgt, $I10) = self."!cursor_start"() + getattribute rx1276_debug, rx1276_cur, "$!debug" .lex unicode:"$\x{a2}", rx1276_cur .local pmc match .lex "$/", match @@ -16673,7 +18185,9 @@ NQP::Compiler - NQP compiler substr rx1276_tgt, rx1276_tgt, rx1276_off rx1276_start: eq $I10, 1, rx1276_restart + if_null rx1276_debug, debug_988 rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>") + debug_988: $I10 = self.'from'() ne $I10, -1, rxscan1280_done goto rxscan1280_scan @@ -16717,11 +18231,15 @@ NQP::Compiler - NQP compiler rx1276_pos = $P10."pos"() # rx pass rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>") + if_null rx1276_debug, debug_989 rx1276_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1276_pos) + debug_989: .return (rx1276_cur) rx1276_restart: .annotate 'line', 447 + if_null rx1276_debug, debug_990 rx1276_cur."!cursor_debug"("NEXT ", "infix:sym<:=>") + debug_990: rx1276_fail: (rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0) lt rx1276_pos, -1, rx1276_done @@ -16729,14 +18247,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1276_done: rx1276_cur."!cursor_fail"() + if_null rx1276_debug, debug_991 rx1276_cur."!cursor_debug"("FAIL ", "infix:sym<:=>") + debug_991: .return (rx1276_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<:=>" :subid("333_1280467477.44751") :method +.sub "!PREFIX__infix:sym<:=>" :subid("333_1282016529.10767") :method .annotate 'line', 447 $P1278 = self."!PREFIX__!subrule"("O", ":=") new $P1279, "ResizablePMCArray" @@ -16746,7 +18266,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<::=>" :subid("334_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<::=>" :subid("334_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1283_tgt .local int rx1283_pos @@ -16754,7 +18274,9 @@ NQP::Compiler - NQP compiler .local int rx1283_eos .local int rx1283_rep .local pmc rx1283_cur + .local pmc rx1283_debug (rx1283_cur, rx1283_pos, rx1283_tgt, $I10) = self."!cursor_start"() + getattribute rx1283_debug, rx1283_cur, "$!debug" .lex unicode:"$\x{a2}", rx1283_cur .local pmc match .lex "$/", match @@ -16766,7 +18288,9 @@ NQP::Compiler - NQP compiler substr rx1283_tgt, rx1283_tgt, rx1283_off rx1283_start: eq $I10, 1, rx1283_restart + if_null rx1283_debug, debug_992 rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>") + debug_992: $I10 = self.'from'() ne $I10, -1, rxscan1287_done goto rxscan1287_scan @@ -16810,11 +18334,15 @@ NQP::Compiler - NQP compiler rx1283_pos = $P10."pos"() # rx pass rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>") + if_null rx1283_debug, debug_993 rx1283_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1283_pos) + debug_993: .return (rx1283_cur) rx1283_restart: .annotate 'line', 447 + if_null rx1283_debug, debug_994 rx1283_cur."!cursor_debug"("NEXT ", "infix:sym<::=>") + debug_994: rx1283_fail: (rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0) lt rx1283_pos, -1, rx1283_done @@ -16822,14 +18350,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1283_done: rx1283_cur."!cursor_fail"() + if_null rx1283_debug, debug_995 rx1283_cur."!cursor_debug"("FAIL ", "infix:sym<::=>") + debug_995: .return (rx1283_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<::=>" :subid("335_1280467477.44751") :method +.sub "!PREFIX__infix:sym<::=>" :subid("335_1282016529.10767") :method .annotate 'line', 447 $P1285 = self."!PREFIX__!subrule"("O", "::=") new $P1286, "ResizablePMCArray" @@ -16839,7 +18369,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<,>" :subid("336_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "infix:sym<,>" :subid("336_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1290_tgt .local int rx1290_pos @@ -16847,7 +18377,9 @@ NQP::Compiler - NQP compiler .local int rx1290_eos .local int rx1290_rep .local pmc rx1290_cur + .local pmc rx1290_debug (rx1290_cur, rx1290_pos, rx1290_tgt, $I10) = self."!cursor_start"() + getattribute rx1290_debug, rx1290_cur, "$!debug" .lex unicode:"$\x{a2}", rx1290_cur .local pmc match .lex "$/", match @@ -16859,7 +18391,9 @@ NQP::Compiler - NQP compiler substr rx1290_tgt, rx1290_tgt, rx1290_off rx1290_start: eq $I10, 1, rx1290_restart + if_null rx1290_debug, debug_996 rx1290_cur."!cursor_debug"("START ", "infix:sym<,>") + debug_996: $I10 = self.'from'() ne $I10, -1, rxscan1294_done goto rxscan1294_scan @@ -16880,8 +18414,8 @@ NQP::Compiler - NQP compiler add $I11, rx1290_pos, 1 gt $I11, rx1290_eos, rx1290_fail sub $I11, rx1290_pos, rx1290_off - substr $S10, rx1290_tgt, $I11, 1 - ne $S10, ",", rx1290_fail + ord $I11, rx1290_tgt, $I11 + ne $I11, 44, rx1290_fail add rx1290_pos, 1 set_addr $I10, rxcap_1295_fail ($I12, $I11) = rx1290_cur."!mark_peek"($I10) @@ -16903,11 +18437,15 @@ NQP::Compiler - NQP compiler rx1290_pos = $P10."pos"() # rx pass rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>") + if_null rx1290_debug, debug_997 rx1290_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1290_pos) + debug_997: .return (rx1290_cur) rx1290_restart: .annotate 'line', 447 + if_null rx1290_debug, debug_998 rx1290_cur."!cursor_debug"("NEXT ", "infix:sym<,>") + debug_998: rx1290_fail: (rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0) lt rx1290_pos, -1, rx1290_done @@ -16915,14 +18453,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1290_done: rx1290_cur."!cursor_fail"() + if_null rx1290_debug, debug_999 rx1290_cur."!cursor_debug"("FAIL ", "infix:sym<,>") + debug_999: .return (rx1290_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<,>" :subid("337_1280467477.44751") :method +.sub "!PREFIX__infix:sym<,>" :subid("337_1282016529.10767") :method .annotate 'line', 447 $P1292 = self."!PREFIX__!subrule"("O", ",") new $P1293, "ResizablePMCArray" @@ -16932,7 +18472,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym" :subid("338_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym" :subid("338_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1297_tgt .local int rx1297_pos @@ -16940,7 +18480,9 @@ NQP::Compiler - NQP compiler .local int rx1297_eos .local int rx1297_rep .local pmc rx1297_cur + .local pmc rx1297_debug (rx1297_cur, rx1297_pos, rx1297_tgt, $I10) = self."!cursor_start"() + getattribute rx1297_debug, rx1297_cur, "$!debug" .lex unicode:"$\x{a2}", rx1297_cur .local pmc match .lex "$/", match @@ -16952,7 +18494,9 @@ NQP::Compiler - NQP compiler substr rx1297_tgt, rx1297_tgt, rx1297_off rx1297_start: eq $I10, 1, rx1297_restart + if_null rx1297_debug, debug_1000 rx1297_cur."!cursor_debug"("START ", "prefix:sym") + debug_1000: $I10 = self.'from'() ne $I10, -1, rxscan1300_done goto rxscan1300_scan @@ -17002,11 +18546,15 @@ NQP::Compiler - NQP compiler rx1297_pos = $P10."pos"() # rx pass rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym") + if_null rx1297_debug, debug_1001 rx1297_cur."!cursor_debug"("PASS ", "prefix:sym", " at pos=", rx1297_pos) + debug_1001: .return (rx1297_cur) rx1297_restart: .annotate 'line', 447 + if_null rx1297_debug, debug_1002 rx1297_cur."!cursor_debug"("NEXT ", "prefix:sym") + debug_1002: rx1297_fail: (rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0) lt rx1297_pos, -1, rx1297_done @@ -17014,14 +18562,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1297_done: rx1297_cur."!cursor_fail"() + if_null rx1297_debug, debug_1003 rx1297_cur."!cursor_debug"("FAIL ", "prefix:sym") + debug_1003: .return (rx1297_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym" :subid("339_1280467477.44751") :method +.sub "!PREFIX__prefix:sym" :subid("339_1282016529.10767") :method .annotate 'line', 447 new $P1299, "ResizablePMCArray" push $P1299, "return" @@ -17030,7 +18580,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym" :subid("340_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "prefix:sym" :subid("340_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1303_tgt .local int rx1303_pos @@ -17038,7 +18588,9 @@ NQP::Compiler - NQP compiler .local int rx1303_eos .local int rx1303_rep .local pmc rx1303_cur + .local pmc rx1303_debug (rx1303_cur, rx1303_pos, rx1303_tgt, $I10) = self."!cursor_start"() + getattribute rx1303_debug, rx1303_cur, "$!debug" .lex unicode:"$\x{a2}", rx1303_cur .local pmc match .lex "$/", match @@ -17050,7 +18602,9 @@ NQP::Compiler - NQP compiler substr rx1303_tgt, rx1303_tgt, rx1303_off rx1303_start: eq $I10, 1, rx1303_restart + if_null rx1303_debug, debug_1004 rx1303_cur."!cursor_debug"("START ", "prefix:sym") + debug_1004: $I10 = self.'from'() ne $I10, -1, rxscan1306_done goto rxscan1306_scan @@ -17100,11 +18654,15 @@ NQP::Compiler - NQP compiler rx1303_pos = $P10."pos"() # rx pass rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym") + if_null rx1303_debug, debug_1005 rx1303_cur."!cursor_debug"("PASS ", "prefix:sym", " at pos=", rx1303_pos) + debug_1005: .return (rx1303_cur) rx1303_restart: .annotate 'line', 447 + if_null rx1303_debug, debug_1006 rx1303_cur."!cursor_debug"("NEXT ", "prefix:sym") + debug_1006: rx1303_fail: (rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0) lt rx1303_pos, -1, rx1303_done @@ -17112,14 +18670,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1303_done: rx1303_cur."!cursor_fail"() + if_null rx1303_debug, debug_1007 rx1303_cur."!cursor_debug"("FAIL ", "prefix:sym") + debug_1007: .return (rx1303_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym" :subid("341_1280467477.44751") :method +.sub "!PREFIX__prefix:sym" :subid("341_1282016529.10767") :method .annotate 'line', 447 new $P1305, "ResizablePMCArray" push $P1305, "make" @@ -17128,7 +18688,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("342_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("342_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1309_tgt .local int rx1309_pos @@ -17136,7 +18696,9 @@ NQP::Compiler - NQP compiler .local int rx1309_eos .local int rx1309_rep .local pmc rx1309_cur + .local pmc rx1309_debug (rx1309_cur, rx1309_pos, rx1309_tgt, $I10) = self."!cursor_start"() + getattribute rx1309_debug, rx1309_cur, "$!debug" .lex unicode:"$\x{a2}", rx1309_cur .local pmc match .lex "$/", match @@ -17148,7 +18710,9 @@ NQP::Compiler - NQP compiler substr rx1309_tgt, rx1309_tgt, rx1309_off rx1309_start: eq $I10, 1, rx1309_restart + if_null rx1309_debug, debug_1008 rx1309_cur."!cursor_debug"("START ", "term:sym") + debug_1008: $I10 = self.'from'() ne $I10, -1, rxscan1312_done goto rxscan1312_scan @@ -17185,11 +18749,15 @@ NQP::Compiler - NQP compiler rxcap_1313_done: # rx pass rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym") + if_null rx1309_debug, debug_1009 rx1309_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx1309_pos) + debug_1009: .return (rx1309_cur) rx1309_restart: .annotate 'line', 447 + if_null rx1309_debug, debug_1010 rx1309_cur."!cursor_debug"("NEXT ", "term:sym") + debug_1010: rx1309_fail: (rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0) lt rx1309_pos, -1, rx1309_done @@ -17197,14 +18765,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1309_done: rx1309_cur."!cursor_fail"() + if_null rx1309_debug, debug_1011 rx1309_cur."!cursor_debug"("FAIL ", "term:sym") + debug_1011: .return (rx1309_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("343_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("343_1282016529.10767") :method .annotate 'line', 447 new $P1311, "ResizablePMCArray" push $P1311, "last" @@ -17213,7 +18783,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("344_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("344_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1315_tgt .local int rx1315_pos @@ -17221,7 +18791,9 @@ NQP::Compiler - NQP compiler .local int rx1315_eos .local int rx1315_rep .local pmc rx1315_cur + .local pmc rx1315_debug (rx1315_cur, rx1315_pos, rx1315_tgt, $I10) = self."!cursor_start"() + getattribute rx1315_debug, rx1315_cur, "$!debug" .lex unicode:"$\x{a2}", rx1315_cur .local pmc match .lex "$/", match @@ -17233,7 +18805,9 @@ NQP::Compiler - NQP compiler substr rx1315_tgt, rx1315_tgt, rx1315_off rx1315_start: eq $I10, 1, rx1315_restart + if_null rx1315_debug, debug_1012 rx1315_cur."!cursor_debug"("START ", "term:sym") + debug_1012: $I10 = self.'from'() ne $I10, -1, rxscan1318_done goto rxscan1318_scan @@ -17270,11 +18844,15 @@ NQP::Compiler - NQP compiler rxcap_1319_done: # rx pass rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym") + if_null rx1315_debug, debug_1013 rx1315_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx1315_pos) + debug_1013: .return (rx1315_cur) rx1315_restart: .annotate 'line', 447 + if_null rx1315_debug, debug_1014 rx1315_cur."!cursor_debug"("NEXT ", "term:sym") + debug_1014: rx1315_fail: (rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0) lt rx1315_pos, -1, rx1315_done @@ -17282,14 +18860,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1315_done: rx1315_cur."!cursor_fail"() + if_null rx1315_debug, debug_1015 rx1315_cur."!cursor_debug"("FAIL ", "term:sym") + debug_1015: .return (rx1315_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("345_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("345_1282016529.10767") :method .annotate 'line', 447 new $P1317, "ResizablePMCArray" push $P1317, "next" @@ -17298,7 +18878,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("346_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "term:sym" :subid("346_1282016529.10767") :method :outer("11_1282016529.10767") .annotate 'line', 447 .local string rx1321_tgt .local int rx1321_pos @@ -17306,7 +18886,9 @@ NQP::Compiler - NQP compiler .local int rx1321_eos .local int rx1321_rep .local pmc rx1321_cur + .local pmc rx1321_debug (rx1321_cur, rx1321_pos, rx1321_tgt, $I10) = self."!cursor_start"() + getattribute rx1321_debug, rx1321_cur, "$!debug" .lex unicode:"$\x{a2}", rx1321_cur .local pmc match .lex "$/", match @@ -17318,7 +18900,9 @@ NQP::Compiler - NQP compiler substr rx1321_tgt, rx1321_tgt, rx1321_off rx1321_start: eq $I10, 1, rx1321_restart + if_null rx1321_debug, debug_1016 rx1321_cur."!cursor_debug"("START ", "term:sym") + debug_1016: $I10 = self.'from'() ne $I10, -1, rxscan1324_done goto rxscan1324_scan @@ -17355,11 +18939,15 @@ NQP::Compiler - NQP compiler rxcap_1325_done: # rx pass rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym") + if_null rx1321_debug, debug_1017 rx1321_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx1321_pos) + debug_1017: .return (rx1321_cur) rx1321_restart: .annotate 'line', 447 + if_null rx1321_debug, debug_1018 rx1321_cur."!cursor_debug"("NEXT ", "term:sym") + debug_1018: rx1321_fail: (rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0) lt rx1321_pos, -1, rx1321_done @@ -17367,14 +18955,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1321_done: rx1321_cur."!cursor_fail"() + if_null rx1321_debug, debug_1019 rx1321_cur."!cursor_debug"("FAIL ", "term:sym") + debug_1019: .return (rx1321_cur) .return () .end .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("347_1280467477.44751") :method +.sub "!PREFIX__term:sym" :subid("347_1282016529.10767") :method .annotate 'line', 447 new $P1323, "ResizablePMCArray" push $P1323, "redo" @@ -17384,7 +18974,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] .include "except_types.pasm" -.sub "smartmatch" :subid("348_1280467477.44751") :method :outer("11_1280467477.44751") +.sub "smartmatch" :subid("348_1282016529.10767") :method :outer("11_1282016529.10767") .param pmc param_1329 .annotate 'line', 561 new $P1328, 'ExceptionHandler' @@ -17397,34 +18987,34 @@ NQP::Compiler - NQP compiler new $P1330, "Undef" .lex "$t", $P1330 find_lex $P1331, "$/" - unless_null $P1331, vivify_384 + unless_null $P1331, vivify_1020 $P1331 = root_new ['parrot';'ResizablePMCArray'] - vivify_384: + vivify_1020: set $P1332, $P1331[0] - unless_null $P1332, vivify_385 + unless_null $P1332, vivify_1021 new $P1332, "Undef" - vivify_385: + vivify_1021: store_lex "$t", $P1332 find_lex $P1333, "$/" - unless_null $P1333, vivify_386 + unless_null $P1333, vivify_1022 $P1333 = root_new ['parrot';'ResizablePMCArray'] - vivify_386: + vivify_1022: set $P1334, $P1333[1] - unless_null $P1334, vivify_387 + unless_null $P1334, vivify_1023 new $P1334, "Undef" - vivify_387: + vivify_1023: find_lex $P1335, "$/" - unless_null $P1335, vivify_388 + unless_null $P1335, vivify_1024 $P1335 = root_new ['parrot';'ResizablePMCArray'] store_lex "$/", $P1335 - vivify_388: + vivify_1024: set $P1335[0], $P1334 find_lex $P1336, "$t" find_lex $P1337, "$/" - unless_null $P1337, vivify_389 + unless_null $P1337, vivify_1025 $P1337 = root_new ['parrot';'ResizablePMCArray'] store_lex "$/", $P1337 - vivify_389: + vivify_1025: set $P1337[1], $P1336 .annotate 'line', 561 .return ($P1336) @@ -17437,34 +19027,34 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1339" :subid("349_1280467477.44751") :outer("11_1280467477.44751") +.sub "_block1339" :subid("349_1282016529.10767") :outer("11_1282016529.10767") .annotate 'line', 567 - .const 'Sub' $P1396 = "368_1280467477.44751" + .const 'Sub' $P1396 = "368_1282016529.10767" capture_lex $P1396 - .const 'Sub' $P1391 = "366_1280467477.44751" + .const 'Sub' $P1391 = "366_1282016529.10767" capture_lex $P1391 - .const 'Sub' $P1379 = "363_1280467477.44751" + .const 'Sub' $P1379 = "363_1282016529.10767" capture_lex $P1379 - .const 'Sub' $P1369 = "360_1280467477.44751" + .const 'Sub' $P1369 = "360_1282016529.10767" capture_lex $P1369 - .const 'Sub' $P1364 = "358_1280467477.44751" + .const 'Sub' $P1364 = "358_1282016529.10767" capture_lex $P1364 - .const 'Sub' $P1355 = "355_1280467477.44751" + .const 'Sub' $P1355 = "355_1282016529.10767" capture_lex $P1355 - .const 'Sub' $P1350 = "353_1280467477.44751" + .const 'Sub' $P1350 = "353_1282016529.10767" capture_lex $P1350 - .const 'Sub' $P1341 = "350_1280467477.44751" + .const 'Sub' $P1341 = "350_1282016529.10767" capture_lex $P1341 - .const 'Sub' $P1396 = "368_1280467477.44751" + .const 'Sub' $P1396 = "368_1282016529.10767" capture_lex $P1396 .return ($P1396) .end .namespace ["NQP";"Regex"] -.sub "metachar:sym<:my>" :subid("350_1280467477.44751") :method :outer("349_1280467477.44751") +.sub "metachar:sym<:my>" :subid("350_1282016529.10767") :method :outer("349_1282016529.10767") .annotate 'line', 567 - .const 'Sub' $P1347 = "352_1280467477.44751" + .const 'Sub' $P1347 = "352_1282016529.10767" capture_lex $P1347 .local string rx1342_tgt .local int rx1342_pos @@ -17472,7 +19062,9 @@ NQP::Compiler - NQP compiler .local int rx1342_eos .local int rx1342_rep .local pmc rx1342_cur + .local pmc rx1342_debug (rx1342_cur, rx1342_pos, rx1342_tgt, $I10) = self."!cursor_start"() + getattribute rx1342_debug, rx1342_cur, "$!debug" .lex unicode:"$\x{a2}", rx1342_cur .local pmc match .lex "$/", match @@ -17484,7 +19076,9 @@ NQP::Compiler - NQP compiler substr rx1342_tgt, rx1342_tgt, rx1342_off rx1342_start: eq $I10, 1, rx1342_restart + if_null rx1342_debug, debug_1026 rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>") + debug_1026: $I10 = self.'from'() ne $I10, -1, rxscan1345_done goto rxscan1345_scan @@ -17502,12 +19096,12 @@ NQP::Compiler - NQP compiler add $I11, rx1342_pos, 1 gt $I11, rx1342_eos, rx1342_fail sub $I11, rx1342_pos, rx1342_off - substr $S10, rx1342_tgt, $I11, 1 - ne $S10, ":", rx1342_fail + ord $I11, rx1342_tgt, $I11 + ne $I11, 58, rx1342_fail add rx1342_pos, 1 # rx subrule "before" subtype=zerowidth negate= rx1342_cur."!cursor_pos"(rx1342_pos) - .const 'Sub' $P1347 = "352_1280467477.44751" + .const 'Sub' $P1347 = "352_1282016529.10767" capture_lex $P1347 $P10 = rx1342_cur."before"($P1347) unless $P10, rx1342_fail @@ -17527,17 +19121,21 @@ NQP::Compiler - NQP compiler add $I11, rx1342_pos, 1 gt $I11, rx1342_eos, rx1342_fail sub $I11, rx1342_pos, rx1342_off - substr $S10, rx1342_tgt, $I11, 1 - ne $S10, ";", rx1342_fail + ord $I11, rx1342_tgt, $I11 + ne $I11, 59, rx1342_fail add rx1342_pos, 1 .annotate 'line', 568 # rx pass rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>") + if_null rx1342_debug, debug_1031 rx1342_cur."!cursor_debug"("PASS ", "metachar:sym<:my>", " at pos=", rx1342_pos) + debug_1031: .return (rx1342_cur) rx1342_restart: .annotate 'line', 567 + if_null rx1342_debug, debug_1032 rx1342_cur."!cursor_debug"("NEXT ", "metachar:sym<:my>") + debug_1032: rx1342_fail: (rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0) lt rx1342_pos, -1, rx1342_done @@ -17545,14 +19143,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1342_done: rx1342_cur."!cursor_fail"() + if_null rx1342_debug, debug_1033 rx1342_cur."!cursor_debug"("FAIL ", "metachar:sym<:my>") + debug_1033: .return (rx1342_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "!PREFIX__metachar:sym<:my>" :subid("351_1280467477.44751") :method +.sub "!PREFIX__metachar:sym<:my>" :subid("351_1282016529.10767") :method .annotate 'line', 567 new $P1344, "ResizablePMCArray" push $P1344, ":" @@ -17561,7 +19161,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1346" :anon :subid("352_1280467477.44751") :method :outer("350_1280467477.44751") +.sub "_block1346" :anon :subid("352_1282016529.10767") :method :outer("350_1282016529.10767") .annotate 'line', 569 .local string rx1348_tgt .local int rx1348_pos @@ -17569,7 +19169,9 @@ NQP::Compiler - NQP compiler .local int rx1348_eos .local int rx1348_rep .local pmc rx1348_cur + .local pmc rx1348_debug (rx1348_cur, rx1348_pos, rx1348_tgt, $I10) = self."!cursor_start"() + getattribute rx1348_debug, rx1348_cur, "$!debug" .lex unicode:"$\x{a2}", rx1348_cur .local pmc match .lex "$/", match @@ -17581,7 +19183,9 @@ NQP::Compiler - NQP compiler substr rx1348_tgt, rx1348_tgt, rx1348_off rx1348_start: eq $I10, 1, rx1348_restart + if_null rx1348_debug, debug_1027 rx1348_cur."!cursor_debug"("START ", "") + debug_1027: $I10 = self.'from'() ne $I10, -1, rxscan1349_done goto rxscan1349_scan @@ -17603,10 +19207,14 @@ NQP::Compiler - NQP compiler add rx1348_pos, 2 # rx pass rx1348_cur."!cursor_pass"(rx1348_pos, "") + if_null rx1348_debug, debug_1028 rx1348_cur."!cursor_debug"("PASS ", "", " at pos=", rx1348_pos) + debug_1028: .return (rx1348_cur) rx1348_restart: + if_null rx1348_debug, debug_1029 rx1348_cur."!cursor_debug"("NEXT ", "") + debug_1029: rx1348_fail: (rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0) lt rx1348_pos, -1, rx1348_done @@ -17614,14 +19222,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1348_done: rx1348_cur."!cursor_fail"() + if_null rx1348_debug, debug_1030 rx1348_cur."!cursor_debug"("FAIL ", "") + debug_1030: .return (rx1348_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "metachar:sym<{ }>" :subid("353_1280467477.44751") :method :outer("349_1280467477.44751") +.sub "metachar:sym<{ }>" :subid("353_1282016529.10767") :method :outer("349_1282016529.10767") .annotate 'line', 567 .local string rx1351_tgt .local int rx1351_pos @@ -17629,7 +19239,9 @@ NQP::Compiler - NQP compiler .local int rx1351_eos .local int rx1351_rep .local pmc rx1351_cur + .local pmc rx1351_debug (rx1351_cur, rx1351_pos, rx1351_tgt, $I10) = self."!cursor_start"() + getattribute rx1351_debug, rx1351_cur, "$!debug" .lex unicode:"$\x{a2}", rx1351_cur .local pmc match .lex "$/", match @@ -17641,7 +19253,9 @@ NQP::Compiler - NQP compiler substr rx1351_tgt, rx1351_tgt, rx1351_off rx1351_start: eq $I10, 1, rx1351_restart + if_null rx1351_debug, debug_1034 rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>") + debug_1034: $I10 = self.'from'() ne $I10, -1, rxscan1354_done goto rxscan1354_scan @@ -17671,11 +19285,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 572 # rx pass rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>") + if_null rx1351_debug, debug_1035 rx1351_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1351_pos) + debug_1035: .return (rx1351_cur) rx1351_restart: .annotate 'line', 567 + if_null rx1351_debug, debug_1036 rx1351_cur."!cursor_debug"("NEXT ", "metachar:sym<{ }>") + debug_1036: rx1351_fail: (rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0) lt rx1351_pos, -1, rx1351_done @@ -17683,14 +19301,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1351_done: rx1351_cur."!cursor_fail"() + if_null rx1351_debug, debug_1037 rx1351_cur."!cursor_debug"("FAIL ", "metachar:sym<{ }>") + debug_1037: .return (rx1351_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "!PREFIX__metachar:sym<{ }>" :subid("354_1280467477.44751") :method +.sub "!PREFIX__metachar:sym<{ }>" :subid("354_1282016529.10767") :method .annotate 'line', 567 new $P1353, "ResizablePMCArray" push $P1353, "{" @@ -17699,9 +19319,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "metachar:sym" :subid("355_1280467477.44751") :method :outer("349_1280467477.44751") +.sub "metachar:sym" :subid("355_1282016529.10767") :method :outer("349_1282016529.10767") .annotate 'line', 567 - .const 'Sub' $P1361 = "357_1280467477.44751" + .const 'Sub' $P1361 = "357_1282016529.10767" capture_lex $P1361 .local string rx1356_tgt .local int rx1356_pos @@ -17709,7 +19329,9 @@ NQP::Compiler - NQP compiler .local int rx1356_eos .local int rx1356_rep .local pmc rx1356_cur + .local pmc rx1356_debug (rx1356_cur, rx1356_pos, rx1356_tgt, $I10) = self."!cursor_start"() + getattribute rx1356_debug, rx1356_cur, "$!debug" .lex unicode:"$\x{a2}", rx1356_cur .local pmc match .lex "$/", match @@ -17721,7 +19343,9 @@ NQP::Compiler - NQP compiler substr rx1356_tgt, rx1356_tgt, rx1356_off rx1356_start: eq $I10, 1, rx1356_restart + if_null rx1356_debug, debug_1038 rx1356_cur."!cursor_debug"("START ", "metachar:sym") + debug_1038: $I10 = self.'from'() ne $I10, -1, rxscan1359_done goto rxscan1359_scan @@ -17743,7 +19367,7 @@ NQP::Compiler - NQP compiler lt $I11, 0, rx1356_fail # rx subrule "before" subtype=zerowidth negate= rx1356_cur."!cursor_pos"(rx1356_pos) - .const 'Sub' $P1361 = "357_1280467477.44751" + .const 'Sub' $P1361 = "357_1282016529.10767" capture_lex $P1361 $P10 = rx1356_cur."before"($P1361) unless $P10, rx1356_fail @@ -17757,11 +19381,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 576 # rx pass rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym") + if_null rx1356_debug, debug_1043 rx1356_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx1356_pos) + debug_1043: .return (rx1356_cur) rx1356_restart: .annotate 'line', 567 + if_null rx1356_debug, debug_1044 rx1356_cur."!cursor_debug"("NEXT ", "metachar:sym") + debug_1044: rx1356_fail: (rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0) lt rx1356_pos, -1, rx1356_done @@ -17769,14 +19397,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1356_done: rx1356_cur."!cursor_fail"() + if_null rx1356_debug, debug_1045 rx1356_cur."!cursor_debug"("FAIL ", "metachar:sym") + debug_1045: .return (rx1356_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "!PREFIX__metachar:sym" :subid("356_1280467477.44751") :method +.sub "!PREFIX__metachar:sym" :subid("356_1282016529.10767") :method .annotate 'line', 567 new $P1358, "ResizablePMCArray" push $P1358, "$" @@ -17786,7 +19416,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1360" :anon :subid("357_1280467477.44751") :method :outer("355_1280467477.44751") +.sub "_block1360" :anon :subid("357_1282016529.10767") :method :outer("355_1282016529.10767") .annotate 'line', 577 .local string rx1362_tgt .local int rx1362_pos @@ -17794,7 +19424,9 @@ NQP::Compiler - NQP compiler .local int rx1362_eos .local int rx1362_rep .local pmc rx1362_cur + .local pmc rx1362_debug (rx1362_cur, rx1362_pos, rx1362_tgt, $I10) = self."!cursor_start"() + getattribute rx1362_debug, rx1362_cur, "$!debug" .lex unicode:"$\x{a2}", rx1362_cur .local pmc match .lex "$/", match @@ -17806,7 +19438,9 @@ NQP::Compiler - NQP compiler substr rx1362_tgt, rx1362_tgt, rx1362_off rx1362_start: eq $I10, 1, rx1362_restart + if_null rx1362_debug, debug_1039 rx1362_cur."!cursor_debug"("START ", "") + debug_1039: $I10 = self.'from'() ne $I10, -1, rxscan1363_done goto rxscan1363_scan @@ -17830,10 +19464,14 @@ NQP::Compiler - NQP compiler inc rx1362_pos # rx pass rx1362_cur."!cursor_pass"(rx1362_pos, "") + if_null rx1362_debug, debug_1040 rx1362_cur."!cursor_debug"("PASS ", "", " at pos=", rx1362_pos) + debug_1040: .return (rx1362_cur) rx1362_restart: + if_null rx1362_debug, debug_1041 rx1362_cur."!cursor_debug"("NEXT ", "") + debug_1041: rx1362_fail: (rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0) lt rx1362_pos, -1, rx1362_done @@ -17841,14 +19479,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1362_done: rx1362_cur."!cursor_fail"() + if_null rx1362_debug, debug_1042 rx1362_cur."!cursor_debug"("FAIL ", "") + debug_1042: .return (rx1362_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "assertion:sym<{ }>" :subid("358_1280467477.44751") :method :outer("349_1280467477.44751") +.sub "assertion:sym<{ }>" :subid("358_1282016529.10767") :method :outer("349_1282016529.10767") .annotate 'line', 567 .local string rx1365_tgt .local int rx1365_pos @@ -17856,7 +19496,9 @@ NQP::Compiler - NQP compiler .local int rx1365_eos .local int rx1365_rep .local pmc rx1365_cur + .local pmc rx1365_debug (rx1365_cur, rx1365_pos, rx1365_tgt, $I10) = self."!cursor_start"() + getattribute rx1365_debug, rx1365_cur, "$!debug" .lex unicode:"$\x{a2}", rx1365_cur .local pmc match .lex "$/", match @@ -17868,7 +19510,9 @@ NQP::Compiler - NQP compiler substr rx1365_tgt, rx1365_tgt, rx1365_off rx1365_start: eq $I10, 1, rx1365_restart + if_null rx1365_debug, debug_1046 rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>") + debug_1046: $I10 = self.'from'() ne $I10, -1, rxscan1368_done goto rxscan1368_scan @@ -17898,11 +19542,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 580 # rx pass rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>") + if_null rx1365_debug, debug_1047 rx1365_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1365_pos) + debug_1047: .return (rx1365_cur) rx1365_restart: .annotate 'line', 567 + if_null rx1365_debug, debug_1048 rx1365_cur."!cursor_debug"("NEXT ", "assertion:sym<{ }>") + debug_1048: rx1365_fail: (rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0) lt rx1365_pos, -1, rx1365_done @@ -17910,14 +19558,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1365_done: rx1365_cur."!cursor_fail"() + if_null rx1365_debug, debug_1049 rx1365_cur."!cursor_debug"("FAIL ", "assertion:sym<{ }>") + debug_1049: .return (rx1365_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "!PREFIX__assertion:sym<{ }>" :subid("359_1280467477.44751") :method +.sub "!PREFIX__assertion:sym<{ }>" :subid("359_1282016529.10767") :method .annotate 'line', 567 new $P1367, "ResizablePMCArray" push $P1367, "{" @@ -17926,9 +19576,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "assertion:sym" :subid("360_1280467477.44751") :method :outer("349_1280467477.44751") +.sub "assertion:sym" :subid("360_1282016529.10767") :method :outer("349_1282016529.10767") .annotate 'line', 567 - .const 'Sub' $P1375 = "362_1280467477.44751" + .const 'Sub' $P1375 = "362_1282016529.10767" capture_lex $P1375 .local string rx1370_tgt .local int rx1370_pos @@ -17936,7 +19586,9 @@ NQP::Compiler - NQP compiler .local int rx1370_eos .local int rx1370_rep .local pmc rx1370_cur + .local pmc rx1370_debug (rx1370_cur, rx1370_pos, rx1370_tgt, $I10) = self."!cursor_start"() + getattribute rx1370_debug, rx1370_cur, "$!debug" .lex unicode:"$\x{a2}", rx1370_cur .local pmc match .lex "$/", match @@ -17948,7 +19600,9 @@ NQP::Compiler - NQP compiler substr rx1370_tgt, rx1370_tgt, rx1370_off rx1370_start: eq $I10, 1, rx1370_restart + if_null rx1370_debug, debug_1050 rx1370_cur."!cursor_debug"("START ", "assertion:sym") + debug_1050: $I10 = self.'from'() ne $I10, -1, rxscan1373_done goto rxscan1373_scan @@ -17974,7 +19628,7 @@ NQP::Compiler - NQP compiler inc rx1370_pos # rx subrule "before" subtype=zerowidth negate= rx1370_cur."!cursor_pos"(rx1370_pos) - .const 'Sub' $P1375 = "362_1280467477.44751" + .const 'Sub' $P1375 = "362_1282016529.10767" capture_lex $P1375 $P10 = rx1370_cur."before"($P1375) unless $P10, rx1370_fail @@ -17999,11 +19653,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 584 # rx pass rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym") + if_null rx1370_debug, debug_1055 rx1370_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx1370_pos) + debug_1055: .return (rx1370_cur) rx1370_restart: .annotate 'line', 567 + if_null rx1370_debug, debug_1056 rx1370_cur."!cursor_debug"("NEXT ", "assertion:sym") + debug_1056: rx1370_fail: (rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0) lt rx1370_pos, -1, rx1370_done @@ -18011,14 +19669,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1370_done: rx1370_cur."!cursor_fail"() + if_null rx1370_debug, debug_1057 rx1370_cur."!cursor_debug"("FAIL ", "assertion:sym") + debug_1057: .return (rx1370_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "!PREFIX__assertion:sym" :subid("361_1280467477.44751") :method +.sub "!PREFIX__assertion:sym" :subid("361_1282016529.10767") :method .annotate 'line', 567 new $P1372, "ResizablePMCArray" push $P1372, "!" @@ -18028,7 +19688,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1374" :anon :subid("362_1280467477.44751") :method :outer("360_1280467477.44751") +.sub "_block1374" :anon :subid("362_1282016529.10767") :method :outer("360_1282016529.10767") .annotate 'line', 585 .local string rx1376_tgt .local int rx1376_pos @@ -18036,7 +19696,9 @@ NQP::Compiler - NQP compiler .local int rx1376_eos .local int rx1376_rep .local pmc rx1376_cur + .local pmc rx1376_debug (rx1376_cur, rx1376_pos, rx1376_tgt, $I10) = self."!cursor_start"() + getattribute rx1376_debug, rx1376_cur, "$!debug" .lex unicode:"$\x{a2}", rx1376_cur .local pmc match .lex "$/", match @@ -18048,7 +19710,9 @@ NQP::Compiler - NQP compiler substr rx1376_tgt, rx1376_tgt, rx1376_off rx1376_start: eq $I10, 1, rx1376_restart + if_null rx1376_debug, debug_1051 rx1376_cur."!cursor_debug"("START ", "") + debug_1051: $I10 = self.'from'() ne $I10, -1, rxscan1377_done goto rxscan1377_scan @@ -18065,15 +19729,19 @@ NQP::Compiler - NQP compiler add $I11, rx1376_pos, 1 gt $I11, rx1376_eos, rx1376_fail sub $I11, rx1376_pos, rx1376_off - substr $S10, rx1376_tgt, $I11, 1 - ne $S10, "{", rx1376_fail + ord $I11, rx1376_tgt, $I11 + ne $I11, 123, rx1376_fail add rx1376_pos, 1 # rx pass rx1376_cur."!cursor_pass"(rx1376_pos, "") + if_null rx1376_debug, debug_1052 rx1376_cur."!cursor_debug"("PASS ", "", " at pos=", rx1376_pos) + debug_1052: .return (rx1376_cur) rx1376_restart: + if_null rx1376_debug, debug_1053 rx1376_cur."!cursor_debug"("NEXT ", "") + debug_1053: rx1376_fail: (rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0) lt rx1376_pos, -1, rx1376_done @@ -18081,16 +19749,18 @@ NQP::Compiler - NQP compiler jump $I10 rx1376_done: rx1376_cur."!cursor_fail"() + if_null rx1376_debug, debug_1054 rx1376_cur."!cursor_debug"("FAIL ", "") + debug_1054: .return (rx1376_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "assertion:sym" :subid("363_1280467477.44751") :method :outer("349_1280467477.44751") +.sub "assertion:sym" :subid("363_1282016529.10767") :method :outer("349_1282016529.10767") .annotate 'line', 567 - .const 'Sub' $P1388 = "365_1280467477.44751" + .const 'Sub' $P1388 = "365_1282016529.10767" capture_lex $P1388 .local string rx1380_tgt .local int rx1380_pos @@ -18098,8 +19768,10 @@ NQP::Compiler - NQP compiler .local int rx1380_eos .local int rx1380_rep .local pmc rx1380_cur + .local pmc rx1380_debug (rx1380_cur, rx1380_pos, rx1380_tgt, $I10) = self."!cursor_start"() - rx1380_cur."!cursor_caparray"("arglist", "nibbler", "assertion") + rx1380_cur."!cursor_caparray"("nibbler", "arglist", "assertion") + getattribute rx1380_debug, rx1380_cur, "$!debug" .lex unicode:"$\x{a2}", rx1380_cur .local pmc match .lex "$/", match @@ -18111,7 +19783,9 @@ NQP::Compiler - NQP compiler substr rx1380_tgt, rx1380_tgt, rx1380_off rx1380_start: eq $I10, 1, rx1380_restart + if_null rx1380_debug, debug_1058 rx1380_cur."!cursor_debug"("START ", "assertion:sym") + debug_1058: $I10 = self.'from'() ne $I10, -1, rxscan1384_done goto rxscan1384_scan @@ -18144,7 +19818,7 @@ NQP::Compiler - NQP compiler .annotate 'line', 591 # rx subrule "before" subtype=zerowidth negate= rx1380_cur."!cursor_pos"(rx1380_pos) - .const 'Sub' $P1388 = "365_1280467477.44751" + .const 'Sub' $P1388 = "365_1282016529.10767" capture_lex $P1388 $P10 = rx1380_cur."before"($P1388) unless $P10, rx1380_fail @@ -18157,8 +19831,8 @@ NQP::Compiler - NQP compiler add $I11, rx1380_pos, 1 gt $I11, rx1380_eos, rx1380_fail sub $I11, rx1380_pos, rx1380_off - substr $S10, rx1380_tgt, $I11, 1 - ne $S10, "=", rx1380_fail + ord $I11, rx1380_tgt, $I11 + ne $I11, 61, rx1380_fail add rx1380_pos, 1 # rx subrule "assertion" subtype=capture negate= rx1380_cur."!cursor_pos"(rx1380_pos) @@ -18176,8 +19850,8 @@ NQP::Compiler - NQP compiler add $I11, rx1380_pos, 1 gt $I11, rx1380_eos, rx1380_fail sub $I11, rx1380_pos, rx1380_off - substr $S10, rx1380_tgt, $I11, 1 - ne $S10, ":", rx1380_fail + ord $I11, rx1380_tgt, $I11 + ne $I11, 58, rx1380_fail add rx1380_pos, 1 # rx subrule "arglist" subtype=capture negate= rx1380_cur."!cursor_pos"(rx1380_pos) @@ -18195,8 +19869,8 @@ NQP::Compiler - NQP compiler add $I11, rx1380_pos, 1 gt $I11, rx1380_eos, rx1380_fail sub $I11, rx1380_pos, rx1380_off - substr $S10, rx1380_tgt, $I11, 1 - ne $S10, "(", rx1380_fail + ord $I11, rx1380_tgt, $I11 + ne $I11, 40, rx1380_fail add rx1380_pos, 1 # rx subrule "LANG" subtype=capture negate= rx1380_cur."!cursor_pos"(rx1380_pos) @@ -18209,8 +19883,8 @@ NQP::Compiler - NQP compiler add $I11, rx1380_pos, 1 gt $I11, rx1380_eos, rx1380_fail sub $I11, rx1380_pos, rx1380_off - substr $S10, rx1380_tgt, $I11, 1 - ne $S10, ")", rx1380_fail + ord $I11, rx1380_tgt, $I11 + ne $I11, 41, rx1380_fail add rx1380_pos, 1 goto alt1386_end alt1386_4: @@ -18235,11 +19909,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 588 # rx pass rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym") + if_null rx1380_debug, debug_1063 rx1380_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx1380_pos) + debug_1063: .return (rx1380_cur) rx1380_restart: .annotate 'line', 567 + if_null rx1380_debug, debug_1064 rx1380_cur."!cursor_debug"("NEXT ", "assertion:sym") + debug_1064: rx1380_fail: (rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0) lt rx1380_pos, -1, rx1380_done @@ -18247,14 +19925,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1380_done: rx1380_cur."!cursor_fail"() + if_null rx1380_debug, debug_1065 rx1380_cur."!cursor_debug"("FAIL ", "assertion:sym") + debug_1065: .return (rx1380_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "!PREFIX__assertion:sym" :subid("364_1280467477.44751") :method +.sub "!PREFIX__assertion:sym" :subid("364_1282016529.10767") :method .annotate 'line', 567 $P1382 = self."!PREFIX__!subrule"("identifier", "") new $P1383, "ResizablePMCArray" @@ -18264,7 +19944,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1387" :anon :subid("365_1280467477.44751") :method :outer("363_1280467477.44751") +.sub "_block1387" :anon :subid("365_1282016529.10767") :method :outer("363_1282016529.10767") .annotate 'line', 591 .local string rx1389_tgt .local int rx1389_pos @@ -18272,7 +19952,9 @@ NQP::Compiler - NQP compiler .local int rx1389_eos .local int rx1389_rep .local pmc rx1389_cur + .local pmc rx1389_debug (rx1389_cur, rx1389_pos, rx1389_tgt, $I10) = self."!cursor_start"() + getattribute rx1389_debug, rx1389_cur, "$!debug" .lex unicode:"$\x{a2}", rx1389_cur .local pmc match .lex "$/", match @@ -18284,7 +19966,9 @@ NQP::Compiler - NQP compiler substr rx1389_tgt, rx1389_tgt, rx1389_off rx1389_start: eq $I10, 1, rx1389_restart + if_null rx1389_debug, debug_1059 rx1389_cur."!cursor_debug"("START ", "") + debug_1059: $I10 = self.'from'() ne $I10, -1, rxscan1390_done goto rxscan1390_scan @@ -18301,15 +19985,19 @@ NQP::Compiler - NQP compiler add $I11, rx1389_pos, 1 gt $I11, rx1389_eos, rx1389_fail sub $I11, rx1389_pos, rx1389_off - substr $S10, rx1389_tgt, $I11, 1 - ne $S10, ">", rx1389_fail + ord $I11, rx1389_tgt, $I11 + ne $I11, 62, rx1389_fail add rx1389_pos, 1 # rx pass rx1389_cur."!cursor_pass"(rx1389_pos, "") + if_null rx1389_debug, debug_1060 rx1389_cur."!cursor_debug"("PASS ", "", " at pos=", rx1389_pos) + debug_1060: .return (rx1389_cur) rx1389_restart: + if_null rx1389_debug, debug_1061 rx1389_cur."!cursor_debug"("NEXT ", "") + debug_1061: rx1389_fail: (rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0) lt rx1389_pos, -1, rx1389_done @@ -18317,14 +20005,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1389_done: rx1389_cur."!cursor_fail"() + if_null rx1389_debug, debug_1062 rx1389_cur."!cursor_debug"("FAIL ", "") + debug_1062: .return (rx1389_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "assertion:sym" :subid("366_1280467477.44751") :method :outer("349_1280467477.44751") +.sub "assertion:sym" :subid("366_1282016529.10767") :method :outer("349_1282016529.10767") .annotate 'line', 567 .local string rx1392_tgt .local int rx1392_pos @@ -18332,7 +20022,9 @@ NQP::Compiler - NQP compiler .local int rx1392_eos .local int rx1392_rep .local pmc rx1392_cur + .local pmc rx1392_debug (rx1392_cur, rx1392_pos, rx1392_tgt, $I10) = self."!cursor_start"() + getattribute rx1392_debug, rx1392_cur, "$!debug" .lex unicode:"$\x{a2}", rx1392_cur .local pmc match .lex "$/", match @@ -18344,7 +20036,9 @@ NQP::Compiler - NQP compiler substr rx1392_tgt, rx1392_tgt, rx1392_off rx1392_start: eq $I10, 1, rx1392_restart + if_null rx1392_debug, debug_1066 rx1392_cur."!cursor_debug"("START ", "assertion:sym") + debug_1066: $I10 = self.'from'() ne $I10, -1, rxscan1395_done goto rxscan1395_scan @@ -18374,11 +20068,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 599 # rx pass rx1392_cur."!cursor_pass"(rx1392_pos, "assertion:sym") + if_null rx1392_debug, debug_1067 rx1392_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx1392_pos) + debug_1067: .return (rx1392_cur) rx1392_restart: .annotate 'line', 567 + if_null rx1392_debug, debug_1068 rx1392_cur."!cursor_debug"("NEXT ", "assertion:sym") + debug_1068: rx1392_fail: (rx1392_rep, rx1392_pos, $I10, $P10) = rx1392_cur."!mark_fail"(0) lt rx1392_pos, -1, rx1392_done @@ -18386,14 +20084,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1392_done: rx1392_cur."!cursor_fail"() + if_null rx1392_debug, debug_1069 rx1392_cur."!cursor_debug"("FAIL ", "assertion:sym") + debug_1069: .return (rx1392_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "!PREFIX__assertion:sym" :subid("367_1280467477.44751") :method +.sub "!PREFIX__assertion:sym" :subid("367_1282016529.10767") :method .annotate 'line', 567 new $P1394, "ResizablePMCArray" push $P1394, "$" @@ -18403,7 +20103,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "codeblock" :subid("368_1280467477.44751") :method :outer("349_1280467477.44751") +.sub "codeblock" :subid("368_1282016529.10767") :method :outer("349_1282016529.10767") .annotate 'line', 567 .local string rx1397_tgt .local int rx1397_pos @@ -18411,7 +20111,9 @@ NQP::Compiler - NQP compiler .local int rx1397_eos .local int rx1397_rep .local pmc rx1397_cur + .local pmc rx1397_debug (rx1397_cur, rx1397_pos, rx1397_tgt, $I10) = self."!cursor_start"() + getattribute rx1397_debug, rx1397_cur, "$!debug" .lex unicode:"$\x{a2}", rx1397_cur .local pmc match .lex "$/", match @@ -18423,7 +20125,9 @@ NQP::Compiler - NQP compiler substr rx1397_tgt, rx1397_tgt, rx1397_off rx1397_start: eq $I10, 1, rx1397_restart + if_null rx1397_debug, debug_1070 rx1397_cur."!cursor_debug"("START ", "codeblock") + debug_1070: $I10 = self.'from'() ne $I10, -1, rxscan1401_done goto rxscan1401_scan @@ -18447,11 +20151,15 @@ NQP::Compiler - NQP compiler .annotate 'line', 603 # rx pass rx1397_cur."!cursor_pass"(rx1397_pos, "codeblock") + if_null rx1397_debug, debug_1071 rx1397_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1397_pos) + debug_1071: .return (rx1397_cur) rx1397_restart: .annotate 'line', 567 + if_null rx1397_debug, debug_1072 rx1397_cur."!cursor_debug"("NEXT ", "codeblock") + debug_1072: rx1397_fail: (rx1397_rep, rx1397_pos, $I10, $P10) = rx1397_cur."!mark_fail"(0) lt rx1397_pos, -1, rx1397_done @@ -18459,14 +20167,16 @@ NQP::Compiler - NQP compiler jump $I10 rx1397_done: rx1397_cur."!cursor_fail"() + if_null rx1397_debug, debug_1073 rx1397_cur."!cursor_debug"("FAIL ", "codeblock") + debug_1073: .return (rx1397_cur) .return () .end .namespace ["NQP";"Regex"] -.sub "!PREFIX__codeblock" :subid("369_1280467477.44751") :method +.sub "!PREFIX__codeblock" :subid("369_1282016529.10767") :method .annotate 'line', 567 $P1399 = self."!PREFIX__!subrule"("LANG", "") new $P1400, "ResizablePMCArray" @@ -18476,18 +20186,18 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block1403" :load :anon :subid("370_1280467477.44751") +.sub "_block1403" :load :anon :subid("370_1282016529.10767") .annotate 'line', 4 - .const 'Sub' $P1405 = "11_1280467477.44751" + .const 'Sub' $P1405 = "11_1282016529.10767" $P1406 = $P1405() .return ($P1406) .end .namespace [] -.sub "_block1424" :load :anon :subid("371_1280467477.44751") +.sub "_block1424" :load :anon :subid("371_1282016529.10767") .annotate 'line', 1 - .const 'Sub' $P1426 = "10_1280467477.44751" + .const 'Sub' $P1426 = "10_1282016529.10767" $P1427 = $P1426() .return ($P1427) .end @@ -18495,7 +20205,7 @@ NQP::Compiler - NQP compiler ### .include 'gen/nqp-actions.pir' .namespace [] -.sub "_block11" :anon :subid("10_1280467483.70067") +.sub "_block11" :anon :subid("10_1282016534.58916") .annotate 'line', 0 get_hll_global $P14, ["NQP";"Actions"], "_block13" capture_lex $P14 @@ -18512,15 +20222,15 @@ NQP::Compiler - NQP compiler $P2452 = $P14() .annotate 'line', 1 .return ($P2452) - .const 'Sub' $P2454 = "143_1280467483.70067" + .const 'Sub' $P2454 = "143_1282016534.58916" .return ($P2454) .end .namespace [] -.sub "" :load :init :subid("post144") :outer("10_1280467483.70067") +.sub "" :load :init :subid("post144") :outer("10_1282016534.58916") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1280467483.70067" + .const 'Sub' $P12 = "10_1282016534.58916" .local pmc block set block, $P12 $P2457 = get_root_global ["parrot"], "P6metaclass" @@ -18529,217 +20239,217 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block13" :subid("11_1280467483.70067") :outer("10_1280467483.70067") +.sub "_block13" :subid("11_1282016534.58916") :outer("10_1282016534.58916") .annotate 'line', 3 - .const 'Sub' $P2448 = "142_1280467483.70067" + .const 'Sub' $P2448 = "142_1282016534.58916" capture_lex $P2448 get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330" capture_lex $P2331 - .const 'Sub' $P2320 = "132_1280467483.70067" + .const 'Sub' $P2320 = "132_1282016534.58916" capture_lex $P2320 - .const 'Sub' $P2313 = "131_1280467483.70067" + .const 'Sub' $P2313 = "131_1282016534.58916" capture_lex $P2313 - .const 'Sub' $P2306 = "130_1280467483.70067" + .const 'Sub' $P2306 = "130_1282016534.58916" capture_lex $P2306 - .const 'Sub' $P2299 = "129_1280467483.70067" + .const 'Sub' $P2299 = "129_1282016534.58916" capture_lex $P2299 - .const 'Sub' $P2286 = "128_1280467483.70067" + .const 'Sub' $P2286 = "128_1282016534.58916" capture_lex $P2286 - .const 'Sub' $P2276 = "127_1280467483.70067" + .const 'Sub' $P2276 = "127_1282016534.58916" capture_lex $P2276 - .const 'Sub' $P2266 = "126_1280467483.70067" + .const 'Sub' $P2266 = "126_1282016534.58916" capture_lex $P2266 - .const 'Sub' $P2256 = "125_1280467483.70067" + .const 'Sub' $P2256 = "125_1282016534.58916" capture_lex $P2256 - .const 'Sub' $P2249 = "124_1280467483.70067" + .const 'Sub' $P2249 = "124_1282016534.58916" capture_lex $P2249 - .const 'Sub' $P2235 = "123_1280467483.70067" + .const 'Sub' $P2235 = "123_1282016534.58916" capture_lex $P2235 - .const 'Sub' $P2225 = "122_1280467483.70067" + .const 'Sub' $P2225 = "122_1282016534.58916" capture_lex $P2225 - .const 'Sub' $P2188 = "121_1280467483.70067" + .const 'Sub' $P2188 = "121_1282016534.58916" capture_lex $P2188 - .const 'Sub' $P2174 = "120_1280467483.70067" + .const 'Sub' $P2174 = "120_1282016534.58916" capture_lex $P2174 - .const 'Sub' $P2164 = "119_1280467483.70067" + .const 'Sub' $P2164 = "119_1282016534.58916" capture_lex $P2164 - .const 'Sub' $P2154 = "118_1280467483.70067" + .const 'Sub' $P2154 = "118_1282016534.58916" capture_lex $P2154 - .const 'Sub' $P2144 = "117_1280467483.70067" + .const 'Sub' $P2144 = "117_1282016534.58916" capture_lex $P2144 - .const 'Sub' $P2134 = "116_1280467483.70067" + .const 'Sub' $P2134 = "116_1282016534.58916" capture_lex $P2134 - .const 'Sub' $P2124 = "115_1280467483.70067" + .const 'Sub' $P2124 = "115_1282016534.58916" capture_lex $P2124 - .const 'Sub' $P2096 = "114_1280467483.70067" + .const 'Sub' $P2096 = "114_1282016534.58916" capture_lex $P2096 - .const 'Sub' $P2079 = "113_1280467483.70067" + .const 'Sub' $P2079 = "113_1282016534.58916" capture_lex $P2079 - .const 'Sub' $P2069 = "112_1280467483.70067" + .const 'Sub' $P2069 = "112_1282016534.58916" capture_lex $P2069 - .const 'Sub' $P2056 = "111_1280467483.70067" + .const 'Sub' $P2056 = "111_1282016534.58916" capture_lex $P2056 - .const 'Sub' $P2043 = "110_1280467483.70067" + .const 'Sub' $P2043 = "110_1282016534.58916" capture_lex $P2043 - .const 'Sub' $P2030 = "109_1280467483.70067" + .const 'Sub' $P2030 = "109_1282016534.58916" capture_lex $P2030 - .const 'Sub' $P2020 = "108_1280467483.70067" + .const 'Sub' $P2020 = "108_1282016534.58916" capture_lex $P2020 - .const 'Sub' $P1991 = "107_1280467483.70067" + .const 'Sub' $P1991 = "107_1282016534.58916" capture_lex $P1991 - .const 'Sub' $P1967 = "106_1280467483.70067" + .const 'Sub' $P1967 = "106_1282016534.58916" capture_lex $P1967 - .const 'Sub' $P1957 = "105_1280467483.70067" + .const 'Sub' $P1957 = "105_1282016534.58916" capture_lex $P1957 - .const 'Sub' $P1947 = "104_1280467483.70067" + .const 'Sub' $P1947 = "104_1282016534.58916" capture_lex $P1947 - .const 'Sub' $P1920 = "103_1280467483.70067" + .const 'Sub' $P1920 = "103_1282016534.58916" capture_lex $P1920 - .const 'Sub' $P1902 = "102_1280467483.70067" + .const 'Sub' $P1902 = "102_1282016534.58916" capture_lex $P1902 - .const 'Sub' $P1892 = "101_1280467483.70067" + .const 'Sub' $P1892 = "101_1282016534.58916" capture_lex $P1892 - .const 'Sub' $P1788 = "98_1280467483.70067" + .const 'Sub' $P1788 = "98_1282016534.58916" capture_lex $P1788 - .const 'Sub' $P1778 = "97_1280467483.70067" + .const 'Sub' $P1778 = "97_1282016534.58916" capture_lex $P1778 - .const 'Sub' $P1749 = "96_1280467483.70067" + .const 'Sub' $P1749 = "96_1282016534.58916" capture_lex $P1749 - .const 'Sub' $P1707 = "95_1280467483.70067" + .const 'Sub' $P1707 = "95_1282016534.58916" capture_lex $P1707 - .const 'Sub' $P1691 = "94_1280467483.70067" + .const 'Sub' $P1691 = "94_1282016534.58916" capture_lex $P1691 - .const 'Sub' $P1682 = "93_1280467483.70067" + .const 'Sub' $P1682 = "93_1282016534.58916" capture_lex $P1682 - .const 'Sub' $P1650 = "92_1280467483.70067" + .const 'Sub' $P1650 = "92_1282016534.58916" capture_lex $P1650 - .const 'Sub' $P1551 = "89_1280467483.70067" + .const 'Sub' $P1551 = "89_1282016534.58916" capture_lex $P1551 - .const 'Sub' $P1534 = "88_1280467483.70067" + .const 'Sub' $P1534 = "88_1282016534.58916" capture_lex $P1534 - .const 'Sub' $P1514 = "87_1280467483.70067" + .const 'Sub' $P1514 = "87_1282016534.58916" capture_lex $P1514 - .const 'Sub' $P1402 = "84_1280467483.70067" + .const 'Sub' $P1402 = "84_1282016534.58916" capture_lex $P1402 - .const 'Sub' $P1345 = "80_1280467483.70067" + .const 'Sub' $P1345 = "80_1282016534.58916" capture_lex $P1345 - .const 'Sub' $P1300 = "78_1280467483.70067" + .const 'Sub' $P1300 = "78_1282016534.58916" capture_lex $P1300 - .const 'Sub' $P1250 = "76_1280467483.70067" + .const 'Sub' $P1250 = "76_1282016534.58916" capture_lex $P1250 - .const 'Sub' $P1240 = "75_1280467483.70067" + .const 'Sub' $P1240 = "75_1282016534.58916" capture_lex $P1240 - .const 'Sub' $P1230 = "74_1280467483.70067" + .const 'Sub' $P1230 = "74_1282016534.58916" capture_lex $P1230 - .const 'Sub' $P1159 = "72_1280467483.70067" + .const 'Sub' $P1159 = "72_1282016534.58916" capture_lex $P1159 - .const 'Sub' $P1149 = "71_1280467483.70067" + .const 'Sub' $P1149 = "71_1282016534.58916" capture_lex $P1149 - .const 'Sub' $P1132 = "70_1280467483.70067" + .const 'Sub' $P1132 = "70_1282016534.58916" capture_lex $P1132 - .const 'Sub' $P1115 = "69_1280467483.70067" + .const 'Sub' $P1115 = "69_1282016534.58916" capture_lex $P1115 - .const 'Sub' $P1098 = "68_1280467483.70067" + .const 'Sub' $P1098 = "68_1282016534.58916" capture_lex $P1098 - .const 'Sub' $P1088 = "67_1280467483.70067" + .const 'Sub' $P1088 = "67_1282016534.58916" capture_lex $P1088 - .const 'Sub' $P1078 = "66_1280467483.70067" + .const 'Sub' $P1078 = "66_1282016534.58916" capture_lex $P1078 - .const 'Sub' $P1068 = "65_1280467483.70067" + .const 'Sub' $P1068 = "65_1282016534.58916" capture_lex $P1068 - .const 'Sub' $P1044 = "64_1280467483.70067" + .const 'Sub' $P1044 = "64_1282016534.58916" capture_lex $P1044 - .const 'Sub' $P991 = "63_1280467483.70067" + .const 'Sub' $P991 = "63_1282016534.58916" capture_lex $P991 - .const 'Sub' $P981 = "62_1280467483.70067" + .const 'Sub' $P981 = "62_1282016534.58916" capture_lex $P981 - .const 'Sub' $P892 = "60_1280467483.70067" + .const 'Sub' $P892 = "60_1282016534.58916" capture_lex $P892 - .const 'Sub' $P866 = "59_1280467483.70067" + .const 'Sub' $P866 = "59_1282016534.58916" capture_lex $P866 - .const 'Sub' $P850 = "58_1280467483.70067" + .const 'Sub' $P850 = "58_1282016534.58916" capture_lex $P850 - .const 'Sub' $P840 = "57_1280467483.70067" + .const 'Sub' $P840 = "57_1282016534.58916" capture_lex $P840 - .const 'Sub' $P830 = "56_1280467483.70067" + .const 'Sub' $P830 = "56_1282016534.58916" capture_lex $P830 - .const 'Sub' $P820 = "55_1280467483.70067" + .const 'Sub' $P820 = "55_1282016534.58916" capture_lex $P820 - .const 'Sub' $P810 = "54_1280467483.70067" + .const 'Sub' $P810 = "54_1282016534.58916" capture_lex $P810 - .const 'Sub' $P800 = "53_1280467483.70067" + .const 'Sub' $P800 = "53_1282016534.58916" capture_lex $P800 - .const 'Sub' $P790 = "52_1280467483.70067" + .const 'Sub' $P790 = "52_1282016534.58916" capture_lex $P790 - .const 'Sub' $P780 = "51_1280467483.70067" + .const 'Sub' $P780 = "51_1282016534.58916" capture_lex $P780 - .const 'Sub' $P770 = "50_1280467483.70067" + .const 'Sub' $P770 = "50_1282016534.58916" capture_lex $P770 - .const 'Sub' $P760 = "49_1280467483.70067" + .const 'Sub' $P760 = "49_1282016534.58916" capture_lex $P760 - .const 'Sub' $P750 = "48_1280467483.70067" + .const 'Sub' $P750 = "48_1282016534.58916" capture_lex $P750 - .const 'Sub' $P740 = "47_1280467483.70067" + .const 'Sub' $P740 = "47_1282016534.58916" capture_lex $P740 - .const 'Sub' $P730 = "46_1280467483.70067" + .const 'Sub' $P730 = "46_1282016534.58916" capture_lex $P730 - .const 'Sub' $P720 = "45_1280467483.70067" + .const 'Sub' $P720 = "45_1282016534.58916" capture_lex $P720 - .const 'Sub' $P702 = "44_1280467483.70067" + .const 'Sub' $P702 = "44_1282016534.58916" capture_lex $P702 - .const 'Sub' $P667 = "43_1280467483.70067" + .const 'Sub' $P667 = "43_1282016534.58916" capture_lex $P667 - .const 'Sub' $P651 = "42_1280467483.70067" + .const 'Sub' $P651 = "42_1282016534.58916" capture_lex $P651 - .const 'Sub' $P630 = "41_1280467483.70067" + .const 'Sub' $P630 = "41_1282016534.58916" capture_lex $P630 - .const 'Sub' $P610 = "40_1280467483.70067" + .const 'Sub' $P610 = "40_1282016534.58916" capture_lex $P610 - .const 'Sub' $P597 = "39_1280467483.70067" + .const 'Sub' $P597 = "39_1282016534.58916" capture_lex $P597 - .const 'Sub' $P571 = "38_1280467483.70067" + .const 'Sub' $P571 = "38_1282016534.58916" capture_lex $P571 - .const 'Sub' $P535 = "37_1280467483.70067" + .const 'Sub' $P535 = "37_1282016534.58916" capture_lex $P535 - .const 'Sub' $P518 = "36_1280467483.70067" + .const 'Sub' $P518 = "36_1282016534.58916" capture_lex $P518 - .const 'Sub' $P504 = "35_1280467483.70067" + .const 'Sub' $P504 = "35_1282016534.58916" capture_lex $P504 - .const 'Sub' $P451 = "33_1280467483.70067" + .const 'Sub' $P451 = "33_1282016534.58916" capture_lex $P451 - .const 'Sub' $P440 = "32_1280467483.70067" + .const 'Sub' $P440 = "32_1282016534.58916" capture_lex $P440 - .const 'Sub' $P427 = "31_1280467483.70067" + .const 'Sub' $P427 = "31_1282016534.58916" capture_lex $P427 - .const 'Sub' $P407 = "30_1280467483.70067" + .const 'Sub' $P407 = "30_1282016534.58916" capture_lex $P407 - .const 'Sub' $P397 = "29_1280467483.70067" + .const 'Sub' $P397 = "29_1282016534.58916" capture_lex $P397 - .const 'Sub' $P387 = "28_1280467483.70067" + .const 'Sub' $P387 = "28_1282016534.58916" capture_lex $P387 - .const 'Sub' $P371 = "27_1280467483.70067" + .const 'Sub' $P371 = "27_1282016534.58916" capture_lex $P371 - .const 'Sub' $P288 = "25_1280467483.70067" + .const 'Sub' $P288 = "25_1282016534.58916" capture_lex $P288 - .const 'Sub' $P245 = "23_1280467483.70067" + .const 'Sub' $P245 = "23_1282016534.58916" capture_lex $P245 - .const 'Sub' $P213 = "22_1280467483.70067" + .const 'Sub' $P213 = "22_1282016534.58916" capture_lex $P213 - .const 'Sub' $P180 = "21_1280467483.70067" + .const 'Sub' $P180 = "21_1282016534.58916" capture_lex $P180 - .const 'Sub' $P170 = "20_1280467483.70067" + .const 'Sub' $P170 = "20_1282016534.58916" capture_lex $P170 - .const 'Sub' $P151 = "19_1280467483.70067" + .const 'Sub' $P151 = "19_1282016534.58916" capture_lex $P151 - .const 'Sub' $P100 = "18_1280467483.70067" + .const 'Sub' $P100 = "18_1282016534.58916" capture_lex $P100 - .const 'Sub' $P84 = "17_1280467483.70067" + .const 'Sub' $P84 = "17_1282016534.58916" capture_lex $P84 - .const 'Sub' $P63 = "16_1280467483.70067" + .const 'Sub' $P63 = "16_1282016534.58916" capture_lex $P63 - .const 'Sub' $P27 = "13_1280467483.70067" + .const 'Sub' $P27 = "13_1282016534.58916" capture_lex $P27 - .const 'Sub' $P16 = "12_1280467483.70067" + .const 'Sub' $P16 = "12_1282016534.58916" capture_lex $P16 get_global $P15, "@BLOCK" unless_null $P15, vivify_147 @@ -18747,27 +20457,27 @@ NQP::Compiler - NQP compiler set_global "@BLOCK", $P15 vivify_147: .annotate 'line', 9 - .const 'Sub' $P16 = "12_1280467483.70067" + .const 'Sub' $P16 = "12_1282016534.58916" newclosure $P26, $P16 .lex "xblock_immediate", $P26 .annotate 'line', 14 - .const 'Sub' $P27 = "13_1280467483.70067" + .const 'Sub' $P27 = "13_1282016534.58916" newclosure $P62, $P27 .lex "block_immediate", $P62 .annotate 'line', 24 - .const 'Sub' $P63 = "16_1280467483.70067" + .const 'Sub' $P63 = "16_1282016534.58916" newclosure $P83, $P63 .lex "vivitype", $P83 .annotate 'line', 43 - .const 'Sub' $P84 = "17_1280467483.70067" + .const 'Sub' $P84 = "17_1282016534.58916" newclosure $P99, $P84 .lex "colonpair_str", $P99 .annotate 'line', 223 - .const 'Sub' $P100 = "18_1280467483.70067" + .const 'Sub' $P100 = "18_1282016534.58916" newclosure $P150, $P100 .lex "push_block_handler", $P150 .annotate 'line', 835 - .const 'Sub' $P151 = "19_1280467483.70067" + .const 'Sub' $P151 = "19_1282016534.58916" newclosure $P165, $P151 .lex "control", $P165 .annotate 'line', 3 @@ -18794,19 +20504,19 @@ NQP::Compiler - NQP compiler $P2442 = $P2331() .annotate 'line', 3 .return ($P2442) - .const 'Sub' $P2444 = "141_1280467483.70067" + .const 'Sub' $P2444 = "141_1282016534.58916" .return ($P2444) .end .namespace ["NQP";"Actions"] -.sub "" :load :init :subid("post145") :outer("11_1280467483.70067") +.sub "" :load :init :subid("post145") :outer("11_1282016534.58916") .annotate 'line', 3 get_hll_global $P14, ["NQP";"Actions"], "_block13" .local pmc block set block, $P14 .annotate 'line', 5 - .const 'Sub' $P2448 = "142_1280467483.70067" + .const 'Sub' $P2448 = "142_1282016534.58916" capture_lex $P2448 $P2448() $P2451 = get_root_global ["parrot"], "P6metaclass" @@ -18815,7 +20525,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block2447" :anon :subid("142_1280467483.70067") :outer("11_1280467483.70067") +.sub "_block2447" :anon :subid("142_1282016534.58916") :outer("11_1282016534.58916") .annotate 'line', 6 get_global $P2449, "@BLOCK" unless_null $P2449, vivify_146 @@ -18831,7 +20541,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "xblock_immediate" :subid("12_1280467483.70067") :outer("11_1280467483.70067") +.sub "xblock_immediate" :subid("12_1282016534.58916") :outer("11_1282016534.58916") .param pmc param_19 .annotate 'line', 9 new $P18, 'ExceptionHandler' @@ -18868,10 +20578,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "block_immediate" :subid("13_1280467483.70067") :outer("11_1280467483.70067") +.sub "block_immediate" :subid("13_1282016534.58916") :outer("11_1282016534.58916") .param pmc param_30 .annotate 'line', 14 - .const 'Sub' $P40 = "14_1280467483.70067" + .const 'Sub' $P40 = "14_1282016534.58916" capture_lex $P40 new $P29, 'ExceptionHandler' set_addr $P29, control_28 @@ -18893,7 +20603,7 @@ NQP::Compiler - NQP compiler set $P33, $P38 unless_34_end: if $P33, unless_32_end - .const 'Sub' $P40 = "14_1280467483.70067" + .const 'Sub' $P40 = "14_1282016534.58916" capture_lex $P40 $P40() unless_32_end: @@ -18910,9 +20620,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block39" :anon :subid("14_1280467483.70067") :outer("13_1280467483.70067") +.sub "_block39" :anon :subid("14_1282016534.58916") :outer("13_1282016534.58916") .annotate 'line', 16 - .const 'Sub' $P51 = "15_1280467483.70067" + .const 'Sub' $P51 = "15_1282016534.58916" capture_lex $P51 .annotate 'line', 17 new $P41, "Undef" @@ -18935,7 +20645,7 @@ NQP::Compiler - NQP compiler unless $P45, loop56_done shift $P49, $P45 loop56_redo: - .const 'Sub' $P51 = "15_1280467483.70067" + .const 'Sub' $P51 = "15_1282016534.58916" capture_lex $P51 $P51($P49) loop56_next: @@ -18958,7 +20668,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block50" :anon :subid("15_1280467483.70067") :outer("14_1280467483.70067") +.sub "_block50" :anon :subid("15_1282016534.58916") :outer("14_1282016534.58916") .param pmc param_52 .annotate 'line', 18 .lex "$_", param_52 @@ -18971,7 +20681,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "vivitype" :subid("16_1280467483.70067") :outer("11_1280467483.70067") +.sub "vivitype" :subid("16_1282016534.58916") :outer("11_1282016534.58916") .param pmc param_66 .annotate 'line', 24 new $P65, 'ExceptionHandler' @@ -19020,7 +20730,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "colonpair_str" :subid("17_1280467483.70067") :outer("11_1280467483.70067") +.sub "colonpair_str" :subid("17_1282016534.58916") :outer("11_1282016534.58916") .param pmc param_87 .annotate 'line', 43 new $P86, 'ExceptionHandler' @@ -19059,7 +20769,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "push_block_handler" :subid("18_1280467483.70067") :outer("11_1280467483.70067") +.sub "push_block_handler" :subid("18_1282016534.58916") :outer("11_1282016534.58916") .param pmc param_103 .param pmc param_104 .annotate 'line', 223 @@ -19177,7 +20887,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "control" :subid("19_1280467483.70067") :outer("11_1280467483.70067") +.sub "control" :subid("19_1282016534.58916") :outer("11_1282016534.58916") .param pmc param_154 .param pmc param_155 .annotate 'line', 835 @@ -19210,7 +20920,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "TOP" :subid("20_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "TOP" :subid("20_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_173 .annotate 'line', 33 new $P172, 'ExceptionHandler' @@ -19241,7 +20951,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "deflongname" :subid("21_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "deflongname" :subid("21_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_183 .annotate 'line', 35 new $P182, 'ExceptionHandler' @@ -19331,7 +21041,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "comp_unit" :subid("22_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "comp_unit" :subid("22_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_216 .annotate 'line', 49 new $P215, 'ExceptionHandler' @@ -19406,10 +21116,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statementlist" :subid("23_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statementlist" :subid("23_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_248 .annotate 'line', 76 - .const 'Sub' $P262 = "24_1280467483.70067" + .const 'Sub' $P262 = "24_1282016534.58916" capture_lex $P262 new $P247, 'ExceptionHandler' set_addr $P247, control_246 @@ -19454,7 +21164,7 @@ NQP::Compiler - NQP compiler unless $P256, loop281_done shift $P260, $P256 loop281_redo: - .const 'Sub' $P262 = "24_1280467483.70067" + .const 'Sub' $P262 = "24_1282016534.58916" capture_lex $P262 $P262($P260) loop281_next: @@ -19484,7 +21194,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block261" :anon :subid("24_1280467483.70067") :outer("23_1280467483.70067") +.sub "_block261" :anon :subid("24_1282016534.58916") :outer("23_1282016534.58916") .param pmc param_264 .annotate 'line', 80 new $P263, "Undef" @@ -19539,12 +21249,12 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement" :subid("25_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement" :subid("25_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_291 .param pmc param_292 :optional .param int has_param_292 :opt_flag .annotate 'line', 89 - .const 'Sub' $P300 = "26_1280467483.70067" + .const 'Sub' $P300 = "26_1282016534.58916" capture_lex $P300 new $P290, 'ExceptionHandler' set_addr $P290, control_289 @@ -19603,7 +21313,7 @@ NQP::Compiler - NQP compiler goto if_296_end if_296: .annotate 'line', 91 - .const 'Sub' $P300 = "26_1280467483.70067" + .const 'Sub' $P300 = "26_1282016534.58916" capture_lex $P300 $P300() if_296_end: @@ -19622,7 +21332,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block299" :anon :subid("26_1280467483.70067") :outer("25_1280467483.70067") +.sub "_block299" :anon :subid("26_1282016534.58916") :outer("25_1282016534.58916") .annotate 'line', 92 new $P301, "Undef" .lex "$mc", $P301 @@ -19795,7 +21505,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "xblock" :subid("27_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "xblock" :subid("27_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_374 .annotate 'line', 117 new $P373, 'ExceptionHandler' @@ -19840,7 +21550,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "pblock" :subid("28_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "pblock" :subid("28_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_390 .annotate 'line', 121 new $P389, 'ExceptionHandler' @@ -19873,7 +21583,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "block" :subid("29_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "block" :subid("29_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_400 .annotate 'line', 125 new $P399, 'ExceptionHandler' @@ -19906,7 +21616,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "blockoid" :subid("30_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "blockoid" :subid("30_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_410 .annotate 'line', 129 new $P409, 'ExceptionHandler' @@ -19963,7 +21673,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "newpad" :subid("31_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "newpad" :subid("31_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_430 .annotate 'line', 138 new $P429, 'ExceptionHandler' @@ -19999,7 +21709,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "outerctx" :subid("32_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "outerctx" :subid("32_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_443 .annotate 'line', 143 new $P442, 'ExceptionHandler' @@ -20039,10 +21749,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("33_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_control:sym" :subid("33_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_454 .annotate 'line', 150 - .const 'Sub' $P482 = "34_1280467483.70067" + .const 'Sub' $P482 = "34_1282016534.58916" capture_lex $P482 new $P453, 'ExceptionHandler' set_addr $P453, control_452 @@ -20127,7 +21837,7 @@ NQP::Compiler - NQP compiler isgt $I480, $N479, 0.0 unless $I480, loop497_done loop497_redo: - .const 'Sub' $P482 = "34_1280467483.70067" + .const 'Sub' $P482 = "34_1282016534.58916" capture_lex $P482 $P482() loop497_next: @@ -20155,7 +21865,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block481" :anon :subid("34_1280467483.70067") :outer("33_1280467483.70067") +.sub "_block481" :anon :subid("34_1282016534.58916") :outer("33_1282016534.58916") .annotate 'line', 159 new $P483, "Undef" .lex "$else", $P483 @@ -20195,7 +21905,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("35_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_control:sym" :subid("35_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_507 .annotate 'line', 166 new $P506, 'ExceptionHandler' @@ -20237,7 +21947,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("36_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_control:sym" :subid("36_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_521 .annotate 'line', 172 new $P520, 'ExceptionHandler' @@ -20288,7 +21998,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("37_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_control:sym" :subid("37_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_538 .annotate 'line', 178 new $P537, 'ExceptionHandler' @@ -20389,7 +22099,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("38_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_control:sym" :subid("38_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_574 .annotate 'line', 192 new $P573, 'ExceptionHandler' @@ -20470,7 +22180,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("39_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_control:sym" :subid("39_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_600 .annotate 'line', 205 new $P599, 'ExceptionHandler' @@ -20506,7 +22216,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("40_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_control:sym" :subid("40_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_613 .annotate 'line', 209 new $P612, 'ExceptionHandler' @@ -20565,7 +22275,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("41_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_control:sym" :subid("41_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_633 .annotate 'line', 216 new $P632, 'ExceptionHandler' @@ -20624,7 +22334,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_prefix:sym" :subid("42_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_prefix:sym" :subid("42_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_654 .annotate 'line', 260 new $P653, 'ExceptionHandler' @@ -20671,7 +22381,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_prefix:sym" :subid("43_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_prefix:sym" :subid("43_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_670 .annotate 'line', 265 new $P669, 'ExceptionHandler' @@ -20749,7 +22459,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "blorst" :subid("44_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "blorst" :subid("44_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_705 .annotate 'line', 288 new $P704, 'ExceptionHandler' @@ -20809,7 +22519,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_mod_cond:sym" :subid("45_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_mod_cond:sym" :subid("45_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_723 .annotate 'line', 296 new $P722, 'ExceptionHandler' @@ -20840,7 +22550,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_mod_cond:sym" :subid("46_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_mod_cond:sym" :subid("46_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_733 .annotate 'line', 297 new $P732, 'ExceptionHandler' @@ -20871,7 +22581,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_mod_loop:sym" :subid("47_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_mod_loop:sym" :subid("47_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_743 .annotate 'line', 299 new $P742, 'ExceptionHandler' @@ -20902,7 +22612,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_mod_loop:sym" :subid("48_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "statement_mod_loop:sym" :subid("48_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_753 .annotate 'line', 300 new $P752, 'ExceptionHandler' @@ -20933,7 +22643,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("49_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("49_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_763 .annotate 'line', 304 new $P762, 'ExceptionHandler' @@ -20964,7 +22674,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("50_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("50_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_773 .annotate 'line', 305 new $P772, 'ExceptionHandler' @@ -20995,7 +22705,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("51_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("51_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_783 .annotate 'line', 306 new $P782, 'ExceptionHandler' @@ -21026,7 +22736,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("52_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("52_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_793 .annotate 'line', 307 new $P792, 'ExceptionHandler' @@ -21057,7 +22767,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("53_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("53_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_803 .annotate 'line', 308 new $P802, 'ExceptionHandler' @@ -21088,7 +22798,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("54_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("54_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_813 .annotate 'line', 309 new $P812, 'ExceptionHandler' @@ -21119,7 +22829,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("55_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("55_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_823 .annotate 'line', 310 new $P822, 'ExceptionHandler' @@ -21150,7 +22860,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("56_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("56_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_833 .annotate 'line', 311 new $P832, 'ExceptionHandler' @@ -21181,7 +22891,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("57_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("57_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_843 .annotate 'line', 312 new $P842, 'ExceptionHandler' @@ -21212,7 +22922,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "fatarrow" :subid("58_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "fatarrow" :subid("58_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_853 .annotate 'line', 314 new $P852, 'ExceptionHandler' @@ -21262,7 +22972,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "colonpair" :subid("59_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "colonpair" :subid("59_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_869 .annotate 'line', 320 new $P868, 'ExceptionHandler' @@ -21344,10 +23054,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "variable" :subid("60_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "variable" :subid("60_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_895 .annotate 'line', 328 - .const 'Sub' $P908 = "61_1280467483.70067" + .const 'Sub' $P908 = "61_1282016534.58916" capture_lex $P908 new $P894, 'ExceptionHandler' set_addr $P894, control_893 @@ -21371,7 +23081,7 @@ NQP::Compiler - NQP compiler vivify_325: if $P900, if_898 .annotate 'line', 334 - .const 'Sub' $P908 = "61_1280467483.70067" + .const 'Sub' $P908 = "61_1282016534.58916" capture_lex $P908 $P908() goto if_898_end @@ -21408,7 +23118,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block907" :anon :subid("61_1280467483.70067") :outer("60_1280467483.70067") +.sub "_block907" :anon :subid("61_1282016534.58916") :outer("60_1282016534.58916") .annotate 'line', 335 $P909 = root_new ['parrot';'ResizablePMCArray'] .lex "@name", $P909 @@ -21578,7 +23288,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "package_declarator:sym" :subid("62_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "package_declarator:sym" :subid("62_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_984 .annotate 'line', 366 new $P983, 'ExceptionHandler' @@ -21609,7 +23319,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "package_declarator:sym" :subid("63_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "package_declarator:sym" :subid("63_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_994 .annotate 'line', 367 new $P993, 'ExceptionHandler' @@ -21767,7 +23477,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "package_def" :subid("64_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "package_def" :subid("64_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1047 .annotate 'line', 390 new $P1046, 'ExceptionHandler' @@ -21846,7 +23556,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "scope_declarator:sym" :subid("65_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "scope_declarator:sym" :subid("65_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1071 .annotate 'line', 397 new $P1070, 'ExceptionHandler' @@ -21877,7 +23587,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "scope_declarator:sym" :subid("66_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "scope_declarator:sym" :subid("66_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1081 .annotate 'line', 398 new $P1080, 'ExceptionHandler' @@ -21908,7 +23618,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "scope_declarator:sym" :subid("67_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "scope_declarator:sym" :subid("67_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1091 .annotate 'line', 399 new $P1090, 'ExceptionHandler' @@ -21939,7 +23649,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "scoped" :subid("68_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "scoped" :subid("68_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1101 .annotate 'line', 401 new $P1100, 'ExceptionHandler' @@ -21998,7 +23708,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "declarator" :subid("69_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "declarator" :subid("69_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1118 .annotate 'line', 407 new $P1117, 'ExceptionHandler' @@ -22057,7 +23767,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "multi_declarator:sym" :subid("70_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "multi_declarator:sym" :subid("70_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1135 .annotate 'line', 413 new $P1134, 'ExceptionHandler' @@ -22111,7 +23821,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "multi_declarator:sym" :subid("71_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "multi_declarator:sym" :subid("71_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1152 .annotate 'line', 414 new $P1151, 'ExceptionHandler' @@ -22142,10 +23852,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "variable_declarator" :subid("72_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "variable_declarator" :subid("72_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1162 .annotate 'line', 417 - .const 'Sub' $P1202 = "73_1280467483.70067" + .const 'Sub' $P1202 = "73_1282016534.58916" capture_lex $P1202 new $P1161, 'ExceptionHandler' set_addr $P1161, control_1160 @@ -22227,7 +23937,7 @@ NQP::Compiler - NQP compiler iseq $I1187, $S1186, "has" if $I1187, if_1184 .annotate 'line', 434 - .const 'Sub' $P1202 = "73_1280467483.70067" + .const 'Sub' $P1202 = "73_1282016534.58916" capture_lex $P1202 $P1202() goto if_1184_end @@ -22287,7 +23997,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1201" :anon :subid("73_1280467483.70067") :outer("72_1280467483.70067") +.sub "_block1201" :anon :subid("73_1282016534.58916") :outer("72_1282016534.58916") .annotate 'line', 435 new $P1203, "Undef" .lex "$scope", $P1203 @@ -22349,7 +24059,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "routine_declarator:sym" :subid("74_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "routine_declarator:sym" :subid("74_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1233 .annotate 'line', 445 new $P1232, 'ExceptionHandler' @@ -22380,7 +24090,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "routine_declarator:sym" :subid("75_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "routine_declarator:sym" :subid("75_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1243 .annotate 'line', 446 new $P1242, 'ExceptionHandler' @@ -22411,10 +24121,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "routine_def" :subid("76_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "routine_def" :subid("76_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1253 .annotate 'line', 448 - .const 'Sub' $P1264 = "77_1280467483.70067" + .const 'Sub' $P1264 = "77_1282016534.58916" capture_lex $P1264 new $P1252, 'ExceptionHandler' set_addr $P1252, control_1251 @@ -22451,7 +24161,7 @@ NQP::Compiler - NQP compiler new $P1262, "Undef" vivify_423: unless $P1262, if_1260_end - .const 'Sub' $P1264 = "77_1280467483.70067" + .const 'Sub' $P1264 = "77_1282016534.58916" capture_lex $P1264 $P1264() if_1260_end: @@ -22470,7 +24180,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1263" :anon :subid("77_1280467483.70067") :outer("76_1280467483.70067") +.sub "_block1263" :anon :subid("77_1282016534.58916") :outer("76_1282016534.58916") .annotate 'line', 453 new $P1265, "Undef" .lex "$name", $P1265 @@ -22567,10 +24277,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "method_def" :subid("78_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "method_def" :subid("78_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1303 .annotate 'line', 466 - .const 'Sub' $P1324 = "79_1280467483.70067" + .const 'Sub' $P1324 = "79_1282016534.58916" capture_lex $P1324 new $P1302, 'ExceptionHandler' set_addr $P1302, control_1301 @@ -22637,7 +24347,7 @@ NQP::Compiler - NQP compiler new $P1322, "Undef" vivify_444: unless $P1322, if_1320_end - .const 'Sub' $P1324 = "79_1280467483.70067" + .const 'Sub' $P1324 = "79_1282016534.58916" capture_lex $P1324 $P1324() if_1320_end: @@ -22671,7 +24381,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1323" :anon :subid("79_1280467483.70067") :outer("78_1280467483.70067") +.sub "_block1323" :anon :subid("79_1282016534.58916") :outer("78_1282016534.58916") .annotate 'line', 476 new $P1325, "Undef" .lex "$name", $P1325 @@ -22703,12 +24413,12 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "signature" :subid("80_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "signature" :subid("80_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1348 .annotate 'line', 484 - .const 'Sub' $P1374 = "82_1280467483.70067" + .const 'Sub' $P1374 = "82_1282016534.58916" capture_lex $P1374 - .const 'Sub' $P1359 = "81_1280467483.70067" + .const 'Sub' $P1359 = "81_1282016534.58916" capture_lex $P1359 new $P1347, 'ExceptionHandler' set_addr $P1347, control_1346 @@ -22752,7 +24462,7 @@ NQP::Compiler - NQP compiler unless $P1353, loop1365_done shift $P1357, $P1353 loop1365_redo: - .const 'Sub' $P1359 = "81_1280467483.70067" + .const 'Sub' $P1359 = "81_1282016534.58916" capture_lex $P1359 $P1359($P1357) loop1365_next: @@ -22781,7 +24491,7 @@ NQP::Compiler - NQP compiler set $P1368, $I1372 goto if_1369_end if_1369: - .const 'Sub' $P1374 = "82_1280467483.70067" + .const 'Sub' $P1374 = "82_1282016534.58916" capture_lex $P1374 $P1400 = $P1374() set $P1368, $P1400 @@ -22797,7 +24507,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1358" :anon :subid("81_1280467483.70067") :outer("80_1280467483.70067") +.sub "_block1358" :anon :subid("81_1282016534.58916") :outer("80_1282016534.58916") .param pmc param_1360 .annotate 'line', 487 .lex "$_", param_1360 @@ -22811,9 +24521,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block1373" :anon :subid("82_1280467483.70067") :outer("80_1280467483.70067") +.sub "_block1373" :anon :subid("82_1282016534.58916") :outer("80_1282016534.58916") .annotate 'line', 490 - .const 'Sub' $P1383 = "83_1280467483.70067" + .const 'Sub' $P1383 = "83_1282016534.58916" capture_lex $P1383 .annotate 'line', 491 $P1375 = root_new ['parrot';'ResizablePMCArray'] @@ -22834,7 +24544,7 @@ NQP::Compiler - NQP compiler unless $P1377, loop1393_done shift $P1381, $P1377 loop1393_redo: - .const 'Sub' $P1383 = "83_1280467483.70067" + .const 'Sub' $P1383 = "83_1282016534.58916" capture_lex $P1383 $P1383($P1381) loop1393_next: @@ -22865,7 +24575,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1382" :anon :subid("83_1280467483.70067") :outer("82_1280467483.70067") +.sub "_block1382" :anon :subid("83_1282016534.58916") :outer("82_1282016534.58916") .param pmc param_1384 .annotate 'line', 492 .lex "$_", param_1384 @@ -22888,10 +24598,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "parameter" :subid("84_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "parameter" :subid("84_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1405 .annotate 'line', 499 - .const 'Sub' $P1486 = "85_1280467483.70067" + .const 'Sub' $P1486 = "85_1282016534.58916" capture_lex $P1486 new $P1404, 'ExceptionHandler' set_addr $P1404, control_1403 @@ -23117,7 +24827,7 @@ NQP::Compiler - NQP compiler new $P1484, "Undef" vivify_490: unless $P1484, if_1482_end - .const 'Sub' $P1486 = "85_1280467483.70067" + .const 'Sub' $P1486 = "85_1282016534.58916" capture_lex $P1486 $P1486() if_1482_end: @@ -23137,9 +24847,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block1485" :anon :subid("85_1280467483.70067") :outer("84_1280467483.70067") +.sub "_block1485" :anon :subid("85_1282016534.58916") :outer("84_1282016534.58916") .annotate 'line', 530 - .const 'Sub' $P1498 = "86_1280467483.70067" + .const 'Sub' $P1498 = "86_1282016534.58916" capture_lex $P1498 .annotate 'line', 531 $P1487 = root_new ['parrot';'ResizablePMCArray'] @@ -23178,7 +24888,7 @@ NQP::Compiler - NQP compiler unless $P1489, loop1504_done shift $P1496, $P1489 loop1504_redo: - .const 'Sub' $P1498 = "86_1280467483.70067" + .const 'Sub' $P1498 = "86_1282016534.58916" capture_lex $P1498 $P1498($P1496) loop1504_next: @@ -23202,7 +24912,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1497" :anon :subid("86_1280467483.70067") :outer("85_1280467483.70067") +.sub "_block1497" :anon :subid("86_1282016534.58916") :outer("85_1282016534.58916") .param pmc param_1499 .annotate 'line', 532 .lex "$_", param_1499 @@ -23216,7 +24926,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "param_var" :subid("87_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "param_var" :subid("87_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1517 .annotate 'line', 539 new $P1516, 'ExceptionHandler' @@ -23270,7 +24980,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "named_param" :subid("88_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "named_param" :subid("88_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1537 .annotate 'line', 547 new $P1536, 'ExceptionHandler' @@ -23324,14 +25034,14 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "regex_declarator" :subid("89_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "regex_declarator" :subid("89_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1554 .param pmc param_1555 :optional .param int has_param_1555 :opt_flag .annotate 'line', 553 - .const 'Sub' $P1625 = "91_1280467483.70067" + .const 'Sub' $P1625 = "91_1282016534.58916" capture_lex $P1625 - .const 'Sub' $P1597 = "90_1280467483.70067" + .const 'Sub' $P1597 = "90_1282016534.58916" capture_lex $P1597 new $P1553, 'ExceptionHandler' set_addr $P1553, control_1552 @@ -23389,13 +25099,13 @@ NQP::Compiler - NQP compiler iseq $I1595, $S1594, "open" if $I1595, if_1592 .annotate 'line', 599 - .const 'Sub' $P1625 = "91_1280467483.70067" + .const 'Sub' $P1625 = "91_1282016534.58916" capture_lex $P1625 $P1625() goto if_1592_end if_1592: .annotate 'line', 586 - .const 'Sub' $P1597 = "90_1280467483.70067" + .const 'Sub' $P1597 = "90_1282016534.58916" capture_lex $P1597 $P1597() if_1592_end: @@ -23452,7 +25162,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1624" :anon :subid("91_1280467483.70067") :outer("89_1280467483.70067") +.sub "_block1624" :anon :subid("91_1282016534.58916") :outer("89_1282016534.58916") .annotate 'line', 600 new $P1626, "Undef" .lex "$regex", $P1626 @@ -23504,7 +25214,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block1596" :anon :subid("90_1280467483.70067") :outer("89_1280467483.70067") +.sub "_block1596" :anon :subid("90_1282016534.58916") :outer("89_1282016534.58916") .annotate 'line', 587 $P1598 = root_new ['parrot';'Hash'] .lex "%h", $P1598 @@ -23603,7 +25313,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "dotty" :subid("92_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "dotty" :subid("92_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1653 .annotate 'line', 617 new $P1652, 'ExceptionHandler' @@ -23701,7 +25411,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("93_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("93_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1685 .annotate 'line', 626 new $P1684, 'ExceptionHandler' @@ -23727,7 +25437,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("94_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("94_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1694 .annotate 'line', 630 new $P1693, 'ExceptionHandler' @@ -23777,7 +25487,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("95_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("95_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1710 .annotate 'line', 636 new $P1709, 'ExceptionHandler' @@ -23896,7 +25606,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("96_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("96_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1752 .annotate 'line', 650 new $P1751, 'ExceptionHandler' @@ -23988,7 +25698,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "args" :subid("97_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "args" :subid("97_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1781 .annotate 'line', 665 new $P1780, 'ExceptionHandler' @@ -24019,10 +25729,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "arglist" :subid("98_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "arglist" :subid("98_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1791 .annotate 'line', 667 - .const 'Sub' $P1802 = "99_1280467483.70067" + .const 'Sub' $P1802 = "99_1282016534.58916" capture_lex $P1802 new $P1790, 'ExceptionHandler' set_addr $P1790, control_1789 @@ -24054,7 +25764,7 @@ NQP::Compiler - NQP compiler new $P1800, "Undef" vivify_558: unless $P1800, if_1798_end - .const 'Sub' $P1802 = "99_1280467483.70067" + .const 'Sub' $P1802 = "99_1282016534.58916" capture_lex $P1802 $P1802() if_1798_end: @@ -24211,9 +25921,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block1801" :anon :subid("99_1280467483.70067") :outer("98_1280467483.70067") +.sub "_block1801" :anon :subid("99_1282016534.58916") :outer("98_1282016534.58916") .annotate 'line', 669 - .const 'Sub' $P1823 = "100_1280467483.70067" + .const 'Sub' $P1823 = "100_1282016534.58916" capture_lex $P1823 .annotate 'line', 670 new $P1803, "Undef" @@ -24266,7 +25976,7 @@ NQP::Compiler - NQP compiler unless $P1817, loop1828_done shift $P1821, $P1817 loop1828_redo: - .const 'Sub' $P1823 = "100_1280467483.70067" + .const 'Sub' $P1823 = "100_1282016534.58916" capture_lex $P1823 $P1823($P1821) loop1828_next: @@ -24289,7 +25999,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1822" :anon :subid("100_1280467483.70067") :outer("99_1280467483.70067") +.sub "_block1822" :anon :subid("100_1282016534.58916") :outer("99_1282016534.58916") .param pmc param_1824 .annotate 'line', 672 .lex "$_", param_1824 @@ -24302,7 +26012,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("101_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("101_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1895 .annotate 'line', 693 new $P1894, 'ExceptionHandler' @@ -24333,7 +26043,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym<( )>" :subid("102_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "circumfix:sym<( )>" :subid("102_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1905 .annotate 'line', 695 new $P1904, 'ExceptionHandler' @@ -24390,7 +26100,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym<[ ]>" :subid("103_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "circumfix:sym<[ ]>" :subid("103_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1923 .annotate 'line', 701 new $P1922, 'ExceptionHandler' @@ -24467,7 +26177,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym" :subid("104_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "circumfix:sym" :subid("104_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1950 .annotate 'line', 716 new $P1949, 'ExceptionHandler' @@ -24498,7 +26208,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("105_1280467483.70067") :method :outer("11_1280467483.70067") +.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("105_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1960 .annotate 'line', 717 new $P1959, 'ExceptionHandler' @@ -24529,7 +26239,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym<{ }>" :subid("106_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "circumfix:sym<{ }>" :subid("106_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1970 .annotate 'line', 719 new $P1969, 'ExceptionHandler' @@ -24608,7 +26318,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym" :subid("107_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "circumfix:sym" :subid("107_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_1994 .annotate 'line', 727 new $P1993, 'ExceptionHandler' @@ -24688,7 +26398,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "semilist" :subid("108_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "semilist" :subid("108_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2023 .annotate 'line', 734 new $P2022, 'ExceptionHandler' @@ -24719,7 +26429,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postcircumfix:sym<[ ]>" :subid("109_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "postcircumfix:sym<[ ]>" :subid("109_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2033 .annotate 'line', 736 new $P2032, 'ExceptionHandler' @@ -24757,7 +26467,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postcircumfix:sym<{ }>" :subid("110_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "postcircumfix:sym<{ }>" :subid("110_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2046 .annotate 'line', 742 new $P2045, 'ExceptionHandler' @@ -24795,7 +26505,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postcircumfix:sym" :subid("111_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "postcircumfix:sym" :subid("111_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2059 .annotate 'line', 748 new $P2058, 'ExceptionHandler' @@ -24833,7 +26543,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postcircumfix:sym<( )>" :subid("112_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "postcircumfix:sym<( )>" :subid("112_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2072 .annotate 'line', 754 new $P2071, 'ExceptionHandler' @@ -24866,7 +26576,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "value" :subid("113_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "value" :subid("113_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2082 .annotate 'line', 758 new $P2081, 'ExceptionHandler' @@ -24922,7 +26632,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "number" :subid("114_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "number" :subid("114_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2099 .annotate 'line', 762 new $P2098, 'ExceptionHandler' @@ -25001,7 +26711,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("115_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote:sym" :subid("115_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2127 .annotate 'line', 768 new $P2126, 'ExceptionHandler' @@ -25032,7 +26742,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("116_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote:sym" :subid("116_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2137 .annotate 'line', 769 new $P2136, 'ExceptionHandler' @@ -25063,7 +26773,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("117_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote:sym" :subid("117_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2147 .annotate 'line', 770 new $P2146, 'ExceptionHandler' @@ -25094,7 +26804,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("118_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote:sym" :subid("118_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2157 .annotate 'line', 771 new $P2156, 'ExceptionHandler' @@ -25125,7 +26835,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("119_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote:sym" :subid("119_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2167 .annotate 'line', 772 new $P2166, 'ExceptionHandler' @@ -25156,7 +26866,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("120_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote:sym" :subid("120_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2177 .annotate 'line', 773 new $P2176, 'ExceptionHandler' @@ -25193,7 +26903,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("121_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote:sym" :subid("121_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2191 .param pmc param_2192 :optional .param int has_param_2192 :opt_flag @@ -25303,7 +27013,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym<$>" :subid("122_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote_escape:sym<$>" :subid("122_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2228 .annotate 'line', 802 new $P2227, 'ExceptionHandler' @@ -25334,7 +27044,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym<{ }>" :subid("123_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote_escape:sym<{ }>" :subid("123_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2238 .annotate 'line', 803 new $P2237, 'ExceptionHandler' @@ -25373,7 +27083,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("124_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "quote_escape:sym" :subid("124_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2252 .annotate 'line', 808 new $P2251, 'ExceptionHandler' @@ -25395,7 +27105,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postfix:sym<.>" :subid("125_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "postfix:sym<.>" :subid("125_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2259 .annotate 'line', 812 new $P2258, 'ExceptionHandler' @@ -25426,7 +27136,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postfix:sym<++>" :subid("126_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "postfix:sym<++>" :subid("126_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2269 .annotate 'line', 814 new $P2268, 'ExceptionHandler' @@ -25457,7 +27167,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postfix:sym<-->" :subid("127_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "postfix:sym<-->" :subid("127_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2279 .annotate 'line', 820 new $P2278, 'ExceptionHandler' @@ -25488,7 +27198,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "prefix:sym" :subid("128_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "prefix:sym" :subid("128_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2289 .annotate 'line', 826 new $P2288, 'ExceptionHandler' @@ -25519,7 +27229,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("129_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("129_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2302 .annotate 'line', 844 new $P2301, 'ExceptionHandler' @@ -25541,7 +27251,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("130_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("130_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2309 .annotate 'line', 845 new $P2308, 'ExceptionHandler' @@ -25563,7 +27273,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("131_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "term:sym" :subid("131_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2316 .annotate 'line', 846 new $P2315, 'ExceptionHandler' @@ -25585,7 +27295,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "infix:sym<~~>" :subid("132_1280467483.70067") :method :outer("11_1280467483.70067") +.sub "infix:sym<~~>" :subid("132_1282016534.58916") :method :outer("11_1282016534.58916") .param pmc param_2323 .annotate 'line', 848 new $P2322, 'ExceptionHandler' @@ -25611,24 +27321,24 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] -.sub "_block2330" :subid("133_1280467483.70067") :outer("11_1280467483.70067") +.sub "_block2330" :subid("133_1282016534.58916") :outer("11_1282016534.58916") .annotate 'line', 853 - .const 'Sub' $P2416 = "140_1280467483.70067" + .const 'Sub' $P2416 = "140_1282016534.58916" capture_lex $P2416 - .const 'Sub' $P2403 = "139_1280467483.70067" + .const 'Sub' $P2403 = "139_1282016534.58916" capture_lex $P2403 - .const 'Sub' $P2386 = "138_1280467483.70067" + .const 'Sub' $P2386 = "138_1282016534.58916" capture_lex $P2386 - .const 'Sub' $P2373 = "137_1280467483.70067" + .const 'Sub' $P2373 = "137_1282016534.58916" capture_lex $P2373 - .const 'Sub' $P2360 = "136_1280467483.70067" + .const 'Sub' $P2360 = "136_1282016534.58916" capture_lex $P2360 - .const 'Sub' $P2347 = "135_1280467483.70067" + .const 'Sub' $P2347 = "135_1282016534.58916" capture_lex $P2347 - .const 'Sub' $P2332 = "134_1280467483.70067" + .const 'Sub' $P2332 = "134_1282016534.58916" capture_lex $P2332 .annotate 'line', 887 - .const 'Sub' $P2416 = "140_1280467483.70067" + .const 'Sub' $P2416 = "140_1282016534.58916" newclosure $P2441, $P2416 .annotate 'line', 853 .return ($P2441) @@ -25637,7 +27347,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "metachar:sym<:my>" :subid("134_1280467483.70067") :method :outer("133_1280467483.70067") +.sub "metachar:sym<:my>" :subid("134_1282016534.58916") :method :outer("133_1282016534.58916") .param pmc param_2335 .annotate 'line', 855 new $P2334, 'ExceptionHandler' @@ -25678,7 +27388,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "metachar:sym<{ }>" :subid("135_1280467483.70067") :method :outer("133_1280467483.70067") +.sub "metachar:sym<{ }>" :subid("135_1282016534.58916") :method :outer("133_1282016534.58916") .param pmc param_2350 .annotate 'line', 861 new $P2349, 'ExceptionHandler' @@ -25714,7 +27424,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("136_1280467483.70067") :method :outer("133_1280467483.70067") +.sub "metachar:sym" :subid("136_1282016534.58916") :method :outer("133_1282016534.58916") .param pmc param_2363 .annotate 'line', 866 new $P2362, 'ExceptionHandler' @@ -25750,7 +27460,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "assertion:sym<{ }>" :subid("137_1280467483.70067") :method :outer("133_1280467483.70067") +.sub "assertion:sym<{ }>" :subid("137_1282016534.58916") :method :outer("133_1282016534.58916") .param pmc param_2376 .annotate 'line', 871 new $P2375, 'ExceptionHandler' @@ -25786,7 +27496,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("138_1280467483.70067") :method :outer("133_1280467483.70067") +.sub "assertion:sym" :subid("138_1282016534.58916") :method :outer("133_1282016534.58916") .param pmc param_2389 .annotate 'line', 876 new $P2388, 'ExceptionHandler' @@ -25834,7 +27544,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("139_1280467483.70067") :method :outer("133_1280467483.70067") +.sub "assertion:sym" :subid("139_1282016534.58916") :method :outer("133_1282016534.58916") .param pmc param_2406 .annotate 'line', 882 new $P2405, 'ExceptionHandler' @@ -25870,7 +27580,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "codeblock" :subid("140_1280467483.70067") :method :outer("133_1280467483.70067") +.sub "codeblock" :subid("140_1282016534.58916") :method :outer("133_1282016534.58916") .param pmc param_2419 .annotate 'line', 887 new $P2418, 'ExceptionHandler' @@ -25934,18 +27644,18 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block2443" :load :anon :subid("141_1280467483.70067") +.sub "_block2443" :load :anon :subid("141_1282016534.58916") .annotate 'line', 3 - .const 'Sub' $P2445 = "11_1280467483.70067" + .const 'Sub' $P2445 = "11_1282016534.58916" $P2446 = $P2445() .return ($P2446) .end .namespace [] -.sub "_block2453" :load :anon :subid("143_1280467483.70067") +.sub "_block2453" :load :anon :subid("143_1282016534.58916") .annotate 'line', 1 - .const 'Sub' $P2455 = "10_1280467483.70067" + .const 'Sub' $P2455 = "10_1282016534.58916" $P2456 = $P2455() .return ($P2456) .end diff --git a/ext/nqp-rx/src/stage0/P6Regex-s0.pir b/ext/nqp-rx/src/stage0/P6Regex-s0.pir index d505718cc1..5daa3d41f7 100644 --- a/ext/nqp-rx/src/stage0/P6Regex-s0.pir +++ b/ext/nqp-rx/src/stage0/P6Regex-s0.pir @@ -16,7 +16,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes ### .include 'gen/p6regex-grammar.pir' .namespace [] -.sub "_block11" :anon :subid("10_1280467470.54449") +.sub "_block11" :anon :subid("10_1282016522.91354") .annotate 'line', 0 get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" capture_lex $P14 @@ -33,15 +33,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes $P572 = $P14() .annotate 'line', 1 .return ($P572) - .const 'Sub' $P574 = "161_1280467470.54449" + .const 'Sub' $P574 = "161_1282016522.91354" .return ($P574) .end .namespace [] -.sub "" :load :init :subid("post162") :outer("10_1280467470.54449") +.sub "" :load :init :subid("post162") :outer("10_1282016522.91354") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1280467470.54449" + .const 'Sub' $P12 = "10_1282016522.91354" .local pmc block set block, $P12 $P577 = get_root_global ["parrot"], "P6metaclass" @@ -50,133 +50,133 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block13" :subid("11_1280467470.54449") :outer("10_1280467470.54449") +.sub "_block13" :subid("11_1282016522.91354") :outer("10_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P561 = "158_1280467470.54449" + .const 'Sub' $P561 = "158_1282016522.91354" capture_lex $P561 - .const 'Sub' $P554 = "156_1280467470.54449" + .const 'Sub' $P554 = "156_1282016522.91354" capture_lex $P554 - .const 'Sub' $P547 = "154_1280467470.54449" + .const 'Sub' $P547 = "154_1282016522.91354" capture_lex $P547 - .const 'Sub' $P527 = "149_1280467470.54449" + .const 'Sub' $P527 = "149_1282016522.91354" capture_lex $P527 - .const 'Sub' $P493 = "143_1280467470.54449" + .const 'Sub' $P493 = "143_1282016522.91354" capture_lex $P493 - .const 'Sub' $P481 = "140_1280467470.54449" + .const 'Sub' $P481 = "140_1282016522.91354" capture_lex $P481 - .const 'Sub' $P469 = "137_1280467470.54449" + .const 'Sub' $P469 = "137_1282016522.91354" capture_lex $P469 - .const 'Sub' $P463 = "135_1280467470.54449" + .const 'Sub' $P463 = "135_1282016522.91354" capture_lex $P463 - .const 'Sub' $P452 = "132_1280467470.54449" + .const 'Sub' $P452 = "132_1282016522.91354" capture_lex $P452 - .const 'Sub' $P441 = "129_1280467470.54449" + .const 'Sub' $P441 = "129_1282016522.91354" capture_lex $P441 - .const 'Sub' $P432 = "125_1280467470.54449" + .const 'Sub' $P432 = "125_1282016522.91354" capture_lex $P432 - .const 'Sub' $P426 = "123_1280467470.54449" + .const 'Sub' $P426 = "123_1282016522.91354" capture_lex $P426 - .const 'Sub' $P420 = "121_1280467470.54449" + .const 'Sub' $P420 = "121_1282016522.91354" capture_lex $P420 - .const 'Sub' $P414 = "119_1280467470.54449" + .const 'Sub' $P414 = "119_1282016522.91354" capture_lex $P414 - .const 'Sub' $P408 = "117_1280467470.54449" + .const 'Sub' $P408 = "117_1282016522.91354" capture_lex $P408 - .const 'Sub' $P400 = "115_1280467470.54449" + .const 'Sub' $P400 = "115_1282016522.91354" capture_lex $P400 - .const 'Sub' $P389 = "113_1280467470.54449" + .const 'Sub' $P389 = "113_1282016522.91354" capture_lex $P389 - .const 'Sub' $P378 = "111_1280467470.54449" + .const 'Sub' $P378 = "111_1282016522.91354" capture_lex $P378 - .const 'Sub' $P372 = "109_1280467470.54449" + .const 'Sub' $P372 = "109_1282016522.91354" capture_lex $P372 - .const 'Sub' $P366 = "107_1280467470.54449" + .const 'Sub' $P366 = "107_1282016522.91354" capture_lex $P366 - .const 'Sub' $P360 = "105_1280467470.54449" + .const 'Sub' $P360 = "105_1282016522.91354" capture_lex $P360 - .const 'Sub' $P354 = "103_1280467470.54449" + .const 'Sub' $P354 = "103_1282016522.91354" capture_lex $P354 - .const 'Sub' $P348 = "101_1280467470.54449" + .const 'Sub' $P348 = "101_1282016522.91354" capture_lex $P348 - .const 'Sub' $P342 = "99_1280467470.54449" + .const 'Sub' $P342 = "99_1282016522.91354" capture_lex $P342 - .const 'Sub' $P336 = "97_1280467470.54449" + .const 'Sub' $P336 = "97_1282016522.91354" capture_lex $P336 - .const 'Sub' $P330 = "95_1280467470.54449" + .const 'Sub' $P330 = "95_1282016522.91354" capture_lex $P330 - .const 'Sub' $P318 = "91_1280467470.54449" + .const 'Sub' $P318 = "91_1282016522.91354" capture_lex $P318 - .const 'Sub' $P308 = "89_1280467470.54449" + .const 'Sub' $P308 = "89_1282016522.91354" capture_lex $P308 - .const 'Sub' $P301 = "87_1280467470.54449" + .const 'Sub' $P301 = "87_1282016522.91354" capture_lex $P301 - .const 'Sub' $P289 = "85_1280467470.54449" + .const 'Sub' $P289 = "85_1282016522.91354" capture_lex $P289 - .const 'Sub' $P282 = "83_1280467470.54449" + .const 'Sub' $P282 = "83_1282016522.91354" capture_lex $P282 - .const 'Sub' $P276 = "81_1280467470.54449" + .const 'Sub' $P276 = "81_1282016522.91354" capture_lex $P276 - .const 'Sub' $P270 = "79_1280467470.54449" + .const 'Sub' $P270 = "79_1282016522.91354" capture_lex $P270 - .const 'Sub' $P263 = "77_1280467470.54449" + .const 'Sub' $P263 = "77_1282016522.91354" capture_lex $P263 - .const 'Sub' $P256 = "75_1280467470.54449" + .const 'Sub' $P256 = "75_1282016522.91354" capture_lex $P256 - .const 'Sub' $P249 = "73_1280467470.54449" + .const 'Sub' $P249 = "73_1282016522.91354" capture_lex $P249 - .const 'Sub' $P242 = "71_1280467470.54449" + .const 'Sub' $P242 = "71_1282016522.91354" capture_lex $P242 - .const 'Sub' $P236 = "69_1280467470.54449" + .const 'Sub' $P236 = "69_1282016522.91354" capture_lex $P236 - .const 'Sub' $P230 = "67_1280467470.54449" + .const 'Sub' $P230 = "67_1282016522.91354" capture_lex $P230 - .const 'Sub' $P224 = "65_1280467470.54449" + .const 'Sub' $P224 = "65_1282016522.91354" capture_lex $P224 - .const 'Sub' $P218 = "63_1280467470.54449" + .const 'Sub' $P218 = "63_1282016522.91354" capture_lex $P218 - .const 'Sub' $P212 = "61_1280467470.54449" + .const 'Sub' $P212 = "61_1282016522.91354" capture_lex $P212 - .const 'Sub' $P207 = "59_1280467470.54449" + .const 'Sub' $P207 = "59_1282016522.91354" capture_lex $P207 - .const 'Sub' $P202 = "57_1280467470.54449" + .const 'Sub' $P202 = "57_1282016522.91354" capture_lex $P202 - .const 'Sub' $P196 = "55_1280467470.54449" + .const 'Sub' $P196 = "55_1282016522.91354" capture_lex $P196 - .const 'Sub' $P190 = "53_1280467470.54449" + .const 'Sub' $P190 = "53_1282016522.91354" capture_lex $P190 - .const 'Sub' $P184 = "51_1280467470.54449" + .const 'Sub' $P184 = "51_1282016522.91354" capture_lex $P184 - .const 'Sub' $P169 = "46_1280467470.54449" + .const 'Sub' $P169 = "46_1282016522.91354" capture_lex $P169 - .const 'Sub' $P154 = "44_1280467470.54449" + .const 'Sub' $P154 = "44_1282016522.91354" capture_lex $P154 - .const 'Sub' $P147 = "42_1280467470.54449" + .const 'Sub' $P147 = "42_1282016522.91354" capture_lex $P147 - .const 'Sub' $P140 = "40_1280467470.54449" + .const 'Sub' $P140 = "40_1282016522.91354" capture_lex $P140 - .const 'Sub' $P133 = "38_1280467470.54449" + .const 'Sub' $P133 = "38_1282016522.91354" capture_lex $P133 - .const 'Sub' $P116 = "33_1280467470.54449" + .const 'Sub' $P116 = "33_1282016522.91354" capture_lex $P116 - .const 'Sub' $P104 = "30_1280467470.54449" + .const 'Sub' $P104 = "30_1282016522.91354" capture_lex $P104 - .const 'Sub' $P97 = "28_1280467470.54449" + .const 'Sub' $P97 = "28_1282016522.91354" capture_lex $P97 - .const 'Sub' $P87 = "26_1280467470.54449" + .const 'Sub' $P87 = "26_1282016522.91354" capture_lex $P87 - .const 'Sub' $P80 = "24_1280467470.54449" + .const 'Sub' $P80 = "24_1282016522.91354" capture_lex $P80 - .const 'Sub' $P68 = "22_1280467470.54449" + .const 'Sub' $P68 = "22_1282016522.91354" capture_lex $P68 - .const 'Sub' $P61 = "20_1280467470.54449" + .const 'Sub' $P61 = "20_1282016522.91354" capture_lex $P61 - .const 'Sub' $P54 = "18_1280467470.54449" + .const 'Sub' $P54 = "18_1282016522.91354" capture_lex $P54 - .const 'Sub' $P44 = "15_1280467470.54449" + .const 'Sub' $P44 = "15_1282016522.91354" capture_lex $P44 - .const 'Sub' $P37 = "13_1280467470.54449" + .const 'Sub' $P37 = "13_1282016522.91354" capture_lex $P37 - .const 'Sub' $P15 = "12_1280467470.54449" + .const 'Sub' $P15 = "12_1282016522.91354" capture_lex $P15 $P0 = find_dynamic_lex "$*CTXSAVE" if null $P0 goto ctxsave_done @@ -184,17 +184,17 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $I0 goto ctxsave_done $P0."ctxsave"() ctxsave_done: - .const 'Sub' $P561 = "158_1280467470.54449" + .const 'Sub' $P561 = "158_1282016522.91354" capture_lex $P561 .return ($P561) - .const 'Sub' $P569 = "160_1280467470.54449" + .const 'Sub' $P569 = "160_1282016522.91354" .return ($P569) .end .namespace ["Regex";"P6Regex";"Grammar"] .include "except_types.pasm" -.sub "obs" :subid("12_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "obs" :subid("12_1282016522.91354") :method :outer("11_1282016522.91354") .param pmc param_18 .param pmc param_19 .param pmc param_20 :optional @@ -241,7 +241,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "ws" :subid("13_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "ws" :subid("13_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx38_tgt .local int rx38_pos @@ -249,7 +249,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx38_eos .local int rx38_rep .local pmc rx38_cur + .local pmc rx38_debug (rx38_cur, rx38_pos, rx38_tgt, $I10) = self."!cursor_start"() + getattribute rx38_debug, rx38_cur, "$!debug" .lex unicode:"$\x{a2}", rx38_cur .local pmc match .lex "$/", match @@ -261,7 +263,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx38_tgt, rx38_tgt, rx38_off rx38_start: eq $I10, 1, rx38_restart + if_null rx38_debug, debug_164 rx38_cur."!cursor_debug"("START ", "ws") + debug_164: $I10 = self.'from'() ne $I10, -1, rxscan41_done goto rxscan41_scan @@ -294,8 +298,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx38_pos, 1 gt $I11, rx38_eos, rx38_fail sub $I11, rx38_pos, rx38_off - substr $S10, rx38_tgt, $I11, 1 - ne $S10, "#", rx38_fail + ord $I11, rx38_tgt, $I11 + ne $I11, 35, rx38_fail add rx38_pos, 1 # rx charclass_q N r 0..-1 sub $I10, rx38_pos, rx38_off @@ -310,11 +314,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantr42_done: # rx pass rx38_cur."!cursor_pass"(rx38_pos, "ws") + if_null rx38_debug, debug_165 rx38_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx38_pos) + debug_165: .return (rx38_cur) rx38_restart: .annotate 'line', 3 + if_null rx38_debug, debug_166 rx38_cur."!cursor_debug"("NEXT ", "ws") + debug_166: rx38_fail: (rx38_rep, rx38_pos, $I10, $P10) = rx38_cur."!mark_fail"(0) lt rx38_pos, -1, rx38_done @@ -322,14 +330,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx38_done: rx38_cur."!cursor_fail"() + if_null rx38_debug, debug_167 rx38_cur."!cursor_debug"("FAIL ", "ws") + debug_167: .return (rx38_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__ws" :subid("14_1280467470.54449") :method +.sub "!PREFIX__ws" :subid("14_1282016522.91354") :method .annotate 'line', 3 new $P40, "ResizablePMCArray" push $P40, "" @@ -338,9 +348,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "normspace" :subid("15_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "normspace" :subid("15_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P50 = "17_1280467470.54449" + .const 'Sub' $P50 = "17_1282016522.91354" capture_lex $P50 .local string rx45_tgt .local int rx45_pos @@ -348,7 +358,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx45_eos .local int rx45_rep .local pmc rx45_cur + .local pmc rx45_debug (rx45_cur, rx45_pos, rx45_tgt, $I10) = self."!cursor_start"() + getattribute rx45_debug, rx45_cur, "$!debug" .lex unicode:"$\x{a2}", rx45_cur .local pmc match .lex "$/", match @@ -360,7 +372,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx45_tgt, rx45_tgt, rx45_off rx45_start: eq $I10, 1, rx45_restart + if_null rx45_debug, debug_168 rx45_cur."!cursor_debug"("START ", "normspace") + debug_168: $I10 = self.'from'() ne $I10, -1, rxscan48_done goto rxscan48_scan @@ -376,7 +390,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 10 # rx subrule "before" subtype=zerowidth negate= rx45_cur."!cursor_pos"(rx45_pos) - .const 'Sub' $P50 = "17_1280467470.54449" + .const 'Sub' $P50 = "17_1282016522.91354" capture_lex $P50 $P10 = rx45_cur."before"($P50) unless $P10, rx45_fail @@ -387,11 +401,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx45_pos = $P10."pos"() # rx pass rx45_cur."!cursor_pass"(rx45_pos, "normspace") + if_null rx45_debug, debug_173 rx45_cur."!cursor_debug"("PASS ", "normspace", " at pos=", rx45_pos) + debug_173: .return (rx45_cur) rx45_restart: .annotate 'line', 3 + if_null rx45_debug, debug_174 rx45_cur."!cursor_debug"("NEXT ", "normspace") + debug_174: rx45_fail: (rx45_rep, rx45_pos, $I10, $P10) = rx45_cur."!mark_fail"(0) lt rx45_pos, -1, rx45_done @@ -399,14 +417,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx45_done: rx45_cur."!cursor_fail"() + if_null rx45_debug, debug_175 rx45_cur."!cursor_debug"("FAIL ", "normspace") + debug_175: .return (rx45_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__normspace" :subid("16_1280467470.54449") :method +.sub "!PREFIX__normspace" :subid("16_1282016522.91354") :method .annotate 'line', 3 new $P47, "ResizablePMCArray" push $P47, "" @@ -415,7 +435,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block49" :anon :subid("17_1280467470.54449") :method :outer("15_1280467470.54449") +.sub "_block49" :anon :subid("17_1282016522.91354") :method :outer("15_1282016522.91354") .annotate 'line', 10 .local string rx51_tgt .local int rx51_pos @@ -423,7 +443,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx51_eos .local int rx51_rep .local pmc rx51_cur + .local pmc rx51_debug (rx51_cur, rx51_pos, rx51_tgt, $I10) = self."!cursor_start"() + getattribute rx51_debug, rx51_cur, "$!debug" .lex unicode:"$\x{a2}", rx51_cur .local pmc match .lex "$/", match @@ -435,7 +457,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx51_tgt, rx51_tgt, rx51_off rx51_start: eq $I10, 1, rx51_restart + if_null rx51_debug, debug_169 rx51_cur."!cursor_debug"("START ", "") + debug_169: $I10 = self.'from'() ne $I10, -1, rxscan52_done goto rxscan52_scan @@ -463,16 +487,20 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx51_pos, 1 gt $I11, rx51_eos, rx51_fail sub $I11, rx51_pos, rx51_off - substr $S10, rx51_tgt, $I11, 1 - ne $S10, "#", rx51_fail + ord $I11, rx51_tgt, $I11 + ne $I11, 35, rx51_fail add rx51_pos, 1 alt53_end: # rx pass rx51_cur."!cursor_pass"(rx51_pos, "") + if_null rx51_debug, debug_170 rx51_cur."!cursor_debug"("PASS ", "", " at pos=", rx51_pos) + debug_170: .return (rx51_cur) rx51_restart: + if_null rx51_debug, debug_171 rx51_cur."!cursor_debug"("NEXT ", "") + debug_171: rx51_fail: (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0) lt rx51_pos, -1, rx51_done @@ -480,14 +508,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx51_done: rx51_cur."!cursor_fail"() + if_null rx51_debug, debug_172 rx51_cur."!cursor_debug"("FAIL ", "") + debug_172: .return (rx51_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "identifier" :subid("18_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "identifier" :subid("18_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx55_tgt .local int rx55_pos @@ -495,7 +525,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx55_eos .local int rx55_rep .local pmc rx55_cur + .local pmc rx55_debug (rx55_cur, rx55_pos, rx55_tgt, $I10) = self."!cursor_start"() + getattribute rx55_debug, rx55_cur, "$!debug" .lex unicode:"$\x{a2}", rx55_cur .local pmc match .lex "$/", match @@ -507,7 +539,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx55_tgt, rx55_tgt, rx55_off rx55_start: eq $I10, 1, rx55_restart + if_null rx55_debug, debug_176 rx55_cur."!cursor_debug"("START ", "identifier") + debug_176: $I10 = self.'from'() ne $I10, -1, rxscan59_done goto rxscan59_scan @@ -550,11 +584,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantr60_done: # rx pass rx55_cur."!cursor_pass"(rx55_pos, "identifier") + if_null rx55_debug, debug_177 rx55_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx55_pos) + debug_177: .return (rx55_cur) rx55_restart: .annotate 'line', 3 + if_null rx55_debug, debug_178 rx55_cur."!cursor_debug"("NEXT ", "identifier") + debug_178: rx55_fail: (rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0) lt rx55_pos, -1, rx55_done @@ -562,14 +600,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx55_done: rx55_cur."!cursor_fail"() + if_null rx55_debug, debug_179 rx55_cur."!cursor_debug"("FAIL ", "identifier") + debug_179: .return (rx55_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__identifier" :subid("19_1280467470.54449") :method +.sub "!PREFIX__identifier" :subid("19_1282016522.91354") :method .annotate 'line', 3 $P57 = self."!PREFIX__!subrule"("ident", "") new $P58, "ResizablePMCArray" @@ -579,7 +619,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "arg" :subid("20_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "arg" :subid("20_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx62_tgt .local int rx62_pos @@ -587,7 +627,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx62_eos .local int rx62_rep .local pmc rx62_cur + .local pmc rx62_debug (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"() + getattribute rx62_debug, rx62_cur, "$!debug" .lex unicode:"$\x{a2}", rx62_cur .local pmc match .lex "$/", match @@ -599,7 +641,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx62_tgt, rx62_tgt, rx62_off rx62_start: eq $I10, 1, rx62_restart + if_null rx62_debug, debug_180 rx62_cur."!cursor_debug"("START ", "arg") + debug_180: $I10 = self.'from'() ne $I10, -1, rxscan65_done goto rxscan65_scan @@ -675,11 +719,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 14 # rx pass rx62_cur."!cursor_pass"(rx62_pos, "arg") + if_null rx62_debug, debug_181 rx62_cur."!cursor_debug"("PASS ", "arg", " at pos=", rx62_pos) + debug_181: .return (rx62_cur) rx62_restart: .annotate 'line', 3 + if_null rx62_debug, debug_182 rx62_cur."!cursor_debug"("NEXT ", "arg") + debug_182: rx62_fail: (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0) lt rx62_pos, -1, rx62_done @@ -687,14 +735,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx62_done: rx62_cur."!cursor_fail"() + if_null rx62_debug, debug_183 rx62_cur."!cursor_debug"("FAIL ", "arg") + debug_183: .return (rx62_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__arg" :subid("21_1280467470.54449") :method +.sub "!PREFIX__arg" :subid("21_1282016522.91354") :method .annotate 'line', 3 new $P64, "ResizablePMCArray" push $P64, "" @@ -705,7 +755,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "arglist" :subid("22_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "arglist" :subid("22_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx69_tgt .local int rx69_pos @@ -713,8 +763,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx69_eos .local int rx69_rep .local pmc rx69_cur + .local pmc rx69_debug (rx69_cur, rx69_pos, rx69_tgt, $I10) = self."!cursor_start"() rx69_cur."!cursor_caparray"("arg") + getattribute rx69_debug, rx69_cur, "$!debug" .lex unicode:"$\x{a2}", rx69_cur .local pmc match .lex "$/", match @@ -726,7 +778,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx69_tgt, rx69_tgt, rx69_off rx69_start: eq $I10, 1, rx69_restart + if_null rx69_debug, debug_184 rx69_cur."!cursor_debug"("START ", "arglist") + debug_184: $I10 = self.'from'() ne $I10, -1, rxscan73_done goto rxscan73_scan @@ -770,8 +824,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx69_pos, 1 gt $I11, rx69_eos, rx69_fail sub $I11, rx69_pos, rx69_off - substr $S10, rx69_tgt, $I11, 1 - ne $S10, ",", rx69_fail + ord $I11, rx69_tgt, $I11 + ne $I11, 44, rx69_fail add rx69_pos, 1 # rx subrule "ws" subtype=method negate= rx69_cur."!cursor_pos"(rx69_pos) @@ -798,11 +852,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx69_pos = $P10."pos"() # rx pass rx69_cur."!cursor_pass"(rx69_pos, "arglist") + if_null rx69_debug, debug_185 rx69_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx69_pos) + debug_185: .return (rx69_cur) rx69_restart: .annotate 'line', 3 + if_null rx69_debug, debug_186 rx69_cur."!cursor_debug"("NEXT ", "arglist") + debug_186: rx69_fail: (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0) lt rx69_pos, -1, rx69_done @@ -810,14 +868,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx69_done: rx69_cur."!cursor_fail"() + if_null rx69_debug, debug_187 rx69_cur."!cursor_debug"("FAIL ", "arglist") + debug_187: .return (rx69_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__arglist" :subid("23_1280467470.54449") :method +.sub "!PREFIX__arglist" :subid("23_1282016522.91354") :method .annotate 'line', 3 $P71 = self."!PREFIX__!subrule"("ws", "") new $P72, "ResizablePMCArray" @@ -827,7 +887,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "TOP" :subid("24_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "TOP" :subid("24_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx81_tgt .local int rx81_pos @@ -835,7 +895,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx81_eos .local int rx81_rep .local pmc rx81_cur + .local pmc rx81_debug (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"() + getattribute rx81_debug, rx81_cur, "$!debug" .lex unicode:"$\x{a2}", rx81_cur .local pmc match .lex "$/", match @@ -847,7 +909,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx81_tgt, rx81_tgt, rx81_off rx81_start: eq $I10, 1, rx81_restart + if_null rx81_debug, debug_188 rx81_cur."!cursor_debug"("START ", "TOP") + debug_188: $I10 = self.'from'() ne $I10, -1, rxscan85_done goto rxscan85_scan @@ -885,11 +949,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 24 # rx pass rx81_cur."!cursor_pass"(rx81_pos, "TOP") + if_null rx81_debug, debug_189 rx81_cur."!cursor_debug"("PASS ", "TOP", " at pos=", rx81_pos) + debug_189: .return (rx81_cur) rx81_restart: .annotate 'line', 3 + if_null rx81_debug, debug_190 rx81_cur."!cursor_debug"("NEXT ", "TOP") + debug_190: rx81_fail: (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0) lt rx81_pos, -1, rx81_done @@ -897,14 +965,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx81_done: rx81_cur."!cursor_fail"() + if_null rx81_debug, debug_191 rx81_cur."!cursor_debug"("FAIL ", "TOP") + debug_191: .return (rx81_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__TOP" :subid("25_1280467470.54449") :method +.sub "!PREFIX__TOP" :subid("25_1282016522.91354") :method .annotate 'line', 3 $P83 = self."!PREFIX__!subrule"("nibbler", "") new $P84, "ResizablePMCArray" @@ -914,7 +984,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "nibbler" :subid("26_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "nibbler" :subid("26_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx88_tgt .local int rx88_pos @@ -922,8 +992,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx88_eos .local int rx88_rep .local pmc rx88_cur + .local pmc rx88_debug (rx88_cur, rx88_pos, rx88_tgt, $I10) = self."!cursor_start"() rx88_cur."!cursor_caparray"("termish") + getattribute rx88_debug, rx88_cur, "$!debug" .lex unicode:"$\x{a2}", rx88_cur .local pmc match .lex "$/", match @@ -935,7 +1007,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx88_tgt, rx88_tgt, rx88_off rx88_start: eq $I10, 1, rx88_restart + if_null rx88_debug, debug_192 rx88_cur."!cursor_debug"("START ", "nibbler") + debug_192: $I10 = self.'from'() ne $I10, -1, rxscan91_done goto rxscan91_scan @@ -980,8 +1054,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx88_pos, 1 gt $I11, rx88_eos, rx88_fail sub $I11, rx88_pos, rx88_off - substr $S10, rx88_tgt, $I11, 1 - ne $S10, "|", rx88_fail + ord $I11, rx88_tgt, $I11 + ne $I11, 124, rx88_fail add rx88_pos, 1 goto alt93_end alt93_2: @@ -1000,8 +1074,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx88_pos, 1 gt $I11, rx88_eos, rx88_fail sub $I11, rx88_pos, rx88_off - substr $S10, rx88_tgt, $I11, 1 - ne $S10, "&", rx88_fail + ord $I11, rx88_tgt, $I11 + ne $I11, 38, rx88_fail add rx88_pos, 1 alt93_end: set_addr $I10, rxquantr92_done @@ -1037,8 +1111,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx88_pos, 1 gt $I11, rx88_eos, rx88_fail sub $I11, rx88_pos, rx88_off - substr $S10, rx88_tgt, $I11, 1 - ne $S10, "|", rx88_fail + ord $I11, rx88_tgt, $I11 + ne $I11, 124, rx88_fail add rx88_pos, 1 alt95_end: alt96_0: @@ -1070,11 +1144,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 29 # rx pass rx88_cur."!cursor_pass"(rx88_pos, "nibbler") + if_null rx88_debug, debug_193 rx88_cur."!cursor_debug"("PASS ", "nibbler", " at pos=", rx88_pos) + debug_193: .return (rx88_cur) rx88_restart: .annotate 'line', 3 + if_null rx88_debug, debug_194 rx88_cur."!cursor_debug"("NEXT ", "nibbler") + debug_194: rx88_fail: (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0) lt rx88_pos, -1, rx88_done @@ -1082,14 +1160,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx88_done: rx88_cur."!cursor_fail"() + if_null rx88_debug, debug_195 rx88_cur."!cursor_debug"("FAIL ", "nibbler") + debug_195: .return (rx88_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__nibbler" :subid("27_1280467470.54449") :method +.sub "!PREFIX__nibbler" :subid("27_1282016522.91354") :method .annotate 'line', 3 new $P90, "ResizablePMCArray" push $P90, "" @@ -1098,7 +1178,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "termish" :subid("28_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "termish" :subid("28_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx98_tgt .local int rx98_pos @@ -1106,8 +1186,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx98_eos .local int rx98_rep .local pmc rx98_cur + .local pmc rx98_debug (rx98_cur, rx98_pos, rx98_tgt, $I10) = self."!cursor_start"() rx98_cur."!cursor_caparray"("noun") + getattribute rx98_debug, rx98_cur, "$!debug" .lex unicode:"$\x{a2}", rx98_cur .local pmc match .lex "$/", match @@ -1119,7 +1201,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx98_tgt, rx98_tgt, rx98_off rx98_start: eq $I10, 1, rx98_restart + if_null rx98_debug, debug_196 rx98_cur."!cursor_debug"("START ", "termish") + debug_196: $I10 = self.'from'() ne $I10, -1, rxscan101_done goto rxscan101_scan @@ -1159,11 +1243,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 38 # rx pass rx98_cur."!cursor_pass"(rx98_pos, "termish") + if_null rx98_debug, debug_197 rx98_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx98_pos) + debug_197: .return (rx98_cur) rx98_restart: .annotate 'line', 3 + if_null rx98_debug, debug_198 rx98_cur."!cursor_debug"("NEXT ", "termish") + debug_198: rx98_fail: (rx98_rep, rx98_pos, $I10, $P10) = rx98_cur."!mark_fail"(0) lt rx98_pos, -1, rx98_done @@ -1171,14 +1259,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx98_done: rx98_cur."!cursor_fail"() + if_null rx98_debug, debug_199 rx98_cur."!cursor_debug"("FAIL ", "termish") + debug_199: .return (rx98_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__termish" :subid("29_1280467470.54449") :method +.sub "!PREFIX__termish" :subid("29_1282016522.91354") :method .annotate 'line', 3 new $P100, "ResizablePMCArray" push $P100, "" @@ -1187,9 +1277,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantified_atom" :subid("30_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "quantified_atom" :subid("30_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P113 = "32_1280467470.54449" + .const 'Sub' $P113 = "32_1282016522.91354" capture_lex $P113 .local string rx105_tgt .local int rx105_pos @@ -1197,8 +1287,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx105_eos .local int rx105_rep .local pmc rx105_cur + .local pmc rx105_debug (rx105_cur, rx105_pos, rx105_tgt, $I10) = self."!cursor_start"() rx105_cur."!cursor_caparray"("quantifier", "backmod") + getattribute rx105_debug, rx105_cur, "$!debug" .lex unicode:"$\x{a2}", rx105_cur .local pmc match .lex "$/", match @@ -1210,7 +1302,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx105_tgt, rx105_tgt, rx105_off rx105_start: eq $I10, 1, rx105_restart + if_null rx105_debug, debug_200 rx105_cur."!cursor_debug"("START ", "quantified_atom") + debug_200: $I10 = self.'from'() ne $I10, -1, rxscan109_done goto rxscan109_scan @@ -1254,7 +1348,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes alt111_1: # rx subrule "before" subtype=zerowidth negate= rx105_cur."!cursor_pos"(rx105_pos) - .const 'Sub' $P113 = "32_1280467470.54449" + .const 'Sub' $P113 = "32_1282016522.91354" capture_lex $P113 $P10 = rx105_cur."before"($P113) unless $P10, rx105_fail @@ -1276,11 +1370,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 42 # rx pass rx105_cur."!cursor_pass"(rx105_pos, "quantified_atom") + if_null rx105_debug, debug_205 rx105_cur."!cursor_debug"("PASS ", "quantified_atom", " at pos=", rx105_pos) + debug_205: .return (rx105_cur) rx105_restart: .annotate 'line', 3 + if_null rx105_debug, debug_206 rx105_cur."!cursor_debug"("NEXT ", "quantified_atom") + debug_206: rx105_fail: (rx105_rep, rx105_pos, $I10, $P10) = rx105_cur."!mark_fail"(0) lt rx105_pos, -1, rx105_done @@ -1288,14 +1386,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx105_done: rx105_cur."!cursor_fail"() + if_null rx105_debug, debug_207 rx105_cur."!cursor_debug"("FAIL ", "quantified_atom") + debug_207: .return (rx105_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantified_atom" :subid("31_1280467470.54449") :method +.sub "!PREFIX__quantified_atom" :subid("31_1282016522.91354") :method .annotate 'line', 3 $P107 = self."!PREFIX__!subrule"("atom", "") new $P108, "ResizablePMCArray" @@ -1305,7 +1405,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block112" :anon :subid("32_1280467470.54449") :method :outer("30_1280467470.54449") +.sub "_block112" :anon :subid("32_1282016522.91354") :method :outer("30_1282016522.91354") .annotate 'line', 43 .local string rx114_tgt .local int rx114_pos @@ -1313,7 +1413,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx114_eos .local int rx114_rep .local pmc rx114_cur + .local pmc rx114_debug (rx114_cur, rx114_pos, rx114_tgt, $I10) = self."!cursor_start"() + getattribute rx114_debug, rx114_cur, "$!debug" .lex unicode:"$\x{a2}", rx114_cur .local pmc match .lex "$/", match @@ -1325,7 +1427,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx114_tgt, rx114_tgt, rx114_off rx114_start: eq $I10, 1, rx114_restart + if_null rx114_debug, debug_201 rx114_cur."!cursor_debug"("START ", "") + debug_201: $I10 = self.'from'() ne $I10, -1, rxscan115_done goto rxscan115_scan @@ -1342,15 +1446,19 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx114_pos, 1 gt $I11, rx114_eos, rx114_fail sub $I11, rx114_pos, rx114_off - substr $S10, rx114_tgt, $I11, 1 - ne $S10, ":", rx114_fail + ord $I11, rx114_tgt, $I11 + ne $I11, 58, rx114_fail add rx114_pos, 1 # rx pass rx114_cur."!cursor_pass"(rx114_pos, "") + if_null rx114_debug, debug_202 rx114_cur."!cursor_debug"("PASS ", "", " at pos=", rx114_pos) + debug_202: .return (rx114_cur) rx114_restart: + if_null rx114_debug, debug_203 rx114_cur."!cursor_debug"("NEXT ", "") + debug_203: rx114_fail: (rx114_rep, rx114_pos, $I10, $P10) = rx114_cur."!mark_fail"(0) lt rx114_pos, -1, rx114_done @@ -1358,16 +1466,18 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx114_done: rx114_cur."!cursor_fail"() + if_null rx114_debug, debug_204 rx114_cur."!cursor_debug"("FAIL ", "") + debug_204: .return (rx114_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "atom" :subid("33_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "atom" :subid("33_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P126 = "35_1280467470.54449" + .const 'Sub' $P126 = "35_1282016522.91354" capture_lex $P126 .local string rx117_tgt .local int rx117_pos @@ -1375,7 +1485,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx117_eos .local int rx117_rep .local pmc rx117_cur + .local pmc rx117_debug (rx117_cur, rx117_pos, rx117_tgt, $I10) = self."!cursor_start"() + getattribute rx117_debug, rx117_cur, "$!debug" .lex unicode:"$\x{a2}", rx117_cur .local pmc match .lex "$/", match @@ -1387,7 +1499,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx117_tgt, rx117_tgt, rx117_off rx117_start: eq $I10, 1, rx117_restart + if_null rx117_debug, debug_208 rx117_cur."!cursor_debug"("START ", "atom") + debug_208: $I10 = self.'from'() ne $I10, -1, rxscan121_done goto rxscan121_scan @@ -1429,7 +1543,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantg124_done: # rx subrule "before" subtype=zerowidth negate= rx117_cur."!cursor_pos"(rx117_pos) - .const 'Sub' $P126 = "35_1280467470.54449" + .const 'Sub' $P126 = "35_1282016522.91354" capture_lex $P126 $P10 = rx117_cur."before"($P126) unless $P10, rx117_fail @@ -1450,11 +1564,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 46 # rx pass rx117_cur."!cursor_pass"(rx117_pos, "atom") + if_null rx117_debug, debug_213 rx117_cur."!cursor_debug"("PASS ", "atom", " at pos=", rx117_pos) + debug_213: .return (rx117_cur) rx117_restart: .annotate 'line', 3 + if_null rx117_debug, debug_214 rx117_cur."!cursor_debug"("NEXT ", "atom") + debug_214: rx117_fail: (rx117_rep, rx117_pos, $I10, $P10) = rx117_cur."!mark_fail"(0) lt rx117_pos, -1, rx117_done @@ -1462,14 +1580,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx117_done: rx117_cur."!cursor_fail"() + if_null rx117_debug, debug_215 rx117_cur."!cursor_debug"("FAIL ", "atom") + debug_215: .return (rx117_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__atom" :subid("34_1280467470.54449") :method +.sub "!PREFIX__atom" :subid("34_1282016522.91354") :method .annotate 'line', 3 $P119 = self."!PREFIX__!subrule"("metachar", "") new $P120, "ResizablePMCArray" @@ -1480,7 +1600,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block125" :anon :subid("35_1280467470.54449") :method :outer("33_1280467470.54449") +.sub "_block125" :anon :subid("35_1282016522.91354") :method :outer("33_1282016522.91354") .annotate 'line', 49 .local string rx127_tgt .local int rx127_pos @@ -1488,7 +1608,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx127_eos .local int rx127_rep .local pmc rx127_cur + .local pmc rx127_debug (rx127_cur, rx127_pos, rx127_tgt, $I10) = self."!cursor_start"() + getattribute rx127_debug, rx127_cur, "$!debug" .lex unicode:"$\x{a2}", rx127_cur .local pmc match .lex "$/", match @@ -1500,7 +1622,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx127_tgt, rx127_tgt, rx127_off rx127_start: eq $I10, 1, rx127_restart + if_null rx127_debug, debug_209 rx127_cur."!cursor_debug"("START ", "") + debug_209: $I10 = self.'from'() ne $I10, -1, rxscan128_done goto rxscan128_scan @@ -1521,10 +1645,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes inc rx127_pos # rx pass rx127_cur."!cursor_pass"(rx127_pos, "") + if_null rx127_debug, debug_210 rx127_cur."!cursor_debug"("PASS ", "", " at pos=", rx127_pos) + debug_210: .return (rx127_cur) rx127_restart: + if_null rx127_debug, debug_211 rx127_cur."!cursor_debug"("NEXT ", "") + debug_211: rx127_fail: (rx127_rep, rx127_pos, $I10, $P10) = rx127_cur."!mark_fail"(0) lt rx127_pos, -1, rx127_done @@ -1532,14 +1660,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx127_done: rx127_cur."!cursor_fail"() + if_null rx127_debug, debug_212 rx127_cur."!cursor_debug"("FAIL ", "") + debug_212: .return (rx127_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier" :subid("36_1280467470.54449") :method +.sub "quantifier" :subid("36_1282016522.91354") :method .annotate 'line', 54 $P130 = self."!protoregex"("quantifier") .return ($P130) @@ -1547,7 +1677,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier" :subid("37_1280467470.54449") :method +.sub "!PREFIX__quantifier" :subid("37_1282016522.91354") :method .annotate 'line', 54 $P132 = self."!PREFIX__!protoregex"("quantifier") .return ($P132) @@ -1555,7 +1685,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier:sym<*>" :subid("38_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "quantifier:sym<*>" :subid("38_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx134_tgt .local int rx134_pos @@ -1563,7 +1693,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx134_eos .local int rx134_rep .local pmc rx134_cur + .local pmc rx134_debug (rx134_cur, rx134_pos, rx134_tgt, $I10) = self."!cursor_start"() + getattribute rx134_debug, rx134_cur, "$!debug" .lex unicode:"$\x{a2}", rx134_cur .local pmc match .lex "$/", match @@ -1575,7 +1707,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx134_tgt, rx134_tgt, rx134_off rx134_start: eq $I10, 1, rx134_restart + if_null rx134_debug, debug_216 rx134_cur."!cursor_debug"("START ", "quantifier:sym<*>") + debug_216: $I10 = self.'from'() ne $I10, -1, rxscan138_done goto rxscan138_scan @@ -1596,8 +1730,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx134_pos, 1 gt $I11, rx134_eos, rx134_fail sub $I11, rx134_pos, rx134_off - substr $S10, rx134_tgt, $I11, 1 - ne $S10, "*", rx134_fail + ord $I11, rx134_tgt, $I11 + ne $I11, 42, rx134_fail add rx134_pos, 1 set_addr $I10, rxcap_139_fail ($I12, $I11) = rx134_cur."!mark_peek"($I10) @@ -1619,11 +1753,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx134_pos = $P10."pos"() # rx pass rx134_cur."!cursor_pass"(rx134_pos, "quantifier:sym<*>") + if_null rx134_debug, debug_217 rx134_cur."!cursor_debug"("PASS ", "quantifier:sym<*>", " at pos=", rx134_pos) + debug_217: .return (rx134_cur) rx134_restart: .annotate 'line', 3 + if_null rx134_debug, debug_218 rx134_cur."!cursor_debug"("NEXT ", "quantifier:sym<*>") + debug_218: rx134_fail: (rx134_rep, rx134_pos, $I10, $P10) = rx134_cur."!mark_fail"(0) lt rx134_pos, -1, rx134_done @@ -1631,14 +1769,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx134_done: rx134_cur."!cursor_fail"() + if_null rx134_debug, debug_219 rx134_cur."!cursor_debug"("FAIL ", "quantifier:sym<*>") + debug_219: .return (rx134_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier:sym<*>" :subid("39_1280467470.54449") :method +.sub "!PREFIX__quantifier:sym<*>" :subid("39_1282016522.91354") :method .annotate 'line', 3 $P136 = self."!PREFIX__!subrule"("backmod", "*") new $P137, "ResizablePMCArray" @@ -1648,7 +1788,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier:sym<+>" :subid("40_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "quantifier:sym<+>" :subid("40_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx141_tgt .local int rx141_pos @@ -1656,7 +1796,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx141_eos .local int rx141_rep .local pmc rx141_cur + .local pmc rx141_debug (rx141_cur, rx141_pos, rx141_tgt, $I10) = self."!cursor_start"() + getattribute rx141_debug, rx141_cur, "$!debug" .lex unicode:"$\x{a2}", rx141_cur .local pmc match .lex "$/", match @@ -1668,7 +1810,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx141_tgt, rx141_tgt, rx141_off rx141_start: eq $I10, 1, rx141_restart + if_null rx141_debug, debug_220 rx141_cur."!cursor_debug"("START ", "quantifier:sym<+>") + debug_220: $I10 = self.'from'() ne $I10, -1, rxscan145_done goto rxscan145_scan @@ -1689,8 +1833,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx141_pos, 1 gt $I11, rx141_eos, rx141_fail sub $I11, rx141_pos, rx141_off - substr $S10, rx141_tgt, $I11, 1 - ne $S10, "+", rx141_fail + ord $I11, rx141_tgt, $I11 + ne $I11, 43, rx141_fail add rx141_pos, 1 set_addr $I10, rxcap_146_fail ($I12, $I11) = rx141_cur."!mark_peek"($I10) @@ -1712,11 +1856,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx141_pos = $P10."pos"() # rx pass rx141_cur."!cursor_pass"(rx141_pos, "quantifier:sym<+>") + if_null rx141_debug, debug_221 rx141_cur."!cursor_debug"("PASS ", "quantifier:sym<+>", " at pos=", rx141_pos) + debug_221: .return (rx141_cur) rx141_restart: .annotate 'line', 3 + if_null rx141_debug, debug_222 rx141_cur."!cursor_debug"("NEXT ", "quantifier:sym<+>") + debug_222: rx141_fail: (rx141_rep, rx141_pos, $I10, $P10) = rx141_cur."!mark_fail"(0) lt rx141_pos, -1, rx141_done @@ -1724,14 +1872,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx141_done: rx141_cur."!cursor_fail"() + if_null rx141_debug, debug_223 rx141_cur."!cursor_debug"("FAIL ", "quantifier:sym<+>") + debug_223: .return (rx141_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier:sym<+>" :subid("41_1280467470.54449") :method +.sub "!PREFIX__quantifier:sym<+>" :subid("41_1282016522.91354") :method .annotate 'line', 3 $P143 = self."!PREFIX__!subrule"("backmod", "+") new $P144, "ResizablePMCArray" @@ -1741,7 +1891,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier:sym" :subid("42_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "quantifier:sym" :subid("42_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx148_tgt .local int rx148_pos @@ -1749,7 +1899,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx148_eos .local int rx148_rep .local pmc rx148_cur + .local pmc rx148_debug (rx148_cur, rx148_pos, rx148_tgt, $I10) = self."!cursor_start"() + getattribute rx148_debug, rx148_cur, "$!debug" .lex unicode:"$\x{a2}", rx148_cur .local pmc match .lex "$/", match @@ -1761,7 +1913,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx148_tgt, rx148_tgt, rx148_off rx148_start: eq $I10, 1, rx148_restart + if_null rx148_debug, debug_224 rx148_cur."!cursor_debug"("START ", "quantifier:sym") + debug_224: $I10 = self.'from'() ne $I10, -1, rxscan152_done goto rxscan152_scan @@ -1782,8 +1936,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx148_pos, 1 gt $I11, rx148_eos, rx148_fail sub $I11, rx148_pos, rx148_off - substr $S10, rx148_tgt, $I11, 1 - ne $S10, "?", rx148_fail + ord $I11, rx148_tgt, $I11 + ne $I11, 63, rx148_fail add rx148_pos, 1 set_addr $I10, rxcap_153_fail ($I12, $I11) = rx148_cur."!mark_peek"($I10) @@ -1805,11 +1959,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx148_pos = $P10."pos"() # rx pass rx148_cur."!cursor_pass"(rx148_pos, "quantifier:sym") + if_null rx148_debug, debug_225 rx148_cur."!cursor_debug"("PASS ", "quantifier:sym", " at pos=", rx148_pos) + debug_225: .return (rx148_cur) rx148_restart: .annotate 'line', 3 + if_null rx148_debug, debug_226 rx148_cur."!cursor_debug"("NEXT ", "quantifier:sym") + debug_226: rx148_fail: (rx148_rep, rx148_pos, $I10, $P10) = rx148_cur."!mark_fail"(0) lt rx148_pos, -1, rx148_done @@ -1817,14 +1975,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx148_done: rx148_cur."!cursor_fail"() + if_null rx148_debug, debug_227 rx148_cur."!cursor_debug"("FAIL ", "quantifier:sym") + debug_227: .return (rx148_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier:sym" :subid("43_1280467470.54449") :method +.sub "!PREFIX__quantifier:sym" :subid("43_1282016522.91354") :method .annotate 'line', 3 $P150 = self."!PREFIX__!subrule"("backmod", "?") new $P151, "ResizablePMCArray" @@ -1834,7 +1994,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier:sym<**>" :subid("44_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "quantifier:sym<**>" :subid("44_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx155_tgt .local int rx155_pos @@ -1842,8 +2002,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx155_eos .local int rx155_rep .local pmc rx155_cur + .local pmc rx155_debug (rx155_cur, rx155_pos, rx155_tgt, $I10) = self."!cursor_start"() rx155_cur."!cursor_caparray"("max", "normspace") + getattribute rx155_debug, rx155_cur, "$!debug" .lex unicode:"$\x{a2}", rx155_cur .local pmc match .lex "$/", match @@ -1855,7 +2017,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx155_tgt, rx155_tgt, rx155_off rx155_start: eq $I10, 1, rx155_restart + if_null rx155_debug, debug_228 rx155_cur."!cursor_debug"("START ", "quantifier:sym<**>") + debug_228: $I10 = self.'from'() ne $I10, -1, rxscan158_done goto rxscan158_scan @@ -1998,8 +2162,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx155_pos, 1 gt $I11, rx155_eos, rx155_fail sub $I11, rx155_pos, rx155_off - substr $S10, rx155_tgt, $I11, 1 - ne $S10, "*", rx155_fail + ord $I11, rx155_tgt, $I11 + ne $I11, 42, rx155_fail add rx155_pos, 1 goto alt167_end alt167_2: @@ -2041,11 +2205,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 58 # rx pass rx155_cur."!cursor_pass"(rx155_pos, "quantifier:sym<**>") + if_null rx155_debug, debug_229 rx155_cur."!cursor_debug"("PASS ", "quantifier:sym<**>", " at pos=", rx155_pos) + debug_229: .return (rx155_cur) rx155_restart: .annotate 'line', 3 + if_null rx155_debug, debug_230 rx155_cur."!cursor_debug"("NEXT ", "quantifier:sym<**>") + debug_230: rx155_fail: (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0) lt rx155_pos, -1, rx155_done @@ -2053,14 +2221,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx155_done: rx155_cur."!cursor_fail"() + if_null rx155_debug, debug_231 rx155_cur."!cursor_debug"("FAIL ", "quantifier:sym<**>") + debug_231: .return (rx155_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier:sym<**>" :subid("45_1280467470.54449") :method +.sub "!PREFIX__quantifier:sym<**>" :subid("45_1282016522.91354") :method .annotate 'line', 3 new $P157, "ResizablePMCArray" push $P157, "**" @@ -2069,9 +2239,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backmod" :subid("46_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backmod" :subid("46_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P177 = "48_1280467470.54449" + .const 'Sub' $P177 = "48_1282016522.91354" capture_lex $P177 .local string rx170_tgt .local int rx170_pos @@ -2079,7 +2249,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx170_eos .local int rx170_rep .local pmc rx170_cur + .local pmc rx170_debug (rx170_cur, rx170_pos, rx170_tgt, $I10) = self."!cursor_start"() + getattribute rx170_debug, rx170_cur, "$!debug" .lex unicode:"$\x{a2}", rx170_cur .local pmc match .lex "$/", match @@ -2091,7 +2263,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx170_tgt, rx170_tgt, rx170_off rx170_start: eq $I10, 1, rx170_restart + if_null rx170_debug, debug_232 rx170_cur."!cursor_debug"("START ", "backmod") + debug_232: $I10 = self.'from'() ne $I10, -1, rxscan173_done goto rxscan173_scan @@ -2113,8 +2287,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx170_pos, 1 gt $I11, rx170_eos, rx170_fail sub $I11, rx170_pos, rx170_off - substr $S10, rx170_tgt, $I11, 1 - ne $S10, ":", rx170_fail + ord $I11, rx170_tgt, $I11 + ne $I11, 58, rx170_fail add rx170_pos, 1 set_addr $I10, rxquantr174_done (rx170_rep) = rx170_cur."!mark_commit"($I10) @@ -2126,8 +2300,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx170_pos, 1 gt $I11, rx170_eos, rx170_fail sub $I11, rx170_pos, rx170_off - substr $S10, rx170_tgt, $I11, 1 - ne $S10, "?", rx170_fail + ord $I11, rx170_tgt, $I11 + ne $I11, 63, rx170_fail add rx170_pos, 1 goto alt175_end alt175_1: @@ -2137,25 +2311,29 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx170_pos, 1 gt $I11, rx170_eos, rx170_fail sub $I11, rx170_pos, rx170_off - substr $S10, rx170_tgt, $I11, 1 - ne $S10, "!", rx170_fail + ord $I11, rx170_tgt, $I11 + ne $I11, 33, rx170_fail add rx170_pos, 1 goto alt175_end alt175_2: # rx subrule "before" subtype=zerowidth negate=1 rx170_cur."!cursor_pos"(rx170_pos) - .const 'Sub' $P177 = "48_1280467470.54449" + .const 'Sub' $P177 = "48_1282016522.91354" capture_lex $P177 $P10 = rx170_cur."before"($P177) if $P10, rx170_fail alt175_end: # rx pass rx170_cur."!cursor_pass"(rx170_pos, "backmod") + if_null rx170_debug, debug_237 rx170_cur."!cursor_debug"("PASS ", "backmod", " at pos=", rx170_pos) + debug_237: .return (rx170_cur) rx170_restart: .annotate 'line', 3 + if_null rx170_debug, debug_238 rx170_cur."!cursor_debug"("NEXT ", "backmod") + debug_238: rx170_fail: (rx170_rep, rx170_pos, $I10, $P10) = rx170_cur."!mark_fail"(0) lt rx170_pos, -1, rx170_done @@ -2163,14 +2341,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx170_done: rx170_cur."!cursor_fail"() + if_null rx170_debug, debug_239 rx170_cur."!cursor_debug"("FAIL ", "backmod") + debug_239: .return (rx170_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backmod" :subid("47_1280467470.54449") :method +.sub "!PREFIX__backmod" :subid("47_1282016522.91354") :method .annotate 'line', 3 new $P172, "ResizablePMCArray" push $P172, "" @@ -2179,7 +2359,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block176" :anon :subid("48_1280467470.54449") :method :outer("46_1280467470.54449") +.sub "_block176" :anon :subid("48_1282016522.91354") :method :outer("46_1282016522.91354") .annotate 'line', 73 .local string rx178_tgt .local int rx178_pos @@ -2187,7 +2367,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx178_eos .local int rx178_rep .local pmc rx178_cur + .local pmc rx178_debug (rx178_cur, rx178_pos, rx178_tgt, $I10) = self."!cursor_start"() + getattribute rx178_debug, rx178_cur, "$!debug" .lex unicode:"$\x{a2}", rx178_cur .local pmc match .lex "$/", match @@ -2199,7 +2381,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx178_tgt, rx178_tgt, rx178_off rx178_start: eq $I10, 1, rx178_restart + if_null rx178_debug, debug_233 rx178_cur."!cursor_debug"("START ", "") + debug_233: $I10 = self.'from'() ne $I10, -1, rxscan179_done goto rxscan179_scan @@ -2216,15 +2400,19 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx178_pos, 1 gt $I11, rx178_eos, rx178_fail sub $I11, rx178_pos, rx178_off - substr $S10, rx178_tgt, $I11, 1 - ne $S10, ":", rx178_fail + ord $I11, rx178_tgt, $I11 + ne $I11, 58, rx178_fail add rx178_pos, 1 # rx pass rx178_cur."!cursor_pass"(rx178_pos, "") + if_null rx178_debug, debug_234 rx178_cur."!cursor_debug"("PASS ", "", " at pos=", rx178_pos) + debug_234: .return (rx178_cur) rx178_restart: + if_null rx178_debug, debug_235 rx178_cur."!cursor_debug"("NEXT ", "") + debug_235: rx178_fail: (rx178_rep, rx178_pos, $I10, $P10) = rx178_cur."!mark_fail"(0) lt rx178_pos, -1, rx178_done @@ -2232,14 +2420,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx178_done: rx178_cur."!cursor_fail"() + if_null rx178_debug, debug_236 rx178_cur."!cursor_debug"("FAIL ", "") + debug_236: .return (rx178_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar" :subid("49_1280467470.54449") :method +.sub "metachar" :subid("49_1282016522.91354") :method .annotate 'line', 75 $P181 = self."!protoregex"("metachar") .return ($P181) @@ -2247,7 +2437,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar" :subid("50_1280467470.54449") :method +.sub "!PREFIX__metachar" :subid("50_1282016522.91354") :method .annotate 'line', 75 $P183 = self."!PREFIX__!protoregex"("metachar") .return ($P183) @@ -2255,7 +2445,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("51_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym" :subid("51_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx185_tgt .local int rx185_pos @@ -2263,7 +2453,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx185_eos .local int rx185_rep .local pmc rx185_cur + .local pmc rx185_debug (rx185_cur, rx185_pos, rx185_tgt, $I10) = self."!cursor_start"() + getattribute rx185_debug, rx185_cur, "$!debug" .lex unicode:"$\x{a2}", rx185_cur .local pmc match .lex "$/", match @@ -2275,7 +2467,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx185_tgt, rx185_tgt, rx185_off rx185_start: eq $I10, 1, rx185_restart + if_null rx185_debug, debug_240 rx185_cur."!cursor_debug"("START ", "metachar:sym") + debug_240: $I10 = self.'from'() ne $I10, -1, rxscan189_done goto rxscan189_scan @@ -2296,11 +2490,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx185_pos = $P10."pos"() # rx pass rx185_cur."!cursor_pass"(rx185_pos, "metachar:sym") + if_null rx185_debug, debug_241 rx185_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx185_pos) + debug_241: .return (rx185_cur) rx185_restart: .annotate 'line', 3 + if_null rx185_debug, debug_242 rx185_cur."!cursor_debug"("NEXT ", "metachar:sym") + debug_242: rx185_fail: (rx185_rep, rx185_pos, $I10, $P10) = rx185_cur."!mark_fail"(0) lt rx185_pos, -1, rx185_done @@ -2308,14 +2506,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx185_done: rx185_cur."!cursor_fail"() + if_null rx185_debug, debug_243 rx185_cur."!cursor_debug"("FAIL ", "metachar:sym") + debug_243: .return (rx185_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("52_1280467470.54449") :method +.sub "!PREFIX__metachar:sym" :subid("52_1282016522.91354") :method .annotate 'line', 3 $P187 = self."!PREFIX__!subrule"("normspace", "") new $P188, "ResizablePMCArray" @@ -2325,7 +2525,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<[ ]>" :subid("53_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<[ ]>" :subid("53_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx191_tgt .local int rx191_pos @@ -2333,7 +2533,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx191_eos .local int rx191_rep .local pmc rx191_cur + .local pmc rx191_debug (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"() + getattribute rx191_debug, rx191_cur, "$!debug" .lex unicode:"$\x{a2}", rx191_cur .local pmc match .lex "$/", match @@ -2345,7 +2547,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx191_tgt, rx191_tgt, rx191_off rx191_start: eq $I10, 1, rx191_restart + if_null rx191_debug, debug_244 rx191_cur."!cursor_debug"("START ", "metachar:sym<[ ]>") + debug_244: $I10 = self.'from'() ne $I10, -1, rxscan195_done goto rxscan195_scan @@ -2363,8 +2567,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx191_pos, 1 gt $I11, rx191_eos, rx191_fail sub $I11, rx191_pos, rx191_off - substr $S10, rx191_tgt, $I11, 1 - ne $S10, "[", rx191_fail + ord $I11, rx191_tgt, $I11 + ne $I11, 91, rx191_fail add rx191_pos, 1 # rx subrule "nibbler" subtype=capture negate= rx191_cur."!cursor_pos"(rx191_pos) @@ -2377,16 +2581,20 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx191_pos, 1 gt $I11, rx191_eos, rx191_fail sub $I11, rx191_pos, rx191_off - substr $S10, rx191_tgt, $I11, 1 - ne $S10, "]", rx191_fail + ord $I11, rx191_tgt, $I11 + ne $I11, 93, rx191_fail add rx191_pos, 1 # rx pass rx191_cur."!cursor_pass"(rx191_pos, "metachar:sym<[ ]>") + if_null rx191_debug, debug_245 rx191_cur."!cursor_debug"("PASS ", "metachar:sym<[ ]>", " at pos=", rx191_pos) + debug_245: .return (rx191_cur) rx191_restart: .annotate 'line', 3 + if_null rx191_debug, debug_246 rx191_cur."!cursor_debug"("NEXT ", "metachar:sym<[ ]>") + debug_246: rx191_fail: (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0) lt rx191_pos, -1, rx191_done @@ -2394,14 +2602,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx191_done: rx191_cur."!cursor_fail"() + if_null rx191_debug, debug_247 rx191_cur."!cursor_debug"("FAIL ", "metachar:sym<[ ]>") + debug_247: .return (rx191_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<[ ]>" :subid("54_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<[ ]>" :subid("54_1282016522.91354") :method .annotate 'line', 3 $P193 = self."!PREFIX__!subrule"("nibbler", "[") new $P194, "ResizablePMCArray" @@ -2411,7 +2621,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<( )>" :subid("55_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<( )>" :subid("55_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx197_tgt .local int rx197_pos @@ -2419,7 +2629,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx197_eos .local int rx197_rep .local pmc rx197_cur + .local pmc rx197_debug (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"() + getattribute rx197_debug, rx197_cur, "$!debug" .lex unicode:"$\x{a2}", rx197_cur .local pmc match .lex "$/", match @@ -2431,7 +2643,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx197_tgt, rx197_tgt, rx197_off rx197_start: eq $I10, 1, rx197_restart + if_null rx197_debug, debug_248 rx197_cur."!cursor_debug"("START ", "metachar:sym<( )>") + debug_248: $I10 = self.'from'() ne $I10, -1, rxscan201_done goto rxscan201_scan @@ -2449,8 +2663,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx197_pos, 1 gt $I11, rx197_eos, rx197_fail sub $I11, rx197_pos, rx197_off - substr $S10, rx197_tgt, $I11, 1 - ne $S10, "(", rx197_fail + ord $I11, rx197_tgt, $I11 + ne $I11, 40, rx197_fail add rx197_pos, 1 # rx subrule "nibbler" subtype=capture negate= rx197_cur."!cursor_pos"(rx197_pos) @@ -2463,16 +2677,20 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx197_pos, 1 gt $I11, rx197_eos, rx197_fail sub $I11, rx197_pos, rx197_off - substr $S10, rx197_tgt, $I11, 1 - ne $S10, ")", rx197_fail + ord $I11, rx197_tgt, $I11 + ne $I11, 41, rx197_fail add rx197_pos, 1 # rx pass rx197_cur."!cursor_pass"(rx197_pos, "metachar:sym<( )>") + if_null rx197_debug, debug_249 rx197_cur."!cursor_debug"("PASS ", "metachar:sym<( )>", " at pos=", rx197_pos) + debug_249: .return (rx197_cur) rx197_restart: .annotate 'line', 3 + if_null rx197_debug, debug_250 rx197_cur."!cursor_debug"("NEXT ", "metachar:sym<( )>") + debug_250: rx197_fail: (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0) lt rx197_pos, -1, rx197_done @@ -2480,14 +2698,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx197_done: rx197_cur."!cursor_fail"() + if_null rx197_debug, debug_251 rx197_cur."!cursor_debug"("FAIL ", "metachar:sym<( )>") + debug_251: .return (rx197_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<( )>" :subid("56_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<( )>" :subid("56_1282016522.91354") :method .annotate 'line', 3 $P199 = self."!PREFIX__!subrule"("nibbler", "(") new $P200, "ResizablePMCArray" @@ -2497,7 +2717,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<'>" :subid("57_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<'>" :subid("57_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx203_tgt .local int rx203_pos @@ -2505,7 +2725,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx203_eos .local int rx203_rep .local pmc rx203_cur + .local pmc rx203_debug (rx203_cur, rx203_pos, rx203_tgt, $I10) = self."!cursor_start"() + getattribute rx203_debug, rx203_cur, "$!debug" .lex unicode:"$\x{a2}", rx203_cur .local pmc match .lex "$/", match @@ -2517,7 +2739,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx203_tgt, rx203_tgt, rx203_off rx203_start: eq $I10, 1, rx203_restart + if_null rx203_debug, debug_252 rx203_cur."!cursor_debug"("START ", "metachar:sym<'>") + debug_252: $I10 = self.'from'() ne $I10, -1, rxscan206_done goto rxscan206_scan @@ -2546,11 +2770,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx203_pos = $P10."pos"() # rx pass rx203_cur."!cursor_pass"(rx203_pos, "metachar:sym<'>") + if_null rx203_debug, debug_253 rx203_cur."!cursor_debug"("PASS ", "metachar:sym<'>", " at pos=", rx203_pos) + debug_253: .return (rx203_cur) rx203_restart: .annotate 'line', 3 + if_null rx203_debug, debug_254 rx203_cur."!cursor_debug"("NEXT ", "metachar:sym<'>") + debug_254: rx203_fail: (rx203_rep, rx203_pos, $I10, $P10) = rx203_cur."!mark_fail"(0) lt rx203_pos, -1, rx203_done @@ -2558,14 +2786,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx203_done: rx203_cur."!cursor_fail"() + if_null rx203_debug, debug_255 rx203_cur."!cursor_debug"("FAIL ", "metachar:sym<'>") + debug_255: .return (rx203_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<'>" :subid("58_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<'>" :subid("58_1282016522.91354") :method .annotate 'line', 3 new $P205, "ResizablePMCArray" push $P205, "'" @@ -2574,7 +2804,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<\">" :subid("59_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<\">" :subid("59_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx208_tgt .local int rx208_pos @@ -2582,7 +2812,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx208_eos .local int rx208_rep .local pmc rx208_cur + .local pmc rx208_debug (rx208_cur, rx208_pos, rx208_tgt, $I10) = self."!cursor_start"() + getattribute rx208_debug, rx208_cur, "$!debug" .lex unicode:"$\x{a2}", rx208_cur .local pmc match .lex "$/", match @@ -2594,7 +2826,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx208_tgt, rx208_tgt, rx208_off rx208_start: eq $I10, 1, rx208_restart + if_null rx208_debug, debug_256 rx208_cur."!cursor_debug"("START ", "metachar:sym<\">") + debug_256: $I10 = self.'from'() ne $I10, -1, rxscan211_done goto rxscan211_scan @@ -2623,11 +2857,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx208_pos = $P10."pos"() # rx pass rx208_cur."!cursor_pass"(rx208_pos, "metachar:sym<\">") + if_null rx208_debug, debug_257 rx208_cur."!cursor_debug"("PASS ", "metachar:sym<\">", " at pos=", rx208_pos) + debug_257: .return (rx208_cur) rx208_restart: .annotate 'line', 3 + if_null rx208_debug, debug_258 rx208_cur."!cursor_debug"("NEXT ", "metachar:sym<\">") + debug_258: rx208_fail: (rx208_rep, rx208_pos, $I10, $P10) = rx208_cur."!mark_fail"(0) lt rx208_pos, -1, rx208_done @@ -2635,14 +2873,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx208_done: rx208_cur."!cursor_fail"() + if_null rx208_debug, debug_259 rx208_cur."!cursor_debug"("FAIL ", "metachar:sym<\">") + debug_259: .return (rx208_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<\">" :subid("60_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<\">" :subid("60_1282016522.91354") :method .annotate 'line', 3 new $P210, "ResizablePMCArray" push $P210, "\"" @@ -2651,7 +2891,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<.>" :subid("61_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<.>" :subid("61_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx213_tgt .local int rx213_pos @@ -2659,7 +2899,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx213_eos .local int rx213_rep .local pmc rx213_cur + .local pmc rx213_debug (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"() + getattribute rx213_debug, rx213_cur, "$!debug" .lex unicode:"$\x{a2}", rx213_cur .local pmc match .lex "$/", match @@ -2671,7 +2913,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx213_tgt, rx213_tgt, rx213_off rx213_start: eq $I10, 1, rx213_restart + if_null rx213_debug, debug_260 rx213_cur."!cursor_debug"("START ", "metachar:sym<.>") + debug_260: $I10 = self.'from'() ne $I10, -1, rxscan216_done goto rxscan216_scan @@ -2692,8 +2936,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx213_pos, 1 gt $I11, rx213_eos, rx213_fail sub $I11, rx213_pos, rx213_off - substr $S10, rx213_tgt, $I11, 1 - ne $S10, ".", rx213_fail + ord $I11, rx213_tgt, $I11 + ne $I11, 46, rx213_fail add rx213_pos, 1 set_addr $I10, rxcap_217_fail ($I12, $I11) = rx213_cur."!mark_peek"($I10) @@ -2708,11 +2952,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_217_done: # rx pass rx213_cur."!cursor_pass"(rx213_pos, "metachar:sym<.>") + if_null rx213_debug, debug_261 rx213_cur."!cursor_debug"("PASS ", "metachar:sym<.>", " at pos=", rx213_pos) + debug_261: .return (rx213_cur) rx213_restart: .annotate 'line', 3 + if_null rx213_debug, debug_262 rx213_cur."!cursor_debug"("NEXT ", "metachar:sym<.>") + debug_262: rx213_fail: (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0) lt rx213_pos, -1, rx213_done @@ -2720,14 +2968,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx213_done: rx213_cur."!cursor_fail"() + if_null rx213_debug, debug_263 rx213_cur."!cursor_debug"("FAIL ", "metachar:sym<.>") + debug_263: .return (rx213_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<.>" :subid("62_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<.>" :subid("62_1282016522.91354") :method .annotate 'line', 3 new $P215, "ResizablePMCArray" push $P215, "." @@ -2736,7 +2986,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<^>" :subid("63_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<^>" :subid("63_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx219_tgt .local int rx219_pos @@ -2744,7 +2994,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx219_eos .local int rx219_rep .local pmc rx219_cur + .local pmc rx219_debug (rx219_cur, rx219_pos, rx219_tgt, $I10) = self."!cursor_start"() + getattribute rx219_debug, rx219_cur, "$!debug" .lex unicode:"$\x{a2}", rx219_cur .local pmc match .lex "$/", match @@ -2756,7 +3008,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx219_tgt, rx219_tgt, rx219_off rx219_start: eq $I10, 1, rx219_restart + if_null rx219_debug, debug_264 rx219_cur."!cursor_debug"("START ", "metachar:sym<^>") + debug_264: $I10 = self.'from'() ne $I10, -1, rxscan222_done goto rxscan222_scan @@ -2777,8 +3031,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx219_pos, 1 gt $I11, rx219_eos, rx219_fail sub $I11, rx219_pos, rx219_off - substr $S10, rx219_tgt, $I11, 1 - ne $S10, "^", rx219_fail + ord $I11, rx219_tgt, $I11 + ne $I11, 94, rx219_fail add rx219_pos, 1 set_addr $I10, rxcap_223_fail ($I12, $I11) = rx219_cur."!mark_peek"($I10) @@ -2793,11 +3047,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_223_done: # rx pass rx219_cur."!cursor_pass"(rx219_pos, "metachar:sym<^>") + if_null rx219_debug, debug_265 rx219_cur."!cursor_debug"("PASS ", "metachar:sym<^>", " at pos=", rx219_pos) + debug_265: .return (rx219_cur) rx219_restart: .annotate 'line', 3 + if_null rx219_debug, debug_266 rx219_cur."!cursor_debug"("NEXT ", "metachar:sym<^>") + debug_266: rx219_fail: (rx219_rep, rx219_pos, $I10, $P10) = rx219_cur."!mark_fail"(0) lt rx219_pos, -1, rx219_done @@ -2805,14 +3063,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx219_done: rx219_cur."!cursor_fail"() + if_null rx219_debug, debug_267 rx219_cur."!cursor_debug"("FAIL ", "metachar:sym<^>") + debug_267: .return (rx219_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<^>" :subid("64_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<^>" :subid("64_1282016522.91354") :method .annotate 'line', 3 new $P221, "ResizablePMCArray" push $P221, "^" @@ -2821,7 +3081,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<^^>" :subid("65_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<^^>" :subid("65_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx225_tgt .local int rx225_pos @@ -2829,7 +3089,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx225_eos .local int rx225_rep .local pmc rx225_cur + .local pmc rx225_debug (rx225_cur, rx225_pos, rx225_tgt, $I10) = self."!cursor_start"() + getattribute rx225_debug, rx225_cur, "$!debug" .lex unicode:"$\x{a2}", rx225_cur .local pmc match .lex "$/", match @@ -2841,7 +3103,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx225_tgt, rx225_tgt, rx225_off rx225_start: eq $I10, 1, rx225_restart + if_null rx225_debug, debug_268 rx225_cur."!cursor_debug"("START ", "metachar:sym<^^>") + debug_268: $I10 = self.'from'() ne $I10, -1, rxscan228_done goto rxscan228_scan @@ -2878,11 +3142,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_229_done: # rx pass rx225_cur."!cursor_pass"(rx225_pos, "metachar:sym<^^>") + if_null rx225_debug, debug_269 rx225_cur."!cursor_debug"("PASS ", "metachar:sym<^^>", " at pos=", rx225_pos) + debug_269: .return (rx225_cur) rx225_restart: .annotate 'line', 3 + if_null rx225_debug, debug_270 rx225_cur."!cursor_debug"("NEXT ", "metachar:sym<^^>") + debug_270: rx225_fail: (rx225_rep, rx225_pos, $I10, $P10) = rx225_cur."!mark_fail"(0) lt rx225_pos, -1, rx225_done @@ -2890,14 +3158,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx225_done: rx225_cur."!cursor_fail"() + if_null rx225_debug, debug_271 rx225_cur."!cursor_debug"("FAIL ", "metachar:sym<^^>") + debug_271: .return (rx225_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<^^>" :subid("66_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<^^>" :subid("66_1282016522.91354") :method .annotate 'line', 3 new $P227, "ResizablePMCArray" push $P227, "^^" @@ -2906,7 +3176,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<$>" :subid("67_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<$>" :subid("67_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx231_tgt .local int rx231_pos @@ -2914,7 +3184,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx231_eos .local int rx231_rep .local pmc rx231_cur + .local pmc rx231_debug (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"() + getattribute rx231_debug, rx231_cur, "$!debug" .lex unicode:"$\x{a2}", rx231_cur .local pmc match .lex "$/", match @@ -2926,7 +3198,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx231_tgt, rx231_tgt, rx231_off rx231_start: eq $I10, 1, rx231_restart + if_null rx231_debug, debug_272 rx231_cur."!cursor_debug"("START ", "metachar:sym<$>") + debug_272: $I10 = self.'from'() ne $I10, -1, rxscan234_done goto rxscan234_scan @@ -2947,8 +3221,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx231_pos, 1 gt $I11, rx231_eos, rx231_fail sub $I11, rx231_pos, rx231_off - substr $S10, rx231_tgt, $I11, 1 - ne $S10, "$", rx231_fail + ord $I11, rx231_tgt, $I11 + ne $I11, 36, rx231_fail add rx231_pos, 1 set_addr $I10, rxcap_235_fail ($I12, $I11) = rx231_cur."!mark_peek"($I10) @@ -2963,11 +3237,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_235_done: # rx pass rx231_cur."!cursor_pass"(rx231_pos, "metachar:sym<$>") + if_null rx231_debug, debug_273 rx231_cur."!cursor_debug"("PASS ", "metachar:sym<$>", " at pos=", rx231_pos) + debug_273: .return (rx231_cur) rx231_restart: .annotate 'line', 3 + if_null rx231_debug, debug_274 rx231_cur."!cursor_debug"("NEXT ", "metachar:sym<$>") + debug_274: rx231_fail: (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0) lt rx231_pos, -1, rx231_done @@ -2975,14 +3253,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx231_done: rx231_cur."!cursor_fail"() + if_null rx231_debug, debug_275 rx231_cur."!cursor_debug"("FAIL ", "metachar:sym<$>") + debug_275: .return (rx231_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<$>" :subid("68_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<$>" :subid("68_1282016522.91354") :method .annotate 'line', 3 new $P233, "ResizablePMCArray" push $P233, "$" @@ -2991,7 +3271,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<$$>" :subid("69_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<$$>" :subid("69_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx237_tgt .local int rx237_pos @@ -2999,7 +3279,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx237_eos .local int rx237_rep .local pmc rx237_cur + .local pmc rx237_debug (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"() + getattribute rx237_debug, rx237_cur, "$!debug" .lex unicode:"$\x{a2}", rx237_cur .local pmc match .lex "$/", match @@ -3011,7 +3293,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx237_tgt, rx237_tgt, rx237_off rx237_start: eq $I10, 1, rx237_restart + if_null rx237_debug, debug_276 rx237_cur."!cursor_debug"("START ", "metachar:sym<$$>") + debug_276: $I10 = self.'from'() ne $I10, -1, rxscan240_done goto rxscan240_scan @@ -3048,11 +3332,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_241_done: # rx pass rx237_cur."!cursor_pass"(rx237_pos, "metachar:sym<$$>") + if_null rx237_debug, debug_277 rx237_cur."!cursor_debug"("PASS ", "metachar:sym<$$>", " at pos=", rx237_pos) + debug_277: .return (rx237_cur) rx237_restart: .annotate 'line', 3 + if_null rx237_debug, debug_278 rx237_cur."!cursor_debug"("NEXT ", "metachar:sym<$$>") + debug_278: rx237_fail: (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0) lt rx237_pos, -1, rx237_done @@ -3060,14 +3348,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx237_done: rx237_cur."!cursor_fail"() + if_null rx237_debug, debug_279 rx237_cur."!cursor_debug"("FAIL ", "metachar:sym<$$>") + debug_279: .return (rx237_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<$$>" :subid("70_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<$$>" :subid("70_1282016522.91354") :method .annotate 'line', 3 new $P239, "ResizablePMCArray" push $P239, "$$" @@ -3076,7 +3366,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<:::>" :subid("71_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<:::>" :subid("71_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx243_tgt .local int rx243_pos @@ -3084,7 +3374,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx243_eos .local int rx243_rep .local pmc rx243_cur + .local pmc rx243_debug (rx243_cur, rx243_pos, rx243_tgt, $I10) = self."!cursor_start"() + getattribute rx243_debug, rx243_cur, "$!debug" .lex unicode:"$\x{a2}", rx243_cur .local pmc match .lex "$/", match @@ -3096,7 +3388,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx243_tgt, rx243_tgt, rx243_off rx243_start: eq $I10, 1, rx243_restart + if_null rx243_debug, debug_280 rx243_cur."!cursor_debug"("START ", "metachar:sym<:::>") + debug_280: $I10 = self.'from'() ne $I10, -1, rxscan247_done goto rxscan247_scan @@ -3138,11 +3432,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx243_pos = $P10."pos"() # rx pass rx243_cur."!cursor_pass"(rx243_pos, "metachar:sym<:::>") + if_null rx243_debug, debug_281 rx243_cur."!cursor_debug"("PASS ", "metachar:sym<:::>", " at pos=", rx243_pos) + debug_281: .return (rx243_cur) rx243_restart: .annotate 'line', 3 + if_null rx243_debug, debug_282 rx243_cur."!cursor_debug"("NEXT ", "metachar:sym<:::>") + debug_282: rx243_fail: (rx243_rep, rx243_pos, $I10, $P10) = rx243_cur."!mark_fail"(0) lt rx243_pos, -1, rx243_done @@ -3150,14 +3448,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx243_done: rx243_cur."!cursor_fail"() + if_null rx243_debug, debug_283 rx243_cur."!cursor_debug"("FAIL ", "metachar:sym<:::>") + debug_283: .return (rx243_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<:::>" :subid("72_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<:::>" :subid("72_1282016522.91354") :method .annotate 'line', 3 $P245 = self."!PREFIX__!subrule"("panic", ":::") new $P246, "ResizablePMCArray" @@ -3167,7 +3467,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<::>" :subid("73_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<::>" :subid("73_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx250_tgt .local int rx250_pos @@ -3175,7 +3475,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx250_eos .local int rx250_rep .local pmc rx250_cur + .local pmc rx250_debug (rx250_cur, rx250_pos, rx250_tgt, $I10) = self."!cursor_start"() + getattribute rx250_debug, rx250_cur, "$!debug" .lex unicode:"$\x{a2}", rx250_cur .local pmc match .lex "$/", match @@ -3187,7 +3489,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx250_tgt, rx250_tgt, rx250_off rx250_start: eq $I10, 1, rx250_restart + if_null rx250_debug, debug_284 rx250_cur."!cursor_debug"("START ", "metachar:sym<::>") + debug_284: $I10 = self.'from'() ne $I10, -1, rxscan254_done goto rxscan254_scan @@ -3229,11 +3533,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx250_pos = $P10."pos"() # rx pass rx250_cur."!cursor_pass"(rx250_pos, "metachar:sym<::>") + if_null rx250_debug, debug_285 rx250_cur."!cursor_debug"("PASS ", "metachar:sym<::>", " at pos=", rx250_pos) + debug_285: .return (rx250_cur) rx250_restart: .annotate 'line', 3 + if_null rx250_debug, debug_286 rx250_cur."!cursor_debug"("NEXT ", "metachar:sym<::>") + debug_286: rx250_fail: (rx250_rep, rx250_pos, $I10, $P10) = rx250_cur."!mark_fail"(0) lt rx250_pos, -1, rx250_done @@ -3241,14 +3549,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx250_done: rx250_cur."!cursor_fail"() + if_null rx250_debug, debug_287 rx250_cur."!cursor_debug"("FAIL ", "metachar:sym<::>") + debug_287: .return (rx250_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<::>" :subid("74_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<::>" :subid("74_1282016522.91354") :method .annotate 'line', 3 $P252 = self."!PREFIX__!subrule"("panic", "::") new $P253, "ResizablePMCArray" @@ -3258,7 +3568,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("75_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym" :subid("75_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx257_tgt .local int rx257_pos @@ -3266,7 +3576,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx257_eos .local int rx257_rep .local pmc rx257_cur + .local pmc rx257_debug (rx257_cur, rx257_pos, rx257_tgt, $I10) = self."!cursor_start"() + getattribute rx257_debug, rx257_cur, "$!debug" .lex unicode:"$\x{a2}", rx257_cur .local pmc match .lex "$/", match @@ -3278,7 +3590,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx257_tgt, rx257_tgt, rx257_off rx257_start: eq $I10, 1, rx257_restart + if_null rx257_debug, debug_288 rx257_cur."!cursor_debug"("START ", "metachar:sym") + debug_288: $I10 = self.'from'() ne $I10, -1, rxscan260_done goto rxscan260_scan @@ -3311,8 +3625,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx257_pos, 1 gt $I11, rx257_eos, rx257_fail sub $I11, rx257_pos, rx257_off - substr $S10, rx257_tgt, $I11, 1 - ne $S10, unicode:"\x{ab}", rx257_fail + ord $I11, rx257_tgt, $I11 + ne $I11, 171, rx257_fail add rx257_pos, 1 alt261_end: set_addr $I10, rxcap_262_fail @@ -3328,11 +3642,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_262_done: # rx pass rx257_cur."!cursor_pass"(rx257_pos, "metachar:sym") + if_null rx257_debug, debug_289 rx257_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx257_pos) + debug_289: .return (rx257_cur) rx257_restart: .annotate 'line', 3 + if_null rx257_debug, debug_290 rx257_cur."!cursor_debug"("NEXT ", "metachar:sym") + debug_290: rx257_fail: (rx257_rep, rx257_pos, $I10, $P10) = rx257_cur."!mark_fail"(0) lt rx257_pos, -1, rx257_done @@ -3340,14 +3658,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx257_done: rx257_cur."!cursor_fail"() + if_null rx257_debug, debug_291 rx257_cur."!cursor_debug"("FAIL ", "metachar:sym") + debug_291: .return (rx257_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("76_1280467470.54449") :method +.sub "!PREFIX__metachar:sym" :subid("76_1282016522.91354") :method .annotate 'line', 3 new $P259, "ResizablePMCArray" push $P259, unicode:"\x{ab}" @@ -3357,7 +3677,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("77_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym" :subid("77_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx264_tgt .local int rx264_pos @@ -3365,7 +3685,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx264_eos .local int rx264_rep .local pmc rx264_cur + .local pmc rx264_debug (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"() + getattribute rx264_debug, rx264_cur, "$!debug" .lex unicode:"$\x{a2}", rx264_cur .local pmc match .lex "$/", match @@ -3377,7 +3699,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx264_tgt, rx264_tgt, rx264_off rx264_start: eq $I10, 1, rx264_restart + if_null rx264_debug, debug_292 rx264_cur."!cursor_debug"("START ", "metachar:sym") + debug_292: $I10 = self.'from'() ne $I10, -1, rxscan267_done goto rxscan267_scan @@ -3410,8 +3734,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx264_pos, 1 gt $I11, rx264_eos, rx264_fail sub $I11, rx264_pos, rx264_off - substr $S10, rx264_tgt, $I11, 1 - ne $S10, unicode:"\x{bb}", rx264_fail + ord $I11, rx264_tgt, $I11 + ne $I11, 187, rx264_fail add rx264_pos, 1 alt268_end: set_addr $I10, rxcap_269_fail @@ -3427,11 +3751,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_269_done: # rx pass rx264_cur."!cursor_pass"(rx264_pos, "metachar:sym") + if_null rx264_debug, debug_293 rx264_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx264_pos) + debug_293: .return (rx264_cur) rx264_restart: .annotate 'line', 3 + if_null rx264_debug, debug_294 rx264_cur."!cursor_debug"("NEXT ", "metachar:sym") + debug_294: rx264_fail: (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0) lt rx264_pos, -1, rx264_done @@ -3439,14 +3767,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx264_done: rx264_cur."!cursor_fail"() + if_null rx264_debug, debug_295 rx264_cur."!cursor_debug"("FAIL ", "metachar:sym") + debug_295: .return (rx264_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("78_1280467470.54449") :method +.sub "!PREFIX__metachar:sym" :subid("78_1282016522.91354") :method .annotate 'line', 3 new $P266, "ResizablePMCArray" push $P266, unicode:"\x{bb}" @@ -3456,7 +3786,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("79_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym" :subid("79_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx271_tgt .local int rx271_pos @@ -3464,7 +3794,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx271_eos .local int rx271_rep .local pmc rx271_cur + .local pmc rx271_debug (rx271_cur, rx271_pos, rx271_tgt, $I10) = self."!cursor_start"() + getattribute rx271_debug, rx271_cur, "$!debug" .lex unicode:"$\x{a2}", rx271_cur .local pmc match .lex "$/", match @@ -3476,7 +3808,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx271_tgt, rx271_tgt, rx271_off rx271_start: eq $I10, 1, rx271_restart + if_null rx271_debug, debug_296 rx271_cur."!cursor_debug"("START ", "metachar:sym") + debug_296: $I10 = self.'from'() ne $I10, -1, rxscan275_done goto rxscan275_scan @@ -3494,8 +3828,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx271_pos, 1 gt $I11, rx271_eos, rx271_fail sub $I11, rx271_pos, rx271_off - substr $S10, rx271_tgt, $I11, 1 - ne $S10, "\\", rx271_fail + ord $I11, rx271_tgt, $I11 + ne $I11, 92, rx271_fail add rx271_pos, 1 # rx subrule "backslash" subtype=capture negate= rx271_cur."!cursor_pos"(rx271_pos) @@ -3506,11 +3840,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx271_pos = $P10."pos"() # rx pass rx271_cur."!cursor_pass"(rx271_pos, "metachar:sym") + if_null rx271_debug, debug_297 rx271_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx271_pos) + debug_297: .return (rx271_cur) rx271_restart: .annotate 'line', 3 + if_null rx271_debug, debug_298 rx271_cur."!cursor_debug"("NEXT ", "metachar:sym") + debug_298: rx271_fail: (rx271_rep, rx271_pos, $I10, $P10) = rx271_cur."!mark_fail"(0) lt rx271_pos, -1, rx271_done @@ -3518,14 +3856,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx271_done: rx271_cur."!cursor_fail"() + if_null rx271_debug, debug_299 rx271_cur."!cursor_debug"("FAIL ", "metachar:sym") + debug_299: .return (rx271_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("80_1280467470.54449") :method +.sub "!PREFIX__metachar:sym" :subid("80_1282016522.91354") :method .annotate 'line', 3 $P273 = self."!PREFIX__!subrule"("backslash", "\\") new $P274, "ResizablePMCArray" @@ -3535,7 +3875,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("81_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym" :subid("81_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx277_tgt .local int rx277_pos @@ -3543,7 +3883,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx277_eos .local int rx277_rep .local pmc rx277_cur + .local pmc rx277_debug (rx277_cur, rx277_pos, rx277_tgt, $I10) = self."!cursor_start"() + getattribute rx277_debug, rx277_cur, "$!debug" .lex unicode:"$\x{a2}", rx277_cur .local pmc match .lex "$/", match @@ -3555,7 +3897,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx277_tgt, rx277_tgt, rx277_off rx277_start: eq $I10, 1, rx277_restart + if_null rx277_debug, debug_300 rx277_cur."!cursor_debug"("START ", "metachar:sym") + debug_300: $I10 = self.'from'() ne $I10, -1, rxscan281_done goto rxscan281_scan @@ -3578,11 +3922,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx277_pos = $P10."pos"() # rx pass rx277_cur."!cursor_pass"(rx277_pos, "metachar:sym") + if_null rx277_debug, debug_301 rx277_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx277_pos) + debug_301: .return (rx277_cur) rx277_restart: .annotate 'line', 3 + if_null rx277_debug, debug_302 rx277_cur."!cursor_debug"("NEXT ", "metachar:sym") + debug_302: rx277_fail: (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0) lt rx277_pos, -1, rx277_done @@ -3590,14 +3938,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx277_done: rx277_cur."!cursor_fail"() + if_null rx277_debug, debug_303 rx277_cur."!cursor_debug"("FAIL ", "metachar:sym") + debug_303: .return (rx277_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("82_1280467470.54449") :method +.sub "!PREFIX__metachar:sym" :subid("82_1282016522.91354") :method .annotate 'line', 3 $P279 = self."!PREFIX__!subrule"("mod_internal", "") new $P280, "ResizablePMCArray" @@ -3607,7 +3957,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<~>" :subid("83_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<~>" :subid("83_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx283_tgt .local int rx283_pos @@ -3615,7 +3965,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx283_eos .local int rx283_rep .local pmc rx283_cur + .local pmc rx283_debug (rx283_cur, rx283_pos, rx283_tgt, $I10) = self."!cursor_start"() + getattribute rx283_debug, rx283_cur, "$!debug" .lex unicode:"$\x{a2}", rx283_cur .local pmc match .lex "$/", match @@ -3627,7 +3979,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx283_tgt, rx283_tgt, rx283_off rx283_start: eq $I10, 1, rx283_restart + if_null rx283_debug, debug_304 rx283_cur."!cursor_debug"("START ", "metachar:sym<~>") + debug_304: $I10 = self.'from'() ne $I10, -1, rxscan287_done goto rxscan287_scan @@ -3648,8 +4002,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx283_pos, 1 gt $I11, rx283_eos, rx283_fail sub $I11, rx283_pos, rx283_off - substr $S10, rx283_tgt, $I11, 1 - ne $S10, "~", rx283_fail + ord $I11, rx283_tgt, $I11 + ne $I11, 126, rx283_fail add rx283_pos, 1 set_addr $I10, rxcap_288_fail ($I12, $I11) = rx283_cur."!mark_peek"($I10) @@ -3691,11 +4045,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 94 # rx pass rx283_cur."!cursor_pass"(rx283_pos, "metachar:sym<~>") + if_null rx283_debug, debug_305 rx283_cur."!cursor_debug"("PASS ", "metachar:sym<~>", " at pos=", rx283_pos) + debug_305: .return (rx283_cur) rx283_restart: .annotate 'line', 3 + if_null rx283_debug, debug_306 rx283_cur."!cursor_debug"("NEXT ", "metachar:sym<~>") + debug_306: rx283_fail: (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0) lt rx283_pos, -1, rx283_done @@ -3703,14 +4061,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx283_done: rx283_cur."!cursor_fail"() + if_null rx283_debug, debug_307 rx283_cur."!cursor_debug"("FAIL ", "metachar:sym<~>") + debug_307: .return (rx283_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<~>" :subid("84_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<~>" :subid("84_1282016522.91354") :method .annotate 'line', 3 $P285 = self."!PREFIX__!subrule"("ws", "~") new $P286, "ResizablePMCArray" @@ -3720,7 +4080,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<{*}>" :subid("85_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym<{*}>" :subid("85_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx290_tgt .local int rx290_pos @@ -3728,8 +4088,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx290_eos .local int rx290_rep .local pmc rx290_cur + .local pmc rx290_debug (rx290_cur, rx290_pos, rx290_tgt, $I10) = self."!cursor_start"() rx290_cur."!cursor_caparray"("key") + getattribute rx290_debug, rx290_cur, "$!debug" .lex unicode:"$\x{a2}", rx290_cur .local pmc match .lex "$/", match @@ -3741,7 +4103,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx290_tgt, rx290_tgt, rx290_off rx290_start: eq $I10, 1, rx290_restart + if_null rx290_debug, debug_308 rx290_cur."!cursor_debug"("START ", "metachar:sym<{*}>") + debug_308: $I10 = self.'from'() ne $I10, -1, rxscan293_done goto rxscan293_scan @@ -3881,11 +4245,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 100 # rx pass rx290_cur."!cursor_pass"(rx290_pos, "metachar:sym<{*}>") + if_null rx290_debug, debug_309 rx290_cur."!cursor_debug"("PASS ", "metachar:sym<{*}>", " at pos=", rx290_pos) + debug_309: .return (rx290_cur) rx290_restart: .annotate 'line', 3 + if_null rx290_debug, debug_310 rx290_cur."!cursor_debug"("NEXT ", "metachar:sym<{*}>") + debug_310: rx290_fail: (rx290_rep, rx290_pos, $I10, $P10) = rx290_cur."!mark_fail"(0) lt rx290_pos, -1, rx290_done @@ -3893,14 +4261,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx290_done: rx290_cur."!cursor_fail"() + if_null rx290_debug, debug_311 rx290_cur."!cursor_debug"("FAIL ", "metachar:sym<{*}>") + debug_311: .return (rx290_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<{*}>" :subid("86_1280467470.54449") :method +.sub "!PREFIX__metachar:sym<{*}>" :subid("86_1282016522.91354") :method .annotate 'line', 3 new $P292, "ResizablePMCArray" push $P292, "{*}" @@ -3909,7 +4279,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("87_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym" :subid("87_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx302_tgt .local int rx302_pos @@ -3917,7 +4287,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx302_eos .local int rx302_rep .local pmc rx302_cur + .local pmc rx302_debug (rx302_cur, rx302_pos, rx302_tgt, $I10) = self."!cursor_start"() + getattribute rx302_debug, rx302_cur, "$!debug" .lex unicode:"$\x{a2}", rx302_cur .local pmc match .lex "$/", match @@ -3929,7 +4301,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx302_tgt, rx302_tgt, rx302_off rx302_start: eq $I10, 1, rx302_restart + if_null rx302_debug, debug_312 rx302_cur."!cursor_debug"("START ", "metachar:sym") + debug_312: $I10 = self.'from'() ne $I10, -1, rxscan306_done goto rxscan306_scan @@ -3947,8 +4321,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx302_pos, 1 gt $I11, rx302_eos, rx302_fail sub $I11, rx302_pos, rx302_off - substr $S10, rx302_tgt, $I11, 1 - ne $S10, "<", rx302_fail + ord $I11, rx302_tgt, $I11 + ne $I11, 60, rx302_fail add rx302_pos, 1 # rx subrule "assertion" subtype=capture negate= rx302_cur."!cursor_pos"(rx302_pos) @@ -3965,8 +4339,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx302_pos, 1 gt $I11, rx302_eos, rx302_fail sub $I11, rx302_pos, rx302_off - substr $S10, rx302_tgt, $I11, 1 - ne $S10, ">", rx302_fail + ord $I11, rx302_tgt, $I11 + ne $I11, 62, rx302_fail add rx302_pos, 1 goto alt307_end alt307_1: @@ -3979,11 +4353,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 104 # rx pass rx302_cur."!cursor_pass"(rx302_pos, "metachar:sym") + if_null rx302_debug, debug_313 rx302_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx302_pos) + debug_313: .return (rx302_cur) rx302_restart: .annotate 'line', 3 + if_null rx302_debug, debug_314 rx302_cur."!cursor_debug"("NEXT ", "metachar:sym") + debug_314: rx302_fail: (rx302_rep, rx302_pos, $I10, $P10) = rx302_cur."!mark_fail"(0) lt rx302_pos, -1, rx302_done @@ -3991,14 +4369,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx302_done: rx302_cur."!cursor_fail"() + if_null rx302_debug, debug_315 rx302_cur."!cursor_debug"("FAIL ", "metachar:sym") + debug_315: .return (rx302_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("88_1280467470.54449") :method +.sub "!PREFIX__metachar:sym" :subid("88_1282016522.91354") :method .annotate 'line', 3 $P304 = self."!PREFIX__!subrule"("assertion", "<") new $P305, "ResizablePMCArray" @@ -4008,7 +4388,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("89_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym" :subid("89_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx309_tgt .local int rx309_pos @@ -4016,8 +4396,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx309_eos .local int rx309_rep .local pmc rx309_cur + .local pmc rx309_debug (rx309_cur, rx309_pos, rx309_tgt, $I10) = self."!cursor_start"() rx309_cur."!cursor_caparray"("quantified_atom") + getattribute rx309_debug, rx309_cur, "$!debug" .lex unicode:"$\x{a2}", rx309_cur .local pmc match .lex "$/", match @@ -4029,7 +4411,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx309_tgt, rx309_tgt, rx309_off rx309_start: eq $I10, 1, rx309_restart + if_null rx309_debug, debug_316 rx309_cur."!cursor_debug"("START ", "metachar:sym") + debug_316: $I10 = self.'from'() ne $I10, -1, rxscan312_done goto rxscan312_scan @@ -4089,8 +4473,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx309_pos, 1 gt $I11, rx309_eos, rx309_fail sub $I11, rx309_pos, rx309_off - substr $S10, rx309_tgt, $I11, 1 - ne $S10, ">", rx309_fail + ord $I11, rx309_tgt, $I11 + ne $I11, 62, rx309_fail add rx309_pos, 1 goto alt313_end alt313_1: @@ -4099,8 +4483,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx309_pos, 1 gt $I11, rx309_eos, rx309_fail sub $I11, rx309_pos, rx309_off - substr $S10, rx309_tgt, $I11, 1 - ne $S10, "$", rx309_fail + ord $I11, rx309_tgt, $I11 + ne $I11, 36, rx309_fail add rx309_pos, 1 # rx subcapture "pos" set_addr $I10, rxcap_316_fail @@ -4137,8 +4521,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx309_pos, 1 gt $I11, rx309_eos, rx309_fail sub $I11, rx309_pos, rx309_off - substr $S10, rx309_tgt, $I11, 1 - ne $S10, "=", rx309_fail + ord $I11, rx309_tgt, $I11 + ne $I11, 61, rx309_fail add rx309_pos, 1 # rx subrule "ws" subtype=method negate= rx309_cur."!cursor_pos"(rx309_pos) @@ -4158,11 +4542,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 109 # rx pass rx309_cur."!cursor_pass"(rx309_pos, "metachar:sym") + if_null rx309_debug, debug_317 rx309_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx309_pos) + debug_317: .return (rx309_cur) rx309_restart: .annotate 'line', 3 + if_null rx309_debug, debug_318 rx309_cur."!cursor_debug"("NEXT ", "metachar:sym") + debug_318: rx309_fail: (rx309_rep, rx309_pos, $I10, $P10) = rx309_cur."!mark_fail"(0) lt rx309_pos, -1, rx309_done @@ -4170,14 +4558,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx309_done: rx309_cur."!cursor_fail"() + if_null rx309_debug, debug_319 rx309_cur."!cursor_debug"("FAIL ", "metachar:sym") + debug_319: .return (rx309_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("90_1280467470.54449") :method +.sub "!PREFIX__metachar:sym" :subid("90_1282016522.91354") :method .annotate 'line', 3 new $P311, "ResizablePMCArray" push $P311, "$" @@ -4187,7 +4577,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("91_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "metachar:sym" :subid("91_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx319_tgt .local int rx319_pos @@ -4195,7 +4585,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx319_eos .local int rx319_rep .local pmc rx319_cur + .local pmc rx319_debug (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"() + getattribute rx319_debug, rx319_cur, "$!debug" .lex unicode:"$\x{a2}", rx319_cur .local pmc match .lex "$/", match @@ -4207,7 +4599,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx319_tgt, rx319_tgt, rx319_off rx319_start: eq $I10, 1, rx319_restart + if_null rx319_debug, debug_320 rx319_cur."!cursor_debug"("START ", "metachar:sym") + debug_320: $I10 = self.'from'() ne $I10, -1, rxscan322_done goto rxscan322_scan @@ -4263,11 +4657,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 118 # rx pass rx319_cur."!cursor_pass"(rx319_pos, "metachar:sym") + if_null rx319_debug, debug_321 rx319_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx319_pos) + debug_321: .return (rx319_cur) rx319_restart: .annotate 'line', 3 + if_null rx319_debug, debug_322 rx319_cur."!cursor_debug"("NEXT ", "metachar:sym") + debug_322: rx319_fail: (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0) lt rx319_pos, -1, rx319_done @@ -4275,14 +4673,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx319_done: rx319_cur."!cursor_fail"() + if_null rx319_debug, debug_323 rx319_cur."!cursor_debug"("FAIL ", "metachar:sym") + debug_323: .return (rx319_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("92_1280467470.54449") :method +.sub "!PREFIX__metachar:sym" :subid("92_1282016522.91354") :method .annotate 'line', 3 new $P321, "ResizablePMCArray" push $P321, ":PIR{{" @@ -4291,7 +4691,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash" :subid("93_1280467470.54449") :method +.sub "backslash" :subid("93_1282016522.91354") :method .annotate 'line', 122 $P327 = self."!protoregex"("backslash") .return ($P327) @@ -4299,7 +4699,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash" :subid("94_1280467470.54449") :method +.sub "!PREFIX__backslash" :subid("94_1282016522.91354") :method .annotate 'line', 122 $P329 = self."!PREFIX__!protoregex"("backslash") .return ($P329) @@ -4307,7 +4707,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("95_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("95_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx331_tgt .local int rx331_pos @@ -4315,7 +4715,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx331_eos .local int rx331_rep .local pmc rx331_cur + .local pmc rx331_debug (rx331_cur, rx331_pos, rx331_tgt, $I10) = self."!cursor_start"() + getattribute rx331_debug, rx331_cur, "$!debug" .lex unicode:"$\x{a2}", rx331_cur .local pmc match .lex "$/", match @@ -4327,7 +4729,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx331_tgt, rx331_tgt, rx331_off rx331_start: eq $I10, 1, rx331_restart + if_null rx331_debug, debug_324 rx331_cur."!cursor_debug"("START ", "backslash:sym") + debug_324: $I10 = self.'from'() ne $I10, -1, rxscan334_done goto rxscan334_scan @@ -4364,11 +4768,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_335_done: # rx pass rx331_cur."!cursor_pass"(rx331_pos, "backslash:sym") + if_null rx331_debug, debug_325 rx331_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx331_pos) + debug_325: .return (rx331_cur) rx331_restart: .annotate 'line', 3 + if_null rx331_debug, debug_326 rx331_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_326: rx331_fail: (rx331_rep, rx331_pos, $I10, $P10) = rx331_cur."!mark_fail"(0) lt rx331_pos, -1, rx331_done @@ -4376,14 +4784,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx331_done: rx331_cur."!cursor_fail"() + if_null rx331_debug, debug_327 rx331_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_327: .return (rx331_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("96_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("96_1282016522.91354") :method .annotate 'line', 3 new $P333, "ResizablePMCArray" push $P333, "N" @@ -4399,7 +4809,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("97_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("97_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx337_tgt .local int rx337_pos @@ -4407,7 +4817,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx337_eos .local int rx337_rep .local pmc rx337_cur + .local pmc rx337_debug (rx337_cur, rx337_pos, rx337_tgt, $I10) = self."!cursor_start"() + getattribute rx337_debug, rx337_cur, "$!debug" .lex unicode:"$\x{a2}", rx337_cur .local pmc match .lex "$/", match @@ -4419,7 +4831,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx337_tgt, rx337_tgt, rx337_off rx337_start: eq $I10, 1, rx337_restart + if_null rx337_debug, debug_328 rx337_cur."!cursor_debug"("START ", "backslash:sym") + debug_328: $I10 = self.'from'() ne $I10, -1, rxscan340_done goto rxscan340_scan @@ -4456,11 +4870,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_341_done: # rx pass rx337_cur."!cursor_pass"(rx337_pos, "backslash:sym") + if_null rx337_debug, debug_329 rx337_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx337_pos) + debug_329: .return (rx337_cur) rx337_restart: .annotate 'line', 3 + if_null rx337_debug, debug_330 rx337_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_330: rx337_fail: (rx337_rep, rx337_pos, $I10, $P10) = rx337_cur."!mark_fail"(0) lt rx337_pos, -1, rx337_done @@ -4468,14 +4886,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx337_done: rx337_cur."!cursor_fail"() + if_null rx337_debug, debug_331 rx337_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_331: .return (rx337_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("98_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("98_1282016522.91354") :method .annotate 'line', 3 new $P339, "ResizablePMCArray" push $P339, "B" @@ -4485,7 +4905,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("99_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("99_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx343_tgt .local int rx343_pos @@ -4493,7 +4913,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx343_eos .local int rx343_rep .local pmc rx343_cur + .local pmc rx343_debug (rx343_cur, rx343_pos, rx343_tgt, $I10) = self."!cursor_start"() + getattribute rx343_debug, rx343_cur, "$!debug" .lex unicode:"$\x{a2}", rx343_cur .local pmc match .lex "$/", match @@ -4505,7 +4927,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx343_tgt, rx343_tgt, rx343_off rx343_start: eq $I10, 1, rx343_restart + if_null rx343_debug, debug_332 rx343_cur."!cursor_debug"("START ", "backslash:sym") + debug_332: $I10 = self.'from'() ne $I10, -1, rxscan346_done goto rxscan346_scan @@ -4542,11 +4966,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_347_done: # rx pass rx343_cur."!cursor_pass"(rx343_pos, "backslash:sym") + if_null rx343_debug, debug_333 rx343_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx343_pos) + debug_333: .return (rx343_cur) rx343_restart: .annotate 'line', 3 + if_null rx343_debug, debug_334 rx343_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_334: rx343_fail: (rx343_rep, rx343_pos, $I10, $P10) = rx343_cur."!mark_fail"(0) lt rx343_pos, -1, rx343_done @@ -4554,14 +4982,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx343_done: rx343_cur."!cursor_fail"() + if_null rx343_debug, debug_335 rx343_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_335: .return (rx343_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("100_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("100_1282016522.91354") :method .annotate 'line', 3 new $P345, "ResizablePMCArray" push $P345, "E" @@ -4571,7 +5001,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("101_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("101_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx349_tgt .local int rx349_pos @@ -4579,7 +5009,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx349_eos .local int rx349_rep .local pmc rx349_cur + .local pmc rx349_debug (rx349_cur, rx349_pos, rx349_tgt, $I10) = self."!cursor_start"() + getattribute rx349_debug, rx349_cur, "$!debug" .lex unicode:"$\x{a2}", rx349_cur .local pmc match .lex "$/", match @@ -4591,7 +5023,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx349_tgt, rx349_tgt, rx349_off rx349_start: eq $I10, 1, rx349_restart + if_null rx349_debug, debug_336 rx349_cur."!cursor_debug"("START ", "backslash:sym") + debug_336: $I10 = self.'from'() ne $I10, -1, rxscan352_done goto rxscan352_scan @@ -4628,11 +5062,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_353_done: # rx pass rx349_cur."!cursor_pass"(rx349_pos, "backslash:sym") + if_null rx349_debug, debug_337 rx349_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx349_pos) + debug_337: .return (rx349_cur) rx349_restart: .annotate 'line', 3 + if_null rx349_debug, debug_338 rx349_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_338: rx349_fail: (rx349_rep, rx349_pos, $I10, $P10) = rx349_cur."!mark_fail"(0) lt rx349_pos, -1, rx349_done @@ -4640,14 +5078,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx349_done: rx349_cur."!cursor_fail"() + if_null rx349_debug, debug_339 rx349_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_339: .return (rx349_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("102_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("102_1282016522.91354") :method .annotate 'line', 3 new $P351, "ResizablePMCArray" push $P351, "F" @@ -4657,7 +5097,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("103_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("103_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx355_tgt .local int rx355_pos @@ -4665,7 +5105,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx355_eos .local int rx355_rep .local pmc rx355_cur + .local pmc rx355_debug (rx355_cur, rx355_pos, rx355_tgt, $I10) = self."!cursor_start"() + getattribute rx355_debug, rx355_cur, "$!debug" .lex unicode:"$\x{a2}", rx355_cur .local pmc match .lex "$/", match @@ -4677,7 +5119,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx355_tgt, rx355_tgt, rx355_off rx355_start: eq $I10, 1, rx355_restart + if_null rx355_debug, debug_340 rx355_cur."!cursor_debug"("START ", "backslash:sym") + debug_340: $I10 = self.'from'() ne $I10, -1, rxscan358_done goto rxscan358_scan @@ -4714,11 +5158,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_359_done: # rx pass rx355_cur."!cursor_pass"(rx355_pos, "backslash:sym") + if_null rx355_debug, debug_341 rx355_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx355_pos) + debug_341: .return (rx355_cur) rx355_restart: .annotate 'line', 3 + if_null rx355_debug, debug_342 rx355_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_342: rx355_fail: (rx355_rep, rx355_pos, $I10, $P10) = rx355_cur."!mark_fail"(0) lt rx355_pos, -1, rx355_done @@ -4726,14 +5174,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx355_done: rx355_cur."!cursor_fail"() + if_null rx355_debug, debug_343 rx355_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_343: .return (rx355_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("104_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("104_1282016522.91354") :method .annotate 'line', 3 new $P357, "ResizablePMCArray" push $P357, "H" @@ -4743,7 +5193,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("105_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("105_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx361_tgt .local int rx361_pos @@ -4751,7 +5201,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx361_eos .local int rx361_rep .local pmc rx361_cur + .local pmc rx361_debug (rx361_cur, rx361_pos, rx361_tgt, $I10) = self."!cursor_start"() + getattribute rx361_debug, rx361_cur, "$!debug" .lex unicode:"$\x{a2}", rx361_cur .local pmc match .lex "$/", match @@ -4763,7 +5215,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx361_tgt, rx361_tgt, rx361_off rx361_start: eq $I10, 1, rx361_restart + if_null rx361_debug, debug_344 rx361_cur."!cursor_debug"("START ", "backslash:sym") + debug_344: $I10 = self.'from'() ne $I10, -1, rxscan364_done goto rxscan364_scan @@ -4800,11 +5254,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_365_done: # rx pass rx361_cur."!cursor_pass"(rx361_pos, "backslash:sym") + if_null rx361_debug, debug_345 rx361_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx361_pos) + debug_345: .return (rx361_cur) rx361_restart: .annotate 'line', 3 + if_null rx361_debug, debug_346 rx361_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_346: rx361_fail: (rx361_rep, rx361_pos, $I10, $P10) = rx361_cur."!mark_fail"(0) lt rx361_pos, -1, rx361_done @@ -4812,14 +5270,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx361_done: rx361_cur."!cursor_fail"() + if_null rx361_debug, debug_347 rx361_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_347: .return (rx361_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("106_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("106_1282016522.91354") :method .annotate 'line', 3 new $P363, "ResizablePMCArray" push $P363, "R" @@ -4829,7 +5289,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("107_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("107_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx367_tgt .local int rx367_pos @@ -4837,7 +5297,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx367_eos .local int rx367_rep .local pmc rx367_cur + .local pmc rx367_debug (rx367_cur, rx367_pos, rx367_tgt, $I10) = self."!cursor_start"() + getattribute rx367_debug, rx367_cur, "$!debug" .lex unicode:"$\x{a2}", rx367_cur .local pmc match .lex "$/", match @@ -4849,7 +5311,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx367_tgt, rx367_tgt, rx367_off rx367_start: eq $I10, 1, rx367_restart + if_null rx367_debug, debug_348 rx367_cur."!cursor_debug"("START ", "backslash:sym") + debug_348: $I10 = self.'from'() ne $I10, -1, rxscan370_done goto rxscan370_scan @@ -4886,11 +5350,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_371_done: # rx pass rx367_cur."!cursor_pass"(rx367_pos, "backslash:sym") + if_null rx367_debug, debug_349 rx367_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx367_pos) + debug_349: .return (rx367_cur) rx367_restart: .annotate 'line', 3 + if_null rx367_debug, debug_350 rx367_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_350: rx367_fail: (rx367_rep, rx367_pos, $I10, $P10) = rx367_cur."!mark_fail"(0) lt rx367_pos, -1, rx367_done @@ -4898,14 +5366,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx367_done: rx367_cur."!cursor_fail"() + if_null rx367_debug, debug_351 rx367_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_351: .return (rx367_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("108_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("108_1282016522.91354") :method .annotate 'line', 3 new $P369, "ResizablePMCArray" push $P369, "T" @@ -4915,7 +5385,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("109_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("109_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx373_tgt .local int rx373_pos @@ -4923,7 +5393,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx373_eos .local int rx373_rep .local pmc rx373_cur + .local pmc rx373_debug (rx373_cur, rx373_pos, rx373_tgt, $I10) = self."!cursor_start"() + getattribute rx373_debug, rx373_cur, "$!debug" .lex unicode:"$\x{a2}", rx373_cur .local pmc match .lex "$/", match @@ -4935,7 +5407,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx373_tgt, rx373_tgt, rx373_off rx373_start: eq $I10, 1, rx373_restart + if_null rx373_debug, debug_352 rx373_cur."!cursor_debug"("START ", "backslash:sym") + debug_352: $I10 = self.'from'() ne $I10, -1, rxscan376_done goto rxscan376_scan @@ -4972,11 +5446,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxcap_377_done: # rx pass rx373_cur."!cursor_pass"(rx373_pos, "backslash:sym") + if_null rx373_debug, debug_353 rx373_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx373_pos) + debug_353: .return (rx373_cur) rx373_restart: .annotate 'line', 3 + if_null rx373_debug, debug_354 rx373_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_354: rx373_fail: (rx373_rep, rx373_pos, $I10, $P10) = rx373_cur."!mark_fail"(0) lt rx373_pos, -1, rx373_done @@ -4984,14 +5462,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx373_done: rx373_cur."!cursor_fail"() + if_null rx373_debug, debug_355 rx373_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_355: .return (rx373_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("110_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("110_1282016522.91354") :method .annotate 'line', 3 new $P375, "ResizablePMCArray" push $P375, "V" @@ -5001,7 +5481,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("111_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("111_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx379_tgt .local int rx379_pos @@ -5009,7 +5489,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx379_eos .local int rx379_rep .local pmc rx379_cur + .local pmc rx379_debug (rx379_cur, rx379_pos, rx379_tgt, $I10) = self."!cursor_start"() + getattribute rx379_debug, rx379_cur, "$!debug" .lex unicode:"$\x{a2}", rx379_cur .local pmc match .lex "$/", match @@ -5021,7 +5503,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx379_tgt, rx379_tgt, rx379_off rx379_start: eq $I10, 1, rx379_restart + if_null rx379_debug, debug_356 rx379_cur."!cursor_debug"("START ", "backslash:sym") + debug_356: $I10 = self.'from'() ne $I10, -1, rxscan386_done goto rxscan386_scan @@ -5072,8 +5556,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx379_pos, 1 gt $I11, rx379_eos, rx379_fail sub $I11, rx379_pos, rx379_off - substr $S10, rx379_tgt, $I11, 1 - ne $S10, "[", rx379_fail + ord $I11, rx379_tgt, $I11 + ne $I11, 91, rx379_fail add rx379_pos, 1 # rx subrule "octints" subtype=capture negate= rx379_cur."!cursor_pos"(rx379_pos) @@ -5086,17 +5570,21 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx379_pos, 1 gt $I11, rx379_eos, rx379_fail sub $I11, rx379_pos, rx379_off - substr $S10, rx379_tgt, $I11, 1 - ne $S10, "]", rx379_fail + ord $I11, rx379_tgt, $I11 + ne $I11, 93, rx379_fail add rx379_pos, 1 alt388_end: # rx pass rx379_cur."!cursor_pass"(rx379_pos, "backslash:sym") + if_null rx379_debug, debug_357 rx379_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx379_pos) + debug_357: .return (rx379_cur) rx379_restart: .annotate 'line', 3 + if_null rx379_debug, debug_358 rx379_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_358: rx379_fail: (rx379_rep, rx379_pos, $I10, $P10) = rx379_cur."!mark_fail"(0) lt rx379_pos, -1, rx379_done @@ -5104,14 +5592,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx379_done: rx379_cur."!cursor_fail"() + if_null rx379_debug, debug_359 rx379_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_359: .return (rx379_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("112_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("112_1282016522.91354") :method .annotate 'line', 3 $P381 = self."!PREFIX__!subrule"("octints", "O[") $P382 = self."!PREFIX__!subrule"("octint", "O") @@ -5127,7 +5617,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("113_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("113_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx390_tgt .local int rx390_pos @@ -5135,7 +5625,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx390_eos .local int rx390_rep .local pmc rx390_cur + .local pmc rx390_debug (rx390_cur, rx390_pos, rx390_tgt, $I10) = self."!cursor_start"() + getattribute rx390_debug, rx390_cur, "$!debug" .lex unicode:"$\x{a2}", rx390_cur .local pmc match .lex "$/", match @@ -5147,7 +5639,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx390_tgt, rx390_tgt, rx390_off rx390_start: eq $I10, 1, rx390_restart + if_null rx390_debug, debug_360 rx390_cur."!cursor_debug"("START ", "backslash:sym") + debug_360: $I10 = self.'from'() ne $I10, -1, rxscan397_done goto rxscan397_scan @@ -5198,8 +5692,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx390_pos, 1 gt $I11, rx390_eos, rx390_fail sub $I11, rx390_pos, rx390_off - substr $S10, rx390_tgt, $I11, 1 - ne $S10, "[", rx390_fail + ord $I11, rx390_tgt, $I11 + ne $I11, 91, rx390_fail add rx390_pos, 1 # rx subrule "hexints" subtype=capture negate= rx390_cur."!cursor_pos"(rx390_pos) @@ -5212,17 +5706,21 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx390_pos, 1 gt $I11, rx390_eos, rx390_fail sub $I11, rx390_pos, rx390_off - substr $S10, rx390_tgt, $I11, 1 - ne $S10, "]", rx390_fail + ord $I11, rx390_tgt, $I11 + ne $I11, 93, rx390_fail add rx390_pos, 1 alt399_end: # rx pass rx390_cur."!cursor_pass"(rx390_pos, "backslash:sym") + if_null rx390_debug, debug_361 rx390_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx390_pos) + debug_361: .return (rx390_cur) rx390_restart: .annotate 'line', 3 + if_null rx390_debug, debug_362 rx390_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_362: rx390_fail: (rx390_rep, rx390_pos, $I10, $P10) = rx390_cur."!mark_fail"(0) lt rx390_pos, -1, rx390_done @@ -5230,14 +5728,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx390_done: rx390_cur."!cursor_fail"() + if_null rx390_debug, debug_363 rx390_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_363: .return (rx390_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("114_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("114_1282016522.91354") :method .annotate 'line', 3 $P392 = self."!PREFIX__!subrule"("hexints", "X[") $P393 = self."!PREFIX__!subrule"("hexint", "X") @@ -5253,7 +5753,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("115_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("115_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx401_tgt .local int rx401_pos @@ -5261,7 +5761,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx401_eos .local int rx401_rep .local pmc rx401_cur + .local pmc rx401_debug (rx401_cur, rx401_pos, rx401_tgt, $I10) = self."!cursor_start"() + getattribute rx401_debug, rx401_cur, "$!debug" .lex unicode:"$\x{a2}", rx401_cur .local pmc match .lex "$/", match @@ -5273,7 +5775,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx401_tgt, rx401_tgt, rx401_off rx401_start: eq $I10, 1, rx401_restart + if_null rx401_debug, debug_364 rx401_cur."!cursor_debug"("START ", "backslash:sym") + debug_364: $I10 = self.'from'() ne $I10, -1, rxscan406_done goto rxscan406_scan @@ -5317,11 +5821,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx401_pos = $P10."pos"() # rx pass rx401_cur."!cursor_pass"(rx401_pos, "backslash:sym") + if_null rx401_debug, debug_365 rx401_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx401_pos) + debug_365: .return (rx401_cur) rx401_restart: .annotate 'line', 3 + if_null rx401_debug, debug_366 rx401_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_366: rx401_fail: (rx401_rep, rx401_pos, $I10, $P10) = rx401_cur."!mark_fail"(0) lt rx401_pos, -1, rx401_done @@ -5329,14 +5837,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx401_done: rx401_cur."!cursor_fail"() + if_null rx401_debug, debug_367 rx401_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_367: .return (rx401_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("116_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("116_1282016522.91354") :method .annotate 'line', 3 $P403 = self."!PREFIX__!subrule"("charspec", "C") $P404 = self."!PREFIX__!subrule"("charspec", "c") @@ -5348,7 +5858,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("117_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("117_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx409_tgt .local int rx409_pos @@ -5356,7 +5866,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx409_eos .local int rx409_rep .local pmc rx409_cur + .local pmc rx409_debug (rx409_cur, rx409_pos, rx409_tgt, $I10) = self."!cursor_start"() + getattribute rx409_debug, rx409_cur, "$!debug" .lex unicode:"$\x{a2}", rx409_cur .local pmc match .lex "$/", match @@ -5368,7 +5880,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx409_tgt, rx409_tgt, rx409_off rx409_start: eq $I10, 1, rx409_restart + if_null rx409_debug, debug_368 rx409_cur."!cursor_debug"("START ", "backslash:sym") + debug_368: $I10 = self.'from'() ne $I10, -1, rxscan413_done goto rxscan413_scan @@ -5386,8 +5900,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx409_pos, 1 gt $I11, rx409_eos, rx409_fail sub $I11, rx409_pos, rx409_off - substr $S10, rx409_tgt, $I11, 1 - ne $S10, "A", rx409_fail + ord $I11, rx409_tgt, $I11 + ne $I11, 65, rx409_fail add rx409_pos, 1 # rx subrule "obs" subtype=method negate= rx409_cur."!cursor_pos"(rx409_pos) @@ -5396,11 +5910,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx409_pos = $P10."pos"() # rx pass rx409_cur."!cursor_pass"(rx409_pos, "backslash:sym") + if_null rx409_debug, debug_369 rx409_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx409_pos) + debug_369: .return (rx409_cur) rx409_restart: .annotate 'line', 3 + if_null rx409_debug, debug_370 rx409_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_370: rx409_fail: (rx409_rep, rx409_pos, $I10, $P10) = rx409_cur."!mark_fail"(0) lt rx409_pos, -1, rx409_done @@ -5408,14 +5926,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx409_done: rx409_cur."!cursor_fail"() + if_null rx409_debug, debug_371 rx409_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_371: .return (rx409_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("118_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("118_1282016522.91354") :method .annotate 'line', 3 $P411 = self."!PREFIX__!subrule"("obs", "A") new $P412, "ResizablePMCArray" @@ -5425,7 +5945,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("119_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("119_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx415_tgt .local int rx415_pos @@ -5433,7 +5953,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx415_eos .local int rx415_rep .local pmc rx415_cur + .local pmc rx415_debug (rx415_cur, rx415_pos, rx415_tgt, $I10) = self."!cursor_start"() + getattribute rx415_debug, rx415_cur, "$!debug" .lex unicode:"$\x{a2}", rx415_cur .local pmc match .lex "$/", match @@ -5445,7 +5967,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx415_tgt, rx415_tgt, rx415_off rx415_start: eq $I10, 1, rx415_restart + if_null rx415_debug, debug_372 rx415_cur."!cursor_debug"("START ", "backslash:sym") + debug_372: $I10 = self.'from'() ne $I10, -1, rxscan419_done goto rxscan419_scan @@ -5463,8 +5987,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx415_pos, 1 gt $I11, rx415_eos, rx415_fail sub $I11, rx415_pos, rx415_off - substr $S10, rx415_tgt, $I11, 1 - ne $S10, "z", rx415_fail + ord $I11, rx415_tgt, $I11 + ne $I11, 122, rx415_fail add rx415_pos, 1 # rx subrule "obs" subtype=method negate= rx415_cur."!cursor_pos"(rx415_pos) @@ -5473,11 +5997,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx415_pos = $P10."pos"() # rx pass rx415_cur."!cursor_pass"(rx415_pos, "backslash:sym") + if_null rx415_debug, debug_373 rx415_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx415_pos) + debug_373: .return (rx415_cur) rx415_restart: .annotate 'line', 3 + if_null rx415_debug, debug_374 rx415_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_374: rx415_fail: (rx415_rep, rx415_pos, $I10, $P10) = rx415_cur."!mark_fail"(0) lt rx415_pos, -1, rx415_done @@ -5485,14 +6013,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx415_done: rx415_cur."!cursor_fail"() + if_null rx415_debug, debug_375 rx415_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_375: .return (rx415_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("120_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("120_1282016522.91354") :method .annotate 'line', 3 $P417 = self."!PREFIX__!subrule"("obs", "z") new $P418, "ResizablePMCArray" @@ -5502,7 +6032,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("121_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("121_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx421_tgt .local int rx421_pos @@ -5510,7 +6040,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx421_eos .local int rx421_rep .local pmc rx421_cur + .local pmc rx421_debug (rx421_cur, rx421_pos, rx421_tgt, $I10) = self."!cursor_start"() + getattribute rx421_debug, rx421_cur, "$!debug" .lex unicode:"$\x{a2}", rx421_cur .local pmc match .lex "$/", match @@ -5522,7 +6054,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx421_tgt, rx421_tgt, rx421_off rx421_start: eq $I10, 1, rx421_restart + if_null rx421_debug, debug_376 rx421_cur."!cursor_debug"("START ", "backslash:sym") + debug_376: $I10 = self.'from'() ne $I10, -1, rxscan425_done goto rxscan425_scan @@ -5540,8 +6074,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx421_pos, 1 gt $I11, rx421_eos, rx421_fail sub $I11, rx421_pos, rx421_off - substr $S10, rx421_tgt, $I11, 1 - ne $S10, "Z", rx421_fail + ord $I11, rx421_tgt, $I11 + ne $I11, 90, rx421_fail add rx421_pos, 1 # rx subrule "obs" subtype=method negate= rx421_cur."!cursor_pos"(rx421_pos) @@ -5550,11 +6084,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx421_pos = $P10."pos"() # rx pass rx421_cur."!cursor_pass"(rx421_pos, "backslash:sym") + if_null rx421_debug, debug_377 rx421_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx421_pos) + debug_377: .return (rx421_cur) rx421_restart: .annotate 'line', 3 + if_null rx421_debug, debug_378 rx421_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_378: rx421_fail: (rx421_rep, rx421_pos, $I10, $P10) = rx421_cur."!mark_fail"(0) lt rx421_pos, -1, rx421_done @@ -5562,14 +6100,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx421_done: rx421_cur."!cursor_fail"() + if_null rx421_debug, debug_379 rx421_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_379: .return (rx421_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("122_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("122_1282016522.91354") :method .annotate 'line', 3 $P423 = self."!PREFIX__!subrule"("obs", "Z") new $P424, "ResizablePMCArray" @@ -5579,7 +6119,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("123_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("123_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx427_tgt .local int rx427_pos @@ -5587,7 +6127,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx427_eos .local int rx427_rep .local pmc rx427_cur + .local pmc rx427_debug (rx427_cur, rx427_pos, rx427_tgt, $I10) = self."!cursor_start"() + getattribute rx427_debug, rx427_cur, "$!debug" .lex unicode:"$\x{a2}", rx427_cur .local pmc match .lex "$/", match @@ -5599,7 +6141,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx427_tgt, rx427_tgt, rx427_off rx427_start: eq $I10, 1, rx427_restart + if_null rx427_debug, debug_380 rx427_cur."!cursor_debug"("START ", "backslash:sym") + debug_380: $I10 = self.'from'() ne $I10, -1, rxscan431_done goto rxscan431_scan @@ -5617,8 +6161,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx427_pos, 1 gt $I11, rx427_eos, rx427_fail sub $I11, rx427_pos, rx427_off - substr $S10, rx427_tgt, $I11, 1 - ne $S10, "Q", rx427_fail + ord $I11, rx427_tgt, $I11 + ne $I11, 81, rx427_fail add rx427_pos, 1 # rx subrule "obs" subtype=method negate= rx427_cur."!cursor_pos"(rx427_pos) @@ -5627,11 +6171,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx427_pos = $P10."pos"() # rx pass rx427_cur."!cursor_pass"(rx427_pos, "backslash:sym") + if_null rx427_debug, debug_381 rx427_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx427_pos) + debug_381: .return (rx427_cur) rx427_restart: .annotate 'line', 3 + if_null rx427_debug, debug_382 rx427_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_382: rx427_fail: (rx427_rep, rx427_pos, $I10, $P10) = rx427_cur."!mark_fail"(0) lt rx427_pos, -1, rx427_done @@ -5639,14 +6187,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx427_done: rx427_cur."!cursor_fail"() + if_null rx427_debug, debug_383 rx427_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_383: .return (rx427_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("124_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("124_1282016522.91354") :method .annotate 'line', 3 $P429 = self."!PREFIX__!subrule"("obs", "Q") new $P430, "ResizablePMCArray" @@ -5656,7 +6206,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("125_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "backslash:sym" :subid("125_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx433_tgt .local int rx433_pos @@ -5664,7 +6214,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx433_eos .local int rx433_rep .local pmc rx433_cur + .local pmc rx433_debug (rx433_cur, rx433_pos, rx433_tgt, $I10) = self."!cursor_start"() + getattribute rx433_debug, rx433_cur, "$!debug" .lex unicode:"$\x{a2}", rx433_cur .local pmc match .lex "$/", match @@ -5676,7 +6228,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx433_tgt, rx433_tgt, rx433_off rx433_start: eq $I10, 1, rx433_restart + if_null rx433_debug, debug_384 rx433_cur."!cursor_debug"("START ", "backslash:sym") + debug_384: $I10 = self.'from'() ne $I10, -1, rxscan436_done goto rxscan436_scan @@ -5698,11 +6252,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes inc rx433_pos # rx pass rx433_cur."!cursor_pass"(rx433_pos, "backslash:sym") + if_null rx433_debug, debug_385 rx433_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx433_pos) + debug_385: .return (rx433_cur) rx433_restart: .annotate 'line', 3 + if_null rx433_debug, debug_386 rx433_cur."!cursor_debug"("NEXT ", "backslash:sym") + debug_386: rx433_fail: (rx433_rep, rx433_pos, $I10, $P10) = rx433_cur."!mark_fail"(0) lt rx433_pos, -1, rx433_done @@ -5710,14 +6268,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx433_done: rx433_cur."!cursor_fail"() + if_null rx433_debug, debug_387 rx433_cur."!cursor_debug"("FAIL ", "backslash:sym") + debug_387: .return (rx433_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("126_1280467470.54449") :method +.sub "!PREFIX__backslash:sym" :subid("126_1282016522.91354") :method .annotate 'line', 3 new $P435, "ResizablePMCArray" push $P435, "" @@ -5726,7 +6286,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion" :subid("127_1280467470.54449") :method +.sub "assertion" :subid("127_1282016522.91354") :method .annotate 'line', 140 $P438 = self."!protoregex"("assertion") .return ($P438) @@ -5734,7 +6294,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion" :subid("128_1280467470.54449") :method +.sub "!PREFIX__assertion" :subid("128_1282016522.91354") :method .annotate 'line', 140 $P440 = self."!PREFIX__!protoregex"("assertion") .return ($P440) @@ -5742,9 +6302,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym" :subid("129_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "assertion:sym" :subid("129_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P449 = "131_1280467470.54449" + .const 'Sub' $P449 = "131_1282016522.91354" capture_lex $P449 .local string rx442_tgt .local int rx442_pos @@ -5752,7 +6312,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx442_eos .local int rx442_rep .local pmc rx442_cur + .local pmc rx442_debug (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"() + getattribute rx442_debug, rx442_cur, "$!debug" .lex unicode:"$\x{a2}", rx442_cur .local pmc match .lex "$/", match @@ -5764,7 +6326,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx442_tgt, rx442_tgt, rx442_off rx442_start: eq $I10, 1, rx442_restart + if_null rx442_debug, debug_388 rx442_cur."!cursor_debug"("START ", "assertion:sym") + debug_388: $I10 = self.'from'() ne $I10, -1, rxscan446_done goto rxscan446_scan @@ -5782,15 +6346,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx442_pos, 1 gt $I11, rx442_eos, rx442_fail sub $I11, rx442_pos, rx442_off - substr $S10, rx442_tgt, $I11, 1 - ne $S10, "?", rx442_fail + ord $I11, rx442_tgt, $I11 + ne $I11, 63, rx442_fail add rx442_pos, 1 alt447_0: set_addr $I10, alt447_1 rx442_cur."!mark_push"(0, rx442_pos, $I10) # rx subrule "before" subtype=zerowidth negate= rx442_cur."!cursor_pos"(rx442_pos) - .const 'Sub' $P449 = "131_1280467470.54449" + .const 'Sub' $P449 = "131_1282016522.91354" capture_lex $P449 $P10 = rx442_cur."before"($P449) unless $P10, rx442_fail @@ -5806,11 +6370,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes alt447_end: # rx pass rx442_cur."!cursor_pass"(rx442_pos, "assertion:sym") + if_null rx442_debug, debug_393 rx442_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx442_pos) + debug_393: .return (rx442_cur) rx442_restart: .annotate 'line', 3 + if_null rx442_debug, debug_394 rx442_cur."!cursor_debug"("NEXT ", "assertion:sym") + debug_394: rx442_fail: (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0) lt rx442_pos, -1, rx442_done @@ -5818,14 +6386,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx442_done: rx442_cur."!cursor_fail"() + if_null rx442_debug, debug_395 rx442_cur."!cursor_debug"("FAIL ", "assertion:sym") + debug_395: .return (rx442_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym" :subid("130_1280467470.54449") :method +.sub "!PREFIX__assertion:sym" :subid("130_1282016522.91354") :method .annotate 'line', 3 $P444 = self."!PREFIX__!subrule"("assertion", "?") new $P445, "ResizablePMCArray" @@ -5836,7 +6406,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block448" :anon :subid("131_1280467470.54449") :method :outer("129_1280467470.54449") +.sub "_block448" :anon :subid("131_1282016522.91354") :method :outer("129_1282016522.91354") .annotate 'line', 142 .local string rx450_tgt .local int rx450_pos @@ -5844,7 +6414,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx450_eos .local int rx450_rep .local pmc rx450_cur + .local pmc rx450_debug (rx450_cur, rx450_pos, rx450_tgt, $I10) = self."!cursor_start"() + getattribute rx450_debug, rx450_cur, "$!debug" .lex unicode:"$\x{a2}", rx450_cur .local pmc match .lex "$/", match @@ -5856,7 +6428,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx450_tgt, rx450_tgt, rx450_off rx450_start: eq $I10, 1, rx450_restart + if_null rx450_debug, debug_389 rx450_cur."!cursor_debug"("START ", "") + debug_389: $I10 = self.'from'() ne $I10, -1, rxscan451_done goto rxscan451_scan @@ -5873,15 +6447,19 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx450_pos, 1 gt $I11, rx450_eos, rx450_fail sub $I11, rx450_pos, rx450_off - substr $S10, rx450_tgt, $I11, 1 - ne $S10, ">", rx450_fail + ord $I11, rx450_tgt, $I11 + ne $I11, 62, rx450_fail add rx450_pos, 1 # rx pass rx450_cur."!cursor_pass"(rx450_pos, "") + if_null rx450_debug, debug_390 rx450_cur."!cursor_debug"("PASS ", "", " at pos=", rx450_pos) + debug_390: .return (rx450_cur) rx450_restart: + if_null rx450_debug, debug_391 rx450_cur."!cursor_debug"("NEXT ", "") + debug_391: rx450_fail: (rx450_rep, rx450_pos, $I10, $P10) = rx450_cur."!mark_fail"(0) lt rx450_pos, -1, rx450_done @@ -5889,16 +6467,18 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx450_done: rx450_cur."!cursor_fail"() + if_null rx450_debug, debug_392 rx450_cur."!cursor_debug"("FAIL ", "") + debug_392: .return (rx450_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym" :subid("132_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "assertion:sym" :subid("132_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P460 = "134_1280467470.54449" + .const 'Sub' $P460 = "134_1282016522.91354" capture_lex $P460 .local string rx453_tgt .local int rx453_pos @@ -5906,7 +6486,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx453_eos .local int rx453_rep .local pmc rx453_cur + .local pmc rx453_debug (rx453_cur, rx453_pos, rx453_tgt, $I10) = self."!cursor_start"() + getattribute rx453_debug, rx453_cur, "$!debug" .lex unicode:"$\x{a2}", rx453_cur .local pmc match .lex "$/", match @@ -5918,7 +6500,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx453_tgt, rx453_tgt, rx453_off rx453_start: eq $I10, 1, rx453_restart + if_null rx453_debug, debug_396 rx453_cur."!cursor_debug"("START ", "assertion:sym") + debug_396: $I10 = self.'from'() ne $I10, -1, rxscan457_done goto rxscan457_scan @@ -5936,15 +6520,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx453_pos, 1 gt $I11, rx453_eos, rx453_fail sub $I11, rx453_pos, rx453_off - substr $S10, rx453_tgt, $I11, 1 - ne $S10, "!", rx453_fail + ord $I11, rx453_tgt, $I11 + ne $I11, 33, rx453_fail add rx453_pos, 1 alt458_0: set_addr $I10, alt458_1 rx453_cur."!mark_push"(0, rx453_pos, $I10) # rx subrule "before" subtype=zerowidth negate= rx453_cur."!cursor_pos"(rx453_pos) - .const 'Sub' $P460 = "134_1280467470.54449" + .const 'Sub' $P460 = "134_1282016522.91354" capture_lex $P460 $P10 = rx453_cur."before"($P460) unless $P10, rx453_fail @@ -5960,11 +6544,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes alt458_end: # rx pass rx453_cur."!cursor_pass"(rx453_pos, "assertion:sym") + if_null rx453_debug, debug_401 rx453_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx453_pos) + debug_401: .return (rx453_cur) rx453_restart: .annotate 'line', 3 + if_null rx453_debug, debug_402 rx453_cur."!cursor_debug"("NEXT ", "assertion:sym") + debug_402: rx453_fail: (rx453_rep, rx453_pos, $I10, $P10) = rx453_cur."!mark_fail"(0) lt rx453_pos, -1, rx453_done @@ -5972,14 +6560,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx453_done: rx453_cur."!cursor_fail"() + if_null rx453_debug, debug_403 rx453_cur."!cursor_debug"("FAIL ", "assertion:sym") + debug_403: .return (rx453_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym" :subid("133_1280467470.54449") :method +.sub "!PREFIX__assertion:sym" :subid("133_1282016522.91354") :method .annotate 'line', 3 $P455 = self."!PREFIX__!subrule"("assertion", "!") new $P456, "ResizablePMCArray" @@ -5990,7 +6580,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block459" :anon :subid("134_1280467470.54449") :method :outer("132_1280467470.54449") +.sub "_block459" :anon :subid("134_1282016522.91354") :method :outer("132_1282016522.91354") .annotate 'line', 143 .local string rx461_tgt .local int rx461_pos @@ -5998,7 +6588,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx461_eos .local int rx461_rep .local pmc rx461_cur + .local pmc rx461_debug (rx461_cur, rx461_pos, rx461_tgt, $I10) = self."!cursor_start"() + getattribute rx461_debug, rx461_cur, "$!debug" .lex unicode:"$\x{a2}", rx461_cur .local pmc match .lex "$/", match @@ -6010,7 +6602,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx461_tgt, rx461_tgt, rx461_off rx461_start: eq $I10, 1, rx461_restart + if_null rx461_debug, debug_397 rx461_cur."!cursor_debug"("START ", "") + debug_397: $I10 = self.'from'() ne $I10, -1, rxscan462_done goto rxscan462_scan @@ -6027,15 +6621,19 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx461_pos, 1 gt $I11, rx461_eos, rx461_fail sub $I11, rx461_pos, rx461_off - substr $S10, rx461_tgt, $I11, 1 - ne $S10, ">", rx461_fail + ord $I11, rx461_tgt, $I11 + ne $I11, 62, rx461_fail add rx461_pos, 1 # rx pass rx461_cur."!cursor_pass"(rx461_pos, "") + if_null rx461_debug, debug_398 rx461_cur."!cursor_debug"("PASS ", "", " at pos=", rx461_pos) + debug_398: .return (rx461_cur) rx461_restart: + if_null rx461_debug, debug_399 rx461_cur."!cursor_debug"("NEXT ", "") + debug_399: rx461_fail: (rx461_rep, rx461_pos, $I10, $P10) = rx461_cur."!mark_fail"(0) lt rx461_pos, -1, rx461_done @@ -6043,14 +6641,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx461_done: rx461_cur."!cursor_fail"() + if_null rx461_debug, debug_400 rx461_cur."!cursor_debug"("FAIL ", "") + debug_400: .return (rx461_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym" :subid("135_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "assertion:sym" :subid("135_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx464_tgt .local int rx464_pos @@ -6058,7 +6658,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx464_eos .local int rx464_rep .local pmc rx464_cur + .local pmc rx464_debug (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"() + getattribute rx464_debug, rx464_cur, "$!debug" .lex unicode:"$\x{a2}", rx464_cur .local pmc match .lex "$/", match @@ -6070,7 +6672,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx464_tgt, rx464_tgt, rx464_off rx464_start: eq $I10, 1, rx464_restart + if_null rx464_debug, debug_404 rx464_cur."!cursor_debug"("START ", "assertion:sym") + debug_404: $I10 = self.'from'() ne $I10, -1, rxscan468_done goto rxscan468_scan @@ -6088,8 +6692,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx464_pos, 1 gt $I11, rx464_eos, rx464_fail sub $I11, rx464_pos, rx464_off - substr $S10, rx464_tgt, $I11, 1 - ne $S10, ".", rx464_fail + ord $I11, rx464_tgt, $I11 + ne $I11, 46, rx464_fail add rx464_pos, 1 # rx subrule "assertion" subtype=capture negate= rx464_cur."!cursor_pos"(rx464_pos) @@ -6101,11 +6705,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 145 # rx pass rx464_cur."!cursor_pass"(rx464_pos, "assertion:sym") + if_null rx464_debug, debug_405 rx464_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx464_pos) + debug_405: .return (rx464_cur) rx464_restart: .annotate 'line', 3 + if_null rx464_debug, debug_406 rx464_cur."!cursor_debug"("NEXT ", "assertion:sym") + debug_406: rx464_fail: (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0) lt rx464_pos, -1, rx464_done @@ -6113,14 +6721,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx464_done: rx464_cur."!cursor_fail"() + if_null rx464_debug, debug_407 rx464_cur."!cursor_debug"("FAIL ", "assertion:sym") + debug_407: .return (rx464_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym" :subid("136_1280467470.54449") :method +.sub "!PREFIX__assertion:sym" :subid("136_1282016522.91354") :method .annotate 'line', 3 $P466 = self."!PREFIX__!subrule"("assertion", ".") new $P467, "ResizablePMCArray" @@ -6130,9 +6740,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym" :subid("137_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "assertion:sym" :subid("137_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P478 = "139_1280467470.54449" + .const 'Sub' $P478 = "139_1282016522.91354" capture_lex $P478 .local string rx470_tgt .local int rx470_pos @@ -6140,8 +6750,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx470_eos .local int rx470_rep .local pmc rx470_cur + .local pmc rx470_debug (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"() rx470_cur."!cursor_caparray"("nibbler", "arglist", "assertion") + getattribute rx470_debug, rx470_cur, "$!debug" .lex unicode:"$\x{a2}", rx470_cur .local pmc match .lex "$/", match @@ -6153,7 +6765,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx470_tgt, rx470_tgt, rx470_off rx470_start: eq $I10, 1, rx470_restart + if_null rx470_debug, debug_408 rx470_cur."!cursor_debug"("START ", "assertion:sym") + debug_408: $I10 = self.'from'() ne $I10, -1, rxscan474_done goto rxscan474_scan @@ -6186,7 +6800,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 152 # rx subrule "before" subtype=zerowidth negate= rx470_cur."!cursor_pos"(rx470_pos) - .const 'Sub' $P478 = "139_1280467470.54449" + .const 'Sub' $P478 = "139_1282016522.91354" capture_lex $P478 $P10 = rx470_cur."before"($P478) unless $P10, rx470_fail @@ -6199,8 +6813,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx470_pos, 1 gt $I11, rx470_eos, rx470_fail sub $I11, rx470_pos, rx470_off - substr $S10, rx470_tgt, $I11, 1 - ne $S10, "=", rx470_fail + ord $I11, rx470_tgt, $I11 + ne $I11, 61, rx470_fail add rx470_pos, 1 # rx subrule "assertion" subtype=capture negate= rx470_cur."!cursor_pos"(rx470_pos) @@ -6218,8 +6832,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx470_pos, 1 gt $I11, rx470_eos, rx470_fail sub $I11, rx470_pos, rx470_off - substr $S10, rx470_tgt, $I11, 1 - ne $S10, ":", rx470_fail + ord $I11, rx470_tgt, $I11 + ne $I11, 58, rx470_fail add rx470_pos, 1 # rx subrule "arglist" subtype=capture negate= rx470_cur."!cursor_pos"(rx470_pos) @@ -6237,8 +6851,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx470_pos, 1 gt $I11, rx470_eos, rx470_fail sub $I11, rx470_pos, rx470_off - substr $S10, rx470_tgt, $I11, 1 - ne $S10, "(", rx470_fail + ord $I11, rx470_tgt, $I11 + ne $I11, 40, rx470_fail add rx470_pos, 1 # rx subrule "arglist" subtype=capture negate= rx470_cur."!cursor_pos"(rx470_pos) @@ -6251,8 +6865,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx470_pos, 1 gt $I11, rx470_eos, rx470_fail sub $I11, rx470_pos, rx470_off - substr $S10, rx470_tgt, $I11, 1 - ne $S10, ")", rx470_fail + ord $I11, rx470_tgt, $I11 + ne $I11, 41, rx470_fail add rx470_pos, 1 goto alt476_end alt476_4: @@ -6277,11 +6891,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 149 # rx pass rx470_cur."!cursor_pass"(rx470_pos, "assertion:sym") + if_null rx470_debug, debug_413 rx470_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx470_pos) + debug_413: .return (rx470_cur) rx470_restart: .annotate 'line', 3 + if_null rx470_debug, debug_414 rx470_cur."!cursor_debug"("NEXT ", "assertion:sym") + debug_414: rx470_fail: (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0) lt rx470_pos, -1, rx470_done @@ -6289,14 +6907,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx470_done: rx470_cur."!cursor_fail"() + if_null rx470_debug, debug_415 rx470_cur."!cursor_debug"("FAIL ", "assertion:sym") + debug_415: .return (rx470_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym" :subid("138_1280467470.54449") :method +.sub "!PREFIX__assertion:sym" :subid("138_1282016522.91354") :method .annotate 'line', 3 $P472 = self."!PREFIX__!subrule"("identifier", "") new $P473, "ResizablePMCArray" @@ -6306,7 +6926,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block477" :anon :subid("139_1280467470.54449") :method :outer("137_1280467470.54449") +.sub "_block477" :anon :subid("139_1282016522.91354") :method :outer("137_1282016522.91354") .annotate 'line', 152 .local string rx479_tgt .local int rx479_pos @@ -6314,7 +6934,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx479_eos .local int rx479_rep .local pmc rx479_cur + .local pmc rx479_debug (rx479_cur, rx479_pos, rx479_tgt, $I10) = self."!cursor_start"() + getattribute rx479_debug, rx479_cur, "$!debug" .lex unicode:"$\x{a2}", rx479_cur .local pmc match .lex "$/", match @@ -6326,7 +6948,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx479_tgt, rx479_tgt, rx479_off rx479_start: eq $I10, 1, rx479_restart + if_null rx479_debug, debug_409 rx479_cur."!cursor_debug"("START ", "") + debug_409: $I10 = self.'from'() ne $I10, -1, rxscan480_done goto rxscan480_scan @@ -6343,15 +6967,19 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx479_pos, 1 gt $I11, rx479_eos, rx479_fail sub $I11, rx479_pos, rx479_off - substr $S10, rx479_tgt, $I11, 1 - ne $S10, ">", rx479_fail + ord $I11, rx479_tgt, $I11 + ne $I11, 62, rx479_fail add rx479_pos, 1 # rx pass rx479_cur."!cursor_pass"(rx479_pos, "") + if_null rx479_debug, debug_410 rx479_cur."!cursor_debug"("PASS ", "", " at pos=", rx479_pos) + debug_410: .return (rx479_cur) rx479_restart: + if_null rx479_debug, debug_411 rx479_cur."!cursor_debug"("NEXT ", "") + debug_411: rx479_fail: (rx479_rep, rx479_pos, $I10, $P10) = rx479_cur."!mark_fail"(0) lt rx479_pos, -1, rx479_done @@ -6359,16 +6987,18 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx479_done: rx479_cur."!cursor_fail"() + if_null rx479_debug, debug_412 rx479_cur."!cursor_debug"("FAIL ", "") + debug_412: .return (rx479_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym<[>" :subid("140_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "assertion:sym<[>" :subid("140_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P487 = "142_1280467470.54449" + .const 'Sub' $P487 = "142_1282016522.91354" capture_lex $P487 .local string rx482_tgt .local int rx482_pos @@ -6376,8 +7006,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx482_eos .local int rx482_rep .local pmc rx482_cur + .local pmc rx482_debug (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"() rx482_cur."!cursor_caparray"("cclass_elem") + getattribute rx482_debug, rx482_cur, "$!debug" .lex unicode:"$\x{a2}", rx482_cur .local pmc match .lex "$/", match @@ -6389,7 +7021,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx482_tgt, rx482_tgt, rx482_off rx482_start: eq $I10, 1, rx482_restart + if_null rx482_debug, debug_416 rx482_cur."!cursor_debug"("START ", "assertion:sym<[>") + debug_416: $I10 = self.'from'() ne $I10, -1, rxscan485_done goto rxscan485_scan @@ -6405,7 +7039,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 160 # rx subrule "before" subtype=zerowidth negate= rx482_cur."!cursor_pos"(rx482_pos) - .const 'Sub' $P487 = "142_1280467470.54449" + .const 'Sub' $P487 = "142_1282016522.91354" capture_lex $P487 $P10 = rx482_cur."before"($P487) unless $P10, rx482_fail @@ -6434,11 +7068,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantr491_done: # rx pass rx482_cur."!cursor_pass"(rx482_pos, "assertion:sym<[>") + if_null rx482_debug, debug_421 rx482_cur."!cursor_debug"("PASS ", "assertion:sym<[>", " at pos=", rx482_pos) + debug_421: .return (rx482_cur) rx482_restart: .annotate 'line', 3 + if_null rx482_debug, debug_422 rx482_cur."!cursor_debug"("NEXT ", "assertion:sym<[>") + debug_422: rx482_fail: (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0) lt rx482_pos, -1, rx482_done @@ -6446,14 +7084,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx482_done: rx482_cur."!cursor_fail"() + if_null rx482_debug, debug_423 rx482_cur."!cursor_debug"("FAIL ", "assertion:sym<[>") + debug_423: .return (rx482_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym<[>" :subid("141_1280467470.54449") :method +.sub "!PREFIX__assertion:sym<[>" :subid("141_1282016522.91354") :method .annotate 'line', 3 new $P484, "ResizablePMCArray" push $P484, "" @@ -6462,7 +7102,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block486" :anon :subid("142_1280467470.54449") :method :outer("140_1280467470.54449") +.sub "_block486" :anon :subid("142_1282016522.91354") :method :outer("140_1282016522.91354") .annotate 'line', 160 .local string rx488_tgt .local int rx488_pos @@ -6470,7 +7110,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx488_eos .local int rx488_rep .local pmc rx488_cur + .local pmc rx488_debug (rx488_cur, rx488_pos, rx488_tgt, $I10) = self."!cursor_start"() + getattribute rx488_debug, rx488_cur, "$!debug" .lex unicode:"$\x{a2}", rx488_cur .local pmc match .lex "$/", match @@ -6482,7 +7124,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx488_tgt, rx488_tgt, rx488_off rx488_start: eq $I10, 1, rx488_restart + if_null rx488_debug, debug_417 rx488_cur."!cursor_debug"("START ", "") + debug_417: $I10 = self.'from'() ne $I10, -1, rxscan489_done goto rxscan489_scan @@ -6502,8 +7146,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx488_pos, 1 gt $I11, rx488_eos, rx488_fail sub $I11, rx488_pos, rx488_off - substr $S10, rx488_tgt, $I11, 1 - ne $S10, "[", rx488_fail + ord $I11, rx488_tgt, $I11 + ne $I11, 91, rx488_fail add rx488_pos, 1 goto alt490_end alt490_1: @@ -6513,8 +7157,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx488_pos, 1 gt $I11, rx488_eos, rx488_fail sub $I11, rx488_pos, rx488_off - substr $S10, rx488_tgt, $I11, 1 - ne $S10, "+", rx488_fail + ord $I11, rx488_tgt, $I11 + ne $I11, 43, rx488_fail add rx488_pos, 1 goto alt490_end alt490_2: @@ -6522,16 +7166,20 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx488_pos, 1 gt $I11, rx488_eos, rx488_fail sub $I11, rx488_pos, rx488_off - substr $S10, rx488_tgt, $I11, 1 - ne $S10, "-", rx488_fail + ord $I11, rx488_tgt, $I11 + ne $I11, 45, rx488_fail add rx488_pos, 1 alt490_end: # rx pass rx488_cur."!cursor_pass"(rx488_pos, "") + if_null rx488_debug, debug_418 rx488_cur."!cursor_debug"("PASS ", "", " at pos=", rx488_pos) + debug_418: .return (rx488_cur) rx488_restart: + if_null rx488_debug, debug_419 rx488_cur."!cursor_debug"("NEXT ", "") + debug_419: rx488_fail: (rx488_rep, rx488_pos, $I10, $P10) = rx488_cur."!mark_fail"(0) lt rx488_pos, -1, rx488_done @@ -6539,16 +7187,18 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx488_done: rx488_cur."!cursor_fail"() + if_null rx488_debug, debug_420 rx488_cur."!cursor_debug"("FAIL ", "") + debug_420: .return (rx488_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "cclass_elem" :subid("143_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "cclass_elem" :subid("143_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P505 = "145_1280467470.54449" + .const 'Sub' $P505 = "145_1282016522.91354" capture_lex $P505 .local string rx494_tgt .local int rx494_pos @@ -6556,8 +7206,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx494_eos .local int rx494_rep .local pmc rx494_cur + .local pmc rx494_debug (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"() rx494_cur."!cursor_caparray"("charspec") + getattribute rx494_debug, rx494_cur, "$!debug" .lex unicode:"$\x{a2}", rx494_cur .local pmc match .lex "$/", match @@ -6569,7 +7221,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx494_tgt, rx494_tgt, rx494_off rx494_start: eq $I10, 1, rx494_restart + if_null rx494_debug, debug_424 rx494_cur."!cursor_debug"("START ", "cclass_elem") + debug_424: $I10 = self.'from'() ne $I10, -1, rxscan497_done goto rxscan497_scan @@ -6593,8 +7247,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx494_pos, 1 gt $I11, rx494_eos, rx494_fail sub $I11, rx494_pos, rx494_off - substr $S10, rx494_tgt, $I11, 1 - ne $S10, "+", rx494_fail + ord $I11, rx494_tgt, $I11 + ne $I11, 43, rx494_fail add rx494_pos, 1 goto alt498_end alt498_1: @@ -6604,8 +7258,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx494_pos, 1 gt $I11, rx494_eos, rx494_fail sub $I11, rx494_pos, rx494_off - substr $S10, rx494_tgt, $I11, 1 - ne $S10, "-", rx494_fail + ord $I11, rx494_tgt, $I11 + ne $I11, 45, rx494_fail add rx494_pos, 1 goto alt498_end alt498_2: @@ -6650,8 +7304,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx494_pos, 1 gt $I11, rx494_eos, rx494_fail sub $I11, rx494_pos, rx494_off - substr $S10, rx494_tgt, $I11, 1 - ne $S10, "[", rx494_fail + ord $I11, rx494_tgt, $I11 + ne $I11, 91, rx494_fail add rx494_pos, 1 .annotate 'line', 169 # rx rxquantr503 ** 0..* @@ -6661,7 +7315,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 166 # rx subrule $P505 subtype=capture negate= rx494_cur."!cursor_pos"(rx494_pos) - .const 'Sub' $P505 = "145_1280467470.54449" + .const 'Sub' $P505 = "145_1282016522.91354" capture_lex $P505 $P10 = rx494_cur.$P505() unless $P10, rx494_fail @@ -6690,8 +7344,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx494_pos, 1 gt $I11, rx494_eos, rx494_fail sub $I11, rx494_pos, rx494_off - substr $S10, rx494_tgt, $I11, 1 - ne $S10, "]", rx494_fail + ord $I11, rx494_tgt, $I11 + ne $I11, 93, rx494_fail add rx494_pos, 1 .annotate 'line', 166 goto alt502_end @@ -6741,11 +7395,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 162 # rx pass rx494_cur."!cursor_pass"(rx494_pos, "cclass_elem") + if_null rx494_debug, debug_441 rx494_cur."!cursor_debug"("PASS ", "cclass_elem", " at pos=", rx494_pos) + debug_441: .return (rx494_cur) rx494_restart: .annotate 'line', 3 + if_null rx494_debug, debug_442 rx494_cur."!cursor_debug"("NEXT ", "cclass_elem") + debug_442: rx494_fail: (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0) lt rx494_pos, -1, rx494_done @@ -6753,14 +7411,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx494_done: rx494_cur."!cursor_fail"() + if_null rx494_debug, debug_443 rx494_cur."!cursor_debug"("FAIL ", "cclass_elem") + debug_443: .return (rx494_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__cclass_elem" :subid("144_1280467470.54449") :method +.sub "!PREFIX__cclass_elem" :subid("144_1282016522.91354") :method .annotate 'line', 3 new $P496, "ResizablePMCArray" push $P496, "" @@ -6771,13 +7431,13 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block504" :anon :subid("145_1280467470.54449") :method :outer("143_1280467470.54449") +.sub "_block504" :anon :subid("145_1282016522.91354") :method :outer("143_1282016522.91354") .annotate 'line', 166 - .const 'Sub' $P520 = "148_1280467470.54449" + .const 'Sub' $P520 = "148_1282016522.91354" capture_lex $P520 - .const 'Sub' $P515 = "147_1280467470.54449" + .const 'Sub' $P515 = "147_1282016522.91354" capture_lex $P515 - .const 'Sub' $P511 = "146_1280467470.54449" + .const 'Sub' $P511 = "146_1282016522.91354" capture_lex $P511 .local string rx506_tgt .local int rx506_pos @@ -6785,8 +7445,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx506_eos .local int rx506_rep .local pmc rx506_cur + .local pmc rx506_debug (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"() rx506_cur."!cursor_caparray"("1") + getattribute rx506_debug, rx506_cur, "$!debug" .lex unicode:"$\x{a2}", rx506_cur .local pmc match .lex "$/", match @@ -6798,7 +7460,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx506_tgt, rx506_tgt, rx506_off rx506_start: eq $I10, 1, rx506_restart + if_null rx506_debug, debug_425 rx506_cur."!cursor_debug"("START ", "") + debug_425: $I10 = self.'from'() ne $I10, -1, rxscan507_done goto rxscan507_scan @@ -6823,8 +7487,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx506_pos, 1 gt $I11, rx506_eos, rx506_fail sub $I11, rx506_pos, rx506_off - substr $S10, rx506_tgt, $I11, 1 - ne $S10, "-", rx506_fail + ord $I11, rx506_tgt, $I11 + ne $I11, 45, rx506_fail add rx506_pos, 1 # rx subrule "obs" subtype=method negate= rx506_cur."!cursor_pos"(rx506_pos) @@ -6845,12 +7509,12 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx506_pos, 1 gt $I11, rx506_eos, rx506_fail sub $I11, rx506_pos, rx506_off - substr $S10, rx506_tgt, $I11, 1 - ne $S10, "\\", rx506_fail + ord $I11, rx506_tgt, $I11 + ne $I11, 92, rx506_fail add rx506_pos, 1 # rx subrule $P511 subtype=capture negate= rx506_cur."!cursor_pos"(rx506_pos) - .const 'Sub' $P511 = "146_1280467470.54449" + .const 'Sub' $P511 = "146_1282016522.91354" capture_lex $P511 $P10 = rx506_cur.$P511() unless $P10, rx506_fail @@ -6861,7 +7525,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes alt509_1: # rx subrule $P515 subtype=capture negate= rx506_cur."!cursor_pos"(rx506_pos) - .const 'Sub' $P515 = "147_1280467470.54449" + .const 'Sub' $P515 = "147_1282016522.91354" capture_lex $P515 $P10 = rx506_cur.$P515() unless $P10, rx506_fail @@ -6890,7 +7554,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add rx506_pos, rx506_off, $I11 # rx subrule $P520 subtype=capture negate= rx506_cur."!cursor_pos"(rx506_pos) - .const 'Sub' $P520 = "148_1280467470.54449" + .const 'Sub' $P520 = "148_1282016522.91354" capture_lex $P520 $P10 = rx506_cur.$P520() unless $P10, rx506_fail @@ -6904,10 +7568,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 166 # rx pass rx506_cur."!cursor_pass"(rx506_pos, "") + if_null rx506_debug, debug_438 rx506_cur."!cursor_debug"("PASS ", "", " at pos=", rx506_pos) + debug_438: .return (rx506_cur) rx506_restart: + if_null rx506_debug, debug_439 rx506_cur."!cursor_debug"("NEXT ", "") + debug_439: rx506_fail: (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0) lt rx506_pos, -1, rx506_done @@ -6915,14 +7583,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx506_done: rx506_cur."!cursor_fail"() + if_null rx506_debug, debug_440 rx506_cur."!cursor_debug"("FAIL ", "") + debug_440: .return (rx506_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block510" :anon :subid("146_1280467470.54449") :method :outer("145_1280467470.54449") +.sub "_block510" :anon :subid("146_1282016522.91354") :method :outer("145_1282016522.91354") .annotate 'line', 168 .local string rx512_tgt .local int rx512_pos @@ -6930,7 +7600,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx512_eos .local int rx512_rep .local pmc rx512_cur + .local pmc rx512_debug (rx512_cur, rx512_pos, rx512_tgt, $I10) = self."!cursor_start"() + getattribute rx512_debug, rx512_cur, "$!debug" .lex unicode:"$\x{a2}", rx512_cur .local pmc match .lex "$/", match @@ -6942,7 +7614,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx512_tgt, rx512_tgt, rx512_off rx512_start: eq $I10, 1, rx512_restart + if_null rx512_debug, debug_426 rx512_cur."!cursor_debug"("START ", "") + debug_426: $I10 = self.'from'() ne $I10, -1, rxscan513_done goto rxscan513_scan @@ -6960,10 +7634,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes inc rx512_pos # rx pass rx512_cur."!cursor_pass"(rx512_pos, "") + if_null rx512_debug, debug_427 rx512_cur."!cursor_debug"("PASS ", "", " at pos=", rx512_pos) + debug_427: .return (rx512_cur) rx512_restart: + if_null rx512_debug, debug_428 rx512_cur."!cursor_debug"("NEXT ", "") + debug_428: rx512_fail: (rx512_rep, rx512_pos, $I10, $P10) = rx512_cur."!mark_fail"(0) lt rx512_pos, -1, rx512_done @@ -6971,14 +7649,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx512_done: rx512_cur."!cursor_fail"() + if_null rx512_debug, debug_429 rx512_cur."!cursor_debug"("FAIL ", "") + debug_429: .return (rx512_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block514" :anon :subid("147_1280467470.54449") :method :outer("145_1280467470.54449") +.sub "_block514" :anon :subid("147_1282016522.91354") :method :outer("145_1282016522.91354") .annotate 'line', 168 .local string rx516_tgt .local int rx516_pos @@ -6986,7 +7666,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx516_eos .local int rx516_rep .local pmc rx516_cur + .local pmc rx516_debug (rx516_cur, rx516_pos, rx516_tgt, $I10) = self."!cursor_start"() + getattribute rx516_debug, rx516_cur, "$!debug" .lex unicode:"$\x{a2}", rx516_cur .local pmc match .lex "$/", match @@ -6998,7 +7680,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx516_tgt, rx516_tgt, rx516_off rx516_start: eq $I10, 1, rx516_restart + if_null rx516_debug, debug_430 rx516_cur."!cursor_debug"("START ", "") + debug_430: $I10 = self.'from'() ne $I10, -1, rxscan517_done goto rxscan517_scan @@ -7020,10 +7704,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes inc rx516_pos # rx pass rx516_cur."!cursor_pass"(rx516_pos, "") + if_null rx516_debug, debug_431 rx516_cur."!cursor_debug"("PASS ", "", " at pos=", rx516_pos) + debug_431: .return (rx516_cur) rx516_restart: + if_null rx516_debug, debug_432 rx516_cur."!cursor_debug"("NEXT ", "") + debug_432: rx516_fail: (rx516_rep, rx516_pos, $I10, $P10) = rx516_cur."!mark_fail"(0) lt rx516_pos, -1, rx516_done @@ -7031,14 +7719,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx516_done: rx516_cur."!cursor_fail"() + if_null rx516_debug, debug_433 rx516_cur."!cursor_debug"("FAIL ", "") + debug_433: .return (rx516_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block519" :anon :subid("148_1280467470.54449") :method :outer("145_1280467470.54449") +.sub "_block519" :anon :subid("148_1282016522.91354") :method :outer("145_1282016522.91354") .annotate 'line', 168 .local string rx521_tgt .local int rx521_pos @@ -7046,7 +7736,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx521_eos .local int rx521_rep .local pmc rx521_cur + .local pmc rx521_debug (rx521_cur, rx521_pos, rx521_tgt, $I10) = self."!cursor_start"() + getattribute rx521_debug, rx521_cur, "$!debug" .lex unicode:"$\x{a2}", rx521_cur .local pmc match .lex "$/", match @@ -7058,7 +7750,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx521_tgt, rx521_tgt, rx521_off rx521_start: eq $I10, 1, rx521_restart + if_null rx521_debug, debug_434 rx521_cur."!cursor_debug"("START ", "") + debug_434: $I10 = self.'from'() ne $I10, -1, rxscan522_done goto rxscan522_scan @@ -7076,10 +7770,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes inc rx521_pos # rx pass rx521_cur."!cursor_pass"(rx521_pos, "") + if_null rx521_debug, debug_435 rx521_cur."!cursor_debug"("PASS ", "", " at pos=", rx521_pos) + debug_435: .return (rx521_cur) rx521_restart: + if_null rx521_debug, debug_436 rx521_cur."!cursor_debug"("NEXT ", "") + debug_436: rx521_fail: (rx521_rep, rx521_pos, $I10, $P10) = rx521_cur."!mark_fail"(0) lt rx521_pos, -1, rx521_done @@ -7087,16 +7785,18 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx521_done: rx521_cur."!cursor_fail"() + if_null rx521_debug, debug_437 rx521_cur."!cursor_debug"("FAIL ", "") + debug_437: .return (rx521_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_internal" :subid("149_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "mod_internal" :subid("149_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P536 = "151_1280467470.54449" + .const 'Sub' $P536 = "151_1282016522.91354" capture_lex $P536 .local string rx528_tgt .local int rx528_pos @@ -7104,8 +7804,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx528_eos .local int rx528_rep .local pmc rx528_cur + .local pmc rx528_debug (rx528_cur, rx528_pos, rx528_tgt, $I10) = self."!cursor_start"() rx528_cur."!cursor_caparray"("n") + getattribute rx528_debug, rx528_cur, "$!debug" .lex unicode:"$\x{a2}", rx528_cur .local pmc match .lex "$/", match @@ -7117,7 +7819,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx528_tgt, rx528_tgt, rx528_off rx528_start: eq $I10, 1, rx528_restart + if_null rx528_debug, debug_444 rx528_cur."!cursor_debug"("START ", "mod_internal") + debug_444: $I10 = self.'from'() ne $I10, -1, rxscan532_done goto rxscan532_scan @@ -7139,8 +7843,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx528_pos, 1 gt $I11, rx528_eos, rx528_fail sub $I11, rx528_pos, rx528_off - substr $S10, rx528_tgt, $I11, 1 - ne $S10, ":", rx528_fail + ord $I11, rx528_tgt, $I11 + ne $I11, 58, rx528_fail add rx528_pos, 1 # rx rxquantr534 ** 1..1 set_addr $I10, rxquantr534_done @@ -7148,7 +7852,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantr534_loop: # rx subrule $P536 subtype=capture negate= rx528_cur."!cursor_pos"(rx528_pos) - .const 'Sub' $P536 = "151_1280467470.54449" + .const 'Sub' $P536 = "151_1282016522.91354" capture_lex $P536 $P10 = rx528_cur.$P536() unless $P10, rx528_fail @@ -7186,8 +7890,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx528_pos, 1 gt $I11, rx528_eos, rx528_fail sub $I11, rx528_pos, rx528_off - substr $S10, rx528_tgt, $I11, 1 - ne $S10, ":", rx528_fail + ord $I11, rx528_tgt, $I11 + ne $I11, 58, rx528_fail add rx528_pos, 1 # rx subrule "mod_ident" subtype=capture negate= rx528_cur."!cursor_pos"(rx528_pos) @@ -7204,8 +7908,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx528_pos, 1 gt $I11, rx528_eos, rx528_fail sub $I11, rx528_pos, rx528_off - substr $S10, rx528_tgt, $I11, 1 - ne $S10, "(", rx528_fail + ord $I11, rx528_tgt, $I11 + ne $I11, 40, rx528_fail add rx528_pos, 1 # rx subcapture "n" set_addr $I10, rxcap_542_fail @@ -7231,8 +7935,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx528_pos, 1 gt $I11, rx528_eos, rx528_fail sub $I11, rx528_pos, rx528_off - substr $S10, rx528_tgt, $I11, 1 - ne $S10, ")", rx528_fail + ord $I11, rx528_tgt, $I11 + ne $I11, 41, rx528_fail add rx528_pos, 1 set_addr $I10, rxquantr541_done (rx528_rep) = rx528_cur."!mark_commit"($I10) @@ -7241,11 +7945,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 176 # rx pass rx528_cur."!cursor_pass"(rx528_pos, "mod_internal") + if_null rx528_debug, debug_449 rx528_cur."!cursor_debug"("PASS ", "mod_internal", " at pos=", rx528_pos) + debug_449: .return (rx528_cur) rx528_restart: .annotate 'line', 3 + if_null rx528_debug, debug_450 rx528_cur."!cursor_debug"("NEXT ", "mod_internal") + debug_450: rx528_fail: (rx528_rep, rx528_pos, $I10, $P10) = rx528_cur."!mark_fail"(0) lt rx528_pos, -1, rx528_done @@ -7253,14 +7961,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx528_done: rx528_cur."!cursor_fail"() + if_null rx528_debug, debug_451 rx528_cur."!cursor_debug"("FAIL ", "mod_internal") + debug_451: .return (rx528_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_internal" :subid("150_1280467470.54449") :method +.sub "!PREFIX__mod_internal" :subid("150_1282016522.91354") :method .annotate 'line', 3 $P530 = self."!PREFIX__!subrule"("mod_ident", ":") new $P531, "ResizablePMCArray" @@ -7271,7 +7981,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block535" :anon :subid("151_1280467470.54449") :method :outer("149_1280467470.54449") +.sub "_block535" :anon :subid("151_1282016522.91354") :method :outer("149_1282016522.91354") .annotate 'line', 178 .local string rx537_tgt .local int rx537_pos @@ -7279,7 +7989,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx537_eos .local int rx537_rep .local pmc rx537_cur + .local pmc rx537_debug (rx537_cur, rx537_pos, rx537_tgt, $I10) = self."!cursor_start"() + getattribute rx537_debug, rx537_cur, "$!debug" .lex unicode:"$\x{a2}", rx537_cur .local pmc match .lex "$/", match @@ -7291,7 +8003,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx537_tgt, rx537_tgt, rx537_off rx537_start: eq $I10, 1, rx537_restart + if_null rx537_debug, debug_445 rx537_cur."!cursor_debug"("START ", "") + debug_445: $I10 = self.'from'() ne $I10, -1, rxscan538_done goto rxscan538_scan @@ -7311,8 +8025,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx537_pos, 1 gt $I11, rx537_eos, rx537_fail sub $I11, rx537_pos, rx537_off - substr $S10, rx537_tgt, $I11, 1 - ne $S10, "!", rx537_fail + ord $I11, rx537_tgt, $I11 + ne $I11, 33, rx537_fail add rx537_pos, 1 goto alt539_end alt539_1: @@ -7325,10 +8039,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes alt539_end: # rx pass rx537_cur."!cursor_pass"(rx537_pos, "") + if_null rx537_debug, debug_446 rx537_cur."!cursor_debug"("PASS ", "", " at pos=", rx537_pos) + debug_446: .return (rx537_cur) rx537_restart: + if_null rx537_debug, debug_447 rx537_cur."!cursor_debug"("NEXT ", "") + debug_447: rx537_fail: (rx537_rep, rx537_pos, $I10, $P10) = rx537_cur."!mark_fail"(0) lt rx537_pos, -1, rx537_done @@ -7336,14 +8054,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx537_done: rx537_cur."!cursor_fail"() + if_null rx537_debug, debug_448 rx537_cur."!cursor_debug"("FAIL ", "") + debug_448: .return (rx537_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_ident" :subid("152_1280467470.54449") :method +.sub "mod_ident" :subid("152_1282016522.91354") :method .annotate 'line', 183 $P544 = self."!protoregex"("mod_ident") .return ($P544) @@ -7351,7 +8071,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_ident" :subid("153_1280467470.54449") :method +.sub "!PREFIX__mod_ident" :subid("153_1282016522.91354") :method .annotate 'line', 183 $P546 = self."!PREFIX__!protoregex"("mod_ident") .return ($P546) @@ -7359,7 +8079,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_ident:sym" :subid("154_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "mod_ident:sym" :subid("154_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx548_tgt .local int rx548_pos @@ -7367,7 +8087,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx548_eos .local int rx548_rep .local pmc rx548_cur + .local pmc rx548_debug (rx548_cur, rx548_pos, rx548_tgt, $I10) = self."!cursor_start"() + getattribute rx548_debug, rx548_cur, "$!debug" .lex unicode:"$\x{a2}", rx548_cur .local pmc match .lex "$/", match @@ -7379,7 +8101,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx548_tgt, rx548_tgt, rx548_off rx548_start: eq $I10, 1, rx548_restart + if_null rx548_debug, debug_452 rx548_cur."!cursor_debug"("START ", "mod_ident:sym") + debug_452: $I10 = self.'from'() ne $I10, -1, rxscan551_done goto rxscan551_scan @@ -7400,8 +8124,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx548_pos, 1 gt $I11, rx548_eos, rx548_fail sub $I11, rx548_pos, rx548_off - substr $S10, rx548_tgt, $I11, 1 - ne $S10, "i", rx548_fail + ord $I11, rx548_tgt, $I11 + ne $I11, 105, rx548_fail add rx548_pos, 1 set_addr $I10, rxcap_552_fail ($I12, $I11) = rx548_cur."!mark_peek"($I10) @@ -7430,11 +8154,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantr553_done: # rx pass rx548_cur."!cursor_pass"(rx548_pos, "mod_ident:sym") + if_null rx548_debug, debug_453 rx548_cur."!cursor_debug"("PASS ", "mod_ident:sym", " at pos=", rx548_pos) + debug_453: .return (rx548_cur) rx548_restart: .annotate 'line', 3 + if_null rx548_debug, debug_454 rx548_cur."!cursor_debug"("NEXT ", "mod_ident:sym") + debug_454: rx548_fail: (rx548_rep, rx548_pos, $I10, $P10) = rx548_cur."!mark_fail"(0) lt rx548_pos, -1, rx548_done @@ -7442,14 +8170,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx548_done: rx548_cur."!cursor_fail"() + if_null rx548_debug, debug_455 rx548_cur."!cursor_debug"("FAIL ", "mod_ident:sym") + debug_455: .return (rx548_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_ident:sym" :subid("155_1280467470.54449") :method +.sub "!PREFIX__mod_ident:sym" :subid("155_1282016522.91354") :method .annotate 'line', 3 new $P550, "ResizablePMCArray" push $P550, "i" @@ -7458,7 +8188,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_ident:sym" :subid("156_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "mod_ident:sym" :subid("156_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx555_tgt .local int rx555_pos @@ -7466,7 +8196,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx555_eos .local int rx555_rep .local pmc rx555_cur + .local pmc rx555_debug (rx555_cur, rx555_pos, rx555_tgt, $I10) = self."!cursor_start"() + getattribute rx555_debug, rx555_cur, "$!debug" .lex unicode:"$\x{a2}", rx555_cur .local pmc match .lex "$/", match @@ -7478,7 +8210,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx555_tgt, rx555_tgt, rx555_off rx555_start: eq $I10, 1, rx555_restart + if_null rx555_debug, debug_456 rx555_cur."!cursor_debug"("START ", "mod_ident:sym") + debug_456: $I10 = self.'from'() ne $I10, -1, rxscan558_done goto rxscan558_scan @@ -7499,8 +8233,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx555_pos, 1 gt $I11, rx555_eos, rx555_fail sub $I11, rx555_pos, rx555_off - substr $S10, rx555_tgt, $I11, 1 - ne $S10, "r", rx555_fail + ord $I11, rx555_tgt, $I11 + ne $I11, 114, rx555_fail add rx555_pos, 1 set_addr $I10, rxcap_559_fail ($I12, $I11) = rx555_cur."!mark_peek"($I10) @@ -7529,11 +8263,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantr560_done: # rx pass rx555_cur."!cursor_pass"(rx555_pos, "mod_ident:sym") + if_null rx555_debug, debug_457 rx555_cur."!cursor_debug"("PASS ", "mod_ident:sym", " at pos=", rx555_pos) + debug_457: .return (rx555_cur) rx555_restart: .annotate 'line', 3 + if_null rx555_debug, debug_458 rx555_cur."!cursor_debug"("NEXT ", "mod_ident:sym") + debug_458: rx555_fail: (rx555_rep, rx555_pos, $I10, $P10) = rx555_cur."!mark_fail"(0) lt rx555_pos, -1, rx555_done @@ -7541,14 +8279,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx555_done: rx555_cur."!cursor_fail"() + if_null rx555_debug, debug_459 rx555_cur."!cursor_debug"("FAIL ", "mod_ident:sym") + debug_459: .return (rx555_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_ident:sym" :subid("157_1280467470.54449") :method +.sub "!PREFIX__mod_ident:sym" :subid("157_1282016522.91354") :method .annotate 'line', 3 new $P557, "ResizablePMCArray" push $P557, "r" @@ -7557,7 +8297,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_ident:sym" :subid("158_1280467470.54449") :method :outer("11_1280467470.54449") +.sub "mod_ident:sym" :subid("158_1282016522.91354") :method :outer("11_1282016522.91354") .annotate 'line', 3 .local string rx562_tgt .local int rx562_pos @@ -7565,7 +8305,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local int rx562_eos .local int rx562_rep .local pmc rx562_cur + .local pmc rx562_debug (rx562_cur, rx562_pos, rx562_tgt, $I10) = self."!cursor_start"() + getattribute rx562_debug, rx562_cur, "$!debug" .lex unicode:"$\x{a2}", rx562_cur .local pmc match .lex "$/", match @@ -7577,7 +8319,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx562_tgt, rx562_tgt, rx562_off rx562_start: eq $I10, 1, rx562_restart + if_null rx562_debug, debug_460 rx562_cur."!cursor_debug"("START ", "mod_ident:sym") + debug_460: $I10 = self.'from'() ne $I10, -1, rxscan565_done goto rxscan565_scan @@ -7598,8 +8342,8 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I11, rx562_pos, 1 gt $I11, rx562_eos, rx562_fail sub $I11, rx562_pos, rx562_off - substr $S10, rx562_tgt, $I11, 1 - ne $S10, "s", rx562_fail + ord $I11, rx562_tgt, $I11 + ne $I11, 115, rx562_fail add rx562_pos, 1 set_addr $I10, rxcap_566_fail ($I12, $I11) = rx562_cur."!mark_peek"($I10) @@ -7628,11 +8372,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantr567_done: # rx pass rx562_cur."!cursor_pass"(rx562_pos, "mod_ident:sym") + if_null rx562_debug, debug_461 rx562_cur."!cursor_debug"("PASS ", "mod_ident:sym", " at pos=", rx562_pos) + debug_461: .return (rx562_cur) rx562_restart: .annotate 'line', 3 + if_null rx562_debug, debug_462 rx562_cur."!cursor_debug"("NEXT ", "mod_ident:sym") + debug_462: rx562_fail: (rx562_rep, rx562_pos, $I10, $P10) = rx562_cur."!mark_fail"(0) lt rx562_pos, -1, rx562_done @@ -7640,14 +8388,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx562_done: rx562_cur."!cursor_fail"() + if_null rx562_debug, debug_463 rx562_cur."!cursor_debug"("FAIL ", "mod_ident:sym") + debug_463: .return (rx562_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_ident:sym" :subid("159_1280467470.54449") :method +.sub "!PREFIX__mod_ident:sym" :subid("159_1282016522.91354") :method .annotate 'line', 3 new $P564, "ResizablePMCArray" push $P564, "s" @@ -7656,18 +8406,18 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block568" :load :anon :subid("160_1280467470.54449") +.sub "_block568" :load :anon :subid("160_1282016522.91354") .annotate 'line', 3 - .const 'Sub' $P570 = "11_1280467470.54449" + .const 'Sub' $P570 = "11_1282016522.91354" $P571 = $P570() .return ($P571) .end .namespace [] -.sub "_block573" :load :anon :subid("161_1280467470.54449") +.sub "_block573" :load :anon :subid("161_1282016522.91354") .annotate 'line', 1 - .const 'Sub' $P575 = "10_1280467470.54449" + .const 'Sub' $P575 = "10_1282016522.91354" $P576 = $P575() .return ($P576) .end @@ -7675,7 +8425,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes ### .include 'gen/p6regex-actions.pir' .namespace [] -.sub "_block11" :anon :subid("10_1280467473.99327") +.sub "_block11" :anon :subid("10_1282016526.02169") .annotate 'line', 0 get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" capture_lex $P14 @@ -7692,15 +8442,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes $P1634 = $P14() .annotate 'line', 1 .return ($P1634) - .const 'Sub' $P1636 = "92_1280467473.99327" + .const 'Sub' $P1636 = "92_1282016526.02169" .return ($P1636) .end .namespace [] -.sub "" :load :init :subid("post93") :outer("10_1280467473.99327") +.sub "" :load :init :subid("post93") :outer("10_1282016526.02169") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1280467473.99327" + .const 'Sub' $P12 = "10_1282016526.02169" .local pmc block set block, $P12 $P1639 = get_root_global ["parrot"], "P6metaclass" @@ -7709,117 +8459,117 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block13" :subid("11_1280467473.99327") :outer("10_1280467473.99327") +.sub "_block13" :subid("11_1282016526.02169") :outer("10_1282016526.02169") .annotate 'line', 4 - .const 'Sub' $P1611 = "90_1280467473.99327" + .const 'Sub' $P1611 = "90_1282016526.02169" capture_lex $P1611 - .const 'Sub' $P1591 = "89_1280467473.99327" + .const 'Sub' $P1591 = "89_1282016526.02169" capture_lex $P1591 - .const 'Sub' $P1559 = "88_1280467473.99327" + .const 'Sub' $P1559 = "88_1282016526.02169" capture_lex $P1559 - .const 'Sub' $P1490 = "84_1280467473.99327" + .const 'Sub' $P1490 = "84_1282016526.02169" capture_lex $P1490 - .const 'Sub' $P1422 = "82_1280467473.99327" + .const 'Sub' $P1422 = "82_1282016526.02169" capture_lex $P1422 - .const 'Sub' $P1350 = "79_1280467473.99327" + .const 'Sub' $P1350 = "79_1282016526.02169" capture_lex $P1350 - .const 'Sub' $P1336 = "78_1280467473.99327" + .const 'Sub' $P1336 = "78_1282016526.02169" capture_lex $P1336 - .const 'Sub' $P1312 = "77_1280467473.99327" + .const 'Sub' $P1312 = "77_1282016526.02169" capture_lex $P1312 - .const 'Sub' $P1294 = "76_1280467473.99327" + .const 'Sub' $P1294 = "76_1282016526.02169" capture_lex $P1294 - .const 'Sub' $P1280 = "75_1280467473.99327" + .const 'Sub' $P1280 = "75_1282016526.02169" capture_lex $P1280 - .const 'Sub' $P1267 = "74_1280467473.99327" + .const 'Sub' $P1267 = "74_1282016526.02169" capture_lex $P1267 - .const 'Sub' $P1236 = "73_1280467473.99327" + .const 'Sub' $P1236 = "73_1282016526.02169" capture_lex $P1236 - .const 'Sub' $P1205 = "72_1280467473.99327" + .const 'Sub' $P1205 = "72_1282016526.02169" capture_lex $P1205 - .const 'Sub' $P1189 = "71_1280467473.99327" + .const 'Sub' $P1189 = "71_1282016526.02169" capture_lex $P1189 - .const 'Sub' $P1173 = "70_1280467473.99327" + .const 'Sub' $P1173 = "70_1282016526.02169" capture_lex $P1173 - .const 'Sub' $P1157 = "69_1280467473.99327" + .const 'Sub' $P1157 = "69_1282016526.02169" capture_lex $P1157 - .const 'Sub' $P1141 = "68_1280467473.99327" + .const 'Sub' $P1141 = "68_1282016526.02169" capture_lex $P1141 - .const 'Sub' $P1125 = "67_1280467473.99327" + .const 'Sub' $P1125 = "67_1282016526.02169" capture_lex $P1125 - .const 'Sub' $P1109 = "66_1280467473.99327" + .const 'Sub' $P1109 = "66_1282016526.02169" capture_lex $P1109 - .const 'Sub' $P1093 = "65_1280467473.99327" + .const 'Sub' $P1093 = "65_1282016526.02169" capture_lex $P1093 - .const 'Sub' $P1069 = "64_1280467473.99327" + .const 'Sub' $P1069 = "64_1282016526.02169" capture_lex $P1069 - .const 'Sub' $P1054 = "63_1280467473.99327" + .const 'Sub' $P1054 = "63_1282016526.02169" capture_lex $P1054 - .const 'Sub' $P996 = "62_1280467473.99327" + .const 'Sub' $P996 = "62_1282016526.02169" capture_lex $P996 - .const 'Sub' $P975 = "61_1280467473.99327" + .const 'Sub' $P975 = "61_1282016526.02169" capture_lex $P975 - .const 'Sub' $P953 = "60_1280467473.99327" + .const 'Sub' $P953 = "60_1282016526.02169" capture_lex $P953 - .const 'Sub' $P943 = "59_1280467473.99327" + .const 'Sub' $P943 = "59_1282016526.02169" capture_lex $P943 - .const 'Sub' $P933 = "58_1280467473.99327" + .const 'Sub' $P933 = "58_1282016526.02169" capture_lex $P933 - .const 'Sub' $P923 = "57_1280467473.99327" + .const 'Sub' $P923 = "57_1282016526.02169" capture_lex $P923 - .const 'Sub' $P911 = "56_1280467473.99327" + .const 'Sub' $P911 = "56_1282016526.02169" capture_lex $P911 - .const 'Sub' $P899 = "55_1280467473.99327" + .const 'Sub' $P899 = "55_1282016526.02169" capture_lex $P899 - .const 'Sub' $P887 = "54_1280467473.99327" + .const 'Sub' $P887 = "54_1282016526.02169" capture_lex $P887 - .const 'Sub' $P875 = "53_1280467473.99327" + .const 'Sub' $P875 = "53_1282016526.02169" capture_lex $P875 - .const 'Sub' $P863 = "52_1280467473.99327" + .const 'Sub' $P863 = "52_1282016526.02169" capture_lex $P863 - .const 'Sub' $P851 = "51_1280467473.99327" + .const 'Sub' $P851 = "51_1282016526.02169" capture_lex $P851 - .const 'Sub' $P839 = "50_1280467473.99327" + .const 'Sub' $P839 = "50_1282016526.02169" capture_lex $P839 - .const 'Sub' $P827 = "49_1280467473.99327" + .const 'Sub' $P827 = "49_1282016526.02169" capture_lex $P827 - .const 'Sub' $P799 = "48_1280467473.99327" + .const 'Sub' $P799 = "48_1282016526.02169" capture_lex $P799 - .const 'Sub' $P771 = "47_1280467473.99327" + .const 'Sub' $P771 = "47_1282016526.02169" capture_lex $P771 - .const 'Sub' $P753 = "46_1280467473.99327" + .const 'Sub' $P753 = "46_1282016526.02169" capture_lex $P753 - .const 'Sub' $P743 = "45_1280467473.99327" + .const 'Sub' $P743 = "45_1282016526.02169" capture_lex $P743 - .const 'Sub' $P725 = "44_1280467473.99327" + .const 'Sub' $P725 = "44_1282016526.02169" capture_lex $P725 - .const 'Sub' $P652 = "42_1280467473.99327" + .const 'Sub' $P652 = "42_1282016526.02169" capture_lex $P652 - .const 'Sub' $P635 = "41_1280467473.99327" + .const 'Sub' $P635 = "41_1282016526.02169" capture_lex $P635 - .const 'Sub' $P620 = "40_1280467473.99327" + .const 'Sub' $P620 = "40_1282016526.02169" capture_lex $P620 - .const 'Sub' $P605 = "39_1280467473.99327" + .const 'Sub' $P605 = "39_1282016526.02169" capture_lex $P605 - .const 'Sub' $P579 = "38_1280467473.99327" + .const 'Sub' $P579 = "38_1282016526.02169" capture_lex $P579 - .const 'Sub' $P528 = "36_1280467473.99327" + .const 'Sub' $P528 = "36_1282016526.02169" capture_lex $P528 - .const 'Sub' $P460 = "34_1280467473.99327" + .const 'Sub' $P460 = "34_1282016526.02169" capture_lex $P460 - .const 'Sub' $P404 = "31_1280467473.99327" + .const 'Sub' $P404 = "31_1282016526.02169" capture_lex $P404 - .const 'Sub' $P389 = "30_1280467473.99327" + .const 'Sub' $P389 = "30_1282016526.02169" capture_lex $P389 - .const 'Sub' $P363 = "28_1280467473.99327" + .const 'Sub' $P363 = "28_1282016526.02169" capture_lex $P363 - .const 'Sub' $P346 = "27_1280467473.99327" + .const 'Sub' $P346 = "27_1282016526.02169" capture_lex $P346 - .const 'Sub' $P312 = "26_1280467473.99327" + .const 'Sub' $P312 = "26_1282016526.02169" capture_lex $P312 - .const 'Sub' $P57 = "13_1280467473.99327" + .const 'Sub' $P57 = "13_1282016526.02169" capture_lex $P57 - .const 'Sub' $P16 = "12_1280467473.99327" + .const 'Sub' $P16 = "12_1282016526.02169" capture_lex $P16 get_global $P15, "@MODIFIERS" unless_null $P15, vivify_95 @@ -7827,15 +8577,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes set_global "@MODIFIERS", $P15 vivify_95: .annotate 'line', 492 - .const 'Sub' $P16 = "12_1280467473.99327" + .const 'Sub' $P16 = "12_1282016526.02169" newclosure $P56, $P16 .lex "buildsub", $P56 .annotate 'line', 510 - .const 'Sub' $P57 = "13_1280467473.99327" + .const 'Sub' $P57 = "13_1282016526.02169" newclosure $P311, $P57 .lex "capnames", $P311 .annotate 'line', 576 - .const 'Sub' $P312 = "26_1280467473.99327" + .const 'Sub' $P312 = "26_1282016526.02169" newclosure $P344, $P312 .lex "backmod", $P344 .annotate 'line', 4 @@ -7851,17 +8601,17 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes find_lex $P1589, "capnames" find_lex $P1590, "backmod" .annotate 'line', 589 - .const 'Sub' $P1611 = "90_1280467473.99327" + .const 'Sub' $P1611 = "90_1282016526.02169" newclosure $P1628, $P1611 .annotate 'line', 4 .return ($P1628) - .const 'Sub' $P1630 = "91_1280467473.99327" + .const 'Sub' $P1630 = "91_1282016526.02169" .return ($P1630) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "" :load :init :subid("post94") :outer("11_1280467473.99327") +.sub "" :load :init :subid("post94") :outer("11_1282016526.02169") .annotate 'line', 4 get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" .local pmc block @@ -7878,7 +8628,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "buildsub" :subid("12_1280467473.99327") :outer("11_1280467473.99327") +.sub "buildsub" :subid("12_1282016526.02169") :outer("11_1282016526.02169") .param pmc param_19 .param pmc param_20 :optional .param int has_param_20 :opt_flag @@ -7980,19 +8730,19 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "capnames" :subid("13_1280467473.99327") :outer("11_1280467473.99327") +.sub "capnames" :subid("13_1282016526.02169") :outer("11_1282016526.02169") .param pmc param_60 .param pmc param_61 .annotate 'line', 510 - .const 'Sub' $P286 = "24_1280467473.99327" + .const 'Sub' $P286 = "24_1282016526.02169" capture_lex $P286 - .const 'Sub' $P223 = "21_1280467473.99327" + .const 'Sub' $P223 = "21_1282016526.02169" capture_lex $P223 - .const 'Sub' $P181 = "19_1280467473.99327" + .const 'Sub' $P181 = "19_1282016526.02169" capture_lex $P181 - .const 'Sub' $P139 = "17_1280467473.99327" + .const 'Sub' $P139 = "17_1282016526.02169" capture_lex $P139 - .const 'Sub' $P72 = "14_1280467473.99327" + .const 'Sub' $P72 = "14_1282016526.02169" capture_lex $P72 new $P59, 'ExceptionHandler' set_addr $P59, control_58 @@ -8048,21 +8798,21 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes set $S283, $P282 iseq $I284, $S283, "quant" unless $I284, if_281_end - .const 'Sub' $P286 = "24_1280467473.99327" + .const 'Sub' $P286 = "24_1282016526.02169" capture_lex $P286 $P286() if_281_end: goto if_218_end if_218: .annotate 'line', 548 - .const 'Sub' $P223 = "21_1280467473.99327" + .const 'Sub' $P223 = "21_1282016526.02169" capture_lex $P223 $P223() if_218_end: goto if_171_end if_171: .annotate 'line', 535 - .const 'Sub' $P181 = "19_1280467473.99327" + .const 'Sub' $P181 = "19_1282016526.02169" capture_lex $P181 $P181() if_171_end: @@ -8082,7 +8832,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P133, loop168_done shift $P137, $P133 loop168_redo: - .const 'Sub' $P139 = "17_1280467473.99327" + .const 'Sub' $P139 = "17_1282016526.02169" capture_lex $P139 $P139($P137) loop168_next: @@ -8101,7 +8851,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes goto if_67_end if_67: .annotate 'line', 513 - .const 'Sub' $P72 = "14_1280467473.99327" + .const 'Sub' $P72 = "14_1282016526.02169" capture_lex $P72 $P72() if_67_end: @@ -8126,9 +8876,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block285" :anon :subid("24_1280467473.99327") :outer("13_1280467473.99327") +.sub "_block285" :anon :subid("24_1282016526.02169") :outer("13_1282016526.02169") .annotate 'line', 565 - .const 'Sub' $P297 = "25_1280467473.99327" + .const 'Sub' $P297 = "25_1282016526.02169" capture_lex $P297 .annotate 'line', 566 $P287 = root_new ['parrot';'Hash'] @@ -8157,7 +8907,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P292, loop302_done shift $P295, $P292 loop302_redo: - .const 'Sub' $P297 = "25_1280467473.99327" + .const 'Sub' $P297 = "25_1282016526.02169" capture_lex $P297 $P297($P295) loop302_next: @@ -8187,7 +8937,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block296" :anon :subid("25_1280467473.99327") :outer("24_1280467473.99327") +.sub "_block296" :anon :subid("25_1282016526.02169") :outer("24_1282016526.02169") .param pmc param_298 .annotate 'line', 567 .lex "$_", param_298 @@ -8208,11 +8958,11 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block222" :anon :subid("21_1280467473.99327") :outer("13_1280467473.99327") +.sub "_block222" :anon :subid("21_1282016526.02169") :outer("13_1282016526.02169") .annotate 'line', 548 - .const 'Sub' $P263 = "23_1280467473.99327" + .const 'Sub' $P263 = "23_1282016526.02169" capture_lex $P263 - .const 'Sub' $P235 = "22_1280467473.99327" + .const 'Sub' $P235 = "22_1282016526.02169" capture_lex $P235 .annotate 'line', 549 new $P224, "Undef" @@ -8247,7 +8997,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P230, loop251_done shift $P233, $P230 loop251_redo: - .const 'Sub' $P235 = "22_1280467473.99327" + .const 'Sub' $P235 = "22_1282016526.02169" capture_lex $P235 $P235($P233) loop251_next: @@ -8286,7 +9036,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P258, loop276_done shift $P261, $P258 loop276_redo: - .const 'Sub' $P263 = "23_1280467473.99327" + .const 'Sub' $P263 = "23_1282016526.02169" capture_lex $P263 $P263($P261) loop276_next: @@ -8316,7 +9066,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block234" :anon :subid("22_1280467473.99327") :outer("21_1280467473.99327") +.sub "_block234" :anon :subid("22_1282016526.02169") :outer("21_1282016526.02169") .param pmc param_236 .annotate 'line', 555 .lex "$_", param_236 @@ -8356,7 +9106,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block262" :anon :subid("23_1280467473.99327") :outer("21_1280467473.99327") +.sub "_block262" :anon :subid("23_1282016526.02169") :outer("21_1282016526.02169") .param pmc param_264 .annotate 'line', 560 .lex "$_", param_264 @@ -8397,9 +9147,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block180" :anon :subid("19_1280467473.99327") :outer("13_1280467473.99327") +.sub "_block180" :anon :subid("19_1282016526.02169") :outer("13_1282016526.02169") .annotate 'line', 535 - .const 'Sub' $P199 = "20_1280467473.99327" + .const 'Sub' $P199 = "20_1282016526.02169" capture_lex $P199 .annotate 'line', 536 new $P182, "Undef" @@ -8442,7 +9192,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P194, loop215_done shift $P197, $P194 loop215_redo: - .const 'Sub' $P199 = "20_1280467473.99327" + .const 'Sub' $P199 = "20_1282016526.02169" capture_lex $P199 $P199($P197) loop215_next: @@ -8462,7 +9212,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block198" :anon :subid("20_1280467473.99327") :outer("19_1280467473.99327") +.sub "_block198" :anon :subid("20_1282016526.02169") :outer("19_1282016526.02169") .param pmc param_200 .annotate 'line', 543 .lex "$_", param_200 @@ -8503,10 +9253,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block138" :anon :subid("17_1280467473.99327") :outer("13_1280467473.99327") +.sub "_block138" :anon :subid("17_1282016526.02169") :outer("13_1282016526.02169") .param pmc param_141 .annotate 'line', 527 - .const 'Sub' $P150 = "18_1280467473.99327" + .const 'Sub' $P150 = "18_1282016526.02169" capture_lex $P150 .annotate 'line', 528 $P140 = root_new ['parrot';'Hash'] @@ -8529,7 +9279,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P145, loop163_done shift $P148, $P145 loop163_redo: - .const 'Sub' $P150 = "18_1280467473.99327" + .const 'Sub' $P150 = "18_1282016526.02169" capture_lex $P150 $P150($P148) loop163_next: @@ -8559,7 +9309,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block149" :anon :subid("18_1280467473.99327") :outer("17_1280467473.99327") +.sub "_block149" :anon :subid("18_1282016526.02169") :outer("17_1282016526.02169") .param pmc param_151 .annotate 'line', 529 .lex "$_", param_151 @@ -8600,9 +9350,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block71" :anon :subid("14_1280467473.99327") :outer("13_1280467473.99327") +.sub "_block71" :anon :subid("14_1282016526.02169") :outer("13_1282016526.02169") .annotate 'line', 513 - .const 'Sub' $P81 = "15_1280467473.99327" + .const 'Sub' $P81 = "15_1282016526.02169" capture_lex $P81 .annotate 'line', 514 new $P73, "Undef" @@ -8623,7 +9373,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P75, loop125_done shift $P79, $P75 loop125_redo: - .const 'Sub' $P81 = "15_1280467473.99327" + .const 'Sub' $P81 = "15_1282016526.02169" capture_lex $P81 $P81($P79) loop125_next: @@ -8647,10 +9397,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block80" :anon :subid("15_1280467473.99327") :outer("14_1280467473.99327") +.sub "_block80" :anon :subid("15_1282016526.02169") :outer("14_1282016526.02169") .param pmc param_83 .annotate 'line', 515 - .const 'Sub' $P92 = "16_1280467473.99327" + .const 'Sub' $P92 = "16_1282016526.02169" capture_lex $P92 .annotate 'line', 516 $P82 = root_new ['parrot';'Hash'] @@ -8673,7 +9423,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P87, loop112_done shift $P90, $P87 loop112_redo: - .const 'Sub' $P92 = "16_1280467473.99327" + .const 'Sub' $P92 = "16_1282016526.02169" capture_lex $P92 $P92($P90) loop112_next: @@ -8722,7 +9472,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block91" :anon :subid("16_1280467473.99327") :outer("15_1280467473.99327") +.sub "_block91" :anon :subid("16_1282016526.02169") :outer("15_1282016526.02169") .param pmc param_93 .annotate 'line', 517 .lex "$_", param_93 @@ -8782,7 +9532,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backmod" :subid("26_1280467473.99327") :outer("11_1280467473.99327") +.sub "backmod" :subid("26_1282016526.02169") :outer("11_1282016526.02169") .param pmc param_315 .param pmc param_316 .annotate 'line', 576 @@ -8857,7 +9607,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "arg" :subid("27_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "arg" :subid("27_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_349 .annotate 'line', 14 new $P348, 'ExceptionHandler' @@ -8914,10 +9664,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "arglist" :subid("28_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "arglist" :subid("28_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_366 .annotate 'line', 18 - .const 'Sub' $P376 = "29_1280467473.99327" + .const 'Sub' $P376 = "29_1282016526.02169" capture_lex $P376 new $P365, 'ExceptionHandler' set_addr $P365, control_364 @@ -8951,7 +9701,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P370, loop382_done shift $P374, $P370 loop382_redo: - .const 'Sub' $P376 = "29_1280467473.99327" + .const 'Sub' $P376 = "29_1282016526.02169" capture_lex $P376 $P376($P374) loop382_next: @@ -8980,7 +9730,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block375" :anon :subid("29_1280467473.99327") :outer("28_1280467473.99327") +.sub "_block375" :anon :subid("29_1282016526.02169") :outer("28_1282016526.02169") .param pmc param_377 .annotate 'line', 20 .lex "$_", param_377 @@ -8994,7 +9744,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "TOP" :subid("30_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "TOP" :subid("30_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_392 .annotate 'line', 24 new $P391, 'ExceptionHandler' @@ -9037,14 +9787,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "nibbler" :subid("31_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "nibbler" :subid("31_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_407 .param pmc param_408 :optional .param int has_param_408 :opt_flag .annotate 'line', 30 - .const 'Sub' $P443 = "33_1280467473.99327" + .const 'Sub' $P443 = "33_1282016526.02169" capture_lex $P443 - .const 'Sub' $P416 = "32_1280467473.99327" + .const 'Sub' $P416 = "32_1282016526.02169" capture_lex $P416 new $P406, 'ExceptionHandler' set_addr $P406, control_405 @@ -9065,7 +9815,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes set $S413, $P412 iseq $I414, $S413, "open" unless $I414, if_411_end - .const 'Sub' $P416 = "32_1280467473.99327" + .const 'Sub' $P416 = "32_1282016526.02169" capture_lex $P416 $P416() if_411_end: @@ -9128,7 +9878,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P437, loop449_done shift $P441, $P437 loop449_redo: - .const 'Sub' $P443 = "33_1280467473.99327" + .const 'Sub' $P443 = "33_1282016526.02169" capture_lex $P443 $P443($P441) loop449_next: @@ -9159,7 +9909,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block415" :anon :subid("32_1280467473.99327") :outer("31_1280467473.99327") +.sub "_block415" :anon :subid("32_1282016526.02169") :outer("31_1282016526.02169") .annotate 'line', 32 $P417 = root_new ['parrot';'Hash'] .lex "%old", $P417 @@ -9197,7 +9947,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block442" :anon :subid("33_1280467473.99327") :outer("31_1280467473.99327") +.sub "_block442" :anon :subid("33_1282016526.02169") :outer("31_1282016526.02169") .param pmc param_444 .annotate 'line', 42 .lex "$_", param_444 @@ -9213,10 +9963,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "termish" :subid("34_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "termish" :subid("34_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_463 .annotate 'line', 52 - .const 'Sub' $P476 = "35_1280467473.99327" + .const 'Sub' $P476 = "35_1282016526.02169" capture_lex $P476 new $P462, 'ExceptionHandler' set_addr $P462, control_461 @@ -9259,7 +10009,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P470, loop521_done shift $P474, $P470 loop521_redo: - .const 'Sub' $P476 = "35_1280467473.99327" + .const 'Sub' $P476 = "35_1282016526.02169" capture_lex $P476 $P476($P474) loop521_next: @@ -9288,7 +10038,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block475" :anon :subid("35_1280467473.99327") :outer("34_1280467473.99327") +.sub "_block475" :anon :subid("35_1282016526.02169") :outer("34_1282016526.02169") .param pmc param_478 .annotate 'line', 56 new $P477, "Undef" @@ -9416,10 +10166,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "quantified_atom" :subid("36_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "quantified_atom" :subid("36_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_531 .annotate 'line', 73 - .const 'Sub' $P540 = "37_1280467473.99327" + .const 'Sub' $P540 = "37_1282016526.02169" capture_lex $P540 new $P530, 'ExceptionHandler' set_addr $P530, control_529 @@ -9482,7 +10232,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes goto if_536_end if_536: .annotate 'line', 75 - .const 'Sub' $P540 = "37_1280467473.99327" + .const 'Sub' $P540 = "37_1282016526.02169" capture_lex $P540 $P540() if_536_end: @@ -9536,7 +10286,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block539" :anon :subid("37_1280467473.99327") :outer("36_1280467473.99327") +.sub "_block539" :anon :subid("37_1282016526.02169") :outer("36_1282016526.02169") .annotate 'line', 77 new $P541, "Undef" .lex "$qast", $P541 @@ -9577,7 +10327,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "atom" :subid("38_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "atom" :subid("38_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_582 .annotate 'line', 88 new $P581, 'ExceptionHandler' @@ -9656,7 +10406,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "quantifier:sym<*>" :subid("39_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "quantifier:sym<*>" :subid("39_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_608 .annotate 'line', 98 new $P607, 'ExceptionHandler' @@ -9697,7 +10447,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "quantifier:sym<+>" :subid("40_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "quantifier:sym<+>" :subid("40_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_623 .annotate 'line', 103 new $P622, 'ExceptionHandler' @@ -9738,7 +10488,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "quantifier:sym" :subid("41_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "quantifier:sym" :subid("41_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_638 .annotate 'line', 108 new $P637, 'ExceptionHandler' @@ -9783,10 +10533,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "quantifier:sym<**>" :subid("42_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "quantifier:sym<**>" :subid("42_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_655 .annotate 'line', 114 - .const 'Sub' $P670 = "43_1280467473.99327" + .const 'Sub' $P670 = "43_1282016526.02169" capture_lex $P670 new $P654, 'ExceptionHandler' set_addr $P654, control_653 @@ -9924,7 +10674,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes goto if_666_end if_666: .annotate 'line', 117 - .const 'Sub' $P670 = "43_1280467473.99327" + .const 'Sub' $P670 = "43_1282016526.02169" capture_lex $P670 $P670() if_666_end: @@ -9952,7 +10702,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block669" :anon :subid("43_1280467473.99327") :outer("42_1280467473.99327") +.sub "_block669" :anon :subid("43_1282016526.02169") :outer("42_1282016526.02169") .annotate 'line', 118 new $P671, "Undef" .lex "$ast", $P671 @@ -9995,7 +10745,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("44_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym" :subid("44_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_728 .annotate 'line', 143 new $P727, 'ExceptionHandler' @@ -10048,7 +10798,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<[ ]>" :subid("45_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<[ ]>" :subid("45_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_746 .annotate 'line', 152 new $P745, 'ExceptionHandler' @@ -10081,7 +10831,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<( )>" :subid("46_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<( )>" :subid("46_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_756 .annotate 'line', 156 new $P755, 'ExceptionHandler' @@ -10130,7 +10880,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<'>" :subid("47_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<'>" :subid("47_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_774 .annotate 'line', 163 new $P773, 'ExceptionHandler' @@ -10204,7 +10954,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<\">" :subid("48_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<\">" :subid("48_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_802 .annotate 'line', 171 new $P801, 'ExceptionHandler' @@ -10278,7 +11028,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<.>" :subid("49_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<.>" :subid("49_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_830 .annotate 'line', 179 new $P829, 'ExceptionHandler' @@ -10310,7 +11060,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<^>" :subid("50_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<^>" :subid("50_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_842 .annotate 'line', 184 new $P841, 'ExceptionHandler' @@ -10342,7 +11092,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<^^>" :subid("51_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<^^>" :subid("51_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_854 .annotate 'line', 189 new $P853, 'ExceptionHandler' @@ -10374,7 +11124,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<$>" :subid("52_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<$>" :subid("52_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_866 .annotate 'line', 194 new $P865, 'ExceptionHandler' @@ -10406,7 +11156,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<$$>" :subid("53_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<$$>" :subid("53_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_878 .annotate 'line', 199 new $P877, 'ExceptionHandler' @@ -10438,7 +11188,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<:::>" :subid("54_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<:::>" :subid("54_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_890 .annotate 'line', 204 new $P889, 'ExceptionHandler' @@ -10470,7 +11220,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("55_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym" :subid("55_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_902 .annotate 'line', 209 new $P901, 'ExceptionHandler' @@ -10502,7 +11252,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("56_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym" :subid("56_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_914 .annotate 'line', 214 new $P913, 'ExceptionHandler' @@ -10534,7 +11284,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("57_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym" :subid("57_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_926 .annotate 'line', 219 new $P925, 'ExceptionHandler' @@ -10567,7 +11317,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("58_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym" :subid("58_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_936 .annotate 'line', 223 new $P935, 'ExceptionHandler' @@ -10600,7 +11350,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("59_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym" :subid("59_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_946 .annotate 'line', 227 new $P945, 'ExceptionHandler' @@ -10633,7 +11383,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<~>" :subid("60_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<~>" :subid("60_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_956 .annotate 'line', 231 new $P955, 'ExceptionHandler' @@ -10696,7 +11446,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<{*}>" :subid("61_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym<{*}>" :subid("61_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_978 .annotate 'line', 244 new $P977, 'ExceptionHandler' @@ -10758,7 +11508,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("62_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym" :subid("62_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_999 .annotate 'line', 251 new $P998, 'ExceptionHandler' @@ -10921,7 +11671,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("63_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "metachar:sym" :subid("63_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1057 .annotate 'line', 271 new $P1056, 'ExceptionHandler' @@ -10961,7 +11711,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("64_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("64_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1072 .annotate 'line', 279 new $P1071, 'ExceptionHandler' @@ -11028,7 +11778,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("65_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("65_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1096 .annotate 'line', 285 new $P1095, 'ExceptionHandler' @@ -11072,7 +11822,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("66_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("66_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1112 .annotate 'line', 291 new $P1111, 'ExceptionHandler' @@ -11116,7 +11866,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("67_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("67_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1128 .annotate 'line', 297 new $P1127, 'ExceptionHandler' @@ -11160,7 +11910,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("68_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("68_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1144 .annotate 'line', 303 new $P1143, 'ExceptionHandler' @@ -11204,7 +11954,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("69_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("69_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1160 .annotate 'line', 309 new $P1159, 'ExceptionHandler' @@ -11248,7 +11998,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("70_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("70_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1176 .annotate 'line', 315 new $P1175, 'ExceptionHandler' @@ -11292,7 +12042,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("71_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("71_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1192 .annotate 'line', 321 new $P1191, 'ExceptionHandler' @@ -11336,7 +12086,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("72_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("72_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1208 .annotate 'line', 328 new $P1207, 'ExceptionHandler' @@ -11420,7 +12170,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("73_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("73_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1239 .annotate 'line', 337 new $P1238, 'ExceptionHandler' @@ -11504,7 +12254,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("74_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("74_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1270 .annotate 'line', 346 new $P1269, 'ExceptionHandler' @@ -11540,7 +12290,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("75_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "backslash:sym" :subid("75_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1283 .annotate 'line', 350 new $P1282, 'ExceptionHandler' @@ -11574,7 +12324,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("76_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "assertion:sym" :subid("76_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1297 .annotate 'line', 356 new $P1296, 'ExceptionHandler' @@ -11635,7 +12385,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("77_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "assertion:sym" :subid("77_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1315 .annotate 'line', 366 new $P1314, 'ExceptionHandler' @@ -11704,7 +12454,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("78_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "assertion:sym" :subid("78_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1339 .annotate 'line', 379 new $P1338, 'ExceptionHandler' @@ -11748,12 +12498,12 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("79_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "assertion:sym" :subid("79_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1353 .annotate 'line', 386 - .const 'Sub' $P1410 = "81_1280467473.99327" + .const 'Sub' $P1410 = "81_1282016526.02169" capture_lex $P1410 - .const 'Sub' $P1376 = "80_1280467473.99327" + .const 'Sub' $P1376 = "80_1282016526.02169" capture_lex $P1376 new $P1352, 'ExceptionHandler' set_addr $P1352, control_1351 @@ -11847,7 +12597,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P1401, loop1415_done shift $P1408, $P1401 loop1415_redo: - .const 'Sub' $P1410 = "81_1280467473.99327" + .const 'Sub' $P1410 = "81_1282016526.02169" capture_lex $P1410 $P1410($P1408) loop1415_next: @@ -11887,7 +12637,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes goto if_1371_end if_1371: .annotate 'line', 393 - .const 'Sub' $P1376 = "80_1280467473.99327" + .const 'Sub' $P1376 = "80_1282016526.02169" capture_lex $P1376 $P1376() if_1371_end: @@ -11929,7 +12679,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1409" :anon :subid("81_1280467473.99327") :outer("79_1280467473.99327") +.sub "_block1409" :anon :subid("81_1282016526.02169") :outer("79_1282016526.02169") .param pmc param_1411 .annotate 'line', 414 .lex "$_", param_1411 @@ -11941,7 +12691,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1375" :anon :subid("80_1280467473.99327") :outer("79_1280467473.99327") +.sub "_block1375" :anon :subid("80_1282016526.02169") :outer("79_1282016526.02169") .annotate 'line', 394 new $P1377, "Undef" .lex "$regexsym", $P1377 @@ -11973,10 +12723,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym<[>" :subid("82_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "assertion:sym<[>" :subid("82_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1425 .annotate 'line', 420 - .const 'Sub' $P1460 = "83_1280467473.99327" + .const 'Sub' $P1460 = "83_1282016526.02169" capture_lex $P1460 new $P1424, 'ExceptionHandler' set_addr $P1424, control_1423 @@ -12068,7 +12818,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes islt $I1458, $N1455, $N1457 unless $I1458, loop1483_done loop1483_redo: - .const 'Sub' $P1460 = "83_1280467473.99327" + .const 'Sub' $P1460 = "83_1282016526.02169" capture_lex $P1460 $P1460() loop1483_next: @@ -12096,7 +12846,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1459" :anon :subid("83_1280467473.99327") :outer("82_1280467473.99327") +.sub "_block1459" :anon :subid("83_1282016526.02169") :outer("82_1282016526.02169") .annotate 'line', 434 new $P1461, "Undef" .lex "$ast", $P1461 @@ -12148,12 +12898,12 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "cclass_elem" :subid("84_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "cclass_elem" :subid("84_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1493 .annotate 'line', 447 - .const 'Sub' $P1518 = "86_1280467473.99327" + .const 'Sub' $P1518 = "86_1282016526.02169" capture_lex $P1518 - .const 'Sub' $P1502 = "85_1280467473.99327" + .const 'Sub' $P1502 = "85_1282016526.02169" capture_lex $P1502 new $P1492, 'ExceptionHandler' set_addr $P1492, control_1491 @@ -12202,7 +12952,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P1512, loop1543_done shift $P1516, $P1512 loop1543_redo: - .const 'Sub' $P1518 = "86_1280467473.99327" + .const 'Sub' $P1518 = "86_1282016526.02169" capture_lex $P1518 $P1518($P1516) loop1543_next: @@ -12226,7 +12976,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes goto if_1498_end if_1498: .annotate 'line', 450 - .const 'Sub' $P1502 = "85_1280467473.99327" + .const 'Sub' $P1502 = "85_1282016526.02169" capture_lex $P1502 $P1502() if_1498_end: @@ -12258,10 +13008,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1517" :anon :subid("86_1280467473.99327") :outer("84_1280467473.99327") +.sub "_block1517" :anon :subid("86_1282016526.02169") :outer("84_1282016526.02169") .param pmc param_1519 .annotate 'line', 454 - .const 'Sub' $P1525 = "87_1280467473.99327" + .const 'Sub' $P1525 = "87_1282016526.02169" capture_lex $P1525 .lex "$_", param_1519 .annotate 'line', 455 @@ -12290,7 +13040,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 455 goto if_1521_end if_1521: - .const 'Sub' $P1525 = "87_1280467473.99327" + .const 'Sub' $P1525 = "87_1282016526.02169" capture_lex $P1525 $P1538 = $P1525() set $P1520, $P1538 @@ -12301,7 +13051,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1524" :anon :subid("87_1280467473.99327") :outer("86_1280467473.99327") +.sub "_block1524" :anon :subid("87_1282016526.02169") :outer("86_1282016526.02169") .annotate 'line', 456 new $P1526, "Undef" .lex "$a", $P1526 @@ -12365,7 +13115,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1501" :anon :subid("85_1280467473.99327") :outer("84_1280467473.99327") +.sub "_block1501" :anon :subid("85_1282016526.02169") :outer("84_1282016526.02169") .annotate 'line', 451 new $P1503, "Undef" .lex "$name", $P1503 @@ -12394,7 +13144,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "mod_internal" :subid("88_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "mod_internal" :subid("88_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1562 .annotate 'line', 485 new $P1561, 'ExceptionHandler' @@ -12493,7 +13243,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "subrule_alias" :subid("89_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "subrule_alias" :subid("89_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1594 .param pmc param_1595 .annotate 'line', 583 @@ -12539,7 +13289,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "named_assertion" :subid("90_1280467473.99327") :method :outer("11_1280467473.99327") +.sub "named_assertion" :subid("90_1282016526.02169") :method :outer("11_1282016526.02169") .param pmc param_1614 .annotate 'line', 589 new $P1613, 'ExceptionHandler' @@ -12586,18 +13336,18 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1629" :load :anon :subid("91_1280467473.99327") +.sub "_block1629" :load :anon :subid("91_1282016526.02169") .annotate 'line', 4 - .const 'Sub' $P1631 = "11_1280467473.99327" + .const 'Sub' $P1631 = "11_1282016526.02169" $P1632 = $P1631() .return ($P1632) .end .namespace [] -.sub "_block1635" :load :anon :subid("92_1280467473.99327") +.sub "_block1635" :load :anon :subid("92_1282016526.02169") .annotate 'line', 1 - .const 'Sub' $P1637 = "10_1280467473.99327" + .const 'Sub' $P1637 = "10_1282016526.02169" $P1638 = $P1637() .return ($P1638) .end diff --git a/ext/nqp-rx/src/stage0/Regex-s0.pir b/ext/nqp-rx/src/stage0/Regex-s0.pir index 0b6e923edf..ff0e8087f2 100644 --- a/ext/nqp-rx/src/stage0/Regex-s0.pir +++ b/ext/nqp-rx/src/stage0/Regex-s0.pir @@ -1197,11 +1197,20 @@ Perform a match for protoregex C. .sub '!protoregex' :method .param string name + .local pmc debug + debug = getattribute self, '$!debug' + if null debug goto have_debug + if debug goto have_debug + null debug + have_debug: + .local pmc tokrx, toklen (tokrx, toklen) = self.'!protoregex_tokrx'(name) have_tokrx: + if null debug goto debug_skip_1 self.'!cursor_debug'('PROTO ', name) + debug_skip_1: # If there are no entries at all for this protoregex, we fail outright. unless tokrx goto fail @@ -1219,9 +1228,12 @@ Perform a match for protoregex C. token1 = substr target, pos, 1 $I0 = toklen[token1] token = substr target, pos, $I0 + + if null debug goto debug_skip_2 $S0 = escape token $S1 = escape token1 self.'!cursor_debug'(' token1="', $S1, '", token="', $S0, '"') + debug_skip_2: # Create a hash to keep track of the methods we've already called, # so that we don't end up calling it twice. @@ -1267,11 +1279,17 @@ Perform a match for protoregex C. done: pos = result.'pos'() + + if null debug goto debug_skip_3 self.'!cursor_debug'('PASS ', name, ' at pos=', pos) + debug_skip_3: + .return (result) fail: + if null debug goto debug_skip_4 self.'!cursor_debug'('FAIL ', name) + debug_skip_4: unless null result goto fail_1 result = self.'!cursor_start'() result.'!cursor_fail'() @@ -2122,7 +2140,7 @@ An alternate dump output for a Match object and all of its subcaptures. # vim: expandtab shiftwidth=4 ft=pir: ### .include 'src/PAST/Regex.pir' -# $Id$ +# $Id: Regex.pir 41578 2009-09-30 14:45:23Z pmichaud $ =head1 NAME @@ -2495,7 +2513,7 @@ Return the POST representation of the regex AST rooted by C. .local string prefix, rname, rtype prefix = self.'unique'('rx') concat prefix, '_' - $P0 = split ' ', 'tgt string pos int off int eos int rep int cur pmc' + $P0 = split ' ', 'tgt string pos int off int eos int rep int cur pmc debug pmc' $P1 = iter $P0 iter_loop: unless $P1 goto iter_done @@ -2539,8 +2557,8 @@ Return the POST representation of the regex AST rooted by C. goto capnames_loop capnames_done: - .local string cur, rep, pos, tgt, off, eos - (cur, rep, pos, tgt, off, eos) = self.'!rxregs'('cur rep pos tgt off eos') + .local string cur, rep, pos, tgt, off, eos, debug + (cur, rep, pos, tgt, off, eos, debug) = self.'!rxregs'('cur rep pos tgt off eos debug') unless regexname goto peek_done .local pmc tpast, token, tpost @@ -2572,6 +2590,7 @@ Return the POST representation of the regex AST rooted by C. self.'!cursorop'(ops, '!cursor_caparray', 0, caparray :flat) caparray_skip: + ops.'push_pirop'('getattribute', debug, cur, '"$!debug"') ops.'push_pirop'('.lex', 'unicode:"$\x{a2}"', cur) ops.'push_pirop'('.local pmc', 'match') ops.'push_pirop'('.lex', '"$/"', 'match') @@ -2631,6 +2650,13 @@ are passed to the function as input arguments. .param int retelems .param pmc args :slurpy + $S0 = concat '!cursorop_', func + $I0 = can self, $S0 + unless $I0 goto cursorop_default + $P0 = self.$S0(ops, func, retelems, args :flat) + unless null $P0 goto done + + cursorop_default: if retelems < 1 goto result_done .local pmc retargs retargs = new ['ResizableStringArray'] @@ -2658,6 +2684,23 @@ are passed to the function as input arguments. .return (ops) .end +.sub '!cursorop_!cursor_debug' :method + .param pmc ops + .param string func + .param int retelems + .param pmc args :slurpy + + .local pmc cur, debug, debuglabel + $P99 = get_hll_global ['POST'], 'Label' + debuglabel = $P99.'new'('name'=>'debug_') + (cur, debug) = self.'!rxregs'('cur debug') + ops.'push_pirop'('if_null', debug, debuglabel) + $S0 = self.'escape'(func) + ops.'push_pirop'('callmethod', $S0, cur, args :flat) + ops.'push'(debuglabel) + .return (ops) +.end + =item !rxregs(keystr) @@ -3165,7 +3208,7 @@ second child of this node. ops.'push_pirop'('inline', subtype, $S0, 'inline'=>' # rx literal %0 %1') ops.'push'(lpost) - .local int litlen + .local string litlen if litconst goto litlen_const litlen = '$I10' ops.'push_pirop'('length', '$I10', lpost) @@ -3182,12 +3225,23 @@ second child of this node. # compute string to be matched and fail if mismatch ops.'push_pirop'('sub', '$I11', pos, off) + if ignorecase goto literal_ignorecase + if litlen == "1" goto literal_1 + ops.'push_pirop'('substr', '$S10', tgt, '$I11', litlen) + ops.'push_pirop'('ne', '$S10', lpost, fail) + goto literal_pass + literal_1: + $S0 = lpast + $I0 = ord $S0 + ops.'push_pirop'('ord', '$I11', tgt, '$I11') + ops.'push_pirop'('ne', '$I11', $I0, fail) + goto literal_pass + literal_ignorecase: ops.'push_pirop'('substr', '$S10', tgt, '$I11', litlen) - unless ignorecase goto literal_test ops.'push_pirop'('downcase', '$S10', '$S10') - literal_test: ops.'push_pirop'('ne', '$S10', lpost, fail) + literal_pass: # increase position by literal length and move on ops.'push_pirop'('add', pos, litlen) done: From 049413cc64a134a7d6e62bdccedd387fe6e66721 Mon Sep 17 00:00:00 2001 From: Andy Lester Date: Tue, 17 Aug 2010 04:41:28 +0000 Subject: [PATCH 015/165] more function annotations. Thanks, GCC! git-svn-id: https://svn.parrot.org/parrot/trunk@48546 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/call.h | 20 +++++++++++++++----- src/call/context.c | 35 ++++++++++++++++++++++------------- 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/include/parrot/call.h b/include/parrot/call.h index bbca758e11..5637d695ed 100644 --- a/include/parrot/call.h +++ b/include/parrot/call.h @@ -334,45 +334,54 @@ void Parrot_clear_s(PARROT_INTERP) __attribute__nonnull__(1); PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL FLOATVAL * Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, - ARGIN(PMC *ctx), + ARGIN(const PMC *ctx), UINTVAL idx) __attribute__nonnull__(1) __attribute__nonnull__(2); PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL INTVAL * Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, - ARGIN(PMC *ctx), + ARGIN(const PMC *ctx), UINTVAL idx) __attribute__nonnull__(1) __attribute__nonnull__(2); PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL PMC ** Parrot_pcc_get_PMC_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx) __attribute__nonnull__(1) __attribute__nonnull__(2); PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL -Regs_ni* Parrot_pcc_get_regs_ni(PARROT_INTERP, ARGIN(PMC *ctx)) +Regs_ni* Parrot_pcc_get_regs_ni(PARROT_INTERP, ARGIN(const PMC *ctx)) __attribute__nonnull__(1) __attribute__nonnull__(2); PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL Regs_ps* Parrot_pcc_get_regs_ps(PARROT_INTERP, ARGIN(PMC *ctx)) __attribute__nonnull__(1) __attribute__nonnull__(2); PARROT_EXPORT -UINTVAL Parrot_pcc_get_regs_used(PARROT_INTERP, ARGIN(PMC *ctx), int type) +PARROT_PURE_FUNCTION +UINTVAL Parrot_pcc_get_regs_used(PARROT_INTERP, + ARGIN(const PMC *ctx), + int type) __attribute__nonnull__(1) __attribute__nonnull__(2); PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL STRING ** Parrot_pcc_get_STRING_reg(PARROT_INTERP, ARGIN(PMC *ctx), @@ -381,8 +390,9 @@ STRING ** Parrot_pcc_get_STRING_reg(PARROT_INTERP, __attribute__nonnull__(2); PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CAN_RETURN_NULL -PMC* Parrot_pcc_get_sub(PARROT_INTERP, ARGIN(PMC *ctx)) +PMC* Parrot_pcc_get_sub(PARROT_INTERP, ARGIN(const PMC *ctx)) __attribute__nonnull__(1) __attribute__nonnull__(2); diff --git a/src/call/context.c b/src/call/context.c index 54d31736d7..563f73111a 100644 --- a/src/call/context.c +++ b/src/call/context.c @@ -122,7 +122,7 @@ static size_t Parrot_pcc_calculate_registers_size(PARROT_INTERP, =over 4 -=item C +=item C Get Sub executed inside Context. @@ -131,12 +131,13 @@ Get Sub executed inside Context. */ PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CAN_RETURN_NULL PMC* -Parrot_pcc_get_sub(PARROT_INTERP, ARGIN(PMC *ctx)) +Parrot_pcc_get_sub(PARROT_INTERP, ARGIN(const PMC *ctx)) { ASSERT_ARGS(Parrot_pcc_get_sub) - const Parrot_Context *c = CONTEXT_STRUCT(ctx); + const Parrot_Context * const c = CONTEXT_STRUCT(ctx); return c->current_sub; } @@ -687,8 +688,8 @@ Parrot_clear_n(PARROT_INTERP) /* -=item C +=item C Get pointer to INTVAL register. @@ -697,9 +698,10 @@ Get pointer to INTVAL register. */ PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL INTVAL * -Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx) +Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, ARGIN(const PMC *ctx), UINTVAL idx) { ASSERT_ARGS(Parrot_pcc_get_INTVAL_reg) PARROT_ASSERT(Parrot_pcc_get_regs_used(interp, ctx, REGNO_INT) > idx); @@ -708,8 +710,8 @@ Parrot_pcc_get_INTVAL_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx) /* -=item C +=item C Get pointer to FLOATVAL register. @@ -718,9 +720,10 @@ Get pointer to FLOATVAL register. */ PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL FLOATVAL * -Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx) +Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP, ARGIN(const PMC *ctx), UINTVAL idx) { ASSERT_ARGS(Parrot_pcc_get_FLOATVAL_reg) PARROT_ASSERT(Parrot_pcc_get_regs_used(interp, ctx, REGNO_NUM) > idx); @@ -739,6 +742,7 @@ Get pointer to STRING register. */ PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL STRING ** Parrot_pcc_get_STRING_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx) @@ -759,6 +763,7 @@ Get pointer to PMC register. */ PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL PMC ** Parrot_pcc_get_PMC_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx) @@ -770,7 +775,8 @@ Parrot_pcc_get_PMC_reg(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL idx) /* -=item C +=item C Return number of used registers of particular type. @@ -778,8 +784,9 @@ Return number of used registers of particular type. */ PARROT_EXPORT +PARROT_PURE_FUNCTION UINTVAL -Parrot_pcc_get_regs_used(PARROT_INTERP, ARGIN(PMC *ctx), int type) +Parrot_pcc_get_regs_used(PARROT_INTERP, ARGIN(const PMC *ctx), int type) { ASSERT_ARGS(Parrot_pcc_get_regs_used) return CONTEXT_STRUCT(ctx)->n_regs_used[type]; @@ -805,7 +812,7 @@ Parrot_pcc_set_regs_used(PARROT_INTERP, ARGIN(PMC *ctx), int type, INTVAL num) /* -=item C +=item C Get pointer to FLOANFAL and INTVAL registers. @@ -813,9 +820,10 @@ Get pointer to FLOANFAL and INTVAL registers. */ PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL Regs_ni* -Parrot_pcc_get_regs_ni(PARROT_INTERP, ARGIN(PMC *ctx)) +Parrot_pcc_get_regs_ni(PARROT_INTERP, ARGIN(const PMC *ctx)) { ASSERT_ARGS(Parrot_pcc_get_regs_ni) return &(CONTEXT_STRUCT(ctx)->bp); @@ -849,6 +857,7 @@ Get pointer to PMC and STRING registers. */ PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_CANNOT_RETURN_NULL Regs_ps* Parrot_pcc_get_regs_ps(PARROT_INTERP, ARGIN(PMC *ctx)) From 0c48b7bcc7525cbf870b4ad211e099897c7a3cdd Mon Sep 17 00:00:00 2001 From: "Patrick R. Michaud" Date: Tue, 17 Aug 2010 05:37:29 +0000 Subject: [PATCH 016/165] [pct]: Update PCT::HLLCompiler to not need config.pbc. Patch courtesy plobsing++ . git-svn-id: https://svn.parrot.org/parrot/trunk@48547 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- compilers/pct/src/PCT/HLLCompiler.pir | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compilers/pct/src/PCT/HLLCompiler.pir b/compilers/pct/src/PCT/HLLCompiler.pir index c3601df45e..fb0d090827 100644 --- a/compilers/pct/src/PCT/HLLCompiler.pir +++ b/compilers/pct/src/PCT/HLLCompiler.pir @@ -26,10 +26,9 @@ running compilers from a command line. .include 'cclass.pasm' .include 'stdio.pasm' +.include 'iglobals.pasm' .sub 'init' :vtable :method - load_bytecode 'config.pir' - $P0 = split ' ', 'parse past post pir evalpmc' setattribute self, '@stages', $P0 @@ -56,7 +55,8 @@ running compilers from a command line. $S0 = '???' push_eh _handler - $P0 = _config() + $P0 = getinterp + $P0 = $P0[.IGLOBALS_CONFIG_HASH] $S0 = $P0['revision'] # also $I0 = P0['installed'] could be used _handler: pop_eh From dca0a92186e3998d7e86d123af4d437b77205b3b Mon Sep 17 00:00:00 2001 From: Andy Lester Date: Tue, 17 Aug 2010 12:09:53 +0000 Subject: [PATCH 017/165] Removing src/frame_builder.*, no longer used git-svn-id: https://svn.parrot.org/parrot/trunk@48548 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/gen/makefiles/root.in | 9 - src/frame_builder.c | 633 ---------------- src/frame_builder.h | 1368 ---------------------------------- 3 files changed, 2010 deletions(-) delete mode 100644 src/frame_builder.c delete mode 100644 src/frame_builder.h diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index 977b3569e0..7f883fa3c2 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -469,7 +469,6 @@ INTERP_O_FILES = \ src/misc$(O) \ src/multidispatch$(O) \ src/namespace$(O) \ - src/frame_builder$(O) \ src/nci/api$(O) \ src/nci/core_thunks$(O) \ #IF(has_extra_nci_thunks): src/nci/extra_thunks$(O) \ @@ -675,7 +674,6 @@ STR_FILES = \ src/library.str \ src/multidispatch.str \ src/namespace.str \ - src/frame_builder.str \ src/nci/api.str \ src/nci/core_thunks.str \ #IF(has_extra_nci_thunks): src/nci/extra_thunks.str \ @@ -1488,13 +1486,6 @@ src/nci/extra_thunks$(O) : \ src/nci/extra_thunks.c $(CC) $(CFLAGS) @optimize::src/nci/extra_thunks.c@ @ccwarn::src/nci/extra_thunks.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/nci/extra_thunks.c -src/frame_builder$(O) : $(PARROT_H_HEADERS) src/frame_builder.h \ - src/frame_builder.c \ - include/pmc/pmc_fixedintegerarray.h \ - include/pmc/pmc_unmanagedstruct.h \ - include/pmc/pmc_managedstruct.h \ - $(INC_DIR)/oplib/ops.h - src/vtables$(O) : $(PARROT_H_HEADERS) src/vtables.c ## SUFFIX OVERRIDE diff --git a/src/frame_builder.c b/src/frame_builder.c deleted file mode 100644 index ad0b02ed03..0000000000 --- a/src/frame_builder.c +++ /dev/null @@ -1,633 +0,0 @@ -/* -Copyright (C) 2008-2009, Parrot Foundation. -$Id$ - -=head1 NAME - -src/frame_builder.c - -=head1 DESCRIPTION - -Functions for the ManagedStruct PMC and others. - -=head1 FUNCTIONS - -=cut - -*/ - -/* HEADERIZER HFILE: none */ -/* HEADERIZER STOP */ - -#include "parrot/parrot.h" -#include "pmc/pmc_fixedintegerarray.h" -#include "pmc/pmc_unmanagedstruct.h" -#include "pmc/pmc_managedstruct.h" -#include "frame_builder.h" - -/* - -=over 4 - -=item C - -This is a callback to implement the proper freeing semantics. It is called by -the ManagedStruct PMC as it is garbage collected. - -=cut - -*/ - -void -Parrot_jit_free_buffer(SHIM_INTERP, void *ptr, void *priv) -{ - const struct jit_buffer_private_data * const jit = (struct jit_buffer_private_data*)priv; - mem_free_executable(ptr, jit->size); - free(priv); -} - -/* - -=item C - -This is a callback to implement the proper cloning semantics for jit buffers. -It is called by the ManagedStruct PMC's clone() function. - -=back - -=cut - -*/ - -PMC * -Parrot_jit_clone_buffer(PARROT_INTERP, PMC *pmc, void *priv) -{ - PMC * const rv = Parrot_pmc_new(interp, pmc->vtable->base_type); - - VTABLE_init(interp, rv); - /* copy the attributes */ - { - void (*tmpfreefunc)(PARROT_INTERP, void*, void*); - GETATTR_ManagedStruct_custom_free_func(interp, pmc, tmpfreefunc); - SETATTR_ManagedStruct_custom_free_func(interp, rv , tmpfreefunc); - } - { - PMC* (*tmpclonefunc)(PARROT_INTERP, PMC*, void*); - GETATTR_ManagedStruct_custom_clone_func(interp, pmc, tmpclonefunc); - SETATTR_ManagedStruct_custom_clone_func(interp, rv , tmpclonefunc); - } - - { - void *freepriv, *clonepriv; - GETATTR_ManagedStruct_custom_free_priv(interp , pmc, freepriv); - GETATTR_ManagedStruct_custom_clone_priv(interp, pmc, clonepriv); - if (freepriv) { - void *tmp = mem_gc_allocate_zeroed_typed(interp, struct jit_buffer_private_data); - memcpy(tmp, freepriv, sizeof (struct jit_buffer_private_data)); - SETATTR_ManagedStruct_custom_free_priv(interp, rv , tmp); - if (clonepriv == freepriv) { - /* clonepriv is a copy of freepriv, make it a copy in the clone too. */ - SETATTR_ManagedStruct_custom_clone_priv(interp, rv , tmp); - clonepriv = NULL; /* disable the clonepriv copying below */ - } - } - if (clonepriv) { - void *tmp = mem_gc_allocate_zeroed_typed(interp, struct jit_buffer_private_data); - memcpy(tmp, clonepriv, sizeof (struct jit_buffer_private_data)); - SETATTR_ManagedStruct_custom_clone_priv(interp, rv , tmp); - } - } - - /* copy the execmem buffer */ - if (PARROT_MANAGEDSTRUCT(pmc)->ptr) { - struct jit_buffer_private_data *jit = (struct jit_buffer_private_data*)priv; - void *ptr = PARROT_MANAGEDSTRUCT(pmc)->ptr; - void *newptr = mem_alloc_executable(jit->size); - if (!newptr) - Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR, - "Cannot allocate executable memory"); - memcpy(newptr, ptr, jit->size); - PARROT_MANAGEDSTRUCT(rv)->ptr = newptr; - } - - return rv; -} - - -int -emit_is8bit(long disp) -{ - return disp >= -128 && disp <= 127; -} - -char * -emit_disp8_32(char *pc, int disp) -{ - if (emit_is8bit(disp)) { - *(pc++) = (char)disp; - return pc; - } - else { - *(long *)pc = disp; - return pc + 4; - } -} - -void -emit_sib(PARROT_INTERP, char *pc, int scale, int i, int base) -{ - int scale_byte; - - switch (scale) { - case 1: - scale_byte = emit_Scale_1; - break; - case 2: - scale_byte = emit_Scale_2; - break; - case 4: - scale_byte = emit_Scale_4; - break; - case 8: - scale_byte = emit_Scale_8; - break; - default: - Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR, - "Invalid scale factor %d\n", scale); - return; - } - - *pc = (char)(scale_byte | (i == emit_None ? emit_Index_None : emit_reg_Index(i)) | - emit_reg_Base(base)); -} - -char * -emit_r_X(PARROT_INTERP, char *pc, int reg_opcode, int base, int i, int scale, long disp) -{ - if (i && !scale) - Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR, - "emit_r_X passed invalid scale+index combo\n"); - - if (base == emit_EBP) { - /* modrm disp */ - if (i == emit_None) { - *(pc++) = (char)((emit_is8bit(disp) ? emit_Mod_b01 : emit_Mod_b10) - | reg_opcode | emit_reg_rm(emit_EBP)); - return emit_disp8_32(pc, disp); - } - /* modrm sib disp */ - else { - *(pc++) = (char)((emit_is8bit(disp) ? emit_Mod_b01 : emit_Mod_b10) - | reg_opcode | emit_b100); - emit_sib(interp, pc++, scale, i, base); - return emit_disp8_32(pc, disp); - } - } - - /* modrm sib disp */ - if (base == emit_ESP) { - *(pc++) = (char)((emit_is8bit(disp) ? emit_Mod_b01 : emit_Mod_b10) - | reg_opcode | emit_rm_b100); - emit_sib(interp, pc++, scale, i, emit_ESP); - return emit_disp8_32(pc, disp); - } - - /* modrm disp32 */ - if (!base && !(i && scale)) { - *(pc++) = (char)(emit_Mod_b00 | reg_opcode | emit_rm_b101); - *(long *)pc = disp; - return pc + 4; - } - - /* Ok, everything should be more regular here */ - *(pc++) = (char)((disp == 0 ? emit_Mod_b00 : - (emit_is8bit(disp) ? - emit_Mod_b01 : emit_Mod_b10)) | - reg_opcode | - (!base || (scale && i) ? emit_rm_b100 : emit_reg_rm(base))); - - if (!base || (scale && i)) { - emit_sib(interp, pc++, scale, i, base); - } - if (disp) - pc = emit_disp8_32(pc, disp); - - return pc; -} - -char * -emit_shift_i_r(PARROT_INTERP, char *pc, int opcode, int imm, int reg) -{ - if (opcode == emit_b000 && imm < 0) { - opcode = emit_b001; /* -rol => 32 + ror */ - imm = -imm; - } - - if (imm == 0) { - /* noop */ - } - else if (imm == 1) { - *(pc++) = (char) 0xd1; - *(pc++) = (char) emit_alu_X_r(opcode, reg); - } - else if (imm > 1 && imm < 33) { - *(pc++) = (char) 0xc1; - *(pc++) = (char) emit_alu_X_r(opcode, reg); - *(pc++) = (char)imm; - } - else { - Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR, - "emit_shift_i_r passed invalid shift\n"); - } - - return pc; -} - -char * -emit_popl_r(char *pc, int reg) -{ - *(pc++) = (char)(0x58 | (reg - 1)); - return pc; -} - -unsigned char *lastpc; - -size_t -calc_signature_needs(const char *sig, int *strings) -{ - size_t stack_size = 0; - while (*sig) { - switch (*sig) { - case 't': - ++(*strings); - stack_size +=4; - break; - case 'd': - stack_size +=8; - break; - default: - stack_size +=4; - break; - } - ++sig; - } - return stack_size; - -} - -/* - * The function generated here is called as func(interp, nci_info) - * interp ... 8(%ebp) - * nci_info ... 12(%ebp) - * - * The generate function for a specific signature looks quite similar to - * an optimized compile of src/nci.c:pcf_x_yy(). In case of any troubles - * just compare the disassembly. - * - * If a non-NULL sizeptr is passed, the integer it points to will be written - * with the size of the allocated execmem buffer. - */ - -void * -Parrot_jit_build_call_func(PARROT_INTERP, PMC *pmc_nci, STRING *signature, int *sizeptr) -{ - char *pc; - char *execmem; - int i = 0; - int arg_count = 0; - int string_buffer_count = 0; - const int ST_SIZE_OF = 124; - const int JIT_ALLOC_SIZE = 1024; - - char * const signature_str = Parrot_str_to_cstring(interp, signature); - /* skip over the result */ - char *sig = signature_str + 1; - size_t stack_space_needed = calc_signature_needs(sig, - &string_buffer_count); - - int base_offset = 0; - int strings_offset = base_offset - (sizeof (char *) * string_buffer_count); - int st_offset = strings_offset - ST_SIZE_OF; - int args_offset = st_offset - stack_space_needed; - int temp_calls_offset = args_offset - 16; - int total_stack_needed = -temp_calls_offset; - - UNUSED(pmc_nci); - - /* - * ESP - * 0-15, 16 bytes for utility calls - * stack_space_needed for actual NCI call - * st - * STRINGS -> char * holding space - * EBP - */ - - /* this ought to be enough - the caller of this function - * should free the function pointer returned here - */ - pc = execmem = (char *)mem_alloc_executable(JIT_ALLOC_SIZE); - if (! pc) - Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR, - "Cannot allocate executable memory"); - - - /* this generated jit function will be called as (INTERP (EBP 8), func_ptr - * (ESP 12), args signature (ESP 16)) */ - - /* make stack frame, preserve %ebx */ - jit_emit_stack_frame_enter(pc); - - emitm_subl_i_r(pc, total_stack_needed, emit_ESP); - - /* Parrot_init_arg_nci(interp, &st, "S"); */ - /* args signature "S" */ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 16); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - - /*&st*/ - emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4); - - /*interpreter*/ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 8); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 0); - - /* XXX FIXME (TT #1325) This whole function require major rework */ - /* if (sig && *sig) */ - /* emitm_call_cfunc(pc, Parrot_init_arg_nci); */ - - while (*sig) { - emitm_movl_i_m(pc, arg_count, emit_EBP, 0, 1, temp_calls_offset + 8); - - switch (*sig) { - case '0': /* null ptr or such - doesn't consume a reg */ - jit_emit_bxor_rr_i(interp, pc, emit_EAX, emit_EAX); - emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - break; - case 'f': - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_N); */ - emitm_fstps(interp, pc, emit_EBP, 0, 1, args_offset); - break; - case 'N': - case 'd': - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_N); */ - emitm_fstpl(interp, pc, emit_EBP, 0, 1, args_offset); - args_offset += 4; - break; - case 'I': /* INTVAL */ - case 'l': /* long */ - case 'i': /* int */ - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_I); */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - break; - case 't': /* string, pass a cstring */ - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_S); */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4); - emitm_call_cfunc(pc, string_to_cstring_nullable); - - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - /* save off temporary allocation address */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, strings_offset); - strings_offset += 4; - - /* reset ESP(4) */ - emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4); - break; - case 's': /* short: movswl intreg_o(base), %eax */ - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_I); */ - emitm_movswl_r_r(pc, emit_EAX, emit_EAX); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - break; - case 'c': /* char: movsbl intreg_o(base), %eax */ - /* emitm_call_cfunc(pc, get_nci_I); */ - emitm_movsbl_r_r(pc, emit_EAX, emit_EAX); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - break; - case 'J': /* interpreter */ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 8); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - --arg_count; - break; - case 'p': /* push pmc->data */ - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_p); */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - break; - case 'O': /* push PMC * object in P2 */ - case 'P': /* push PMC * */ - case '@': - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_P); */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - break; - case 'v': - break; - case 'b': /* buffer (void*) pass Buffer_bufstart(SReg) */ - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_S); */ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, - (size_t) &Buffer_bufstart((STRING *) NULL)); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - break; - case 'B': /* buffer (void**) pass &Buffer_bufstart(SReg) */ - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_S); */ - emitm_lea_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, - (size_t) &Buffer_bufstart((STRING *) NULL)); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - break; - case 'S': - /* FIXME (TT #1325) emitm_call_cfunc(pc, get_nci_S); */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, args_offset); - break; - - - /* I have no idea how to handle these */ - case '2': - case '3': - case '4': - case 'V': - mem_free_executable(execmem, JIT_ALLOC_SIZE); - Parrot_str_free_cstring(signature_str); - return NULL; - break; - default: - Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR, - "Unknown arg Signature %c\n", *sig); - /* - * oops unknown signature: - * cleanup and try nci.c - */ - mem_free_executable(execmem, JIT_ALLOC_SIZE); - Parrot_str_free_cstring(signature_str); - return NULL; - } - args_offset +=4; - ++arg_count; - ++sig; - } - - /* prepare to call VTABLE_get_pointer, set up args */ - /* interpreter - movl 8(%ebp), %eax */ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 8); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 0); - - /* pmc - movl 12(%ebp), %eax */ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 12); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4); - - /* get the get_pointer() pointer from the pmc's vtable */ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, offsetof(PMC, vtable)); - emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, offsetof(VTABLE, get_pointer)); - - /* call get_pointer(), result goes into eax */ - emitm_callr(pc, emit_EAX); - emitm_addl_i_r(pc, 16, emit_ESP); - - /* call the resulting function pointer */ - emitm_callr(pc, emit_EAX); - emitm_subl_i_r(pc, 16, emit_ESP); - - /* SAVE OFF EAX */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - - /*&st*/ - emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4); - - /*interpreter*/ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, 8); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 0); - - /* RESTORE BACK EAX */ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - - /* now place return value in registers */ - /* first in signature is the return value */ - sig = signature_str; /* the result */ - switch (*sig) { - /* I have no idea how to handle these */ - case '2': - case '3': - case '4': - /* get integer from pointer - untested */ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, 0); - if (*sig == 2) /* short */ - emitm_movswl_r_r(pc, emit_EAX, emit_EAX); - /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_I);*/ - break; - case 'f': - case 'd': - jit_emit_fstore_mb_n(interp, pc, emit_EBP, temp_calls_offset + 8); - /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_N); */ - /* pop num from st(0) and mov to reg */ - break; - case 's': - /* movswl %ax, %eax */ - emitm_movswl_r_r(pc, emit_EAX, emit_EAX); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_I); */ - break; - case 'c': - /* movsbl %al, %eax */ - emitm_movsbl_r_r(pc, emit_EAX, emit_EAX); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_I); */ - break; - case 'I': /* INTVAL */ - case 'l': - case 'i': - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_I); */ - break; - case 'v': /* void - do nothing */ - break; - case 'P': - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_P); */ - break; - case 'p': /* make a new unmanaged struct */ - /* save return value on stack */ - - /* save pointer p */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 12); - - /* make new pmc */ - emitm_movl_i_m(pc, enum_class_UnManagedStruct, emit_EBP, 0, 1, temp_calls_offset + 4); - emitm_call_cfunc(pc, Parrot_pmc_new); - - /* restore pointer p to EDX */ - emitm_movl_m_r(interp, pc, emit_EDX, emit_EBP, 0, 1, temp_calls_offset + 12); - - /* copy UnManagedStruct to stack for set_nci_P call */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - - /* eax = PMC, get return value into edx */ - /* mov data(%eax), %eax - mov %edx, ptr(%eax) */ - emitm_movl_m_r(interp, pc, emit_EAX, emit_EAX, 0, 1, offsetof(struct PMC, data)); - emitm_movl_r_m(interp, pc, emit_EDX, emit_EAX, 0, 1, - offsetof(struct Parrot_UnManagedStruct_attributes, ptr)); - - /* reset EBP(4) */ - emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4); - - /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_P); */ - break; - case 'S': - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_S); */ - break; - case 't': /* string */ - /* EAX is char* */ - emitm_movl_i_m(pc, 0, emit_EBP, 0, 1, temp_calls_offset + 8); /* len */ - - /* overwrites address of st in EBP(4) */ - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4); - - emitm_call_cfunc(pc, Parrot_str_new); - - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 8); - - /* reset EBP(4) */ - emitm_lea_m_r(interp, pc, emit_EAX, emit_EBP, 0, 1, st_offset); - emitm_movl_r_m(interp, pc, emit_EAX, emit_EBP, 0, 1, temp_calls_offset + 4); - - /* XXX FIXME (TT #1325) emitm_call_cfunc(pc, set_nci_S); */ - break; - default: - Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_JIT_ERROR, - "Unknown return Signature %c\n", *sig); - /* - * oops unknown signature: - * cleanup and try nci.c - */ - Parrot_str_free_cstring(signature_str); - mem_free_executable(execmem, JIT_ALLOC_SIZE); - return NULL; - } - - /* free temporary strings */ - strings_offset = st_offset + ST_SIZE_OF; - for (i=0; i -#include "parrot/parrot.h" -#include "parrot/hash.h" -#include "parrot/oplib/ops.h" - -/* - * NCI interface - */ -void * -Parrot_jit_build_call_func(Interp *, PMC *, STRING *, int *); - -/* custom pmc callback functions */ -void -Parrot_jit_free_buffer(PARROT_INTERP, void *ptr, void *priv); - -PMC* -Parrot_jit_clone_buffer(PARROT_INTERP, PMC *pmc, void *priv); - -struct jit_buffer_private_data { - int size; -}; - -/* Scale factor values */ -#define emit_Scale(scale) ((scale) << 6) -#define emit_Scale_1 emit_Scale(0) -#define emit_Scale_2 emit_Scale(1) -#define emit_Scale_4 emit_Scale(2) -#define emit_Scale_8 emit_Scale(3) - -/* ESIB byte */ -#define emit_reg_Index(x) (((x)-1) << 3) -#define emit_reg_Base(x) ((x)-1) -#define emit_Index_None ((emit_b100) << 3) - -/* - * helper funcs - get argument n - */ - -/* - * if we have a delegated method like typeof_i_p, that returns an INTVAL - * and that is all in a sequence of JITted opcodes, and when these INTVAL - * is MAPped, we got a problem. So the EXT_CALL flag is disabled - mapped - * registers are saved/restored around vtable calls. - */ -#define JIT_VTABLE_OPS 1 - -/* EXEC_SHARED generates code to be used with libparrot.so - * It grabs the real address of cgp_core from the gcc generated code - * x/1i cgp_code - * jmp *0xXXXX - * x/1wx 0xXXXX - * real address of cpg_core - * s. exec_emit_end - * XXX This should be a command line option. - */ -#undef EXEC_SHARED - -extern UINTVAL ld(UINTVAL); - -#define NEG_MINUS_ZERO -/* #define NEG_ZERO_SUB */ - -/* Register codes */ -#define emit_None 0 - -/* These are + 1 the real values */ -#define emit_EAX 1 -#define emit_ECX 2 -#define emit_EDX 3 -#define emit_EBX 4 -#define emit_ESP 5 -#define emit_EBP 6 -#define emit_ESI 7 -#define emit_EDI 8 - -/* Scratch register. */ - -#define ISR1 emit_EAX -#define FSR1 0 - -#define emit_b00 0 -#define emit_b01 1 -#define emit_b10 2 -#define emit_b11 3 - -#define emit_b000 0 -#define emit_b001 1 -#define emit_b010 2 -#define emit_b011 3 -#define emit_b100 4 -#define emit_b101 5 -#define emit_b110 6 -#define emit_b111 7 - -/* Mod R/M byte */ -#define emit_reg(x) ((x) << 3) -#define emit_Mod(Mod) ((Mod) << 6) -#define emit_reg_rm(x) ((x)-1) - -/* Mod values for Mod R/M Byte */ -#define emit_Mod_b00 emit_Mod(emit_b00) -#define emit_Mod_b01 emit_Mod(emit_b01) -#define emit_Mod_b10 emit_Mod(emit_b10) - -/* special R/M values */ -#define emit_rm_b101 emit_b101 -#define emit_rm_b100 emit_b100 - -#define emit_r_m(interp, pc, reg1, b, i, s, d) \ - emit_r_X((interp), (pc), emit_reg((reg1)-1), (b), (i), (s), (d)) - -#define emit_alu_X_r(X, reg) ((emit_b11 << 6) | ((X) << 3) | ((reg) - 1)) - -#define emit_alu_r_r(reg1, reg2) emit_alu_X_r(((reg1) - 1), (reg2)) - -int emit_is8bit(long disp); - -char * emit_disp8_32(char *pc, int disp); - -void emit_sib(PARROT_INTERP, char *pc, int scale, int i, int base); - -char * emit_r_X(PARROT_INTERP, char *pc, int reg_opcode, int base, int i, - int scale, long disp); - -char * emit_shift_i_r(PARROT_INTERP, char *pc, int opcode, int imm, int reg); - -char * emit_shift_i_m(PARROT_INTERP, char *pc, int opcode, int imm, - int base, int i, int scale, long disp); - -char * emit_shift_r_r(PARROT_INTERP, char *pc, int opcode, int reg1, int reg2); - -char * emit_shift_r_m(PARROT_INTERP, char *pc, int opcode, int reg, - int base, int i, int scale, long disp); - -/* CDQ - need this to do multiply */ -#define emitm_cdq(pc) *((pc)++) = (char) 0x99 - -/* RET */ -#define emitm_ret(pc) *((pc)++) = (char) 0xc3 - -/* NOP */ -#define emit_nop(pc) *((pc)++) = (char) 0x90 - -/* PUSHes */ - -#define emitm_pushl_r(pc, reg) \ - *((pc)++) = (char) 0x50 | ((reg) - 1) - -#define emitm_pushl_i(pc, imm) { \ - *((pc)++) = (char) 0x68; \ - *(long *)(pc) = (long)(imm); \ - (pc) += 4; } - -#define emitm_pushl_m(pc, mem) { \ - *((pc)++) = (char) 0xff; \ - *((pc)++) = (char) 0x35; \ - *(long *)(pc) = (long)(mem); \ - (pc) += 4; } - -char * emit_pushl_m(PARROT_INTERP, char *pc, int base, int i, int scale, - long disp); - -/* POPs */ - -char * emit_popl_r(char *pc, int reg); - -# define emitm_popl_r(pc, reg) \ - (pc) = emit_popl_r((pc), (reg)) - -char * emit_popl_m(PARROT_INTERP, char *pc, int base, int i, int scale, - long disp); - -/* MOVes */ - -char * emit_movb_r_r(char *pc, int reg1, int reg2); - -# define jit_emit_mov_rr_i(pc, reg2, reg1) if ((reg1) != (reg2)) { \ - *((pc)++) = (char) 0x89; \ - *((pc)++) = (char) emit_alu_r_r((reg1), (reg2)); } - -# define jit_emit_mov_ri_i(interp, pc, reg, imm) { \ - *((pc)++) = (char)(0xb8 | ((reg) - 1)); \ - *(long *)(pc) = (long)(imm); (pc) += 4; } - -# define emitm_movX_Y_Z(interp, op, pc, reg1, b, i, s, d) { \ - *((pc)++) = (char) (op); \ - (pc) = emit_r_m((interp), (pc), (reg1), (b), (i), (s), (long)(d)); } - -# define emitm_movb_r_m(interp, pc, reg1, b, i, s, d) \ - emitm_movX_Y_Z((interp), 0x88, (pc), (reg1), (b), (i), (s), (d)) - -# define emitm_movl_r_m(interp, pc, reg1, b, i, s, d) \ - emitm_movX_Y_Z((interp), 0x89, (pc), (reg1), (b), (i), (s), (d)) - -/* move byte/word with sign extension */ -# define emitm_movsbl_r_m(interp, pc, reg1, b, i, s, d) { \ - *((pc)++) = (char) 0x0f; \ - emitm_movX_Y_Z((interp), 0xBE, (pc), (reg1), (b), (i), (s), (d)); \ -} - -# define emitm_movswl_r_m(interp, pc, reg1, b, i, s, d) { \ - *((pc)++) = (char) 0x0f; \ - emitm_movX_Y_Z((interp), 0xBF, (pc), (reg1), (b), (i), (s), (d)); \ -} - -# define emitm_movsbl_r_r(pc, reg1, reg2) { \ - *((pc)++) = (char) 0x0f; \ - *((pc)++) = (char) 0xbe; \ - *((pc)++) = (char) emit_alu_r_r((reg1), (reg2)); \ -} - -# define emitm_movswl_r_r(pc, reg1, reg2) { \ - *((pc)++) = (char) 0x0f; \ - *((pc)++) = (char) 0xbf; \ - *((pc)++) = (char) emit_alu_r_r((reg1), (reg2)); \ -} - -# define emitm_movb_m_r(interp, pc, reg1, b, i, s, d) \ - emitm_movX_Y_Z((interp), 0x8a, (pc), (reg1), (b), (i), (s), (d)) - -# define emitm_movl_m_r(interp, pc, reg1, b, i, s, d) \ - emitm_movX_Y_Z((interp), 0x8b, (pc), (reg1), (b), (i), (s), (d)) - -# define emitm_lea_m_r(interp, pc, reg1, b, i, s, d) \ - emitm_movX_Y_Z((interp), 0x8d, (pc), (reg1), (b), (i), (s), (d)) - -char * emit_movb_i_m(PARROT_INTERP, char *pc, char imm, int base, int i, - int scale, long disp); - -# define emitm_movl_i_m(pc, imm, b, i, s, d) { \ - *((pc)++) = (char) 0xc7; \ - (pc) = emit_r_X((interp), (pc), emit_reg(emit_b000), (b), (i), (s), (long)(d)); \ - *(long *)(pc) = (long)(imm); (pc) += 4; } - -/* Various ALU formats */ - -# define emitm_alul_r_r(pc, op, reg1, reg2) { \ - *((pc)++) = (char) (op); *((pc)++) = (char) emit_alu_r_r((reg1), (reg2)); } - -# define emitm_alub_i_r(pc, op1, op2, imm, reg) { \ - *((pc)++) = (char) (op1); *((pc)++) = (char) emit_alu_X_r((op2), (reg)); *((pc)++) = (char)(imm); } - -# define emitm_alul_i_r(pc, op1, op2, imm, reg) { \ - *((pc)++) = (char) (op1); \ - *((pc)++) = (char) emit_alu_X_r((op2), (reg)); \ - *(long *)((pc)) = (long)(imm); (pc) += 4; } - -# define emitm_alul_i_m(pc, op1, op2, imm, b, i, s, d) { \ - *((pc)++) = (char) (op1); \ - (pc) = emit_r_X((interp), (pc), emit_reg(op2), (b), (i), (s), (d)); \ - *(long *)(pc) = (long)(imm); (pc) += 4; } - -# define emitm_alul_r_m(pc, op, reg, b, i, s, d) { \ - *((pc)++) = (char) (op); \ - (pc) = emit_r_X((interp), (pc), emit_reg((reg)-1), (b), (i), (s), (long)(d)); } - -/* ADDs */ - -# define emitm_addb_r_r(pc, reg1, reg2) \ - emitm_alul_r_r((pc), 0x00, (reg1), (reg2)) - -# define emitm_addb_i_r(pc, imm, reg) \ - emitm_alub_i_r((pc), 0x83, emit_b000, (imm), (reg)) - -# define jit_emit_add_rr_i(interp, pc, reg1, reg2) \ - emitm_alul_r_r((pc), 0x01, (reg2), (reg1)) - -# define jit_emit_add_ri_i(interp, pc, reg, imm) \ - emitm_alul_i_r((pc), 0x81, emit_b000, (imm), (reg)) - -# define emitm_addl_i_r(pc, imm, reg) \ - emitm_alul_i_r((pc), 0x81, emit_b000, (imm), (reg)) - -# define emitm_addl_i_m(pc, imm, b, i, s, d) \ - emitm_alul_i_m((pc), 0x81, emit_b000, (imm), (b), (i), (s), (d)) - -# define emitm_addl_r_m(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x01, (reg), (b), (i), (s), (d)) - -# define emitm_addl_m_r(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x03, (reg), (b), (i), (s), (d)) - -/* SUBs */ - -# define jit_emit_sub_rr_i(interp, pc, reg1, reg2) \ - emitm_alul_r_r((pc), 0x29, (reg2), (reg1)) - -# define emitm_subl_i_r(pc, imm, reg) \ - emitm_alul_i_r((pc), 0x81, emit_b101, (imm), (reg)) - -# define jit_emit_sub_ri_i(interp, pc, r, i) emitm_subl_i_r((pc), (i), (r)) - -# define emitm_subl_r_m(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x29, (reg), (b), (i), (s), (d)) - -# define emitm_subl_m_r(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x2b, (reg), (b), (i), (s), (d)) - -# define emitm_subl_i_m(pc, imm, b, i, s, d) \ - emitm_alul_i_m((pc), 0x81, emit_b101, (imm), (b), (i), (s), (d)) - -/* These are used by both signed and unsigned EDIV, but only unsigned MUL */ -# define emitm_alu_imp_r(pc, op, reg) { \ - *((pc)++) = (char) 0xf7; \ - *((pc)++) = (char) emit_alu_X_r((op), (reg)); } - -# define emitm_alu_imp_m(pc, op, b, i, s, d) { \ - *((pc)++) = (char) 0xf7; \ - (pc) = emit_r_X((interp), (pc), emit_reg(op), (b), (i), (s), (d)); } - -/* Unsigned MUL and EDIV */ -/* EAX implicit destination in multiply and divide */ - -# define emitm_umull_r(pc, reg2) emitm_alu_imp_r((pc), emit_b100, (reg2)) - -# define emitm_udivl_r(pc, reg2) emitm_alu_imp_r((pc), emit_b110, (reg2)) - -# define emitm_umull_m(pc, b, i, s, d) \ - emitm_alu_imp_m((pc), emit_b100, (b), (i), (s), (d)) - -# define emitm_udivl_m(pc, b, i, s, d) \ - emitm_alu_imp_m((pc), emit_b110, (b), (i), (s), (d)) - -/* Signed MUL and EDIV */ - -# define emitm_sdivl_r(pc, reg2) emitm_alu_imp_r((pc), emit_b111, (reg2)) - -# define emitm_sdivl_m(pc, b, i, s, d) \ - emitm_alu_imp_m((pc), emit_b111, (b), (i), (s), (d)) - -# define jit_emit_cdq(pc) *(pc)++ = 0x99 - -/* TEST for zero */ -# define jit_emit_test_r_i(pc, reg1) emitm_alul_r_r((pc), 0x85, (reg1), (reg1)) - -# define emitm_smull_r(pc, reg2) emitm_alu_imp_r((pc), emit_b101, (reg2)) - -# define jit_emit_mul_rr_i(interp, pc, reg1, reg2) { \ - *(pc)++ = 0xf; \ - emitm_alul_r_r((pc), 0xaf, (reg1), (reg2)); } - -# define emitm_smull_r_m(pc, reg1, b, i, s, d) { \ - *(pc)++ = 0xf; \ - emitm_alul_r_m((pc), 0xaf, (reg1), (b), (i), (s), (d)); } - -char * opt_mul(PARROT_INTERP, char *pc, int dest, INTVAL imm, int src); - -# define jit_emit_mul_rir_i(pc, dest, imm, src) \ - (pc) = opt_mul(interp, (pc), (dest), (imm), (src)) - - -# define jit_emit_mul_ri_i(pc, r, imm) jit_emit_mul_rir_i((pc), (r), (imm), (r)) - -# define jit_emit_mul_RIM_ii(pc, reg, imm, ofs) \ - emitm_alul_r_m((pc), 0x69, (reg), emit_EBX, emit_None, 1, (ofs)); \ - *(long *)(pc) = (long)(imm); \ - (pc) += 4; - -/* NEG */ - -# define jit_emit_neg_r_i(pc, reg) emitm_alu_imp_r((pc), emit_b011, (reg)) - -# define emitm_negl_m(pc, b, i, s, d) \ - emitm_alu_imp_m((pc), emit_b011, (b), (i), (s), (d)) - -/* AND */ - -# define emit_andl_r_r(pc, reg1, reg2) emitm_alul_r_r((pc), 0x21, (reg1), (reg2)) -# define jit_emit_band_rr_i(interp, pc, r1, r2) emit_andl_r_r((pc), (r2), (r1)) - -# define jit_emit_band_ri_i(interp, pc, reg, imm) \ - emitm_alul_i_r((pc), 0x81, emit_b100, (imm), (reg)) - -# define emitm_andl_r_m(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x21, (reg), (b), (i), (s), (d)) - -# define emitm_andl_m_r(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x23, (reg), (b), (i), (s), (d)) - -# define emitm_andl_i_m(pc, imm, b, i, s, d) \ - emitm_alul_i_m((pc), 0x81, emit_b100, (imm), (b), (i), (s), (d)) - -/* TEST op */ -# define jit_emit_test_rr_i(pc, r1, r2) emitm_alul_r_r((pc), 0x85, (r1), (r2)) - -# define jit_emit_test_ri_i(pc, r, im) \ - emitm_alul_i_r((pc), 0xF7, emit_b000, (im), (r)) - -# define jit_emit_test_RM_i(pc, r, offs) \ - emitm_alul_r_m((pc), 0x85, (r), emit_EBX, 0, 1, (offs)) - -/* OR */ - -# define jit_emit_bor_rr_i(interp, pc, reg1, reg2) emitm_alul_r_r((pc), 0x9, (reg2), (reg1)) - -# define jit_emit_bor_ri_i(interp, pc, reg, imm) \ - emitm_alul_i_r((pc), 0x81, emit_b001, (imm), (reg)) - -# define emitm_orl_r_m(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x09, (reg), (b), (i), (s), (d)) - -# define emitm_orl_m_r(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x0b, (reg), (b), (i), (s), (d)) - -# define emitm_orl_i_m(pc, imm, b, i, s, d) \ - emitm_alul_i_m((pc), 0x81, emit_b001, (imm), (b), (i), (s), (d)) - -/* XOR */ - -# define jit_emit_bxor_rr_i(interp, pc, reg1, reg2) \ - emitm_alul_r_r((pc), 0x31, (reg2), (reg1)) - -# define jit_emit_bxor_ri_i(intepr, pc, reg, imm) \ - emitm_alul_i_r((pc), 0x81, emit_b110, (imm), (reg)) - -# define emitm_xorl_r_m(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x31, (reg), (b), (i), (s), (d)) - -# define emitm_xorl_m_r(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x33, (reg), (b), (i), (s), (d)) - -# define emitm_xorl_i_m(pc, imm, b, i, s, d) \ - emitm_alul_i_m((pc), 0x81, emit_b110, (imm), (b), (i), (s), (d)) - -/* NOT */ - -# define jit_emit_not_r_i(pc, reg) emitm_alu_imp_r((pc), emit_b010, (reg)) -# define emitm_notl_m(pc, b, i, s, d) \ - emitm_alu_imp_m((pc), emit_b010, (b), (i), (s), (d)) - -# define jit_emit_not_M_i(interp, pc, offs) emitm_notl_m((pc), emit_EBX, 0, 1, (offs)) - -/* XCHG */ -# define jit_emit_xchg_rr_i(interp, pc, r1, r2) { \ - if ((r1) != (r2)) { \ - *((pc)++) = (char) 0x87; \ - *((pc)++) = (char) emit_alu_r_r((r1), (r2)); \ - } \ -} - -# define jit_emit_xchg_rm_i(pc, r, m) { \ - emitm_alul_r_m((pc), 0x87, (r), emit_None, emit_None, emit_None, (m)) \ -} -# define jit_emit_xchg_RM_i(interp, pc, r, offs) { \ - emitm_alul_r_m((pc), 0x87, (r), emit_EBX, emit_None, 1, (offs)) \ -} -# define jit_emit_xchg_MR_i(interp, pc, offs, r) jit_emit_xchg_RM_i((interp), (pc), (r), (offs)) - -/* SHL */ - -# define jit_emit_shl_ri_i(interp, pc, reg, imm) \ - { (pc) = emit_shift_i_r((interp), (pc), emit_b100, (imm), (reg)); } - -# define emitm_shll_i_m(pc, imm, b, i, s, d) \ - { (pc) = emit_shift_i_m((pc), emit_b100, (imm), (b), (i), (s), (d)); } - -# define emitm_shll_r_r(interp, pc, reg1, reg2) \ - { (pc) = emit_shift_r_r((interp), (pc), emit_b100, (reg1), (reg2)); } - -# define emitm_shll_r_m(pc, reg, b, i, s, d) \ - { (pc) = emit_shift_r_m((pc), emit_b100, (reg), (b), (i), (s), (d)); } - -/* SHR */ - -# define jit_emit_lsr_ri_i(interp, pc, reg, imm) \ - { (pc) = emit_shift_i_r((interp), (pc), emit_b101, (imm), (reg)); } - -# define emitm_shrl_i_m(pc, imm, b, i, s, d) \ - { (pc) = emit_shift_i_m((pc), emit_b101, (imm), (b), (i), (s), (d)); } - -# define emitm_shrl_r_r(interp, pc, reg1, reg2) \ - { (pc) = emit_shift_r_r((interp), (pc), emit_b101, (reg1), (reg2)); } - -# define emitm_shrl_r_m(pc, reg, b, i, s, d) \ - { (pc) = emit_shift_r_m((pc), emit_b101, (reg), (b), (i), (s), (d)); } - -/* SAL */ - -# define emitm_sall_i_r(interp, pc, imm, reg) \ - { (pc) = emit_shift_i_r((interp), (pc), emit_b100, (imm), (reg)); } - -# define emitm_sall_i_m(pc, imm, b, i, s, d) \ - { (pc) = emit_shift_i_m((pc), emit_b100, (imm), (b), (i), (s), (d)); } - -# define emitm_sall_r_r(interp, pc, reg1, reg2) \ - { (pc) = emit_shift_r_r((interp), (pc), emit_b100, (reg1), (reg2)); } - -# define emitm_sall_r_m(pc, reg, b, i, s, d) \ - { (pc) = emit_shift_r_m((pc), emit_b100, (reg), (b), (i), (s), (d)); } - -/* SAR */ - -# define jit_emit_shr_ri_i(interp, pc, reg, imm) \ - { (pc) = emit_shift_i_r((interp), (pc), emit_b111, (imm), (reg)); } - - -# define emitm_sarl_i_m(pc, imm, b, i, s, d) \ - { (pc) = emit_shift_i_m((pc), emit_b111, (imm), (b), (i), (s), (d)); } - -# define emitm_sarl_r_r(interp, pc, reg1, reg2) \ - { (pc) = emit_shift_r_r((interp), (pc), emit_b111, (reg1), (reg2)); } - -# define emitm_sarl_r_m(pc, reg, b, i, s, d) \ - { (pc) = emit_shift_r_m((pc), emit_b111, (reg), (b), (i), (s), (d)); } - -/* rotate */ - -# define jit_emit_rol_ri_i(interp, pc, reg, imm) \ - { (pc) = emit_shift_i_r((interp), (pc), emit_b000, (imm), (reg)); } - -# define jit_emit_ror_ri_i(interp, pc, reg, imm) \ - { (pc) = emit_shift_i_r((interp), (pc), emit_b001, (imm), (reg)); } - -/* interface, shift r1 by r2 bits */ - -# define jit_emit_shl_rr_i(interp, pc, r1, r2) \ - (pc) = opt_shift_rr((interp), jit_info, (r1), (r2), emit_b100) - -# define jit_emit_shl_RM_i(interp, pc, r1, offs) \ - (pc) = opt_shift_rm((interp), jit_info, (r1), (offs), emit_b100) - -/* shr seems to be the arithmetic shift */ -# define jit_emit_shr_rr_i(interp, pc, r1, r2) \ - (pc) = opt_shift_rr((interp), jit_info, (r1), (r2), emit_b111) - -# define jit_emit_shr_RM_i(interp, pc, r1, offs) \ - (pc) = opt_shift_rm((interp), jit_info, (r1), (offs), emit_b111) - -# define jit_emit_lsr_rr_i(interp, pc, r1, r2) \ - (pc) = opt_shift_rr((interp), jit_info, (r1), (r2), emit_b101) - -# define jit_emit_lsr_RM_i(interp, pc, r1, offs) \ - (pc) = opt_shift_rm((interp), jit_info, (r1), (offs), emit_b101) - -/* MOV (reg), reg */ -# define emit_movm_r_r(pc, src, dest) \ - *((pc)++) = (char) 0x8b; \ - *((pc)++) = (char) (src) | (dest) << 3 - -/* MOV X(reg), reg */ -# define emit_movb_i_r_r(pc, imm, src, dest) \ - *((pc)++) = (char)(0x8b); \ - *((p)c++) = (char)(0x40 | ((src) - 1) | ((dest) - 1) << 3); \ - *((pc)++) = (imm) - -/* INC / DEC */ -# define jit_emit_inc_r_i(pc, reg) *((pc)++) = (char)(0x40 | ((reg) - 1)) -# define jit_emit_dec_r_i(pc, reg) *((pc)++) = (char)(0x48 | ((reg) - 1)) - -/* Floating point ops */ - -# define emitm_floatop 0xd8 /* 11011000 */ -# define jit_emit_dec_fsp(pc) { *((pc)++) = (char) 0xD9; *((pc)++) = (char) 0xF6; } -# define jit_emit_inc_fsp(pc) { *((pc)++) = (char) 0xD9; *((pc)++) = (char) 0xF7; } - -# define emitm_fl_2(interp, pc, mf, opa, opb, b, i, s, d) { \ - *((pc)++) = (char)(emitm_floatop | ((mf) << 1) | (opa)); \ - (pc) = emit_r_X((interp), (pc), emit_reg(opb), (b), (i), (s), (long)(d)); } - -# define emitm_fl_3(pc, d_p_opa, opb_r, sti) { \ - *((pc)++) = (char)(emitm_floatop | (d_p_opa)); \ - *((pc)++) = (char)(0xc0 | ((opb_r) << 3) | (sti)); } - -# define emitm_fl_4(pc, op) { \ - *((pc)++) = (char)(emitm_floatop | emit_b001); \ - *((pc)++) = (char)(0xe0 | (op)); } - -/* Integer loads and stores */ -# define emitm_fildl(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b01, 1, emit_b000, (b), (i), (s), (d)) - -# define emitm_fistpl(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b01, 1, emit_b011, (b), (i), (s), (d)) - -# define emitm_fistl(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b01, 1, emit_b010, (b), (i), (s), (d)) - -/* long long integer load/store */ -# define emitm_fildll(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b11, 1, emit_b101, (b), (i), (s), (d)) - -# define emitm_fistpll(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b11, 1, emit_b111, (b), (i), (s), (d)) - -/* Double loads and stores */ -# define emitm_fldl(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b10, 1, emit_b000, (b), (i), (s), (d)) - -# define emitm_fstpl(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b10, 1, emit_b011, (b), (i), (s), (d)) - -# define emitm_fstl(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b10, 1, emit_b010, (b), (i), (s), (d)) - -/* long double load / store */ -# define emitm_fldt(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b01, 1, emit_b101, (b), (i), (s), (d)) - -# define emitm_fstpt(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b01, 1, emit_b111, (b), (i), (s), (d)) - -/* short float load / store */ -# define emitm_flds(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b00, 1, emit_b000, (b), (i), (s), (d)) - -# define emitm_fstps(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b00, 1, emit_b010, (b), (i), (s), (d)) - -#if NUMVAL_SIZE == 8 - -# define jit_emit_fload_m_n(interp, pc, address) \ - emitm_fldl((interp), (pc), emit_None, emit_None, emit_None, (address)) - -# define jit_emit_fload_mb_n(interp, pc, base, offs) \ - emitm_fldl((interp), (pc), (base), emit_None, 1, (offs)) - -# define jit_emit_fstore_m_n(interp, pc, address) \ - emitm_fstpl((interp), (pc), emit_None, emit_None, emit_None, (address)) - -# define jit_emit_fstore_mb_n(interp, pc, base, offs) \ - emitm_fstpl((interp), (pc), (base), emit_None, 1, (offs)) - -# define jit_emit_fst_mb_n(interp, pc, base, offs) \ - emitm_fstl((interp), (pc), (base), emit_None, 1, (offs)) - -#else /* NUMVAL_SIZE */ - -# define jit_emit_fload_m_n(interp, pc, address) \ - emitm_fldt((interp), (pc), emit_None, emit_None, emit_None, (address)) - -# define jit_emit_fload_mb_n(interp, pc, base, offs) \ - emitm_fldt((interp), (pc), (base), emit_None, 1, (offs)) - -# define jit_emit_fstore_m_n(pc, address) \ - emitm_fstpt((interp), (pc), emit_None, emit_None, emit_None, (address)) - -# define jit_emit_fstore_mb_n(interp, pc, base, offs) \ - emitm_fstpt((interp), (pc), (base), emit_None, 1, (offs)) - -# define jit_emit_fst_mb_n(interp, pc, base, offs) \ - emitm_fstt((interp), (pc), (base), emit_None, 1, (offs)) - -#endif /* NUMVAL_SIZE */ - -#if INTVAL_SIZE == 4 - -# define jit_emit_fload_m_i(interp, pc, address) \ - emitm_fildl((interp), (pc), emit_None, emit_None, emit_None, (address)) -# define jit_emit_fload_mb_i(interp, pc, offs) \ - emitm_fildl((interp), (pc), emit_EBX, emit_None, 1, (offs)) -# define jit_emit_fstore_m_i(pc, m) \ - emitm_fistpl((pc), emit_None, emit_None, emit_None, (m)) - -#else /* INTVAL_SIZE */ - -# define jit_emit_fload_m_i(interp, pc, address) \ - emitm_fildll((interp), (pc), emit_None, emit_None, emit_None, (address)) -# define jit_emit_fload_mb_i(interp, pc, offs) \ - emitm_fildll((interp), (pc), emit_EBX, emit_None, 1, (offs)) -# define jit_emit_fstore_m_i(pc, m) \ - emitm_fistpll((pc), emit_None, emit_None, emit_None, (m)) - -#endif /* INTVAL_SIZE */ - -/* 0xD8 ops */ -# define emitm_fadd(pc, sti) emitm_fl_3((pc), emit_b000, emit_b000, (sti)) -# define emitm_fmul(pc, sti) emitm_fl_3((pc), emit_b000, emit_b001, (sti)) -# define emitm_fsub(pc, sti) emitm_fl_3((pc), emit_b000, emit_b100, (sti)) -# define emitm_fdiv(pc, sti) emitm_fl_3((pc), emit_b000, emit_b110, (sti)) - -/* 0xD9 ops */ -# define emitm_fldz(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xee; } -# define emitm_fld1(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xe8; } -# define emitm_fsqrt(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xfa; } -# define emitm_fsin(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xfe; } -# define emitm_fcos(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xff; } -# define emitm_fxam(pc) { *((pc)++) = (char) 0xd9; *((pc)++) = (char) 0xe5; } - -/* FXCH ST, ST(i) , optimize 2 consecutive fxch with same reg */ -# define emitm_fxch(pc, sti) { \ - emitm_fl_3((pc), emit_b001, emit_b001, (sti)); \ -} - -/* FLD ST, ST(i), optimized FSTP(N+1);FLD(N) => FST(N+1) */ -extern unsigned char *lastpc; -# define emitm_fld(pc, sti) do { \ - if ((unsigned char *)(pc) == (lastpc + 2) && \ - (int)(*lastpc) == (int)0xDD && \ - (int)lastpc[1] == (int)(0xD8+(sti)+1)) \ - lastpc[1] = 0xD0+(sti)+1; \ - else \ - emitm_fl_3((pc), emit_b001, emit_b000, (sti)); \ - } while (0) - -/* 0xDA, 0xDB ops */ -/* FCMOV*, FCOMI PPRO */ - -/* 0xDC like 0xD8 with reversed operands */ -# define emitm_faddr(pc, sti) emitm_fl_3((pc), emit_b100, emit_b000, (sti)) -# define emitm_fmulr(pc, sti) emitm_fl_3((pc), emit_b100, emit_b001, (sti)) -# define emitm_fsubr(pc, sti) emitm_fl_3((pc), emit_b100, emit_b100, (sti)) - -/* 0xDD ops */ -/* FFree ST(i) */ -# define emitm_ffree(pc, sti) emitm_fl_3((pc), emit_b101, emit_b000, (sti)) - -/* FST ST(i) = ST */ -# define emitm_fst(pc, sti) emitm_fl_3((pc), emit_b101, emit_b010, (sti)) - -/* FSTP ST(i) = ST, POP */ -# define emitm_fstp(pc, sti) { \ - lastpc = (unsigned char*) (pc); \ - emitm_fl_3((pc), emit_b101, emit_b011, (sti)); \ -} - -/* FUCOM ST(i) <=> ST unordered compares */ -# define emitm_fucom(pc, sti) emitm_fl_3((pc), emit_b101, emit_b100, (sti)) - -/* FUCOMP ST(i) <=> ST, POP */ -# define emitm_fucomp(pc, sti) emitm_fl_3((pc), emit_b101, emit_b101, (sti)) - -/* 0xDE ops */ -/* FADDP Add ST(i) = ST + ST(i); POP */ -# define emitm_faddp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b000, (sti)) - -/* FMULP Mul ST(i) = ST * ST(i); POP */ -# define emitm_fmulp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b001, (sti)) - -/* FSUB ST = ST - ST(i) */ - -/* FSUBRP SubR ST(i) = ST - ST(i); POP */ -# define emitm_fsubrp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b100, (sti)) - -/* FSUBP Sub ST(i) = ST(i) - ST; POP */ -# define emitm_fsubp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b101, (sti)) - -/* FDIVRP DivR ST(i) = ST(i) / ST(0); POP */ -# define emitm_fdivrp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b110, (sti)) - -/* FDIVP Div ST(i) = ST(0) / ST(i); POP ST(0) */ -# define emitm_fdivp(pc, sti) emitm_fl_3((pc), emit_b110, emit_b111, (sti)) - -/* 0xDF OPS: FCOMIP, FUCOMIP PPRO */ - -/* Negate - called change sign */ -# define emitm_fchs(pc) emitm_fl_4((pc), 0) - -/* ABS - ST(0) = ABS(ST(0)) */ -# define emitm_fabs(pc) emitm_fl_4((pc), 1) - -/* Comparisons */ - -# define emitm_fcom(pc, sti) emitm_fl_3((pc), emit_b000, emit_b010, (sti)) - -# define emitm_fcomp(pc, sti) emitm_fl_3((pc), emit_b000, emit_b011, (sti)) - -#ifdef PARROT_HAS_JIT_FCOMIP -# define emitm_fcomip(pc, sti) emitm_fl_3((pc), emit_b111, emit_b110, (sti)) -# define emitm_fcomi(pc, sti) emitm_fl_3((pc), emit_b011, emit_b110, (sti)) -#else -# define emitm_fcomip(pc, sti) do { \ - emitm_fcomp((pc), (sti)); \ - emitm_fstw(pc); \ - emitm_sahf(pc); \ - } while (0) -# define emitm_fcomi(pc, sti) do { \ - emitm_fcom((pc), (sti)); \ - emitm_fstw(pc); \ - emitm_sahf(pc); \ - } while (0) -#endif - -# define emitm_fcompp(pc) { *((pc)++) = (char) 0xde; *((pc)++) = (char) 0xd9; } - -# define emitm_fcom_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b10, 0, emit_b010, (b), (i), (s), (d)) - -# define emitm_fcomp_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b10, 0, emit_b011, (b), (i), (s), (d)) - -/* ST -= real64 */ -# define emitm_fsub_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b10, 0, emit_b100, (b), (i), (s), (d)) - -/* ST -= int32_mem */ -# define emitm_fisub_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b01, 0, emit_b100, (b), (i), (s), (d)) - -# define emitm_fadd_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b10, 0, emit_b000, (b), (i), (s), (d)) - -/* ST += int32_mem */ -# define emitm_fiadd_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b01, 0, emit_b000, (b), (i), (s), (d)) - -/* ST *= real64 */ -# define emitm_fmul_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b10, 0, emit_b001, (b), (i), (s), (d)) - -/* ST *= int32_mem */ -# define emitm_fimul_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b01, 0, emit_b001, (b), (i), (s), (d)) - -/* ST /= real64 */ -# define emitm_fdiv_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b10, 0, emit_b110, (b), (i), (s), (d)) - -/* ST /= int32_mem */ -# define emitm_fidiv_m(interp, pc, b, i, s, d) \ - emitm_fl_2((interp), (pc), emit_b01, 0, emit_b110, (b), (i), (s), (d)) - -/* Ops Needed to support loading EFLAGs for conditional branches */ -# define emitm_fstw(pc) emitm_fl_3((pc), emit_b111, emit_b100, emit_b000) - -# define emitm_sahf(pc) *((pc)++) = (char) 0x9e - -/* misc float */ -# define emitm_ftst(pc) { *(pc)++ = 0xd9; *(pc)++ = 0xE4; } -# define emitm_fprem(pc) { *(pc)++ = 0xd9; *(pc)++ = 0xF8; } -# define emitm_fprem1(pc) { *(pc)++ = 0xd9; *(pc)++ = 0xF5; } - -# define emitm_fldcw(interp, pc, mem) \ - emitm_fl_2((interp), (pc), emit_b00, 1, emit_b101, 0, 0, 0, (mem)) - -#if defined(NEG_MINUS_ZERO) -# define jit_emit_neg_r_n(pc, r) { \ - if (r) { \ - emitm_fld((pc), (r)); \ - } \ - emitm_fchs(pc); \ - if (r) { \ - emitm_fstp((pc), ((r)+1)); \ - } \ - } - -# define jit_emit_neg_M_n(interp, pc, mem) { \ - jit_emit_fload_mb_n((interp), (pc), emit_EBX, (mem)); \ - emitm_fchs(pc); \ - jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (mem)); \ - } - -#elif defined(NEG_ZERO_SUB) - -# define jit_emit_neg_r_n(pc, r) { \ - emitm_fldz(pc); \ - emitm_fsubrp((pc), ((r)+1)); \ - } - -# define jit_emit_neg_M_n(interp, pc, mem) { \ - jit_emit_fload_mb_n((interp), (pc), emit_EBX, (mem)); \ - emitm_fldz(pc); \ - emitm_fsubrp((pc), 1); \ - jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (mem)); \ - } -#else - -# define jit_emit_neg_r_n(pc, r) { \ - if (r) { \ - emitm_fld((pc), (r)); \ - } \ - emitm_ftst(pc); \ - emitm_fstw(pc); \ - emitm_sahf(pc); \ - emitm_jxs((pc), emitm_jz, 2); \ - emitm_fchs(pc); \ - if (r) { \ - emitm_fstp((pc), ((r)+1)); \ - } \ - } - -# define jit_emit_neg_M_n(interp, pc, mem) { \ - jit_emit_fload_mb_n((interp), (pc), emit_EBX, (mem)); \ - emitm_ftst(pc); \ - emitm_fstw(pc); \ - emitm_sahf(pc); \ - emitm_jxs((pc), emitm_jz, 2); \ - emitm_fchs(pc); \ - jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (mem)); \ - } -#endif - -# define jit_emit_sin_r_n(pc, r) \ - if (r) { \ - emitm_fld((pc), (r)); \ - } \ - emitm_fsin(pc); \ - if (r) { \ - emitm_fstp((pc), ((r)+1)); \ - } - -# define jit_emit_cos_r_n(pc, r) \ - if (r) { \ - emitm_fld((pc), (r)); \ - } \ - emitm_fcos(pc); \ - if (r) { \ - emitm_fstp((pc), ((r)+1)); \ - } - -# define jit_emit_sqrt_r_n(pc, r) \ - if (r) { \ - emitm_fld((pc), (r)); \ - } \ - emitm_fsqrt(pc); \ - if (r) { \ - emitm_fstp((pc), ((r)+1)); \ - } - -# define jit_emit_abs_r_n(pc, r) { \ - if (r) { \ - emitm_fld((pc), (r)); \ - } \ - emitm_fabs(pc); \ - if (r) { \ - emitm_fstp((pc), ((r)+1)); \ - } \ - } - -# define jit_emit_abs_r_i(pc, r) { \ - jit_emit_test_r_i((pc), (r)); \ - emitm_jxs((pc), emitm_jns, 3); \ - jit_emit_not_r_i((pc), (r)); \ - jit_emit_inc_r_i((pc), (r)); \ - } - -# define jit_emit_abs_m_n(interp, pc, mem) { \ - jit_emit_fload_m_n((interp), (pc), (mem)); \ - emitm_fabs(pc); \ - jit_emit_fstore_m_n((pc), (mem)); \ - } - -/* Integer comparisons */ -# define jit_emit_cmp_rr(pc, reg1, reg2) \ - emitm_alul_r_r((pc), 0x39, (reg2), (reg1)) -# define jit_emit_cmp_rr_i(pc, r1, r2) jit_emit_cmp_rr((pc), (r1), (r2)) - -# define emitm_cmpl_r_m(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x3b, (reg), (b), (i), (s), (d)) - -# define emitm_cmpl_m_r(pc, reg, b, i, s, d) \ - emitm_alul_r_m((pc), 0x39, (reg), (b), (i), (s), (d)) - -# define jit_emit_cmp_ri_i(interp, pc, reg, imm) \ - emitm_alul_i_r((pc), 0x81, emit_b111, (imm), (reg)) - -/* Unconditional Jump/Call */ - -# define emitm_call_cfunc(pc, func) emitm_calll((pc), (char *)(func) - (pc) - 4) - -# define emitm_calll(pc, disp) { \ - *((pc)++) = (char) 0xe8; \ - *(long *)(pc) = (disp); (pc) += 4; } - -# define emitm_callr(pc, reg) { \ - *((pc)++) = (char) 0xff; \ - *((pc)++) = (char) 0xd0 | ((reg) - 1); } - -# define emitm_callm(pc, b, i, s, d) { \ - *((pc)++) = (char) 0xff; \ - (pc) = emit_r_X((interp), (pc), emit_reg(emit_b010), (b), (i), (s), (d)); } - -# define emitm_jumps(pc, disp) { \ - *((pc)++) = (char) 0xeb; \ - *((pc)++) = (disp); } - -# define emitm_jumpl(pc, disp) { \ - *((pc)++) = (char) 0xe9; \ - *(long *)(pc) = (disp); (pc) += 4; } - -# define emitm_jumpr(pc, reg) { \ - *((pc)++) = (char) 0xff; \ - *((pc)++) = (char)(0xe0 | ((reg) - 1)); } - -# define emitm_jumpm(pc, b, i, s, d) { \ - *((pc)++) = (char) 0xff; \ - (pc) = emit_r_X((interp), (pc), emit_reg(emit_b100), (b), (i), (s), (d)); } - -/* Conditional jumps */ - -/* Short jump - 8 bit disp */ -# define emitm_jxs(pc, code, disp) { \ - *((pc)++) = (char)(0x70 | (code)); \ - *((pc)++) = (char)(disp); } - -/* Long jump - 32 bit disp */ -# define emitm_jxl(pc, code, disp) { \ - *((pc)++) = (char) 0x0f; \ - *((pc)++) = (char)(0x80 | (code)); \ - *(long *)(pc) = (disp); (pc) += 4; } - -# define emitm_jo 0 -# define emitm_jno 1 -# define emitm_jb 2 -# define emitm_jnb 3 -# define emitm_jz 4 -# define emitm_je emitm_jz -# define emitm_jnz 5 -# define emitm_jne emitm_jnz -# define emitm_jbe 6 -# define emitm_ja 7 -# define emitm_js 8 -# define emitm_jns 9 -# define emitm_jp 10 -# define emitm_jnp 11 -# define emitm_jl 12 -# define emitm_jnl 13 -# define emitm_jle 14 -# define emitm_jg 15 - -/* set byte conditional */ -# define jit_emit_setcc_r(pc, cc, r) \ - *(pc)++ = 0x0f; \ - *(pc)++ = 0x90 + (cc); \ - *(pc)++ = (char) emit_alu_X_r(0, (r)) - -/* - * core.jit interface - * - * The new offset based versions have uppercase RM or MR inside - * That's probably only during transition time - */ - -# define jit_emit_mov_mi_i(pc, dest, immediate) \ - emitm_movl_i_m((pc), (immediate), emit_None, emit_None, emit_None, (dest)) - -# define jit_emit_mov_MI_i(interp, pc, offs, immediate) \ - emitm_movl_i_m((pc), (immediate), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_mov_rm_i(interp, pc, reg, address) \ - emitm_movl_m_r((interp), (pc), (reg), emit_None, emit_None, emit_None, (address)) - -# define jit_emit_mov_RM_i(interp, pc, reg, offs) \ - emitm_movl_m_r((interp), (pc), (reg), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_mov_mr_i(interp, pc, address, reg) \ - emitm_movl_r_m((interp), (pc), (reg), emit_None, emit_None, emit_None, (address)) - -# define jit_emit_mov_MR_i(interp, pc, offs, reg) \ - emitm_movl_r_m((interp), (pc), (reg), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_mul_RM_i(interp, pc, reg, offs) \ - emitm_smull_r_m((pc), (reg), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_sub_RM_i(interp, pc, reg, offs) \ - emitm_subl_m_r((pc), (reg), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_sub_MR_i(interp, pc, offs, reg) \ - emitm_subl_r_m((pc), (reg), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_sub_MI_i(pc, offs, imm) \ - emitm_subl_i_m((pc), (imm), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_add_RM_i(interp, pc, reg, offs) \ - emitm_addl_m_r((pc), (reg), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_add_MR_i(interp, pc, offs, reg) \ - emitm_addl_r_m((pc), (reg), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_add_MI_i(pc, offs, imm) \ - emitm_addl_i_m((pc), (imm), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_cmp_rm_i(pc, reg, address) \ - emitm_cmpl_r_m((pc), (reg), emit_None, emit_None, emit_None, (address)) - -# define jit_emit_cmp_RM_i(interp, pc, reg, offs) \ - emitm_cmpl_r_m((pc), (reg), emit_EBX, emit_None, 1, (offs)) - -# define jit_emit_cmp_MR_i(interp, pc, offs, reg) \ - emitm_cmpl_m_r((pc), (reg), emit_EBX, emit_None, 1, (offs)) - -/* high level routines, behave like real 2 register FP */ - -/* mapped float registers numbers are ST(1)-ST(4). - * scratch register is ST(0) - */ - -/* ST(i) <- numvar */ -# define jit_emit_mov_RM_n(interp, pc, r, d) { \ - jit_emit_fload_mb_n((interp), (pc), emit_EBX, (d)); \ - emitm_fstp((pc), ((r)+1)); \ -} - -/* ST(i) <= NUM_CONST */ -# define jit_emit_mov_ri_n(interp, pc, r, i) { \ - jit_emit_fload_m_n((interp), (pc), (i)); \ - emitm_fstp((pc), ((r)+1)); \ -} - -/* ST(i) <= &INT_CONST */ -# define jit_emit_mov_ri_ni(interp, pc, r, i) { \ - jit_emit_fload_m_i((interp), (pc), (i)); \ - emitm_fstp((pc), ((r)+1)); \ -} - -/* ST(i) <= INT_REG */ -# define jit_emit_mov_RM_ni(interp, pc, r, i) { \ - jit_emit_fload_mb_i((interp), (pc), (i)); \ - emitm_fstp((pc), ((r)+1)); \ -} - -/* NUM_REG(i) <= &INT_CONST - * the int const i is loaded from the code memory - */ -# define jit_emit_mov_MI_ni(interp, pc, offs, i) { \ - jit_emit_fload_m_i((interp), (pc), (i)); \ - jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (offs)); \ -} - -/* INT_REG <= ST(i) */ -# define jit_emit_mov_mr_in(pc, mem, r) { \ - emitm_fld((pc), (r)); \ - jit_emit_fstore_m_i((pc), (mem)); \ -} - -/* numvar <- ST(i) */ -# define jit_emit_mov_mr_n(pc, d, r) { \ - emitm_fld((pc), (r)); \ - jit_emit_fstore_m_n((pc), (d)); \ -} - -# define jit_emit_mov_MR_n(interp, pc, d, r) { \ - if (r) { \ - emitm_fld((pc), (r)); \ - jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (d)); \ - } \ - else { \ - jit_emit_fst_mb_n((interp), (pc), emit_EBX, (d)); \ - } \ -} - -/* ST(r1) <= ST(r2) */ -# define jit_emit_mov_rr_n(pc, r1, r2) { \ - if ((r1) != (r2)) { \ - if (r2) { \ - emitm_fld((pc), (r2)); \ - emitm_fstp((pc), ((r1)+1)); \ - } \ - else { \ - emitm_fst((pc), (r1)); \ - } \ - } \ -} - -/* ST(r1) xchg ST(r2) */ -# define jit_emit_xchg_rr_n(interp, pc, r1, r2) { \ - if ((r1) != (r2)) { \ - emitm_fld((pc), (r1)); \ - emitm_fld((pc), ((r2)+1)); \ - emitm_fstp((pc), ((r1)+2)); \ - emitm_fstp((pc), ((r2)+1)); \ - } \ -} - -# define jit_emit_xchg_RM_n(interp, pc, r, offs) { \ - emitm_fld((pc), (r)); \ - jit_emit_fload_mb_n((interp), (pc), emit_EBX, (offs)); \ - emitm_fstp((pc), ((r)+2)); \ - jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (offs)); \ -} - -# define jit_emit_xchg_MR_n(interp, pc, offs, r) { \ - emitm_fld((pc), (r)); \ - jit_emit_fload_mb_n((interp), (pc), emit_EBX, (offs)); \ - emitm_fstp((pc), ((r)+2)); \ - jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (offs)); \ -} - -# define jit_emit_finit(pc) { *((pc)++) = (char) 0xdb; *((pc)++) = (char) 0xe3; } - -/* ST(i) op= MEM */ - -# define jit_emit_xxx_rm_n(interp, op, pc, r, m) { \ - jit_emit_fload_m_n((interp), (pc), (m)); \ - emitm_f ## op ## p((pc), ((r)+1)); \ -} - -# define jit_emit_xxx_RM_n(interp, op, pc, r, offs) { \ - jit_emit_fload_mb_n((interp), (pc), emit_EBX, (offs)); \ - emitm_f ## op ## p((pc), ((r)+1)); \ -} - -/* - * float ops in two flavors: abs memory for constants, offsets for regs - */ - -# define jit_emit_add_ri_n(interp, pc, r, m) jit_emit_xxx_rm_n((interp), add, (pc), (r), (m)) -# define jit_emit_sub_ri_n(interp, pc, r, m) jit_emit_xxx_rm_n((interp), sub, (pc), (r), (m)) -# define jit_emit_mul_ri_n(interp, pc, r, m) jit_emit_xxx_rm_n((interp), mul, (pc), (r), (m)) - -# define jit_emit_add_RM_n(interp, pc, r, o) jit_emit_xxx_RM_n((interp), add, (pc), (r), (o)) -# define jit_emit_sub_RM_n(interp, pc, r, o) jit_emit_xxx_RM_n((interp), sub, (pc), (r), (o)) -# define jit_emit_mul_RM_n(interp, pc, r, o) jit_emit_xxx_RM_n((interp), mul, (pc), (r), (o)) - -/* ST(r1) += ST(r2) */ -/* r1 == 0: ST(0) <- ST(0) + ST(i) - * r2 == 0: ST(i) <- ST(0) + ST(i) - */ -# define jit_emit_add_rr_n(interp, pc, r1, r2) do { \ - if (!(r1)) { \ - emitm_fadd((pc), (r2)); \ - } \ - else if (!(r2)) { \ - emitm_faddr((pc), (r1)); \ - } \ - else { \ - emitm_fld((pc), (r2)); \ - emitm_faddp((pc), ((r1)+1)); \ - } \ - } \ - while (0) -/* - * ST(r) += INT_REG - */ -# define jit_emit_add_RM_ni(pc, r, offs) { \ - emitm_fld((pc), (r)); \ - emitm_fiadd_m((pc), emit_EBX, 0, 1, (offs)); \ - emitm_fstp((pc), ((r)+1)); \ -} - -/* ST(r1) -= ST(r2) */ -/* r1 == 0: ST(0) <- ST(0) - ST(i) - * r2 == 0: ST(i) <- ST(i) - ST(0) - */ -# define jit_emit_sub_rr_n(interp, pc, r1, r2) do { \ - if (!(r1)) { \ - emitm_fsub((pc), (r2)); \ - } \ - else if (!(r2)) { \ - emitm_fsubr((pc), (r1)); \ - } \ - else { \ - emitm_fld((pc), (r2)); \ - emitm_fsubp((pc), ((r1)+1)); \ - } \ - } \ - while (0) - -/* - * ST(r) -= INT_REG - */ -# define jit_emit_sub_RM_ni(pc, r, offs) { \ - emitm_fld((pc), (r)); \ - emitm_fisub_m((pc), emit_EBX, 0, 1, (offs)); \ - emitm_fstp((pc), ((r)+1)); \ -} - -# define jit_emit_inc_r_n(pc, r) { \ - emitm_fld1(pc); \ - emitm_faddp((pc), ((r)+1)); \ -} - -# define jit_emit_dec_r_n(pc, r) { \ - emitm_fld1(pc); \ - emitm_fsubp((pc), ((r)+1)); \ -} - -/* ST(r1) *= ST(r2) */ -/* r1 == 0: ST(0) <- ST(0) * ST(i) - * r2 == 0: ST(i) <- ST(0) * ST(i) - */ -# define jit_emit_mul_rr_n(interp, pc, r1, r2) do { \ - if (!(r1)) { \ - emitm_fmul((pc), (r2)); \ - } \ - else if (!(r2)) { \ - emitm_fmulr((pc), (r1)); \ - } \ - else { \ - emitm_fld((pc), (r2)); \ - emitm_fmulp((pc), ((r1)+1)); \ - } \ - } \ - while (0) - -/* - * ST(r) *= INT_REG - */ -# define jit_emit_mul_RM_ni(pc, r, offs) { \ - emitm_fld((pc), (r)); \ - emitm_fimul_m((pc), emit_EBX, 0, 1, (offs)); \ - emitm_fstp((pc), ((r)+1)); \ -} - -/* - * ST(r) /= INT_REG - */ -# define jit_emit_div_RM_ni(pc, r, offs) { \ - emitm_fld((pc), (r)); \ - emitm_fidiv_m((pc), emit_EBX, 0, 1, (offs)); \ - emitm_fstp((pc), ((r)+1)); \ -} - -/* test r for zero */ -# define jit_emit_test_r_n(pc, r) { \ - if (r) { \ - emitm_fxch((pc), (r)); \ - } \ - emitm_fxam(pc); \ - emitm_fstw(pc); \ - emitm_sahf(pc); \ - if (r) { \ - emitm_fxch((pc), (r)); \ - } \ -} - -enum { JIT_X86BRANCH, JIT_X86JUMP, JIT_X86CALL }; - -# define jit_emit_stack_frame_enter(pc) do { \ - emitm_pushl_r((pc), emit_EBP); \ - jit_emit_mov_rr_i((pc), emit_EBP, emit_ESP); \ -} while (0) - -# define jit_emit_stack_frame_leave(pc) do { \ - jit_emit_mov_rr_i((pc), emit_ESP, emit_EBP); \ - emitm_popl_r((pc), emit_EBP); \ -} while (0) - -# define jit_emit_end(pc) { \ - jit_emit_add_ri_i((interp), (pc), emit_ESP, 4); \ - emitm_popl_r((pc), emit_EDI); \ - emitm_popl_r((pc), emit_ESI); \ - emitm_popl_r((pc), emit_EBX); \ - emitm_popl_r((pc), emit_EBP); \ - emitm_ret(pc); \ - } - -size_t calc_signature_needs(const char *sig, int *strings); - -void * Parrot_jit_build_call_func(PARROT_INTERP, PMC *pmc_nci, - STRING *signature, int *sizeptr); - -/* - * register usage - * %edi, %esi ... mapped, preserved - * %edx, %ecx ... mapped, not preserved - * %ebx ... base pointer for register access, preserved - * %eax ... scratch, return value register - */ - -#endif /* PARROT_I386_JIT_EMIT_H_GUARD */ - -/* - * Local variables: - * c-file-style: "parrot" - * End: - * vim: expandtab shiftwidth=4: - */ From 54c0bd9df763a83808ec8498cdab96de3da1f71a Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Tue, 17 Aug 2010 12:45:46 +0000 Subject: [PATCH 018/165] re-generate MANIFEST git-svn-id: https://svn.parrot.org/parrot/trunk@48549 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/MANIFEST b/MANIFEST index d4dcc3a14e..c12d7a8706 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Sun Aug 8 16:31:42 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 17 12:44:33 2010 UT # # See below for documentation on the format of this file. # @@ -1281,8 +1281,6 @@ src/embed.c [] src/exceptions.c [] src/exit.c [] src/extend.c [] -src/frame_builder.c [] -src/frame_builder.h [] src/gc/alloc_memory.c [] src/gc/alloc_resources.c [] src/gc/api.c [] From 970aa31040cf702520ba7b0a92f380bf572c889e Mon Sep 17 00:00:00 2001 From: Andy Lester Date: Tue, 17 Aug 2010 15:43:29 +0000 Subject: [PATCH 019/165] fixed a test that was always true git-svn-id: https://svn.parrot.org/parrot/trunk@48550 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/string/primitives.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/string/primitives.c b/src/string/primitives.c index f8e0071307..43033cd004 100644 --- a/src/string/primitives.c +++ b/src/string/primitives.c @@ -329,7 +329,7 @@ Parrot_char_digit_value(SHIM_INTERP, UINTVAL character) #if PARROT_HAS_ICU return u_charDigitValue(character); #else - if ((character >= 0x30) || (character <= 0x39)) + if ((character >= 0x30) && (character <= 0x39)) return character - 0x30; return -1; #endif From 4ad3c2de96f4e51938318000aa7f99acf2a7b119 Mon Sep 17 00:00:00 2001 From: Andy Lester Date: Tue, 17 Aug 2010 15:52:29 +0000 Subject: [PATCH 020/165] added PARROT_PURE_FUNCTION annotations git-svn-id: https://svn.parrot.org/parrot/trunk@48551 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- compilers/imcc/sets.c | 1 + compilers/imcc/sets.h | 1 + include/parrot/io.h | 1 + src/io/socket_api.c | 1 + 4 files changed, 4 insertions(+) diff --git a/compilers/imcc/sets.c b/compilers/imcc/sets.c index 9590329769..33794562d6 100644 --- a/compilers/imcc/sets.c +++ b/compilers/imcc/sets.c @@ -154,6 +154,7 @@ elements. */ +PARROT_PURE_FUNCTION int set_equal(ARGIN(const Set *s1), ARGIN(const Set *s2)) { diff --git a/compilers/imcc/sets.h b/compilers/imcc/sets.h index b5f8c500b6..3b69680078 100644 --- a/compilers/imcc/sets.h +++ b/compilers/imcc/sets.h @@ -33,6 +33,7 @@ Set* set_copy(PARROT_INTERP, ARGIN(const Set *s)) __attribute__nonnull__(1) __attribute__nonnull__(2); +PARROT_PURE_FUNCTION int set_equal(ARGIN(const Set *s1), ARGIN(const Set *s2)) __attribute__nonnull__(1) __attribute__nonnull__(2); diff --git a/include/parrot/io.h b/include/parrot/io.h index 4415786200..a062fd457b 100644 --- a/include/parrot/io.h +++ b/include/parrot/io.h @@ -875,6 +875,7 @@ INTVAL Parrot_io_socket(PARROT_INTERP, FUNC_MODIFIES(*socket); PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL INTVAL Parrot_io_socket_is_closed(ARGMOD(PMC *socket)) diff --git a/src/io/socket_api.c b/src/io/socket_api.c index 2b6b71afa8..c15b939f2c 100644 --- a/src/io/socket_api.c +++ b/src/io/socket_api.c @@ -107,6 +107,7 @@ static int pio_sock[PIO_SOCK_MAX+1] = { PARROT_EXPORT +PARROT_PURE_FUNCTION PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL INTVAL From dab33399bbdcfec75c88e53881e9cd156650852c Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Tue, 17 Aug 2010 17:28:09 +0000 Subject: [PATCH 021/165] update News fore release git-svn-id: https://svn.parrot.org/parrot/trunk@48553 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- NEWS | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 308b0052fa..5d9f0cc648 100644 --- a/NEWS +++ b/NEWS @@ -1,11 +1,28 @@ # $Id$ +New in 2.7.0 +- Core + + cleanups in packfile and freeze/thaw handling + + some work on hashes + + As always bug fixes and some optimizations +- Runtime + + some runtime library cleanups +- Testing + + added more tests to improve coverage + + new codingstd test for documentation in .pmc files +- Documentation + + added documentation to .pmc files (some still missing but headers in place) + + general documentation improvements and bringing up-to-date +- NQP-rx + + Updated version included from http://github.com/perl6/nqp-rx includes + speed improvements + New in 2.6.0 - Core + Plug some memory leaks + As always, bug fixes and some optimizations - Runtime - + added (experimental) URI::Escape + + added (experimental) URI::Escape - Testing + Improved test coverage of core parrot - Documentation @@ -13,7 +30,7 @@ New in 2.6.0 - Platforms + The Fedora package 'parrot-devel' install the files for syntax-highlighting and automatic indenting for the vim editor -- NQP-rx +- NQP-rx + Updated version included from http://github.com/perl6/nqp-rx includes new or improved: regex backtracking, named assertions, interactive mode, and setting (a minimal but useful runtime library) From 39a8572964059f177d09cfe9f424d2a126d781c0 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Tue, 17 Aug 2010 19:38:38 +0000 Subject: [PATCH 022/165] [docs] Make the NEWS item about hashes a bit more informative git-svn-id: https://svn.parrot.org/parrot/trunk@48556 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 5d9f0cc648..fb42ac69f7 100644 --- a/NEWS +++ b/NEWS @@ -3,8 +3,8 @@ New in 2.7.0 - Core + cleanups in packfile and freeze/thaw handling - + some work on hashes - + As always bug fixes and some optimizations + + Hash optimizations that improve HLL startup and run time + + As always, many bug fixes and other optimizations - Runtime + some runtime library cleanups - Testing From 7e0ff1bd957ee84b0eca7acdd60a3466142a79ef Mon Sep 17 00:00:00 2001 From: "Will \"Coke\" Coleda" Date: Tue, 17 Aug 2010 21:19:30 +0000 Subject: [PATCH 023/165] fix comment leftover from legacy versions. git-svn-id: https://svn.parrot.org/parrot/trunk@48557 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- examples/languages/squaak/src/squaak.pir | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/languages/squaak/src/squaak.pir b/examples/languages/squaak/src/squaak.pir index 038cb6b5ab..cd8fe93cca 100644 --- a/examples/languages/squaak/src/squaak.pir +++ b/examples/languages/squaak/src/squaak.pir @@ -10,7 +10,7 @@ squaak.pir - A Squaak compiler. This is the base file for the Squaak compiler. This file includes the parsing and grammar rules from -the src/ directory, loads the relevant PGE libraries, +the src/ directory, loads the relevant PCT libraries, and registers the compiler under the name 'Squaak'. =head2 Functions From a08d06e73319059d4bc793a09a33bc4771ff52f1 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Wed, 18 Aug 2010 00:35:41 +0000 Subject: [PATCH 024/165] pre-release 2.7.0 commit git-svn-id: https://svn.parrot.org/parrot/trunk@48558 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- ChangeLog | 4 ++++ MANIFEST.generated | 4 ++-- README | 2 +- RESPONSIBLE_PARTIES | 2 ++ VERSION | 2 +- docs/parrothist.pod | 3 ++- docs/project/release_manager_guide.pod | 1 - include/parrot/oplib/core_ops.h | 2 +- src/ops/core_ops.c | 4 ++-- tools/util/release.json | 14 +++++++------- 10 files changed, 22 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index f7466833da..4b499f457f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ #1 $Id$ +2010.08.17 mikehh + * Released 2.7.0 + See NEWS for more. + 2010.07.10 coke * Released 2.6.0 See NEWS for more. diff --git a/MANIFEST.generated b/MANIFEST.generated index 09ce604dfa..0b4213026b 100644 --- a/MANIFEST.generated +++ b/MANIFEST.generated @@ -2,11 +2,11 @@ # See tools/dev/install_files.pl for documentation on the # format of this file. # Please re-sort this file after *EVERY* modification -blib/lib/libparrot.2.6.0.dylib [main]lib +blib/lib/libparrot.2.7.0.dylib [main]lib blib/lib/libparrot.a [main]lib blib/lib/libparrot.dylib [main]lib blib/lib/libparrot.so [main]lib -blib/lib/libparrot.so.2.6.0 [main]lib +blib/lib/libparrot.so.2.7.0 [main]lib compilers/data_json/data_json.pbc [data_json] config/gen/call_list/opengl.in [] docs/ops/bit.pod [doc] diff --git a/README b/README index 9c0de77831..2163cdd199 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -This is Parrot, version 2.6.0 +This is Parrot, version 2.7.0 ------------------------------ Parrot is Copyright (C) 2001-2010, Parrot Foundation. diff --git a/RESPONSIBLE_PARTIES b/RESPONSIBLE_PARTIES index 06ec29fd47..4e7ee374d0 100644 --- a/RESPONSIBLE_PARTIES +++ b/RESPONSIBLE_PARTIES @@ -28,6 +28,7 @@ Release Manager Bob Rogers Christoph Otto Jonathan Leto Gerd Pokorra + Michael Hind Metacommitter Allison Randal Jerry Gay @@ -87,5 +88,6 @@ Cage Cleaner James Keenan Francois Perrad Mark Glines Bruce Gray + Michael Hind General Contributor See CREDITS diff --git a/VERSION b/VERSION index e70b4523ae..24ba9a38de 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.6.0 +2.7.0 diff --git a/docs/parrothist.pod b/docs/parrothist.pod index a567126fb9..5bc67f6890 100644 --- a/docs/parrothist.pod +++ b/docs/parrothist.pod @@ -11,7 +11,7 @@ This document records Parrot source code releases, and their release managers. Simon Cozens, Jeff Goff, Steve Fink, Leo Toetsch, Chip Salzenberg, Jerry Gay, Patrick Michaud, Will "coke" Coleda, Matt Diephouse, chromatic, Allison Randal, Jonathan Worthington, Bob Rogers, Bernhard Schmalhofer, Andrew Whitworth, -Francois Perrad, Jonathan Leto. +Francois Perrad, Jonathan Leto, Michael Hind. =head1 THE RECORDS @@ -112,5 +112,6 @@ Starred release numbers indicate supported releases. Gerd 2.5.0 2010-Jun-15 "Cheops" coke 2.6.0 * 2010-Jul-20 "Red-rumped" + mikehh 2.7.0 2010-Aug-17 "Australian King" =cut diff --git a/docs/project/release_manager_guide.pod b/docs/project/release_manager_guide.pod index da7a0f4229..110809c7b4 100644 --- a/docs/project/release_manager_guide.pod +++ b/docs/project/release_manager_guide.pod @@ -413,7 +413,6 @@ The calendar of releases is available at the comp.lang.parrot google calendar, visible at L. - - Aug 17, 2010 - 2.7 - mikehh - Sep 21, 2010 - 2.8 - gerd - Oct 19, 2010 - 2.9* - gerd - Nov 16, 2010 - 2.10 - ?? diff --git a/include/parrot/oplib/core_ops.h b/include/parrot/oplib/core_ops.h index 09007ae76d..4761495853 100644 --- a/include/parrot/oplib/core_ops.h +++ b/include/parrot/oplib/core_ops.h @@ -20,7 +20,7 @@ #include "parrot/oplib.h" #include "parrot/runcore_api.h" - op_lib_t *Parrot_DynOp_core_2_6_0(PARROT_INTERP, long init); + op_lib_t *Parrot_DynOp_core_2_7_0(PARROT_INTERP, long init); opcode_t * Parrot_end(opcode_t *, PARROT_INTERP); opcode_t * Parrot_noop(opcode_t *, PARROT_INTERP); diff --git a/src/ops/core_ops.c b/src/ops/core_ops.c index 680c1b3a5d..c6ba8ff27d 100644 --- a/src/ops/core_ops.c +++ b/src/ops/core_ops.c @@ -26231,7 +26231,7 @@ static void hop_deinit(PARROT_INTERP) hop_buckets = NULL; } op_lib_t * -Parrot_DynOp_core_2_6_0(PARROT_INTERP, long init) { +Parrot_DynOp_core_2_7_0(PARROT_INTERP, long init) { /* initialize and return op_lib ptr */ if (init == 1) { @@ -26260,7 +26260,7 @@ Parrot_lib_core_ops_load(PARROT_INTERP) { PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary); - ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_6_0; + ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_7_0; dynop_register(interp, lib); return lib; } diff --git a/tools/util/release.json b/tools/util/release.json index a2d76fb324..cc4fac53d9 100644 --- a/tools/util/release.json +++ b/tools/util/release.json @@ -1,9 +1,9 @@ { - "release.version" : "2.6.0", - "release.name" : "Red-rumped", + "release.version" : "2.7.0", + "release.name" : "Australian King", "release.day" : "Tuesday", - "release.date" : "20 July 2010", - "release.nextdate" : "17 August 2010", + "release.date" : "17 August 2010", + "release.nextdate" : "21 September 2010", "web.root" : "http://parrot.org/", "web.source" : "download", @@ -11,11 +11,11 @@ "web.repository" : "https://svn.parrot.org/parrot/trunk/", "bugday.day" : "Saturday", - "bugday.date" : "14 August 2010", + "bugday.date" : "18 September 2010", "wiki.root" : "https://trac.parrot.org/parrot/wiki/", - "wiki.bugday" : "bug_day_2010_08_14", + "wiki.bugday" : "bug_day_2010_09_18", - "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/releases/supported/2.6.0/", + "ftp.path" : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.7.0/", "subversion.root" : "http://subversion.apache.org/" } From 34b34b26ede2e70e89440d4902becd0dd7d2d72c Mon Sep 17 00:00:00 2001 From: Gerd Pokorra Date: Wed, 18 Aug 2010 03:01:45 +0000 Subject: [PATCH 025/165] update to current situation git-svn-id: https://svn.parrot.org/parrot/trunk@48560 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- examples/languages/squaak/doc/tutorial_episode_1.pod | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/languages/squaak/doc/tutorial_episode_1.pod b/examples/languages/squaak/doc/tutorial_episode_1.pod index bbf51afbf2..a6d749aac3 100644 --- a/examples/languages/squaak/doc/tutorial_episode_1.pod +++ b/examples/languages/squaak/doc/tutorial_episode_1.pod @@ -219,8 +219,8 @@ appreciated. The exercises are provided at the end of each episode of this tutorial. In order to keep the length of this tutorial somewhat acceptable, not everything -can be discussed in full detail. The answers and/or solutions to these exercises -will be posted several days after the episode. +can be discussed in full detail. With episode 3 the answers and/or solutions to these exercises are at the end of each episode. The answer of the exercise from +episode 1 is at the end of episode 2. =head3 Advanced interactive mode. From 8805fda596797fac51387bb88baf9e5e617a1feb Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Wed, 18 Aug 2010 06:14:20 +0000 Subject: [PATCH 026/165] generate a pbc file for several Packfile PMCs tests and use it instead of one in t/native_pbc/, first step in TT #1712 git-svn-id: https://svn.parrot.org/parrot/trunk@48561 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 3 +- config/gen/makefiles/root.in | 13 ++++- t/pmc/testlib/number.pasm | 90 +++++++++++++++++++++++++++++++ t/pmc/testlib/packfile_common.pir | 2 +- 4 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 t/pmc/testlib/number.pasm diff --git a/MANIFEST b/MANIFEST index c12d7a8706..64342c1101 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 17 12:44:33 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 17 22:41:28 2010 UT # # See below for documentation on the format of this file. # @@ -1946,6 +1946,7 @@ t/pmc/stringiterator.t [test] t/pmc/sub.t [test] t/pmc/sys.t [test] t/pmc/task.t [test] +t/pmc/testlib/number.pasm [test] t/pmc/testlib/packfile_common.pir [test] t/pmc/threads.t [test] t/pmc/timer.t [test] diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index 7f883fa3c2..3e59323193 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -1667,10 +1667,18 @@ EXAMPLES_TEST_FILES = \ CONFIGURE_TEST_FILES = \ t/configure/*.t \ t/steps/*.t +PBC_TEST_FILES = \ + t/pmc/testlib/number.pbc + +# pbc files used for several tests +pbctestfiles: $(PARROT) $(PBC_TEST_FILES) + +t/pmc/testlib/number.pbc: t/pmc/testlib/number.pasm + $(PARROT) -o t/pmc/testlib/number.pbc t/pmc/testlib/number.pasm # Common prep for all test targets. # We probably need a complete build before running the tests. -test_prep : all +test_prep : all pbctestfiles # Run test cases with a single call of t/harness. Users have to look at only # one report. The default set of tests to run is contained in t/harness, @@ -1694,7 +1702,7 @@ smolder_coretest : corevm smoke : smolder_test # "core tests" -- test basic functionality but not ancillaries -coretest : corevm +coretest : corevm pbctestfiles $(PERL) t/harness $(EXTRA_TEST_ARGS) --core-tests # automake compatibility @@ -1944,6 +1952,7 @@ test-clean : $(RM_F) t/compilers/pge/*.pir $(RM_F) t/compilers/tge/*.pir $(RM_F) \ + $(PBC_TEST_FILES) \ "t/*/*$(O)" \ "t/*/*.out" \ "t/*/*.pasm" \ diff --git a/t/pmc/testlib/number.pasm b/t/pmc/testlib/number.pasm new file mode 100644 index 0000000000..0b71db81f2 --- /dev/null +++ b/t/pmc/testlib/number.pasm @@ -0,0 +1,90 @@ +# Copyright (C) 2009-2010, Parrot Foundation. +# $Id: $ +# This file is used from Packfile PMCs tests + + set N0, 1.0 + set N1, 4.0 + set N2, 16.0 + set N3, 64.0 + set N4, 256.0 + set N5, 1024.0 + set N6, 4096.0 + set N7, 16384.0 + set N8, 65536.0 + set N9, 262144.0 + set N10, 1048576.0 + set N11, 4194304.0 + set N12, 16777216.0 + set N13, 67108864.0 + set N14, 268435456.0 + set N15, 1073741824.0 + set N16, 4294967296.0 + set N17, 17179869184.0 + set N18, 68719476736.0 + set N19, 274877906944.0 + set N20, 1099511627776.0 + set N21, 4398046511104.0 + set N22, 17592186044416.0 + set N23, 70368744177664.0 + set N24, 281474976710656.0 + set N25, 1.12589990684262e+15 + + print N0 + print "\n" + print N1 + print "\n" + print N2 + print "\n" + print N3 + print "\n" + print N4 + print "\n" + print N5 + print "\n" + print N6 + print "\n" + print N7 + print "\n" + print N8 + print "\n" + print N9 + print "\n" + print N10 + print "\n" + print N11 + print "\n" + print N12 + print "\n" + print N13 + print "\n" + print N14 + print "\n" + print N15 + print "\n" + print N16 + print "\n" + print N17 + print "\n" + print N18 + print "\n" + print N19 + print "\n" + print N20 + print "\n" + print N21 + print "\n" + print N22 + print "\n" + print N23 + print "\n" + print N24 + print "\n" + print N25 + print "\n" + end + +# Local Variables: +# mode: pir +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4 ft=pir: diff --git a/t/pmc/testlib/packfile_common.pir b/t/pmc/testlib/packfile_common.pir index 9588d799a4..9685850175 100644 --- a/t/pmc/testlib/packfile_common.pir +++ b/t/pmc/testlib/packfile_common.pir @@ -9,7 +9,7 @@ .sub '_filename' .local string filename - filename = 't/native_pbc/number.pbc' + filename = 't/pmc/testlib/number.pbc' .return (filename) .end From e31a43122cc70a936d25c04c50c92ec795e94d9d Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Wed, 18 Aug 2010 13:09:42 +0000 Subject: [PATCH 027/165] generate a pbc file for packfileannotations test, TT #1712 git-svn-id: https://svn.parrot.org/parrot/trunk@48562 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 3 ++- config/gen/makefiles/root.in | 4 ++++ t/pmc/packfileannotations.t | 5 ++++- t/pmc/testlib/annotations.pir | 20 ++++++++++++++++++++ t/pmc/testlib/number.pasm | 3 ++- 5 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 t/pmc/testlib/annotations.pir diff --git a/MANIFEST b/MANIFEST index 64342c1101..56f2ee3e6e 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 17 22:41:28 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Wed Aug 18 12:54:57 2010 UT # # See below for documentation on the format of this file. # @@ -1946,6 +1946,7 @@ t/pmc/stringiterator.t [test] t/pmc/sub.t [test] t/pmc/sys.t [test] t/pmc/task.t [test] +t/pmc/testlib/annotations.pir [test] t/pmc/testlib/number.pasm [test] t/pmc/testlib/packfile_common.pir [test] t/pmc/threads.t [test] diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index 3e59323193..8793a2f1b7 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -1668,6 +1668,7 @@ CONFIGURE_TEST_FILES = \ t/configure/*.t \ t/steps/*.t PBC_TEST_FILES = \ + t/pmc/testlib/annotations.pbc \ t/pmc/testlib/number.pbc # pbc files used for several tests @@ -1676,6 +1677,9 @@ pbctestfiles: $(PARROT) $(PBC_TEST_FILES) t/pmc/testlib/number.pbc: t/pmc/testlib/number.pasm $(PARROT) -o t/pmc/testlib/number.pbc t/pmc/testlib/number.pasm +t/pmc/testlib/annotations.pbc: t/pmc/testlib/annotations.pir + $(PARROT) -o t/pmc/testlib/annotations.pbc t/pmc/testlib/annotations.pir + # Common prep for all test targets. # We probably need a complete build before running the tests. test_prep : all pbctestfiles diff --git a/t/pmc/packfileannotations.t b/t/pmc/packfileannotations.t index f97e31beb7..4da8ba8a43 100644 --- a/t/pmc/packfileannotations.t +++ b/t/pmc/packfileannotations.t @@ -19,6 +19,9 @@ Tests the PackfileAnnotations PMC. .include 't/pmc/testlib/packfile_common.pir' +.const string annofilename = 't/pmc/testlib/annotations.pbc' + + .sub 'main' :main .include 'test_more.pir' plan(17) @@ -42,7 +45,7 @@ Tests the PackfileAnnotations PMC. push_eh load_error $P0 = new ['FileHandle'] - $P0.'open'('t/native_pbc/annotations.pbc', 'r') + $P0.'open'(annofilename, 'r') $P0.'encoding'('binary') $S0 = $P0.'readall'() pf = new 'Packfile' diff --git a/t/pmc/testlib/annotations.pir b/t/pmc/testlib/annotations.pir new file mode 100644 index 0000000000..d670d3aa20 --- /dev/null +++ b/t/pmc/testlib/annotations.pir @@ -0,0 +1,20 @@ +# Copyright (C) 2009-2010, Parrot Foundation. +# $Id$ + +# This file is used from Packfile PMCs tests + +.sub 'main' +.annotate "file", "annotations.pir" +.annotate "creator", "Parrot Foundation" +.annotate "line", 1 + say "Hi" + say "line" +.annotate "line", 2 + .return () +.end + +# Local Variables: +# mode: pir +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4 ft=pir: diff --git a/t/pmc/testlib/number.pasm b/t/pmc/testlib/number.pasm index 0b71db81f2..fc40ecf9af 100644 --- a/t/pmc/testlib/number.pasm +++ b/t/pmc/testlib/number.pasm @@ -1,5 +1,6 @@ # Copyright (C) 2009-2010, Parrot Foundation. -# $Id: $ +# $Id$ + # This file is used from Packfile PMCs tests set N0, 1.0 From d1a291591318dea59888fac0d885790143f5d8d8 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Wed, 18 Aug 2010 13:36:35 +0000 Subject: [PATCH 028/165] remove mentions of Parrot_find_global_s and Parrot_store_global_s from docs/embed.pod, TT #1660 git-svn-id: https://svn.parrot.org/parrot/trunk@48563 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- docs/embed.pod | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/docs/embed.pod b/docs/embed.pod index dcc6a4f499..9b37222e43 100644 --- a/docs/embed.pod +++ b/docs/embed.pod @@ -298,20 +298,10 @@ C if not found. Search the namespace PMC C for an object with name C. Return the object, or NULL if not found. -=item C - -Find and return a global called C in the namespace C. Returns -C if not found. - =item C Store the PMC C into the namespace PMC C with name C. -=item C - -Sets the value of a global called C in the namespace C. Does -nothing if the global is not found. - =back =head3 Lexicals @@ -717,8 +707,6 @@ The list may also be augmented if additional functionality is required. =item C -=item C - =item C =item C @@ -1529,8 +1517,6 @@ The list may also be augmented if additional functionality is required. =item C -=item C - =item C =item C From 57e16e7dc4f4e74542cb844edc3c0ae36d1de106 Mon Sep 17 00:00:00 2001 From: Christoph Otto Date: Thu, 19 Aug 2010 02:03:11 +0000 Subject: [PATCH 029/165] [pmc] add cot and csc to the Float PMC, closing TT #481 patch courtesy of paul_the_greek++ git-svn-id: https://svn.parrot.org/parrot/trunk@48564 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/dynoplibs/trans.ops | 24 ++++++++++++++++++++ src/ops/set.ops | 3 +++ src/pmc/float.pmc | 33 ++++++++++++++++++++------- t/dynoplibs/trans-infnan.t | 31 ++++++++++++++++--------- t/dynoplibs/trans.t | 46 +++++++++++++++++++++++++++++++++++++- t/pmc/float.t | 14 +++++++++++- 6 files changed, 130 insertions(+), 21 deletions(-) diff --git a/src/dynoplibs/trans.ops b/src/dynoplibs/trans.ops index d7d83d40d4..50bc7d0ca5 100644 --- a/src/dynoplibs/trans.ops +++ b/src/dynoplibs/trans.ops @@ -105,6 +105,30 @@ inline op cosh(out NUM, in NUM) :base_math { ######################################## +=item B(out NUM, in NUM) + +Set $1 to the cotangent of $2 (given in radians). + +=cut + +inline op cot(out NUM, in NUM) :base_math { + $1 = ((FLOATVAL)1) / tan((FLOATVAL)$2); +} + +######################################## + +=item B(out NUM, in NUM) + +Set $1 to the cosecant of $2 (given in radians). + +=cut + +inline op csc(out NUM, in NUM) :base_math { + $1 = ((FLOATVAL)1) / sin((FLOATVAL)$2); +} + +######################################## + =item B(out NUM, in NUM) Set $1 to I raised to the power $2. I is the base of the natural diff --git a/src/ops/set.ops b/src/ops/set.ops index 7293e0a268..55b6355ba4 100644 --- a/src/ops/set.ops +++ b/src/ops/set.ops @@ -40,6 +40,9 @@ inline op clone(out STR, in STR) :base_mem { =item B(out INT, in NUM) +A floating-point number is truncated (rounded toward zero) when assigned +to an integer register. + =item B(out INT, invar PMC) =item B(out INT, invar PMC) diff --git a/src/pmc/float.pmc b/src/pmc/float.pmc index 4edf5bb6e0..ab63d4f835 100644 --- a/src/pmc/float.pmc +++ b/src/pmc/float.pmc @@ -77,7 +77,8 @@ Returns the value of the number. =item C -Returns an integer representation of the number (by casting). +Returns an integer representation of the number by truncating +(rounding toward zero). =cut @@ -391,6 +392,10 @@ Used to unarchive the number. =item C +=item C + +=item C + =item C =item C @@ -425,13 +430,6 @@ Return a new PMC of the type of C with I(value) of SELF. RETURN(PMC *d); } - METHOD cos() { - PMC * const d = Parrot_pmc_new(INTERP, - Parrot_get_ctx_HLL_type(INTERP, enum_class_Float)); - SET_ATTR_fv(INTERP, d, cos(SELF.get_number())); - RETURN(PMC *d); - } - METHOD asec() { PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); SET_ATTR_fv(INTERP, d, acos(1.0 / SELF.get_number())); @@ -456,12 +454,31 @@ Return a new PMC of the type of C with I(value) of SELF. RETURN(PMC *d); } + METHOD cos() { + PMC * const d = Parrot_pmc_new(INTERP, + Parrot_get_ctx_HLL_type(INTERP, enum_class_Float)); + SET_ATTR_fv(INTERP, d, cos(SELF.get_number())); + RETURN(PMC *d); + } + METHOD cosh() { PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); SET_ATTR_fv(INTERP, d, cosh(SELF.get_number())); RETURN(PMC *d); } + METHOD cot() { + PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); + SET_ATTR_fv(INTERP, d, 1.0 / tan(SELF.get_number())); + RETURN(PMC *d); + } + + METHOD csc() { + PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); + SET_ATTR_fv(INTERP, d, 1.0 / sin(SELF.get_number())); + RETURN(PMC *d); + } + METHOD exp() { PMC * const d = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); SET_ATTR_fv(INTERP, d, exp(SELF.get_number())); diff --git a/t/dynoplibs/trans-infnan.t b/t/dynoplibs/trans-infnan.t index 4903d60ed6..b1ce32f871 100644 --- a/t/dynoplibs/trans-infnan.t +++ b/t/dynoplibs/trans-infnan.t @@ -20,7 +20,7 @@ Tests for C and C handling of transcendental ops in the C d .sub main :main .include 'test_more.pir' - plan(67) + plan(70) test_exp() test_sin() @@ -36,6 +36,7 @@ Tests for C and C handling of transcendental ops in the C d test_coth() test_acot() test_sec() + test_csc() test_sech() test_asec() test_ln() @@ -232,6 +233,18 @@ Tests for C and C handling of transcendental ops in the C d is($N1, 'NaN', '... sec NaN') .end +.sub test_csc + $N0 = 'Inf' + $N1 = csc $N0 + is($N1, 'NaN', 'csc: csc Inf') + $N0 = '-Inf' + $N1 = csc $N0 + is($N1, 'NaN', '... csc -Inf') + $N0 = 'NaN' + $N1 = csc $N0 + is($N1, 'NaN', '... csc NaN') +.end + .sub test_sech $N0 = 'Inf' $N1 = sech $N0 @@ -295,20 +308,16 @@ Tests for C and C handling of transcendental ops in the C d is($N1, 'NaN', '... log2 -Inf') .end - .sub test_cot $N0 = 'Inf' - #$N1 = cot $N0 - #is($N1, 'NaN', 'cot: cot Inf') - todo(0, 'cot Inf', 'cot/coth/acot not implemented for real numbers') + $N1 = cot $N0 + is($N1, 'NaN', 'cot: cot Inf') $N0 = '-Inf' - #$N1 = cot $N0 - #is($N1, 'NaN', '... cot -Inf') - todo(0, 'cot -Inf', 'cot/coth/acot not implemented for real numbers') + $N1 = cot $N0 + is($N1, 'NaN', '... cot -Inf') $N0 = 'NaN' - #$N1 = cot $N0 - #is($N1, 'NaN', '... cot NaN') - todo(0, 'cot NaN', 'cot/coth/acot not implemented for real numbers') + $N1 = cot $N0 + is($N1, 'NaN', '... cot NaN') .end .sub test_pow diff --git a/t/dynoplibs/trans.t b/t/dynoplibs/trans.t index ed3f39ab50..0e0a95276c 100644 --- a/t/dynoplibs/trans.t +++ b/t/dynoplibs/trans.t @@ -23,7 +23,7 @@ Tests various transcendental operations .local num epsilon epsilon = _epsilon() - plan(69) + plan(77) test_sin_n(epsilon) test_sin_i(epsilon) @@ -31,8 +31,12 @@ Tests various transcendental operations test_cos_i(epsilon) test_tan_n(epsilon) test_tan_i(epsilon) + test_cot_n(epsilon) + test_cot_i(epsilon) test_sec_n(epsilon) test_sec_i(epsilon) + test_csc_n(epsilon) + test_csc_i(epsilon) test_atan_n(epsilon) test_atan_i(epsilon) test_asin_n(epsilon) @@ -137,6 +141,26 @@ Tests various transcendental operations is($N0, 1.557408, "tan(1)", epsilon) .end +.sub test_cot_n + .param num epsilon + + $N0 = cot 0.5 + is($N0, 1.8305, "cot(0.5)", epsilon) + + $N0 = cot 1.0 + is($N0, 0.64209, "cot(1.0)", epsilon) +.end + +.sub test_cot_i + .param num epsilon + + $N0 = cot 1 + is($N0, 0.64209, "cot(1)", epsilon) + + $N0 = cot 2 + is($N0, -0.45766, "cot(2)", epsilon) +.end + .sub test_sec_n .param num epsilon @@ -153,6 +177,26 @@ Tests various transcendental operations is($N1, 1.850816, "sec(1)", epsilon) .end +.sub test_csc_n + .param num epsilon + + $N0 = csc 0.5 + is($N0, 2.0858, "csc(0.5)", epsilon) + + $N0 = csc 1.0 + is($N0, 1.1884, "csc(1.0)", epsilon) +.end + +.sub test_csc_i + .param num epsilon + + $N0 = csc 1 + is($N0, 1.1884, "csc(1)", epsilon) + + $N0 = csc 2 + is($N0, 1.0998, "csc(2)", epsilon) +.end + .sub test_atan_n .param num epsilon diff --git a/t/pmc/float.t b/t/pmc/float.t index 55e4f9b32d..07bbd26ca7 100644 --- a/t/pmc/float.t +++ b/t/pmc/float.t @@ -16,7 +16,7 @@ Tests the Float PMC. =cut -.const int TESTS = 162 +.const int TESTS = 166 .const num PRECISION = 0.000001 .sub 'test' :main @@ -78,10 +78,12 @@ Tests the Float PMC. log10_method() log2_method() sec_method() + csc_method() sech_method() sin_method() sinh_method() tan_method() + cot_method() tanh_method() sqrt_method() .end @@ -998,6 +1000,11 @@ Tests the Float PMC. test_method('sec', 0.5, 1.139493927) .end +.sub 'csc_method' + test_method('csc', 0.5, 2.0858296) + test_method('csc', 1.0, 1.1883951) +.end + .sub 'sech_method' test_method('sech', 0.0, 1.0) test_method('sech', 0.5, 0.886818884) @@ -1018,6 +1025,11 @@ Tests the Float PMC. test_method('tan', 0.5, 0.546302490) .end +.sub 'cot_method' + test_method('cot', 0.5, 1.8304877) + test_method('cot', 1.0, 0.64209262) +.end + .sub 'tanh_method' test_method('tanh', 0.0, 0.0) test_method('tanh', 0.5, 0.462117157) From 4190e6f74859de917a2a045583b1032d60d3bb63 Mon Sep 17 00:00:00 2001 From: chromatic Date: Thu, 19 Aug 2010 05:53:12 +0000 Subject: [PATCH 030/165] [str] Revised STRING iterator interface (TT #1456) These two patches from Nick Wellnhofer improve the algorithmic performance of STRING iteration especially for variable-width encodings. git-svn-id: https://svn.parrot.org/parrot/trunk@48565 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/encoding.h | 20 ++- include/parrot/string.h | 17 +- include/parrot/string_funcs.h | 35 ++++ src/io/utf8.c | 6 +- src/pmc/stringiterator.pmc | 200 ++++++++++++++-------- src/string/api.c | 218 +++++++++++++++++------- src/string/charset/ascii.c | 56 ++---- src/string/charset/iso-8859-1.c | 24 +-- src/string/charset/unicode.c | 61 +++---- src/string/encoding/fixed_8.c | 154 +++++++++++------ src/string/encoding/ucs2.c | 262 ++++++++++++++++------------ src/string/encoding/ucs4.c | 228 +++++++++++++++---------- src/string/encoding/utf16.c | 291 +++++++++++++++++++++++--------- src/string/encoding/utf8.c | 275 +++++++++++++++++++----------- 14 files changed, 1190 insertions(+), 657 deletions(-) diff --git a/include/parrot/encoding.h b/include/parrot/encoding.h index 84d42ebf9c..0aa07f9c57 100644 --- a/include/parrot/encoding.h +++ b/include/parrot/encoding.h @@ -30,8 +30,16 @@ typedef size_t (*encoding_hash_t)(PARROT_INTERP, ARGIN(const STRING *s), size_ struct string_iterator_t; /* s. parrot/string.h */ -typedef void (*encoding_iter_init_t)(PARROT_INTERP, const STRING *src, - struct string_iterator_t *); +typedef UINTVAL (*encoding_iter_get_t)( + PARROT_INTERP, const STRING *str, const String_iter *i, INTVAL offset); +typedef void (*encoding_iter_skip_t)( + PARROT_INTERP, const STRING *str, String_iter *i, INTVAL skip); +typedef UINTVAL (*encoding_iter_get_and_advance_t)( + PARROT_INTERP, const STRING *str, String_iter *i); +typedef void (*encoding_iter_set_and_advance_t)( + PARROT_INTERP, STRING *str, String_iter *i, UINTVAL c); +typedef void (*encoding_iter_set_position_t)( + PARROT_INTERP, const STRING *str, String_iter *i, UINTVAL pos); struct _encoding { ARGIN(const char *name); @@ -44,9 +52,13 @@ struct _encoding { encoding_get_bytes_t get_bytes; encoding_codepoints_t codepoints; encoding_bytes_t bytes; - encoding_iter_init_t iter_init; encoding_find_cclass_t find_cclass; encoding_hash_t hash; + encoding_iter_get_t iter_get; + encoding_iter_skip_t iter_skip; + encoding_iter_get_and_advance_t iter_get_and_advance; + encoding_iter_set_and_advance_t iter_set_and_advance; + encoding_iter_set_position_t iter_set_position; }; typedef struct _encoding ENCODING; @@ -209,8 +221,6 @@ void Parrot_str_internal_register_encoding_names(PARROT_INTERP) ((src)->encoding)->codepoints((i), (src)) #define ENCODING_BYTES(i, src) \ ((src)->encoding)->bytes((i), (src)) -#define ENCODING_ITER_INIT(i, src, iter) \ - ((src)->encoding)->iter_init((i), (src), (iter)) #define ENCODING_FIND_CCLASS(i, src, typetable, flags, pos, end) \ ((src)->encoding)->find_cclass((i), (src), (typetable), (flags), (pos), (end)) #define ENCODING_HASH(i, src, seed) \ diff --git a/include/parrot/string.h b/include/parrot/string.h index 8914db32e6..55df3c3860 100644 --- a/include/parrot/string.h +++ b/include/parrot/string.h @@ -30,14 +30,23 @@ typedef enum Forward_flag { /* String iterator */ typedef struct string_iterator_t { - const STRING *str; UINTVAL bytepos; UINTVAL charpos; - UINTVAL (*get_and_advance)(PARROT_INTERP, struct string_iterator_t *i); - void (*set_and_advance)(PARROT_INTERP, struct string_iterator_t *i, UINTVAL c); - void (*set_position)(PARROT_INTERP, struct string_iterator_t *i, UINTVAL pos); } String_iter; +#define STRING_ITER_INIT(i, iter) \ + (iter)->charpos = (iter)->bytepos = 0 +#define STRING_ITER_GET(i, str, iter, offset) \ + ((str)->encoding)->iter_get((i), (str), (iter), (offset)) +#define STRING_ITER_SKIP(i, str, iter, skip) \ + ((str)->encoding)->iter_skip((i), (str), (iter), (skip)) +#define STRING_ITER_GET_AND_ADVANCE(i, str, iter) \ + ((str)->encoding)->iter_get_and_advance((i), (str), (iter)) +#define STRING_ITER_SET_AND_ADVANCE(i, str, iter, c) \ + ((str)->encoding)->iter_set_and_advance((i), (str), (iter), (c)) +#define STRING_ITER_SET_POSITION(i, str, iter, pos) \ + ((str)->encoding)->iter_set_position((i), (str), (iter), (pos)) + #define STREQ(x, y) (strcmp((x), (y))==0) #define STRNEQ(x, y) (strcmp((x), (y))!=0) diff --git a/include/parrot/string_funcs.h b/include/parrot/string_funcs.h index 7c352650e7..63501fe692 100644 --- a/include/parrot/string_funcs.h +++ b/include/parrot/string_funcs.h @@ -225,6 +225,31 @@ PARROT_HOT PARROT_PURE_FUNCTION INTVAL Parrot_str_is_null(SHIM_INTERP, ARGIN_NULLOK(const STRING *s)); +PARROT_EXPORT +INTVAL Parrot_str_iter_index(PARROT_INTERP, + ARGIN(const STRING *src), + ARGMOD(String_iter *start), + ARGOUT(String_iter *end), + ARGIN(const STRING *search)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3) + __attribute__nonnull__(4) + __attribute__nonnull__(5) + FUNC_MODIFIES(*start) + FUNC_MODIFIES(*end); + +PARROT_EXPORT +PARROT_CANNOT_RETURN_NULL +PARROT_WARN_UNUSED_RESULT +STRING * Parrot_str_iter_substr(PARROT_INTERP, + ARGIN(const STRING *str), + ARGIN(const String_iter *l), + ARGIN_NULLOK(const String_iter *r)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3); + PARROT_EXPORT PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL @@ -559,6 +584,16 @@ STRING* Parrot_str_from_uint(PARROT_INTERP, PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(s)) #define ASSERT_ARGS_Parrot_str_is_null __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) +#define ASSERT_ARGS_Parrot_str_iter_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(src) \ + , PARROT_ASSERT_ARG(start) \ + , PARROT_ASSERT_ARG(end) \ + , PARROT_ASSERT_ARG(search)) +#define ASSERT_ARGS_Parrot_str_iter_substr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(l)) #define ASSERT_ARGS_Parrot_str_join __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(ar)) diff --git a/src/io/utf8.c b/src/io/utf8.c index a4dc6a4b87..1c5b03443d 100644 --- a/src/io/utf8.c +++ b/src/io/utf8.c @@ -57,7 +57,7 @@ Parrot_io_read_utf8(PARROT_INTERP, ARGMOD(PMC *filehandle), s->encoding = Parrot_utf8_encoding_ptr; /* count chars, verify utf8 */ - Parrot_utf8_encoding_ptr->iter_init(interp, s, &iter); + STRING_ITER_INIT(interp, &iter); while (iter.bytepos < s->bufused) { if (iter.bytepos + 4 > s->bufused) { @@ -84,8 +84,6 @@ Parrot_io_read_utf8(PARROT_INTERP, ARGMOD(PMC *filehandle), s->strlen = iter.charpos; s = Parrot_str_concat(interp, s, s2); - /* String is updated. Poke into iterator to replace old string */ - iter.str = s; *buf = s; len += len2 + 1; @@ -93,7 +91,7 @@ Parrot_io_read_utf8(PARROT_INTERP, ARGMOD(PMC *filehandle), } } ok: - iter.get_and_advance(interp, &iter); + Parrot_utf8_encoding_ptr->iter_get_and_advance(interp, *buf, &iter); } s->strlen = iter.charpos; return len; diff --git a/src/pmc/stringiterator.pmc b/src/pmc/stringiterator.pmc index ce9001ccc0..bda81b777e 100644 --- a/src/pmc/stringiterator.pmc +++ b/src/pmc/stringiterator.pmc @@ -27,11 +27,9 @@ Implementation of Iterator for String PMC. /* HEADERIZER END: static */ pmclass StringIterator auto_attrs extends Iterator { - ATTR PMC *string; /* String to iterate over */ - ATTR INTVAL pos; /* Current position of iterator for forward iterator */ - /* Previous position of iterator for reverse iterator */ - ATTR INTVAL length; /* Length of C */ - ATTR INTVAL reverse; /* Direction of iteration. 1 - for reverse iteration */ + ATTR STRING *str_val; /* String to iterate over */ + ATTR String_iter iter; /* String iterator */ + ATTR INTVAL reverse; /* Direction of iteration. 1 - for reverse iteration */ /* @@ -43,10 +41,13 @@ Initialize StringIterator. */ VTABLE void init_pmc(PMC *string) { - SET_ATTR_string(INTERP, SELF, string); + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + STRING * const str_val = VTABLE_get_string(INTERP, string); + + SET_ATTR_str_val(INTERP, SELF, str_val); + STRING_ITER_INIT(INTERP, iter); + SET_ATTR_reverse(INTERP, SELF, ITERATE_FROM_START); - /* by default, iterate from start */ - SELF.set_integer_native(ITERATE_FROM_START); PObj_custom_mark_SET(SELF); } @@ -61,9 +62,10 @@ Marks the current idx/key and the aggregate as live. */ VTABLE void mark() { - PMC *string; - GET_ATTR_string(INTERP, SELF, string); - Parrot_gc_mark_PMC_alive(INTERP, string); + STRING *str_val; + + GET_ATTR_str_val(INTERP, SELF, str_val); + Parrot_gc_mark_STRING_alive(INTERP, str_val); } /* @@ -74,15 +76,21 @@ Marks the current idx/key and the aggregate as live. */ VTABLE PMC* clone() { - Parrot_StringIterator_attributes * const attrs = - PARROT_STRINGITERATOR(SELF); - PMC * const clone = - Parrot_pmc_new_init(INTERP, enum_class_StringIterator, attrs->string); - Parrot_StringIterator_attributes * const clone_attrs = - PARROT_STRINGITERATOR(clone); - - clone_attrs->pos = attrs->pos; - clone_attrs->reverse = attrs->reverse; + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + PMC *clone, *str_pmc; + String_iter *clone_iter; + STRING *str_val; + INTVAL reverse; + + str_pmc = Parrot_pmc_new(INTERP, enum_class_String); + GET_ATTR_str_val(INTERP, SELF, str_val); + VTABLE_set_string_native(INTERP, str_pmc, str_val); + clone = Parrot_pmc_new_init(INTERP, enum_class_StringIterator, str_pmc); + clone_iter = &PARROT_STRINGITERATOR(clone)->iter; + *clone_iter = *iter; + GET_ATTR_reverse(INTERP, SELF, reverse); + SET_ATTR_reverse(INTERP, clone, reverse); + return clone; } @@ -111,12 +119,17 @@ Returns the number of remaining elements in the C. */ VTABLE INTVAL elements() { - Parrot_StringIterator_attributes * const attrs = - PARROT_STRINGITERATOR(SELF); - if (attrs->reverse) - return attrs->pos; + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + STRING *str_val; + INTVAL reverse; + + GET_ATTR_str_val(INTERP, SELF, str_val); + GET_ATTR_reverse(INTERP, SELF, reverse); + + if (reverse) + return iter->charpos; else - return attrs->length - attrs->pos; + return str_val->strlen - iter->charpos; } VTABLE INTVAL get_integer() { @@ -137,20 +150,19 @@ Reset the Iterator. C must be one of */ VTABLE void set_integer_native(INTVAL value) { - Parrot_StringIterator_attributes * const attrs = - PARROT_STRINGITERATOR(SELF); - switch (value) { - case ITERATE_FROM_START: - attrs->reverse = 0; - attrs->pos = 0; - attrs->length = VTABLE_elements(INTERP, attrs->string); - break; - case ITERATE_FROM_END: - attrs->reverse = 1; - attrs->pos = attrs->length - = VTABLE_elements(INTERP, attrs->string); - break; - default: + STRING *str_val; + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + + GET_ATTR_str_val(INTERP, SELF, str_val); + if (value == ITERATE_FROM_START) { + SET_ATTR_reverse(INTERP, SELF, 0); + STRING_ITER_SET_POSITION(INTERP, str_val, iter, 0); + } + else if (value == ITERATE_FROM_END) { + SET_ATTR_reverse(INTERP, SELF, 1); + STRING_ITER_SET_POSITION(INTERP, str_val, iter, str_val->strlen); + } + else { Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION, "Wrong direction for StringIterator"); } @@ -167,9 +179,13 @@ Returns this Iterator's string. */ VTABLE PMC *get_pmc() { - PMC *string; - GET_ATTR_string(INTERP, SELF, string); - return string ? string : PMCNULL; + PMC * const string = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type( + interp, enum_class_String)); + STRING *str_val; + + GET_ATTR_str_val(INTERP, SELF, str_val); + VTABLE_set_string_native(interp, string, str_val); + return string; } /* @@ -182,17 +198,20 @@ Shift next character from C as PMC. */ VTABLE PMC *shift_pmc() { - Parrot_StringIterator_attributes * const attrs = - PARROT_STRINGITERATOR(SELF); + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; PMC *ret; + STRING *str_val, *substr; + const String_iter old_iter = *iter; - if (attrs->pos >= attrs->length) + GET_ATTR_str_val(INTERP, SELF, str_val); + if (iter->charpos >= str_val->strlen) Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS, "StopIteration"); ret = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp, enum_class_String)); - VTABLE_set_string_native(INTERP, ret, - VTABLE_get_string_keyed_int(INTERP, attrs->string, attrs->pos++)); + STRING_ITER_SKIP(INTERP, str_val, iter, 1); + substr = Parrot_str_iter_substr(INTERP, str_val, &old_iter, iter); + VTABLE_set_string_native(INTERP, ret, substr); return ret; } @@ -206,14 +225,17 @@ Shift next character from C. */ VTABLE STRING *shift_string() { - Parrot_StringIterator_attributes * const attrs = - PARROT_STRINGITERATOR(SELF); + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + STRING *str_val; + const String_iter old_iter = *iter; - if (attrs->pos >= attrs->length) + GET_ATTR_str_val(INTERP, SELF, str_val); + if (iter->charpos >= str_val->strlen) Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS, "StopIteration"); - return VTABLE_get_string_keyed_int(INTERP, attrs->string, attrs->pos++); + STRING_ITER_SKIP(INTERP, str_val, iter, 1); + return Parrot_str_iter_substr(INTERP, str_val, &old_iter, iter); } /* @@ -226,14 +248,15 @@ Shift next character code from C. */ VTABLE INTVAL shift_integer() { - Parrot_StringIterator_attributes * const attrs = - PARROT_STRINGITERATOR(SELF); + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + STRING *str_val; - if (attrs->pos >= attrs->length) + GET_ATTR_str_val(INTERP, SELF, str_val); + if (iter->charpos >= str_val->strlen) Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS, "StopIteration"); - return VTABLE_get_integer_keyed_int(INTERP, attrs->string, attrs->pos++); + return STRING_ITER_GET_AND_ADVANCE(INTERP, str_val, iter); } /* @@ -246,17 +269,21 @@ Shift "next" character from C for reverse iterator as PMC. */ VTABLE PMC *pop_pmc() { - Parrot_StringIterator_attributes * const attrs = - PARROT_STRINGITERATOR(SELF); + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + STRING *str_val, *substr; PMC *ret; + const String_iter old_iter = *iter; - if (!STATICSELF.get_bool()) + GET_ATTR_str_val(INTERP, SELF, str_val); + /* Shouldn't this test be (iter->charpos <= 0) ? */ + if (SELF.elements() <= 0) Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS, "StopIteration"); ret = Parrot_pmc_new(INTERP, Parrot_get_ctx_HLL_type(interp, enum_class_String)); - VTABLE_set_string_native(INTERP, ret, - VTABLE_get_string_keyed_int(INTERP, attrs->string, --attrs->pos)); + STRING_ITER_SKIP(INTERP, str_val, iter, -1); + substr = Parrot_str_iter_substr(INTERP, str_val, iter, &old_iter); + VTABLE_set_string_native(INTERP, ret, substr); return ret; } @@ -270,14 +297,18 @@ Shift "next" character from C for reverse iterator. */ VTABLE STRING *pop_string() { - Parrot_StringIterator_attributes * const attrs = - PARROT_STRINGITERATOR(SELF); + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + STRING *str_val; + const String_iter old_iter = *iter; - if (!STATICSELF.get_bool()) + GET_ATTR_str_val(INTERP, SELF, str_val); + /* Shouldn't this test be (iter->charpos <= 0) ? */ + if (SELF.elements() <= 0) Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS, "StopIteration"); - return VTABLE_get_string_keyed_int(INTERP, attrs->string, --attrs->pos); + STRING_ITER_SKIP(INTERP, str_val, iter, -1); + return Parrot_str_iter_substr(INTERP, str_val, iter, &old_iter); } /* @@ -290,14 +321,17 @@ Shift "next" character code from C for reverse iterator. */ VTABLE INTVAL pop_integer() { - Parrot_StringIterator_attributes * const attrs = - PARROT_STRINGITERATOR(SELF); + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + STRING *str_val; - if (!STATICSELF.get_bool()) + GET_ATTR_str_val(INTERP, SELF, str_val); + /* Shouldn't this test be (iter->charpos <= 0) ? */ + if (SELF.elements() <= 0) Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS, "StopIteration"); - return VTABLE_get_integer_keyed_int(INTERP, attrs->string, --attrs->pos); + STRING_ITER_SKIP(INTERP, str_val, iter, -1); + return STRING_ITER_GET(INTERP, str_val, iter, 0); } /* @@ -311,8 +345,16 @@ Get integer value of current position plus idx. */ VTABLE INTVAL get_integer_keyed_int(INTVAL idx) { - return VTABLE_get_integer_keyed_int(INTERP, STATICSELF.get_pmc(), - PARROT_STRINGITERATOR(SELF)->pos + idx); + String_iter * const iter = &PARROT_STRINGITERATOR(SELF)->iter; + STRING *str_val; + const UINTVAL offset = iter->charpos + idx; + + GET_ATTR_str_val(INTERP, SELF, str_val); + if (offset >= str_val->strlen) + Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS, + "StopIteration"); + + return STRING_ITER_GET(INTERP, str_val, iter, idx); } /* @@ -326,8 +368,22 @@ Get string value of current position plus idx. */ VTABLE STRING *get_string_keyed_int(INTVAL idx) { - return VTABLE_get_string_keyed_int(INTERP, STATICSELF.get_pmc(), - PARROT_STRINGITERATOR(SELF)->pos + idx); + String_iter iter = PARROT_STRINGITERATOR(SELF)->iter; + String_iter next_iter; + STRING *str_val; + const UINTVAL offset = iter.charpos + idx; + + GET_ATTR_str_val(INTERP, SELF, str_val); + if (offset >= str_val->strlen) + Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS, + "StopIteration"); + + if (idx != 0) + STRING_ITER_SKIP(INTERP, str_val, &iter, idx); + next_iter = iter; + STRING_ITER_SKIP(INTERP, str_val, &next_iter, 1); + + return Parrot_str_iter_substr(INTERP, str_val, &iter, &next_iter); } } diff --git a/src/string/api.c b/src/string/api.c index adf03467de..3a6f805b96 100644 --- a/src/string/api.c +++ b/src/string/api.c @@ -1104,6 +1104,104 @@ Parrot_str_substr(PARROT_INTERP, return CHARSET_GET_CODEPOINTS(interp, src, true_offset, true_length); } +/* + +=item C + +Returns the substring between iterators C and C. + +=cut + +*/ + +PARROT_EXPORT +PARROT_CANNOT_RETURN_NULL +PARROT_WARN_UNUSED_RESULT +STRING * +Parrot_str_iter_substr(PARROT_INTERP, + ARGIN(const STRING *str), + ARGIN(const String_iter *l), ARGIN_NULLOK(const String_iter *r)) +{ + ASSERT_ARGS(Parrot_str_iter_substr) + STRING *dest = Parrot_str_copy(interp, str); + + dest->strstart = (char *)dest->strstart + l->bytepos; + + if (r == NULL) { + dest->bufused = str->bufused - l->bytepos; + dest->strlen = str->strlen - l->charpos; + } + else { + dest->bufused = r->bytepos - l->bytepos; + dest->strlen = r->charpos - l->charpos; + } + + dest->hashval = 0; + + return dest; +} + +/* + +=item C + +Find the next occurence of STRING C in STRING C starting at +String_iter C. If C is found C is modified to mark the +beginning of C and String_iter C is set to the character after +C in C. Returns the character position where C was found +or -1 if it wasn't found. + +=cut + +*/ + +PARROT_EXPORT +INTVAL +Parrot_str_iter_index(PARROT_INTERP, + ARGIN(const STRING *src), + ARGMOD(String_iter *start), ARGOUT(String_iter *end), + ARGIN(const STRING *search)) +{ + ASSERT_ARGS(Parrot_str_iter_index) + String_iter search_iter, search_start, next_start; + const UINTVAL len = search->strlen; + UINTVAL c0; + + if (len == 0) { + *end = *start; + return start->charpos; + } + + STRING_ITER_INIT(interp, &search_iter); + c0 = STRING_ITER_GET_AND_ADVANCE(interp, search, &search_iter); + search_start = search_iter; + next_start = *start; + + while (start->charpos + len <= src->strlen) { + UINTVAL c1 = STRING_ITER_GET_AND_ADVANCE(interp, src, &next_start); + + if (c1 == c0) { + UINTVAL c2; + *end = next_start; + + do { + if (search_iter.charpos >= len) + return start->charpos; + c1 = STRING_ITER_GET_AND_ADVANCE(interp, src, end); + c2 = STRING_ITER_GET_AND_ADVANCE(interp, search, &search_iter); + } while (c1 == c2); + + search_iter = search_start; + } + + *start = next_start; + } + + return -1; +} + /* @@ -1145,7 +1243,7 @@ Parrot_str_replace(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL true_offset = (UINTVAL)offset; UINTVAL true_length = (UINTVAL)length; - UINTVAL start_byte, end_byte; + UINTVAL start_byte, end_byte, start_char, end_char; INTVAL buf_size; if (STRING_IS_NULL(src)) { @@ -1181,13 +1279,15 @@ Parrot_str_replace(PARROT_INTERP, ARGIN(const STRING *src), } /* get byte position of the part that will be replaced */ - ENCODING_ITER_INIT(interp, src, &iter); + STRING_ITER_INIT(interp, &iter); - iter.set_position(interp, &iter, true_offset); + STRING_ITER_SET_POSITION(interp, src, &iter, true_offset); start_byte = iter.bytepos; + start_char = iter.charpos; - iter.set_position(interp, &iter, true_offset + true_length); + STRING_ITER_SKIP(interp, src, &iter, true_length); end_byte = iter.bytepos; + end_char = iter.charpos; /* not possible.... */ if (end_byte < start_byte) @@ -1226,7 +1326,7 @@ Parrot_str_replace(PARROT_INTERP, ARGIN(const STRING *src), (char *)src->strstart + end_byte, src->bufused - end_byte); - dest->strlen = CHARSET_CODEPOINTS(interp, dest); + dest->strlen = src->strlen - (end_char - start_char) + rep->strlen; dest->hashval = 0; return dest; @@ -1252,7 +1352,7 @@ Parrot_str_chopn(PARROT_INTERP, ARGIN(const STRING *s), INTVAL n) ASSERT_ARGS(Parrot_str_chopn) STRING * const chopped = Parrot_str_copy(interp, s); - UINTVAL new_length, uchar_size; + UINTVAL new_length; if (n < 0) { new_length = -n; @@ -1273,23 +1373,23 @@ Parrot_str_chopn(PARROT_INTERP, ARGIN(const STRING *s), INTVAL n) return chopped; } - uchar_size = chopped->bufused / chopped->strlen; - chopped->strlen = new_length; - if (chopped->encoding == Parrot_fixed_8_encoding_ptr) { chopped->bufused = new_length; } else if (chopped->encoding == Parrot_ucs2_encoding_ptr) { + const UINTVAL uchar_size = chopped->bufused / chopped->strlen; chopped->bufused = new_length * uchar_size; } else { String_iter iter; - ENCODING_ITER_INIT(interp, s, &iter); - iter.set_position(interp, &iter, new_length); + STRING_ITER_INIT(interp, &iter); + STRING_ITER_SET_POSITION(interp, s, &iter, new_length); chopped->bufused = iter.bytepos; } + chopped->strlen = new_length; + return chopped; } @@ -1860,13 +1960,12 @@ Parrot_str_to_int(PARROT_INTERP, ARGIN_NULLOK(const STRING *s)) int sign = 1; UINTVAL i = 0; String_iter iter; - UINTVAL offs; number_parse_state state = parse_start; - ENCODING_ITER_INIT(interp, s, &iter); + STRING_ITER_INIT(interp, &iter); - for (offs = 0; (state != parse_end) && (offs < s->strlen); ++offs) { - const UINTVAL c = iter.get_and_advance(interp, &iter); + while (state != parse_end && iter.charpos < s->strlen) { + const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, s, &iter); /* Check for overflow */ if (c > 255) break; @@ -1956,17 +2055,16 @@ Parrot_str_to_num(PARROT_INTERP, ARGIN(const STRING *s)) int d_length = 0; int check_nan = 0; /* Check for NaN and Inf after main loop */ String_iter iter; - UINTVAL offs; number_parse_state state = parse_start; if (STRING_IS_NULL(s)) return 0.0; - ENCODING_ITER_INIT(interp, s, &iter); + STRING_ITER_INIT(interp, &iter); - /* Handcrafter FSM to read float value */ - for (offs = 0; (state != parse_end) && (offs < s->strlen); ++offs) { - const UINTVAL c = iter.get_and_advance(interp, &iter); + /* Handcrafted FSM to read float value */ + while (state != parse_end && iter.charpos < s->strlen) { + const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, s, &iter); /* Check for overflow */ if (c > 255) break; @@ -2415,11 +2513,11 @@ Parrot_str_escape_truncate(PARROT_INTERP, Parrot_fixed_8_encoding_ptr, Parrot_ascii_charset_ptr, 0); /* more work TODO */ - ENCODING_ITER_INIT(interp, src, &iter); + STRING_ITER_INIT(interp, &iter); dp = (unsigned char *)result->strstart; for (i = 0; len > 0; --len) { - UINTVAL c = iter.get_and_advance(interp, &iter); + UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter); if (c < 0x7f) { /* process ASCII chars */ if (i >= charlen - 2) { @@ -2559,17 +2657,17 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), Parrot_gc_allocate_string_storage(interp, result, reserved); result->bufused = reserved; - src->encoding->iter_init(interp, src, &itersrc); - encoding->iter_init(interp, result, &iterdest); + STRING_ITER_INIT(interp, &itersrc); + STRING_ITER_INIT(interp, &iterdest); while (itersrc.bytepos < srclen) { - INTVAL c = itersrc.get_and_advance(interp, &itersrc); + INTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); INTVAL next; do { pending = 0; next = c; if (c == '\\') { - c = itersrc.get_and_advance(interp, &itersrc); + c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); switch (c) { /* Common one char sequences */ case 'a': next = '\a'; break; @@ -2582,7 +2680,7 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), case 'e': next = '\e'; break; /* Escape character */ case 'c': - c = itersrc.get_and_advance(interp, &itersrc); + c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); /* This assumes ascii-alike encoding */ if (c < 'A' || c > 'Z') throw_illegal_escape(interp); @@ -2590,11 +2688,11 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), break; case 'x': digcount = 0; - c = itersrc.get_and_advance(interp, &itersrc); + c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); if (c == '{') { /* \x{h..h} 1..8 hex digits */ while (itersrc.bytepos < srclen) { - c = itersrc.get_and_advance(interp, &itersrc); + c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); if (c == '}') break; if (!isxdigit(c)) @@ -2618,7 +2716,7 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), pending = 0; break; } - c = itersrc.get_and_advance(interp, &itersrc); + c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); } } if (digcount == 0) @@ -2629,7 +2727,7 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), case 'u': /* \uhhhh 4 hex digits */ for (digcount = 0; digcount < 4; ++digcount) { - c = itersrc.get_and_advance(interp, &itersrc); + c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); if (!isxdigit(c)) throw_illegal_escape(interp); digbuf[digcount] = c; @@ -2640,7 +2738,7 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), case 'U': /* \Uhhhhhhhh 8 hex digits */ for (digcount = 0; digcount < 8; ++digcount) { - c = itersrc.get_and_advance(interp, &itersrc); + c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); if (!isxdigit(c)) throw_illegal_escape(interp); digbuf[digcount] = c; @@ -2653,7 +2751,7 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), /* \ooo 1..3 oct digits */ digbuf[0] = c; for (digcount = 1; digcount < 3; ++digcount) { - c = itersrc.get_and_advance(interp, &itersrc); + c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); if (c < '0' || c > '7') break; digbuf[digcount] = c; @@ -2667,7 +2765,7 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), next = c; } } - iterdest.set_and_advance(interp, &iterdest, next); + STRING_ITER_SET_AND_ADVANCE(interp, result, &iterdest, next); } while (pending); } result->bufused = iterdest.bytepos; @@ -2748,7 +2846,7 @@ Parrot_str_unescape(PARROT_INTERP, encoding = result->encoding; } - encoding->iter_init(interp, result, &iter); + STRING_ITER_INIT(interp, &iter); for (offs = d = 0; offs < clength; ++offs) { r = (Parrot_UInt4)((unsigned char *)result->strstart)[offs]; @@ -2771,7 +2869,7 @@ Parrot_str_unescape(PARROT_INTERP, } PARROT_ASSERT(d < offs); - iter.set_and_advance(interp, &iter, r); + encoding->iter_set_and_advance(interp, result, &iter, r); ++d; } @@ -3269,8 +3367,10 @@ Parrot_str_split(PARROT_INTERP, ARGIN_NULLOK(const STRING *delim), ARGIN_NULLOK(STRING *str)) { ASSERT_ARGS(Parrot_str_split) - PMC *res; - INTVAL slen, dlen, ps, pe; + PMC *res; + STRING *tstr; + UINTVAL slen, dlen; + String_iter iter; if (STRING_IS_NULL(delim) || STRING_IS_NULL(str)) return PMCNULL; @@ -3282,44 +3382,38 @@ Parrot_str_split(PARROT_INTERP, if (!slen) return res; + STRING_ITER_INIT(interp, &iter); dlen = Parrot_str_length(interp, delim); if (dlen == 0) { - int i; VTABLE_set_integer_native(interp, res, slen); - for (i = 0; i < slen; ++i) { - STRING * const p = Parrot_str_substr(interp, str, i, 1); - VTABLE_set_string_keyed_int(interp, res, i, p); - } - - return res; - } + do { + const String_iter old_iter = iter; - pe = Parrot_str_find_index(interp, str, delim, 0); + STRING_ITER_SKIP(interp, str, &iter, 1); + tstr = Parrot_str_iter_substr(interp, str, &old_iter, &iter); + VTABLE_set_string_keyed_int(interp, res, old_iter.charpos, tstr); + } while (iter.charpos < slen); - if (pe < 0) { - VTABLE_push_string(interp, res, str); return res; } - ps = 0; - - while (ps <= slen) { - const int pl = pe - ps; - STRING * const tstr = Parrot_str_substr(interp, str, ps, pl); - - VTABLE_push_string(interp, res, tstr); - ps = pe + Parrot_str_length(interp, delim); + do { + String_iter start, end; + INTVAL pos; - if (ps > slen) + start = iter; + if (Parrot_str_iter_index(interp, str, &start, &end, delim) < 0) break; - pe = Parrot_str_find_index(interp, str, delim, ps); + tstr = Parrot_str_iter_substr(interp, str, &iter, &start); + VTABLE_push_string(interp, res, tstr); + iter = end; + } while (iter.charpos < slen); - if (pe < 0) - pe = slen; - } + tstr = Parrot_str_iter_substr(interp, str, &iter, NULL); + VTABLE_push_string(interp, res, tstr); return res; } diff --git a/src/string/charset/ascii.c b/src/string/charset/ascii.c index 5c8371a857..761a60e1c9 100644 --- a/src/string/charset/ascii.c +++ b/src/string/charset/ascii.c @@ -201,7 +201,6 @@ to_ascii(PARROT_INTERP, ARGIN(const STRING *src)) { ASSERT_ARGS(to_ascii) String_iter iter; - UINTVAL offs; unsigned char *p; const UINTVAL len = src->strlen; @@ -209,9 +208,9 @@ to_ascii(PARROT_INTERP, ARGIN(const STRING *src)) STRING * const dest = Parrot_str_clone(interp, src); p = (unsigned char *)dest->strstart; - ENCODING_ITER_INIT(interp, src, &iter); - for (offs = 0; offs < len; ++offs) { - const UINTVAL c = iter.get_and_advance(interp, &iter); + STRING_ITER_INIT(interp, &iter); + while (iter.charpos < len) { + const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter); if (c >= 128) Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LOSSY_CONVERSION, "can't convert unicode string to ascii"); @@ -493,11 +492,10 @@ ascii_compare(PARROT_INTERP, ARGIN(const STRING *lhs), ARGIN(const STRING *rhs)) return ret_val < 0 ? -1 : 1; } else { - UINTVAL offs; - ENCODING_ITER_INIT(interp, rhs, &iter); - for (offs = 0; offs < min_len; ++offs) { - const UINTVAL cl = ENCODING_GET_BYTE(interp, lhs, offs); - const UINTVAL cr = iter.get_and_advance(interp, &iter); + STRING_ITER_INIT(interp, &iter); + while (iter.charpos < min_len) { + const UINTVAL cl = ENCODING_GET_BYTE(interp, lhs, iter.charpos); + const UINTVAL cr = STRING_ITER_GET_AND_ADVANCE(interp, rhs, &iter); if (cl != cr) return cl < cr ? -1 : 1; } @@ -531,35 +529,12 @@ mixed_cs_index(PARROT_INTERP, ARGIN(const STRING *src), ARGIN(const STRING *sear UINTVAL offs) { ASSERT_ARGS(mixed_cs_index) + String_iter start, end; - if (search->strlen <= src->strlen) { - String_iter src_iter, search_iter; - const UINTVAL maxpos = src->strlen - search->strlen + 1; - const UINTVAL cfirst = Parrot_str_indexed(interp, search, 0); - - ENCODING_ITER_INIT(interp, src, &src_iter); - src_iter.set_position(interp, &src_iter, offs); - ENCODING_ITER_INIT(interp, search, &search_iter); - - while (src_iter.charpos < maxpos) { - if (cfirst == src_iter.get_and_advance(interp, &src_iter)) { - const INTVAL next_pos = src_iter.charpos; - const INTVAL next_byte = src_iter.bytepos; - UINTVAL len; - search_iter.set_position(interp, &search_iter, 1); - for (len = search->strlen - 1; len; --len) { - if ((src_iter.get_and_advance(interp, &src_iter)) != - (search_iter.get_and_advance(interp, &search_iter))) - break; - } - if (len == 0) - return next_pos - 1; - src_iter.charpos = next_pos; - src_iter.bytepos = next_byte; - } - } - } - return -1; + STRING_ITER_INIT(interp, &start); + STRING_ITER_SET_POSITION(interp, src, &start, offs); + + return Parrot_str_iter_index(interp, src, &start, &end, search); } /* @@ -638,13 +613,12 @@ static UINTVAL validate(PARROT_INTERP, ARGIN(const STRING *src)) { ASSERT_ARGS(validate) - INTVAL offset; String_iter iter; const INTVAL length = Parrot_str_length(interp, src); - ENCODING_ITER_INIT(interp, src, &iter); - for (offset = 0; offset < length; ++offset) { - const UINTVAL codepoint = iter.get_and_advance(interp, &iter); + STRING_ITER_INIT(interp, &iter); + while (iter.charpos < length) { + const UINTVAL codepoint = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter); if (codepoint >= 0x80) return 0; } diff --git a/src/string/charset/iso-8859-1.c b/src/string/charset/iso-8859-1.c index 8e965fa86f..b795e0d512 100644 --- a/src/string/charset/iso-8859-1.c +++ b/src/string/charset/iso-8859-1.c @@ -178,24 +178,24 @@ static STRING * to_iso_8859_1(PARROT_INTERP, ARGIN(const STRING *src)) { ASSERT_ARGS(to_iso_8859_1) - UINTVAL offs, src_len; + UINTVAL src_len; String_iter iter; /* iso-8859-1 is never bigger then source */ STRING * dest = Parrot_str_clone(interp, src); - ENCODING_ITER_INIT(interp, src, &iter); + STRING_ITER_INIT(interp, &iter); src_len = src->strlen; dest->bufused = src_len; - dest->charset = Parrot_iso_8859_1_charset_ptr; - dest->encoding = Parrot_fixed_8_encoding_ptr; - for (offs = 0; offs < src_len; ++offs) { - const UINTVAL c = iter.get_and_advance(interp, &iter); + while (iter.charpos < src_len) { + const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter); if (c >= 0x100) Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LOSSY_CONVERSION, "lossy conversion to iso-8559-1"); - ENCODING_SET_BYTE(interp, dest, offs, c); + Parrot_fixed_8_encoding_ptr->set_byte(interp, dest, iter.charpos - 1, c); } + dest->charset = Parrot_iso_8859_1_charset_ptr; + dest->encoding = Parrot_fixed_8_encoding_ptr; return dest; } @@ -221,18 +221,18 @@ to_unicode(PARROT_INTERP, ARGIN(const STRING *src)) dest->charset = Parrot_unicode_charset_ptr; dest->encoding = CHARSET_GET_PREFERRED_ENCODING(interp, dest); Parrot_gc_reallocate_string_storage(interp, dest, src->strlen); - ENCODING_ITER_INIT(interp, dest, &iter); - for (offs = 0; offs < src->strlen; ++offs) { - const UINTVAL c = ENCODING_GET_BYTE(interp, src, offs); + STRING_ITER_INIT(interp, &iter); + while (iter.charpos < src->strlen) { + const UINTVAL c = ENCODING_GET_BYTE(interp, src, iter.charpos); if (iter.bytepos >= Buffer_buflen(dest) - 4) { - UINTVAL need = (UINTVAL)((src->strlen - offs) * 1.5); + UINTVAL need = (UINTVAL)((src->strlen - iter.charpos) * 1.5); if (need < 16) need = 16; Parrot_gc_reallocate_string_storage(interp, dest, Buffer_buflen(dest) + need); } - iter.set_and_advance(interp, &iter, c); + STRING_ITER_SET_AND_ADVANCE(interp, dest, &iter, c); } dest->bufused = iter.bytepos; dest->strlen = iter.charpos; diff --git a/src/string/charset/unicode.c b/src/string/charset/unicode.c index e1de74ce69..03555e26c3 100644 --- a/src/string/charset/unicode.c +++ b/src/string/charset/unicode.c @@ -651,20 +651,20 @@ compare(PARROT_INTERP, ARGIN(const STRING *lhs), ARGIN(const STRING *rhs)) { ASSERT_ARGS(compare) String_iter l_iter, r_iter; - UINTVAL offs, cl, cr, min_len, l_len, r_len; + UINTVAL min_len, l_len, r_len; /* TODO make optimized equal - strings are equal length then already */ - ENCODING_ITER_INIT(interp, lhs, &l_iter); - ENCODING_ITER_INIT(interp, rhs, &r_iter); + STRING_ITER_INIT(interp, &l_iter); + STRING_ITER_INIT(interp, &r_iter); l_len = lhs->strlen; r_len = rhs->strlen; min_len = l_len > r_len ? r_len : l_len; - for (offs = 0; offs < min_len; ++offs) { - cl = l_iter.get_and_advance(interp, &l_iter); - cr = r_iter.get_and_advance(interp, &r_iter); + while (l_iter.charpos < min_len) { + const UINTVAL cl = STRING_ITER_GET_AND_ADVANCE(interp, lhs, &l_iter); + const UINTVAL cr = STRING_ITER_GET_AND_ADVANCE(interp, rhs, &r_iter); if (cl != cr) return cl < cr ? -1 : 1; @@ -716,13 +716,12 @@ static UINTVAL validate(PARROT_INTERP, ARGIN(const STRING *src)) { ASSERT_ARGS(validate) - INTVAL offset; String_iter iter; const INTVAL length = Parrot_str_length(interp, src); - ENCODING_ITER_INIT(interp, src, &iter); - for (offset = 0; offset < length; ++offset) { - const UINTVAL codepoint = iter.get_and_advance(interp, &iter); + STRING_ITER_INIT(interp, &iter); + while (iter.charpos < length) { + const UINTVAL codepoint = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter); /* Check for Unicode non-characters */ if (codepoint >= 0xfdd0 && (codepoint <= 0xfdef || (codepoint & 0xfffe) == 0xfffe) @@ -877,24 +876,22 @@ find_cclass(PARROT_INTERP, INTVAL flags, ARGIN(const STRING *src), UINTVAL offse ASSERT_ARGS(find_cclass) String_iter iter; UINTVAL codepoint; - UINTVAL pos = offset; UINTVAL end = offset + count; - ENCODING_ITER_INIT(interp, src, &iter); - - iter.set_position(interp, &iter, pos); + STRING_ITER_INIT(interp, &iter); + STRING_ITER_SET_POSITION(interp, src, &iter, offset); end = src->strlen < end ? src->strlen : end; - for (; pos < end; ++pos) { - codepoint = iter.get_and_advance(interp, &iter); + while (iter.charpos < end) { + codepoint = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter); if (codepoint >= 256) { if (u_iscclass(interp, codepoint, flags)) - return pos; + return iter.charpos - 1; } else { if (Parrot_iso_8859_1_typetable[codepoint] & flags) - return pos; + return iter.charpos - 1; } } @@ -920,37 +917,36 @@ find_not_cclass(PARROT_INTERP, INTVAL flags, ARGIN(const STRING *src), ASSERT_ARGS(find_not_cclass) String_iter iter; UINTVAL codepoint; - UINTVAL pos = offset; UINTVAL end = offset + count; int bit; - if (pos > src->strlen) { + if (offset > src->strlen) { /* XXX: Throw in this case? */ return offset + count; } - ENCODING_ITER_INIT(interp, src, &iter); + STRING_ITER_INIT(interp, &iter); - if (pos) - iter.set_position(interp, &iter, pos); + if (offset) + STRING_ITER_SET_POSITION(interp, src, &iter, offset); end = src->strlen < end ? src->strlen : end; if (flags == enum_cclass_any) return end; - for (; pos < end; ++pos) { - codepoint = iter.get_and_advance(interp, &iter); + while (iter.charpos < end) { + codepoint = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter); if (codepoint >= 256) { for (bit = enum_cclass_uppercase; bit <= enum_cclass_word ; bit <<= 1) { if ((bit & flags) && !u_iscclass(interp, codepoint, bit)) - return pos; + return iter.charpos - 1; } } else { if (!(Parrot_iso_8859_1_typetable[codepoint] & flags)) - return pos; + return iter.charpos - 1; } } @@ -978,8 +974,8 @@ string_from_codepoint(PARROT_INTERP, UINTVAL codepoint) dest->strlen = 1; - ENCODING_ITER_INIT(interp, dest, &iter); - iter.set_and_advance(interp, &iter, codepoint); + STRING_ITER_INIT(interp, &iter); + STRING_ITER_SET_AND_ADVANCE(interp, dest, &iter, codepoint); dest->bufused = iter.bytepos; return dest; @@ -1002,13 +998,12 @@ compute_hash(PARROT_INTERP, ARGIN(const STRING *src), size_t seed) { ASSERT_ARGS(compute_hash) String_iter iter; - UINTVAL offs; size_t hashval = seed; - ENCODING_ITER_INIT(interp, src, &iter); + STRING_ITER_INIT(interp, &iter); - for (offs = 0; offs < src->strlen; ++offs) { - const UINTVAL c = iter.get_and_advance(interp, &iter); + while (iter.charpos < src->strlen) { + const UINTVAL c = STRING_ITER_GET_AND_ADVANCE(interp, src, &iter); hashval += hashval << 5; hashval += c; } diff --git a/src/string/encoding/fixed_8.c b/src/string/encoding/fixed_8.c index 52008a52a3..be45421f3e 100644 --- a/src/string/encoding/fixed_8.c +++ b/src/string/encoding/fixed_8.c @@ -41,22 +41,46 @@ static UINTVAL find_cclass(SHIM_INTERP, __attribute__nonnull__(2) __attribute__nonnull__(3); -static UINTVAL fixed8_get_next(PARROT_INTERP, ARGMOD(String_iter *iter)) +static UINTVAL fixed8_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), + ARGIN(const String_iter *iter), + INTVAL offset) __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3); + +static UINTVAL fixed8_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), + ARGMOD(String_iter *iter)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3) FUNC_MODIFIES(*iter); -static void fixed8_set_next(PARROT_INTERP, +static void fixed8_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *iter), UINTVAL c) __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*str) FUNC_MODIFIES(*iter); -static void fixed8_set_position(SHIM_INTERP, +static void fixed8_iter_set_position(SHIM_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *iter), UINTVAL pos) __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*iter); + +static void fixed8_iter_skip(SHIM_INTERP, + ARGIN(const STRING *str), + ARGMOD(String_iter *iter), + INTVAL skip) + __attribute__nonnull__(2) + __attribute__nonnull__(3) FUNC_MODIFIES(*iter); static size_t fixed_8_hash(SHIM_INTERP, @@ -95,13 +119,6 @@ static STRING * get_codepoints(PARROT_INTERP, __attribute__nonnull__(1) __attribute__nonnull__(2); -static void iter_init(SHIM_INTERP, - ARGIN(const STRING *src), - ARGOUT(String_iter *iter)) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*iter); - static void set_byte(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, @@ -122,14 +139,24 @@ static STRING * to_encoding(PARROT_INTERP, SHIM(const STRING *src)) #define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(s) \ , PARROT_ASSERT_ARG(typetable)) -#define ASSERT_ARGS_fixed8_get_next __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ +#define ASSERT_ARGS_fixed8_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(iter)) +#define ASSERT_ARGS_fixed8_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ , PARROT_ASSERT_ARG(iter)) -#define ASSERT_ARGS_fixed8_set_next __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ +#define ASSERT_ARGS_fixed8_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(iter)) +#define ASSERT_ARGS_fixed8_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(iter)) +#define ASSERT_ARGS_fixed8_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(str) \ , PARROT_ASSERT_ARG(iter)) -#define ASSERT_ARGS_fixed8_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(iter)) #define ASSERT_ARGS_fixed_8_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(s)) #define ASSERT_ARGS_get_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -143,9 +170,6 @@ static STRING * to_encoding(PARROT_INTERP, SHIM(const STRING *src)) #define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) -#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(src) \ - , PARROT_ASSERT_ARG(iter)) #define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) @@ -375,85 +399,105 @@ bytes(SHIM_INTERP, ARGIN(const STRING *src)) /* -=item C +=item C -Moves the string iterator C to the next codepoint. +Get the character at C plus C. =cut */ static UINTVAL -fixed8_get_next(PARROT_INTERP, ARGMOD(String_iter *iter)) +fixed8_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), ARGIN(const String_iter *iter), INTVAL offset) { - ASSERT_ARGS(fixed8_get_next) - const UINTVAL c = get_byte(interp, iter->str, iter->charpos++); - ++iter->bytepos; - return c; + ASSERT_ARGS(fixed8_iter_get) + return get_byte(interp, str, iter->charpos + offset); } /* -=item C +=item C -With the string iterator C, appends the codepoint C and advances to the -next position in the string. +Moves the string iterator C by C characters. =cut */ static void -fixed8_set_next(PARROT_INTERP, ARGMOD(String_iter *iter), UINTVAL c) +fixed8_iter_skip(SHIM_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *iter), INTVAL skip) { - ASSERT_ARGS(fixed8_set_next) - set_byte(interp, iter->str, iter->charpos++, c); - ++iter->bytepos; + ASSERT_ARGS(fixed8_iter_skip) + iter->bytepos += skip; + iter->charpos += skip; + PARROT_ASSERT(iter->bytepos <= Buffer_buflen(str)); } /* -=item C +=item C -Moves the string iterator C to the position C in the string. +Moves the string iterator C to the next codepoint. =cut */ -static void -fixed8_set_position(SHIM_INTERP, ARGMOD(String_iter *iter), UINTVAL pos) +static UINTVAL +fixed8_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *iter)) { - ASSERT_ARGS(fixed8_set_position) - iter->bytepos = iter->charpos = pos; - PARROT_ASSERT(pos <= Buffer_buflen(iter->str)); + ASSERT_ARGS(fixed8_iter_get_and_advance) + const UINTVAL c = get_byte(interp, str, iter->charpos++); + iter->bytepos++; + return c; } - /* -=item C +=item C -Initializes for string C the string iterator C. +With the string iterator C, appends the codepoint C and advances to the +next position in the string. =cut */ static void -iter_init(SHIM_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter)) +fixed8_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *iter), UINTVAL c) { - ASSERT_ARGS(iter_init) - iter->str = src; - iter->bytepos = iter->charpos = 0; - iter->get_and_advance = fixed8_get_next; - iter->set_and_advance = fixed8_set_next; - iter->set_position = fixed8_set_position; + ASSERT_ARGS(fixed8_iter_set_and_advance) + set_byte(interp, str, iter->charpos++, c); + iter->bytepos++; } +/* + +=item C + +Moves the string iterator C to the position C in the string. + +=cut + +*/ + +static void +fixed8_iter_set_position(SHIM_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *iter), UINTVAL pos) +{ + ASSERT_ARGS(fixed8_iter_set_position) + iter->bytepos = iter->charpos = pos; + PARROT_ASSERT(pos <= Buffer_buflen(str)); +} /* @@ -509,9 +553,13 @@ Parrot_encoding_fixed_8_init(PARROT_INTERP) get_bytes, codepoints, bytes, - iter_init, find_cclass, - fixed_8_hash + fixed_8_hash, + fixed8_iter_get, + fixed8_iter_skip, + fixed8_iter_get_and_advance, + fixed8_iter_set_and_advance, + fixed8_iter_set_position }; STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding); diff --git a/src/string/encoding/ucs2.c b/src/string/encoding/ucs2.c index 1c9cd48079..2f91bd5e4f 100644 --- a/src/string/encoding/ucs2.c +++ b/src/string/encoding/ucs2.c @@ -84,14 +84,6 @@ static STRING * get_codepoints(PARROT_INTERP, __attribute__nonnull__(1) __attribute__nonnull__(2); -static void iter_init(PARROT_INTERP, - ARGIN(const STRING *src), - ARGOUT(String_iter *iter)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*iter); - static void set_byte(PARROT_INTERP, SHIM(const STRING *src), SHIM(UINTVAL offset), @@ -104,26 +96,54 @@ static STRING * to_encoding(PARROT_INTERP, ARGIN(const STRING *src)) __attribute__nonnull__(1) __attribute__nonnull__(2); -static UINTVAL ucs2_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i)) +static size_t ucs2_hash(PARROT_INTERP, + ARGIN(const STRING *s), + size_t hashval) + __attribute__nonnull__(1) + __attribute__nonnull__(2); + +static UINTVAL ucs2_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), + ARGIN(const String_iter *i), + INTVAL offset) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3); + +static UINTVAL ucs2_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), + ARGMOD(String_iter *i)) + __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) FUNC_MODIFIES(*i); -static void ucs2_encode_and_advance(SHIM_INTERP, +static void ucs2_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c) + __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*str) FUNC_MODIFIES(*i); -static size_t ucs2_hash(PARROT_INTERP, - ARGIN(const STRING *s), - size_t hashval) +static void ucs2_iter_set_position(PARROT_INTERP, + ARGIN(const STRING *str), + ARGMOD(String_iter *i), + UINTVAL n) __attribute__nonnull__(1) - __attribute__nonnull__(2); + __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*i); -static void ucs2_set_position(SHIM_INTERP, +static void ucs2_iter_skip(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), - UINTVAL n) + INTVAL skip) + __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) FUNC_MODIFIES(*i); #define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -145,24 +165,34 @@ static void ucs2_set_position(SHIM_INTERP, #define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) -#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(src) \ - , PARROT_ASSERT_ARG(iter)) #define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp)) #define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) -#define ASSERT_ARGS_ucs2_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(i)) -#define ASSERT_ARGS_ucs2_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(i)) #define ASSERT_ARGS_ucs2_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(s)) -#define ASSERT_ARGS_ucs2_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_ucs2_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_ucs2_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_ucs2_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_ucs2_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_ucs2_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ @@ -323,11 +353,11 @@ get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL String_iter iter; UINTVAL start; - iter_init(interp, src, &iter); - iter.set_position(interp, &iter, offset); + STRING_ITER_INIT(interp, &iter); + ucs2_iter_set_position(interp, src, &iter, offset); start = iter.bytepos; return_string->strstart = (char *)return_string->strstart + start; - iter.set_position(interp, &iter, offset + count); + ucs2_iter_set_position(interp, src, &iter, offset + count); return_string->bufused = iter.bytepos - start; } #endif @@ -402,7 +432,55 @@ bytes(SHIM_INTERP, ARGIN(const STRING *src)) /* -=item C +=item C + +Get the character at C + C. + +=cut + +*/ + +static UINTVAL +ucs2_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), ARGIN(const String_iter *i), INTVAL offset) +{ + ASSERT_ARGS(ucs2_iter_get) + return get_codepoint(interp, str, i->charpos + offset); +} + +/* + +=item C + +Moves the string iterator C by C characters. + +=cut + +*/ + +static void +ucs2_iter_skip(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), INTVAL skip) +{ + ASSERT_ARGS(ucs2_iter_skip) + UNUSED(str); + +#if PARROT_HAS_ICU + i->charpos += skip; + i->bytepos += skip * sizeof (UChar); +#else + UNUSED(i); + UNUSED(skip); + no_ICU_lib(interp); +#endif +} + +/* + +=item C Moves the string iterator C to the next UCS-2 codepoint. @@ -411,35 +489,34 @@ Moves the string iterator C to the next UCS-2 codepoint. */ static UINTVAL -ucs2_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i)) +ucs2_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i)) { - ASSERT_ARGS(ucs2_decode_and_advance) + ASSERT_ARGS(ucs2_iter_get_and_advance) #if PARROT_HAS_ICU - const UChar * const s = (const UChar*) i->str->strstart; + UChar * const s = (UChar*) str->strstart; size_t pos = i->bytepos / sizeof (UChar); /* TODO either make sure that we don't go past end or use SAFE * iter versions */ const UChar c = s[pos++]; - ++i->charpos; + i->charpos++; i->bytepos = pos * sizeof (UChar); return c; #else - /* This function must never be called if compiled without ICU. - * See TT #557 - */ - PARROT_ASSERT(0); + UNUSED(str); UNUSED(i); + no_ICU_lib(interp); return (UINTVAL)0; /* Stop the static analyzers from panicing */ #endif } /* -=item C +=item C With the string iterator C, appends the codepoint C and advances to the next position in the string. @@ -449,64 +526,29 @@ next position in the string. */ static void -ucs2_encode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL c) +ucs2_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c) { - ASSERT_ARGS(ucs2_encode_and_advance) + ASSERT_ARGS(ucs2_iter_set_and_advance) #if PARROT_HAS_ICU - UChar *s = (UChar*) i->str->strstart; + UChar * const s = (UChar*) str->strstart; UINTVAL pos = i->bytepos / sizeof (UChar); - s[pos++] = (UChar)c; - ++i->charpos; + s[pos++] = (UChar)c; + i->charpos++; i->bytepos = pos * sizeof (UChar); #else - /* This function must never be called if compiled without ICU. - * See TT #557 - */ + UNUSED(str); UNUSED(i); UNUSED(c); - PARROT_ASSERT(0); -#endif -} - -/* - -=item C - -Returns the hashed value of the string, given a seed in hashval. - -=cut - -*/ - -static size_t -ucs2_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval) -{ - ASSERT_ARGS(ucs2_hash) -#if PARROT_HAS_ICU - const UChar *pos = (const UChar*) s->strstart; - UINTVAL len = s->strlen; - UNUSED(interp); - - while (len--) { - hashval += hashval << 5; - hashval += *(pos++); - } - - return hashval; - -#else - UNUSED(s); - UNUSED(hashval); - no_ICU_lib(interp); #endif } - /* -=item C +=item C Moves the string iterator C to the position C in the string. @@ -515,50 +557,52 @@ Moves the string iterator C to the position C in the string. */ static void -ucs2_set_position(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL n) +ucs2_iter_set_position(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL n) { - ASSERT_ARGS(ucs2_set_position) + ASSERT_ARGS(ucs2_iter_set_position) + UNUSED(str); #if PARROT_HAS_ICU i->charpos = n; i->bytepos = n * sizeof (UChar); #else - /* This function must never be called if compiled without ICU. - * See TT #557 - */ UNUSED(i); UNUSED(n); - PARROT_ASSERT(0); + no_ICU_lib(interp); #endif } - /* -=item C +=item C -Initializes for string C the string iterator C. +Returns the hashed value of the string, given a seed in hashval. =cut */ -static void -iter_init(PARROT_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter)) +static size_t +ucs2_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval) { - ASSERT_ARGS(iter_init) + ASSERT_ARGS(ucs2_hash) #if PARROT_HAS_ICU + const UChar *pos = (const UChar*) s->strstart; + UINTVAL len = s->strlen; UNUSED(interp); - iter->str = src; - iter->bytepos = 0; - iter->charpos = 0; - iter->get_and_advance = ucs2_decode_and_advance; - iter->set_and_advance = ucs2_encode_and_advance; - iter->set_position = ucs2_set_position; + + while (len--) { + hashval += hashval << 5; + hashval += *(pos++); + } + + return hashval; + #else - UNUSED(src); - UNUSED(iter); + UNUSED(s); + UNUSED(hashval); + no_ICU_lib(interp); #endif } @@ -590,9 +634,13 @@ Parrot_encoding_ucs2_init(PARROT_INTERP) get_bytes, codepoints, bytes, - iter_init, find_cclass, - ucs2_hash + ucs2_hash, + ucs2_iter_get, + ucs2_iter_skip, + ucs2_iter_get_and_advance, + ucs2_iter_set_and_advance, + ucs2_iter_set_position }; STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding); Parrot_register_encoding(interp, "ucs2", return_encoding); diff --git a/src/string/encoding/ucs4.c b/src/string/encoding/ucs4.c index c608ef8b3e..462cc9608b 100644 --- a/src/string/encoding/ucs4.c +++ b/src/string/encoding/ucs4.c @@ -84,14 +84,6 @@ static STRING * get_codepoints(PARROT_INTERP, __attribute__nonnull__(1) __attribute__nonnull__(2); -static void iter_init(PARROT_INTERP, - ARGIN(const STRING *src), - ARGOUT(String_iter *iter)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*iter); - static void set_byte(PARROT_INTERP, SHIM(const STRING *src), SHIM(UINTVAL offset), @@ -104,30 +96,54 @@ static STRING * to_encoding(PARROT_INTERP, ARGIN(const STRING *src)) __attribute__nonnull__(1) __attribute__nonnull__(2); -static UINTVAL ucs4_decode_and_advance(PARROT_INTERP, +static size_t ucs4_hash(PARROT_INTERP, + ARGIN(const STRING *s), + size_t hashval) + __attribute__nonnull__(1) + __attribute__nonnull__(2); + +static UINTVAL ucs4_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), + ARGIN(const String_iter *i), + INTVAL offset) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3); + +static UINTVAL ucs4_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i)) __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) FUNC_MODIFIES(*i); -static void ucs4_encode_and_advance(PARROT_INTERP, +static void ucs4_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c) __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*str) FUNC_MODIFIES(*i); -static size_t ucs4_hash(PARROT_INTERP, - ARGIN(const STRING *s), - size_t hashval) +static void ucs4_iter_set_position(PARROT_INTERP, + ARGIN(const STRING *str), + ARGMOD(String_iter *i), + UINTVAL n) __attribute__nonnull__(1) - __attribute__nonnull__(2); + __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*i); -static void ucs4_set_position(PARROT_INTERP, +static void ucs4_iter_skip(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), - UINTVAL n) + INTVAL skip) __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) FUNC_MODIFIES(*i); #define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -149,26 +165,33 @@ static void ucs4_set_position(PARROT_INTERP, #define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) -#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(src) \ - , PARROT_ASSERT_ARG(iter)) #define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp)) #define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) -#define ASSERT_ARGS_ucs4_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ +#define ASSERT_ARGS_ucs4_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(s)) +#define ASSERT_ARGS_ucs4_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ , PARROT_ASSERT_ARG(i)) -#define ASSERT_ARGS_ucs4_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ +#define ASSERT_ARGS_ucs4_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ , PARROT_ASSERT_ARG(i)) -#define ASSERT_ARGS_ucs4_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ +#define ASSERT_ARGS_ucs4_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(s)) -#define ASSERT_ARGS_ucs4_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_ucs4_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_ucs4_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ , PARROT_ASSERT_ARG(i)) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ @@ -414,90 +437,115 @@ bytes(SHIM_INTERP, ARGIN(const STRING *src)) /* -=item C +=item C -Moves the string iterator C to the next UCS-4 codepoint. +Get the character at C + C. =cut */ static UINTVAL -ucs4_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i)) +ucs4_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), ARGIN(const String_iter *i), INTVAL offset) +{ + ASSERT_ARGS(ucs4_iter_get) + return get_codepoint(interp, str, i->charpos + offset); +} + +/* + +=item C + +Moves the string iterator C by C characters. + +=cut + +*/ + +static void +ucs4_iter_skip(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), INTVAL skip) { - ASSERT_ARGS(ucs4_decode_and_advance) + ASSERT_ARGS(ucs4_iter_skip) + UNUSED(str); + #if PARROT_HAS_ICU - const UChar32 * const s = (const UChar32 *) i->str->strstart; - size_t pos = i->bytepos / sizeof (UChar32); - const UChar32 c = s[pos++]; - ++i->charpos; - i->bytepos = pos * sizeof (UChar32); - return c; + i->charpos += skip; + i->bytepos += skip * sizeof (UChar32); #else UNUSED(i); + UNUSED(skip); no_ICU_lib(interp); #endif } /* -=item C +=item C -With the string iterator C, appends the codepoint C and advances to the -next position in the string. +Moves the string iterator C to the next codepoint. =cut */ -static void -ucs4_encode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL c) +static UINTVAL +ucs4_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i)) { - ASSERT_ARGS(ucs4_encode_and_advance) + ASSERT_ARGS(ucs4_iter_get_and_advance) + #if PARROT_HAS_ICU - UChar32 *s = (UChar32 *) i->str->strstart; - size_t pos = i->bytepos / sizeof (UChar32); - s[pos++] = (UChar32) c; - ++i->charpos; - i->bytepos = pos * sizeof (UChar32); + const UChar32 * const s = (const UChar32*) str->strstart; + const UChar32 c = s[i->charpos++]; + i->bytepos += sizeof (UChar32); + return c; #else + UNUSED(str); UNUSED(i); no_ICU_lib(interp); + return (UINTVAL)0; /* Stop the static analyzers from panicing */ #endif } -#if PARROT_HAS_ICU /* -=item C +=item C -Returns the hashed value of the string, given a seed in hashval. +With the string iterator C, appends the codepoint C and advances to the +next position in the string. =cut */ -static size_t -ucs4_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval) +static void +ucs4_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c) { - ASSERT_ARGS(ucs4_hash) - const UChar32 *pos = (const UChar32*) s->strstart; - UINTVAL len = s->strlen; - UNUSED(interp); + ASSERT_ARGS(ucs4_iter_set_and_advance) - while (len--) { - hashval += hashval << 5; - hashval += *(pos++); - } - - return hashval; -} +#if PARROT_HAS_ICU + UChar32 * const s = (UChar32*) str->strstart; + s[i->charpos++] = (UChar32)c; + i->bytepos += sizeof (UChar32); +#else + UNUSED(str); + UNUSED(i); + UNUSED(c); + no_ICU_lib(interp); #endif +} /* -=item C +=item C Moves the string iterator C to the position C in the string. @@ -506,9 +554,12 @@ Moves the string iterator C to the position C in the string. */ static void -ucs4_set_position(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL n) +ucs4_iter_set_position(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL n) { - ASSERT_ARGS(ucs4_set_position) + ASSERT_ARGS(ucs4_iter_set_position) + UNUSED(str); + #if PARROT_HAS_ICU i->charpos = n; i->bytepos = n * sizeof (UChar32); @@ -519,36 +570,33 @@ ucs4_set_position(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL n) #endif } - +#if PARROT_HAS_ICU /* -=item C +=item C -Initializes for string C the string iterator C. +Returns the hashed value of the string, given a seed in hashval. =cut */ -static void -iter_init(PARROT_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter)) +static size_t +ucs4_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval) { - ASSERT_ARGS(iter_init) -#if PARROT_HAS_ICU + ASSERT_ARGS(ucs4_hash) + const UChar32 *pos = (const UChar32*) s->strstart; + UINTVAL len = s->strlen; UNUSED(interp); - iter->str = src; - iter->bytepos = 0; - iter->charpos = 0; - iter->get_and_advance = ucs4_decode_and_advance; - iter->set_and_advance = ucs4_encode_and_advance; - iter->set_position = ucs4_set_position; -#else - UNUSED(src); - UNUSED(iter); - no_ICU_lib(interp); -#endif + + while (len--) { + hashval += hashval << 5; + hashval += *(pos++); + } + + return hashval; } +#endif /* @@ -577,13 +625,17 @@ Parrot_encoding_ucs4_init(PARROT_INTERP) get_bytes, codepoints, bytes, - iter_init, find_cclass, #if PARROT_HAS_ICU - ucs4_hash + ucs4_hash, #else - NULL + NULL, #endif + ucs4_iter_get, + ucs4_iter_skip, + ucs4_iter_get_and_advance, + ucs4_iter_set_and_advance, + ucs4_iter_set_position }; STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding); Parrot_register_encoding(interp, "ucs4", return_encoding); diff --git a/src/string/encoding/utf16.c b/src/string/encoding/utf16.c index 0c5ec2dbf7..d43bcdf675 100644 --- a/src/string/encoding/utf16.c +++ b/src/string/encoding/utf16.c @@ -75,14 +75,6 @@ static STRING * get_codepoints(PARROT_INTERP, __attribute__nonnull__(1) __attribute__nonnull__(2); -static void iter_init(PARROT_INTERP, - ARGIN(const STRING *src), - ARGOUT(String_iter *iter)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*iter); - static void set_byte(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, @@ -96,21 +88,49 @@ static STRING * to_encoding(PARROT_INTERP, ARGIN(const STRING *src)) __attribute__nonnull__(1) __attribute__nonnull__(2); +static UINTVAL utf16_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), + ARGIN(const String_iter *i), + INTVAL offset) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3); + PARROT_WARN_UNUSED_RESULT -static UINTVAL utf16_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i)) +static UINTVAL utf16_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), + ARGMOD(String_iter *i)) + __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) FUNC_MODIFIES(*i); -static void utf16_encode_and_advance(SHIM_INTERP, +static void utf16_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c) + __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*str) FUNC_MODIFIES(*i); -static void utf16_set_position(SHIM_INTERP, +static void utf16_iter_set_position(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL n) + __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*i); + +static void utf16_iter_skip(PARROT_INTERP, + ARGIN(const STRING *str), + ARGMOD(String_iter *i), + INTVAL skip) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3) FUNC_MODIFIES(*i); #define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -133,22 +153,32 @@ static void utf16_set_position(SHIM_INTERP, #define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) -#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(src) \ - , PARROT_ASSERT_ARG(iter)) #define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) #define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) -#define ASSERT_ARGS_utf16_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(i)) -#define ASSERT_ARGS_utf16_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(i)) -#define ASSERT_ARGS_utf16_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_utf16_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_utf16_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_utf16_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_utf16_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_utf16_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ @@ -377,19 +407,27 @@ static STRING * get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count) { ASSERT_ARGS(get_codepoints) - String_iter iter; - UINTVAL start; +#if PARROT_HAS_ICU + UINTVAL pos = 0, start; + const UChar * const s = (UChar*) src->strstart; STRING * const return_string = Parrot_str_copy(interp, src); - iter_init(interp, src, &iter); - iter.set_position(interp, &iter, offset); - start = iter.bytepos; - return_string->strstart = (char *)return_string->strstart + start ; - iter.set_position(interp, &iter, offset + count); - return_string->bufused = iter.bytepos - start; + U16_FWD_N_UNSAFE(s, pos, offset); + start = pos * sizeof (UChar); + return_string->strstart = (char *)return_string->strstart + start; + U16_FWD_N_UNSAFE(s, pos, count); + return_string->bufused = pos * sizeof (UChar) - start; return_string->strlen = count; return_string->hashval = 0; return return_string; +#else + UNUSED(src); + UNUSED(offset); + UNUSED(count); + + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR, + "no ICU lib loaded"); +#endif } @@ -432,15 +470,24 @@ static UINTVAL codepoints(PARROT_INTERP, ARGIN(const STRING *src)) { ASSERT_ARGS(codepoints) - String_iter iter; +#if PARROT_HAS_ICU + const UChar * const s = (UChar*) src->strstart; + UINTVAL pos = 0, charpos = 0; /* * this is used to initially calculate src->strlen, * therefore we must scan the whole string */ - iter_init(interp, src, &iter); - while (iter.bytepos < src->bufused) - iter.get_and_advance(interp, &iter); - return iter.charpos; + while (pos * sizeof (UChar) < src->bufused) { + U16_FWD_1_UNSAFE(s, pos); + ++charpos; + } + return charpos; +#else + UNUSED(src); + + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR, + "no ICU lib loaded"); +#endif } /* @@ -461,106 +508,184 @@ bytes(SHIM_INTERP, ARGIN(const STRING *src)) return src->bufused; } -#if PARROT_HAS_ICU /* -=item C +=item C -Moves the string iterator C to the next UTF-16 codepoint. +Get the character at C plus C. =cut */ -PARROT_WARN_UNUSED_RESULT static UINTVAL -utf16_decode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i)) +utf16_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), ARGIN(const String_iter *i), INTVAL offset) { - ASSERT_ARGS(utf16_decode_and_advance) - const UChar * const s = (const UChar*) i->str->strstart; - UINTVAL pos = i->bytepos / sizeof (UChar); - UINTVAL c; + ASSERT_ARGS(utf16_iter_get) +#if PARROT_HAS_ICU + const UChar * const s = (UChar*) str->strstart; + UINTVAL c, pos; + + pos = i->bytepos / sizeof (UChar); + if (offset > 0) { + U16_FWD_N_UNSAFE(s, pos, offset); + } + else if (offset < 0) { + U16_BACK_N_UNSAFE(s, pos, -offset); + } + U16_GET_UNSAFE(s, pos, c); - /* TODO either make sure that we don't go past end or use SAFE - * iter versions - */ - U16_NEXT_UNSAFE(s, pos, c); - ++i->charpos; - i->bytepos = pos * sizeof (UChar); return c; +#else + UNUSED(str); + UNUSED(i); + UNUSED(offset); + + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR, + "no ICU lib loaded"); +#endif } /* -=item C +=item C -With the string iterator C, appends the codepoint C and advances to the -next position in the string. +Moves the string iterator C by C characters. =cut */ static void -utf16_encode_and_advance(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL c) +utf16_iter_skip(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), INTVAL skip) { - ASSERT_ARGS(utf16_encode_and_advance) - UChar * const s = (UChar*) i->str->strstart; + ASSERT_ARGS(utf16_iter_skip) +#if PARROT_HAS_ICU + const UChar * const s = (UChar*) str->strstart; UINTVAL pos = i->bytepos / sizeof (UChar); - U16_APPEND_UNSAFE(s, pos, c); - ++i->charpos; + + if (skip > 0) { + U16_FWD_N_UNSAFE(s, pos, skip); + } + else if (skip < 0) { + U16_BACK_N_UNSAFE(s, pos, -skip); + } + + i->charpos += skip; i->bytepos = pos * sizeof (UChar); +#else + UNUSED(str); + UNUSED(i); + UNUSED(skip); + + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR, + "no ICU lib loaded"); +#endif } /* -=item C +=item C -Moves the string iterator C to the position C in the string. +Moves the string iterator C to the next UTF-16 codepoint. + +=cut + +*/ + +PARROT_WARN_UNUSED_RESULT +static UINTVAL +utf16_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i)) +{ + ASSERT_ARGS(utf16_iter_get_and_advance) +#if PARROT_HAS_ICU + const UChar * const s = (UChar*) str->strstart; + UINTVAL c, pos; + pos = i->bytepos / sizeof (UChar); + /* TODO either make sure that we don't go past end or use SAFE + * iter versions + */ + U16_NEXT_UNSAFE(s, pos, c); + i->charpos++; + i->bytepos = pos * sizeof (UChar); + return c; +#else + UNUSED(str); + UNUSED(i); + + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR, + "no ICU lib loaded"); +#endif +} + +/* + +=item C + +With the string iterator C, appends the codepoint C and advances to the +next position in the string. =cut */ static void -utf16_set_position(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL n) +utf16_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c) { - ASSERT_ARGS(utf16_set_position) - UChar * const s = (UChar*) i->str->strstart; + ASSERT_ARGS(utf16_iter_set_and_advance) +#if PARROT_HAS_ICU + UChar * const s = (UChar*) str->strstart; UINTVAL pos; - pos = 0; - U16_FWD_N_UNSAFE(s, pos, n); - i->charpos = n; + pos = i->bytepos / sizeof (UChar); + U16_APPEND_UNSAFE(s, pos, c); + i->charpos++; i->bytepos = pos * sizeof (UChar); -} +#else + UNUSED(str); + UNUSED(i); + UNUSED(c); + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR, + "no ICU lib loaded"); #endif +} /* -=item C +=item C -Initializes for string C the string iterator C. +Moves the string iterator C to the position C in the string. =cut */ static void -iter_init(PARROT_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter)) +utf16_iter_set_position(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL n) { - ASSERT_ARGS(iter_init) - iter->str = src; - iter->bytepos = iter->charpos = 0; + ASSERT_ARGS(utf16_iter_set_position) #if PARROT_HAS_ICU - UNUSED(interp); - iter->get_and_advance = utf16_decode_and_advance; - iter->set_and_advance = utf16_encode_and_advance; - iter->set_position = utf16_set_position; + UChar * const s = (UChar*) str->strstart; + UINTVAL pos; + pos = 0; + U16_FWD_N_UNSAFE(s, pos, n); + i->charpos = n; + i->bytepos = pos * sizeof (UChar); #else + UNUSED(str); + UNUSED(i); + UNUSED(n); + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR, "no ICU lib loaded"); #endif @@ -593,9 +718,13 @@ Parrot_encoding_utf16_init(PARROT_INTERP) get_bytes, codepoints, bytes, - iter_init, find_cclass, - NULL + NULL, + utf16_iter_get, + utf16_iter_skip, + utf16_iter_get_and_advance, + utf16_iter_set_and_advance, + utf16_iter_set_position }; STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding); Parrot_register_encoding(interp, "utf16", return_encoding); diff --git a/src/string/encoding/utf8.c b/src/string/encoding/utf8.c index ff1776127f..b07cadb2a9 100644 --- a/src/string/encoding/utf8.c +++ b/src/string/encoding/utf8.c @@ -71,13 +71,6 @@ static STRING * get_codepoints(PARROT_INTERP, __attribute__nonnull__(1) __attribute__nonnull__(2); -static void iter_init(SHIM_INTERP, - ARGIN(const STRING *src), - ARGOUT(String_iter *iter)) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*iter); - static void set_byte(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, @@ -100,28 +93,51 @@ static UINTVAL utf8_decode(PARROT_INTERP, ARGIN(const utf8_t *ptr)) __attribute__nonnull__(1) __attribute__nonnull__(2); -static UINTVAL utf8_decode_and_advance(PARROT_INTERP, - ARGMOD(String_iter *i)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*i); - PARROT_CANNOT_RETURN_NULL static void * utf8_encode(PARROT_INTERP, ARGIN(void *ptr), UINTVAL c) __attribute__nonnull__(1) __attribute__nonnull__(2); -static void utf8_encode_and_advance(PARROT_INTERP, +static UINTVAL utf8_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), + ARGIN(const String_iter *i), + INTVAL offset) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3); + +static UINTVAL utf8_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), + ARGMOD(String_iter *i)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*i); + +static void utf8_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c) __attribute__nonnull__(1) __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*str) FUNC_MODIFIES(*i); -static void utf8_set_position(SHIM_INTERP, +static void utf8_iter_set_position(SHIM_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL pos) __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*i); + +static void utf8_iter_skip(SHIM_INTERP, + ARGIN(const STRING *str), + ARGMOD(String_iter *i), + INTVAL skip) + __attribute__nonnull__(2) + __attribute__nonnull__(3) FUNC_MODIFIES(*i); PARROT_WARN_UNUSED_RESULT @@ -151,9 +167,6 @@ static const void * utf8_skip_forward(ARGIN(const void *ptr), UINTVAL n) #define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) -#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(src) \ - , PARROT_ASSERT_ARG(iter)) #define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(src)) @@ -166,17 +179,27 @@ static const void * utf8_skip_forward(ARGIN(const void *ptr), UINTVAL n) #define ASSERT_ARGS_utf8_decode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(ptr)) -#define ASSERT_ARGS_utf8_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(i)) #define ASSERT_ARGS_utf8_encode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(ptr)) -#define ASSERT_ARGS_utf8_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ +#define ASSERT_ARGS_utf8_iter_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_utf8_iter_get_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_utf8_iter_set_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_utf8_iter_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(str) \ + , PARROT_ASSERT_ARG(i)) +#define ASSERT_ARGS_utf8_iter_skip __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(str) \ , PARROT_ASSERT_ARG(i)) -#define ASSERT_ARGS_utf8_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(i)) #define ASSERT_ARGS_utf8_skip_backward __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(ptr)) #define ASSERT_ARGS_utf8_skip_forward __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -387,7 +410,65 @@ utf8_skip_backward(ARGIN(const void *ptr), UINTVAL n) /* -=item C +=item C + +Get the character at C plus C. + +=cut + +*/ + +static UINTVAL +utf8_iter_get(PARROT_INTERP, + ARGIN(const STRING *str), ARGIN(const String_iter *i), INTVAL offset) +{ + ASSERT_ARGS(utf8_iter_get) + const utf8_t *u8ptr = (utf8_t *)((char *)str->strstart + i->bytepos); + + if (offset > 0) { + u8ptr = (const utf8_t *)utf8_skip_forward(u8ptr, offset); + } + else if (offset < 0) { + u8ptr = (const utf8_t *)utf8_skip_backward(u8ptr, -offset); + } + + return utf8_decode(interp, u8ptr); +} + +/* + +=item C + +Moves the string iterator C by C characters. + +=cut + +*/ + +static void +utf8_iter_skip(SHIM_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), INTVAL skip) +{ + ASSERT_ARGS(utf8_iter_skip) + const utf8_t *u8ptr = (utf8_t *)((char *)str->strstart + i->bytepos); + + if (skip > 0) { + u8ptr = (const utf8_t *)utf8_skip_forward(u8ptr, skip); + } + else if (skip < 0) { + u8ptr = (const utf8_t *)utf8_skip_backward(u8ptr, -skip); + } + + i->charpos += skip; + i->bytepos = (const char *)u8ptr - (const char *)str->strstart; +} + +/* + +=item C The UTF-8 implementation of the string iterator's C function. @@ -397,10 +478,11 @@ function. */ static UINTVAL -utf8_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i)) +utf8_iter_get_and_advance(PARROT_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i)) { - ASSERT_ARGS(utf8_decode_and_advance) - const utf8_t *u8ptr = (utf8_t *)((char *)i->str->strstart + i->bytepos); + ASSERT_ARGS(utf8_iter_get_and_advance) + const utf8_t *u8ptr = (utf8_t *)((char *)str->strstart + i->bytepos); UINTVAL c = *u8ptr; if (UTF8_IS_START(c)) { @@ -408,13 +490,12 @@ utf8_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i)) c &= UTF8_START_MASK(len); i->bytepos += len; - for (--len; len; --len) { - ++u8ptr; + for (len--; len; len--) { + u8ptr++; if (!UTF8_IS_CONTINUATION(*u8ptr)) Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_MALFORMED_UTF8, "Malformed UTF-8 string\n"); - c = UTF8_ACCUMULATE(c, *u8ptr); } @@ -427,17 +508,17 @@ utf8_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i)) "Malformed UTF-8 string\n"); } else { - ++i->bytepos; + i->bytepos++; } - ++i->charpos; + i->charpos++; return c; } /* -=item C +=item C The UTF-8 implementation of the string iterator's C function. @@ -447,23 +528,23 @@ function. */ static void -utf8_encode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL c) +utf8_iter_set_and_advance(PARROT_INTERP, + ARGMOD(STRING *str), ARGMOD(String_iter *i), UINTVAL c) { - ASSERT_ARGS(utf8_encode_and_advance) - const STRING * const s = i->str; - unsigned char * const pos = (unsigned char *)s->strstart + i->bytepos; + ASSERT_ARGS(utf8_iter_set_and_advance) + unsigned char * const pos = (unsigned char *)str->strstart + i->bytepos; unsigned char * const new_pos = (unsigned char *)utf8_encode(interp, pos, c); i->bytepos += (new_pos - pos); /* XXX possible buffer overrun exception? */ - PARROT_ASSERT(i->bytepos <= Buffer_buflen(s)); - ++i->charpos; + PARROT_ASSERT(i->bytepos <= Buffer_buflen(str)); + i->charpos++; } /* -=item C +=item C The UTF-8 implementation of the string iterator's C function. @@ -473,25 +554,46 @@ function. */ static void -utf8_set_position(SHIM_INTERP, ARGMOD(String_iter *i), UINTVAL pos) +utf8_iter_set_position(SHIM_INTERP, + ARGIN(const STRING *str), ARGMOD(String_iter *i), UINTVAL pos) { - ASSERT_ARGS(utf8_set_position) - const utf8_t *u8ptr = (const utf8_t *)i->str->strstart; - - /* start from last known charpos, if we can */ - if (i->charpos <= pos) { - const UINTVAL old_pos = pos; - pos -= i->charpos; - u8ptr += i->bytepos; - i->charpos = old_pos; + ASSERT_ARGS(utf8_iter_set_position) + const utf8_t *u8ptr = (const utf8_t *)str->strstart; + + if (pos == 0) { + i->charpos = 0; + i->bytepos = 0; + return; } - else - i->charpos = pos; - while (pos-- > 0) - u8ptr += UTF8SKIP(u8ptr); + /* + * we know the byte offsets of three positions: start, current and end + * now find the shortest way to reach pos + */ + if (pos < i->charpos) { + if (pos <= (i->charpos >> 1)) { + /* go forward from start */ + u8ptr = (const utf8_t *)utf8_skip_forward(u8ptr, pos); + } + else { + /* go backward from current */ + u8ptr = (const utf8_t *)utf8_skip_backward(u8ptr + i->bytepos, i->charpos - pos); + } + } + else { + const UINTVAL len = str->strlen; + if (pos <= i->charpos + ((len - i->charpos) >> 1)) { + /* go forward from current */ + u8ptr = (const utf8_t *)utf8_skip_forward(u8ptr + i->bytepos, pos - i->charpos); + } + else { + /* go backward from end */ + u8ptr = (const utf8_t *)utf8_skip_backward(u8ptr + str->bufused, len - pos); + } + } - i->bytepos = (const char *)u8ptr - (const char *)i->str->strstart; + i->charpos = pos; + i->bytepos = (const char *)u8ptr - (const char *)str->strstart; } @@ -513,8 +615,8 @@ to_encoding(PARROT_INTERP, ARGIN(const STRING *src)) { ASSERT_ARGS(to_encoding) STRING *result; - String_iter src_iter; - UINTVAL offs, dest_len, dest_pos, src_len; + const ENCODING *src_encoding; + UINTVAL dest_len, dest_pos, src_len; unsigned char *p; if (src->encoding == Parrot_utf8_encoding_ptr) @@ -523,8 +625,8 @@ to_encoding(PARROT_INTERP, ARGIN(const STRING *src)) result = Parrot_gc_new_string_header(interp, 0); src_len = src->strlen; - /* init iter before possilby changing encoding */ - ENCODING_ITER_INIT(interp, src, &src_iter); + /* save source encoding before possibly changing it */ + src_encoding = src->encoding; result->charset = Parrot_unicode_charset_ptr; result->encoding = Parrot_utf8_encoding_ptr; result->strlen = src_len; @@ -542,15 +644,17 @@ to_encoding(PARROT_INTERP, ARGIN(const STRING *src)) result->bufused = dest_len; } else { + String_iter src_iter; + STRING_ITER_INIT(interp, &src_iter); dest_len = src_len; dest_pos = 0; - for (offs = 0; offs < src_len; ++offs) { - const UINTVAL c = src_iter.get_and_advance(interp, &src_iter); + while (src_iter.charpos < src_len) { + const UINTVAL c = src_encoding->iter_get_and_advance(interp, src, &src_iter); unsigned char *new_pos; unsigned char *pos; if (dest_len - dest_pos < 6) { - UINTVAL need = (UINTVAL)((src->strlen - offs) * 1.5); + UINTVAL need = (UINTVAL)((src->strlen - src_iter.charpos + 1) * 1.5); if (need < 16) need = 16; dest_len += need; @@ -683,16 +787,16 @@ get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL String_iter iter; UINTVAL start; - iter_init(interp, src, &iter); + STRING_ITER_INIT(interp, &iter); if (offset) - iter.set_position(interp, &iter, offset); + utf8_iter_set_position(interp, src, &iter, offset); start = iter.bytepos; return_string->strstart = (char *)return_string->strstart + start; if (count) - iter.set_position(interp, &iter, offset + count); + utf8_iter_set_position(interp, src, &iter, offset + count); return_string->bufused = iter.bytepos - start; return_string->strlen = count; @@ -749,9 +853,9 @@ codepoints(PARROT_INTERP, ARGIN(const STRING *src)) * this is used to initially calculate src->strlen, * therefore we must scan the whole string */ - iter_init(interp, src, &iter); + STRING_ITER_INIT(interp, &iter); while (iter.bytepos < src->bufused) - iter.get_and_advance(interp, &iter); + utf8_iter_get_and_advance(interp, src, &iter); return iter.charpos; } @@ -775,29 +879,6 @@ bytes(SHIM_INTERP, ARGIN(const STRING *src)) /* -=item C - -Initializes for string C the string iterator C. - -=cut - -*/ - -static void -iter_init(SHIM_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter)) -{ - ASSERT_ARGS(iter_init) - iter->str = src; - iter->bytepos = 0; - iter->charpos = 0; - iter->get_and_advance = utf8_decode_and_advance; - iter->set_and_advance = utf8_encode_and_advance; - iter->set_position = utf8_set_position; -} - -/* - =item C Initializes the UTF-8 encoding. @@ -823,9 +904,13 @@ Parrot_encoding_utf8_init(PARROT_INTERP) get_bytes, codepoints, bytes, - iter_init, find_cclass, - NULL + NULL, + utf8_iter_get, + utf8_iter_skip, + utf8_iter_get_and_advance, + utf8_iter_set_and_advance, + utf8_iter_set_position }; STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding); Parrot_register_encoding(interp, "utf8", return_encoding); From 1c7c1bcd467ebf7cc936cdef7555ed479eef4813 Mon Sep 17 00:00:00 2001 From: chromatic Date: Thu, 19 Aug 2010 06:21:56 +0000 Subject: [PATCH 031/165] [gc] Forced freeing of empty blocks in compacting. This patch is from TT #1742 by Nick Wellnhofer. git-svn-id: https://svn.parrot.org/parrot/trunk@48566 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/gc/alloc_resources.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/gc/alloc_resources.c b/src/gc/alloc_resources.c index e10c73c5f5..03eb241c59 100644 --- a/src/gc/alloc_resources.c +++ b/src/gc/alloc_resources.c @@ -448,19 +448,21 @@ compact_pool(PARROT_INTERP, if (mem_pools->gc_sweep_block_level) return; + ++mem_pools->gc_sweep_block_level; + + /* We're collecting */ + mem_pools->mem_allocs_since_last_collect = 0; + mem_pools->header_allocs_since_last_collect = 0; ++mem_pools->gc_collect_runs; /* Snag a block big enough for everything */ total_size = pad_pool_size(pool); - if (total_size == 0) + if (total_size == 0) { + free_old_mem_blocks(mem_pools, pool, pool->top_block, total_size); + --mem_pools->gc_sweep_block_level; return; - - ++mem_pools->gc_sweep_block_level; - - /* We're collecting */ - mem_pools->mem_allocs_since_last_collect = 0; - mem_pools->header_allocs_since_last_collect = 0; + } alloc_new_block(mem_pools, total_size, pool, "inside compact"); From f8dc22584a9864f62dc7ce547067671d27872ab2 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Thu, 19 Aug 2010 06:34:01 +0000 Subject: [PATCH 032/165] remove annotations from native_pbc, now packfile tests use its own version and it wasn't related with the other native_pbc files anyway, TT #1712 git-svn-id: https://svn.parrot.org/parrot/trunk@48567 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/native_pbc/annotations.pbc | Bin 1088 -> 0 bytes t/native_pbc/testdata/annotations.pir | 18 ------------------ tools/dev/mk_native_pbc | 12 ------------ 3 files changed, 30 deletions(-) delete mode 100644 t/native_pbc/annotations.pbc delete mode 100644 t/native_pbc/testdata/annotations.pir diff --git a/t/native_pbc/annotations.pbc b/t/native_pbc/annotations.pbc deleted file mode 100644 index 0e533f989c5087e68083ff9b4b3e309e0a7d546d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1088 zcmZXT-Acni5QUQ%+gkrYP(-1K7kZ)SBiJ8Nky@}qy(&Q~1T-nJzJ-q<_(DF0kKncS zeCe)TR%IS8;Y)qu;D6Abg4|V#(1?+HEB7OXMBUqHGow zW9g0lOJX3-;NPX$pq~z(wFbn|0lMJd^ALAL^lj0CGq@nne~RM71Q%UVYtH6kNzPFG z5V=cwg}WlPs9!T{{9rsDzZ<_ajIt~p$(!8Ev58Y>O}rF0L>te0laF=x;e_{&j}q@!pQr^)l-FwP|X=B{?~^VCk$m*hTA zL7nR5yKE4R(m#8`$2g%rcgSpTj&%{ZeFS^^dCc||oW*~9e=@4Sy@ci)+PNUv?se~g z_jX0zYrnOfyQ*UIB9`ySJ&myipwnxSq;V#TIW3rB=F`rJ)m%#*K)(Aw5X)y?mK=J< YQWMyHtkEo(d4O*IiTppXHPG{%AJ@cE+yDRo diff --git a/t/native_pbc/testdata/annotations.pir b/t/native_pbc/testdata/annotations.pir deleted file mode 100644 index 789ae49bea..0000000000 --- a/t/native_pbc/testdata/annotations.pir +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (C) 2009, Parrot Foundation. -# $Id$ - -.sub 'main' -.annotate "file", "annotations.pir" -.annotate "creator", "Parrot Foundation" -.annotate "line", 1 - say "Hi" - say "line" -.annotate "line", 2 - .return () -.end - -# Local Variables: -# mode: pir -# fill-column: 100 -# End: -# vim: expandtab shiftwidth=4 ft=pir: diff --git a/tools/dev/mk_native_pbc b/tools/dev/mk_native_pbc index 0ba583f5e2..75a392c537 100755 --- a/tools/dev/mk_native_pbc +++ b/tools/dev/mk_native_pbc @@ -137,18 +137,6 @@ perl t/harness t/native_pbc/integer.t && \ perl t/harness t/native_pbc/number.t && \ perl t/harness t/native_pbc/string.t -./parrot -o t/native_pbc/annotations.pbc - < Date: Thu, 19 Aug 2010 06:49:05 +0000 Subject: [PATCH 033/165] update MANIFEST, forgoten in r48567 git-svn-id: https://svn.parrot.org/parrot/trunk@48568 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/MANIFEST b/MANIFEST index 56f2ee3e6e..afa057d695 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Wed Aug 18 12:54:57 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Thu Aug 19 06:48:17 2010 UT # # See below for documentation on the format of this file. # @@ -1735,7 +1735,6 @@ t/manifest/03-regenerate_skip.t [test] t/manifest/04-alt_file.t [test] t/manifest/05-alt_skip.t [test] t/manifest/README []doc -t/native_pbc/annotations.pbc [test] t/native_pbc/header.t [test] t/native_pbc/integer.pbc [test] t/native_pbc/integer.t [test] @@ -1764,7 +1763,6 @@ t/native_pbc/string_4.pbc [test] t/native_pbc/string_6.pbc [test] t/native_pbc/string_7.pbc [test] t/native_pbc/testdata/README []doc -t/native_pbc/testdata/annotations.pir [test] t/native_pbc/testdata/number.pasm [test] t/native_pbc/testdata/string.pasm [test] t/oo/attributes.t [test] From c57c9ffa2938e2d49d6e35708769f39fcccfa805 Mon Sep 17 00:00:00 2001 From: chromatic Date: Thu, 19 Aug 2010 16:06:20 +0000 Subject: [PATCH 034/165] [hash] Added hash iteration macros. Patch courtesy Luben Karavelov, TT #1741. git-svn-id: https://svn.parrot.org/parrot/trunk@48569 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/hash.h | 43 ++++++++++++++ src/hash.c | 119 ++++++++++++--------------------------- src/packfile.c | 22 ++------ src/pmc/callcontext.pmc | 59 +++++-------------- src/pmc/hashiterator.pmc | 17 +----- src/pmc/lexinfo.pmc | 22 ++------ 6 files changed, 103 insertions(+), 179 deletions(-) diff --git a/include/parrot/hash.h b/include/parrot/hash.h index 84e3c70bc5..3256737e3a 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -78,6 +78,49 @@ struct _hash { hash_hash_key_fn hash_val; }; +/* Utility macros - use them, do not reinvent the weel */ +#define parrot_hash_iterate parrot_hash_iterate_linear + +#define parrot_hash_iterate_linear(_hash, _code) \ +{ \ + HashBucket *_bucket = (_hash)->buckets; \ + UINTVAL _found = 0; \ + while (_found < _hash->entries){ \ + if (_bucket->key){ \ + _code \ + _found++; \ + } \ + _bucket++; \ + } \ +} + +#define parrot_hash_iterate_indexed(_hash, _code) \ +{ \ + INTVAL _loc; \ + for (_loc = (_hash)->mask; _loc >= 0; --_loc) { \ + HashBucket *_bucket = (_hash)->bucket_indices[_loc]; \ + while (_bucket) { \ + _code \ + _bucket = _bucket->next; \ + } \ + } \ +} + + +#define parrot_hash_iterator_advance(_hash,_bucket,_loc) \ +{ \ + /* Try to advance current bucket */ \ + if ((_bucket)) \ + (_bucket) = (_bucket)->next; \ + while (!(_bucket)) { \ + /* If there is no more buckets */ \ + if ((_loc) == (INTVAL)(_hash)->mask+1) \ + break; \ + (_bucket) = (_hash)->bucket_indices[_loc++]; \ + } \ +} + + typedef void (*value_free)(ARGFREE(void *)); /* To avoid creating OrderedHashItem PMC we reuse FixedPMCArray PMC */ diff --git a/src/hash.c b/src/hash.c index 7605693e3b..968733b42c 100644 --- a/src/hash.c +++ b/src/hash.c @@ -512,22 +512,10 @@ static void parrot_mark_hash_keys(PARROT_INTERP, ARGIN(Hash *hash)) { ASSERT_ARGS(parrot_mark_hash_keys) - const UINTVAL entries = hash->entries; - UINTVAL found = 0; - UINTVAL i; - - HashBucket *bucket = hash->buckets; - - for (i= 0; i <= hash->mask; ++i, ++bucket) { - if (bucket->key){ - - PARROT_ASSERT(bucket->key); - Parrot_gc_mark_PObj_alive(interp, (PObj *)bucket->key); - - if (++found >= entries) - break; - } - } + parrot_hash_iterate(hash, + PARROT_ASSERT(_bucket->key); + Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->key); + ); } @@ -545,24 +533,13 @@ static void parrot_mark_hash_values(PARROT_INTERP, ARGIN(Hash *hash)) { ASSERT_ARGS(parrot_mark_hash_values) - const UINTVAL entries = hash->entries; - UINTVAL found = 0; - UINTVAL i; - - HashBucket *bucket = hash->buckets; - - for (i= 0; i <= hash->mask; ++i, ++bucket) { - if (bucket->key){ - - PARROT_ASSERT(bucket->value); - Parrot_gc_mark_PObj_alive(interp, (PObj *)bucket->value); - - if (++found >= entries) - break; - } - } + parrot_hash_iterate(hash, + PARROT_ASSERT(_bucket->value); + Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->value); + ); } + /* =item C @@ -577,24 +554,12 @@ static void parrot_mark_hash_both(PARROT_INTERP, ARGIN(Hash *hash)) { ASSERT_ARGS(parrot_mark_hash_both) - const UINTVAL entries = hash->entries; - UINTVAL found = 0; - UINTVAL i; - - HashBucket *bucket = hash->buckets; - - for (i= 0; i <= hash->mask; ++i, ++bucket) { - if (bucket->key){ - PARROT_ASSERT(bucket->key); - Parrot_gc_mark_PObj_alive(interp, (PObj *)bucket->key); - - PARROT_ASSERT(bucket->value); - Parrot_gc_mark_PObj_alive(interp, (PObj *)bucket->value); - - if (++found >= entries) - break; - } - } + parrot_hash_iterate(hash, + PARROT_ASSERT(_bucket->key); + Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->key); + PARROT_ASSERT(_bucket->value); + Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->value); + ); } /* @@ -714,41 +679,38 @@ hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info)) const size_t entries = hash->entries; size_t i; - for (i = 0; i < entries; ++i) { - HashBucket * const b = hash->buckets + i; - + parrot_hash_iterate(hash, switch (key_type) { case Hash_key_type_int: - VTABLE_push_integer(interp, info, (INTVAL)b->key); + VTABLE_push_integer(interp, info, (INTVAL)_bucket->key); break; case Hash_key_type_STRING: - VTABLE_push_string(interp, info, (STRING *)b->key); + VTABLE_push_string(interp, info, (STRING *)_bucket->key); break; case Hash_key_type_PMC: - VTABLE_push_pmc(interp, info, (PMC *)b->key); + VTABLE_push_pmc(interp, info, (PMC *)_bucket->key); break; default: Parrot_ex_throw_from_c_args(interp, NULL, 1, "unimplemented key type"); break; } - switch (entry_type) { case enum_hash_int: - VTABLE_push_integer(interp, info, (INTVAL)b->value); + VTABLE_push_integer(interp, info, (INTVAL)_bucket->value); break; case enum_hash_string: - VTABLE_push_string(interp, info, (STRING *)b->value); + VTABLE_push_string(interp, info, (STRING *)_bucket->value); break; case enum_hash_pmc: - VTABLE_push_pmc(interp, info, (PMC *)b->value); + VTABLE_push_pmc(interp, info, (PMC *)_bucket->value); break; default: Parrot_ex_throw_from_c_args(interp, NULL, 1, "unimplemented value type"); break; } - } + ); } @@ -1121,17 +1083,10 @@ void parrot_chash_destroy(PARROT_INTERP, ARGMOD(Hash *hash)) { ASSERT_ARGS(parrot_chash_destroy) - UINTVAL i; - - for (i = 0; i <= hash->mask; ++i) { - HashBucket *bucket = hash->bucket_indices[i]; - while (bucket) { - mem_gc_free(interp, bucket->key); - mem_gc_free(interp, bucket->value); - bucket = bucket->next; - } - } - + parrot_hash_iterate(hash, + mem_gc_free(interp, _bucket->key); + mem_gc_free(interp, _bucket->value); + ); parrot_hash_destroy(interp, hash); } @@ -1472,33 +1427,30 @@ parrot_hash_clone_prunable(PARROT_INTERP, ARGIN(const Hash *hash), ARGOUT(Hash *dest), int deep) { ASSERT_ARGS(parrot_hash_clone_prunable) - UINTVAL entries = hash->entries; - UINTVAL i; - for (i = 0; i < entries; ++i) { + parrot_hash_iterate(hash, void *valtmp; - HashBucket *b = hash->buckets + i; - void * const key = b->key; + void * const key = _bucket->key; switch (hash->entry_type) { case enum_type_undef: case enum_type_ptr: case enum_type_INTVAL: - valtmp = (void *)b->value; + valtmp = (void *)_bucket->value; break; case enum_type_STRING: - valtmp = b->value; + valtmp = _bucket->value; break; case enum_type_PMC: - if (PMC_IS_NULL((PMC *)b->value)) + if (PMC_IS_NULL((PMC *)_bucket->value)) valtmp = (void *)PMCNULL; else if (deep) - valtmp = (void *)VTABLE_clone(interp, (PMC*)b->value); + valtmp = (void *)VTABLE_clone(interp, (PMC*)_bucket->value); else - valtmp = b->value; + valtmp = _bucket->value; break; default: @@ -1506,10 +1458,9 @@ parrot_hash_clone_prunable(PARROT_INTERP, ARGIN(const Hash *hash), Parrot_ex_throw_from_c_args(interp, NULL, -1, "hash corruption: type = %d\n", hash->entry_type); }; - if (key) parrot_hash_put(interp, dest, key, valtmp); - } + ); } /* diff --git a/src/packfile.c b/src/packfile.c index e41bc3d239..4e5dc7cc82 100644 --- a/src/packfile.c +++ b/src/packfile.c @@ -3471,22 +3471,12 @@ Parrot_destroy_constants(PARROT_INTERP) if (!hash) return; - for (i = 0; i <= hash->mask; ++i) { - HashBucket *bucket = hash->bucket_indices[i]; - - while (bucket) { - PackFile_ConstTable * const table = - (PackFile_ConstTable *)bucket->key; - PackFile_Constant * const orig_consts = table->constants; - PackFile_Constant * const consts = - (PackFile_Constant *) bucket->value; - INTVAL j; - - mem_gc_free(interp, consts); - bucket = bucket->next; - } - } - + parrot_hash_iterate(hash, + PackFile_ConstTable * const table = (PackFile_ConstTable *)_bucket->key; + PackFile_Constant * const orig_consts = table->constants; + PackFile_Constant * const consts = (PackFile_Constant *) _bucket->value; + mem_gc_free(interp, consts); + ); parrot_hash_destroy(interp, hash); } diff --git a/src/pmc/callcontext.pmc b/src/pmc/callcontext.pmc index 9cb3ddbb8d..be2e4bca08 100644 --- a/src/pmc/callcontext.pmc +++ b/src/pmc/callcontext.pmc @@ -468,17 +468,10 @@ static void mark_hash(PARROT_INTERP, ARGIN(Hash *h)) { ASSERT_ARGS(mark_hash) - INTVAL i; - - for (i = h->mask; i >= 0; --i) { - HashBucket *b = h->bucket_indices[i]; - - while (b) { - Parrot_gc_mark_STRING_alive(interp, (STRING *)b->key); - mark_cell(interp, (Pcc_cell *)b->value); - b = b->next; - } - } + parrot_hash_iterate(h, + Parrot_gc_mark_STRING_alive(interp, (STRING *)_bucket->key); + mark_cell(interp, (Pcc_cell *)_bucket->value); + ); } /* @@ -500,19 +493,11 @@ get_named_names(PARROT_INTERP, ARGIN(PMC *SELF)) /* yes, this *looks* risky, but it's a Parrot STRING hash internally */ if (hash && hash->entries) { - UINTVAL i, j = 0; + UINTVAL j = 0; PMC *result = Parrot_pmc_new_init_int(interp, enum_class_FixedStringArray, hash->entries); - - for (i = 0; i <= hash->mask; ++i) { - HashBucket *b = hash->bucket_indices[i]; - - while (b) { - VTABLE_set_string_keyed_int(interp, result, - j++, (STRING *)b->key); - b = b->next; - } - } - + parrot_hash_iterate(hash, + VTABLE_set_string_keyed_int(interp, result, j++, (STRING *)_bucket->key); + ); return result; } @@ -702,17 +687,9 @@ stored.) GET_ATTR_hash(INTERP, SELF, hash); if (hash) { - UINTVAL i; - - for (i = 0; i <= hash->mask; ++i) { - HashBucket *b = hash->bucket_indices[i]; - - while (b) { - FREE_CELL(INTERP, (Pcc_cell *)b->value); - b = b->next; - } - } - + parrot_hash_iterate(hash, + FREE_CELL(INTERP, (Pcc_cell *)_bucket->value); + ); parrot_hash_destroy(INTERP, hash); SET_ATTR_hash(INTERP, SELF, NULL); } @@ -740,17 +717,9 @@ stored.) } if (hash) { - UINTVAL i; - - for (i = 0; i <= hash->mask; ++i) { - HashBucket *b = hash->bucket_indices[i]; - - while (b) { - FREE_CELL(INTERP, (Pcc_cell *)b->value); - b = b->next; - } - } - + parrot_hash_iterate(hash, + FREE_CELL(INTERP, (Pcc_cell *)_bucket->value); + ); parrot_hash_destroy(INTERP, hash); } diff --git a/src/pmc/hashiterator.pmc b/src/pmc/hashiterator.pmc index 5e682c6be6..0207b772f9 100644 --- a/src/pmc/hashiterator.pmc +++ b/src/pmc/hashiterator.pmc @@ -78,24 +78,9 @@ static void advance_to_next(PARROT_INTERP, ARGMOD(PMC *self)) { ASSERT_ARGS(advance_to_next) - Parrot_HashIterator_attributes * const attrs = PARROT_HASHITERATOR(self); - HashBucket *bucket = attrs->bucket; - - /* Try to advance current bucket */ - if (bucket) - bucket = bucket->next; - - while (!bucket) { - /* If there is no more buckets */ - if (attrs->pos == attrs->total_buckets) - break; - - bucket = attrs->parrot_hash->bucket_indices[attrs->pos++]; - } - attrs->bucket = bucket; + parrot_hash_iterator_advance(attrs->parrot_hash, attrs->bucket, attrs->pos); --attrs->elements; - return; } diff --git a/src/pmc/lexinfo.pmc b/src/pmc/lexinfo.pmc index c029944975..1caf6ec359 100644 --- a/src/pmc/lexinfo.pmc +++ b/src/pmc/lexinfo.pmc @@ -99,25 +99,11 @@ C, which gets an array of the names of the symbols in this lexpad. if (Parrot_str_equal(INTERP, what, CONST_STRING(INTERP, "symbols"))) { PMC * const result = Parrot_pmc_new(INTERP, enum_class_ResizableStringArray); const Hash *hash = (Hash *)SELF.get_pointer(); - const UINTVAL entries = hash->entries; - UINTVAL found = 0; - INTVAL i; - - for (i = hash->mask; i >= 0; --i) { - HashBucket *bucket = hash->bucket_indices[i]; - while (bucket) { - if (++found > entries) - Parrot_ex_throw_from_c_args(INTERP, NULL, 1, - "Detected corruption at LexInfo hash %p entries %d", - hash, (int)entries); - - PARROT_ASSERT(bucket->key); - VTABLE_push_string(INTERP, result, (STRING *)bucket->key); - - bucket = bucket->next; - } - } + parrot_hash_iterate(hash, + PARROT_ASSERT(_bucket->key); + VTABLE_push_string(INTERP, result, (STRING *)_bucket->key); + ); return result; } From e3c255e438f9082db118999793b988e54ede7fb7 Mon Sep 17 00:00:00 2001 From: chromatic Date: Thu, 19 Aug 2010 16:06:24 +0000 Subject: [PATCH 035/165] [hash] Renamed hash->bucket_indices to hash->index. Patch courtesy Luben Karavelov, TT #1741. git-svn-id: https://svn.parrot.org/parrot/trunk@48570 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/hash.h | 10 ++++++---- src/hash.c | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/include/parrot/hash.h b/include/parrot/hash.h index 3256737e3a..624d045a3b 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -51,7 +51,7 @@ struct _hash { HashBucket *buckets; /* List of Bucket pointers */ - HashBucket **bucket_indices; + HashBucket **index; /* Store for empty buckets */ HashBucket *free_list; @@ -87,8 +87,10 @@ struct _hash { UINTVAL _found = 0; \ while (_found < _hash->entries){ \ if (_bucket->key){ \ - _code \ _found++; \ + { \ + _code \ + } \ } \ _bucket++; \ } \ @@ -98,7 +100,7 @@ struct _hash { { \ INTVAL _loc; \ for (_loc = (_hash)->mask; _loc >= 0; --_loc) { \ - HashBucket *_bucket = (_hash)->bucket_indices[_loc]; \ + HashBucket *_bucket = (_hash)->index[_loc]; \ while (_bucket) { \ _code \ _bucket = _bucket->next; \ @@ -116,7 +118,7 @@ struct _hash { /* If there is no more buckets */ \ if ((_loc) == (INTVAL)(_hash)->mask+1) \ break; \ - (_bucket) = (_hash)->bucket_indices[_loc++]; \ + (_bucket) = (_hash)->index[_loc++]; \ } \ } diff --git a/src/hash.c b/src/hash.c index 968733b42c..a59b739c8b 100644 --- a/src/hash.c +++ b/src/hash.c @@ -800,7 +800,7 @@ expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) | --> buckets | | +---+---+---+-+-+-+-+ ^ ^ - | old_mem | hash->bucket_indices + | old_mem | hash->index */ /* resize mem */ @@ -821,7 +821,7 @@ expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) | buckets | old_bi | new_bi | +---+---+---+---+---+---+-+-+-+-+-+-+-+-+ ^ ^ - | new_mem | hash->bucket_indices + | new_mem | hash->index */ bs = new_mem; @@ -835,7 +835,7 @@ expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) mem_sys_memmove(new_bi, old_bi, old_size * sizeof (HashBucket *)); /* update hash data */ - hash->bucket_indices = new_bi; + hash->index = new_bi; hash->buckets = bs; hash->mask = new_size - 1; @@ -1033,7 +1033,7 @@ parrot_create_hash(PARROT_INTERP, PARROT_DATA_TYPE val_type, Hash_key_type hkey_ hash->buckets = bp; bp += N_BUCKETS(INITIAL_BUCKETS); - hash->bucket_indices = (HashBucket **)bp; + hash->index = (HashBucket **)bp; for (i = 0, --bp; i < N_BUCKETS(INITIAL_BUCKETS); ++i, --bp) { bp->next = hash->free_list; @@ -1113,7 +1113,7 @@ parrot_chash_destroy_values(PARROT_INTERP, ARGMOD(Hash *hash), NOTNULL(value_fre UINTVAL i; for (i = 0; i <= hash->mask; ++i) { - HashBucket *bucket = hash->bucket_indices[i]; + HashBucket *bucket = hash->index[i]; while (bucket) { mem_gc_free(interp, bucket->key); func(bucket->value); @@ -1238,7 +1238,7 @@ parrot_hash_get_bucket(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(cons /* if the fast search didn't work, try the normal hashing search */ { const UINTVAL hashval = get_hash_val(interp, hash, key); - HashBucket *bucket = hash->bucket_indices[hashval & hash->mask]; + HashBucket *bucket = hash->index[hashval & hash->mask]; const hash_comp_fn compare = hash->compare; while (bucket) { @@ -1320,7 +1320,7 @@ parrot_hash_put(PARROT_INTERP, ARGMOD(Hash *hash), { ASSERT_ARGS(parrot_hash_put) const UINTVAL hashval = get_hash_val(interp, hash, key); - HashBucket *bucket = hash->bucket_indices[hashval & hash->mask]; + HashBucket *bucket = hash->index[hashval & hash->mask]; const hash_comp_fn compare = hash->compare; /* See if we have an existing value for this key */ @@ -1349,8 +1349,8 @@ parrot_hash_put(PARROT_INTERP, ARGMOD(Hash *hash), hash->free_list = bucket->next; bucket->key = key; bucket->value = value; - bucket->next = hash->bucket_indices[hashval & hash->mask]; - hash->bucket_indices[hashval & hash->mask] = bucket; + bucket->next = hash->index[hashval & hash->mask]; + hash->index[hashval & hash->mask] = bucket; } return bucket; @@ -1373,7 +1373,7 @@ parrot_hash_delete(PARROT_INTERP, ARGMOD(Hash *hash), ARGIN(void *key)) { ASSERT_ARGS(parrot_hash_delete) const UINTVAL hashval = (hash->hash_val)(interp, key, hash->seed) & hash->mask; - HashBucket **prev = &hash->bucket_indices[hashval]; + HashBucket **prev = &hash->index[hashval]; if (*prev) { const hash_comp_fn compare = hash->compare; for (; *prev; prev = &(*prev)->next) { From 4a88045050397a26e80961a97155bfa5db10888e Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Thu, 19 Aug 2010 20:39:32 +0000 Subject: [PATCH 036/165] Add myself to CREDITS git-svn-id: https://svn.parrot.org/parrot/trunk@48571 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- CREDITS | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CREDITS b/CREDITS index b5dd34e359..d9ce45ab50 100644 --- a/CREDITS +++ b/CREDITS @@ -773,6 +773,11 @@ U: nickg N: Nick Kostirya D: Win32, FreeBSD build fixes +N: Nick Wellnhofer +D: String iterator rewrite, GC fixes +E: wellnhofer@aevum.de +U: nwellnhof + N: Nikolay Ananiev D: Win32 build fix From b7aeb09577b354375c20634bbbb4d70137fbb0df Mon Sep 17 00:00:00 2001 From: chromatic Date: Fri, 20 Aug 2010 03:53:28 +0000 Subject: [PATCH 037/165] [OO] Optimized Class's isa_pmc() slightly. git-svn-id: https://svn.parrot.org/parrot/trunk@48572 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/class.pmc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/pmc/class.pmc b/src/pmc/class.pmc index af60dc88c6..d3437805cd 100644 --- a/src/pmc/class.pmc +++ b/src/pmc/class.pmc @@ -1451,10 +1451,14 @@ Returns whether the class is or inherits from C<*class>. if (PMC_IS_NULL(lookup)) return 0; - if (PObj_is_class_TEST(lookup) && lookup == SELF) - return 1; - - classobj = Parrot_oo_get_class(INTERP, lookup); + if (PObj_is_class_TEST(lookup)) { + if (lookup == SELF) + return 1; + else + classobj = lookup; + } + else + classobj = Parrot_oo_get_class(INTERP, lookup); if (PMC_IS_NULL(classobj)) return 0; From 08db6a34389286bcb866037513139a34bcb25d38 Mon Sep 17 00:00:00 2001 From: Christoph Otto Date: Fri, 20 Aug 2010 06:23:43 +0000 Subject: [PATCH 038/165] bootstrap ops and bump PBC_COMPAT for 2.7.0 release git-svn-id: https://svn.parrot.org/parrot/trunk@48573 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- PBC_COMPAT | 1 + src/ops/core_ops.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/PBC_COMPAT b/PBC_COMPAT index cd5b0983e9..fc84e66d77 100644 --- a/PBC_COMPAT +++ b/PBC_COMPAT @@ -28,6 +28,7 @@ # please insert tab separated entries at the top of the list +8.2 2010.08.19 cotto minor version bump for 2.7.0 8.1 2010.08.10 plobsing merge dynop_mapping branch 8.0 2010.07.20 coke released 2.6.0 7.0 2010.04.20 gerd released 2.3.0 (version # added ex post facto, as all previous version #s were published) diff --git a/src/ops/core_ops.c b/src/ops/core_ops.c index c6ba8ff27d..c6186ce002 100644 --- a/src/ops/core_ops.c +++ b/src/ops/core_ops.c @@ -26104,7 +26104,7 @@ op_lib_t core_op_lib = { PARROT_FUNCTION_CORE, /* core_type = PARROT_XX_CORE */ 0, /* flags */ 2, /* major_version */ - 6, /* minor_version */ + 7, /* minor_version */ 0, /* patch_version */ 1083, /* op_count */ core_op_info_table, /* op_info_table */ From effe645d2ed33f548eaecec792d41b53b2652b12 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 20 Aug 2010 06:25:09 +0000 Subject: [PATCH 039/165] improve Packfile get_string_keyed test git-svn-id: https://svn.parrot.org/parrot/trunk@48574 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/packfile.t | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/t/pmc/packfile.t b/t/pmc/packfile.t index 8e66b2a001..66f766fd76 100644 --- a/t/pmc/packfile.t +++ b/t/pmc/packfile.t @@ -77,13 +77,16 @@ If you see this tests failing after bumping PBC_COMPAT rerun tools/dev/mk_packfi .sub 'test_get_string' - .local pmc pf + .local pmc pf, eh pf = new ['Packfile'] $S0 = pf["uuid"] ok(1, 'get_string(uuid)') # Requesting unknown key should throw exception - push_eh unknown_key + eh = new ['ExceptionHandler'] + eh.'handle_types'(.EXCEPTION_KEY_NOT_FOUND) + set_label eh, unknown_key + push_eh eh $S0 = pf["foo"] ok(0, "get_string_keyed_int return unknown key") .return () From b0d6ed8fd80bd2d41546a82bbc4612e2c634426c Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 20 Aug 2010 07:15:32 +0000 Subject: [PATCH 040/165] refactor and improve Packfile get_integer_keyed_str test git-svn-id: https://svn.parrot.org/parrot/trunk@48575 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/packfile.t | 77 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 14 deletions(-) diff --git a/t/pmc/packfile.t b/t/pmc/packfile.t index 66f766fd76..e3de8afdef 100644 --- a/t/pmc/packfile.t +++ b/t/pmc/packfile.t @@ -25,12 +25,12 @@ If you see this tests failing after bumping PBC_COMPAT rerun tools/dev/mk_packfi .sub main :main .include 'test_more.pir' - plan(37) + plan(42) 'test_new'() 'test_set_string_native'() 'test_get_string'() 'test_set_string'() - 'test_get_integer'() + 'test_get_integer_keyed_str'() 'test_set_integer'() 'test_get_directory'() 'test_load'() @@ -124,20 +124,61 @@ If you see this tests failing after bumping PBC_COMPAT rerun tools/dev/mk_packfi .return () .end +# Compose the message for the given key +.sub 'keyed_str_msg' + .param string key + .local string msg + msg = 'get_integer_keyed_str(' + msg = concat msg, key + msg = concat msg, ')' + .return(msg) +.end + +# Check the given key in the Packfile pf +.sub 'do_get_integer_keyed_str' + .param pmc pf + .param string key + .local string msg + .local int result + msg = 'keyed_str_msg'(key) + result = 0 + push_eh fail + + $I0 = pf[key] + result = 1 + goto end + fail: + .get_results($P0) + pop_eh + end: + ok(result, msg) +.end + +.sub 'test_get_integer_keyed_str' + .local pmc pf, keys + .local int nkeys, i + + keys = new ['ResizableStringArray'] + push keys, 'wordsize' + push keys, 'byteorder' + push keys, 'fptype' + push keys, 'version_major' + push keys, 'version_minor' + push keys, 'version_patch' + push keys, 'bytecode_major' + push keys, 'bytecode_minor' + nkeys = elements keys -.sub 'test_get_integer' - .local pmc pf push_eh load_error pf = _pbc() pop_eh - $I0 = pf["version_major"] - ok(1, "get_integer_keyed_str(version_major)") - $I1 = pf["version_minor"] - ok(1, "get_integer_keyed_str(version_minor)") - - $I2 = pf["version_patch"] - ok(1, "get_integer_keyed_str(version_patch)") + i = 0 + nextkey: + $S0 = keys[i] + do_get_integer_keyed_str(pf, $S0) + inc i + if i < nkeys goto nextkey # Requesting unknown key should throw exception push_eh unknown_key @@ -149,12 +190,20 @@ If you see this tests failing after bumping PBC_COMPAT rerun tools/dev/mk_packfi pop_eh ok(1, "get_integer_keyed_str handle unknown key properly") .return () + + # On load error report a failure for each test load_error: .get_results($P0) pop_eh - report_load_error($P0, "get_integer_keyed_str(version_major)") - report_load_error($P0, "get_integer_keyed_str(version_minor)") - report_load_error($P0, "get_integer_keyed_str(version_patch)") + + i = 0 + nexterr: + $S0 = keys[i] + $S0 = keyed_str_msg($S0) + report_load_error($P0, $S0) + inc i + if i < nkeys goto nexterr + report_load_error($P0, "get_integer_keyed_str unknown key") .return() .end From d4c5e79b3eb21ba2a5b048d693f775ea4028d25a Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 20 Aug 2010 08:24:22 +0000 Subject: [PATCH 041/165] exercise PackfileConstantTable mark vtable in tests git-svn-id: https://svn.parrot.org/parrot/trunk@48576 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/packfileconstanttable.t | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/t/pmc/packfileconstanttable.t b/t/pmc/packfileconstanttable.t index bfb611fb50..175fdb489b 100644 --- a/t/pmc/packfileconstanttable.t +++ b/t/pmc/packfileconstanttable.t @@ -62,6 +62,10 @@ load_error: pf = _pbc() pop_eh pftable = _get_consttable(pf) + + # Make sure the mark vtable is exercised and the content survives + sweep 1 + size = elements pftable ok(size, "PackfileConstantTable.elements returns non-zero") .return () From c8acee06bc86109360b4968e447a9fc4833e6311 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 20 Aug 2010 08:32:39 +0000 Subject: [PATCH 042/165] exercise PackfileAnnotations mark vtable in tests git-svn-id: https://svn.parrot.org/parrot/trunk@48577 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/packfileannotations.t | 3 +++ 1 file changed, 3 insertions(+) diff --git a/t/pmc/packfileannotations.t b/t/pmc/packfileannotations.t index 4da8ba8a43..5374796633 100644 --- a/t/pmc/packfileannotations.t +++ b/t/pmc/packfileannotations.t @@ -101,6 +101,9 @@ load_error: $P6 = 2 anns[3] = $P6 + # Make sure the mark vtable is exercised and the content survives + sweep 1 + # Pack $S0 = pf pf = new 'Packfile' From 47f0a4ee5b7968d457d5eefb8773c68a1e06d400 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 20 Aug 2010 11:26:52 +0000 Subject: [PATCH 043/165] reset context for imcc compiling to default values, TT #1694, plobsing++ git-svn-id: https://svn.parrot.org/parrot/trunk@48578 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- compilers/imcc/parser_util.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/compilers/imcc/parser_util.c b/compilers/imcc/parser_util.c index d904f1118c..4d8626007a 100644 --- a/compilers/imcc/parser_util.c +++ b/compilers/imcc/parser_util.c @@ -791,7 +791,7 @@ imcc_compile_file(PARROT_INTERP, ARGIN(const char *fullname), const char *ext; FILE *fp; STRING *fs; - PMC *ignored; + PMC *newcontext; /* need at least 3 regs for compilation of constant math e.g. * add_i_ic_ic - see also IMCC_subst_constants() */ @@ -816,9 +816,6 @@ imcc_compile_file(PARROT_INTERP, ARGIN(const char *fullname), IMCC_fatal(interp, EXCEPTION_EXTERNAL_ERROR, "imcc_compile_file: couldn't open '%s'\n", fullname); - IMCC_INFO(interp)->cur_namespace = NULL; - interp->code = NULL; - IMCC_push_parser_state(interp); { /* Store a copy, in order to know how to free it later */ @@ -835,8 +832,13 @@ imcc_compile_file(PARROT_INTERP, ARGIN(const char *fullname), * which can destroy packfiles under construction */ Parrot_block_GC_mark(interp); - ignored = Parrot_push_context(interp, regs_used); - UNUSED(ignored); + + /* Activate a new context and reset it to initial values */ + newcontext = Parrot_push_context(interp, regs_used); + Parrot_pcc_set_HLL(interp, newcontext, 0); + Parrot_pcc_set_sub(interp, newcontext, 0); + IMCC_INFO(interp)->cur_namespace = NULL; + interp->code = NULL; if (ext && STREQ(ext, ".pasm")) { void *yyscanner; From 00a537529a6330e939e72b1ec7fa28e0e4c36231 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 20 Aug 2010 11:54:52 +0000 Subject: [PATCH 044/165] Account for fixed size pools in memory_allocated Also add tests for TT#945 and TT#1465. Both are still TODO but I have a fix in TT#1737. git-svn-id: https://svn.parrot.org/parrot/trunk@48579 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 5 +- src/gc/gc_private.h | 14 +++--- src/gc/mark_sweep.c | 1 + t/op/{gc-leaky.t => gc-leaky-box.t} | 56 +++++++++++---------- t/op/gc-leaky-call.t | 77 +++++++++++++++++++++++++++++ 5 files changed, 117 insertions(+), 36 deletions(-) rename t/op/{gc-leaky.t => gc-leaky-box.t} (50%) create mode 100644 t/op/gc-leaky-call.t diff --git a/MANIFEST b/MANIFEST index afa057d695..7b828e21c6 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,8 +1,6 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Thu Aug 19 06:48:17 2010 UT -# # See below for documentation on the format of this file. # # See docs/submissions.pod and the documentation in @@ -1801,7 +1799,8 @@ t/op/errorson.t [test] t/op/exceptions.t [test] t/op/exit.t [test] t/op/fetch.t [test] -t/op/gc-leaky.t [test] +t/op/gc-leaky-box.t [test] +t/op/gc-leaky-call.t [test] t/op/gc.t [test] t/op/globals.t [test] t/op/ifunless.t [test] diff --git a/src/gc/gc_private.h b/src/gc/gc_private.h index 5c0cc99d86..aef3cee0d3 100644 --- a/src/gc/gc_private.h +++ b/src/gc/gc_private.h @@ -320,13 +320,13 @@ typedef struct Memory_Pools { * blocks allocated from * the system since the last * GC run */ - size_t memory_allocated; /* The total amount of allocatable memory - * allocated. Doesn't count memory for - * headers or internal structures or - * anything */ - size_t memory_used; /* The total amount of - * memory used for - * buffers and headers */ + size_t memory_allocated; /* The total amount of memory allocated + * in fixed and variable size pools. + * Doesn't count memory for internal + * structures */ + size_t memory_used; /* The total amount of memory used + * in fixed and variable size + * pools. */ size_t mem_used_last_collect; /* The total amount of * memory used after * the last GC run */ diff --git a/src/gc/mark_sweep.c b/src/gc/mark_sweep.c index 9e96e6c2dc..4ad08d304d 100644 --- a/src/gc/mark_sweep.c +++ b/src/gc/mark_sweep.c @@ -481,6 +481,7 @@ Parrot_append_arena_in_pool(SHIM_INTERP, pool->last_Arena = new_arena; mem_pools->header_allocs_since_last_collect += size; + mem_pools->memory_allocated += size; } /* diff --git a/t/op/gc-leaky.t b/t/op/gc-leaky-box.t similarity index 50% rename from t/op/gc-leaky.t rename to t/op/gc-leaky-box.t index f5448c2d93..3455345b9b 100644 --- a/t/op/gc-leaky.t +++ b/t/op/gc-leaky-box.t @@ -4,16 +4,16 @@ =head1 NAME -t/op/gc-leaky.t - test for memory leaks in the Garbage Collector +t/op/gc-leaky-box.t - test for memory leaks in the Garbage Collector =head1 SYNOPSIS - % prove t/op/gc-leaky.t + % prove t/op/gc-leaky-box.t =head1 DESCRIPTION Tests that we actually do a GC mark and sweep after a large number of PMC's have -been created. Test suggested by chromatic++ . More tests are needed to close +been created. Test suggested by chromatic++ . Also includes tests for TT1465 - http://trac.parrot.org/parrot/ticket/1465 . =cut @@ -25,7 +25,7 @@ TT1465 - http://trac.parrot.org/parrot/ticket/1465 . .sub _main :main .include 'test_more.pir' - plan(2) + plan(3) $S0 = interpinfo .INTERPINFO_GC_SYS_NAME if $S0 == "inf" goto dont_run_hanging_tests @@ -36,34 +36,38 @@ TT1465 - http://trac.parrot.org/parrot/ticket/1465 . dont_run_hanging_tests: ok(1, "#TODO - Test disabled on gc_inf") ok(1, "#TODO - Test disabled on gc_inf") + ok(1, "#TODO - Test disabled on gc_inf") test_end: .end .sub test_gc_mark_sweep .local int counter + counter = 0 - loop: - $P0 = box 0 - inc counter - if counter > 1e6 goto done - goto loop - done: - diag("") - $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS - $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS - - $I3 = isge $I1, 1 - $I4 = isge $I2, 1 - - $S1 = $I1 - $S0 = "performed " . $S1 - $S0 .= " (which should be >=1) GC collect runs" - ok($I2,$S0) - - $S1 = $I2 - $S0 = "performed " . $S1 - $S0 .= " (which should be >=1) GC mark runs" - ok($I2,$S0) + loop: + $P0 = box 0 + inc counter + if counter < 10e6 goto loop + + diag("") + $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS + $S1 = $I1 + $S0 = "performed " . $S1 + $S0 .= " (which should be >=1) GC collect runs" + ok($I1,$S0) + + $I1 = interpinfo.INTERPINFO_GC_MARK_RUNS + $S1 = $I1 + $S0 = "performed " . $S1 + $S0 .= " (which should be >=1) GC mark runs" + ok($I1,$S0) + + $I1 = interpinfo.INTERPINFO_TOTAL_MEM_ALLOC + $S1 = $I1 + $S0 = "allocated " . $S1 + $S0 .= " (which should be <= 2_000_000) bytes of memory, TODO: TT#1465" + $I2 = isle $I1, 2000000 + todo($I2,$S0) .end # Local Variables: diff --git a/t/op/gc-leaky-call.t b/t/op/gc-leaky-call.t new file mode 100644 index 0000000000..482b9c4828 --- /dev/null +++ b/t/op/gc-leaky-call.t @@ -0,0 +1,77 @@ +#!./parrot +# Copyright (C) 2010, Parrot Foundation. +# $Id$ + +=head1 NAME + +t/op/gc-leaky-call.t - test for memory leaks in the Garbage Collector + +=head1 SYNOPSIS + + % prove t/op/gc-leaky-call.t + +=head1 DESCRIPTION + +Tests that we actually do a GC mark and sweep after a large number of +function calls. + +=cut + +.include 'interpinfo.pasm' + +.sub _main :main + .include 'test_more.pir' + + plan(3) + + $S0 = interpinfo .INTERPINFO_GC_SYS_NAME + if $S0 == "inf" goto dont_run_hanging_tests + + test_gc_mark_sweep() + + goto test_end + dont_run_hanging_tests: + ok(1, "#TODO - Test disabled on gc_inf") + ok(1, "#TODO - Test disabled on gc_inf") + ok(1, "#TODO - Test disabled on gc_inf") + test_end: +.end + +.sub test_gc_mark_sweep + .local int counter + + counter = 0 + loop: + consume() + inc counter + if counter < 10e6 goto loop + + diag("") + $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS + $S1 = $I1 + $S0 = "performed " . $S1 + $S0 .= " (which should be >=1) GC collect runs" + ok($I1,$S0) + + $I1 = interpinfo.INTERPINFO_GC_MARK_RUNS + $S1 = $I1 + $S0 = "performed " . $S1 + $S0 .= " (which should be >=1) GC mark runs" + ok($I1,$S0) + + $I1 = interpinfo.INTERPINFO_TOTAL_MEM_ALLOC + $S1 = $I1 + $S0 = "allocated " . $S1 + $S0 .= " (which should be <= 2_000_000) bytes of memory, TODO: TT#945" + $I2 = isle $I1, 2000000 + todo($I2,$S0) +.end + +.sub consume +.end + +# Local Variables: +# mode: pir +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4 ft=pir: From ca5bd395b16a0a877bb72e6627ef430609188724 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 20 Aug 2010 12:42:42 +0000 Subject: [PATCH 045/165] experimental Parrot_getpid function, TT #1564 git-svn-id: https://svn.parrot.org/parrot/trunk@48580 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- DEPRECATED.pod | 12 +++++++ MANIFEST | 2 ++ config/gen/platform.pm | 1 + config/gen/platform/ansi/pid.c | 50 ++++++++++++++++++++++++++ config/gen/platform/generic/pid.c | 56 +++++++++++++++++++++++++++++ include/parrot/platform_interface.h | 7 ++++ src/pmc/parrotinterpreter.pmc | 4 +++ 7 files changed, 132 insertions(+) create mode 100644 config/gen/platform/ansi/pid.c create mode 100644 config/gen/platform/generic/pid.c diff --git a/DEPRECATED.pod b/DEPRECATED.pod index b00cd3631c..1f308ea58d 100644 --- a/DEPRECATED.pod +++ b/DEPRECATED.pod @@ -147,6 +147,12 @@ Use isatty instead. L +=item Method getpid on ParrotInterpreter [experimental] + +Used to test the experimental function Parrot_getpid + +L + =back =head1 Opcodes @@ -383,6 +389,12 @@ Use Parrot_get_runtime_path instead. L +=item Parrot_getpid [experimental] + +Get process id, experimental. + +L + =back =head1 Compiler tools diff --git a/MANIFEST b/MANIFEST index 7b828e21c6..97c0647dc9 100644 --- a/MANIFEST +++ b/MANIFEST @@ -273,6 +273,7 @@ config/gen/platform/aix/asm.s [] config/gen/platform/ansi/dl.c [] config/gen/platform/ansi/exec.c [] config/gen/platform/ansi/io.h [] +config/gen/platform/ansi/pid.c [] config/gen/platform/ansi/time.c [] config/gen/platform/cygwin/math.c [] config/gen/platform/darwin/begin.c [] @@ -287,6 +288,7 @@ config/gen/platform/generic/itimer.c [] config/gen/platform/generic/math.c [] config/gen/platform/generic/math.h [] config/gen/platform/generic/memexec.c [] +config/gen/platform/generic/pid.c [] config/gen/platform/generic/platform_limits.h [] config/gen/platform/generic/signal.c [] config/gen/platform/generic/signal.h [] diff --git a/config/gen/platform.pm b/config/gen/platform.pm index daf58ad017..911c511328 100644 --- a/config/gen/platform.pm +++ b/config/gen/platform.pm @@ -197,6 +197,7 @@ sub _set_implementations { exec.c misc.c hires_timer.c + pid.c /; my $plat_c = q{src/platform.c}; diff --git a/config/gen/platform/ansi/pid.c b/config/gen/platform/ansi/pid.c new file mode 100644 index 0000000000..f5cfd43d64 --- /dev/null +++ b/config/gen/platform/ansi/pid.c @@ -0,0 +1,50 @@ +/* $Id: $ + * Copyright (C) 2010, Parrot Foundation. + */ + +/* + +=head1 NAME + +config/gen/platform/ansi/pid.c + +=head1 DESCRIPTION + +Parrot process id functions. + +=head2 Functions + +=over 4 + +=cut + +=item C + +Parrot wrapper around standard library C function, returning an UINTVAL. + +=cut + +*/ + +UINTVAL +Parrot_getpid(void) +{ + Parrot_warn(NULL, PARROT_WARNINGS_PLATFORM_FLAG, "Parrot_getpid unuseful in this platform"); + return 0; +} + + +/* + +=back + +=cut + +*/ + +/* + * Local variables: + * c-file-style: "parrot" + * End: + * vim: expandtab shiftwidth=4: + */ diff --git a/config/gen/platform/generic/pid.c b/config/gen/platform/generic/pid.c new file mode 100644 index 0000000000..fbd969669c --- /dev/null +++ b/config/gen/platform/generic/pid.c @@ -0,0 +1,56 @@ +/* $Id: $ + * Copyright (C) 2010, Parrot Foundation. + */ + +/* + +=head1 NAME + +config/gen/platform/generic/pid.c + +=head1 DESCRIPTION + +Parrot process id functions. + +=head2 Functions + +=over 4 + +=cut + +*/ + +#include +#include + +/* + +=item C + +Parrot wrapper around standard library C function, returning an UINTVAL. + +=cut + +*/ + +UINTVAL +Parrot_getpid(void) +{ + return getpid(); +} + + +/* + +=back + +=cut + +*/ + +/* + * Local variables: + * c-file-style: "parrot" + * End: + * vim: expandtab shiftwidth=4: + */ diff --git a/include/parrot/platform_interface.h b/include/parrot/platform_interface.h index 026c0d3108..75b38b96e0 100644 --- a/include/parrot/platform_interface.h +++ b/include/parrot/platform_interface.h @@ -49,6 +49,13 @@ void *mem_realloc_executable(void *, size_t, size_t); # define mem_realloc_executable(a, b, c) mem_internal_realloc((a), (c)) #endif + +/* +** Process ID +*/ + +UINTVAL Parrot_getpid(void); + /* ** Time */ diff --git a/src/pmc/parrotinterpreter.pmc b/src/pmc/parrotinterpreter.pmc index 16f0ab667a..7ce9fba645 100644 --- a/src/pmc/parrotinterpreter.pmc +++ b/src/pmc/parrotinterpreter.pmc @@ -848,6 +848,10 @@ This method is experimental. See TT #264. RETURN(PMC *handle); } + METHOD getpid() { + INTVAL id = Parrot_getpid(); + RETURN(INTVAL id); + } } From 6c79b22c5ee55acb7f324601d60a40a9a2b35e56 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 20 Aug 2010 12:47:21 +0000 Subject: [PATCH 046/165] Get GC stats before possibly triggering another GC git-svn-id: https://svn.parrot.org/parrot/trunk@48581 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/op/gc-leaky-box.t | 16 ++++++++-------- t/op/gc-leaky-call.t | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/t/op/gc-leaky-box.t b/t/op/gc-leaky-box.t index 3455345b9b..7ba8ec4630 100644 --- a/t/op/gc-leaky-box.t +++ b/t/op/gc-leaky-box.t @@ -49,25 +49,25 @@ TT1465 - http://trac.parrot.org/parrot/ticket/1465 . inc counter if counter < 10e6 goto loop - diag("") $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS + $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS + $I3 = interpinfo.INTERPINFO_TOTAL_MEM_ALLOC + $S1 = $I1 $S0 = "performed " . $S1 $S0 .= " (which should be >=1) GC collect runs" ok($I1,$S0) - $I1 = interpinfo.INTERPINFO_GC_MARK_RUNS - $S1 = $I1 + $S1 = $I2 $S0 = "performed " . $S1 $S0 .= " (which should be >=1) GC mark runs" - ok($I1,$S0) + ok($I2,$S0) - $I1 = interpinfo.INTERPINFO_TOTAL_MEM_ALLOC - $S1 = $I1 + $S1 = $I3 $S0 = "allocated " . $S1 $S0 .= " (which should be <= 2_000_000) bytes of memory, TODO: TT#1465" - $I2 = isle $I1, 2000000 - todo($I2,$S0) + $I4 = isle $I3, 2000000 + todo($I4,$S0) .end # Local Variables: diff --git a/t/op/gc-leaky-call.t b/t/op/gc-leaky-call.t index 482b9c4828..f368bda468 100644 --- a/t/op/gc-leaky-call.t +++ b/t/op/gc-leaky-call.t @@ -46,25 +46,25 @@ function calls. inc counter if counter < 10e6 goto loop - diag("") $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS + $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS + $I3 = interpinfo.INTERPINFO_TOTAL_MEM_ALLOC + $S1 = $I1 $S0 = "performed " . $S1 $S0 .= " (which should be >=1) GC collect runs" ok($I1,$S0) - $I1 = interpinfo.INTERPINFO_GC_MARK_RUNS - $S1 = $I1 + $S1 = $I2 $S0 = "performed " . $S1 $S0 .= " (which should be >=1) GC mark runs" - ok($I1,$S0) + ok($I2,$S0) - $I1 = interpinfo.INTERPINFO_TOTAL_MEM_ALLOC - $S1 = $I1 + $S1 = $I3 $S0 = "allocated " . $S1 $S0 .= " (which should be <= 2_000_000) bytes of memory, TODO: TT#945" - $I2 = isle $I1, 2000000 - todo($I2,$S0) + $I4 = isle $I3, 2000000 + todo($I4,$S0) .end .sub consume From 9d2ad1954bbd69e77997bfab9733c093f30b13e7 Mon Sep 17 00:00:00 2001 From: "Will \"Coke\" Coleda" Date: Fri, 20 Aug 2010 12:55:08 +0000 Subject: [PATCH 047/165] Mention what we are before we mention what you need. git-svn-id: https://svn.parrot.org/parrot/trunk@48582 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- README | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README b/README index 2163cdd199..93a7ae0a36 100644 --- a/README +++ b/README @@ -11,6 +11,11 @@ LICENSE INFORMATION This code is distributed under the terms of the Artistic License 2.0. For more details, see the full text of the license in the file LICENSE. +OVERVIEW +-------- +Parrot is a virtual machine designed to efficiently compile and execute +bytecode for dynamic languages. + PREREQUISITES ------------- From f28865faae33426e2845fcebfd08d818221a9ef7 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 20 Aug 2010 13:08:12 +0000 Subject: [PATCH 048/165] add a pid.c for win32 platform and fix some other mistakes from r48580, TT #1564 git-svn-id: https://svn.parrot.org/parrot/trunk@48583 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 3 ++ config/gen/platform/ansi/pid.c | 4 +-- config/gen/platform/generic/pid.c | 4 +-- config/gen/platform/win32/pid.c | 50 +++++++++++++++++++++++++++++++ src/pmc/parrotinterpreter.pmc | 15 +++++++++- 5 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 config/gen/platform/win32/pid.c diff --git a/MANIFEST b/MANIFEST index 97c0647dc9..285601e671 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,6 +1,8 @@ # ex: set ro: # $Id$ # +# generated by tools/dev/mk_manifest_and_skip.pl Fri Aug 20 12:55:40 2010 UT +# # See below for documentation on the format of this file. # # See docs/submissions.pod and the documentation in @@ -313,6 +315,7 @@ config/gen/platform/win32/hires_timer.c [] config/gen/platform/win32/io.h [] config/gen/platform/win32/misc.c [] config/gen/platform/win32/misc.h [] +config/gen/platform/win32/pid.c [] config/gen/platform/win32/signal.c [] config/gen/platform/win32/signal.h [] config/gen/platform/win32/stat.c [] diff --git a/config/gen/platform/ansi/pid.c b/config/gen/platform/ansi/pid.c index f5cfd43d64..a98f927f0e 100644 --- a/config/gen/platform/ansi/pid.c +++ b/config/gen/platform/ansi/pid.c @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ * Copyright (C) 2010, Parrot Foundation. */ @@ -18,7 +18,7 @@ Parrot process id functions. =cut -=item C +=item C Parrot wrapper around standard library C function, returning an UINTVAL. diff --git a/config/gen/platform/generic/pid.c b/config/gen/platform/generic/pid.c index fbd969669c..a4d746ed93 100644 --- a/config/gen/platform/generic/pid.c +++ b/config/gen/platform/generic/pid.c @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ * Copyright (C) 2010, Parrot Foundation. */ @@ -25,7 +25,7 @@ Parrot process id functions. /* -=item C +=item C Parrot wrapper around standard library C function, returning an UINTVAL. diff --git a/config/gen/platform/win32/pid.c b/config/gen/platform/win32/pid.c new file mode 100644 index 0000000000..2d56a01936 --- /dev/null +++ b/config/gen/platform/win32/pid.c @@ -0,0 +1,50 @@ +/* $Id$ + * Copyright (C) 2010, Parrot Foundation. + */ + +/* + +=head1 NAME + +config/gen/platform/win32/pid.c + +=head1 DESCRIPTION + +Parrot process id functions. + +=head2 Functions + +=over 4 + +=cut + +=item C + +Parrot wrapper around standard library C function, returning an UINTVAL. + +=cut + +*/ + +UINTVAL +Parrot_getpid(void) +{ + Parrot_warn(NULL, PARROT_WARNINGS_PLATFORM_FLAG, "Parrot_getpid unuseful in this platform"); + return 0; +} + + +/* + +=back + +=cut + +*/ + +/* + * Local variables: + * c-file-style: "parrot" + * End: + * vim: expandtab shiftwidth=4: + */ diff --git a/src/pmc/parrotinterpreter.pmc b/src/pmc/parrotinterpreter.pmc index 7ce9fba645..72020090a0 100644 --- a/src/pmc/parrotinterpreter.pmc +++ b/src/pmc/parrotinterpreter.pmc @@ -848,9 +848,22 @@ This method is experimental. See TT #264. RETURN(PMC *handle); } +/* + +=item METHOD getpid() + +Returns the pid of the current process, 0 in platforms that doesn't +support it. + +This method is experimental. See TT #1564. + +=cut + +*/ + METHOD getpid() { INTVAL id = Parrot_getpid(); - RETURN(INTVAL id); + RETURN(INTVAL id); } } From 0257aa578990d4232405a18393a47f4bb7d44a15 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 20 Aug 2010 13:50:18 +0000 Subject: [PATCH 049/165] add a TODO test for TT #1446 git-svn-id: https://svn.parrot.org/parrot/trunk@48584 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/string/api.c | 2 +- t/pmc/exception.t | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/string/api.c b/src/string/api.c index 3a6f805b96..2cb343e104 100644 --- a/src/string/api.c +++ b/src/string/api.c @@ -2677,7 +2677,7 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), case 'v': next = '\v'; break; case 'f': next = '\f'; break; case 'r': next = '\r'; break; - case 'e': next = '\e'; break; + case 'e': next = '\x27'; break; /* Escape character */ case 'c': c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); diff --git a/t/pmc/exception.t b/t/pmc/exception.t index 17439403eb..2f8ea03d5c 100644 --- a/t/pmc/exception.t +++ b/t/pmc/exception.t @@ -16,9 +16,11 @@ Tests C and C PMCs. =cut +.include 'except_types.pasm' + .sub main :main .include 'test_more.pir' - plan(20) + plan(21) test_bool() test_int() test_attrs() @@ -28,6 +30,7 @@ Tests C and C PMCs. test_push_eh_throw() test_die() test_throw_obj() + test_throw_clone() .end .sub test_bool @@ -173,6 +176,28 @@ _handler: ok(1,'caught exception object thrown') .end +.sub test_throw_clone + .local pmc ex, exclone, eh, ehguard + .local int result + ex = new ['Exception'] + ex['type'] = .EXCEPTION_SYNTAX_ERROR + exclone = clone ex + ehguard = new ['ExceptionHandler'] + set_label ehguard, catchall + push_eh ehguard + eh = new ['ExceptionHandler'] + eh.'handle_types'(.EXCEPTION_SYNTAX_ERROR) + set_label eh, catch + result = 0 + push_eh eh + throw exclone + catch: + result = 1 + catchall: + # TT #1446 + todo(result, 1, 'caught a cloned Exception') +.end + # Local Variables: # mode: pir # fill-column: 100 From 6bd9023b20d4ec0a5ead869a9c76ebc9263c3dcd Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 20 Aug 2010 14:54:31 +0000 Subject: [PATCH 050/165] More adjustments to GC timing Apply the rest of my GC timing changes (TT#1737), but keep GC_ALWAYS_SKIP for constant pools. Decrease the dynamic threshold to 25% from 50%. This also fixes TT#945 and TT#1465. git-svn-id: https://svn.parrot.org/parrot/trunk@48585 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/gc/alloc_resources.c | 5 ++--- src/gc/gc_ms.c | 8 ++------ src/gc/gc_private.h | 9 ++++++--- src/gc/mark_sweep.c | 13 ++++--------- t/op/gc-leaky-box.t | 4 ++-- t/op/gc-leaky-call.t | 4 ++-- 6 files changed, 18 insertions(+), 25 deletions(-) diff --git a/src/gc/alloc_resources.c b/src/gc/alloc_resources.c index 03eb241c59..11361023dc 100644 --- a/src/gc/alloc_resources.c +++ b/src/gc/alloc_resources.c @@ -314,7 +314,7 @@ mem_allocate(PARROT_INTERP, size_t new_mem = mem_pools->memory_used - mem_pools->mem_used_last_collect; if (!mem_pools->gc_mark_block_level - && new_mem > (mem_pools->mem_used_last_collect >> 1) + && new_mem > (mem_pools->mem_used_last_collect >> 2) && new_mem > GC_SIZE_THRESHOLD) { Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG); @@ -731,8 +731,7 @@ free_old_mem_blocks( else { /* Note that we don't have it any more */ mem_pools->memory_allocated -= cur_block->size; - mem_pools->memory_used -= - cur_block->size - cur_block->free - cur_block->freed; + mem_pools->memory_used -= cur_block->size - cur_block->free; /* We know the pool body and pool header are a single chunk, so * this is enough to get rid of 'em both */ diff --git a/src/gc/gc_ms.c b/src/gc/gc_ms.c index 6735de3dc5..1c76951ce1 100644 --- a/src/gc/gc_ms.c +++ b/src/gc/gc_ms.c @@ -1239,7 +1239,6 @@ gc_ms_reallocate_string_storage(PARROT_INTERP, ARGMOD(STRING *str), /* Decrease usage */ PARROT_ASSERT(Buffer_pool(str)); Buffer_pool(str)->freed += old_size; - interp->mem_pools->memory_used -= old_size; /* copy mem from strstart, *not* bufstart */ oldmem = str->strstart; @@ -1509,8 +1508,8 @@ gc_ms_more_traceable_objects(PARROT_INTERP, pool->skip = GC_NO_SKIP; else if (pool->skip == GC_NEVER_SKIP || (pool->skip == GC_NO_SKIP - && (new_mem > (mem_pools->mem_used_last_collect >> 1) - && mem_pools->header_allocs_since_last_collect >= GC_SIZE_THRESHOLD))) + && (new_mem > (mem_pools->mem_used_last_collect >> 2) + && new_mem >= GC_SIZE_THRESHOLD))) Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG); /* requires that num_free_objects be updated in Parrot_gc_mark_and_sweep. @@ -1649,9 +1648,6 @@ gc_ms_alloc_objects(PARROT_INTERP, if (alloc_size > POOL_MAX_BYTES) pool->objects_per_alloc = POOL_MAX_BYTES / pool->object_size; - - if (alloc_size > GC_SIZE_THRESHOLD) - pool->skip = GC_NEVER_SKIP; } diff --git a/src/gc/gc_private.h b/src/gc/gc_private.h index aef3cee0d3..44de15e385 100644 --- a/src/gc/gc_private.h +++ b/src/gc/gc_private.h @@ -86,9 +86,9 @@ typedef enum _gc_sys_type_enum { /* how often to skip a full GC when this pool has nothing free */ typedef enum _gc_skip_type_enum { GC_NO_SKIP = 0, - GC_ONE_SKIP, + GC_ONE_SKIP, /* unused */ GC_ALWAYS_SKIP, - GC_NEVER_SKIP + GC_NEVER_SKIP /* unused */ } gc_skip_type_enum; typedef struct GC_Subsystem { @@ -326,7 +326,10 @@ typedef struct Memory_Pools { * structures */ size_t memory_used; /* The total amount of memory used * in fixed and variable size - * pools. */ + * pools. Also includes memory in + * variable size pools that has been + * freed but can only be reclaimed + * by a GC run */ size_t mem_used_last_collect; /* The total amount of * memory used after * the last GC run */ diff --git a/src/gc/mark_sweep.c b/src/gc/mark_sweep.c index 4ad08d304d..ccf72aad08 100644 --- a/src/gc/mark_sweep.c +++ b/src/gc/mark_sweep.c @@ -32,13 +32,11 @@ throughout the rest of Parrot. /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ static void free_buffer(SHIM_INTERP, - ARGMOD(Memory_Pools *mem_pools), + SHIM(Memory_Pools *mem_pools), ARGMOD(Fixed_Size_Pool *pool), ARGMOD(Buffer *b)) - __attribute__nonnull__(2) __attribute__nonnull__(3) __attribute__nonnull__(4) - FUNC_MODIFIES(*mem_pools) FUNC_MODIFIES(*pool) FUNC_MODIFIES(*b); @@ -80,8 +78,7 @@ static Fixed_Size_Pool * new_string_pool(PARROT_INTERP, FUNC_MODIFIES(*mem_pools); #define ASSERT_ARGS_free_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(mem_pools) \ - , PARROT_ASSERT_ARG(pool) \ + PARROT_ASSERT_ARG(pool) \ , PARROT_ASSERT_ARG(b)) #define ASSERT_ARGS_free_pmc_in_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ @@ -659,7 +656,7 @@ reuse later. static void free_buffer(SHIM_INTERP, - ARGMOD(Memory_Pools *mem_pools), + SHIM(Memory_Pools *mem_pools), ARGMOD(Fixed_Size_Pool *pool), ARGMOD(Buffer *b)) { @@ -684,9 +681,7 @@ free_buffer(SHIM_INTERP, /* We can have shared buffers. Don't count them (yet) */ if (!(*buffer_flags & Buffer_shared_FLAG)) { - size_t size = ALIGNED_STRING_SIZE(Buffer_buflen(b)); - block->freed += size; - mem_pools->memory_used -= size; + block->freed += ALIGNED_STRING_SIZE(Buffer_buflen(b)); } } diff --git a/t/op/gc-leaky-box.t b/t/op/gc-leaky-box.t index 7ba8ec4630..3c7ee594c2 100644 --- a/t/op/gc-leaky-box.t +++ b/t/op/gc-leaky-box.t @@ -65,9 +65,9 @@ TT1465 - http://trac.parrot.org/parrot/ticket/1465 . $S1 = $I3 $S0 = "allocated " . $S1 - $S0 .= " (which should be <= 2_000_000) bytes of memory, TODO: TT#1465" + $S0 .= " (which should be <= 2_000_000) bytes of memory" $I4 = isle $I3, 2000000 - todo($I4,$S0) + ok($I4,$S0) .end # Local Variables: diff --git a/t/op/gc-leaky-call.t b/t/op/gc-leaky-call.t index f368bda468..13bb87b516 100644 --- a/t/op/gc-leaky-call.t +++ b/t/op/gc-leaky-call.t @@ -62,9 +62,9 @@ function calls. $S1 = $I3 $S0 = "allocated " . $S1 - $S0 .= " (which should be <= 2_000_000) bytes of memory, TODO: TT#945" + $S0 .= " (which should be <= 2_000_000) bytes of memory" $I4 = isle $I3, 2000000 - todo($I4,$S0) + ok($I4,$S0) .end .sub consume From ace1d628df90b9572fe0b863d2d3c30319d133d5 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 20 Aug 2010 18:13:00 +0000 Subject: [PATCH 051/165] Don't set live flag on new strings git-svn-id: https://svn.parrot.org/parrot/trunk@48586 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/gc/api.c | 8 ++++---- src/pmc/stringbuilder.pmc | 4 ++-- src/string/api.c | 6 ++---- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/gc/api.c b/src/gc/api.c index 6123adcd0a..a6397aabb0 100644 --- a/src/gc/api.c +++ b/src/gc/api.c @@ -359,9 +359,9 @@ Parrot_gc_free_pmc_header(PARROT_INTERP, ARGMOD(PMC *pmc)) =item C Returns a new C header from the string pool or the constant string -pool. Sets default flags on the string object: C, -C, and C (for GC). Initializes the data -field of the string buffer to C. +pool. Sets default flags on the string object: C and +C. Initializes the data field of the string buffer to +C. =cut @@ -381,7 +381,7 @@ Parrot_gc_new_string_header(PARROT_INTERP, UINTVAL flags) string->strstart = NULL; PObj_get_FLAGS(string) |= - flags | PObj_is_string_FLAG | PObj_is_COWable_FLAG | PObj_live_FLAG; + flags | PObj_is_string_FLAG | PObj_is_COWable_FLAG; return string; } diff --git a/src/pmc/stringbuilder.pmc b/src/pmc/stringbuilder.pmc index 6a9d49f8f1..a34def69a5 100644 --- a/src/pmc/stringbuilder.pmc +++ b/src/pmc/stringbuilder.pmc @@ -66,7 +66,7 @@ Initializes the StringBuilder with initial size of buffer. buffer->encoding = Parrot_default_encoding_ptr; buffer->charset = Parrot_default_charset_ptr; /* We need all string flags here because we use this buffer in substr_str */ - buffer->flags = PObj_is_string_FLAG | PObj_live_FLAG | PObj_external_FLAG; + buffer->flags = PObj_is_string_FLAG | PObj_external_FLAG; buffer->_bufstart = buffer->strstart = mem_gc_allocate_n_typed(INTERP, initial_size, char); buffer->_buflen = initial_size; @@ -145,7 +145,7 @@ Append string to current buffer. STRING * const new_buffer = Parrot_unicode_charset_ptr->to_charset(interp, buffer); mem_gc_free(INTERP, buffer->_bufstart); STRUCT_COPY(buffer, new_buffer); - buffer->flags = PObj_is_string_FLAG | PObj_live_FLAG | PObj_external_FLAG; + buffer->flags = PObj_is_string_FLAG | PObj_external_FLAG; buffer->_bufstart = buffer->strstart = mem_gc_allocate_n_typed(INTERP, new_buffer->_buflen, char); diff --git a/src/string/api.c b/src/string/api.c index 2cb343e104..19098108b8 100644 --- a/src/string/api.c +++ b/src/string/api.c @@ -353,8 +353,7 @@ Parrot_str_clone(PARROT_INTERP, ARGIN(const STRING *s)) /* Clear COW flag. We own buffer */ PObj_get_FLAGS(result) = PObj_is_string_FLAG - | PObj_is_COWable_FLAG - | PObj_live_FLAG; + | PObj_is_COWable_FLAG; /* Allocate new chunk of memory */ Parrot_gc_allocate_string_storage(interp, result, alloc_size); @@ -1304,8 +1303,7 @@ Parrot_str_replace(PARROT_INTERP, ARGIN(const STRING *src), /* Clear COW flag. We own buffer */ PObj_get_FLAGS(dest) = PObj_is_string_FLAG - | PObj_is_COWable_FLAG - | PObj_live_FLAG; + | PObj_is_COWable_FLAG; /* size removed bytes added bytes */ buf_size = src->bufused - (end_byte - start_byte) + rep->bufused; From 0fdc7c2e6eff28bfa4383e85f62f2c55defa2533 Mon Sep 17 00:00:00 2001 From: "Patrick R. Michaud" Date: Fri, 20 Aug 2010 18:38:47 +0000 Subject: [PATCH 052/165] [nqp-rx]: Update with implementation of && in regexes. git-svn-id: https://svn.parrot.org/parrot/trunk@48587 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- ext/nqp-rx/src/stage0/HLL-s0.pir | 1113 +- ext/nqp-rx/src/stage0/NQP-s0.pir | 3537 +++-- ext/nqp-rx/src/stage0/P6Regex-s0.pir | 18411 +++++++++++++------------ ext/nqp-rx/src/stage0/Regex-s0.pir | 175 +- 4 files changed, 11811 insertions(+), 11425 deletions(-) diff --git a/ext/nqp-rx/src/stage0/HLL-s0.pir b/ext/nqp-rx/src/stage0/HLL-s0.pir index 3a5a4c6d13..69db2d204c 100644 --- a/ext/nqp-rx/src/stage0/HLL-s0.pir +++ b/ext/nqp-rx/src/stage0/HLL-s0.pir @@ -438,6 +438,16 @@ position C. .sub 'quote_EXPR' :method .param pmc args :slurpy + .local pmc cur, debug + .local string target + .local int pos + + (cur, pos, target) = self.'!cursor_start'() + debug = getattribute cur, '$!debug' + if null debug goto debug_1 + cur.'!cursor_debug'('START', 'quote_EXPR') + debug_1: + .local pmc quotemod, true .lex '%*QUOTEMOD', quotemod quotemod = new ['Hash'] @@ -466,11 +476,6 @@ position C. goto args_loop args_done: - .local pmc cur - .local string target - .local int pos - - (cur, pos, target) = self.'!cursor_start'() .local pmc start, stop (start, stop) = self.'peek_delimiters'(target, pos) @@ -484,7 +489,13 @@ position C. $P10.'!cursor_names'('quote_delimited') pos = $P10.'pos'() cur.'!cursor_pass'(pos, 'quote_EXPR') + if null debug goto done + cur.'!cursor_debug'('PASS', 'quote_EXPR') + goto done fail: + if null debug goto done + cur.'!cursor_debug'('FAIL', 'quote_EXPR') + done: .return (cur) .end @@ -574,6 +585,13 @@ An operator precedence parser. .param string preclim :optional .param int has_preclim :opt_flag + .local pmc here, pos, debug + (here, pos) = self.'!cursor_start'() + debug = getattribute here, '$!debug' + if null debug goto debug_1 + here.'!cursor_debug'('START', 'EXPR') + debug_1: + if has_preclim goto have_preclim preclim = '' have_preclim: @@ -588,9 +606,6 @@ An operator precedence parser. termstack = new ['ResizablePMCArray'] .lex '@termstack', termstack - .local pmc here, from, pos - (here, pos) = self.'!cursor_start'() - term_loop: here = here.termishrx() unless here goto fail @@ -718,7 +733,14 @@ An operator precedence parser. setattribute here, '$!pos', pos setattribute here, '$!match', term here.'!reduce'('EXPR') + if null debug goto done + here.'!cursor_debug'('PASS', 'EXPR') + goto done + fail: + if null debug goto done + here.'!cursor_debug'('FAIL', 'EXPR') + done: .return (here) err_internal: @@ -809,7 +831,7 @@ An operator precedence parser. .local pmc pos pos = self.'pos'() - self.'!cursor_debug'('START MARKER name=', markname, ', pos=', pos) + self.'!cursor_debug'('START', 'MARKER name=', markname, ', pos=', pos) .local pmc markhash markhash = get_global '%!MARKHASH' @@ -818,7 +840,7 @@ An operator precedence parser. set_global '%!MARKHASH', markhash have_markhash: markhash[markname] = pos - self.'!cursor_debug'('PASS MARKER') + self.'!cursor_debug'('PASS', 'MARKER') .return (1) .end @@ -826,7 +848,7 @@ An operator precedence parser. .sub 'MARKED' :method .param pmc markname - self.'!cursor_debug'('START MARKED name=', markname) + self.'!cursor_debug'('START','MARKED name=', markname) .local pmc markhash markhash = get_global '%!MARKHASH' @@ -835,10 +857,10 @@ An operator precedence parser. if null $P0 goto fail $P1 = self.'pos'() unless $P0 == $P1 goto fail - self.'!cursor_debug'('PASS MARKED') + self.'!cursor_debug'('PASS','MARKED') .return (1) fail: - self.'!cursor_debug'('FAIL MARKED') + self.'!cursor_debug'('FAIL','MARKED') .return (0) .end @@ -902,7 +924,7 @@ An operator precedence parser. ### .include 'gen/hllgrammar-grammar.pir' .namespace [] -.sub "_block11" :anon :subid("10_1282016519.8364") +.sub "_block11" :anon :subid("10_1282323993.58127") .annotate 'line', 0 get_hll_global $P14, ["HLL";"Grammar"], "_block13" capture_lex $P14 @@ -919,15 +941,15 @@ An operator precedence parser. $P332 = $P14() .annotate 'line', 1 .return ($P332) - .const 'Sub' $P334 = "106_1282016519.8364" + .const 'Sub' $P334 = "106_1282323993.58127" .return ($P334) .end .namespace [] -.sub "" :load :init :subid("post107") :outer("10_1282016519.8364") +.sub "" :load :init :subid("post107") :outer("10_1282323993.58127") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1282016519.8364" + .const 'Sub' $P12 = "10_1282323993.58127" .local pmc block set block, $P12 $P337 = get_root_global ["parrot"], "P6metaclass" @@ -936,83 +958,83 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "_block13" :subid("11_1282016519.8364") :outer("10_1282016519.8364") +.sub "_block13" :subid("11_1282323993.58127") :outer("10_1282323993.58127") .annotate 'line', 5 - .const 'Sub' $P319 = "103_1282016519.8364" + .const 'Sub' $P319 = "103_1282323993.58127" capture_lex $P319 - .const 'Sub' $P313 = "101_1282016519.8364" + .const 'Sub' $P313 = "101_1282323993.58127" capture_lex $P313 - .const 'Sub' $P300 = "98_1282016519.8364" + .const 'Sub' $P300 = "98_1282323993.58127" capture_lex $P300 - .const 'Sub' $P268 = "93_1282016519.8364" + .const 'Sub' $P268 = "93_1282323993.58127" capture_lex $P268 - .const 'Sub' $P262 = "91_1282016519.8364" + .const 'Sub' $P262 = "91_1282323993.58127" capture_lex $P262 - .const 'Sub' $P257 = "89_1282016519.8364" + .const 'Sub' $P257 = "89_1282323993.58127" capture_lex $P257 - .const 'Sub' $P251 = "87_1282016519.8364" + .const 'Sub' $P251 = "87_1282323993.58127" capture_lex $P251 - .const 'Sub' $P245 = "85_1282016519.8364" + .const 'Sub' $P245 = "85_1282323993.58127" capture_lex $P245 - .const 'Sub' $P240 = "83_1282016519.8364" + .const 'Sub' $P240 = "83_1282323993.58127" capture_lex $P240 - .const 'Sub' $P235 = "81_1282016519.8364" + .const 'Sub' $P235 = "81_1282323993.58127" capture_lex $P235 - .const 'Sub' $P230 = "79_1282016519.8364" + .const 'Sub' $P230 = "79_1282323993.58127" capture_lex $P230 - .const 'Sub' $P225 = "77_1282016519.8364" + .const 'Sub' $P225 = "77_1282323993.58127" capture_lex $P225 - .const 'Sub' $P220 = "75_1282016519.8364" + .const 'Sub' $P220 = "75_1282323993.58127" capture_lex $P220 - .const 'Sub' $P215 = "73_1282016519.8364" + .const 'Sub' $P215 = "73_1282323993.58127" capture_lex $P215 - .const 'Sub' $P210 = "71_1282016519.8364" + .const 'Sub' $P210 = "71_1282323993.58127" capture_lex $P210 - .const 'Sub' $P205 = "69_1282016519.8364" + .const 'Sub' $P205 = "69_1282323993.58127" capture_lex $P205 - .const 'Sub' $P195 = "65_1282016519.8364" + .const 'Sub' $P195 = "65_1282323993.58127" capture_lex $P195 - .const 'Sub' $P182 = "63_1282016519.8364" + .const 'Sub' $P182 = "63_1282323993.58127" capture_lex $P182 - .const 'Sub' $P170 = "61_1282016519.8364" + .const 'Sub' $P170 = "61_1282323993.58127" capture_lex $P170 - .const 'Sub' $P164 = "59_1282016519.8364" + .const 'Sub' $P164 = "59_1282323993.58127" capture_lex $P164 - .const 'Sub' $P157 = "57_1282016519.8364" + .const 'Sub' $P157 = "57_1282323993.58127" capture_lex $P157 - .const 'Sub' $P151 = "55_1282016519.8364" + .const 'Sub' $P151 = "55_1282323993.58127" capture_lex $P151 - .const 'Sub' $P144 = "53_1282016519.8364" + .const 'Sub' $P144 = "53_1282323993.58127" capture_lex $P144 - .const 'Sub' $P138 = "51_1282016519.8364" + .const 'Sub' $P138 = "51_1282323993.58127" capture_lex $P138 - .const 'Sub' $P131 = "49_1282016519.8364" + .const 'Sub' $P131 = "49_1282323993.58127" capture_lex $P131 - .const 'Sub' $P125 = "47_1282016519.8364" + .const 'Sub' $P125 = "47_1282323993.58127" capture_lex $P125 - .const 'Sub' $P119 = "45_1282016519.8364" + .const 'Sub' $P119 = "45_1282323993.58127" capture_lex $P119 - .const 'Sub' $P110 = "43_1282016519.8364" + .const 'Sub' $P110 = "43_1282323993.58127" capture_lex $P110 - .const 'Sub' $P102 = "41_1282016519.8364" + .const 'Sub' $P102 = "41_1282323993.58127" capture_lex $P102 - .const 'Sub' $P92 = "40_1282016519.8364" + .const 'Sub' $P92 = "40_1282323993.58127" capture_lex $P92 - .const 'Sub' $P86 = "38_1282016519.8364" + .const 'Sub' $P86 = "38_1282323993.58127" capture_lex $P86 - .const 'Sub' $P81 = "36_1282016519.8364" + .const 'Sub' $P81 = "36_1282323993.58127" capture_lex $P81 - .const 'Sub' $P73 = "34_1282016519.8364" + .const 'Sub' $P73 = "34_1282323993.58127" capture_lex $P73 - .const 'Sub' $P67 = "32_1282016519.8364" + .const 'Sub' $P67 = "32_1282323993.58127" capture_lex $P67 - .const 'Sub' $P61 = "30_1282016519.8364" + .const 'Sub' $P61 = "30_1282323993.58127" capture_lex $P61 - .const 'Sub' $P55 = "28_1282016519.8364" + .const 'Sub' $P55 = "28_1282323993.58127" capture_lex $P55 - .const 'Sub' $P22 = "14_1282016519.8364" + .const 'Sub' $P22 = "14_1282323993.58127" capture_lex $P22 - .const 'Sub' $P15 = "12_1282016519.8364" + .const 'Sub' $P15 = "12_1282323993.58127" capture_lex $P15 $P0 = find_dynamic_lex "$*CTXSAVE" if null $P0 goto ctxsave_done @@ -1021,17 +1043,17 @@ An operator precedence parser. $P0."ctxsave"() ctxsave_done: .annotate 'line', 33 - .const 'Sub' $P319 = "103_1282016519.8364" + .const 'Sub' $P319 = "103_1282323993.58127" capture_lex $P319 .annotate 'line', 5 .return ($P319) - .const 'Sub' $P329 = "105_1282016519.8364" + .const 'Sub' $P329 = "105_1282323993.58127" .return ($P329) .end .namespace ["HLL";"Grammar"] -.sub "ws" :subid("12_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "ws" :subid("12_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 5 .local string rx16_tgt .local int rx16_pos @@ -1054,7 +1076,7 @@ An operator precedence parser. rx16_start: eq $I10, 1, rx16_restart if_null rx16_debug, debug_108 - rx16_cur."!cursor_debug"("START ", "ws") + rx16_cur."!cursor_debug"("START", "ws") debug_108: $I10 = self.'from'() ne $I10, -1, rxscan19_done @@ -1108,12 +1130,12 @@ An operator precedence parser. # rx pass rx16_cur."!cursor_pass"(rx16_pos, "ws") if_null rx16_debug, debug_109 - rx16_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx16_pos) + rx16_cur."!cursor_debug"("PASS", "ws", " at pos=", rx16_pos) debug_109: .return (rx16_cur) rx16_restart: if_null rx16_debug, debug_110 - rx16_cur."!cursor_debug"("NEXT ", "ws") + rx16_cur."!cursor_debug"("NEXT", "ws") debug_110: rx16_fail: (rx16_rep, rx16_pos, $I10, $P10) = rx16_cur."!mark_fail"(0) @@ -1123,7 +1145,7 @@ An operator precedence parser. rx16_done: rx16_cur."!cursor_fail"() if_null rx16_debug, debug_111 - rx16_cur."!cursor_debug"("FAIL ", "ws") + rx16_cur."!cursor_debug"("FAIL", "ws") debug_111: .return (rx16_cur) .return () @@ -1131,7 +1153,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__ws" :subid("13_1282016519.8364") :method +.sub "!PREFIX__ws" :subid("13_1282323993.58127") :method .annotate 'line', 5 new $P18, "ResizablePMCArray" push $P18, "" @@ -1140,7 +1162,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "termish" :subid("14_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "termish" :subid("14_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 5 .local string rx23_tgt .local int rx23_pos @@ -1164,7 +1186,7 @@ An operator precedence parser. rx23_start: eq $I10, 1, rx23_restart if_null rx23_debug, debug_112 - rx23_cur."!cursor_debug"("START ", "termish") + rx23_cur."!cursor_debug"("START", "termish") debug_112: $I10 = self.'from'() ne $I10, -1, rxscan26_done @@ -1238,13 +1260,13 @@ An operator precedence parser. # rx pass rx23_cur."!cursor_pass"(rx23_pos, "termish") if_null rx23_debug, debug_113 - rx23_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx23_pos) + rx23_cur."!cursor_debug"("PASS", "termish", " at pos=", rx23_pos) debug_113: .return (rx23_cur) rx23_restart: .annotate 'line', 5 if_null rx23_debug, debug_114 - rx23_cur."!cursor_debug"("NEXT ", "termish") + rx23_cur."!cursor_debug"("NEXT", "termish") debug_114: rx23_fail: (rx23_rep, rx23_pos, $I10, $P10) = rx23_cur."!mark_fail"(0) @@ -1254,7 +1276,7 @@ An operator precedence parser. rx23_done: rx23_cur."!cursor_fail"() if_null rx23_debug, debug_115 - rx23_cur."!cursor_debug"("FAIL ", "termish") + rx23_cur."!cursor_debug"("FAIL", "termish") debug_115: .return (rx23_cur) .return () @@ -1262,7 +1284,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__termish" :subid("15_1282016519.8364") :method +.sub "!PREFIX__termish" :subid("15_1282323993.58127") :method .annotate 'line', 5 new $P25, "ResizablePMCArray" push $P25, "" @@ -1271,7 +1293,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "term" :subid("16_1282016519.8364") :method +.sub "term" :subid("16_1282323993.58127") :method .annotate 'line', 13 $P32 = self."!protoregex"("term") .return ($P32) @@ -1279,7 +1301,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__term" :subid("17_1282016519.8364") :method +.sub "!PREFIX__term" :subid("17_1282323993.58127") :method .annotate 'line', 13 $P34 = self."!PREFIX__!protoregex"("term") .return ($P34) @@ -1287,7 +1309,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "infix" :subid("18_1282016519.8364") :method +.sub "infix" :subid("18_1282323993.58127") :method .annotate 'line', 14 $P36 = self."!protoregex"("infix") .return ($P36) @@ -1295,7 +1317,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__infix" :subid("19_1282016519.8364") :method +.sub "!PREFIX__infix" :subid("19_1282323993.58127") :method .annotate 'line', 14 $P38 = self."!PREFIX__!protoregex"("infix") .return ($P38) @@ -1303,7 +1325,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "prefix" :subid("20_1282016519.8364") :method +.sub "prefix" :subid("20_1282323993.58127") :method .annotate 'line', 15 $P40 = self."!protoregex"("prefix") .return ($P40) @@ -1311,7 +1333,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__prefix" :subid("21_1282016519.8364") :method +.sub "!PREFIX__prefix" :subid("21_1282323993.58127") :method .annotate 'line', 15 $P42 = self."!PREFIX__!protoregex"("prefix") .return ($P42) @@ -1319,7 +1341,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "postfix" :subid("22_1282016519.8364") :method +.sub "postfix" :subid("22_1282323993.58127") :method .annotate 'line', 16 $P44 = self."!protoregex"("postfix") .return ($P44) @@ -1327,7 +1349,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__postfix" :subid("23_1282016519.8364") :method +.sub "!PREFIX__postfix" :subid("23_1282323993.58127") :method .annotate 'line', 16 $P46 = self."!PREFIX__!protoregex"("postfix") .return ($P46) @@ -1335,7 +1357,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "circumfix" :subid("24_1282016519.8364") :method +.sub "circumfix" :subid("24_1282323993.58127") :method .annotate 'line', 17 $P48 = self."!protoregex"("circumfix") .return ($P48) @@ -1343,7 +1365,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__circumfix" :subid("25_1282016519.8364") :method +.sub "!PREFIX__circumfix" :subid("25_1282323993.58127") :method .annotate 'line', 17 $P50 = self."!PREFIX__!protoregex"("circumfix") .return ($P50) @@ -1351,7 +1373,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "postcircumfix" :subid("26_1282016519.8364") :method +.sub "postcircumfix" :subid("26_1282323993.58127") :method .annotate 'line', 18 $P52 = self."!protoregex"("postcircumfix") .return ($P52) @@ -1359,7 +1381,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__postcircumfix" :subid("27_1282016519.8364") :method +.sub "!PREFIX__postcircumfix" :subid("27_1282323993.58127") :method .annotate 'line', 18 $P54 = self."!PREFIX__!protoregex"("postcircumfix") .return ($P54) @@ -1367,7 +1389,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "term:sym" :subid("28_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "term:sym" :subid("28_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 5 .local string rx56_tgt .local int rx56_pos @@ -1390,7 +1412,7 @@ An operator precedence parser. rx56_start: eq $I10, 1, rx56_restart if_null rx56_debug, debug_116 - rx56_cur."!cursor_debug"("START ", "term:sym") + rx56_cur."!cursor_debug"("START", "term:sym") debug_116: $I10 = self.'from'() ne $I10, -1, rxscan60_done @@ -1415,13 +1437,13 @@ An operator precedence parser. # rx pass rx56_cur."!cursor_pass"(rx56_pos, "term:sym") if_null rx56_debug, debug_117 - rx56_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx56_pos) + rx56_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx56_pos) debug_117: .return (rx56_cur) rx56_restart: .annotate 'line', 5 if_null rx56_debug, debug_118 - rx56_cur."!cursor_debug"("NEXT ", "term:sym") + rx56_cur."!cursor_debug"("NEXT", "term:sym") debug_118: rx56_fail: (rx56_rep, rx56_pos, $I10, $P10) = rx56_cur."!mark_fail"(0) @@ -1431,7 +1453,7 @@ An operator precedence parser. rx56_done: rx56_cur."!cursor_fail"() if_null rx56_debug, debug_119 - rx56_cur."!cursor_debug"("FAIL ", "term:sym") + rx56_cur."!cursor_debug"("FAIL", "term:sym") debug_119: .return (rx56_cur) .return () @@ -1439,7 +1461,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__term:sym" :subid("29_1282016519.8364") :method +.sub "!PREFIX__term:sym" :subid("29_1282323993.58127") :method .annotate 'line', 5 $P58 = self."!PREFIX__!subrule"("circumfix", "") new $P59, "ResizablePMCArray" @@ -1449,7 +1471,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "infixish" :subid("30_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "infixish" :subid("30_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 5 .local string rx62_tgt .local int rx62_pos @@ -1472,7 +1494,7 @@ An operator precedence parser. rx62_start: eq $I10, 1, rx62_restart if_null rx62_debug, debug_120 - rx62_cur."!cursor_debug"("START ", "infixish") + rx62_cur."!cursor_debug"("START", "infixish") debug_120: $I10 = self.'from'() ne $I10, -1, rxscan66_done @@ -1497,13 +1519,13 @@ An operator precedence parser. # rx pass rx62_cur."!cursor_pass"(rx62_pos, "infixish") if_null rx62_debug, debug_121 - rx62_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx62_pos) + rx62_cur."!cursor_debug"("PASS", "infixish", " at pos=", rx62_pos) debug_121: .return (rx62_cur) rx62_restart: .annotate 'line', 5 if_null rx62_debug, debug_122 - rx62_cur."!cursor_debug"("NEXT ", "infixish") + rx62_cur."!cursor_debug"("NEXT", "infixish") debug_122: rx62_fail: (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0) @@ -1513,7 +1535,7 @@ An operator precedence parser. rx62_done: rx62_cur."!cursor_fail"() if_null rx62_debug, debug_123 - rx62_cur."!cursor_debug"("FAIL ", "infixish") + rx62_cur."!cursor_debug"("FAIL", "infixish") debug_123: .return (rx62_cur) .return () @@ -1521,7 +1543,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__infixish" :subid("31_1282016519.8364") :method +.sub "!PREFIX__infixish" :subid("31_1282323993.58127") :method .annotate 'line', 5 $P64 = self."!PREFIX__!subrule"("infix", "") new $P65, "ResizablePMCArray" @@ -1531,7 +1553,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "prefixish" :subid("32_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "prefixish" :subid("32_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 5 .local string rx68_tgt .local int rx68_pos @@ -1554,7 +1576,7 @@ An operator precedence parser. rx68_start: eq $I10, 1, rx68_restart if_null rx68_debug, debug_124 - rx68_cur."!cursor_debug"("START ", "prefixish") + rx68_cur."!cursor_debug"("START", "prefixish") debug_124: $I10 = self.'from'() ne $I10, -1, rxscan72_done @@ -1584,13 +1606,13 @@ An operator precedence parser. # rx pass rx68_cur."!cursor_pass"(rx68_pos, "prefixish") if_null rx68_debug, debug_125 - rx68_cur."!cursor_debug"("PASS ", "prefixish", " at pos=", rx68_pos) + rx68_cur."!cursor_debug"("PASS", "prefixish", " at pos=", rx68_pos) debug_125: .return (rx68_cur) rx68_restart: .annotate 'line', 5 if_null rx68_debug, debug_126 - rx68_cur."!cursor_debug"("NEXT ", "prefixish") + rx68_cur."!cursor_debug"("NEXT", "prefixish") debug_126: rx68_fail: (rx68_rep, rx68_pos, $I10, $P10) = rx68_cur."!mark_fail"(0) @@ -1600,7 +1622,7 @@ An operator precedence parser. rx68_done: rx68_cur."!cursor_fail"() if_null rx68_debug, debug_127 - rx68_cur."!cursor_debug"("FAIL ", "prefixish") + rx68_cur."!cursor_debug"("FAIL", "prefixish") debug_127: .return (rx68_cur) .return () @@ -1608,7 +1630,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__prefixish" :subid("33_1282016519.8364") :method +.sub "!PREFIX__prefixish" :subid("33_1282323993.58127") :method .annotate 'line', 5 $P70 = self."!PREFIX__!subrule"("prefix", "") new $P71, "ResizablePMCArray" @@ -1618,7 +1640,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "postfixish" :subid("34_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "postfixish" :subid("34_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 5 .local string rx74_tgt .local int rx74_pos @@ -1641,7 +1663,7 @@ An operator precedence parser. rx74_start: eq $I10, 1, rx74_restart if_null rx74_debug, debug_128 - rx74_cur."!cursor_debug"("START ", "postfixish") + rx74_cur."!cursor_debug"("START", "postfixish") debug_128: $I10 = self.'from'() ne $I10, -1, rxscan79_done @@ -1682,13 +1704,13 @@ An operator precedence parser. # rx pass rx74_cur."!cursor_pass"(rx74_pos, "postfixish") if_null rx74_debug, debug_129 - rx74_cur."!cursor_debug"("PASS ", "postfixish", " at pos=", rx74_pos) + rx74_cur."!cursor_debug"("PASS", "postfixish", " at pos=", rx74_pos) debug_129: .return (rx74_cur) rx74_restart: .annotate 'line', 5 if_null rx74_debug, debug_130 - rx74_cur."!cursor_debug"("NEXT ", "postfixish") + rx74_cur."!cursor_debug"("NEXT", "postfixish") debug_130: rx74_fail: (rx74_rep, rx74_pos, $I10, $P10) = rx74_cur."!mark_fail"(0) @@ -1698,7 +1720,7 @@ An operator precedence parser. rx74_done: rx74_cur."!cursor_fail"() if_null rx74_debug, debug_131 - rx74_cur."!cursor_debug"("FAIL ", "postfixish") + rx74_cur."!cursor_debug"("FAIL", "postfixish") debug_131: .return (rx74_cur) .return () @@ -1706,7 +1728,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__postfixish" :subid("35_1282016519.8364") :method +.sub "!PREFIX__postfixish" :subid("35_1282323993.58127") :method .annotate 'line', 5 $P76 = self."!PREFIX__!subrule"("postcircumfix", "") $P77 = self."!PREFIX__!subrule"("postfix", "") @@ -1718,7 +1740,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "nullterm" :subid("36_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "nullterm" :subid("36_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 5 .local string rx82_tgt .local int rx82_pos @@ -1741,7 +1763,7 @@ An operator precedence parser. rx82_start: eq $I10, 1, rx82_restart if_null rx82_debug, debug_132 - rx82_cur."!cursor_debug"("START ", "nullterm") + rx82_cur."!cursor_debug"("START", "nullterm") debug_132: $I10 = self.'from'() ne $I10, -1, rxscan85_done @@ -1759,13 +1781,13 @@ An operator precedence parser. # rx pass rx82_cur."!cursor_pass"(rx82_pos, "nullterm") if_null rx82_debug, debug_133 - rx82_cur."!cursor_debug"("PASS ", "nullterm", " at pos=", rx82_pos) + rx82_cur."!cursor_debug"("PASS", "nullterm", " at pos=", rx82_pos) debug_133: .return (rx82_cur) rx82_restart: .annotate 'line', 5 if_null rx82_debug, debug_134 - rx82_cur."!cursor_debug"("NEXT ", "nullterm") + rx82_cur."!cursor_debug"("NEXT", "nullterm") debug_134: rx82_fail: (rx82_rep, rx82_pos, $I10, $P10) = rx82_cur."!mark_fail"(0) @@ -1775,7 +1797,7 @@ An operator precedence parser. rx82_done: rx82_cur."!cursor_fail"() if_null rx82_debug, debug_135 - rx82_cur."!cursor_debug"("FAIL ", "nullterm") + rx82_cur."!cursor_debug"("FAIL", "nullterm") debug_135: .return (rx82_cur) .return () @@ -1783,7 +1805,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__nullterm" :subid("37_1282016519.8364") :method +.sub "!PREFIX__nullterm" :subid("37_1282323993.58127") :method .annotate 'line', 5 new $P84, "ResizablePMCArray" push $P84, "" @@ -1792,7 +1814,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "nullterm_alt" :subid("38_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "nullterm_alt" :subid("38_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 5 .local string rx87_tgt .local int rx87_pos @@ -1815,7 +1837,7 @@ An operator precedence parser. rx87_start: eq $I10, 1, rx87_restart if_null rx87_debug, debug_136 - rx87_cur."!cursor_debug"("START ", "nullterm_alt") + rx87_cur."!cursor_debug"("START", "nullterm_alt") debug_136: $I10 = self.'from'() ne $I10, -1, rxscan91_done @@ -1840,13 +1862,13 @@ An operator precedence parser. # rx pass rx87_cur."!cursor_pass"(rx87_pos, "nullterm_alt") if_null rx87_debug, debug_137 - rx87_cur."!cursor_debug"("PASS ", "nullterm_alt", " at pos=", rx87_pos) + rx87_cur."!cursor_debug"("PASS", "nullterm_alt", " at pos=", rx87_pos) debug_137: .return (rx87_cur) rx87_restart: .annotate 'line', 5 if_null rx87_debug, debug_138 - rx87_cur."!cursor_debug"("NEXT ", "nullterm_alt") + rx87_cur."!cursor_debug"("NEXT", "nullterm_alt") debug_138: rx87_fail: (rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0) @@ -1856,7 +1878,7 @@ An operator precedence parser. rx87_done: rx87_cur."!cursor_fail"() if_null rx87_debug, debug_139 - rx87_cur."!cursor_debug"("FAIL ", "nullterm_alt") + rx87_cur."!cursor_debug"("FAIL", "nullterm_alt") debug_139: .return (rx87_cur) .return () @@ -1864,7 +1886,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__nullterm_alt" :subid("39_1282016519.8364") :method +.sub "!PREFIX__nullterm_alt" :subid("39_1282323993.58127") :method .annotate 'line', 5 $P89 = self."!PREFIX__!subrule"("nullterm", "") new $P90, "ResizablePMCArray" @@ -1875,7 +1897,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] .include "except_types.pasm" -.sub "nulltermish" :subid("40_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "nulltermish" :subid("40_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 new $P94, 'ExceptionHandler' set_addr $P94, control_93 @@ -1902,7 +1924,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_delimited" :subid("41_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_delimited" :subid("41_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx103_tgt .local int rx103_pos @@ -1926,7 +1948,7 @@ An operator precedence parser. rx103_start: eq $I10, 1, rx103_restart if_null rx103_debug, debug_140 - rx103_cur."!cursor_debug"("START ", "quote_delimited") + rx103_cur."!cursor_debug"("START", "quote_delimited") debug_140: $I10 = self.'from'() ne $I10, -1, rxscan107_done @@ -1982,13 +2004,13 @@ An operator precedence parser. # rx pass rx103_cur."!cursor_pass"(rx103_pos, "quote_delimited") if_null rx103_debug, debug_141 - rx103_cur."!cursor_debug"("PASS ", "quote_delimited", " at pos=", rx103_pos) + rx103_cur."!cursor_debug"("PASS", "quote_delimited", " at pos=", rx103_pos) debug_141: .return (rx103_cur) rx103_restart: .annotate 'line', 33 if_null rx103_debug, debug_142 - rx103_cur."!cursor_debug"("NEXT ", "quote_delimited") + rx103_cur."!cursor_debug"("NEXT", "quote_delimited") debug_142: rx103_fail: (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0) @@ -1998,7 +2020,7 @@ An operator precedence parser. rx103_done: rx103_cur."!cursor_fail"() if_null rx103_debug, debug_143 - rx103_cur."!cursor_debug"("FAIL ", "quote_delimited") + rx103_cur."!cursor_debug"("FAIL", "quote_delimited") debug_143: .return (rx103_cur) .return () @@ -2006,7 +2028,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_delimited" :subid("42_1282016519.8364") :method +.sub "!PREFIX__quote_delimited" :subid("42_1282323993.58127") :method .annotate 'line', 33 $P105 = self."!PREFIX__!subrule"("starter", "") new $P106, "ResizablePMCArray" @@ -2016,7 +2038,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_atom" :subid("43_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_atom" :subid("43_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx111_tgt .local int rx111_pos @@ -2039,7 +2061,7 @@ An operator precedence parser. rx111_start: eq $I10, 1, rx111_restart if_null rx111_debug, debug_144 - rx111_cur."!cursor_debug"("START ", "quote_atom") + rx111_cur."!cursor_debug"("START", "quote_atom") debug_144: $I10 = self.'from'() ne $I10, -1, rxscan114_done @@ -2099,13 +2121,13 @@ An operator precedence parser. # rx pass rx111_cur."!cursor_pass"(rx111_pos, "quote_atom") if_null rx111_debug, debug_145 - rx111_cur."!cursor_debug"("PASS ", "quote_atom", " at pos=", rx111_pos) + rx111_cur."!cursor_debug"("PASS", "quote_atom", " at pos=", rx111_pos) debug_145: .return (rx111_cur) rx111_restart: .annotate 'line', 33 if_null rx111_debug, debug_146 - rx111_cur."!cursor_debug"("NEXT ", "quote_atom") + rx111_cur."!cursor_debug"("NEXT", "quote_atom") debug_146: rx111_fail: (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0) @@ -2115,7 +2137,7 @@ An operator precedence parser. rx111_done: rx111_cur."!cursor_fail"() if_null rx111_debug, debug_147 - rx111_cur."!cursor_debug"("FAIL ", "quote_atom") + rx111_cur."!cursor_debug"("FAIL", "quote_atom") debug_147: .return (rx111_cur) .return () @@ -2123,7 +2145,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_atom" :subid("44_1282016519.8364") :method +.sub "!PREFIX__quote_atom" :subid("44_1282323993.58127") :method .annotate 'line', 33 new $P113, "ResizablePMCArray" push $P113, "" @@ -2132,7 +2154,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "decint" :subid("45_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "decint" :subid("45_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx120_tgt .local int rx120_pos @@ -2155,7 +2177,7 @@ An operator precedence parser. rx120_start: eq $I10, 1, rx120_restart if_null rx120_debug, debug_148 - rx120_cur."!cursor_debug"("START ", "decint") + rx120_cur."!cursor_debug"("START", "decint") debug_148: $I10 = self.'from'() ne $I10, -1, rxscan123_done @@ -2196,13 +2218,13 @@ An operator precedence parser. # rx pass rx120_cur."!cursor_pass"(rx120_pos, "decint") if_null rx120_debug, debug_149 - rx120_cur."!cursor_debug"("PASS ", "decint", " at pos=", rx120_pos) + rx120_cur."!cursor_debug"("PASS", "decint", " at pos=", rx120_pos) debug_149: .return (rx120_cur) rx120_restart: .annotate 'line', 33 if_null rx120_debug, debug_150 - rx120_cur."!cursor_debug"("NEXT ", "decint") + rx120_cur."!cursor_debug"("NEXT", "decint") debug_150: rx120_fail: (rx120_rep, rx120_pos, $I10, $P10) = rx120_cur."!mark_fail"(0) @@ -2212,7 +2234,7 @@ An operator precedence parser. rx120_done: rx120_cur."!cursor_fail"() if_null rx120_debug, debug_151 - rx120_cur."!cursor_debug"("FAIL ", "decint") + rx120_cur."!cursor_debug"("FAIL", "decint") debug_151: .return (rx120_cur) .return () @@ -2220,7 +2242,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__decint" :subid("46_1282016519.8364") :method +.sub "!PREFIX__decint" :subid("46_1282323993.58127") :method .annotate 'line', 33 new $P122, "ResizablePMCArray" push $P122, "" @@ -2229,7 +2251,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "decints" :subid("47_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "decints" :subid("47_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx126_tgt .local int rx126_pos @@ -2253,7 +2275,7 @@ An operator precedence parser. rx126_start: eq $I10, 1, rx126_restart if_null rx126_debug, debug_152 - rx126_cur."!cursor_debug"("START ", "decints") + rx126_cur."!cursor_debug"("START", "decints") debug_152: $I10 = self.'from'() ne $I10, -1, rxscan129_done @@ -2305,13 +2327,13 @@ An operator precedence parser. # rx pass rx126_cur."!cursor_pass"(rx126_pos, "decints") if_null rx126_debug, debug_153 - rx126_cur."!cursor_debug"("PASS ", "decints", " at pos=", rx126_pos) + rx126_cur."!cursor_debug"("PASS", "decints", " at pos=", rx126_pos) debug_153: .return (rx126_cur) rx126_restart: .annotate 'line', 33 if_null rx126_debug, debug_154 - rx126_cur."!cursor_debug"("NEXT ", "decints") + rx126_cur."!cursor_debug"("NEXT", "decints") debug_154: rx126_fail: (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0) @@ -2321,7 +2343,7 @@ An operator precedence parser. rx126_done: rx126_cur."!cursor_fail"() if_null rx126_debug, debug_155 - rx126_cur."!cursor_debug"("FAIL ", "decints") + rx126_cur."!cursor_debug"("FAIL", "decints") debug_155: .return (rx126_cur) .return () @@ -2329,7 +2351,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__decints" :subid("48_1282016519.8364") :method +.sub "!PREFIX__decints" :subid("48_1282323993.58127") :method .annotate 'line', 33 new $P128, "ResizablePMCArray" push $P128, "" @@ -2338,7 +2360,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "hexint" :subid("49_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "hexint" :subid("49_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx132_tgt .local int rx132_pos @@ -2361,7 +2383,7 @@ An operator precedence parser. rx132_start: eq $I10, 1, rx132_restart if_null rx132_debug, debug_156 - rx132_cur."!cursor_debug"("START ", "hexint") + rx132_cur."!cursor_debug"("START", "hexint") debug_156: $I10 = self.'from'() ne $I10, -1, rxscan135_done @@ -2380,23 +2402,22 @@ An operator precedence parser. set_addr $I10, rxquantr136_done rx132_cur."!mark_push"(0, -1, $I10) rxquantr136_loop: - # rx rxquantr137 ** 1..* - set_addr $I10, rxquantr137_done - rx132_cur."!mark_push"(0, -1, $I10) - rxquantr137_loop: - # rx enumcharlist negate=0 - ge rx132_pos, rx132_eos, rx132_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx132_pos, rx132_off + set rx132_rep, 0 + sub $I12, rx132_eos, rx132_pos + rxenumcharlistq137_loop: + le $I12, 0, rxenumcharlistq137_done substr $S10, rx132_tgt, $I10, 1 index $I11, "0123456789abcdefABCDEF", $S10 - lt $I11, 0, rx132_fail - inc rx132_pos - set_addr $I10, rxquantr137_done - (rx132_rep) = rx132_cur."!mark_commit"($I10) - set_addr $I10, rxquantr137_done - rx132_cur."!mark_push"(rx132_rep, rx132_pos, $I10) - goto rxquantr137_loop - rxquantr137_done: + lt $I11, 0, rxenumcharlistq137_done + inc rx132_rep + inc $I10 + dec $I12 + goto rxenumcharlistq137_loop + rxenumcharlistq137_done: + lt rx132_rep, 1, rx132_fail + add rx132_pos, rx132_pos, rx132_rep set_addr $I10, rxquantr136_done (rx132_rep) = rx132_cur."!mark_commit"($I10) set_addr $I10, rxquantr136_done @@ -2413,13 +2434,13 @@ An operator precedence parser. # rx pass rx132_cur."!cursor_pass"(rx132_pos, "hexint") if_null rx132_debug, debug_157 - rx132_cur."!cursor_debug"("PASS ", "hexint", " at pos=", rx132_pos) + rx132_cur."!cursor_debug"("PASS", "hexint", " at pos=", rx132_pos) debug_157: .return (rx132_cur) rx132_restart: .annotate 'line', 33 if_null rx132_debug, debug_158 - rx132_cur."!cursor_debug"("NEXT ", "hexint") + rx132_cur."!cursor_debug"("NEXT", "hexint") debug_158: rx132_fail: (rx132_rep, rx132_pos, $I10, $P10) = rx132_cur."!mark_fail"(0) @@ -2429,7 +2450,7 @@ An operator precedence parser. rx132_done: rx132_cur."!cursor_fail"() if_null rx132_debug, debug_159 - rx132_cur."!cursor_debug"("FAIL ", "hexint") + rx132_cur."!cursor_debug"("FAIL", "hexint") debug_159: .return (rx132_cur) .return () @@ -2437,7 +2458,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__hexint" :subid("50_1282016519.8364") :method +.sub "!PREFIX__hexint" :subid("50_1282323993.58127") :method .annotate 'line', 33 new $P134, "ResizablePMCArray" push $P134, "" @@ -2446,7 +2467,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "hexints" :subid("51_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "hexints" :subid("51_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx139_tgt .local int rx139_pos @@ -2470,7 +2491,7 @@ An operator precedence parser. rx139_start: eq $I10, 1, rx139_restart if_null rx139_debug, debug_160 - rx139_cur."!cursor_debug"("START ", "hexints") + rx139_cur."!cursor_debug"("START", "hexints") debug_160: $I10 = self.'from'() ne $I10, -1, rxscan142_done @@ -2522,13 +2543,13 @@ An operator precedence parser. # rx pass rx139_cur."!cursor_pass"(rx139_pos, "hexints") if_null rx139_debug, debug_161 - rx139_cur."!cursor_debug"("PASS ", "hexints", " at pos=", rx139_pos) + rx139_cur."!cursor_debug"("PASS", "hexints", " at pos=", rx139_pos) debug_161: .return (rx139_cur) rx139_restart: .annotate 'line', 33 if_null rx139_debug, debug_162 - rx139_cur."!cursor_debug"("NEXT ", "hexints") + rx139_cur."!cursor_debug"("NEXT", "hexints") debug_162: rx139_fail: (rx139_rep, rx139_pos, $I10, $P10) = rx139_cur."!mark_fail"(0) @@ -2538,7 +2559,7 @@ An operator precedence parser. rx139_done: rx139_cur."!cursor_fail"() if_null rx139_debug, debug_163 - rx139_cur."!cursor_debug"("FAIL ", "hexints") + rx139_cur."!cursor_debug"("FAIL", "hexints") debug_163: .return (rx139_cur) .return () @@ -2546,7 +2567,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__hexints" :subid("52_1282016519.8364") :method +.sub "!PREFIX__hexints" :subid("52_1282323993.58127") :method .annotate 'line', 33 new $P141, "ResizablePMCArray" push $P141, "" @@ -2555,7 +2576,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "octint" :subid("53_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "octint" :subid("53_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx145_tgt .local int rx145_pos @@ -2578,7 +2599,7 @@ An operator precedence parser. rx145_start: eq $I10, 1, rx145_restart if_null rx145_debug, debug_164 - rx145_cur."!cursor_debug"("START ", "octint") + rx145_cur."!cursor_debug"("START", "octint") debug_164: $I10 = self.'from'() ne $I10, -1, rxscan148_done @@ -2597,23 +2618,22 @@ An operator precedence parser. set_addr $I10, rxquantr149_done rx145_cur."!mark_push"(0, -1, $I10) rxquantr149_loop: - # rx rxquantr150 ** 1..* - set_addr $I10, rxquantr150_done - rx145_cur."!mark_push"(0, -1, $I10) - rxquantr150_loop: - # rx enumcharlist negate=0 - ge rx145_pos, rx145_eos, rx145_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx145_pos, rx145_off + set rx145_rep, 0 + sub $I12, rx145_eos, rx145_pos + rxenumcharlistq150_loop: + le $I12, 0, rxenumcharlistq150_done substr $S10, rx145_tgt, $I10, 1 index $I11, "01234567", $S10 - lt $I11, 0, rx145_fail - inc rx145_pos - set_addr $I10, rxquantr150_done - (rx145_rep) = rx145_cur."!mark_commit"($I10) - set_addr $I10, rxquantr150_done - rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I10) - goto rxquantr150_loop - rxquantr150_done: + lt $I11, 0, rxenumcharlistq150_done + inc rx145_rep + inc $I10 + dec $I12 + goto rxenumcharlistq150_loop + rxenumcharlistq150_done: + lt rx145_rep, 1, rx145_fail + add rx145_pos, rx145_pos, rx145_rep set_addr $I10, rxquantr149_done (rx145_rep) = rx145_cur."!mark_commit"($I10) set_addr $I10, rxquantr149_done @@ -2630,13 +2650,13 @@ An operator precedence parser. # rx pass rx145_cur."!cursor_pass"(rx145_pos, "octint") if_null rx145_debug, debug_165 - rx145_cur."!cursor_debug"("PASS ", "octint", " at pos=", rx145_pos) + rx145_cur."!cursor_debug"("PASS", "octint", " at pos=", rx145_pos) debug_165: .return (rx145_cur) rx145_restart: .annotate 'line', 33 if_null rx145_debug, debug_166 - rx145_cur."!cursor_debug"("NEXT ", "octint") + rx145_cur."!cursor_debug"("NEXT", "octint") debug_166: rx145_fail: (rx145_rep, rx145_pos, $I10, $P10) = rx145_cur."!mark_fail"(0) @@ -2646,7 +2666,7 @@ An operator precedence parser. rx145_done: rx145_cur."!cursor_fail"() if_null rx145_debug, debug_167 - rx145_cur."!cursor_debug"("FAIL ", "octint") + rx145_cur."!cursor_debug"("FAIL", "octint") debug_167: .return (rx145_cur) .return () @@ -2654,7 +2674,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__octint" :subid("54_1282016519.8364") :method +.sub "!PREFIX__octint" :subid("54_1282323993.58127") :method .annotate 'line', 33 new $P147, "ResizablePMCArray" push $P147, "" @@ -2663,7 +2683,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "octints" :subid("55_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "octints" :subid("55_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx152_tgt .local int rx152_pos @@ -2687,7 +2707,7 @@ An operator precedence parser. rx152_start: eq $I10, 1, rx152_restart if_null rx152_debug, debug_168 - rx152_cur."!cursor_debug"("START ", "octints") + rx152_cur."!cursor_debug"("START", "octints") debug_168: $I10 = self.'from'() ne $I10, -1, rxscan155_done @@ -2739,13 +2759,13 @@ An operator precedence parser. # rx pass rx152_cur."!cursor_pass"(rx152_pos, "octints") if_null rx152_debug, debug_169 - rx152_cur."!cursor_debug"("PASS ", "octints", " at pos=", rx152_pos) + rx152_cur."!cursor_debug"("PASS", "octints", " at pos=", rx152_pos) debug_169: .return (rx152_cur) rx152_restart: .annotate 'line', 33 if_null rx152_debug, debug_170 - rx152_cur."!cursor_debug"("NEXT ", "octints") + rx152_cur."!cursor_debug"("NEXT", "octints") debug_170: rx152_fail: (rx152_rep, rx152_pos, $I10, $P10) = rx152_cur."!mark_fail"(0) @@ -2755,7 +2775,7 @@ An operator precedence parser. rx152_done: rx152_cur."!cursor_fail"() if_null rx152_debug, debug_171 - rx152_cur."!cursor_debug"("FAIL ", "octints") + rx152_cur."!cursor_debug"("FAIL", "octints") debug_171: .return (rx152_cur) .return () @@ -2763,7 +2783,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__octints" :subid("56_1282016519.8364") :method +.sub "!PREFIX__octints" :subid("56_1282323993.58127") :method .annotate 'line', 33 new $P154, "ResizablePMCArray" push $P154, "" @@ -2772,7 +2792,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "binint" :subid("57_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "binint" :subid("57_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx158_tgt .local int rx158_pos @@ -2795,7 +2815,7 @@ An operator precedence parser. rx158_start: eq $I10, 1, rx158_restart if_null rx158_debug, debug_172 - rx158_cur."!cursor_debug"("START ", "binint") + rx158_cur."!cursor_debug"("START", "binint") debug_172: $I10 = self.'from'() ne $I10, -1, rxscan161_done @@ -2814,23 +2834,22 @@ An operator precedence parser. set_addr $I10, rxquantr162_done rx158_cur."!mark_push"(0, -1, $I10) rxquantr162_loop: - # rx rxquantr163 ** 1..* - set_addr $I10, rxquantr163_done - rx158_cur."!mark_push"(0, -1, $I10) - rxquantr163_loop: - # rx enumcharlist negate=0 - ge rx158_pos, rx158_eos, rx158_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx158_pos, rx158_off + set rx158_rep, 0 + sub $I12, rx158_eos, rx158_pos + rxenumcharlistq163_loop: + le $I12, 0, rxenumcharlistq163_done substr $S10, rx158_tgt, $I10, 1 index $I11, "01", $S10 - lt $I11, 0, rx158_fail - inc rx158_pos - set_addr $I10, rxquantr163_done - (rx158_rep) = rx158_cur."!mark_commit"($I10) - set_addr $I10, rxquantr163_done - rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I10) - goto rxquantr163_loop - rxquantr163_done: + lt $I11, 0, rxenumcharlistq163_done + inc rx158_rep + inc $I10 + dec $I12 + goto rxenumcharlistq163_loop + rxenumcharlistq163_done: + lt rx158_rep, 1, rx158_fail + add rx158_pos, rx158_pos, rx158_rep set_addr $I10, rxquantr162_done (rx158_rep) = rx158_cur."!mark_commit"($I10) set_addr $I10, rxquantr162_done @@ -2847,13 +2866,13 @@ An operator precedence parser. # rx pass rx158_cur."!cursor_pass"(rx158_pos, "binint") if_null rx158_debug, debug_173 - rx158_cur."!cursor_debug"("PASS ", "binint", " at pos=", rx158_pos) + rx158_cur."!cursor_debug"("PASS", "binint", " at pos=", rx158_pos) debug_173: .return (rx158_cur) rx158_restart: .annotate 'line', 33 if_null rx158_debug, debug_174 - rx158_cur."!cursor_debug"("NEXT ", "binint") + rx158_cur."!cursor_debug"("NEXT", "binint") debug_174: rx158_fail: (rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0) @@ -2863,7 +2882,7 @@ An operator precedence parser. rx158_done: rx158_cur."!cursor_fail"() if_null rx158_debug, debug_175 - rx158_cur."!cursor_debug"("FAIL ", "binint") + rx158_cur."!cursor_debug"("FAIL", "binint") debug_175: .return (rx158_cur) .return () @@ -2871,7 +2890,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__binint" :subid("58_1282016519.8364") :method +.sub "!PREFIX__binint" :subid("58_1282323993.58127") :method .annotate 'line', 33 new $P160, "ResizablePMCArray" push $P160, "" @@ -2880,7 +2899,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "binints" :subid("59_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "binints" :subid("59_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx165_tgt .local int rx165_pos @@ -2904,7 +2923,7 @@ An operator precedence parser. rx165_start: eq $I10, 1, rx165_restart if_null rx165_debug, debug_176 - rx165_cur."!cursor_debug"("START ", "binints") + rx165_cur."!cursor_debug"("START", "binints") debug_176: $I10 = self.'from'() ne $I10, -1, rxscan168_done @@ -2956,13 +2975,13 @@ An operator precedence parser. # rx pass rx165_cur."!cursor_pass"(rx165_pos, "binints") if_null rx165_debug, debug_177 - rx165_cur."!cursor_debug"("PASS ", "binints", " at pos=", rx165_pos) + rx165_cur."!cursor_debug"("PASS", "binints", " at pos=", rx165_pos) debug_177: .return (rx165_cur) rx165_restart: .annotate 'line', 33 if_null rx165_debug, debug_178 - rx165_cur."!cursor_debug"("NEXT ", "binints") + rx165_cur."!cursor_debug"("NEXT", "binints") debug_178: rx165_fail: (rx165_rep, rx165_pos, $I10, $P10) = rx165_cur."!mark_fail"(0) @@ -2972,7 +2991,7 @@ An operator precedence parser. rx165_done: rx165_cur."!cursor_fail"() if_null rx165_debug, debug_179 - rx165_cur."!cursor_debug"("FAIL ", "binints") + rx165_cur."!cursor_debug"("FAIL", "binints") debug_179: .return (rx165_cur) .return () @@ -2980,7 +2999,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__binints" :subid("60_1282016519.8364") :method +.sub "!PREFIX__binints" :subid("60_1282323993.58127") :method .annotate 'line', 33 new $P167, "ResizablePMCArray" push $P167, "" @@ -2989,7 +3008,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "integer" :subid("61_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "integer" :subid("61_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx171_tgt .local int rx171_pos @@ -3012,7 +3031,7 @@ An operator precedence parser. rx171_start: eq $I10, 1, rx171_restart if_null rx171_debug, debug_180 - rx171_cur."!cursor_debug"("START ", "integer") + rx171_cur."!cursor_debug"("START", "integer") debug_180: $I10 = self.'from'() ne $I10, -1, rxscan179_done @@ -3127,13 +3146,13 @@ An operator precedence parser. # rx pass rx171_cur."!cursor_pass"(rx171_pos, "integer") if_null rx171_debug, debug_181 - rx171_cur."!cursor_debug"("PASS ", "integer", " at pos=", rx171_pos) + rx171_cur."!cursor_debug"("PASS", "integer", " at pos=", rx171_pos) debug_181: .return (rx171_cur) rx171_restart: .annotate 'line', 33 if_null rx171_debug, debug_182 - rx171_cur."!cursor_debug"("NEXT ", "integer") + rx171_cur."!cursor_debug"("NEXT", "integer") debug_182: rx171_fail: (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0) @@ -3143,7 +3162,7 @@ An operator precedence parser. rx171_done: rx171_cur."!cursor_fail"() if_null rx171_debug, debug_183 - rx171_cur."!cursor_debug"("FAIL ", "integer") + rx171_cur."!cursor_debug"("FAIL", "integer") debug_183: .return (rx171_cur) .return () @@ -3151,7 +3170,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__integer" :subid("62_1282016519.8364") :method +.sub "!PREFIX__integer" :subid("62_1282323993.58127") :method .annotate 'line', 33 $P173 = self."!PREFIX__!subrule"("decint", "") $P174 = self."!PREFIX__!subrule"("decint", "0d") @@ -3169,7 +3188,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "dec_number" :subid("63_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "dec_number" :subid("63_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx183_tgt .local int rx183_pos @@ -3193,7 +3212,7 @@ An operator precedence parser. rx183_start: eq $I10, 1, rx183_restart if_null rx183_debug, debug_184 - rx183_cur."!cursor_debug"("START ", "dec_number") + rx183_cur."!cursor_debug"("START", "dec_number") debug_184: $I10 = self.'from'() ne $I10, -1, rxscan186_done @@ -3352,13 +3371,13 @@ An operator precedence parser. # rx pass rx183_cur."!cursor_pass"(rx183_pos, "dec_number") if_null rx183_debug, debug_185 - rx183_cur."!cursor_debug"("PASS ", "dec_number", " at pos=", rx183_pos) + rx183_cur."!cursor_debug"("PASS", "dec_number", " at pos=", rx183_pos) debug_185: .return (rx183_cur) rx183_restart: .annotate 'line', 33 if_null rx183_debug, debug_186 - rx183_cur."!cursor_debug"("NEXT ", "dec_number") + rx183_cur."!cursor_debug"("NEXT", "dec_number") debug_186: rx183_fail: (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0) @@ -3368,7 +3387,7 @@ An operator precedence parser. rx183_done: rx183_cur."!cursor_fail"() if_null rx183_debug, debug_187 - rx183_cur."!cursor_debug"("FAIL ", "dec_number") + rx183_cur."!cursor_debug"("FAIL", "dec_number") debug_187: .return (rx183_cur) .return () @@ -3376,7 +3395,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__dec_number" :subid("64_1282016519.8364") :method +.sub "!PREFIX__dec_number" :subid("64_1282323993.58127") :method .annotate 'line', 33 new $P185, "ResizablePMCArray" push $P185, "" @@ -3387,7 +3406,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "escale" :subid("65_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "escale" :subid("65_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx196_tgt .local int rx196_pos @@ -3410,7 +3429,7 @@ An operator precedence parser. rx196_start: eq $I10, 1, rx196_restart if_null rx196_debug, debug_188 - rx196_cur."!cursor_debug"("START ", "escale") + rx196_cur."!cursor_debug"("START", "escale") debug_188: $I10 = self.'from'() ne $I10, -1, rxscan199_done @@ -3432,20 +3451,20 @@ An operator precedence parser. index $I11, "Ee", $S10 lt $I11, 0, rx196_fail inc rx196_pos - # rx rxquantr200 ** 0..1 - set_addr $I10, rxquantr200_done - rx196_cur."!mark_push"(0, rx196_pos, $I10) - rxquantr200_loop: - # rx enumcharlist negate=0 - ge rx196_pos, rx196_eos, rx196_fail + # rx enumcharlist_q negate=0 r 0..1 sub $I10, rx196_pos, rx196_off + set rx196_rep, 0 + sub $I12, rx196_eos, rx196_pos + le $I12, 1, rxenumcharlistq200_loop + set $I12, 1 + rxenumcharlistq200_loop: + le $I12, 0, rxenumcharlistq200_done substr $S10, rx196_tgt, $I10, 1 index $I11, "+-", $S10 - lt $I11, 0, rx196_fail - inc rx196_pos - set_addr $I10, rxquantr200_done - (rx196_rep) = rx196_cur."!mark_commit"($I10) - rxquantr200_done: + lt $I11, 0, rxenumcharlistq200_done + inc rx196_rep + rxenumcharlistq200_done: + add rx196_pos, rx196_pos, rx196_rep # rx charclass_q d r 1..-1 sub $I10, rx196_pos, rx196_off find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos @@ -3455,13 +3474,13 @@ An operator precedence parser. # rx pass rx196_cur."!cursor_pass"(rx196_pos, "escale") if_null rx196_debug, debug_189 - rx196_cur."!cursor_debug"("PASS ", "escale", " at pos=", rx196_pos) + rx196_cur."!cursor_debug"("PASS", "escale", " at pos=", rx196_pos) debug_189: .return (rx196_cur) rx196_restart: .annotate 'line', 33 if_null rx196_debug, debug_190 - rx196_cur."!cursor_debug"("NEXT ", "escale") + rx196_cur."!cursor_debug"("NEXT", "escale") debug_190: rx196_fail: (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0) @@ -3471,7 +3490,7 @@ An operator precedence parser. rx196_done: rx196_cur."!cursor_fail"() if_null rx196_debug, debug_191 - rx196_cur."!cursor_debug"("FAIL ", "escale") + rx196_cur."!cursor_debug"("FAIL", "escale") debug_191: .return (rx196_cur) .return () @@ -3479,7 +3498,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__escale" :subid("66_1282016519.8364") :method +.sub "!PREFIX__escale" :subid("66_1282323993.58127") :method .annotate 'line', 33 new $P198, "ResizablePMCArray" push $P198, "e" @@ -3489,7 +3508,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape" :subid("67_1282016519.8364") :method +.sub "quote_escape" :subid("67_1282323993.58127") :method .annotate 'line', 79 $P202 = self."!protoregex"("quote_escape") .return ($P202) @@ -3497,7 +3516,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape" :subid("68_1282016519.8364") :method +.sub "!PREFIX__quote_escape" :subid("68_1282323993.58127") :method .annotate 'line', 79 $P204 = self."!PREFIX__!protoregex"("quote_escape") .return ($P204) @@ -3505,7 +3524,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("69_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("69_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx206_tgt .local int rx206_pos @@ -3528,7 +3547,7 @@ An operator precedence parser. rx206_start: eq $I10, 1, rx206_restart if_null rx206_debug, debug_192 - rx206_cur."!cursor_debug"("START ", "quote_escape:sym") + rx206_cur."!cursor_debug"("START", "quote_escape:sym") debug_192: $I10 = self.'from'() ne $I10, -1, rxscan209_done @@ -3557,13 +3576,13 @@ An operator precedence parser. # rx pass rx206_cur."!cursor_pass"(rx206_pos, "quote_escape:sym") if_null rx206_debug, debug_193 - rx206_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx206_pos) + rx206_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx206_pos) debug_193: .return (rx206_cur) rx206_restart: .annotate 'line', 33 if_null rx206_debug, debug_194 - rx206_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx206_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_194: rx206_fail: (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0) @@ -3573,7 +3592,7 @@ An operator precedence parser. rx206_done: rx206_cur."!cursor_fail"() if_null rx206_debug, debug_195 - rx206_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx206_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_195: .return (rx206_cur) .return () @@ -3581,7 +3600,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("70_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("70_1282323993.58127") :method .annotate 'line', 33 new $P208, "ResizablePMCArray" push $P208, "\\\\" @@ -3590,7 +3609,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("71_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("71_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx211_tgt .local int rx211_pos @@ -3613,7 +3632,7 @@ An operator precedence parser. rx211_start: eq $I10, 1, rx211_restart if_null rx211_debug, debug_196 - rx211_cur."!cursor_debug"("START ", "quote_escape:sym") + rx211_cur."!cursor_debug"("START", "quote_escape:sym") debug_196: $I10 = self.'from'() ne $I10, -1, rxscan214_done @@ -3649,13 +3668,13 @@ An operator precedence parser. # rx pass rx211_cur."!cursor_pass"(rx211_pos, "quote_escape:sym") if_null rx211_debug, debug_197 - rx211_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx211_pos) + rx211_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx211_pos) debug_197: .return (rx211_cur) rx211_restart: .annotate 'line', 33 if_null rx211_debug, debug_198 - rx211_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx211_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_198: rx211_fail: (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0) @@ -3665,7 +3684,7 @@ An operator precedence parser. rx211_done: rx211_cur."!cursor_fail"() if_null rx211_debug, debug_199 - rx211_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx211_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_199: .return (rx211_cur) .return () @@ -3673,7 +3692,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("72_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("72_1282323993.58127") :method .annotate 'line', 33 new $P213, "ResizablePMCArray" push $P213, "\\" @@ -3682,7 +3701,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("73_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("73_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx216_tgt .local int rx216_pos @@ -3705,7 +3724,7 @@ An operator precedence parser. rx216_start: eq $I10, 1, rx216_restart if_null rx216_debug, debug_200 - rx216_cur."!cursor_debug"("START ", "quote_escape:sym") + rx216_cur."!cursor_debug"("START", "quote_escape:sym") debug_200: $I10 = self.'from'() ne $I10, -1, rxscan219_done @@ -3734,13 +3753,13 @@ An operator precedence parser. # rx pass rx216_cur."!cursor_pass"(rx216_pos, "quote_escape:sym") if_null rx216_debug, debug_201 - rx216_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx216_pos) + rx216_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx216_pos) debug_201: .return (rx216_cur) rx216_restart: .annotate 'line', 33 if_null rx216_debug, debug_202 - rx216_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx216_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_202: rx216_fail: (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0) @@ -3750,7 +3769,7 @@ An operator precedence parser. rx216_done: rx216_cur."!cursor_fail"() if_null rx216_debug, debug_203 - rx216_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx216_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_203: .return (rx216_cur) .return () @@ -3758,7 +3777,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("74_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("74_1282323993.58127") :method .annotate 'line', 33 new $P218, "ResizablePMCArray" push $P218, "\\b" @@ -3767,7 +3786,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("75_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("75_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx221_tgt .local int rx221_pos @@ -3790,7 +3809,7 @@ An operator precedence parser. rx221_start: eq $I10, 1, rx221_restart if_null rx221_debug, debug_204 - rx221_cur."!cursor_debug"("START ", "quote_escape:sym") + rx221_cur."!cursor_debug"("START", "quote_escape:sym") debug_204: $I10 = self.'from'() ne $I10, -1, rxscan224_done @@ -3819,13 +3838,13 @@ An operator precedence parser. # rx pass rx221_cur."!cursor_pass"(rx221_pos, "quote_escape:sym") if_null rx221_debug, debug_205 - rx221_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx221_pos) + rx221_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx221_pos) debug_205: .return (rx221_cur) rx221_restart: .annotate 'line', 33 if_null rx221_debug, debug_206 - rx221_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx221_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_206: rx221_fail: (rx221_rep, rx221_pos, $I10, $P10) = rx221_cur."!mark_fail"(0) @@ -3835,7 +3854,7 @@ An operator precedence parser. rx221_done: rx221_cur."!cursor_fail"() if_null rx221_debug, debug_207 - rx221_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx221_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_207: .return (rx221_cur) .return () @@ -3843,7 +3862,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("76_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("76_1282323993.58127") :method .annotate 'line', 33 new $P223, "ResizablePMCArray" push $P223, "\\n" @@ -3852,7 +3871,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("77_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("77_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx226_tgt .local int rx226_pos @@ -3875,7 +3894,7 @@ An operator precedence parser. rx226_start: eq $I10, 1, rx226_restart if_null rx226_debug, debug_208 - rx226_cur."!cursor_debug"("START ", "quote_escape:sym") + rx226_cur."!cursor_debug"("START", "quote_escape:sym") debug_208: $I10 = self.'from'() ne $I10, -1, rxscan229_done @@ -3904,13 +3923,13 @@ An operator precedence parser. # rx pass rx226_cur."!cursor_pass"(rx226_pos, "quote_escape:sym") if_null rx226_debug, debug_209 - rx226_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx226_pos) + rx226_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx226_pos) debug_209: .return (rx226_cur) rx226_restart: .annotate 'line', 33 if_null rx226_debug, debug_210 - rx226_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx226_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_210: rx226_fail: (rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0) @@ -3920,7 +3939,7 @@ An operator precedence parser. rx226_done: rx226_cur."!cursor_fail"() if_null rx226_debug, debug_211 - rx226_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx226_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_211: .return (rx226_cur) .return () @@ -3928,7 +3947,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("78_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("78_1282323993.58127") :method .annotate 'line', 33 new $P228, "ResizablePMCArray" push $P228, "\\r" @@ -3937,7 +3956,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("79_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("79_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx231_tgt .local int rx231_pos @@ -3960,7 +3979,7 @@ An operator precedence parser. rx231_start: eq $I10, 1, rx231_restart if_null rx231_debug, debug_212 - rx231_cur."!cursor_debug"("START ", "quote_escape:sym") + rx231_cur."!cursor_debug"("START", "quote_escape:sym") debug_212: $I10 = self.'from'() ne $I10, -1, rxscan234_done @@ -3989,13 +4008,13 @@ An operator precedence parser. # rx pass rx231_cur."!cursor_pass"(rx231_pos, "quote_escape:sym") if_null rx231_debug, debug_213 - rx231_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx231_pos) + rx231_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx231_pos) debug_213: .return (rx231_cur) rx231_restart: .annotate 'line', 33 if_null rx231_debug, debug_214 - rx231_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx231_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_214: rx231_fail: (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0) @@ -4005,7 +4024,7 @@ An operator precedence parser. rx231_done: rx231_cur."!cursor_fail"() if_null rx231_debug, debug_215 - rx231_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx231_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_215: .return (rx231_cur) .return () @@ -4013,7 +4032,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("80_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("80_1282323993.58127") :method .annotate 'line', 33 new $P233, "ResizablePMCArray" push $P233, "\\t" @@ -4022,7 +4041,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("81_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("81_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx236_tgt .local int rx236_pos @@ -4045,7 +4064,7 @@ An operator precedence parser. rx236_start: eq $I10, 1, rx236_restart if_null rx236_debug, debug_216 - rx236_cur."!cursor_debug"("START ", "quote_escape:sym") + rx236_cur."!cursor_debug"("START", "quote_escape:sym") debug_216: $I10 = self.'from'() ne $I10, -1, rxscan239_done @@ -4074,13 +4093,13 @@ An operator precedence parser. # rx pass rx236_cur."!cursor_pass"(rx236_pos, "quote_escape:sym") if_null rx236_debug, debug_217 - rx236_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx236_pos) + rx236_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx236_pos) debug_217: .return (rx236_cur) rx236_restart: .annotate 'line', 33 if_null rx236_debug, debug_218 - rx236_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx236_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_218: rx236_fail: (rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0) @@ -4090,7 +4109,7 @@ An operator precedence parser. rx236_done: rx236_cur."!cursor_fail"() if_null rx236_debug, debug_219 - rx236_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx236_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_219: .return (rx236_cur) .return () @@ -4098,7 +4117,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("82_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("82_1282323993.58127") :method .annotate 'line', 33 new $P238, "ResizablePMCArray" push $P238, "\\f" @@ -4107,7 +4126,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("83_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("83_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx241_tgt .local int rx241_pos @@ -4130,7 +4149,7 @@ An operator precedence parser. rx241_start: eq $I10, 1, rx241_restart if_null rx241_debug, debug_220 - rx241_cur."!cursor_debug"("START ", "quote_escape:sym") + rx241_cur."!cursor_debug"("START", "quote_escape:sym") debug_220: $I10 = self.'from'() ne $I10, -1, rxscan244_done @@ -4159,13 +4178,13 @@ An operator precedence parser. # rx pass rx241_cur."!cursor_pass"(rx241_pos, "quote_escape:sym") if_null rx241_debug, debug_221 - rx241_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx241_pos) + rx241_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx241_pos) debug_221: .return (rx241_cur) rx241_restart: .annotate 'line', 33 if_null rx241_debug, debug_222 - rx241_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx241_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_222: rx241_fail: (rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0) @@ -4175,7 +4194,7 @@ An operator precedence parser. rx241_done: rx241_cur."!cursor_fail"() if_null rx241_debug, debug_223 - rx241_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx241_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_223: .return (rx241_cur) .return () @@ -4183,7 +4202,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("84_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("84_1282323993.58127") :method .annotate 'line', 33 new $P243, "ResizablePMCArray" push $P243, "\\e" @@ -4192,7 +4211,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("85_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("85_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx246_tgt .local int rx246_pos @@ -4215,7 +4234,7 @@ An operator precedence parser. rx246_start: eq $I10, 1, rx246_restart if_null rx246_debug, debug_224 - rx246_cur."!cursor_debug"("START ", "quote_escape:sym") + rx246_cur."!cursor_debug"("START", "quote_escape:sym") debug_224: $I10 = self.'from'() ne $I10, -1, rxscan249_done @@ -4280,13 +4299,13 @@ An operator precedence parser. # rx pass rx246_cur."!cursor_pass"(rx246_pos, "quote_escape:sym") if_null rx246_debug, debug_225 - rx246_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx246_pos) + rx246_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx246_pos) debug_225: .return (rx246_cur) rx246_restart: .annotate 'line', 33 if_null rx246_debug, debug_226 - rx246_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx246_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_226: rx246_fail: (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0) @@ -4296,7 +4315,7 @@ An operator precedence parser. rx246_done: rx246_cur."!cursor_fail"() if_null rx246_debug, debug_227 - rx246_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx246_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_227: .return (rx246_cur) .return () @@ -4304,7 +4323,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("86_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("86_1282323993.58127") :method .annotate 'line', 33 new $P248, "ResizablePMCArray" push $P248, unicode:"\\x" @@ -4313,7 +4332,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("87_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("87_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx252_tgt .local int rx252_pos @@ -4336,7 +4355,7 @@ An operator precedence parser. rx252_start: eq $I10, 1, rx252_restart if_null rx252_debug, debug_228 - rx252_cur."!cursor_debug"("START ", "quote_escape:sym") + rx252_cur."!cursor_debug"("START", "quote_escape:sym") debug_228: $I10 = self.'from'() ne $I10, -1, rxscan255_done @@ -4401,13 +4420,13 @@ An operator precedence parser. # rx pass rx252_cur."!cursor_pass"(rx252_pos, "quote_escape:sym") if_null rx252_debug, debug_229 - rx252_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx252_pos) + rx252_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx252_pos) debug_229: .return (rx252_cur) rx252_restart: .annotate 'line', 33 if_null rx252_debug, debug_230 - rx252_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx252_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_230: rx252_fail: (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0) @@ -4417,7 +4436,7 @@ An operator precedence parser. rx252_done: rx252_cur."!cursor_fail"() if_null rx252_debug, debug_231 - rx252_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx252_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_231: .return (rx252_cur) .return () @@ -4425,7 +4444,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("88_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("88_1282323993.58127") :method .annotate 'line', 33 new $P254, "ResizablePMCArray" push $P254, "\\o" @@ -4434,7 +4453,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("89_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("89_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx258_tgt .local int rx258_pos @@ -4457,7 +4476,7 @@ An operator precedence parser. rx258_start: eq $I10, 1, rx258_restart if_null rx258_debug, debug_232 - rx258_cur."!cursor_debug"("START ", "quote_escape:sym") + rx258_cur."!cursor_debug"("START", "quote_escape:sym") debug_232: $I10 = self.'from'() ne $I10, -1, rxscan261_done @@ -4493,13 +4512,13 @@ An operator precedence parser. # rx pass rx258_cur."!cursor_pass"(rx258_pos, "quote_escape:sym") if_null rx258_debug, debug_233 - rx258_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx258_pos) + rx258_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx258_pos) debug_233: .return (rx258_cur) rx258_restart: .annotate 'line', 33 if_null rx258_debug, debug_234 - rx258_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx258_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_234: rx258_fail: (rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0) @@ -4509,7 +4528,7 @@ An operator precedence parser. rx258_done: rx258_cur."!cursor_fail"() if_null rx258_debug, debug_235 - rx258_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx258_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_235: .return (rx258_cur) .return () @@ -4517,7 +4536,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("90_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("90_1282323993.58127") :method .annotate 'line', 33 new $P260, "ResizablePMCArray" push $P260, "\\c" @@ -4526,7 +4545,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym<0>" :subid("91_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym<0>" :subid("91_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx263_tgt .local int rx263_pos @@ -4549,7 +4568,7 @@ An operator precedence parser. rx263_start: eq $I10, 1, rx263_restart if_null rx263_debug, debug_236 - rx263_cur."!cursor_debug"("START ", "quote_escape:sym<0>") + rx263_cur."!cursor_debug"("START", "quote_escape:sym<0>") debug_236: $I10 = self.'from'() ne $I10, -1, rxscan266_done @@ -4599,13 +4618,13 @@ An operator precedence parser. # rx pass rx263_cur."!cursor_pass"(rx263_pos, "quote_escape:sym<0>") if_null rx263_debug, debug_237 - rx263_cur."!cursor_debug"("PASS ", "quote_escape:sym<0>", " at pos=", rx263_pos) + rx263_cur."!cursor_debug"("PASS", "quote_escape:sym<0>", " at pos=", rx263_pos) debug_237: .return (rx263_cur) rx263_restart: .annotate 'line', 33 if_null rx263_debug, debug_238 - rx263_cur."!cursor_debug"("NEXT ", "quote_escape:sym<0>") + rx263_cur."!cursor_debug"("NEXT", "quote_escape:sym<0>") debug_238: rx263_fail: (rx263_rep, rx263_pos, $I10, $P10) = rx263_cur."!mark_fail"(0) @@ -4615,7 +4634,7 @@ An operator precedence parser. rx263_done: rx263_cur."!cursor_fail"() if_null rx263_debug, debug_239 - rx263_cur."!cursor_debug"("FAIL ", "quote_escape:sym<0>") + rx263_cur."!cursor_debug"("FAIL", "quote_escape:sym<0>") debug_239: .return (rx263_cur) .return () @@ -4623,7 +4642,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1282323993.58127") :method .annotate 'line', 33 new $P265, "ResizablePMCArray" push $P265, "\\0" @@ -4632,13 +4651,13 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "quote_escape:sym" :subid("93_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "quote_escape:sym" :subid("93_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 - .const 'Sub' $P288 = "97_1282016519.8364" + .const 'Sub' $P288 = "97_1282323993.58127" capture_lex $P288 - .const 'Sub' $P281 = "96_1282016519.8364" + .const 'Sub' $P281 = "96_1282323993.58127" capture_lex $P281 - .const 'Sub' $P276 = "95_1282016519.8364" + .const 'Sub' $P276 = "95_1282323993.58127" capture_lex $P276 .local string rx269_tgt .local int rx269_pos @@ -4661,7 +4680,7 @@ An operator precedence parser. rx269_start: eq $I10, 1, rx269_restart if_null rx269_debug, debug_240 - rx269_cur."!cursor_debug"("START ", "quote_escape:sym") + rx269_cur."!cursor_debug"("START", "quote_escape:sym") debug_240: $I10 = self.'from'() ne $I10, -1, rxscan272_done @@ -4680,7 +4699,7 @@ An operator precedence parser. find_lex $P273, unicode:"$\x{a2}" $P274 = $P273."MATCH"() store_lex "$/", $P274 - .const 'Sub' $P276 = "95_1282016519.8364" + .const 'Sub' $P276 = "95_1282323993.58127" capture_lex $P276 $P277 = $P276() # rx literal "\\" @@ -4706,7 +4725,7 @@ An operator precedence parser. .annotate 'line', 104 # rx subrule $P281 subtype=capture negate= rx269_cur."!cursor_pos"(rx269_pos) - .const 'Sub' $P281 = "96_1282016519.8364" + .const 'Sub' $P281 = "96_1282323993.58127" capture_lex $P281 $P10 = rx269_cur.$P281() unless $P10, rx269_fail @@ -4740,7 +4759,7 @@ An operator precedence parser. find_lex $P285, unicode:"$\x{a2}" $P286 = $P285."MATCH"() store_lex "$/", $P286 - .const 'Sub' $P288 = "97_1282016519.8364" + .const 'Sub' $P288 = "97_1282323993.58127" capture_lex $P288 $P298 = $P288() alt279_end: @@ -4770,13 +4789,13 @@ An operator precedence parser. # rx pass rx269_cur."!cursor_pass"(rx269_pos, "quote_escape:sym") if_null rx269_debug, debug_247 - rx269_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx269_pos) + rx269_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx269_pos) debug_247: .return (rx269_cur) rx269_restart: .annotate 'line', 33 if_null rx269_debug, debug_248 - rx269_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx269_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_248: rx269_fail: (rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0) @@ -4786,7 +4805,7 @@ An operator precedence parser. rx269_done: rx269_cur."!cursor_fail"() if_null rx269_debug, debug_249 - rx269_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx269_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_249: .return (rx269_cur) .return () @@ -4794,7 +4813,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("94_1282016519.8364") :method +.sub "!PREFIX__quote_escape:sym" :subid("94_1282323993.58127") :method .annotate 'line', 33 new $P271, "ResizablePMCArray" push $P271, "" @@ -4803,14 +4822,14 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "_block275" :anon :subid("95_1282016519.8364") :outer("93_1282016519.8364") +.sub "_block275" :anon :subid("95_1282323993.58127") :outer("93_1282323993.58127") .annotate 'line', 100 .return () .end .namespace ["HLL";"Grammar"] -.sub "_block280" :anon :subid("96_1282016519.8364") :method :outer("93_1282016519.8364") +.sub "_block280" :anon :subid("96_1282323993.58127") :method :outer("93_1282323993.58127") .annotate 'line', 104 .local string rx282_tgt .local int rx282_pos @@ -4833,7 +4852,7 @@ An operator precedence parser. rx282_start: eq $I10, 1, rx282_restart if_null rx282_debug, debug_241 - rx282_cur."!cursor_debug"("START ", "") + rx282_cur."!cursor_debug"("START", "") debug_241: $I10 = self.'from'() ne $I10, -1, rxscan283_done @@ -4856,12 +4875,12 @@ An operator precedence parser. # rx pass rx282_cur."!cursor_pass"(rx282_pos, "") if_null rx282_debug, debug_242 - rx282_cur."!cursor_debug"("PASS ", "", " at pos=", rx282_pos) + rx282_cur."!cursor_debug"("PASS", "", " at pos=", rx282_pos) debug_242: .return (rx282_cur) rx282_restart: if_null rx282_debug, debug_243 - rx282_cur."!cursor_debug"("NEXT ", "") + rx282_cur."!cursor_debug"("NEXT", "") debug_243: rx282_fail: (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0) @@ -4871,7 +4890,7 @@ An operator precedence parser. rx282_done: rx282_cur."!cursor_fail"() if_null rx282_debug, debug_244 - rx282_cur."!cursor_debug"("FAIL ", "") + rx282_cur."!cursor_debug"("FAIL", "") debug_244: .return (rx282_cur) .return () @@ -4879,7 +4898,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "_block287" :anon :subid("97_1282016519.8364") :outer("93_1282016519.8364") +.sub "_block287" :anon :subid("97_1282323993.58127") :outer("93_1282323993.58127") .annotate 'line', 105 find_lex $P289, "$/" $P290 = $P289."CURSOR"() @@ -4902,9 +4921,9 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "charname" :subid("98_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "charname" :subid("98_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 - .const 'Sub' $P310 = "100_1282016519.8364" + .const 'Sub' $P310 = "100_1282323993.58127" capture_lex $P310 .local string rx301_tgt .local int rx301_pos @@ -4927,7 +4946,7 @@ An operator precedence parser. rx301_start: eq $I10, 1, rx301_restart if_null rx301_debug, debug_250 - rx301_cur."!cursor_debug"("START ", "charname") + rx301_cur."!cursor_debug"("START", "charname") debug_250: $I10 = self.'from'() ne $I10, -1, rxscan305_done @@ -4988,7 +5007,7 @@ An operator precedence parser. .annotate 'line', 114 # rx subrule "before" subtype=zerowidth negate= rx301_cur."!cursor_pos"(rx301_pos) - .const 'Sub' $P310 = "100_1282016519.8364" + .const 'Sub' $P310 = "100_1282323993.58127" capture_lex $P310 $P10 = rx301_cur."before"($P310) unless $P10, rx301_fail @@ -4997,13 +5016,13 @@ An operator precedence parser. # rx pass rx301_cur."!cursor_pass"(rx301_pos, "charname") if_null rx301_debug, debug_255 - rx301_cur."!cursor_debug"("PASS ", "charname", " at pos=", rx301_pos) + rx301_cur."!cursor_debug"("PASS", "charname", " at pos=", rx301_pos) debug_255: .return (rx301_cur) rx301_restart: .annotate 'line', 33 if_null rx301_debug, debug_256 - rx301_cur."!cursor_debug"("NEXT ", "charname") + rx301_cur."!cursor_debug"("NEXT", "charname") debug_256: rx301_fail: (rx301_rep, rx301_pos, $I10, $P10) = rx301_cur."!mark_fail"(0) @@ -5013,7 +5032,7 @@ An operator precedence parser. rx301_done: rx301_cur."!cursor_fail"() if_null rx301_debug, debug_257 - rx301_cur."!cursor_debug"("FAIL ", "charname") + rx301_cur."!cursor_debug"("FAIL", "charname") debug_257: .return (rx301_cur) .return () @@ -5021,7 +5040,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__charname" :subid("99_1282016519.8364") :method +.sub "!PREFIX__charname" :subid("99_1282323993.58127") :method .annotate 'line', 33 $P303 = self."!PREFIX__!subrule"("integer", "") new $P304, "ResizablePMCArray" @@ -5083,7 +5102,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "_block309" :anon :subid("100_1282016519.8364") :method :outer("98_1282016519.8364") +.sub "_block309" :anon :subid("100_1282323993.58127") :method :outer("98_1282323993.58127") .annotate 'line', 114 .local string rx311_tgt .local int rx311_pos @@ -5106,7 +5125,7 @@ An operator precedence parser. rx311_start: eq $I10, 1, rx311_restart if_null rx311_debug, debug_251 - rx311_cur."!cursor_debug"("START ", "") + rx311_cur."!cursor_debug"("START", "") debug_251: $I10 = self.'from'() ne $I10, -1, rxscan312_done @@ -5134,12 +5153,12 @@ An operator precedence parser. # rx pass rx311_cur."!cursor_pass"(rx311_pos, "") if_null rx311_debug, debug_252 - rx311_cur."!cursor_debug"("PASS ", "", " at pos=", rx311_pos) + rx311_cur."!cursor_debug"("PASS", "", " at pos=", rx311_pos) debug_252: .return (rx311_cur) rx311_restart: if_null rx311_debug, debug_253 - rx311_cur."!cursor_debug"("NEXT ", "") + rx311_cur."!cursor_debug"("NEXT", "") debug_253: rx311_fail: (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0) @@ -5149,7 +5168,7 @@ An operator precedence parser. rx311_done: rx311_cur."!cursor_fail"() if_null rx311_debug, debug_254 - rx311_cur."!cursor_debug"("FAIL ", "") + rx311_cur."!cursor_debug"("FAIL", "") debug_254: .return (rx311_cur) .return () @@ -5157,7 +5176,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "charnames" :subid("101_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "charnames" :subid("101_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx314_tgt .local int rx314_pos @@ -5181,7 +5200,7 @@ An operator precedence parser. rx314_start: eq $I10, 1, rx314_restart if_null rx314_debug, debug_258 - rx314_cur."!cursor_debug"("START ", "charnames") + rx314_cur."!cursor_debug"("START", "charnames") debug_258: $I10 = self.'from'() ne $I10, -1, rxscan317_done @@ -5233,13 +5252,13 @@ An operator precedence parser. # rx pass rx314_cur."!cursor_pass"(rx314_pos, "charnames") if_null rx314_debug, debug_259 - rx314_cur."!cursor_debug"("PASS ", "charnames", " at pos=", rx314_pos) + rx314_cur."!cursor_debug"("PASS", "charnames", " at pos=", rx314_pos) debug_259: .return (rx314_cur) rx314_restart: .annotate 'line', 33 if_null rx314_debug, debug_260 - rx314_cur."!cursor_debug"("NEXT ", "charnames") + rx314_cur."!cursor_debug"("NEXT", "charnames") debug_260: rx314_fail: (rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0) @@ -5249,7 +5268,7 @@ An operator precedence parser. rx314_done: rx314_cur."!cursor_fail"() if_null rx314_debug, debug_261 - rx314_cur."!cursor_debug"("FAIL ", "charnames") + rx314_cur."!cursor_debug"("FAIL", "charnames") debug_261: .return (rx314_cur) .return () @@ -5257,7 +5276,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__charnames" :subid("102_1282016519.8364") :method +.sub "!PREFIX__charnames" :subid("102_1282323993.58127") :method .annotate 'line', 33 new $P316, "ResizablePMCArray" push $P316, "" @@ -5266,7 +5285,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "charspec" :subid("103_1282016519.8364") :method :outer("11_1282016519.8364") +.sub "charspec" :subid("103_1282323993.58127") :method :outer("11_1282323993.58127") .annotate 'line', 33 .local string rx320_tgt .local int rx320_pos @@ -5289,7 +5308,7 @@ An operator precedence parser. rx320_start: eq $I10, 1, rx320_restart if_null rx320_debug, debug_262 - rx320_cur."!cursor_debug"("START ", "charspec") + rx320_cur."!cursor_debug"("START", "charspec") debug_262: $I10 = self.'from'() ne $I10, -1, rxscan325_done @@ -5388,13 +5407,13 @@ An operator precedence parser. # rx pass rx320_cur."!cursor_pass"(rx320_pos, "charspec") if_null rx320_debug, debug_263 - rx320_cur."!cursor_debug"("PASS ", "charspec", " at pos=", rx320_pos) + rx320_cur."!cursor_debug"("PASS", "charspec", " at pos=", rx320_pos) debug_263: .return (rx320_cur) rx320_restart: .annotate 'line', 33 if_null rx320_debug, debug_264 - rx320_cur."!cursor_debug"("NEXT ", "charspec") + rx320_cur."!cursor_debug"("NEXT", "charspec") debug_264: rx320_fail: (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0) @@ -5404,7 +5423,7 @@ An operator precedence parser. rx320_done: rx320_cur."!cursor_fail"() if_null rx320_debug, debug_265 - rx320_cur."!cursor_debug"("FAIL ", "charspec") + rx320_cur."!cursor_debug"("FAIL", "charspec") debug_265: .return (rx320_cur) .return () @@ -5412,7 +5431,7 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "!PREFIX__charspec" :subid("104_1282016519.8364") :method +.sub "!PREFIX__charspec" :subid("104_1282323993.58127") :method .annotate 'line', 33 $P322 = self."!PREFIX__!subrule"("panic", "") $P323 = self."!PREFIX__!subrule"("charnames", "[") @@ -5453,18 +5472,18 @@ An operator precedence parser. .namespace ["HLL";"Grammar"] -.sub "_block328" :load :anon :subid("105_1282016519.8364") +.sub "_block328" :load :anon :subid("105_1282323993.58127") .annotate 'line', 5 - .const 'Sub' $P330 = "11_1282016519.8364" + .const 'Sub' $P330 = "11_1282323993.58127" $P331 = $P330() .return ($P331) .end .namespace [] -.sub "_block333" :load :anon :subid("106_1282016519.8364") +.sub "_block333" :load :anon :subid("106_1282323993.58127") .annotate 'line', 1 - .const 'Sub' $P335 = "10_1282016519.8364" + .const 'Sub' $P335 = "10_1282323993.58127" $P336 = $P335() .return ($P336) .end @@ -5472,7 +5491,7 @@ An operator precedence parser. ### .include 'gen/hllgrammar-actions.pir' .namespace [] -.sub "_block11" :anon :subid("10_1282016521.02645") +.sub "_block11" :anon :subid("10_1282323994.69928") .annotate 'line', 0 get_hll_global $P14, ["HLL";"Actions"], "_block13" capture_lex $P14 @@ -5489,15 +5508,15 @@ An operator precedence parser. $P627 = $P14() .annotate 'line', 1 .return ($P627) - .const 'Sub' $P629 = "55_1282016521.02645" + .const 'Sub' $P629 = "55_1282323994.69928" .return ($P629) .end .namespace [] -.sub "" :load :init :subid("post56") :outer("10_1282016521.02645") +.sub "" :load :init :subid("post56") :outer("10_1282323994.69928") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1282016521.02645" + .const 'Sub' $P12 = "10_1282323994.69928" .local pmc block set block, $P12 $P632 = get_root_global ["parrot"], "P6metaclass" @@ -5506,75 +5525,75 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block13" :subid("11_1282016521.02645") :outer("10_1282016521.02645") +.sub "_block13" :subid("11_1282323994.69928") :outer("10_1282323994.69928") .annotate 'line', 3 - .const 'Sub' $P605 = "53_1282016521.02645" + .const 'Sub' $P605 = "53_1282323994.69928" capture_lex $P605 - .const 'Sub' $P580 = "51_1282016521.02645" + .const 'Sub' $P580 = "51_1282323994.69928" capture_lex $P580 - .const 'Sub' $P550 = "50_1282016521.02645" + .const 'Sub' $P550 = "50_1282323994.69928" capture_lex $P550 - .const 'Sub' $P531 = "49_1282016521.02645" + .const 'Sub' $P531 = "49_1282323994.69928" capture_lex $P531 - .const 'Sub' $P524 = "48_1282016521.02645" + .const 'Sub' $P524 = "48_1282323994.69928" capture_lex $P524 - .const 'Sub' $P514 = "47_1282016521.02645" + .const 'Sub' $P514 = "47_1282323994.69928" capture_lex $P514 - .const 'Sub' $P497 = "46_1282016521.02645" + .const 'Sub' $P497 = "46_1282323994.69928" capture_lex $P497 - .const 'Sub' $P480 = "45_1282016521.02645" + .const 'Sub' $P480 = "45_1282323994.69928" capture_lex $P480 - .const 'Sub' $P473 = "44_1282016521.02645" + .const 'Sub' $P473 = "44_1282323994.69928" capture_lex $P473 - .const 'Sub' $P466 = "43_1282016521.02645" + .const 'Sub' $P466 = "43_1282323994.69928" capture_lex $P466 - .const 'Sub' $P459 = "42_1282016521.02645" + .const 'Sub' $P459 = "42_1282323994.69928" capture_lex $P459 - .const 'Sub' $P452 = "41_1282016521.02645" + .const 'Sub' $P452 = "41_1282323994.69928" capture_lex $P452 - .const 'Sub' $P445 = "40_1282016521.02645" + .const 'Sub' $P445 = "40_1282323994.69928" capture_lex $P445 - .const 'Sub' $P438 = "39_1282016521.02645" + .const 'Sub' $P438 = "39_1282323994.69928" capture_lex $P438 - .const 'Sub' $P428 = "38_1282016521.02645" + .const 'Sub' $P428 = "38_1282323994.69928" capture_lex $P428 - .const 'Sub' $P421 = "37_1282016521.02645" + .const 'Sub' $P421 = "37_1282323994.69928" capture_lex $P421 - .const 'Sub' $P405 = "36_1282016521.02645" + .const 'Sub' $P405 = "36_1282323994.69928" capture_lex $P405 - .const 'Sub' $P330 = "34_1282016521.02645" + .const 'Sub' $P330 = "34_1282323994.69928" capture_lex $P330 - .const 'Sub' $P267 = "31_1282016521.02645" + .const 'Sub' $P267 = "31_1282323994.69928" capture_lex $P267 - .const 'Sub' $P258 = "30_1282016521.02645" + .const 'Sub' $P258 = "30_1282323994.69928" capture_lex $P258 - .const 'Sub' $P249 = "29_1282016521.02645" + .const 'Sub' $P249 = "29_1282323994.69928" capture_lex $P249 - .const 'Sub' $P240 = "28_1282016521.02645" + .const 'Sub' $P240 = "28_1282323994.69928" capture_lex $P240 - .const 'Sub' $P231 = "27_1282016521.02645" + .const 'Sub' $P231 = "27_1282323994.69928" capture_lex $P231 - .const 'Sub' $P222 = "26_1282016521.02645" + .const 'Sub' $P222 = "26_1282323994.69928" capture_lex $P222 - .const 'Sub' $P212 = "25_1282016521.02645" + .const 'Sub' $P212 = "25_1282323994.69928" capture_lex $P212 - .const 'Sub' $P202 = "24_1282016521.02645" + .const 'Sub' $P202 = "24_1282323994.69928" capture_lex $P202 - .const 'Sub' $P194 = "23_1282016521.02645" + .const 'Sub' $P194 = "23_1282323994.69928" capture_lex $P194 - .const 'Sub' $P184 = "22_1282016521.02645" + .const 'Sub' $P184 = "22_1282323994.69928" capture_lex $P184 - .const 'Sub' $P174 = "21_1282016521.02645" + .const 'Sub' $P174 = "21_1282323994.69928" capture_lex $P174 - .const 'Sub' $P73 = "18_1282016521.02645" + .const 'Sub' $P73 = "18_1282323994.69928" capture_lex $P73 - .const 'Sub' $P35 = "15_1282016521.02645" + .const 'Sub' $P35 = "15_1282323994.69928" capture_lex $P35 - .const 'Sub' $P28 = "14_1282016521.02645" + .const 'Sub' $P28 = "14_1282323994.69928" capture_lex $P28 - .const 'Sub' $P22 = "13_1282016521.02645" + .const 'Sub' $P22 = "13_1282323994.69928" capture_lex $P22 - .const 'Sub' $P15 = "12_1282016521.02645" + .const 'Sub' $P15 = "12_1282323994.69928" capture_lex $P15 $P0 = find_dynamic_lex "$*CTXSAVE" if null $P0 goto ctxsave_done @@ -5583,18 +5602,18 @@ An operator precedence parser. $P0."ctxsave"() ctxsave_done: .annotate 'line', 225 - .const 'Sub' $P605 = "53_1282016521.02645" + .const 'Sub' $P605 = "53_1282323994.69928" newclosure $P622, $P605 .annotate 'line', 3 .return ($P622) - .const 'Sub' $P624 = "54_1282016521.02645" + .const 'Sub' $P624 = "54_1282323994.69928" .return ($P624) .end .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "string_to_int" :subid("12_1282016521.02645") :outer("11_1282016521.02645") +.sub "string_to_int" :subid("12_1282323994.69928") :outer("11_1282323994.69928") .param pmc param_18 .param pmc param_19 .annotate 'line', 3 @@ -5648,7 +5667,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "ints_to_string" :subid("13_1282016521.02645") :outer("11_1282016521.02645") +.sub "ints_to_string" :subid("13_1282323994.69928") :outer("11_1282323994.69928") .param pmc param_25 .annotate 'line', 37 new $P24, 'ExceptionHandler' @@ -5690,7 +5709,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "CTXSAVE" :subid("14_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "CTXSAVE" :subid("14_1282323994.69928") :method :outer("11_1282323994.69928") .annotate 'line', 62 new $P30, 'ExceptionHandler' set_addr $P30, control_29 @@ -5720,10 +5739,10 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "SET_BLOCK_OUTER_CTX" :subid("15_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "SET_BLOCK_OUTER_CTX" :subid("15_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_38 .annotate 'line', 76 - .const 'Sub' $P48 = "16_1282016521.02645" + .const 'Sub' $P48 = "16_1282323994.69928" capture_lex $P48 new $P37, 'ExceptionHandler' set_addr $P37, control_36 @@ -5758,7 +5777,7 @@ An operator precedence parser. set $P43, $I46 goto if_44_end if_44: - .const 'Sub' $P48 = "16_1282016521.02645" + .const 'Sub' $P48 = "16_1282323994.69928" capture_lex $P48 $P71 = $P48() set $P43, $P71 @@ -5775,9 +5794,9 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "_block47" :anon :subid("16_1282016521.02645") :outer("15_1282016521.02645") +.sub "_block47" :anon :subid("16_1282323994.69928") :outer("15_1282323994.69928") .annotate 'line', 78 - .const 'Sub' $P62 = "17_1282016521.02645" + .const 'Sub' $P62 = "17_1282323994.69928" capture_lex $P62 .annotate 'line', 79 $P49 = root_new ['parrot';'ResizablePMCArray'] @@ -5807,7 +5826,7 @@ An operator precedence parser. unless $P56, loop68_done shift $P60, $P56 loop68_redo: - .const 'Sub' $P62 = "17_1282016521.02645" + .const 'Sub' $P62 = "17_1282323994.69928" capture_lex $P62 $P62($P60) loop68_next: @@ -5827,7 +5846,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block61" :anon :subid("17_1282016521.02645") :outer("16_1282016521.02645") +.sub "_block61" :anon :subid("17_1282323994.69928") :outer("16_1282323994.69928") .param pmc param_63 .annotate 'line', 82 .lex "$_", param_63 @@ -5843,14 +5862,14 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "EXPR" :subid("18_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "EXPR" :subid("18_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_76 .param pmc param_77 :optional .param int has_param_77 :opt_flag .annotate 'line', 89 - .const 'Sub' $P156 = "20_1282016521.02645" + .const 'Sub' $P156 = "20_1282323994.69928" capture_lex $P156 - .const 'Sub' $P123 = "19_1282016521.02645" + .const 'Sub' $P123 = "19_1282323994.69928" capture_lex $P123 new $P75, 'ExceptionHandler' set_addr $P75, control_74 @@ -5985,7 +6004,7 @@ An operator precedence parser. find_lex $P120, "$past" $P121 = $P120."name"() if $P121, unless_119_end - .const 'Sub' $P123 = "19_1282016521.02645" + .const 'Sub' $P123 = "19_1282323994.69928" capture_lex $P123 $P123() unless_119_end: @@ -6009,7 +6028,7 @@ An operator precedence parser. unless $P150, loop167_done shift $P154, $P150 loop167_redo: - .const 'Sub' $P156 = "20_1282016521.02645" + .const 'Sub' $P156 = "20_1282323994.69928" capture_lex $P156 $P156($P154) loop167_next: @@ -6054,7 +6073,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block122" :anon :subid("19_1282016521.02645") :outer("18_1282016521.02645") +.sub "_block122" :anon :subid("19_1282323994.69928") :outer("18_1282323994.69928") .annotate 'line', 98 new $P124, "Undef" .lex "$name", $P124 @@ -6104,7 +6123,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block155" :anon :subid("20_1282016521.02645") :outer("18_1282016521.02645") +.sub "_block155" :anon :subid("20_1282323994.69928") :outer("18_1282323994.69928") .param pmc param_157 .annotate 'line', 109 .lex "$_", param_157 @@ -6128,7 +6147,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("21_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "term:sym" :subid("21_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_177 .annotate 'line', 114 new $P176, 'ExceptionHandler' @@ -6159,7 +6178,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "termish" :subid("22_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "termish" :subid("22_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_187 .annotate 'line', 116 new $P186, 'ExceptionHandler' @@ -6190,7 +6209,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "nullterm" :subid("23_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "nullterm" :subid("23_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_197 .annotate 'line', 117 new $P196, 'ExceptionHandler' @@ -6213,7 +6232,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "nullterm_alt" :subid("24_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "nullterm_alt" :subid("24_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_205 .annotate 'line', 118 new $P204, 'ExceptionHandler' @@ -6244,7 +6263,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "integer" :subid("25_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "integer" :subid("25_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_215 .annotate 'line', 120 new $P214, 'ExceptionHandler' @@ -6275,7 +6294,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "dec_number" :subid("26_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "dec_number" :subid("26_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_225 .annotate 'line', 122 new $P224, 'ExceptionHandler' @@ -6299,7 +6318,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "decint" :subid("27_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "decint" :subid("27_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_234 .annotate 'line', 124 new $P233, 'ExceptionHandler' @@ -6323,7 +6342,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "hexint" :subid("28_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "hexint" :subid("28_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_243 .annotate 'line', 125 new $P242, 'ExceptionHandler' @@ -6347,7 +6366,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "octint" :subid("29_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "octint" :subid("29_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_252 .annotate 'line', 126 new $P251, 'ExceptionHandler' @@ -6371,7 +6390,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "binint" :subid("30_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "binint" :subid("30_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_261 .annotate 'line', 127 new $P260, 'ExceptionHandler' @@ -6395,10 +6414,10 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_EXPR" :subid("31_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_EXPR" :subid("31_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_270 .annotate 'line', 129 - .const 'Sub' $P286 = "32_1282016521.02645" + .const 'Sub' $P286 = "32_1282323994.69928" capture_lex $P286 new $P269, 'ExceptionHandler' set_addr $P269, control_268 @@ -6430,7 +6449,7 @@ An operator precedence parser. $P282 = $P280."ACCEPTS"($P281) if $P282, if_279 .annotate 'line', 135 - .const 'Sub' $P286 = "32_1282016521.02645" + .const 'Sub' $P286 = "32_1282323994.69928" capture_lex $P286 $P286() goto if_279_end @@ -6470,9 +6489,9 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "_block285" :anon :subid("32_1282016521.02645") :outer("31_1282016521.02645") +.sub "_block285" :anon :subid("32_1282323994.69928") :outer("31_1282323994.69928") .annotate 'line', 135 - .const 'Sub' $P305 = "33_1282016521.02645" + .const 'Sub' $P305 = "33_1282323994.69928" capture_lex $P305 .annotate 'line', 136 $P287 = root_new ['parrot';'ResizablePMCArray'] @@ -6523,7 +6542,7 @@ An operator precedence parser. unless $P300, loop310_done shift $P303, $P300 loop310_redo: - .const 'Sub' $P305 = "33_1282016521.02645" + .const 'Sub' $P305 = "33_1282323994.69928" capture_lex $P305 $P305($P303) loop310_next: @@ -6546,7 +6565,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block304" :anon :subid("33_1282016521.02645") :outer("32_1282016521.02645") +.sub "_block304" :anon :subid("33_1282323994.69928") :outer("32_1282323994.69928") .param pmc param_306 .annotate 'line', 139 .lex "$_", param_306 @@ -6559,10 +6578,10 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_delimited" :subid("34_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_delimited" :subid("34_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_333 .annotate 'line', 152 - .const 'Sub' $P345 = "35_1282016521.02645" + .const 'Sub' $P345 = "35_1282323994.69928" capture_lex $P345 new $P332, 'ExceptionHandler' set_addr $P332, control_331 @@ -6605,7 +6624,7 @@ An operator precedence parser. unless $P339, loop377_done shift $P343, $P339 loop377_redo: - .const 'Sub' $P345 = "35_1282016521.02645" + .const 'Sub' $P345 = "35_1282323994.69928" capture_lex $P345 $P345($P343) loop377_next: @@ -6683,7 +6702,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block344" :anon :subid("35_1282016521.02645") :outer("34_1282016521.02645") +.sub "_block344" :anon :subid("35_1282323994.69928") :outer("34_1282323994.69928") .param pmc param_347 .annotate 'line', 156 new $P346, "Undef" @@ -6753,7 +6772,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_atom" :subid("36_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_atom" :subid("36_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_408 .annotate 'line', 177 new $P407, 'ExceptionHandler' @@ -6803,7 +6822,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("37_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("37_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_424 .annotate 'line', 181 new $P423, 'ExceptionHandler' @@ -6825,7 +6844,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("38_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("38_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_431 .annotate 'line', 182 new $P430, 'ExceptionHandler' @@ -6856,7 +6875,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("39_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("39_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_441 .annotate 'line', 184 new $P440, 'ExceptionHandler' @@ -6878,7 +6897,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("40_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("40_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_448 .annotate 'line', 185 new $P447, 'ExceptionHandler' @@ -6900,7 +6919,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("41_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("41_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_455 .annotate 'line', 186 new $P454, 'ExceptionHandler' @@ -6922,7 +6941,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("42_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("42_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_462 .annotate 'line', 187 new $P461, 'ExceptionHandler' @@ -6944,7 +6963,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("43_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("43_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_469 .annotate 'line', 188 new $P468, 'ExceptionHandler' @@ -6966,7 +6985,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("44_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("44_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_476 .annotate 'line', 189 new $P475, 'ExceptionHandler' @@ -6988,7 +7007,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("45_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("45_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_483 .annotate 'line', 191 new $P482, 'ExceptionHandler' @@ -7047,7 +7066,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("46_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("46_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_500 .annotate 'line', 195 new $P499, 'ExceptionHandler' @@ -7106,7 +7125,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("47_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("47_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_517 .annotate 'line', 199 new $P516, 'ExceptionHandler' @@ -7139,7 +7158,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym<0>" :subid("48_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym<0>" :subid("48_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_527 .annotate 'line', 203 new $P526, 'ExceptionHandler' @@ -7163,7 +7182,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("49_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "quote_escape:sym" :subid("49_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_534 .annotate 'line', 207 new $P533, 'ExceptionHandler' @@ -7222,7 +7241,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "charname" :subid("50_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "charname" :subid("50_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_553 .annotate 'line', 211 new $P552, 'ExceptionHandler' @@ -7296,10 +7315,10 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "charnames" :subid("51_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "charnames" :subid("51_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_583 .annotate 'line', 219 - .const 'Sub' $P592 = "52_1282016521.02645" + .const 'Sub' $P592 = "52_1282323994.69928" capture_lex $P592 new $P582, 'ExceptionHandler' set_addr $P582, control_581 @@ -7333,7 +7352,7 @@ An operator precedence parser. unless $P586, loop598_done shift $P590, $P586 loop598_redo: - .const 'Sub' $P592 = "52_1282016521.02645" + .const 'Sub' $P592 = "52_1282323994.69928" capture_lex $P592 $P592($P590) loop598_next: @@ -7362,7 +7381,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block591" :anon :subid("52_1282016521.02645") :outer("51_1282016521.02645") +.sub "_block591" :anon :subid("52_1282323994.69928") :outer("51_1282323994.69928") .param pmc param_593 .annotate 'line', 221 .lex "$_", param_593 @@ -7377,7 +7396,7 @@ An operator precedence parser. .namespace ["HLL";"Actions"] .include "except_types.pasm" -.sub "charspec" :subid("53_1282016521.02645") :method :outer("11_1282016521.02645") +.sub "charspec" :subid("53_1282323994.69928") :method :outer("11_1282323994.69928") .param pmc param_608 .annotate 'line', 225 new $P607, 'ExceptionHandler' @@ -7427,18 +7446,18 @@ An operator precedence parser. .namespace ["HLL";"Actions"] -.sub "_block623" :load :anon :subid("54_1282016521.02645") +.sub "_block623" :load :anon :subid("54_1282323994.69928") .annotate 'line', 3 - .const 'Sub' $P625 = "11_1282016521.02645" + .const 'Sub' $P625 = "11_1282323994.69928" $P626 = $P625() .return ($P626) .end .namespace [] -.sub "_block628" :load :anon :subid("55_1282016521.02645") +.sub "_block628" :load :anon :subid("55_1282323994.69928") .annotate 'line', 1 - .const 'Sub' $P630 = "10_1282016521.02645" + .const 'Sub' $P630 = "10_1282323994.69928" $P631 = $P630() .return ($P631) .end @@ -7446,7 +7465,7 @@ An operator precedence parser. ### .include 'gen/hllcompiler.pir' .namespace [] -.sub "_block11" :anon :subid("10_1282016521.80094") +.sub "_block11" :anon :subid("10_1282323995.38516") .annotate 'line', 0 get_hll_global $P14, ["HLL";"Compiler"], "_block13" capture_lex $P14 @@ -7463,15 +7482,15 @@ An operator precedence parser. $P497 = $P14() .annotate 'line', 1 .return ($P497) - .const 'Sub' $P499 = "36_1282016521.80094" + .const 'Sub' $P499 = "36_1282323995.38516" .return ($P499) .end .namespace [] -.sub "" :load :init :subid("post37") :outer("10_1282016521.80094") +.sub "" :load :init :subid("post37") :outer("10_1282323995.38516") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1282016521.80094" + .const 'Sub' $P12 = "10_1282323995.38516" .local pmc block set block, $P12 .annotate 'line', 2 @@ -7485,36 +7504,36 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block13" :subid("11_1282016521.80094") :outer("10_1282016521.80094") +.sub "_block13" :subid("11_1282323995.38516") :outer("10_1282323995.38516") .annotate 'line', 6 - .const 'Sub' $P489 = "35_1282016521.80094" + .const 'Sub' $P489 = "35_1282323995.38516" capture_lex $P489 - .const 'Sub' $P447 = "33_1282016521.80094" + .const 'Sub' $P447 = "33_1282323995.38516" capture_lex $P447 - .const 'Sub' $P298 = "26_1282016521.80094" + .const 'Sub' $P298 = "26_1282323995.38516" capture_lex $P298 - .const 'Sub' $P283 = "25_1282016521.80094" + .const 'Sub' $P283 = "25_1282323995.38516" capture_lex $P283 - .const 'Sub' $P188 = "20_1282016521.80094" + .const 'Sub' $P188 = "20_1282323995.38516" capture_lex $P188 - .const 'Sub' $P153 = "18_1282016521.80094" + .const 'Sub' $P153 = "18_1282323995.38516" capture_lex $P153 - .const 'Sub' $P138 = "17_1282016521.80094" + .const 'Sub' $P138 = "17_1282323995.38516" capture_lex $P138 - .const 'Sub' $P122 = "16_1282016521.80094" + .const 'Sub' $P122 = "16_1282323995.38516" capture_lex $P122 - .const 'Sub' $P33 = "13_1282016521.80094" + .const 'Sub' $P33 = "13_1282323995.38516" capture_lex $P33 - .const 'Sub' $P15 = "12_1282016521.80094" + .const 'Sub' $P15 = "12_1282323995.38516" capture_lex $P15 .annotate 'line', 14 - .const 'Sub' $P15 = "12_1282016521.80094" + .const 'Sub' $P15 = "12_1282323995.38516" newclosure $P31, $P15 .lex "value_type", $P31 .annotate 'line', 10 find_lex $P32, "value_type" .annotate 'line', 165 - .const 'Sub' $P489 = "35_1282016521.80094" + .const 'Sub' $P489 = "35_1282323995.38516" newclosure $P495, $P489 .annotate 'line', 6 .return ($P495) @@ -7522,7 +7541,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "" :load :init :subid("post38") :outer("11_1282016521.80094") +.sub "" :load :init :subid("post38") :outer("11_1282323995.38516") .annotate 'line', 6 get_hll_global $P14, ["HLL";"Compiler"], "_block13" .local pmc block @@ -7535,7 +7554,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "value_type" :subid("12_1282016521.80094") :outer("11_1282016521.80094") +.sub "value_type" :subid("12_1282323995.38516") :outer("11_1282323995.38516") .param pmc param_18 .annotate 'line', 14 new $P17, 'ExceptionHandler' @@ -7580,15 +7599,15 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "get_exports" :subid("13_1282016521.80094") :method :outer("11_1282016521.80094") +.sub "get_exports" :subid("13_1282323995.38516") :method :outer("11_1282323995.38516") .param pmc param_36 .param pmc param_39 :slurpy .param pmc param_37 :optional :named("tagset") .param int has_param_37 :opt_flag .annotate 'line', 20 - .const 'Sub' $P105 = "15_1282016521.80094" + .const 'Sub' $P105 = "15_1282323995.38516" capture_lex $P105 - .const 'Sub' $P84 = "14_1282016521.80094" + .const 'Sub' $P84 = "14_1282323995.38516" capture_lex $P84 new $P35, 'ExceptionHandler' set_addr $P35, control_34 @@ -7694,7 +7713,7 @@ An operator precedence parser. unless $P100, loop117_done shift $P103, $P100 loop117_redo: - .const 'Sub' $P105 = "15_1282016521.80094" + .const 'Sub' $P105 = "15_1282323995.38516" capture_lex $P105 $P105($P103) loop117_next: @@ -7724,7 +7743,7 @@ An operator precedence parser. unless $P79, loop97_done shift $P82, $P79 loop97_redo: - .const 'Sub' $P84 = "14_1282016521.80094" + .const 'Sub' $P84 = "14_1282323995.38516" capture_lex $P84 $P84($P82) loop97_next: @@ -7752,7 +7771,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block104" :anon :subid("15_1282016521.80094") :outer("13_1282016521.80094") +.sub "_block104" :anon :subid("15_1282323995.38516") :outer("13_1282323995.38516") .param pmc param_107 .annotate 'line', 40 new $P106, "Undef" @@ -7784,7 +7803,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block83" :anon :subid("14_1282016521.80094") :outer("13_1282016521.80094") +.sub "_block83" :anon :subid("14_1282323995.38516") :outer("13_1282323995.38516") .param pmc param_86 .annotate 'line', 34 new $P85, "Undef" @@ -7824,7 +7843,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "get_module" :subid("16_1282016521.80094") :method :outer("11_1282016521.80094") +.sub "get_module" :subid("16_1282323995.38516") :method :outer("11_1282323995.38516") .param pmc param_125 .annotate 'line', 47 new $P124, 'ExceptionHandler' @@ -7865,7 +7884,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "language" :subid("17_1282016521.80094") :method :outer("11_1282016521.80094") +.sub "language" :subid("17_1282323995.38516") :method :outer("11_1282323995.38516") .param pmc param_141 :optional .param int has_param_141 :opt_flag .annotate 'line', 53 @@ -7910,10 +7929,10 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "load_module" :subid("18_1282016521.80094") :method :outer("11_1282016521.80094") +.sub "load_module" :subid("18_1282323995.38516") :method :outer("11_1282323995.38516") .param pmc param_156 .annotate 'line', 61 - .const 'Sub' $P166 = "19_1282016521.80094" + .const 'Sub' $P166 = "19_1282323995.38516" capture_lex $P166 new $P155, 'ExceptionHandler' set_addr $P155, control_154 @@ -7940,7 +7959,7 @@ An operator precedence parser. assign $P164, 0 store_lex "$loaded", $P164 .annotate 'line', 64 - .const 'Sub' $P166 = "19_1282016521.80094" + .const 'Sub' $P166 = "19_1282323995.38516" capture_lex $P166 $P166() .annotate 'line', 65 @@ -7970,7 +7989,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block165" :anon :subid("19_1282016521.80094") :outer("18_1282016521.80094") +.sub "_block165" :anon :subid("19_1282323995.38516") :outer("18_1282323995.38516") .annotate 'line', 64 new $P173, 'ExceptionHandler' set_addr $P173, control_172 @@ -8004,11 +8023,11 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "import" :subid("20_1282016521.80094") :method :outer("11_1282016521.80094") +.sub "import" :subid("20_1282323995.38516") :method :outer("11_1282323995.38516") .param pmc param_191 .param pmc param_192 .annotate 'line', 69 - .const 'Sub' $P198 = "21_1282016521.80094" + .const 'Sub' $P198 = "21_1282323995.38516" capture_lex $P198 new $P190, 'ExceptionHandler' set_addr $P190, control_189 @@ -8030,7 +8049,7 @@ An operator precedence parser. unless $P193, loop279_done shift $P196, $P193 loop279_redo: - .const 'Sub' $P198 = "21_1282016521.80094" + .const 'Sub' $P198 = "21_1282323995.38516" capture_lex $P198 $P198($P196) loop279_next: @@ -8056,14 +8075,14 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block197" :anon :subid("21_1282016521.80094") :outer("20_1282016521.80094") +.sub "_block197" :anon :subid("21_1282323995.38516") :outer("20_1282323995.38516") .param pmc param_201 .annotate 'line', 70 - .const 'Sub' $P268 = "24_1282016521.80094" + .const 'Sub' $P268 = "24_1282323995.38516" capture_lex $P268 - .const 'Sub' $P248 = "23_1282016521.80094" + .const 'Sub' $P248 = "23_1282323995.38516" capture_lex $P248 - .const 'Sub' $P219 = "22_1282016521.80094" + .const 'Sub' $P219 = "22_1282323995.38516" capture_lex $P219 .annotate 'line', 71 new $P199, "Undef" @@ -8111,7 +8130,7 @@ An operator precedence parser. unless $P263, loop276_done shift $P266, $P263 loop276_redo: - .const 'Sub' $P268 = "24_1282016521.80094" + .const 'Sub' $P268 = "24_1282323995.38516" capture_lex $P268 $P268($P266) loop276_next: @@ -8143,7 +8162,7 @@ An operator precedence parser. unless $P243, loop260_done shift $P246, $P243 loop260_redo: - .const 'Sub' $P248 = "23_1282016521.80094" + .const 'Sub' $P248 = "23_1282323995.38516" capture_lex $P248 $P248($P246) loop260_next: @@ -8177,7 +8196,7 @@ An operator precedence parser. unless $P214, loop232_done shift $P217, $P214 loop232_redo: - .const 'Sub' $P219 = "22_1282016521.80094" + .const 'Sub' $P219 = "22_1282323995.38516" capture_lex $P219 $P219($P217) loop232_next: @@ -8200,7 +8219,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block267" :anon :subid("24_1282016521.80094") :outer("21_1282016521.80094") +.sub "_block267" :anon :subid("24_1282323995.38516") :outer("21_1282323995.38516") .param pmc param_269 .annotate 'line', 80 .lex "$_", param_269 @@ -8220,7 +8239,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block247" :anon :subid("23_1282016521.80094") :outer("21_1282016521.80094") +.sub "_block247" :anon :subid("23_1282323995.38516") :outer("21_1282323995.38516") .param pmc param_249 .annotate 'line', 77 .lex "$_", param_249 @@ -8240,7 +8259,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block218" :anon :subid("22_1282016521.80094") :outer("21_1282016521.80094") +.sub "_block218" :anon :subid("22_1282323995.38516") :outer("21_1282323995.38516") .param pmc param_220 .annotate 'line', 74 .lex "$_", param_220 @@ -8262,7 +8281,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "autoprint" :subid("25_1282016521.80094") :method :outer("11_1282016521.80094") +.sub "autoprint" :subid("25_1282323995.38516") :method :outer("11_1282323995.38516") .param pmc param_286 .annotate 'line', 85 new $P285, 'ExceptionHandler' @@ -8306,10 +8325,10 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "interactive" :subid("26_1282016521.80094") :method :outer("11_1282016521.80094") +.sub "interactive" :subid("26_1282323995.38516") :method :outer("11_1282323995.38516") .param pmc param_301 :slurpy :named .annotate 'line', 90 - .const 'Sub' $P333 = "27_1282016521.80094" + .const 'Sub' $P333 = "27_1282323995.38516" capture_lex $P333 new $P300, 'ExceptionHandler' set_addr $P300, control_299 @@ -8396,7 +8415,7 @@ An operator precedence parser. assign $P331, 1 unless $P331, loop443_done loop443_redo: - .const 'Sub' $P333 = "27_1282016521.80094" + .const 'Sub' $P333 = "27_1282323995.38516" capture_lex $P333 $P333() loop443_next: @@ -8421,9 +8440,9 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block332" :anon :subid("27_1282016521.80094") :outer("26_1282016521.80094") +.sub "_block332" :anon :subid("27_1282323995.38516") :outer("26_1282323995.38516") .annotate 'line', 102 - .const 'Sub' $P365 = "28_1282016521.80094" + .const 'Sub' $P365 = "28_1282323995.38516" capture_lex $P365 .annotate 'line', 105 new $P334, "Undef" @@ -8491,7 +8510,7 @@ An operator precedence parser. set $P361, $P363 goto if_362_end if_362: - .const 'Sub' $P365 = "28_1282016521.80094" + .const 'Sub' $P365 = "28_1282323995.38516" capture_lex $P365 $P442 = $P365() set $P361, $P442 @@ -8503,11 +8522,11 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block364" :anon :subid("28_1282016521.80094") :outer("27_1282016521.80094") +.sub "_block364" :anon :subid("28_1282323995.38516") :outer("27_1282323995.38516") .annotate 'line', 115 - .const 'Sub' $P398 = "31_1282016521.80094" + .const 'Sub' $P398 = "31_1282323995.38516" capture_lex $P398 - .const 'Sub' $P371 = "29_1282016521.80094" + .const 'Sub' $P371 = "29_1282323995.38516" capture_lex $P371 .annotate 'line', 117 new $P366, "Undef" @@ -8518,7 +8537,7 @@ An operator precedence parser. store_lex "$code", $P368 find_lex $P369, "$output" .annotate 'line', 118 - .const 'Sub' $P371 = "29_1282016521.80094" + .const 'Sub' $P371 = "29_1282323995.38516" capture_lex $P371 $P371() .annotate 'line', 125 @@ -8531,7 +8550,7 @@ An operator precedence parser. vivify_67: defined $I396, $P395 unless $I396, if_394_end - .const 'Sub' $P398 = "31_1282016521.80094" + .const 'Sub' $P398 = "31_1282323995.38516" capture_lex $P398 $P398() if_394_end: @@ -8585,9 +8604,9 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block370" :anon :subid("29_1282016521.80094") :outer("28_1282016521.80094") +.sub "_block370" :anon :subid("29_1282323995.38516") :outer("28_1282323995.38516") .annotate 'line', 118 - .const 'Sub' $P383 = "30_1282016521.80094" + .const 'Sub' $P383 = "30_1282323995.38516" capture_lex $P383 new $P379, 'ExceptionHandler' set_addr $P379, control_378 @@ -8607,7 +8626,7 @@ An operator precedence parser. .annotate 'line', 120 .local pmc exception .get_results (exception) - .const 'Sub' $P383 = "30_1282016521.80094" + .const 'Sub' $P383 = "30_1282323995.38516" newclosure $P391, $P383 $P391(exception) new $P392, 'Integer' @@ -8627,7 +8646,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block382" :anon :subid("30_1282016521.80094") :outer("29_1282016521.80094") +.sub "_block382" :anon :subid("30_1282323995.38516") :outer("29_1282323995.38516") .param pmc param_384 .annotate 'line', 120 .lex "$_", param_384 @@ -8650,9 +8669,9 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "_block397" :anon :subid("31_1282016521.80094") :outer("28_1282016521.80094") +.sub "_block397" :anon :subid("31_1282323995.38516") :outer("28_1282323995.38516") .annotate 'line', 125 - .const 'Sub' $P409 = "32_1282016521.80094" + .const 'Sub' $P409 = "32_1282323995.38516" capture_lex $P409 .annotate 'line', 126 get_global $P399, "$interactive_ctx" @@ -8689,7 +8708,7 @@ An operator precedence parser. unless $P403, loop416_done shift $P407, $P403 loop416_redo: - .const 'Sub' $P409 = "32_1282016521.80094" + .const 'Sub' $P409 = "32_1282323995.38516" capture_lex $P409 $P409($P407) loop416_next: @@ -8712,7 +8731,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block408" :anon :subid("32_1282016521.80094") :outer("31_1282016521.80094") +.sub "_block408" :anon :subid("32_1282323995.38516") :outer("31_1282323995.38516") .param pmc param_410 .annotate 'line', 128 .lex "$_", param_410 @@ -8734,12 +8753,12 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "eval" :subid("33_1282016521.80094") :method :outer("11_1282016521.80094") +.sub "eval" :subid("33_1282323995.38516") :method :outer("11_1282323995.38516") .param pmc param_450 .param pmc param_451 :slurpy .param pmc param_452 :slurpy :named .annotate 'line', 146 - .const 'Sub' $P471 = "34_1282016521.80094" + .const 'Sub' $P471 = "34_1282323995.38516" capture_lex $P471 new $P449, 'ExceptionHandler' set_addr $P449, control_448 @@ -8786,7 +8805,7 @@ An operator precedence parser. set $P460, $I469 if_461_end: unless $P460, if_459_end - .const 'Sub' $P471 = "34_1282016521.80094" + .const 'Sub' $P471 = "34_1282323995.38516" capture_lex $P471 $P471() if_459_end: @@ -8803,7 +8822,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] -.sub "_block470" :anon :subid("34_1282016521.80094") :outer("33_1282016521.80094") +.sub "_block470" :anon :subid("34_1282323995.38516") :outer("33_1282323995.38516") .annotate 'line', 152 new $P472, "Undef" .lex "$outer_ctx", $P472 @@ -8857,7 +8876,7 @@ An operator precedence parser. .namespace ["HLL";"Compiler"] .include "except_types.pasm" -.sub "ctxsave" :subid("35_1282016521.80094") :method :outer("11_1282016521.80094") +.sub "ctxsave" :subid("35_1282323995.38516") :method :outer("11_1282323995.38516") .annotate 'line', 165 new $P491, 'ExceptionHandler' set_addr $P491, control_490 @@ -8885,9 +8904,9 @@ An operator precedence parser. .namespace [] -.sub "_block498" :load :anon :subid("36_1282016521.80094") +.sub "_block498" :load :anon :subid("36_1282323995.38516") .annotate 'line', 1 - .const 'Sub' $P500 = "10_1282016521.80094" + .const 'Sub' $P500 = "10_1282323995.38516" $P501 = $P500() .return ($P501) .end diff --git a/ext/nqp-rx/src/stage0/NQP-s0.pir b/ext/nqp-rx/src/stage0/NQP-s0.pir index 0cc6647ca1..035631ca80 100644 --- a/ext/nqp-rx/src/stage0/NQP-s0.pir +++ b/ext/nqp-rx/src/stage0/NQP-s0.pir @@ -15,7 +15,7 @@ NQP::Compiler - NQP compiler ### .include 'gen/nqp-grammar.pir' .namespace [] -.sub "_block11" :anon :subid("10_1282016529.10767") +.sub "_block11" :anon :subid("10_1282324002.40722") .annotate 'line', 0 get_hll_global $P14, ["NQP";"Grammar"], "_block13" capture_lex $P14 @@ -32,15 +32,15 @@ NQP::Compiler - NQP compiler $P1423 = $P14() .annotate 'line', 1 .return ($P1423) - .const 'Sub' $P1425 = "371_1282016529.10767" + .const 'Sub' $P1425 = "371_1282324002.40722" .return ($P1425) .end .namespace [] -.sub "" :load :init :subid("post372") :outer("10_1282016529.10767") +.sub "" :load :init :subid("post372") :outer("10_1282324002.40722") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1282016529.10767" + .const 'Sub' $P12 = "10_1282324002.40722" .local pmc block set block, $P12 $P1428 = get_root_global ["parrot"], "P6metaclass" @@ -49,321 +49,321 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block13" :subid("11_1282016529.10767") :outer("10_1282016529.10767") +.sub "_block13" :subid("11_1282324002.40722") :outer("10_1282324002.40722") .annotate 'line', 4 get_hll_global $P1340, ["NQP";"Regex"], "_block1339" capture_lex $P1340 - .const 'Sub' $P1326 = "348_1282016529.10767" + .const 'Sub' $P1326 = "348_1282324002.40722" capture_lex $P1326 - .const 'Sub' $P1320 = "346_1282016529.10767" + .const 'Sub' $P1320 = "346_1282324002.40722" capture_lex $P1320 - .const 'Sub' $P1314 = "344_1282016529.10767" + .const 'Sub' $P1314 = "344_1282324002.40722" capture_lex $P1314 - .const 'Sub' $P1308 = "342_1282016529.10767" + .const 'Sub' $P1308 = "342_1282324002.40722" capture_lex $P1308 - .const 'Sub' $P1302 = "340_1282016529.10767" + .const 'Sub' $P1302 = "340_1282324002.40722" capture_lex $P1302 - .const 'Sub' $P1296 = "338_1282016529.10767" + .const 'Sub' $P1296 = "338_1282324002.40722" capture_lex $P1296 - .const 'Sub' $P1289 = "336_1282016529.10767" + .const 'Sub' $P1289 = "336_1282324002.40722" capture_lex $P1289 - .const 'Sub' $P1282 = "334_1282016529.10767" + .const 'Sub' $P1282 = "334_1282324002.40722" capture_lex $P1282 - .const 'Sub' $P1275 = "332_1282016529.10767" + .const 'Sub' $P1275 = "332_1282324002.40722" capture_lex $P1275 - .const 'Sub' $P1268 = "330_1282016529.10767" + .const 'Sub' $P1268 = "330_1282324002.40722" capture_lex $P1268 - .const 'Sub' $P1262 = "328_1282016529.10767" + .const 'Sub' $P1262 = "328_1282324002.40722" capture_lex $P1262 - .const 'Sub' $P1255 = "326_1282016529.10767" + .const 'Sub' $P1255 = "326_1282324002.40722" capture_lex $P1255 - .const 'Sub' $P1248 = "324_1282016529.10767" + .const 'Sub' $P1248 = "324_1282324002.40722" capture_lex $P1248 - .const 'Sub' $P1241 = "322_1282016529.10767" + .const 'Sub' $P1241 = "322_1282324002.40722" capture_lex $P1241 - .const 'Sub' $P1234 = "320_1282016529.10767" + .const 'Sub' $P1234 = "320_1282324002.40722" capture_lex $P1234 - .const 'Sub' $P1227 = "318_1282016529.10767" + .const 'Sub' $P1227 = "318_1282324002.40722" capture_lex $P1227 - .const 'Sub' $P1220 = "316_1282016529.10767" + .const 'Sub' $P1220 = "316_1282324002.40722" capture_lex $P1220 - .const 'Sub' $P1213 = "314_1282016529.10767" + .const 'Sub' $P1213 = "314_1282324002.40722" capture_lex $P1213 - .const 'Sub' $P1206 = "312_1282016529.10767" + .const 'Sub' $P1206 = "312_1282324002.40722" capture_lex $P1206 - .const 'Sub' $P1199 = "310_1282016529.10767" + .const 'Sub' $P1199 = "310_1282324002.40722" capture_lex $P1199 - .const 'Sub' $P1192 = "308_1282016529.10767" + .const 'Sub' $P1192 = "308_1282324002.40722" capture_lex $P1192 - .const 'Sub' $P1185 = "306_1282016529.10767" + .const 'Sub' $P1185 = "306_1282324002.40722" capture_lex $P1185 - .const 'Sub' $P1178 = "304_1282016529.10767" + .const 'Sub' $P1178 = "304_1282324002.40722" capture_lex $P1178 - .const 'Sub' $P1171 = "302_1282016529.10767" + .const 'Sub' $P1171 = "302_1282324002.40722" capture_lex $P1171 - .const 'Sub' $P1164 = "300_1282016529.10767" + .const 'Sub' $P1164 = "300_1282324002.40722" capture_lex $P1164 - .const 'Sub' $P1157 = "298_1282016529.10767" + .const 'Sub' $P1157 = "298_1282324002.40722" capture_lex $P1157 - .const 'Sub' $P1150 = "296_1282016529.10767" + .const 'Sub' $P1150 = "296_1282324002.40722" capture_lex $P1150 - .const 'Sub' $P1143 = "294_1282016529.10767" + .const 'Sub' $P1143 = "294_1282324002.40722" capture_lex $P1143 - .const 'Sub' $P1136 = "292_1282016529.10767" + .const 'Sub' $P1136 = "292_1282324002.40722" capture_lex $P1136 - .const 'Sub' $P1129 = "290_1282016529.10767" + .const 'Sub' $P1129 = "290_1282324002.40722" capture_lex $P1129 - .const 'Sub' $P1122 = "288_1282016529.10767" + .const 'Sub' $P1122 = "288_1282324002.40722" capture_lex $P1122 - .const 'Sub' $P1115 = "286_1282016529.10767" + .const 'Sub' $P1115 = "286_1282324002.40722" capture_lex $P1115 - .const 'Sub' $P1108 = "284_1282016529.10767" + .const 'Sub' $P1108 = "284_1282324002.40722" capture_lex $P1108 - .const 'Sub' $P1101 = "282_1282016529.10767" + .const 'Sub' $P1101 = "282_1282324002.40722" capture_lex $P1101 - .const 'Sub' $P1094 = "280_1282016529.10767" + .const 'Sub' $P1094 = "280_1282324002.40722" capture_lex $P1094 - .const 'Sub' $P1087 = "278_1282016529.10767" + .const 'Sub' $P1087 = "278_1282324002.40722" capture_lex $P1087 - .const 'Sub' $P1080 = "276_1282016529.10767" + .const 'Sub' $P1080 = "276_1282324002.40722" capture_lex $P1080 - .const 'Sub' $P1073 = "274_1282016529.10767" + .const 'Sub' $P1073 = "274_1282324002.40722" capture_lex $P1073 - .const 'Sub' $P1066 = "272_1282016529.10767" + .const 'Sub' $P1066 = "272_1282324002.40722" capture_lex $P1066 - .const 'Sub' $P1059 = "270_1282016529.10767" + .const 'Sub' $P1059 = "270_1282324002.40722" capture_lex $P1059 - .const 'Sub' $P1053 = "268_1282016529.10767" + .const 'Sub' $P1053 = "268_1282324002.40722" capture_lex $P1053 - .const 'Sub' $P1046 = "266_1282016529.10767" + .const 'Sub' $P1046 = "266_1282324002.40722" capture_lex $P1046 - .const 'Sub' $P1039 = "264_1282016529.10767" + .const 'Sub' $P1039 = "264_1282324002.40722" capture_lex $P1039 - .const 'Sub' $P1032 = "262_1282016529.10767" + .const 'Sub' $P1032 = "262_1282324002.40722" capture_lex $P1032 - .const 'Sub' $P1025 = "260_1282016529.10767" + .const 'Sub' $P1025 = "260_1282324002.40722" capture_lex $P1025 - .const 'Sub' $P1018 = "258_1282016529.10767" + .const 'Sub' $P1018 = "258_1282324002.40722" capture_lex $P1018 - .const 'Sub' $P1011 = "256_1282016529.10767" + .const 'Sub' $P1011 = "256_1282324002.40722" capture_lex $P1011 - .const 'Sub' $P1004 = "254_1282016529.10767" + .const 'Sub' $P1004 = "254_1282324002.40722" capture_lex $P1004 - .const 'Sub' $P998 = "252_1282016529.10767" + .const 'Sub' $P998 = "252_1282324002.40722" capture_lex $P998 - .const 'Sub' $P992 = "250_1282016529.10767" + .const 'Sub' $P992 = "250_1282324002.40722" capture_lex $P992 - .const 'Sub' $P987 = "248_1282016529.10767" + .const 'Sub' $P987 = "248_1282324002.40722" capture_lex $P987 - .const 'Sub' $P981 = "246_1282016529.10767" + .const 'Sub' $P981 = "246_1282324002.40722" capture_lex $P981 - .const 'Sub' $P975 = "244_1282016529.10767" + .const 'Sub' $P975 = "244_1282324002.40722" capture_lex $P975 - .const 'Sub' $P970 = "242_1282016529.10767" + .const 'Sub' $P970 = "242_1282324002.40722" capture_lex $P970 - .const 'Sub' $P965 = "240_1282016529.10767" + .const 'Sub' $P965 = "240_1282324002.40722" capture_lex $P965 - .const 'Sub' $P957 = "238_1282016529.10767" + .const 'Sub' $P957 = "238_1282324002.40722" capture_lex $P957 - .const 'Sub' $P948 = "236_1282016529.10767" + .const 'Sub' $P948 = "236_1282324002.40722" capture_lex $P948 - .const 'Sub' $P943 = "234_1282016529.10767" + .const 'Sub' $P943 = "234_1282324002.40722" capture_lex $P943 - .const 'Sub' $P938 = "232_1282016529.10767" + .const 'Sub' $P938 = "232_1282324002.40722" capture_lex $P938 - .const 'Sub' $P933 = "230_1282016529.10767" + .const 'Sub' $P933 = "230_1282324002.40722" capture_lex $P933 - .const 'Sub' $P925 = "228_1282016529.10767" + .const 'Sub' $P925 = "228_1282324002.40722" capture_lex $P925 - .const 'Sub' $P917 = "226_1282016529.10767" + .const 'Sub' $P917 = "226_1282324002.40722" capture_lex $P917 - .const 'Sub' $P912 = "224_1282016529.10767" + .const 'Sub' $P912 = "224_1282324002.40722" capture_lex $P912 - .const 'Sub' $P907 = "222_1282016529.10767" + .const 'Sub' $P907 = "222_1282324002.40722" capture_lex $P907 - .const 'Sub' $P902 = "220_1282016529.10767" + .const 'Sub' $P902 = "220_1282324002.40722" capture_lex $P902 - .const 'Sub' $P896 = "218_1282016529.10767" + .const 'Sub' $P896 = "218_1282324002.40722" capture_lex $P896 - .const 'Sub' $P890 = "216_1282016529.10767" + .const 'Sub' $P890 = "216_1282324002.40722" capture_lex $P890 - .const 'Sub' $P884 = "214_1282016529.10767" + .const 'Sub' $P884 = "214_1282324002.40722" capture_lex $P884 - .const 'Sub' $P878 = "212_1282016529.10767" + .const 'Sub' $P878 = "212_1282324002.40722" capture_lex $P878 - .const 'Sub' $P872 = "210_1282016529.10767" + .const 'Sub' $P872 = "210_1282324002.40722" capture_lex $P872 - .const 'Sub' $P867 = "208_1282016529.10767" + .const 'Sub' $P867 = "208_1282324002.40722" capture_lex $P867 - .const 'Sub' $P862 = "206_1282016529.10767" + .const 'Sub' $P862 = "206_1282324002.40722" capture_lex $P862 - .const 'Sub' $P850 = "202_1282016529.10767" + .const 'Sub' $P850 = "202_1282324002.40722" capture_lex $P850 - .const 'Sub' $P842 = "200_1282016529.10767" + .const 'Sub' $P842 = "200_1282324002.40722" capture_lex $P842 - .const 'Sub' $P836 = "198_1282016529.10767" + .const 'Sub' $P836 = "198_1282324002.40722" capture_lex $P836 - .const 'Sub' $P829 = "196_1282016529.10767" + .const 'Sub' $P829 = "196_1282324002.40722" capture_lex $P829 - .const 'Sub' $P823 = "194_1282016529.10767" + .const 'Sub' $P823 = "194_1282324002.40722" capture_lex $P823 - .const 'Sub' $P815 = "192_1282016529.10767" + .const 'Sub' $P815 = "192_1282324002.40722" capture_lex $P815 - .const 'Sub' $P807 = "190_1282016529.10767" + .const 'Sub' $P807 = "190_1282324002.40722" capture_lex $P807 - .const 'Sub' $P801 = "188_1282016529.10767" + .const 'Sub' $P801 = "188_1282324002.40722" capture_lex $P801 - .const 'Sub' $P795 = "186_1282016529.10767" + .const 'Sub' $P795 = "186_1282324002.40722" capture_lex $P795 - .const 'Sub' $P781 = "182_1282016529.10767" + .const 'Sub' $P781 = "182_1282324002.40722" capture_lex $P781 - .const 'Sub' $P744 = "180_1282016529.10767" + .const 'Sub' $P744 = "180_1282324002.40722" capture_lex $P744 - .const 'Sub' $P735 = "178_1282016529.10767" + .const 'Sub' $P735 = "178_1282324002.40722" capture_lex $P735 - .const 'Sub' $P729 = "176_1282016529.10767" + .const 'Sub' $P729 = "176_1282324002.40722" capture_lex $P729 - .const 'Sub' $P719 = "174_1282016529.10767" + .const 'Sub' $P719 = "174_1282324002.40722" capture_lex $P719 - .const 'Sub' $P706 = "172_1282016529.10767" + .const 'Sub' $P706 = "172_1282324002.40722" capture_lex $P706 - .const 'Sub' $P699 = "170_1282016529.10767" + .const 'Sub' $P699 = "170_1282324002.40722" capture_lex $P699 - .const 'Sub' $P691 = "168_1282016529.10767" + .const 'Sub' $P691 = "168_1282324002.40722" capture_lex $P691 - .const 'Sub' $P681 = "166_1282016529.10767" + .const 'Sub' $P681 = "166_1282324002.40722" capture_lex $P681 - .const 'Sub' $P657 = "162_1282016529.10767" + .const 'Sub' $P657 = "162_1282324002.40722" capture_lex $P657 - .const 'Sub' $P634 = "160_1282016529.10767" + .const 'Sub' $P634 = "160_1282324002.40722" capture_lex $P634 - .const 'Sub' $P627 = "158_1282016529.10767" + .const 'Sub' $P627 = "158_1282324002.40722" capture_lex $P627 - .const 'Sub' $P620 = "156_1282016529.10767" + .const 'Sub' $P620 = "156_1282324002.40722" capture_lex $P620 - .const 'Sub' $P610 = "152_1282016529.10767" + .const 'Sub' $P610 = "152_1282324002.40722" capture_lex $P610 - .const 'Sub' $P602 = "150_1282016529.10767" + .const 'Sub' $P602 = "150_1282324002.40722" capture_lex $P602 - .const 'Sub' $P596 = "148_1282016529.10767" + .const 'Sub' $P596 = "148_1282324002.40722" capture_lex $P596 - .const 'Sub' $P583 = "146_1282016529.10767" + .const 'Sub' $P583 = "146_1282324002.40722" capture_lex $P583 - .const 'Sub' $P576 = "144_1282016529.10767" + .const 'Sub' $P576 = "144_1282324002.40722" capture_lex $P576 - .const 'Sub' $P569 = "142_1282016529.10767" + .const 'Sub' $P569 = "142_1282324002.40722" capture_lex $P569 - .const 'Sub' $P562 = "140_1282016529.10767" + .const 'Sub' $P562 = "140_1282324002.40722" capture_lex $P562 - .const 'Sub' $P535 = "136_1282016529.10767" + .const 'Sub' $P535 = "136_1282324002.40722" capture_lex $P535 - .const 'Sub' $P526 = "134_1282016529.10767" + .const 'Sub' $P526 = "134_1282324002.40722" capture_lex $P526 - .const 'Sub' $P519 = "132_1282016529.10767" + .const 'Sub' $P519 = "132_1282324002.40722" capture_lex $P519 - .const 'Sub' $P510 = "128_1282016529.10767" + .const 'Sub' $P510 = "128_1282324002.40722" capture_lex $P510 - .const 'Sub' $P505 = "126_1282016529.10767" + .const 'Sub' $P505 = "126_1282324002.40722" capture_lex $P505 - .const 'Sub' $P493 = "124_1282016529.10767" + .const 'Sub' $P493 = "124_1282324002.40722" capture_lex $P493 - .const 'Sub' $P481 = "122_1282016529.10767" + .const 'Sub' $P481 = "122_1282324002.40722" capture_lex $P481 - .const 'Sub' $P474 = "120_1282016529.10767" + .const 'Sub' $P474 = "120_1282324002.40722" capture_lex $P474 - .const 'Sub' $P469 = "118_1282016529.10767" + .const 'Sub' $P469 = "118_1282324002.40722" capture_lex $P469 - .const 'Sub' $P463 = "116_1282016529.10767" + .const 'Sub' $P463 = "116_1282324002.40722" capture_lex $P463 - .const 'Sub' $P457 = "114_1282016529.10767" + .const 'Sub' $P457 = "114_1282324002.40722" capture_lex $P457 - .const 'Sub' $P447 = "111_1282016529.10767" + .const 'Sub' $P447 = "111_1282324002.40722" capture_lex $P447 - .const 'Sub' $P441 = "109_1282016529.10767" + .const 'Sub' $P441 = "109_1282324002.40722" capture_lex $P441 - .const 'Sub' $P435 = "107_1282016529.10767" + .const 'Sub' $P435 = "107_1282324002.40722" capture_lex $P435 - .const 'Sub' $P429 = "105_1282016529.10767" + .const 'Sub' $P429 = "105_1282324002.40722" capture_lex $P429 - .const 'Sub' $P423 = "103_1282016529.10767" + .const 'Sub' $P423 = "103_1282324002.40722" capture_lex $P423 - .const 'Sub' $P417 = "101_1282016529.10767" + .const 'Sub' $P417 = "101_1282324002.40722" capture_lex $P417 - .const 'Sub' $P411 = "99_1282016529.10767" + .const 'Sub' $P411 = "99_1282324002.40722" capture_lex $P411 - .const 'Sub' $P402 = "97_1282016529.10767" + .const 'Sub' $P402 = "97_1282324002.40722" capture_lex $P402 - .const 'Sub' $P393 = "95_1282016529.10767" + .const 'Sub' $P393 = "95_1282324002.40722" capture_lex $P393 - .const 'Sub' $P384 = "93_1282016529.10767" + .const 'Sub' $P384 = "93_1282324002.40722" capture_lex $P384 - .const 'Sub' $P371 = "89_1282016529.10767" + .const 'Sub' $P371 = "89_1282324002.40722" capture_lex $P371 - .const 'Sub' $P362 = "87_1282016529.10767" + .const 'Sub' $P362 = "87_1282324002.40722" capture_lex $P362 - .const 'Sub' $P352 = "83_1282016529.10767" + .const 'Sub' $P352 = "83_1282324002.40722" capture_lex $P352 - .const 'Sub' $P345 = "81_1282016529.10767" + .const 'Sub' $P345 = "81_1282324002.40722" capture_lex $P345 - .const 'Sub' $P338 = "79_1282016529.10767" + .const 'Sub' $P338 = "79_1282324002.40722" capture_lex $P338 - .const 'Sub' $P326 = "75_1282016529.10767" + .const 'Sub' $P326 = "75_1282324002.40722" capture_lex $P326 - .const 'Sub' $P318 = "73_1282016529.10767" + .const 'Sub' $P318 = "73_1282324002.40722" capture_lex $P318 - .const 'Sub' $P310 = "71_1282016529.10767" + .const 'Sub' $P310 = "71_1282324002.40722" capture_lex $P310 - .const 'Sub' $P290 = "69_1282016529.10767" + .const 'Sub' $P290 = "69_1282324002.40722" capture_lex $P290 - .const 'Sub' $P281 = "67_1282016529.10767" + .const 'Sub' $P281 = "67_1282324002.40722" capture_lex $P281 - .const 'Sub' $P263 = "64_1282016529.10767" + .const 'Sub' $P263 = "64_1282324002.40722" capture_lex $P263 - .const 'Sub' $P245 = "62_1282016529.10767" + .const 'Sub' $P245 = "62_1282324002.40722" capture_lex $P245 - .const 'Sub' $P236 = "58_1282016529.10767" + .const 'Sub' $P236 = "58_1282324002.40722" capture_lex $P236 - .const 'Sub' $P231 = "56_1282016529.10767" + .const 'Sub' $P231 = "56_1282324002.40722" capture_lex $P231 - .const 'Sub' $P222 = "52_1282016529.10767" + .const 'Sub' $P222 = "52_1282324002.40722" capture_lex $P222 - .const 'Sub' $P217 = "50_1282016529.10767" + .const 'Sub' $P217 = "50_1282324002.40722" capture_lex $P217 - .const 'Sub' $P212 = "48_1282016529.10767" + .const 'Sub' $P212 = "48_1282324002.40722" capture_lex $P212 - .const 'Sub' $P203 = "46_1282016529.10767" + .const 'Sub' $P203 = "46_1282324002.40722" capture_lex $P203 - .const 'Sub' $P196 = "44_1282016529.10767" + .const 'Sub' $P196 = "44_1282324002.40722" capture_lex $P196 - .const 'Sub' $P190 = "42_1282016529.10767" + .const 'Sub' $P190 = "42_1282324002.40722" capture_lex $P190 - .const 'Sub' $P182 = "40_1282016529.10767" + .const 'Sub' $P182 = "40_1282324002.40722" capture_lex $P182 - .const 'Sub' $P176 = "38_1282016529.10767" + .const 'Sub' $P176 = "38_1282324002.40722" capture_lex $P176 - .const 'Sub' $P170 = "36_1282016529.10767" + .const 'Sub' $P170 = "36_1282324002.40722" capture_lex $P170 - .const 'Sub' $P155 = "33_1282016529.10767" + .const 'Sub' $P155 = "33_1282324002.40722" capture_lex $P155 - .const 'Sub' $P141 = "31_1282016529.10767" + .const 'Sub' $P141 = "31_1282324002.40722" capture_lex $P141 - .const 'Sub' $P134 = "29_1282016529.10767" + .const 'Sub' $P134 = "29_1282324002.40722" capture_lex $P134 - .const 'Sub' $P95 = "26_1282016529.10767" + .const 'Sub' $P95 = "26_1282324002.40722" capture_lex $P95 - .const 'Sub' $P80 = "23_1282016529.10767" + .const 'Sub' $P80 = "23_1282324002.40722" capture_lex $P80 - .const 'Sub' $P69 = "21_1282016529.10767" + .const 'Sub' $P69 = "21_1282324002.40722" capture_lex $P69 - .const 'Sub' $P57 = "19_1282016529.10767" + .const 'Sub' $P57 = "19_1282324002.40722" capture_lex $P57 - .const 'Sub' $P49 = "17_1282016529.10767" + .const 'Sub' $P49 = "17_1282324002.40722" capture_lex $P49 - .const 'Sub' $P42 = "15_1282016529.10767" + .const 'Sub' $P42 = "15_1282324002.40722" capture_lex $P42 - .const 'Sub' $P35 = "13_1282016529.10767" + .const 'Sub' $P35 = "13_1282324002.40722" capture_lex $P35 - .const 'Sub' $P15 = "12_1282016529.10767" + .const 'Sub' $P15 = "12_1282324002.40722" capture_lex $P15 $P0 = find_dynamic_lex "$*CTXSAVE" if null $P0 goto ctxsave_done @@ -377,13 +377,13 @@ NQP::Compiler - NQP compiler $P1402 = $P1340() .annotate 'line', 4 .return ($P1402) - .const 'Sub' $P1404 = "370_1282016529.10767" + .const 'Sub' $P1404 = "370_1282324002.40722" .return ($P1404) .end .namespace ["NQP";"Grammar"] -.sub "" :load :init :subid("post373") :outer("11_1282016529.10767") +.sub "" :load :init :subid("post373") :outer("11_1282324002.40722") .annotate 'line', 4 get_hll_global $P14, ["NQP";"Grammar"], "_block13" .local pmc block @@ -441,7 +441,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] .include "except_types.pasm" -.sub "TOP" :subid("12_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "TOP" :subid("12_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 new $P17, 'ExceptionHandler' set_addr $P17, control_16 @@ -531,7 +531,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "identifier" :subid("13_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "identifier" :subid("13_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx36_tgt .local int rx36_pos @@ -554,7 +554,7 @@ NQP::Compiler - NQP compiler rx36_start: eq $I10, 1, rx36_restart if_null rx36_debug, debug_384 - rx36_cur."!cursor_debug"("START ", "identifier") + rx36_cur."!cursor_debug"("START", "identifier") debug_384: $I10 = self.'from'() ne $I10, -1, rxscan40_done @@ -599,13 +599,13 @@ NQP::Compiler - NQP compiler # rx pass rx36_cur."!cursor_pass"(rx36_pos, "identifier") if_null rx36_debug, debug_385 - rx36_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx36_pos) + rx36_cur."!cursor_debug"("PASS", "identifier", " at pos=", rx36_pos) debug_385: .return (rx36_cur) rx36_restart: .annotate 'line', 4 if_null rx36_debug, debug_386 - rx36_cur."!cursor_debug"("NEXT ", "identifier") + rx36_cur."!cursor_debug"("NEXT", "identifier") debug_386: rx36_fail: (rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0) @@ -615,7 +615,7 @@ NQP::Compiler - NQP compiler rx36_done: rx36_cur."!cursor_fail"() if_null rx36_debug, debug_387 - rx36_cur."!cursor_debug"("FAIL ", "identifier") + rx36_cur."!cursor_debug"("FAIL", "identifier") debug_387: .return (rx36_cur) .return () @@ -623,7 +623,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__identifier" :subid("14_1282016529.10767") :method +.sub "!PREFIX__identifier" :subid("14_1282324002.40722") :method .annotate 'line', 4 $P38 = self."!PREFIX__!subrule"("ident", "") new $P39, "ResizablePMCArray" @@ -633,7 +633,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "name" :subid("15_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "name" :subid("15_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx43_tgt .local int rx43_pos @@ -657,7 +657,7 @@ NQP::Compiler - NQP compiler rx43_start: eq $I10, 1, rx43_restart if_null rx43_debug, debug_388 - rx43_cur."!cursor_debug"("START ", "name") + rx43_cur."!cursor_debug"("START", "name") debug_388: $I10 = self.'from'() ne $I10, -1, rxscan46_done @@ -705,13 +705,13 @@ NQP::Compiler - NQP compiler # rx pass rx43_cur."!cursor_pass"(rx43_pos, "name") if_null rx43_debug, debug_389 - rx43_cur."!cursor_debug"("PASS ", "name", " at pos=", rx43_pos) + rx43_cur."!cursor_debug"("PASS", "name", " at pos=", rx43_pos) debug_389: .return (rx43_cur) rx43_restart: .annotate 'line', 4 if_null rx43_debug, debug_390 - rx43_cur."!cursor_debug"("NEXT ", "name") + rx43_cur."!cursor_debug"("NEXT", "name") debug_390: rx43_fail: (rx43_rep, rx43_pos, $I10, $P10) = rx43_cur."!mark_fail"(0) @@ -721,7 +721,7 @@ NQP::Compiler - NQP compiler rx43_done: rx43_cur."!cursor_fail"() if_null rx43_debug, debug_391 - rx43_cur."!cursor_debug"("FAIL ", "name") + rx43_cur."!cursor_debug"("FAIL", "name") debug_391: .return (rx43_cur) .return () @@ -729,7 +729,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__name" :subid("16_1282016529.10767") :method +.sub "!PREFIX__name" :subid("16_1282324002.40722") :method .annotate 'line', 4 new $P45, "ResizablePMCArray" push $P45, "" @@ -738,7 +738,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "deflongname" :subid("17_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "deflongname" :subid("17_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx50_tgt .local int rx50_pos @@ -762,7 +762,7 @@ NQP::Compiler - NQP compiler rx50_start: eq $I10, 1, rx50_restart if_null rx50_debug, debug_392 - rx50_cur."!cursor_debug"("START ", "deflongname") + rx50_cur."!cursor_debug"("START", "deflongname") debug_392: $I10 = self.'from'() ne $I10, -1, rxscan54_done @@ -808,13 +808,13 @@ NQP::Compiler - NQP compiler # rx pass rx50_cur."!cursor_pass"(rx50_pos, "deflongname") if_null rx50_debug, debug_393 - rx50_cur."!cursor_debug"("PASS ", "deflongname", " at pos=", rx50_pos) + rx50_cur."!cursor_debug"("PASS", "deflongname", " at pos=", rx50_pos) debug_393: .return (rx50_cur) rx50_restart: .annotate 'line', 4 if_null rx50_debug, debug_394 - rx50_cur."!cursor_debug"("NEXT ", "deflongname") + rx50_cur."!cursor_debug"("NEXT", "deflongname") debug_394: rx50_fail: (rx50_rep, rx50_pos, $I10, $P10) = rx50_cur."!mark_fail"(0) @@ -824,7 +824,7 @@ NQP::Compiler - NQP compiler rx50_done: rx50_cur."!cursor_fail"() if_null rx50_debug, debug_395 - rx50_cur."!cursor_debug"("FAIL ", "deflongname") + rx50_cur."!cursor_debug"("FAIL", "deflongname") debug_395: .return (rx50_cur) .return () @@ -832,7 +832,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__deflongname" :subid("18_1282016529.10767") :method +.sub "!PREFIX__deflongname" :subid("18_1282324002.40722") :method .annotate 'line', 4 $P52 = self."!PREFIX__!subrule"("identifier", "") new $P53, "ResizablePMCArray" @@ -842,7 +842,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "ENDSTMT" :subid("19_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "ENDSTMT" :subid("19_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx58_tgt .local int rx58_pos @@ -865,7 +865,7 @@ NQP::Compiler - NQP compiler rx58_start: eq $I10, 1, rx58_restart if_null rx58_debug, debug_396 - rx58_cur."!cursor_debug"("START ", "ENDSTMT") + rx58_cur."!cursor_debug"("START", "ENDSTMT") debug_396: $I10 = self.'from'() ne $I10, -1, rxscan61_done @@ -889,23 +889,21 @@ NQP::Compiler - NQP compiler set_addr $I10, alt63_1 rx58_cur."!mark_push"(0, rx58_pos, $I10) .annotate 'line', 27 - # rx rxquantr64 ** 0..* - set_addr $I10, rxquantr64_done - rx58_cur."!mark_push"(0, rx58_pos, $I10) - rxquantr64_loop: - # rx enumcharlist negate=0 - ge rx58_pos, rx58_eos, rx58_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx58_pos, rx58_off + set rx58_rep, 0 + sub $I12, rx58_eos, rx58_pos + rxenumcharlistq64_loop: + le $I12, 0, rxenumcharlistq64_done substr $S10, rx58_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx58_fail - inc rx58_pos - set_addr $I10, rxquantr64_done - (rx58_rep) = rx58_cur."!mark_commit"($I10) - set_addr $I10, rxquantr64_done - rx58_cur."!mark_push"(rx58_rep, rx58_pos, $I10) - goto rxquantr64_loop - rxquantr64_done: + lt $I11, 0, rxenumcharlistq64_done + inc rx58_rep + inc $I10 + dec $I12 + goto rxenumcharlistq64_loop + rxenumcharlistq64_done: + add rx58_pos, rx58_pos, rx58_rep # rxanchor eol sub $I10, rx58_pos, rx58_off is_cclass $I11, 4096, rx58_tgt, $I10 @@ -975,13 +973,13 @@ NQP::Compiler - NQP compiler # rx pass rx58_cur."!cursor_pass"(rx58_pos, "ENDSTMT") if_null rx58_debug, debug_397 - rx58_cur."!cursor_debug"("PASS ", "ENDSTMT", " at pos=", rx58_pos) + rx58_cur."!cursor_debug"("PASS", "ENDSTMT", " at pos=", rx58_pos) debug_397: .return (rx58_cur) rx58_restart: .annotate 'line', 4 if_null rx58_debug, debug_398 - rx58_cur."!cursor_debug"("NEXT ", "ENDSTMT") + rx58_cur."!cursor_debug"("NEXT", "ENDSTMT") debug_398: rx58_fail: (rx58_rep, rx58_pos, $I10, $P10) = rx58_cur."!mark_fail"(0) @@ -991,7 +989,7 @@ NQP::Compiler - NQP compiler rx58_done: rx58_cur."!cursor_fail"() if_null rx58_debug, debug_399 - rx58_cur."!cursor_debug"("FAIL ", "ENDSTMT") + rx58_cur."!cursor_debug"("FAIL", "ENDSTMT") debug_399: .return (rx58_cur) .return () @@ -999,7 +997,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__ENDSTMT" :subid("20_1282016529.10767") :method +.sub "!PREFIX__ENDSTMT" :subid("20_1282324002.40722") :method .annotate 'line', 4 new $P60, "ResizablePMCArray" push $P60, "" @@ -1008,7 +1006,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "ws" :subid("21_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "ws" :subid("21_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx70_tgt .local int rx70_pos @@ -1031,7 +1029,7 @@ NQP::Compiler - NQP compiler rx70_start: eq $I10, 1, rx70_restart if_null rx70_debug, debug_400 - rx70_cur."!cursor_debug"("START ", "ws") + rx70_cur."!cursor_debug"("START", "ws") debug_400: $I10 = self.'from'() ne $I10, -1, rxscan73_done @@ -1070,23 +1068,22 @@ NQP::Compiler - NQP compiler .annotate 'line', 35 set_addr $I10, alt76_1 rx70_cur."!mark_push"(0, rx70_pos, $I10) - # rx rxquantr77 ** 1..* - set_addr $I10, rxquantr77_done - rx70_cur."!mark_push"(0, -1, $I10) - rxquantr77_loop: - # rx enumcharlist negate=0 - ge rx70_pos, rx70_eos, rx70_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx70_pos, rx70_off + set rx70_rep, 0 + sub $I12, rx70_eos, rx70_pos + rxenumcharlistq77_loop: + le $I12, 0, rxenumcharlistq77_done substr $S10, rx70_tgt, $I10, 1 index $I11, unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", $S10 - lt $I11, 0, rx70_fail - inc rx70_pos - set_addr $I10, rxquantr77_done - (rx70_rep) = rx70_cur."!mark_commit"($I10) - set_addr $I10, rxquantr77_done - rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10) - goto rxquantr77_loop - rxquantr77_done: + lt $I11, 0, rxenumcharlistq77_done + inc rx70_rep + inc $I10 + dec $I12 + goto rxenumcharlistq77_loop + rxenumcharlistq77_done: + lt rx70_rep, 1, rx70_fail + add rx70_pos, rx70_pos, rx70_rep goto alt76_end alt76_1: set_addr $I10, alt76_2 @@ -1124,23 +1121,22 @@ NQP::Compiler - NQP compiler goto alt76_end alt76_3: .annotate 'line', 38 - # rx rxquantr79 ** 1..* - set_addr $I10, rxquantr79_done - rx70_cur."!mark_push"(0, -1, $I10) - rxquantr79_loop: - # rx enumcharlist negate=0 - ge rx70_pos, rx70_eos, rx70_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx70_pos, rx70_off + set rx70_rep, 0 + sub $I12, rx70_eos, rx70_pos + rxenumcharlistq79_loop: + le $I12, 0, rxenumcharlistq79_done substr $S10, rx70_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx70_fail - inc rx70_pos - set_addr $I10, rxquantr79_done - (rx70_rep) = rx70_cur."!mark_commit"($I10) - set_addr $I10, rxquantr79_done - rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10) - goto rxquantr79_loop - rxquantr79_done: + lt $I11, 0, rxenumcharlistq79_done + inc rx70_rep + inc $I10 + dec $I12 + goto rxenumcharlistq79_loop + rxenumcharlistq79_done: + lt rx70_rep, 1, rx70_fail + add rx70_pos, rx70_pos, rx70_rep alt76_end: .annotate 'line', 39 set_addr $I10, rxquantr75_done @@ -1159,13 +1155,13 @@ NQP::Compiler - NQP compiler # rx pass rx70_cur."!cursor_pass"(rx70_pos, "ws") if_null rx70_debug, debug_401 - rx70_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx70_pos) + rx70_cur."!cursor_debug"("PASS", "ws", " at pos=", rx70_pos) debug_401: .return (rx70_cur) rx70_restart: .annotate 'line', 4 if_null rx70_debug, debug_402 - rx70_cur."!cursor_debug"("NEXT ", "ws") + rx70_cur."!cursor_debug"("NEXT", "ws") debug_402: rx70_fail: (rx70_rep, rx70_pos, $I10, $P10) = rx70_cur."!mark_fail"(0) @@ -1175,7 +1171,7 @@ NQP::Compiler - NQP compiler rx70_done: rx70_cur."!cursor_fail"() if_null rx70_debug, debug_403 - rx70_cur."!cursor_debug"("FAIL ", "ws") + rx70_cur."!cursor_debug"("FAIL", "ws") debug_403: .return (rx70_cur) .return () @@ -1183,7 +1179,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__ws" :subid("22_1282016529.10767") :method +.sub "!PREFIX__ws" :subid("22_1282324002.40722") :method .annotate 'line', 4 new $P72, "ResizablePMCArray" push $P72, "" @@ -1193,9 +1189,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "unv" :subid("23_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "unv" :subid("23_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 - .const 'Sub' $P88 = "25_1282016529.10767" + .const 'Sub' $P88 = "25_1282324002.40722" capture_lex $P88 .local string rx81_tgt .local int rx81_pos @@ -1218,7 +1214,7 @@ NQP::Compiler - NQP compiler rx81_start: eq $I10, 1, rx81_restart if_null rx81_debug, debug_404 - rx81_cur."!cursor_debug"("START ", "unv") + rx81_cur."!cursor_debug"("START", "unv") debug_404: $I10 = self.'from'() ne $I10, -1, rxscan84_done @@ -1247,7 +1243,7 @@ NQP::Compiler - NQP compiler rxanchor86_done: # rx subrule "before" subtype=zerowidth negate= rx81_cur."!cursor_pos"(rx81_pos) - .const 'Sub' $P88 = "25_1282016529.10767" + .const 'Sub' $P88 = "25_1282324002.40722" capture_lex $P88 $P10 = rx81_cur."before"($P88) unless $P10, rx81_fail @@ -1261,23 +1257,21 @@ NQP::Compiler - NQP compiler set_addr $I10, alt85_2 rx81_cur."!mark_push"(0, rx81_pos, $I10) .annotate 'line', 47 - # rx rxquantr93 ** 0..* - set_addr $I10, rxquantr93_done - rx81_cur."!mark_push"(0, rx81_pos, $I10) - rxquantr93_loop: - # rx enumcharlist negate=0 - ge rx81_pos, rx81_eos, rx81_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx81_pos, rx81_off + set rx81_rep, 0 + sub $I12, rx81_eos, rx81_pos + rxenumcharlistq93_loop: + le $I12, 0, rxenumcharlistq93_done substr $S10, rx81_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx81_fail - inc rx81_pos - set_addr $I10, rxquantr93_done - (rx81_rep) = rx81_cur."!mark_commit"($I10) - set_addr $I10, rxquantr93_done - rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10) - goto rxquantr93_loop - rxquantr93_done: + lt $I11, 0, rxenumcharlistq93_done + inc rx81_rep + inc $I10 + dec $I12 + goto rxenumcharlistq93_loop + rxenumcharlistq93_done: + add rx81_pos, rx81_pos, rx81_rep # rx literal "#" add $I11, rx81_pos, 1 gt $I11, rx81_eos, rx81_fail @@ -1292,35 +1286,34 @@ NQP::Compiler - NQP compiler goto alt85_end alt85_2: .annotate 'line', 48 - # rx rxquantr94 ** 1..* - set_addr $I10, rxquantr94_done - rx81_cur."!mark_push"(0, -1, $I10) - rxquantr94_loop: - # rx enumcharlist negate=0 - ge rx81_pos, rx81_eos, rx81_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx81_pos, rx81_off + set rx81_rep, 0 + sub $I12, rx81_eos, rx81_pos + rxenumcharlistq94_loop: + le $I12, 0, rxenumcharlistq94_done substr $S10, rx81_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx81_fail - inc rx81_pos - set_addr $I10, rxquantr94_done - (rx81_rep) = rx81_cur."!mark_commit"($I10) - set_addr $I10, rxquantr94_done - rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10) - goto rxquantr94_loop - rxquantr94_done: + lt $I11, 0, rxenumcharlistq94_done + inc rx81_rep + inc $I10 + dec $I12 + goto rxenumcharlistq94_loop + rxenumcharlistq94_done: + lt rx81_rep, 1, rx81_fail + add rx81_pos, rx81_pos, rx81_rep alt85_end: .annotate 'line', 43 # rx pass rx81_cur."!cursor_pass"(rx81_pos, "unv") if_null rx81_debug, debug_409 - rx81_cur."!cursor_debug"("PASS ", "unv", " at pos=", rx81_pos) + rx81_cur."!cursor_debug"("PASS", "unv", " at pos=", rx81_pos) debug_409: .return (rx81_cur) rx81_restart: .annotate 'line', 4 if_null rx81_debug, debug_410 - rx81_cur."!cursor_debug"("NEXT ", "unv") + rx81_cur."!cursor_debug"("NEXT", "unv") debug_410: rx81_fail: (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0) @@ -1330,7 +1323,7 @@ NQP::Compiler - NQP compiler rx81_done: rx81_cur."!cursor_fail"() if_null rx81_debug, debug_411 - rx81_cur."!cursor_debug"("FAIL ", "unv") + rx81_cur."!cursor_debug"("FAIL", "unv") debug_411: .return (rx81_cur) .return () @@ -1338,7 +1331,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__unv" :subid("24_1282016529.10767") :method +.sub "!PREFIX__unv" :subid("24_1282324002.40722") :method .annotate 'line', 4 new $P83, "ResizablePMCArray" push $P83, "" @@ -1349,7 +1342,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block87" :anon :subid("25_1282016529.10767") :method :outer("23_1282016529.10767") +.sub "_block87" :anon :subid("25_1282324002.40722") :method :outer("23_1282324002.40722") .annotate 'line', 46 .local string rx89_tgt .local int rx89_pos @@ -1372,7 +1365,7 @@ NQP::Compiler - NQP compiler rx89_start: eq $I10, 1, rx89_restart if_null rx89_debug, debug_405 - rx89_cur."!cursor_debug"("START ", "") + rx89_cur."!cursor_debug"("START", "") debug_405: $I10 = self.'from'() ne $I10, -1, rxscan90_done @@ -1386,23 +1379,21 @@ NQP::Compiler - NQP compiler set_addr $I10, rxscan90_loop rx89_cur."!mark_push"(0, rx89_pos, $I10) rxscan90_done: - # rx rxquantr91 ** 0..* - set_addr $I10, rxquantr91_done - rx89_cur."!mark_push"(0, rx89_pos, $I10) - rxquantr91_loop: - # rx enumcharlist negate=0 - ge rx89_pos, rx89_eos, rx89_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx89_pos, rx89_off + set rx89_rep, 0 + sub $I12, rx89_eos, rx89_pos + rxenumcharlistq91_loop: + le $I12, 0, rxenumcharlistq91_done substr $S10, rx89_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx89_fail - inc rx89_pos - set_addr $I10, rxquantr91_done - (rx89_rep) = rx89_cur."!mark_commit"($I10) - set_addr $I10, rxquantr91_done - rx89_cur."!mark_push"(rx89_rep, rx89_pos, $I10) - goto rxquantr91_loop - rxquantr91_done: + lt $I11, 0, rxenumcharlistq91_done + inc rx89_rep + inc $I10 + dec $I12 + goto rxenumcharlistq91_loop + rxenumcharlistq91_done: + add rx89_pos, rx89_pos, rx89_rep # rx literal "=" add $I11, rx89_pos, 1 gt $I11, rx89_eos, rx89_fail @@ -1432,12 +1423,12 @@ NQP::Compiler - NQP compiler # rx pass rx89_cur."!cursor_pass"(rx89_pos, "") if_null rx89_debug, debug_406 - rx89_cur."!cursor_debug"("PASS ", "", " at pos=", rx89_pos) + rx89_cur."!cursor_debug"("PASS", "", " at pos=", rx89_pos) debug_406: .return (rx89_cur) rx89_restart: if_null rx89_debug, debug_407 - rx89_cur."!cursor_debug"("NEXT ", "") + rx89_cur."!cursor_debug"("NEXT", "") debug_407: rx89_fail: (rx89_rep, rx89_pos, $I10, $P10) = rx89_cur."!mark_fail"(0) @@ -1447,7 +1438,7 @@ NQP::Compiler - NQP compiler rx89_done: rx89_cur."!cursor_fail"() if_null rx89_debug, debug_408 - rx89_cur."!cursor_debug"("FAIL ", "") + rx89_cur."!cursor_debug"("FAIL", "") debug_408: .return (rx89_cur) .return () @@ -1455,9 +1446,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "pod_comment" :subid("26_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "pod_comment" :subid("26_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 - .const 'Sub' $P127 = "28_1282016529.10767" + .const 'Sub' $P127 = "28_1282324002.40722" capture_lex $P127 .local string rx96_tgt .local int rx96_pos @@ -1480,7 +1471,7 @@ NQP::Compiler - NQP compiler rx96_start: eq $I10, 1, rx96_restart if_null rx96_debug, debug_412 - rx96_cur."!cursor_debug"("START ", "pod_comment") + rx96_cur."!cursor_debug"("START", "pod_comment") debug_412: $I10 = self.'from'() ne $I10, -1, rxscan99_done @@ -1503,23 +1494,21 @@ NQP::Compiler - NQP compiler is_cclass $I11, 4096, rx96_tgt, $I10 unless $I11, rx96_fail rxanchor100_done: - # rx rxquantr101 ** 0..* - set_addr $I10, rxquantr101_done - rx96_cur."!mark_push"(0, rx96_pos, $I10) - rxquantr101_loop: - # rx enumcharlist negate=0 - ge rx96_pos, rx96_eos, rx96_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx96_pos, rx96_off + set rx96_rep, 0 + sub $I12, rx96_eos, rx96_pos + rxenumcharlistq101_loop: + le $I12, 0, rxenumcharlistq101_done substr $S10, rx96_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx96_fail - inc rx96_pos - set_addr $I10, rxquantr101_done - (rx96_rep) = rx96_cur."!mark_commit"($I10) - set_addr $I10, rxquantr101_done - rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10) - goto rxquantr101_loop - rxquantr101_done: + lt $I11, 0, rxenumcharlistq101_done + inc rx96_rep + inc $I10 + dec $I12 + goto rxenumcharlistq101_loop + rxenumcharlistq101_done: + add rx96_pos, rx96_pos, rx96_rep # rx literal "=" add $I11, rx96_pos, 1 gt $I11, rx96_eos, rx96_fail @@ -1539,23 +1528,22 @@ NQP::Compiler - NQP compiler substr $S10, rx96_tgt, $I11, 5 ne $S10, "begin", rx96_fail add rx96_pos, 5 - # rx rxquantr103 ** 1..* - set_addr $I10, rxquantr103_done - rx96_cur."!mark_push"(0, -1, $I10) - rxquantr103_loop: - # rx enumcharlist negate=0 - ge rx96_pos, rx96_eos, rx96_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx96_pos, rx96_off + set rx96_rep, 0 + sub $I12, rx96_eos, rx96_pos + rxenumcharlistq103_loop: + le $I12, 0, rxenumcharlistq103_done substr $S10, rx96_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx96_fail - inc rx96_pos - set_addr $I10, rxquantr103_done - (rx96_rep) = rx96_cur."!mark_commit"($I10) - set_addr $I10, rxquantr103_done - rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10) - goto rxquantr103_loop - rxquantr103_done: + lt $I11, 0, rxenumcharlistq103_done + inc rx96_rep + inc $I10 + dec $I12 + goto rxenumcharlistq103_loop + rxenumcharlistq103_done: + lt rx96_rep, 1, rx96_fail + add rx96_pos, rx96_pos, rx96_rep # rx literal "END" add $I11, rx96_pos, 3 gt $I11, rx96_eos, rx96_fail @@ -1595,23 +1583,21 @@ NQP::Compiler - NQP compiler iseq $I11, $S10, "\r\n" add rx96_pos, $I11 inc rx96_pos - # rx rxquantr107 ** 0..* - set_addr $I10, rxquantr107_done - rx96_cur."!mark_push"(0, rx96_pos, $I10) - rxquantr107_loop: - # rx enumcharlist negate=0 - ge rx96_pos, rx96_eos, rx96_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx96_pos, rx96_off + set rx96_rep, 0 + sub $I12, rx96_eos, rx96_pos + rxenumcharlistq107_loop: + le $I12, 0, rxenumcharlistq107_done substr $S10, rx96_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx96_fail - inc rx96_pos - set_addr $I10, rxquantr107_done - (rx96_rep) = rx96_cur."!mark_commit"($I10) - set_addr $I10, rxquantr107_done - rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10) - goto rxquantr107_loop - rxquantr107_done: + lt $I11, 0, rxenumcharlistq107_done + inc rx96_rep + inc $I10 + dec $I12 + goto rxenumcharlistq107_loop + rxenumcharlistq107_done: + add rx96_pos, rx96_pos, rx96_rep # rx literal "=end" add $I11, rx96_pos, 4 gt $I11, rx96_eos, rx96_fail @@ -1619,23 +1605,22 @@ NQP::Compiler - NQP compiler substr $S10, rx96_tgt, $I11, 4 ne $S10, "=end", rx96_fail add rx96_pos, 4 - # rx rxquantr108 ** 1..* - set_addr $I10, rxquantr108_done - rx96_cur."!mark_push"(0, -1, $I10) - rxquantr108_loop: - # rx enumcharlist negate=0 - ge rx96_pos, rx96_eos, rx96_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx96_pos, rx96_off + set rx96_rep, 0 + sub $I12, rx96_eos, rx96_pos + rxenumcharlistq108_loop: + le $I12, 0, rxenumcharlistq108_done substr $S10, rx96_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx96_fail - inc rx96_pos - set_addr $I10, rxquantr108_done - (rx96_rep) = rx96_cur."!mark_commit"($I10) - set_addr $I10, rxquantr108_done - rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10) - goto rxquantr108_loop - rxquantr108_done: + lt $I11, 0, rxenumcharlistq108_done + inc rx96_rep + inc $I10 + dec $I12 + goto rxenumcharlistq108_loop + rxenumcharlistq108_done: + lt rx96_rep, 1, rx96_fail + add rx96_pos, rx96_pos, rx96_rep # rx literal "END" add $I11, rx96_pos, 3 gt $I11, rx96_eos, rx96_fail @@ -1675,23 +1660,22 @@ NQP::Compiler - NQP compiler substr $S10, rx96_tgt, $I11, 5 ne $S10, "begin", rx96_fail add rx96_pos, 5 - # rx rxquantr109 ** 1..* - set_addr $I10, rxquantr109_done - rx96_cur."!mark_push"(0, -1, $I10) - rxquantr109_loop: - # rx enumcharlist negate=0 - ge rx96_pos, rx96_eos, rx96_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx96_pos, rx96_off + set rx96_rep, 0 + sub $I12, rx96_eos, rx96_pos + rxenumcharlistq109_loop: + le $I12, 0, rxenumcharlistq109_done substr $S10, rx96_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx96_fail - inc rx96_pos - set_addr $I10, rxquantr109_done - (rx96_rep) = rx96_cur."!mark_commit"($I10) - set_addr $I10, rxquantr109_done - rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10) - goto rxquantr109_loop - rxquantr109_done: + lt $I11, 0, rxenumcharlistq109_done + inc rx96_rep + inc $I10 + dec $I12 + goto rxenumcharlistq109_loop + rxenumcharlistq109_done: + lt rx96_rep, 1, rx96_fail + add rx96_pos, rx96_pos, rx96_rep # rx subrule "identifier" subtype=capture negate= rx96_cur."!cursor_pos"(rx96_pos) $P10 = rx96_cur."identifier"() @@ -1724,23 +1708,21 @@ NQP::Compiler - NQP compiler iseq $I11, $S10, "\r\n" add rx96_pos, $I11 inc rx96_pos - # rx rxquantr113 ** 0..* - set_addr $I10, rxquantr113_done - rx96_cur."!mark_push"(0, rx96_pos, $I10) - rxquantr113_loop: - # rx enumcharlist negate=0 - ge rx96_pos, rx96_eos, rx96_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx96_pos, rx96_off + set rx96_rep, 0 + sub $I12, rx96_eos, rx96_pos + rxenumcharlistq113_loop: + le $I12, 0, rxenumcharlistq113_done substr $S10, rx96_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx96_fail - inc rx96_pos - set_addr $I10, rxquantr113_done - (rx96_rep) = rx96_cur."!mark_commit"($I10) - set_addr $I10, rxquantr113_done - rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10) - goto rxquantr113_loop - rxquantr113_done: + lt $I11, 0, rxenumcharlistq113_done + inc rx96_rep + inc $I10 + dec $I12 + goto rxenumcharlistq113_loop + rxenumcharlistq113_done: + add rx96_pos, rx96_pos, rx96_rep # rx literal "=end" add $I11, rx96_pos, 4 gt $I11, rx96_eos, rx96_fail @@ -1748,23 +1730,22 @@ NQP::Compiler - NQP compiler substr $S10, rx96_tgt, $I11, 4 ne $S10, "=end", rx96_fail add rx96_pos, 4 - # rx rxquantr114 ** 1..* - set_addr $I10, rxquantr114_done - rx96_cur."!mark_push"(0, -1, $I10) - rxquantr114_loop: - # rx enumcharlist negate=0 - ge rx96_pos, rx96_eos, rx96_fail + # rx enumcharlist_q negate=0 r 1..-1 sub $I10, rx96_pos, rx96_off + set rx96_rep, 0 + sub $I12, rx96_eos, rx96_pos + rxenumcharlistq114_loop: + le $I12, 0, rxenumcharlistq114_done substr $S10, rx96_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx96_fail - inc rx96_pos - set_addr $I10, rxquantr114_done - (rx96_rep) = rx96_cur."!mark_commit"($I10) - set_addr $I10, rxquantr114_done - rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10) - goto rxquantr114_loop - rxquantr114_done: + lt $I11, 0, rxenumcharlistq114_done + inc rx96_rep + inc $I10 + dec $I12 + goto rxenumcharlistq114_loop + rxenumcharlistq114_done: + lt rx96_rep, 1, rx96_fail + add rx96_pos, rx96_pos, rx96_rep # rx subrule "!BACKREF" subtype=method negate= rx96_cur."!cursor_pos"(rx96_pos) $P10 = rx96_cur."!BACKREF"("identifier") @@ -1812,23 +1793,21 @@ NQP::Compiler - NQP compiler dec $I10 is_cclass $I11, 8192, rx96_tgt, $I10 unless $I11, rx96_fail - # rx rxquantr116 ** 0..* - set_addr $I10, rxquantr116_done - rx96_cur."!mark_push"(0, rx96_pos, $I10) - rxquantr116_loop: - # rx enumcharlist negate=0 - ge rx96_pos, rx96_eos, rx96_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx96_pos, rx96_off + set rx96_rep, 0 + sub $I12, rx96_eos, rx96_pos + rxenumcharlistq116_loop: + le $I12, 0, rxenumcharlistq116_done substr $S10, rx96_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx96_fail - inc rx96_pos - set_addr $I10, rxquantr116_done - (rx96_rep) = rx96_cur."!mark_commit"($I10) - set_addr $I10, rxquantr116_done - rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10) - goto rxquantr116_loop - rxquantr116_done: + lt $I11, 0, rxenumcharlistq116_done + inc rx96_rep + inc $I10 + dec $I12 + goto rxenumcharlistq116_loop + rxenumcharlistq116_done: + add rx96_pos, rx96_pos, rx96_rep alt117_0: .annotate 'line', 63 set_addr $I10, alt117_1 @@ -1887,23 +1866,21 @@ NQP::Compiler - NQP compiler iseq $I11, $S10, "\r\n" add rx96_pos, $I11 inc rx96_pos - # rx rxquantr122 ** 0..* - set_addr $I10, rxquantr122_done - rx96_cur."!mark_push"(0, rx96_pos, $I10) - rxquantr122_loop: - # rx enumcharlist negate=0 - ge rx96_pos, rx96_eos, rx96_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx96_pos, rx96_off + set rx96_rep, 0 + sub $I12, rx96_eos, rx96_pos + rxenumcharlistq122_loop: + le $I12, 0, rxenumcharlistq122_done substr $S10, rx96_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx96_fail - inc rx96_pos - set_addr $I10, rxquantr122_done - (rx96_rep) = rx96_cur."!mark_commit"($I10) - set_addr $I10, rxquantr122_done - rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10) - goto rxquantr122_loop - rxquantr122_done: + lt $I11, 0, rxenumcharlistq122_done + inc rx96_rep + inc $I10 + dec $I12 + goto rxenumcharlistq122_loop + rxenumcharlistq122_done: + add rx96_pos, rx96_pos, rx96_rep # rx literal "=end" add $I11, rx96_pos, 4 gt $I11, rx96_eos, rx96_fail @@ -1967,7 +1944,7 @@ NQP::Compiler - NQP compiler rxanchor125_done: # rx subrule "before" subtype=zerowidth negate= rx96_cur."!cursor_pos"(rx96_pos) - .const 'Sub' $P127 = "28_1282016529.10767" + .const 'Sub' $P127 = "28_1282324002.40722" capture_lex $P127 $P10 = rx96_cur."before"($P127) unless $P10, rx96_fail @@ -2002,13 +1979,13 @@ NQP::Compiler - NQP compiler # rx pass rx96_cur."!cursor_pass"(rx96_pos, "pod_comment") if_null rx96_debug, debug_417 - rx96_cur."!cursor_debug"("PASS ", "pod_comment", " at pos=", rx96_pos) + rx96_cur."!cursor_debug"("PASS", "pod_comment", " at pos=", rx96_pos) debug_417: .return (rx96_cur) rx96_restart: .annotate 'line', 4 if_null rx96_debug, debug_418 - rx96_cur."!cursor_debug"("NEXT ", "pod_comment") + rx96_cur."!cursor_debug"("NEXT", "pod_comment") debug_418: rx96_fail: (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0) @@ -2018,7 +1995,7 @@ NQP::Compiler - NQP compiler rx96_done: rx96_cur."!cursor_fail"() if_null rx96_debug, debug_419 - rx96_cur."!cursor_debug"("FAIL ", "pod_comment") + rx96_cur."!cursor_debug"("FAIL", "pod_comment") debug_419: .return (rx96_cur) .return () @@ -2026,7 +2003,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__pod_comment" :subid("27_1282016529.10767") :method +.sub "!PREFIX__pod_comment" :subid("27_1282324002.40722") :method .annotate 'line', 4 new $P98, "ResizablePMCArray" push $P98, "" @@ -2035,7 +2012,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block126" :anon :subid("28_1282016529.10767") :method :outer("26_1282016529.10767") +.sub "_block126" :anon :subid("28_1282324002.40722") :method :outer("26_1282324002.40722") .annotate 'line', 69 .local string rx128_tgt .local int rx128_pos @@ -2058,7 +2035,7 @@ NQP::Compiler - NQP compiler rx128_start: eq $I10, 1, rx128_restart if_null rx128_debug, debug_413 - rx128_cur."!cursor_debug"("START ", "") + rx128_cur."!cursor_debug"("START", "") debug_413: $I10 = self.'from'() ne $I10, -1, rxscan129_done @@ -2072,23 +2049,21 @@ NQP::Compiler - NQP compiler set_addr $I10, rxscan129_loop rx128_cur."!mark_push"(0, rx128_pos, $I10) rxscan129_done: - # rx rxquantr130 ** 0..* - set_addr $I10, rxquantr130_done - rx128_cur."!mark_push"(0, rx128_pos, $I10) - rxquantr130_loop: - # rx enumcharlist negate=0 - ge rx128_pos, rx128_eos, rx128_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx128_pos, rx128_off + set rx128_rep, 0 + sub $I12, rx128_eos, rx128_pos + rxenumcharlistq130_loop: + le $I12, 0, rxenumcharlistq130_done substr $S10, rx128_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx128_fail - inc rx128_pos - set_addr $I10, rxquantr130_done - (rx128_rep) = rx128_cur."!mark_commit"($I10) - set_addr $I10, rxquantr130_done - rx128_cur."!mark_push"(rx128_rep, rx128_pos, $I10) - goto rxquantr130_loop - rxquantr130_done: + lt $I11, 0, rxenumcharlistq130_done + inc rx128_rep + inc $I10 + dec $I12 + goto rxenumcharlistq130_loop + rxenumcharlistq130_done: + add rx128_pos, rx128_pos, rx128_rep alt131_0: set_addr $I10, alt131_1 rx128_cur."!mark_push"(0, rx128_pos, $I10) @@ -2148,12 +2123,12 @@ NQP::Compiler - NQP compiler # rx pass rx128_cur."!cursor_pass"(rx128_pos, "") if_null rx128_debug, debug_414 - rx128_cur."!cursor_debug"("PASS ", "", " at pos=", rx128_pos) + rx128_cur."!cursor_debug"("PASS", "", " at pos=", rx128_pos) debug_414: .return (rx128_cur) rx128_restart: if_null rx128_debug, debug_415 - rx128_cur."!cursor_debug"("NEXT ", "") + rx128_cur."!cursor_debug"("NEXT", "") debug_415: rx128_fail: (rx128_rep, rx128_pos, $I10, $P10) = rx128_cur."!mark_fail"(0) @@ -2163,7 +2138,7 @@ NQP::Compiler - NQP compiler rx128_done: rx128_cur."!cursor_fail"() if_null rx128_debug, debug_416 - rx128_cur."!cursor_debug"("FAIL ", "") + rx128_cur."!cursor_debug"("FAIL", "") debug_416: .return (rx128_cur) .return () @@ -2171,7 +2146,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "comp_unit" :subid("29_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "comp_unit" :subid("29_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx135_tgt .local int rx135_pos @@ -2194,7 +2169,7 @@ NQP::Compiler - NQP compiler rx135_start: eq $I10, 1, rx135_restart if_null rx135_debug, debug_420 - rx135_cur."!cursor_debug"("START ", "comp_unit") + rx135_cur."!cursor_debug"("START", "comp_unit") debug_420: $I10 = self.'from'() ne $I10, -1, rxscan139_done @@ -2246,13 +2221,13 @@ NQP::Compiler - NQP compiler # rx pass rx135_cur."!cursor_pass"(rx135_pos, "comp_unit") if_null rx135_debug, debug_421 - rx135_cur."!cursor_debug"("PASS ", "comp_unit", " at pos=", rx135_pos) + rx135_cur."!cursor_debug"("PASS", "comp_unit", " at pos=", rx135_pos) debug_421: .return (rx135_cur) rx135_restart: .annotate 'line', 4 if_null rx135_debug, debug_422 - rx135_cur."!cursor_debug"("NEXT ", "comp_unit") + rx135_cur."!cursor_debug"("NEXT", "comp_unit") debug_422: rx135_fail: (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0) @@ -2262,7 +2237,7 @@ NQP::Compiler - NQP compiler rx135_done: rx135_cur."!cursor_fail"() if_null rx135_debug, debug_423 - rx135_cur."!cursor_debug"("FAIL ", "comp_unit") + rx135_cur."!cursor_debug"("FAIL", "comp_unit") debug_423: .return (rx135_cur) .return () @@ -2270,7 +2245,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__comp_unit" :subid("30_1282016529.10767") :method +.sub "!PREFIX__comp_unit" :subid("30_1282324002.40722") :method .annotate 'line', 4 $P137 = self."!PREFIX__!subrule"("newpad", "") new $P138, "ResizablePMCArray" @@ -2280,7 +2255,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statementlist" :subid("31_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statementlist" :subid("31_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx142_tgt .local int rx142_pos @@ -2304,7 +2279,7 @@ NQP::Compiler - NQP compiler rx142_start: eq $I10, 1, rx142_restart if_null rx142_debug, debug_424 - rx142_cur."!cursor_debug"("START ", "statementlist") + rx142_cur."!cursor_debug"("START", "statementlist") debug_424: $I10 = self.'from'() ne $I10, -1, rxscan147_done @@ -2380,13 +2355,13 @@ NQP::Compiler - NQP compiler # rx pass rx142_cur."!cursor_pass"(rx142_pos, "statementlist") if_null rx142_debug, debug_425 - rx142_cur."!cursor_debug"("PASS ", "statementlist", " at pos=", rx142_pos) + rx142_cur."!cursor_debug"("PASS", "statementlist", " at pos=", rx142_pos) debug_425: .return (rx142_cur) rx142_restart: .annotate 'line', 4 if_null rx142_debug, debug_426 - rx142_cur."!cursor_debug"("NEXT ", "statementlist") + rx142_cur."!cursor_debug"("NEXT", "statementlist") debug_426: rx142_fail: (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0) @@ -2396,7 +2371,7 @@ NQP::Compiler - NQP compiler rx142_done: rx142_cur."!cursor_fail"() if_null rx142_debug, debug_427 - rx142_cur."!cursor_debug"("FAIL ", "statementlist") + rx142_cur."!cursor_debug"("FAIL", "statementlist") debug_427: .return (rx142_cur) .return () @@ -2404,7 +2379,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statementlist" :subid("32_1282016529.10767") :method +.sub "!PREFIX__statementlist" :subid("32_1282324002.40722") :method .annotate 'line', 4 $P144 = self."!PREFIX__!subrule"("ws", "") $P145 = self."!PREFIX__!subrule"("ws", "") @@ -2416,9 +2391,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement" :subid("33_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement" :subid("33_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 - .const 'Sub' $P161 = "35_1282016529.10767" + .const 'Sub' $P161 = "35_1282324002.40722" capture_lex $P161 .local string rx156_tgt .local int rx156_pos @@ -2428,7 +2403,7 @@ NQP::Compiler - NQP compiler .local pmc rx156_cur .local pmc rx156_debug (rx156_cur, rx156_pos, rx156_tgt, $I10) = self."!cursor_start"() - rx156_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop") + rx156_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond") getattribute rx156_debug, rx156_cur, "$!debug" .lex unicode:"$\x{a2}", rx156_cur .local pmc match @@ -2442,7 +2417,7 @@ NQP::Compiler - NQP compiler rx156_start: eq $I10, 1, rx156_restart if_null rx156_debug, debug_428 - rx156_cur."!cursor_debug"("START ", "statement") + rx156_cur."!cursor_debug"("START", "statement") debug_428: $I10 = self.'from'() ne $I10, -1, rxscan159_done @@ -2459,7 +2434,7 @@ NQP::Compiler - NQP compiler .annotate 'line', 96 # rx subrule "before" subtype=zerowidth negate=1 rx156_cur."!cursor_pos"(rx156_pos) - .const 'Sub' $P161 = "35_1282016529.10767" + .const 'Sub' $P161 = "35_1282324002.40722" capture_lex $P161 $P10 = rx156_cur."before"($P161) if $P10, rx156_fail @@ -2556,13 +2531,13 @@ NQP::Compiler - NQP compiler # rx pass rx156_cur."!cursor_pass"(rx156_pos, "statement") if_null rx156_debug, debug_433 - rx156_cur."!cursor_debug"("PASS ", "statement", " at pos=", rx156_pos) + rx156_cur."!cursor_debug"("PASS", "statement", " at pos=", rx156_pos) debug_433: .return (rx156_cur) rx156_restart: .annotate 'line', 4 if_null rx156_debug, debug_434 - rx156_cur."!cursor_debug"("NEXT ", "statement") + rx156_cur."!cursor_debug"("NEXT", "statement") debug_434: rx156_fail: (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0) @@ -2572,7 +2547,7 @@ NQP::Compiler - NQP compiler rx156_done: rx156_cur."!cursor_fail"() if_null rx156_debug, debug_435 - rx156_cur."!cursor_debug"("FAIL ", "statement") + rx156_cur."!cursor_debug"("FAIL", "statement") debug_435: .return (rx156_cur) .return () @@ -2580,7 +2555,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement" :subid("34_1282016529.10767") :method +.sub "!PREFIX__statement" :subid("34_1282324002.40722") :method .annotate 'line', 4 new $P158, "ResizablePMCArray" push $P158, "" @@ -2589,7 +2564,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block160" :anon :subid("35_1282016529.10767") :method :outer("33_1282016529.10767") +.sub "_block160" :anon :subid("35_1282324002.40722") :method :outer("33_1282324002.40722") .annotate 'line', 96 .local string rx162_tgt .local int rx162_pos @@ -2612,7 +2587,7 @@ NQP::Compiler - NQP compiler rx162_start: eq $I10, 1, rx162_restart if_null rx162_debug, debug_429 - rx162_cur."!cursor_debug"("START ", "") + rx162_cur."!cursor_debug"("START", "") debug_429: $I10 = self.'from'() ne $I10, -1, rxscan163_done @@ -2644,12 +2619,12 @@ NQP::Compiler - NQP compiler # rx pass rx162_cur."!cursor_pass"(rx162_pos, "") if_null rx162_debug, debug_430 - rx162_cur."!cursor_debug"("PASS ", "", " at pos=", rx162_pos) + rx162_cur."!cursor_debug"("PASS", "", " at pos=", rx162_pos) debug_430: .return (rx162_cur) rx162_restart: if_null rx162_debug, debug_431 - rx162_cur."!cursor_debug"("NEXT ", "") + rx162_cur."!cursor_debug"("NEXT", "") debug_431: rx162_fail: (rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0) @@ -2659,7 +2634,7 @@ NQP::Compiler - NQP compiler rx162_done: rx162_cur."!cursor_fail"() if_null rx162_debug, debug_432 - rx162_cur."!cursor_debug"("FAIL ", "") + rx162_cur."!cursor_debug"("FAIL", "") debug_432: .return (rx162_cur) .return () @@ -2667,7 +2642,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "eat_terminator" :subid("36_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "eat_terminator" :subid("36_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx171_tgt .local int rx171_pos @@ -2690,7 +2665,7 @@ NQP::Compiler - NQP compiler rx171_start: eq $I10, 1, rx171_restart if_null rx171_debug, debug_436 - rx171_cur."!cursor_debug"("START ", "eat_terminator") + rx171_cur."!cursor_debug"("START", "eat_terminator") debug_436: $I10 = self.'from'() ne $I10, -1, rxscan174_done @@ -2744,13 +2719,13 @@ NQP::Compiler - NQP compiler # rx pass rx171_cur."!cursor_pass"(rx171_pos, "eat_terminator") if_null rx171_debug, debug_437 - rx171_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx171_pos) + rx171_cur."!cursor_debug"("PASS", "eat_terminator", " at pos=", rx171_pos) debug_437: .return (rx171_cur) rx171_restart: .annotate 'line', 4 if_null rx171_debug, debug_438 - rx171_cur."!cursor_debug"("NEXT ", "eat_terminator") + rx171_cur."!cursor_debug"("NEXT", "eat_terminator") debug_438: rx171_fail: (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0) @@ -2760,7 +2735,7 @@ NQP::Compiler - NQP compiler rx171_done: rx171_cur."!cursor_fail"() if_null rx171_debug, debug_439 - rx171_cur."!cursor_debug"("FAIL ", "eat_terminator") + rx171_cur."!cursor_debug"("FAIL", "eat_terminator") debug_439: .return (rx171_cur) .return () @@ -2768,7 +2743,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__eat_terminator" :subid("37_1282016529.10767") :method +.sub "!PREFIX__eat_terminator" :subid("37_1282324002.40722") :method .annotate 'line', 4 new $P173, "ResizablePMCArray" push $P173, "" @@ -2780,7 +2755,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "xblock" :subid("38_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "xblock" :subid("38_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx177_tgt .local int rx177_pos @@ -2803,7 +2778,7 @@ NQP::Compiler - NQP compiler rx177_start: eq $I10, 1, rx177_restart if_null rx177_debug, debug_440 - rx177_cur."!cursor_debug"("START ", "xblock") + rx177_cur."!cursor_debug"("START", "xblock") debug_440: $I10 = self.'from'() ne $I10, -1, rxscan181_done @@ -2841,13 +2816,13 @@ NQP::Compiler - NQP compiler # rx pass rx177_cur."!cursor_pass"(rx177_pos, "xblock") if_null rx177_debug, debug_441 - rx177_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx177_pos) + rx177_cur."!cursor_debug"("PASS", "xblock", " at pos=", rx177_pos) debug_441: .return (rx177_cur) rx177_restart: .annotate 'line', 4 if_null rx177_debug, debug_442 - rx177_cur."!cursor_debug"("NEXT ", "xblock") + rx177_cur."!cursor_debug"("NEXT", "xblock") debug_442: rx177_fail: (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0) @@ -2857,7 +2832,7 @@ NQP::Compiler - NQP compiler rx177_done: rx177_cur."!cursor_fail"() if_null rx177_debug, debug_443 - rx177_cur."!cursor_debug"("FAIL ", "xblock") + rx177_cur."!cursor_debug"("FAIL", "xblock") debug_443: .return (rx177_cur) .return () @@ -2865,7 +2840,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__xblock" :subid("39_1282016529.10767") :method +.sub "!PREFIX__xblock" :subid("39_1282324002.40722") :method .annotate 'line', 4 $P179 = self."!PREFIX__!subrule"("EXPR", "") new $P180, "ResizablePMCArray" @@ -2875,7 +2850,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "pblock" :subid("40_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "pblock" :subid("40_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx183_tgt .local int rx183_pos @@ -2898,7 +2873,7 @@ NQP::Compiler - NQP compiler rx183_start: eq $I10, 1, rx183_restart if_null rx183_debug, debug_444 - rx183_cur."!cursor_debug"("START ", "pblock") + rx183_cur."!cursor_debug"("START", "pblock") debug_444: $I10 = self.'from'() ne $I10, -1, rxscan188_done @@ -2984,13 +2959,13 @@ NQP::Compiler - NQP compiler # rx pass rx183_cur."!cursor_pass"(rx183_pos, "pblock") if_null rx183_debug, debug_445 - rx183_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx183_pos) + rx183_cur."!cursor_debug"("PASS", "pblock", " at pos=", rx183_pos) debug_445: .return (rx183_cur) rx183_restart: .annotate 'line', 4 if_null rx183_debug, debug_446 - rx183_cur."!cursor_debug"("NEXT ", "pblock") + rx183_cur."!cursor_debug"("NEXT", "pblock") debug_446: rx183_fail: (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0) @@ -3000,7 +2975,7 @@ NQP::Compiler - NQP compiler rx183_done: rx183_cur."!cursor_fail"() if_null rx183_debug, debug_447 - rx183_cur."!cursor_debug"("FAIL ", "pblock") + rx183_cur."!cursor_debug"("FAIL", "pblock") debug_447: .return (rx183_cur) .return () @@ -3008,7 +2983,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__pblock" :subid("41_1282016529.10767") :method +.sub "!PREFIX__pblock" :subid("41_1282324002.40722") :method .annotate 'line', 4 $P185 = self."!PREFIX__!subrule"("panic", "") $P186 = self."!PREFIX__!subrule"("lambda", "") @@ -3021,7 +2996,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "lambda" :subid("42_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "lambda" :subid("42_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx191_tgt .local int rx191_pos @@ -3044,7 +3019,7 @@ NQP::Compiler - NQP compiler rx191_start: eq $I10, 1, rx191_restart if_null rx191_debug, debug_448 - rx191_cur."!cursor_debug"("START ", "lambda") + rx191_cur."!cursor_debug"("START", "lambda") debug_448: $I10 = self.'from'() ne $I10, -1, rxscan194_done @@ -3082,13 +3057,13 @@ NQP::Compiler - NQP compiler # rx pass rx191_cur."!cursor_pass"(rx191_pos, "lambda") if_null rx191_debug, debug_449 - rx191_cur."!cursor_debug"("PASS ", "lambda", " at pos=", rx191_pos) + rx191_cur."!cursor_debug"("PASS", "lambda", " at pos=", rx191_pos) debug_449: .return (rx191_cur) rx191_restart: .annotate 'line', 4 if_null rx191_debug, debug_450 - rx191_cur."!cursor_debug"("NEXT ", "lambda") + rx191_cur."!cursor_debug"("NEXT", "lambda") debug_450: rx191_fail: (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0) @@ -3098,7 +3073,7 @@ NQP::Compiler - NQP compiler rx191_done: rx191_cur."!cursor_fail"() if_null rx191_debug, debug_451 - rx191_cur."!cursor_debug"("FAIL ", "lambda") + rx191_cur."!cursor_debug"("FAIL", "lambda") debug_451: .return (rx191_cur) .return () @@ -3106,7 +3081,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__lambda" :subid("43_1282016529.10767") :method +.sub "!PREFIX__lambda" :subid("43_1282324002.40722") :method .annotate 'line', 4 new $P193, "ResizablePMCArray" push $P193, "<->" @@ -3116,7 +3091,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "block" :subid("44_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "block" :subid("44_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx197_tgt .local int rx197_pos @@ -3139,7 +3114,7 @@ NQP::Compiler - NQP compiler rx197_start: eq $I10, 1, rx197_restart if_null rx197_debug, debug_452 - rx197_cur."!cursor_debug"("START ", "block") + rx197_cur."!cursor_debug"("START", "block") debug_452: $I10 = self.'from'() ne $I10, -1, rxscan201_done @@ -3189,13 +3164,13 @@ NQP::Compiler - NQP compiler # rx pass rx197_cur."!cursor_pass"(rx197_pos, "block") if_null rx197_debug, debug_453 - rx197_cur."!cursor_debug"("PASS ", "block", " at pos=", rx197_pos) + rx197_cur."!cursor_debug"("PASS", "block", " at pos=", rx197_pos) debug_453: .return (rx197_cur) rx197_restart: .annotate 'line', 4 if_null rx197_debug, debug_454 - rx197_cur."!cursor_debug"("NEXT ", "block") + rx197_cur."!cursor_debug"("NEXT", "block") debug_454: rx197_fail: (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0) @@ -3205,7 +3180,7 @@ NQP::Compiler - NQP compiler rx197_done: rx197_cur."!cursor_fail"() if_null rx197_debug, debug_455 - rx197_cur."!cursor_debug"("FAIL ", "block") + rx197_cur."!cursor_debug"("FAIL", "block") debug_455: .return (rx197_cur) .return () @@ -3213,7 +3188,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__block" :subid("45_1282016529.10767") :method +.sub "!PREFIX__block" :subid("45_1282324002.40722") :method .annotate 'line', 4 $P199 = self."!PREFIX__!subrule"("panic", "") new $P200, "ResizablePMCArray" @@ -3224,7 +3199,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "blockoid" :subid("46_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "blockoid" :subid("46_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx204_tgt .local int rx204_pos @@ -3247,7 +3222,7 @@ NQP::Compiler - NQP compiler rx204_start: eq $I10, 1, rx204_restart if_null rx204_debug, debug_456 - rx204_cur."!cursor_debug"("START ", "blockoid") + rx204_cur."!cursor_debug"("START", "blockoid") debug_456: $I10 = self.'from'() ne $I10, -1, rxscan208_done @@ -3316,13 +3291,13 @@ NQP::Compiler - NQP compiler # rx pass rx204_cur."!cursor_pass"(rx204_pos, "blockoid") if_null rx204_debug, debug_457 - rx204_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx204_pos) + rx204_cur."!cursor_debug"("PASS", "blockoid", " at pos=", rx204_pos) debug_457: .return (rx204_cur) rx204_restart: .annotate 'line', 4 if_null rx204_debug, debug_458 - rx204_cur."!cursor_debug"("NEXT ", "blockoid") + rx204_cur."!cursor_debug"("NEXT", "blockoid") debug_458: rx204_fail: (rx204_rep, rx204_pos, $I10, $P10) = rx204_cur."!mark_fail"(0) @@ -3332,7 +3307,7 @@ NQP::Compiler - NQP compiler rx204_done: rx204_cur."!cursor_fail"() if_null rx204_debug, debug_459 - rx204_cur."!cursor_debug"("FAIL ", "blockoid") + rx204_cur."!cursor_debug"("FAIL", "blockoid") debug_459: .return (rx204_cur) .return () @@ -3340,7 +3315,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__blockoid" :subid("47_1282016529.10767") :method +.sub "!PREFIX__blockoid" :subid("47_1282324002.40722") :method .annotate 'line', 4 $P206 = self."!PREFIX__!subrule"("finishpad", "") new $P207, "ResizablePMCArray" @@ -3350,7 +3325,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "newpad" :subid("48_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "newpad" :subid("48_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx213_tgt .local int rx213_pos @@ -3373,7 +3348,7 @@ NQP::Compiler - NQP compiler rx213_start: eq $I10, 1, rx213_restart if_null rx213_debug, debug_460 - rx213_cur."!cursor_debug"("START ", "newpad") + rx213_cur."!cursor_debug"("START", "newpad") debug_460: $I10 = self.'from'() ne $I10, -1, rxscan216_done @@ -3391,13 +3366,13 @@ NQP::Compiler - NQP compiler # rx pass rx213_cur."!cursor_pass"(rx213_pos, "newpad") if_null rx213_debug, debug_461 - rx213_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx213_pos) + rx213_cur."!cursor_debug"("PASS", "newpad", " at pos=", rx213_pos) debug_461: .return (rx213_cur) rx213_restart: .annotate 'line', 4 if_null rx213_debug, debug_462 - rx213_cur."!cursor_debug"("NEXT ", "newpad") + rx213_cur."!cursor_debug"("NEXT", "newpad") debug_462: rx213_fail: (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0) @@ -3407,7 +3382,7 @@ NQP::Compiler - NQP compiler rx213_done: rx213_cur."!cursor_fail"() if_null rx213_debug, debug_463 - rx213_cur."!cursor_debug"("FAIL ", "newpad") + rx213_cur."!cursor_debug"("FAIL", "newpad") debug_463: .return (rx213_cur) .return () @@ -3415,7 +3390,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__newpad" :subid("49_1282016529.10767") :method +.sub "!PREFIX__newpad" :subid("49_1282324002.40722") :method .annotate 'line', 4 new $P215, "ResizablePMCArray" push $P215, "" @@ -3424,7 +3399,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "outerctx" :subid("50_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "outerctx" :subid("50_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx218_tgt .local int rx218_pos @@ -3447,7 +3422,7 @@ NQP::Compiler - NQP compiler rx218_start: eq $I10, 1, rx218_restart if_null rx218_debug, debug_464 - rx218_cur."!cursor_debug"("START ", "outerctx") + rx218_cur."!cursor_debug"("START", "outerctx") debug_464: $I10 = self.'from'() ne $I10, -1, rxscan221_done @@ -3465,13 +3440,13 @@ NQP::Compiler - NQP compiler # rx pass rx218_cur."!cursor_pass"(rx218_pos, "outerctx") if_null rx218_debug, debug_465 - rx218_cur."!cursor_debug"("PASS ", "outerctx", " at pos=", rx218_pos) + rx218_cur."!cursor_debug"("PASS", "outerctx", " at pos=", rx218_pos) debug_465: .return (rx218_cur) rx218_restart: .annotate 'line', 4 if_null rx218_debug, debug_466 - rx218_cur."!cursor_debug"("NEXT ", "outerctx") + rx218_cur."!cursor_debug"("NEXT", "outerctx") debug_466: rx218_fail: (rx218_rep, rx218_pos, $I10, $P10) = rx218_cur."!mark_fail"(0) @@ -3481,7 +3456,7 @@ NQP::Compiler - NQP compiler rx218_done: rx218_cur."!cursor_fail"() if_null rx218_debug, debug_467 - rx218_cur."!cursor_debug"("FAIL ", "outerctx") + rx218_cur."!cursor_debug"("FAIL", "outerctx") debug_467: .return (rx218_cur) .return () @@ -3489,7 +3464,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__outerctx" :subid("51_1282016529.10767") :method +.sub "!PREFIX__outerctx" :subid("51_1282324002.40722") :method .annotate 'line', 4 new $P220, "ResizablePMCArray" push $P220, "" @@ -3498,7 +3473,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "finishpad" :subid("52_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "finishpad" :subid("52_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx223_tgt .local int rx223_pos @@ -3521,7 +3496,7 @@ NQP::Compiler - NQP compiler rx223_start: eq $I10, 1, rx223_restart if_null rx223_debug, debug_468 - rx223_cur."!cursor_debug"("START ", "finishpad") + rx223_cur."!cursor_debug"("START", "finishpad") debug_468: $I10 = self.'from'() ne $I10, -1, rxscan226_done @@ -3539,13 +3514,13 @@ NQP::Compiler - NQP compiler # rx pass rx223_cur."!cursor_pass"(rx223_pos, "finishpad") if_null rx223_debug, debug_469 - rx223_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx223_pos) + rx223_cur."!cursor_debug"("PASS", "finishpad", " at pos=", rx223_pos) debug_469: .return (rx223_cur) rx223_restart: .annotate 'line', 4 if_null rx223_debug, debug_470 - rx223_cur."!cursor_debug"("NEXT ", "finishpad") + rx223_cur."!cursor_debug"("NEXT", "finishpad") debug_470: rx223_fail: (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0) @@ -3555,7 +3530,7 @@ NQP::Compiler - NQP compiler rx223_done: rx223_cur."!cursor_fail"() if_null rx223_debug, debug_471 - rx223_cur."!cursor_debug"("FAIL ", "finishpad") + rx223_cur."!cursor_debug"("FAIL", "finishpad") debug_471: .return (rx223_cur) .return () @@ -3563,7 +3538,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__finishpad" :subid("53_1282016529.10767") :method +.sub "!PREFIX__finishpad" :subid("53_1282324002.40722") :method .annotate 'line', 4 new $P225, "ResizablePMCArray" push $P225, "" @@ -3572,7 +3547,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "terminator" :subid("54_1282016529.10767") :method +.sub "terminator" :subid("54_1282324002.40722") :method .annotate 'line', 148 $P228 = self."!protoregex"("terminator") .return ($P228) @@ -3580,7 +3555,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__terminator" :subid("55_1282016529.10767") :method +.sub "!PREFIX__terminator" :subid("55_1282324002.40722") :method .annotate 'line', 148 $P230 = self."!PREFIX__!protoregex"("terminator") .return ($P230) @@ -3588,7 +3563,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "terminator:sym<;>" :subid("56_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "terminator:sym<;>" :subid("56_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx232_tgt .local int rx232_pos @@ -3611,7 +3586,7 @@ NQP::Compiler - NQP compiler rx232_start: eq $I10, 1, rx232_restart if_null rx232_debug, debug_472 - rx232_cur."!cursor_debug"("START ", "terminator:sym<;>") + rx232_cur."!cursor_debug"("START", "terminator:sym<;>") debug_472: $I10 = self.'from'() ne $I10, -1, rxscan235_done @@ -3635,13 +3610,13 @@ NQP::Compiler - NQP compiler # rx pass rx232_cur."!cursor_pass"(rx232_pos, "terminator:sym<;>") if_null rx232_debug, debug_473 - rx232_cur."!cursor_debug"("PASS ", "terminator:sym<;>", " at pos=", rx232_pos) + rx232_cur."!cursor_debug"("PASS", "terminator:sym<;>", " at pos=", rx232_pos) debug_473: .return (rx232_cur) rx232_restart: .annotate 'line', 4 if_null rx232_debug, debug_474 - rx232_cur."!cursor_debug"("NEXT ", "terminator:sym<;>") + rx232_cur."!cursor_debug"("NEXT", "terminator:sym<;>") debug_474: rx232_fail: (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0) @@ -3651,7 +3626,7 @@ NQP::Compiler - NQP compiler rx232_done: rx232_cur."!cursor_fail"() if_null rx232_debug, debug_475 - rx232_cur."!cursor_debug"("FAIL ", "terminator:sym<;>") + rx232_cur."!cursor_debug"("FAIL", "terminator:sym<;>") debug_475: .return (rx232_cur) .return () @@ -3659,7 +3634,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__terminator:sym<;>" :subid("57_1282016529.10767") :method +.sub "!PREFIX__terminator:sym<;>" :subid("57_1282324002.40722") :method .annotate 'line', 4 new $P234, "ResizablePMCArray" push $P234, ";" @@ -3668,7 +3643,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "terminator:sym<}>" :subid("58_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "terminator:sym<}>" :subid("58_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx237_tgt .local int rx237_pos @@ -3691,7 +3666,7 @@ NQP::Compiler - NQP compiler rx237_start: eq $I10, 1, rx237_restart if_null rx237_debug, debug_476 - rx237_cur."!cursor_debug"("START ", "terminator:sym<}>") + rx237_cur."!cursor_debug"("START", "terminator:sym<}>") debug_476: $I10 = self.'from'() ne $I10, -1, rxscan240_done @@ -3715,13 +3690,13 @@ NQP::Compiler - NQP compiler # rx pass rx237_cur."!cursor_pass"(rx237_pos, "terminator:sym<}>") if_null rx237_debug, debug_477 - rx237_cur."!cursor_debug"("PASS ", "terminator:sym<}>", " at pos=", rx237_pos) + rx237_cur."!cursor_debug"("PASS", "terminator:sym<}>", " at pos=", rx237_pos) debug_477: .return (rx237_cur) rx237_restart: .annotate 'line', 4 if_null rx237_debug, debug_478 - rx237_cur."!cursor_debug"("NEXT ", "terminator:sym<}>") + rx237_cur."!cursor_debug"("NEXT", "terminator:sym<}>") debug_478: rx237_fail: (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0) @@ -3731,7 +3706,7 @@ NQP::Compiler - NQP compiler rx237_done: rx237_cur."!cursor_fail"() if_null rx237_debug, debug_479 - rx237_cur."!cursor_debug"("FAIL ", "terminator:sym<}>") + rx237_cur."!cursor_debug"("FAIL", "terminator:sym<}>") debug_479: .return (rx237_cur) .return () @@ -3739,7 +3714,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__terminator:sym<}>" :subid("59_1282016529.10767") :method +.sub "!PREFIX__terminator:sym<}>" :subid("59_1282324002.40722") :method .annotate 'line', 4 new $P239, "ResizablePMCArray" push $P239, "}" @@ -3748,7 +3723,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control" :subid("60_1282016529.10767") :method +.sub "statement_control" :subid("60_1282324002.40722") :method .annotate 'line', 155 $P242 = self."!protoregex"("statement_control") .return ($P242) @@ -3756,7 +3731,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control" :subid("61_1282016529.10767") :method +.sub "!PREFIX__statement_control" :subid("61_1282324002.40722") :method .annotate 'line', 155 $P244 = self."!PREFIX__!protoregex"("statement_control") .return ($P244) @@ -3764,7 +3739,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("62_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_control:sym" :subid("62_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx246_tgt .local int rx246_pos @@ -3788,7 +3763,7 @@ NQP::Compiler - NQP compiler rx246_start: eq $I10, 1, rx246_restart if_null rx246_debug, debug_480 - rx246_cur."!cursor_debug"("START ", "statement_control:sym") + rx246_cur."!cursor_debug"("START", "statement_control:sym") debug_480: $I10 = self.'from'() ne $I10, -1, rxscan249_done @@ -3951,13 +3926,13 @@ NQP::Compiler - NQP compiler # rx pass rx246_cur."!cursor_pass"(rx246_pos, "statement_control:sym") if_null rx246_debug, debug_481 - rx246_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx246_pos) + rx246_cur."!cursor_debug"("PASS", "statement_control:sym", " at pos=", rx246_pos) debug_481: .return (rx246_cur) rx246_restart: .annotate 'line', 4 if_null rx246_debug, debug_482 - rx246_cur."!cursor_debug"("NEXT ", "statement_control:sym") + rx246_cur."!cursor_debug"("NEXT", "statement_control:sym") debug_482: rx246_fail: (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0) @@ -3967,7 +3942,7 @@ NQP::Compiler - NQP compiler rx246_done: rx246_cur."!cursor_fail"() if_null rx246_debug, debug_483 - rx246_cur."!cursor_debug"("FAIL ", "statement_control:sym") + rx246_cur."!cursor_debug"("FAIL", "statement_control:sym") debug_483: .return (rx246_cur) .return () @@ -3975,7 +3950,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("63_1282016529.10767") :method +.sub "!PREFIX__statement_control:sym" :subid("63_1282324002.40722") :method .annotate 'line', 4 new $P248, "ResizablePMCArray" push $P248, "if" @@ -3984,9 +3959,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("64_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_control:sym" :subid("64_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 - .const 'Sub' $P274 = "66_1282016529.10767" + .const 'Sub' $P274 = "66_1282324002.40722" capture_lex $P274 .local string rx264_tgt .local int rx264_pos @@ -4009,7 +3984,7 @@ NQP::Compiler - NQP compiler rx264_start: eq $I10, 1, rx264_restart if_null rx264_debug, debug_484 - rx264_cur."!cursor_debug"("START ", "statement_control:sym") + rx264_cur."!cursor_debug"("START", "statement_control:sym") debug_484: $I10 = self.'from'() ne $I10, -1, rxscan267_done @@ -4080,7 +4055,7 @@ NQP::Compiler - NQP compiler rx264_pos = $P10."pos"() # rx subrule "before" subtype=zerowidth negate=1 rx264_cur."!cursor_pos"(rx264_pos) - .const 'Sub' $P274 = "66_1282016529.10767" + .const 'Sub' $P274 = "66_1282324002.40722" capture_lex $P274 $P10 = rx264_cur."before"($P274) if $P10, rx264_fail @@ -4116,13 +4091,13 @@ NQP::Compiler - NQP compiler # rx pass rx264_cur."!cursor_pass"(rx264_pos, "statement_control:sym") if_null rx264_debug, debug_489 - rx264_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx264_pos) + rx264_cur."!cursor_debug"("PASS", "statement_control:sym", " at pos=", rx264_pos) debug_489: .return (rx264_cur) rx264_restart: .annotate 'line', 4 if_null rx264_debug, debug_490 - rx264_cur."!cursor_debug"("NEXT ", "statement_control:sym") + rx264_cur."!cursor_debug"("NEXT", "statement_control:sym") debug_490: rx264_fail: (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0) @@ -4132,7 +4107,7 @@ NQP::Compiler - NQP compiler rx264_done: rx264_cur."!cursor_fail"() if_null rx264_debug, debug_491 - rx264_cur."!cursor_debug"("FAIL ", "statement_control:sym") + rx264_cur."!cursor_debug"("FAIL", "statement_control:sym") debug_491: .return (rx264_cur) .return () @@ -4140,7 +4115,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("65_1282016529.10767") :method +.sub "!PREFIX__statement_control:sym" :subid("65_1282324002.40722") :method .annotate 'line', 4 new $P266, "ResizablePMCArray" push $P266, "unless" @@ -4149,7 +4124,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block273" :anon :subid("66_1282016529.10767") :method :outer("64_1282016529.10767") +.sub "_block273" :anon :subid("66_1282324002.40722") :method :outer("64_1282324002.40722") .annotate 'line', 167 .local string rx275_tgt .local int rx275_pos @@ -4172,7 +4147,7 @@ NQP::Compiler - NQP compiler rx275_start: eq $I10, 1, rx275_restart if_null rx275_debug, debug_485 - rx275_cur."!cursor_debug"("START ", "") + rx275_cur."!cursor_debug"("START", "") debug_485: $I10 = self.'from'() ne $I10, -1, rxscan276_done @@ -4196,12 +4171,12 @@ NQP::Compiler - NQP compiler # rx pass rx275_cur."!cursor_pass"(rx275_pos, "") if_null rx275_debug, debug_486 - rx275_cur."!cursor_debug"("PASS ", "", " at pos=", rx275_pos) + rx275_cur."!cursor_debug"("PASS", "", " at pos=", rx275_pos) debug_486: .return (rx275_cur) rx275_restart: if_null rx275_debug, debug_487 - rx275_cur."!cursor_debug"("NEXT ", "") + rx275_cur."!cursor_debug"("NEXT", "") debug_487: rx275_fail: (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0) @@ -4211,7 +4186,7 @@ NQP::Compiler - NQP compiler rx275_done: rx275_cur."!cursor_fail"() if_null rx275_debug, debug_488 - rx275_cur."!cursor_debug"("FAIL ", "") + rx275_cur."!cursor_debug"("FAIL", "") debug_488: .return (rx275_cur) .return () @@ -4219,7 +4194,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("67_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_control:sym" :subid("67_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx282_tgt .local int rx282_pos @@ -4242,7 +4217,7 @@ NQP::Compiler - NQP compiler rx282_start: eq $I10, 1, rx282_restart if_null rx282_debug, debug_492 - rx282_cur."!cursor_debug"("START ", "statement_control:sym") + rx282_cur."!cursor_debug"("START", "statement_control:sym") debug_492: $I10 = self.'from'() ne $I10, -1, rxscan285_done @@ -4319,13 +4294,13 @@ NQP::Compiler - NQP compiler # rx pass rx282_cur."!cursor_pass"(rx282_pos, "statement_control:sym") if_null rx282_debug, debug_493 - rx282_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx282_pos) + rx282_cur."!cursor_debug"("PASS", "statement_control:sym", " at pos=", rx282_pos) debug_493: .return (rx282_cur) rx282_restart: .annotate 'line', 4 if_null rx282_debug, debug_494 - rx282_cur."!cursor_debug"("NEXT ", "statement_control:sym") + rx282_cur."!cursor_debug"("NEXT", "statement_control:sym") debug_494: rx282_fail: (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0) @@ -4335,7 +4310,7 @@ NQP::Compiler - NQP compiler rx282_done: rx282_cur."!cursor_fail"() if_null rx282_debug, debug_495 - rx282_cur."!cursor_debug"("FAIL ", "statement_control:sym") + rx282_cur."!cursor_debug"("FAIL", "statement_control:sym") debug_495: .return (rx282_cur) .return () @@ -4343,7 +4318,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("68_1282016529.10767") :method +.sub "!PREFIX__statement_control:sym" :subid("68_1282324002.40722") :method .annotate 'line', 4 new $P284, "ResizablePMCArray" push $P284, "until" @@ -4353,7 +4328,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("69_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_control:sym" :subid("69_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx291_tgt .local int rx291_pos @@ -4376,7 +4351,7 @@ NQP::Compiler - NQP compiler rx291_start: eq $I10, 1, rx291_restart if_null rx291_debug, debug_496 - rx291_cur."!cursor_debug"("START ", "statement_control:sym") + rx291_cur."!cursor_debug"("START", "statement_control:sym") debug_496: $I10 = self.'from'() ne $I10, -1, rxscan294_done @@ -4578,13 +4553,13 @@ NQP::Compiler - NQP compiler # rx pass rx291_cur."!cursor_pass"(rx291_pos, "statement_control:sym") if_null rx291_debug, debug_497 - rx291_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx291_pos) + rx291_cur."!cursor_debug"("PASS", "statement_control:sym", " at pos=", rx291_pos) debug_497: .return (rx291_cur) rx291_restart: .annotate 'line', 4 if_null rx291_debug, debug_498 - rx291_cur."!cursor_debug"("NEXT ", "statement_control:sym") + rx291_cur."!cursor_debug"("NEXT", "statement_control:sym") debug_498: rx291_fail: (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0) @@ -4594,7 +4569,7 @@ NQP::Compiler - NQP compiler rx291_done: rx291_cur."!cursor_fail"() if_null rx291_debug, debug_499 - rx291_cur."!cursor_debug"("FAIL ", "statement_control:sym") + rx291_cur."!cursor_debug"("FAIL", "statement_control:sym") debug_499: .return (rx291_cur) .return () @@ -4602,7 +4577,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("70_1282016529.10767") :method +.sub "!PREFIX__statement_control:sym" :subid("70_1282324002.40722") :method .annotate 'line', 4 new $P293, "ResizablePMCArray" push $P293, "repeat" @@ -4611,7 +4586,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("71_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_control:sym" :subid("71_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx311_tgt .local int rx311_pos @@ -4634,7 +4609,7 @@ NQP::Compiler - NQP compiler rx311_start: eq $I10, 1, rx311_restart if_null rx311_debug, debug_500 - rx311_cur."!cursor_debug"("START ", "statement_control:sym") + rx311_cur."!cursor_debug"("START", "statement_control:sym") debug_500: $I10 = self.'from'() ne $I10, -1, rxscan314_done @@ -4698,13 +4673,13 @@ NQP::Compiler - NQP compiler # rx pass rx311_cur."!cursor_pass"(rx311_pos, "statement_control:sym") if_null rx311_debug, debug_501 - rx311_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx311_pos) + rx311_cur."!cursor_debug"("PASS", "statement_control:sym", " at pos=", rx311_pos) debug_501: .return (rx311_cur) rx311_restart: .annotate 'line', 4 if_null rx311_debug, debug_502 - rx311_cur."!cursor_debug"("NEXT ", "statement_control:sym") + rx311_cur."!cursor_debug"("NEXT", "statement_control:sym") debug_502: rx311_fail: (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0) @@ -4714,7 +4689,7 @@ NQP::Compiler - NQP compiler rx311_done: rx311_cur."!cursor_fail"() if_null rx311_debug, debug_503 - rx311_cur."!cursor_debug"("FAIL ", "statement_control:sym") + rx311_cur."!cursor_debug"("FAIL", "statement_control:sym") debug_503: .return (rx311_cur) .return () @@ -4722,7 +4697,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("72_1282016529.10767") :method +.sub "!PREFIX__statement_control:sym" :subid("72_1282324002.40722") :method .annotate 'line', 4 new $P313, "ResizablePMCArray" push $P313, "for" @@ -4731,7 +4706,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("73_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_control:sym" :subid("73_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx319_tgt .local int rx319_pos @@ -4754,7 +4729,7 @@ NQP::Compiler - NQP compiler rx319_start: eq $I10, 1, rx319_restart if_null rx319_debug, debug_504 - rx319_cur."!cursor_debug"("START ", "statement_control:sym") + rx319_cur."!cursor_debug"("START", "statement_control:sym") debug_504: $I10 = self.'from'() ne $I10, -1, rxscan322_done @@ -4818,13 +4793,13 @@ NQP::Compiler - NQP compiler # rx pass rx319_cur."!cursor_pass"(rx319_pos, "statement_control:sym") if_null rx319_debug, debug_505 - rx319_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx319_pos) + rx319_cur."!cursor_debug"("PASS", "statement_control:sym", " at pos=", rx319_pos) debug_505: .return (rx319_cur) rx319_restart: .annotate 'line', 4 if_null rx319_debug, debug_506 - rx319_cur."!cursor_debug"("NEXT ", "statement_control:sym") + rx319_cur."!cursor_debug"("NEXT", "statement_control:sym") debug_506: rx319_fail: (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0) @@ -4834,7 +4809,7 @@ NQP::Compiler - NQP compiler rx319_done: rx319_cur."!cursor_fail"() if_null rx319_debug, debug_507 - rx319_cur."!cursor_debug"("FAIL ", "statement_control:sym") + rx319_cur."!cursor_debug"("FAIL", "statement_control:sym") debug_507: .return (rx319_cur) .return () @@ -4842,7 +4817,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("74_1282016529.10767") :method +.sub "!PREFIX__statement_control:sym" :subid("74_1282324002.40722") :method .annotate 'line', 4 new $P321, "ResizablePMCArray" push $P321, "CATCH" @@ -4851,7 +4826,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_control:sym" :subid("75_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_control:sym" :subid("75_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx327_tgt .local int rx327_pos @@ -4874,7 +4849,7 @@ NQP::Compiler - NQP compiler rx327_start: eq $I10, 1, rx327_restart if_null rx327_debug, debug_508 - rx327_cur."!cursor_debug"("START ", "statement_control:sym") + rx327_cur."!cursor_debug"("START", "statement_control:sym") debug_508: $I10 = self.'from'() ne $I10, -1, rxscan330_done @@ -4938,13 +4913,13 @@ NQP::Compiler - NQP compiler # rx pass rx327_cur."!cursor_pass"(rx327_pos, "statement_control:sym") if_null rx327_debug, debug_509 - rx327_cur."!cursor_debug"("PASS ", "statement_control:sym", " at pos=", rx327_pos) + rx327_cur."!cursor_debug"("PASS", "statement_control:sym", " at pos=", rx327_pos) debug_509: .return (rx327_cur) rx327_restart: .annotate 'line', 4 if_null rx327_debug, debug_510 - rx327_cur."!cursor_debug"("NEXT ", "statement_control:sym") + rx327_cur."!cursor_debug"("NEXT", "statement_control:sym") debug_510: rx327_fail: (rx327_rep, rx327_pos, $I10, $P10) = rx327_cur."!mark_fail"(0) @@ -4954,7 +4929,7 @@ NQP::Compiler - NQP compiler rx327_done: rx327_cur."!cursor_fail"() if_null rx327_debug, debug_511 - rx327_cur."!cursor_debug"("FAIL ", "statement_control:sym") + rx327_cur."!cursor_debug"("FAIL", "statement_control:sym") debug_511: .return (rx327_cur) .return () @@ -4962,7 +4937,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_control:sym" :subid("76_1282016529.10767") :method +.sub "!PREFIX__statement_control:sym" :subid("76_1282324002.40722") :method .annotate 'line', 4 new $P329, "ResizablePMCArray" push $P329, "CONTROL" @@ -4971,7 +4946,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_prefix" :subid("77_1282016529.10767") :method +.sub "statement_prefix" :subid("77_1282324002.40722") :method .annotate 'line', 198 $P335 = self."!protoregex"("statement_prefix") .return ($P335) @@ -4979,7 +4954,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_prefix" :subid("78_1282016529.10767") :method +.sub "!PREFIX__statement_prefix" :subid("78_1282324002.40722") :method .annotate 'line', 198 $P337 = self."!PREFIX__!protoregex"("statement_prefix") .return ($P337) @@ -4987,7 +4962,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_prefix:sym" :subid("79_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_prefix:sym" :subid("79_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx339_tgt .local int rx339_pos @@ -5010,7 +4985,7 @@ NQP::Compiler - NQP compiler rx339_start: eq $I10, 1, rx339_restart if_null rx339_debug, debug_512 - rx339_cur."!cursor_debug"("START ", "statement_prefix:sym") + rx339_cur."!cursor_debug"("START", "statement_prefix:sym") debug_512: $I10 = self.'from'() ne $I10, -1, rxscan343_done @@ -5056,13 +5031,13 @@ NQP::Compiler - NQP compiler # rx pass rx339_cur."!cursor_pass"(rx339_pos, "statement_prefix:sym") if_null rx339_debug, debug_513 - rx339_cur."!cursor_debug"("PASS ", "statement_prefix:sym", " at pos=", rx339_pos) + rx339_cur."!cursor_debug"("PASS", "statement_prefix:sym", " at pos=", rx339_pos) debug_513: .return (rx339_cur) rx339_restart: .annotate 'line', 4 if_null rx339_debug, debug_514 - rx339_cur."!cursor_debug"("NEXT ", "statement_prefix:sym") + rx339_cur."!cursor_debug"("NEXT", "statement_prefix:sym") debug_514: rx339_fail: (rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0) @@ -5072,7 +5047,7 @@ NQP::Compiler - NQP compiler rx339_done: rx339_cur."!cursor_fail"() if_null rx339_debug, debug_515 - rx339_cur."!cursor_debug"("FAIL ", "statement_prefix:sym") + rx339_cur."!cursor_debug"("FAIL", "statement_prefix:sym") debug_515: .return (rx339_cur) .return () @@ -5080,7 +5055,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_prefix:sym" :subid("80_1282016529.10767") :method +.sub "!PREFIX__statement_prefix:sym" :subid("80_1282324002.40722") :method .annotate 'line', 4 $P341 = self."!PREFIX__!subrule"("blorst", "INIT") new $P342, "ResizablePMCArray" @@ -5090,7 +5065,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_prefix:sym" :subid("81_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_prefix:sym" :subid("81_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx346_tgt .local int rx346_pos @@ -5113,7 +5088,7 @@ NQP::Compiler - NQP compiler rx346_start: eq $I10, 1, rx346_restart if_null rx346_debug, debug_516 - rx346_cur."!cursor_debug"("START ", "statement_prefix:sym") + rx346_cur."!cursor_debug"("START", "statement_prefix:sym") debug_516: $I10 = self.'from'() ne $I10, -1, rxscan350_done @@ -5161,13 +5136,13 @@ NQP::Compiler - NQP compiler # rx pass rx346_cur."!cursor_pass"(rx346_pos, "statement_prefix:sym") if_null rx346_debug, debug_517 - rx346_cur."!cursor_debug"("PASS ", "statement_prefix:sym", " at pos=", rx346_pos) + rx346_cur."!cursor_debug"("PASS", "statement_prefix:sym", " at pos=", rx346_pos) debug_517: .return (rx346_cur) rx346_restart: .annotate 'line', 4 if_null rx346_debug, debug_518 - rx346_cur."!cursor_debug"("NEXT ", "statement_prefix:sym") + rx346_cur."!cursor_debug"("NEXT", "statement_prefix:sym") debug_518: rx346_fail: (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0) @@ -5177,7 +5152,7 @@ NQP::Compiler - NQP compiler rx346_done: rx346_cur."!cursor_fail"() if_null rx346_debug, debug_519 - rx346_cur."!cursor_debug"("FAIL ", "statement_prefix:sym") + rx346_cur."!cursor_debug"("FAIL", "statement_prefix:sym") debug_519: .return (rx346_cur) .return () @@ -5185,7 +5160,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_prefix:sym" :subid("82_1282016529.10767") :method +.sub "!PREFIX__statement_prefix:sym" :subid("82_1282324002.40722") :method .annotate 'line', 4 $P348 = self."!PREFIX__!subrule"("blorst", "try") new $P349, "ResizablePMCArray" @@ -5195,7 +5170,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "blorst" :subid("83_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "blorst" :subid("83_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx353_tgt .local int rx353_pos @@ -5218,7 +5193,7 @@ NQP::Compiler - NQP compiler rx353_start: eq $I10, 1, rx353_restart if_null rx353_debug, debug_520 - rx353_cur."!cursor_debug"("START ", "blorst") + rx353_cur."!cursor_debug"("START", "blorst") debug_520: $I10 = self.'from'() ne $I10, -1, rxscan356_done @@ -5274,13 +5249,13 @@ NQP::Compiler - NQP compiler # rx pass rx353_cur."!cursor_pass"(rx353_pos, "blorst") if_null rx353_debug, debug_521 - rx353_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx353_pos) + rx353_cur."!cursor_debug"("PASS", "blorst", " at pos=", rx353_pos) debug_521: .return (rx353_cur) rx353_restart: .annotate 'line', 4 if_null rx353_debug, debug_522 - rx353_cur."!cursor_debug"("NEXT ", "blorst") + rx353_cur."!cursor_debug"("NEXT", "blorst") debug_522: rx353_fail: (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0) @@ -5290,7 +5265,7 @@ NQP::Compiler - NQP compiler rx353_done: rx353_cur."!cursor_fail"() if_null rx353_debug, debug_523 - rx353_cur."!cursor_debug"("FAIL ", "blorst") + rx353_cur."!cursor_debug"("FAIL", "blorst") debug_523: .return (rx353_cur) .return () @@ -5298,7 +5273,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__blorst" :subid("84_1282016529.10767") :method +.sub "!PREFIX__blorst" :subid("84_1282324002.40722") :method .annotate 'line', 4 new $P355, "ResizablePMCArray" push $P355, "" @@ -5307,7 +5282,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_cond" :subid("85_1282016529.10767") :method +.sub "statement_mod_cond" :subid("85_1282324002.40722") :method .annotate 'line', 212 $P359 = self."!protoregex"("statement_mod_cond") .return ($P359) @@ -5315,7 +5290,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_cond" :subid("86_1282016529.10767") :method +.sub "!PREFIX__statement_mod_cond" :subid("86_1282324002.40722") :method .annotate 'line', 212 $P361 = self."!PREFIX__!protoregex"("statement_mod_cond") .return ($P361) @@ -5323,7 +5298,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_cond:sym" :subid("87_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_mod_cond:sym" :subid("87_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx363_tgt .local int rx363_pos @@ -5346,7 +5321,7 @@ NQP::Compiler - NQP compiler rx363_start: eq $I10, 1, rx363_restart if_null rx363_debug, debug_524 - rx363_cur."!cursor_debug"("START ", "statement_mod_cond:sym") + rx363_cur."!cursor_debug"("START", "statement_mod_cond:sym") debug_524: $I10 = self.'from'() ne $I10, -1, rxscan367_done @@ -5402,13 +5377,13 @@ NQP::Compiler - NQP compiler # rx pass rx363_cur."!cursor_pass"(rx363_pos, "statement_mod_cond:sym") if_null rx363_debug, debug_525 - rx363_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym", " at pos=", rx363_pos) + rx363_cur."!cursor_debug"("PASS", "statement_mod_cond:sym", " at pos=", rx363_pos) debug_525: .return (rx363_cur) rx363_restart: .annotate 'line', 4 if_null rx363_debug, debug_526 - rx363_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym") + rx363_cur."!cursor_debug"("NEXT", "statement_mod_cond:sym") debug_526: rx363_fail: (rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0) @@ -5418,7 +5393,7 @@ NQP::Compiler - NQP compiler rx363_done: rx363_cur."!cursor_fail"() if_null rx363_debug, debug_527 - rx363_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym") + rx363_cur."!cursor_debug"("FAIL", "statement_mod_cond:sym") debug_527: .return (rx363_cur) .return () @@ -5426,7 +5401,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_cond:sym" :subid("88_1282016529.10767") :method +.sub "!PREFIX__statement_mod_cond:sym" :subid("88_1282324002.40722") :method .annotate 'line', 4 $P365 = self."!PREFIX__!subrule"("ws", "if") new $P366, "ResizablePMCArray" @@ -5436,7 +5411,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_cond:sym" :subid("89_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_mod_cond:sym" :subid("89_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx372_tgt .local int rx372_pos @@ -5459,7 +5434,7 @@ NQP::Compiler - NQP compiler rx372_start: eq $I10, 1, rx372_restart if_null rx372_debug, debug_528 - rx372_cur."!cursor_debug"("START ", "statement_mod_cond:sym") + rx372_cur."!cursor_debug"("START", "statement_mod_cond:sym") debug_528: $I10 = self.'from'() ne $I10, -1, rxscan376_done @@ -5515,13 +5490,13 @@ NQP::Compiler - NQP compiler # rx pass rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym") if_null rx372_debug, debug_529 - rx372_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym", " at pos=", rx372_pos) + rx372_cur."!cursor_debug"("PASS", "statement_mod_cond:sym", " at pos=", rx372_pos) debug_529: .return (rx372_cur) rx372_restart: .annotate 'line', 4 if_null rx372_debug, debug_530 - rx372_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym") + rx372_cur."!cursor_debug"("NEXT", "statement_mod_cond:sym") debug_530: rx372_fail: (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0) @@ -5531,7 +5506,7 @@ NQP::Compiler - NQP compiler rx372_done: rx372_cur."!cursor_fail"() if_null rx372_debug, debug_531 - rx372_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym") + rx372_cur."!cursor_debug"("FAIL", "statement_mod_cond:sym") debug_531: .return (rx372_cur) .return () @@ -5539,7 +5514,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_cond:sym" :subid("90_1282016529.10767") :method +.sub "!PREFIX__statement_mod_cond:sym" :subid("90_1282324002.40722") :method .annotate 'line', 4 $P374 = self."!PREFIX__!subrule"("ws", "unless") new $P375, "ResizablePMCArray" @@ -5549,7 +5524,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_loop" :subid("91_1282016529.10767") :method +.sub "statement_mod_loop" :subid("91_1282324002.40722") :method .annotate 'line', 217 $P381 = self."!protoregex"("statement_mod_loop") .return ($P381) @@ -5557,7 +5532,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_loop" :subid("92_1282016529.10767") :method +.sub "!PREFIX__statement_mod_loop" :subid("92_1282324002.40722") :method .annotate 'line', 217 $P383 = self."!PREFIX__!protoregex"("statement_mod_loop") .return ($P383) @@ -5565,7 +5540,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_loop:sym" :subid("93_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_mod_loop:sym" :subid("93_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx385_tgt .local int rx385_pos @@ -5588,7 +5563,7 @@ NQP::Compiler - NQP compiler rx385_start: eq $I10, 1, rx385_restart if_null rx385_debug, debug_532 - rx385_cur."!cursor_debug"("START ", "statement_mod_loop:sym") + rx385_cur."!cursor_debug"("START", "statement_mod_loop:sym") debug_532: $I10 = self.'from'() ne $I10, -1, rxscan389_done @@ -5644,13 +5619,13 @@ NQP::Compiler - NQP compiler # rx pass rx385_cur."!cursor_pass"(rx385_pos, "statement_mod_loop:sym") if_null rx385_debug, debug_533 - rx385_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym", " at pos=", rx385_pos) + rx385_cur."!cursor_debug"("PASS", "statement_mod_loop:sym", " at pos=", rx385_pos) debug_533: .return (rx385_cur) rx385_restart: .annotate 'line', 4 if_null rx385_debug, debug_534 - rx385_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym") + rx385_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym") debug_534: rx385_fail: (rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0) @@ -5660,7 +5635,7 @@ NQP::Compiler - NQP compiler rx385_done: rx385_cur."!cursor_fail"() if_null rx385_debug, debug_535 - rx385_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym") + rx385_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym") debug_535: .return (rx385_cur) .return () @@ -5668,7 +5643,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_loop:sym" :subid("94_1282016529.10767") :method +.sub "!PREFIX__statement_mod_loop:sym" :subid("94_1282324002.40722") :method .annotate 'line', 4 $P387 = self."!PREFIX__!subrule"("ws", "while") new $P388, "ResizablePMCArray" @@ -5678,7 +5653,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_loop:sym" :subid("95_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_mod_loop:sym" :subid("95_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx394_tgt .local int rx394_pos @@ -5701,7 +5676,7 @@ NQP::Compiler - NQP compiler rx394_start: eq $I10, 1, rx394_restart if_null rx394_debug, debug_536 - rx394_cur."!cursor_debug"("START ", "statement_mod_loop:sym") + rx394_cur."!cursor_debug"("START", "statement_mod_loop:sym") debug_536: $I10 = self.'from'() ne $I10, -1, rxscan398_done @@ -5757,13 +5732,13 @@ NQP::Compiler - NQP compiler # rx pass rx394_cur."!cursor_pass"(rx394_pos, "statement_mod_loop:sym") if_null rx394_debug, debug_537 - rx394_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym", " at pos=", rx394_pos) + rx394_cur."!cursor_debug"("PASS", "statement_mod_loop:sym", " at pos=", rx394_pos) debug_537: .return (rx394_cur) rx394_restart: .annotate 'line', 4 if_null rx394_debug, debug_538 - rx394_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym") + rx394_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym") debug_538: rx394_fail: (rx394_rep, rx394_pos, $I10, $P10) = rx394_cur."!mark_fail"(0) @@ -5773,7 +5748,7 @@ NQP::Compiler - NQP compiler rx394_done: rx394_cur."!cursor_fail"() if_null rx394_debug, debug_539 - rx394_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym") + rx394_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym") debug_539: .return (rx394_cur) .return () @@ -5781,7 +5756,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_loop:sym" :subid("96_1282016529.10767") :method +.sub "!PREFIX__statement_mod_loop:sym" :subid("96_1282324002.40722") :method .annotate 'line', 4 $P396 = self."!PREFIX__!subrule"("ws", "until") new $P397, "ResizablePMCArray" @@ -5791,7 +5766,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "statement_mod_loop:sym" :subid("97_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "statement_mod_loop:sym" :subid("97_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx403_tgt .local int rx403_pos @@ -5814,7 +5789,7 @@ NQP::Compiler - NQP compiler rx403_start: eq $I10, 1, rx403_restart if_null rx403_debug, debug_540 - rx403_cur."!cursor_debug"("START ", "statement_mod_loop:sym") + rx403_cur."!cursor_debug"("START", "statement_mod_loop:sym") debug_540: $I10 = self.'from'() ne $I10, -1, rxscan407_done @@ -5870,13 +5845,13 @@ NQP::Compiler - NQP compiler # rx pass rx403_cur."!cursor_pass"(rx403_pos, "statement_mod_loop:sym") if_null rx403_debug, debug_541 - rx403_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym", " at pos=", rx403_pos) + rx403_cur."!cursor_debug"("PASS", "statement_mod_loop:sym", " at pos=", rx403_pos) debug_541: .return (rx403_cur) rx403_restart: .annotate 'line', 4 if_null rx403_debug, debug_542 - rx403_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym") + rx403_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym") debug_542: rx403_fail: (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0) @@ -5886,7 +5861,7 @@ NQP::Compiler - NQP compiler rx403_done: rx403_cur."!cursor_fail"() if_null rx403_debug, debug_543 - rx403_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym") + rx403_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym") debug_543: .return (rx403_cur) .return () @@ -5894,7 +5869,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__statement_mod_loop:sym" :subid("98_1282016529.10767") :method +.sub "!PREFIX__statement_mod_loop:sym" :subid("98_1282324002.40722") :method .annotate 'line', 4 $P405 = self."!PREFIX__!subrule"("ws", "for") new $P406, "ResizablePMCArray" @@ -5904,7 +5879,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("99_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("99_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx412_tgt .local int rx412_pos @@ -5927,7 +5902,7 @@ NQP::Compiler - NQP compiler rx412_start: eq $I10, 1, rx412_restart if_null rx412_debug, debug_544 - rx412_cur."!cursor_debug"("START ", "term:sym") + rx412_cur."!cursor_debug"("START", "term:sym") debug_544: $I10 = self.'from'() ne $I10, -1, rxscan416_done @@ -5952,13 +5927,13 @@ NQP::Compiler - NQP compiler # rx pass rx412_cur."!cursor_pass"(rx412_pos, "term:sym") if_null rx412_debug, debug_545 - rx412_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx412_pos) + rx412_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx412_pos) debug_545: .return (rx412_cur) rx412_restart: .annotate 'line', 4 if_null rx412_debug, debug_546 - rx412_cur."!cursor_debug"("NEXT ", "term:sym") + rx412_cur."!cursor_debug"("NEXT", "term:sym") debug_546: rx412_fail: (rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0) @@ -5968,7 +5943,7 @@ NQP::Compiler - NQP compiler rx412_done: rx412_cur."!cursor_fail"() if_null rx412_debug, debug_547 - rx412_cur."!cursor_debug"("FAIL ", "term:sym") + rx412_cur."!cursor_debug"("FAIL", "term:sym") debug_547: .return (rx412_cur) .return () @@ -5976,7 +5951,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("100_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("100_1282324002.40722") :method .annotate 'line', 4 $P414 = self."!PREFIX__!subrule"("fatarrow", "") new $P415, "ResizablePMCArray" @@ -5986,7 +5961,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("101_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("101_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx418_tgt .local int rx418_pos @@ -6009,7 +5984,7 @@ NQP::Compiler - NQP compiler rx418_start: eq $I10, 1, rx418_restart if_null rx418_debug, debug_548 - rx418_cur."!cursor_debug"("START ", "term:sym") + rx418_cur."!cursor_debug"("START", "term:sym") debug_548: $I10 = self.'from'() ne $I10, -1, rxscan422_done @@ -6034,13 +6009,13 @@ NQP::Compiler - NQP compiler # rx pass rx418_cur."!cursor_pass"(rx418_pos, "term:sym") if_null rx418_debug, debug_549 - rx418_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx418_pos) + rx418_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx418_pos) debug_549: .return (rx418_cur) rx418_restart: .annotate 'line', 4 if_null rx418_debug, debug_550 - rx418_cur."!cursor_debug"("NEXT ", "term:sym") + rx418_cur."!cursor_debug"("NEXT", "term:sym") debug_550: rx418_fail: (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0) @@ -6050,7 +6025,7 @@ NQP::Compiler - NQP compiler rx418_done: rx418_cur."!cursor_fail"() if_null rx418_debug, debug_551 - rx418_cur."!cursor_debug"("FAIL ", "term:sym") + rx418_cur."!cursor_debug"("FAIL", "term:sym") debug_551: .return (rx418_cur) .return () @@ -6058,7 +6033,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("102_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("102_1282324002.40722") :method .annotate 'line', 4 $P420 = self."!PREFIX__!subrule"("colonpair", "") new $P421, "ResizablePMCArray" @@ -6068,7 +6043,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("103_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("103_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx424_tgt .local int rx424_pos @@ -6091,7 +6066,7 @@ NQP::Compiler - NQP compiler rx424_start: eq $I10, 1, rx424_restart if_null rx424_debug, debug_552 - rx424_cur."!cursor_debug"("START ", "term:sym") + rx424_cur."!cursor_debug"("START", "term:sym") debug_552: $I10 = self.'from'() ne $I10, -1, rxscan428_done @@ -6116,13 +6091,13 @@ NQP::Compiler - NQP compiler # rx pass rx424_cur."!cursor_pass"(rx424_pos, "term:sym") if_null rx424_debug, debug_553 - rx424_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx424_pos) + rx424_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx424_pos) debug_553: .return (rx424_cur) rx424_restart: .annotate 'line', 4 if_null rx424_debug, debug_554 - rx424_cur."!cursor_debug"("NEXT ", "term:sym") + rx424_cur."!cursor_debug"("NEXT", "term:sym") debug_554: rx424_fail: (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0) @@ -6132,7 +6107,7 @@ NQP::Compiler - NQP compiler rx424_done: rx424_cur."!cursor_fail"() if_null rx424_debug, debug_555 - rx424_cur."!cursor_debug"("FAIL ", "term:sym") + rx424_cur."!cursor_debug"("FAIL", "term:sym") debug_555: .return (rx424_cur) .return () @@ -6140,7 +6115,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("104_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("104_1282324002.40722") :method .annotate 'line', 4 $P426 = self."!PREFIX__!subrule"("variable", "") new $P427, "ResizablePMCArray" @@ -6150,7 +6125,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("105_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("105_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx430_tgt .local int rx430_pos @@ -6173,7 +6148,7 @@ NQP::Compiler - NQP compiler rx430_start: eq $I10, 1, rx430_restart if_null rx430_debug, debug_556 - rx430_cur."!cursor_debug"("START ", "term:sym") + rx430_cur."!cursor_debug"("START", "term:sym") debug_556: $I10 = self.'from'() ne $I10, -1, rxscan434_done @@ -6198,13 +6173,13 @@ NQP::Compiler - NQP compiler # rx pass rx430_cur."!cursor_pass"(rx430_pos, "term:sym") if_null rx430_debug, debug_557 - rx430_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx430_pos) + rx430_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx430_pos) debug_557: .return (rx430_cur) rx430_restart: .annotate 'line', 4 if_null rx430_debug, debug_558 - rx430_cur."!cursor_debug"("NEXT ", "term:sym") + rx430_cur."!cursor_debug"("NEXT", "term:sym") debug_558: rx430_fail: (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0) @@ -6214,7 +6189,7 @@ NQP::Compiler - NQP compiler rx430_done: rx430_cur."!cursor_fail"() if_null rx430_debug, debug_559 - rx430_cur."!cursor_debug"("FAIL ", "term:sym") + rx430_cur."!cursor_debug"("FAIL", "term:sym") debug_559: .return (rx430_cur) .return () @@ -6222,7 +6197,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("106_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("106_1282324002.40722") :method .annotate 'line', 4 $P432 = self."!PREFIX__!subrule"("package_declarator", "") new $P433, "ResizablePMCArray" @@ -6232,7 +6207,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("107_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("107_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx436_tgt .local int rx436_pos @@ -6255,7 +6230,7 @@ NQP::Compiler - NQP compiler rx436_start: eq $I10, 1, rx436_restart if_null rx436_debug, debug_560 - rx436_cur."!cursor_debug"("START ", "term:sym") + rx436_cur."!cursor_debug"("START", "term:sym") debug_560: $I10 = self.'from'() ne $I10, -1, rxscan440_done @@ -6280,13 +6255,13 @@ NQP::Compiler - NQP compiler # rx pass rx436_cur."!cursor_pass"(rx436_pos, "term:sym") if_null rx436_debug, debug_561 - rx436_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx436_pos) + rx436_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx436_pos) debug_561: .return (rx436_cur) rx436_restart: .annotate 'line', 4 if_null rx436_debug, debug_562 - rx436_cur."!cursor_debug"("NEXT ", "term:sym") + rx436_cur."!cursor_debug"("NEXT", "term:sym") debug_562: rx436_fail: (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0) @@ -6296,7 +6271,7 @@ NQP::Compiler - NQP compiler rx436_done: rx436_cur."!cursor_fail"() if_null rx436_debug, debug_563 - rx436_cur."!cursor_debug"("FAIL ", "term:sym") + rx436_cur."!cursor_debug"("FAIL", "term:sym") debug_563: .return (rx436_cur) .return () @@ -6304,7 +6279,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("108_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("108_1282324002.40722") :method .annotate 'line', 4 $P438 = self."!PREFIX__!subrule"("scope_declarator", "") new $P439, "ResizablePMCArray" @@ -6314,7 +6289,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("109_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("109_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx442_tgt .local int rx442_pos @@ -6337,7 +6312,7 @@ NQP::Compiler - NQP compiler rx442_start: eq $I10, 1, rx442_restart if_null rx442_debug, debug_564 - rx442_cur."!cursor_debug"("START ", "term:sym") + rx442_cur."!cursor_debug"("START", "term:sym") debug_564: $I10 = self.'from'() ne $I10, -1, rxscan446_done @@ -6362,13 +6337,13 @@ NQP::Compiler - NQP compiler # rx pass rx442_cur."!cursor_pass"(rx442_pos, "term:sym") if_null rx442_debug, debug_565 - rx442_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx442_pos) + rx442_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx442_pos) debug_565: .return (rx442_cur) rx442_restart: .annotate 'line', 4 if_null rx442_debug, debug_566 - rx442_cur."!cursor_debug"("NEXT ", "term:sym") + rx442_cur."!cursor_debug"("NEXT", "term:sym") debug_566: rx442_fail: (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0) @@ -6378,7 +6353,7 @@ NQP::Compiler - NQP compiler rx442_done: rx442_cur."!cursor_fail"() if_null rx442_debug, debug_567 - rx442_cur."!cursor_debug"("FAIL ", "term:sym") + rx442_cur."!cursor_debug"("FAIL", "term:sym") debug_567: .return (rx442_cur) .return () @@ -6386,7 +6361,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("110_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("110_1282324002.40722") :method .annotate 'line', 4 $P444 = self."!PREFIX__!subrule"("routine_declarator", "") new $P445, "ResizablePMCArray" @@ -6396,9 +6371,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("111_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("111_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 - .const 'Sub' $P453 = "113_1282016529.10767" + .const 'Sub' $P453 = "113_1282324002.40722" capture_lex $P453 .local string rx448_tgt .local int rx448_pos @@ -6421,7 +6396,7 @@ NQP::Compiler - NQP compiler rx448_start: eq $I10, 1, rx448_restart if_null rx448_debug, debug_568 - rx448_cur."!cursor_debug"("START ", "term:sym") + rx448_cur."!cursor_debug"("START", "term:sym") debug_568: $I10 = self.'from'() ne $I10, -1, rxscan451_done @@ -6438,7 +6413,7 @@ NQP::Compiler - NQP compiler .annotate 'line', 231 # rx subrule "before" subtype=zerowidth negate= rx448_cur."!cursor_pos"(rx448_pos) - .const 'Sub' $P453 = "113_1282016529.10767" + .const 'Sub' $P453 = "113_1282324002.40722" capture_lex $P453 $P10 = rx448_cur."before"($P453) unless $P10, rx448_fail @@ -6452,13 +6427,13 @@ NQP::Compiler - NQP compiler # rx pass rx448_cur."!cursor_pass"(rx448_pos, "term:sym") if_null rx448_debug, debug_573 - rx448_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx448_pos) + rx448_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx448_pos) debug_573: .return (rx448_cur) rx448_restart: .annotate 'line', 4 if_null rx448_debug, debug_574 - rx448_cur."!cursor_debug"("NEXT ", "term:sym") + rx448_cur."!cursor_debug"("NEXT", "term:sym") debug_574: rx448_fail: (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0) @@ -6468,7 +6443,7 @@ NQP::Compiler - NQP compiler rx448_done: rx448_cur."!cursor_fail"() if_null rx448_debug, debug_575 - rx448_cur."!cursor_debug"("FAIL ", "term:sym") + rx448_cur."!cursor_debug"("FAIL", "term:sym") debug_575: .return (rx448_cur) .return () @@ -6476,7 +6451,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("112_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("112_1282324002.40722") :method .annotate 'line', 4 new $P450, "ResizablePMCArray" push $P450, "" @@ -6485,7 +6460,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block452" :anon :subid("113_1282016529.10767") :method :outer("111_1282016529.10767") +.sub "_block452" :anon :subid("113_1282324002.40722") :method :outer("111_1282324002.40722") .annotate 'line', 231 .local string rx454_tgt .local int rx454_pos @@ -6508,7 +6483,7 @@ NQP::Compiler - NQP compiler rx454_start: eq $I10, 1, rx454_restart if_null rx454_debug, debug_569 - rx454_cur."!cursor_debug"("START ", "") + rx454_cur."!cursor_debug"("START", "") debug_569: $I10 = self.'from'() ne $I10, -1, rxscan455_done @@ -6556,12 +6531,12 @@ NQP::Compiler - NQP compiler # rx pass rx454_cur."!cursor_pass"(rx454_pos, "") if_null rx454_debug, debug_570 - rx454_cur."!cursor_debug"("PASS ", "", " at pos=", rx454_pos) + rx454_cur."!cursor_debug"("PASS", "", " at pos=", rx454_pos) debug_570: .return (rx454_cur) rx454_restart: if_null rx454_debug, debug_571 - rx454_cur."!cursor_debug"("NEXT ", "") + rx454_cur."!cursor_debug"("NEXT", "") debug_571: rx454_fail: (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0) @@ -6571,7 +6546,7 @@ NQP::Compiler - NQP compiler rx454_done: rx454_cur."!cursor_fail"() if_null rx454_debug, debug_572 - rx454_cur."!cursor_debug"("FAIL ", "") + rx454_cur."!cursor_debug"("FAIL", "") debug_572: .return (rx454_cur) .return () @@ -6579,7 +6554,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("114_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("114_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx458_tgt .local int rx458_pos @@ -6602,7 +6577,7 @@ NQP::Compiler - NQP compiler rx458_start: eq $I10, 1, rx458_restart if_null rx458_debug, debug_576 - rx458_cur."!cursor_debug"("START ", "term:sym") + rx458_cur."!cursor_debug"("START", "term:sym") debug_576: $I10 = self.'from'() ne $I10, -1, rxscan462_done @@ -6627,13 +6602,13 @@ NQP::Compiler - NQP compiler # rx pass rx458_cur."!cursor_pass"(rx458_pos, "term:sym") if_null rx458_debug, debug_577 - rx458_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx458_pos) + rx458_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx458_pos) debug_577: .return (rx458_cur) rx458_restart: .annotate 'line', 4 if_null rx458_debug, debug_578 - rx458_cur."!cursor_debug"("NEXT ", "term:sym") + rx458_cur."!cursor_debug"("NEXT", "term:sym") debug_578: rx458_fail: (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0) @@ -6643,7 +6618,7 @@ NQP::Compiler - NQP compiler rx458_done: rx458_cur."!cursor_fail"() if_null rx458_debug, debug_579 - rx458_cur."!cursor_debug"("FAIL ", "term:sym") + rx458_cur."!cursor_debug"("FAIL", "term:sym") debug_579: .return (rx458_cur) .return () @@ -6651,7 +6626,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("115_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("115_1282324002.40722") :method .annotate 'line', 4 $P460 = self."!PREFIX__!subrule"("regex_declarator", "") new $P461, "ResizablePMCArray" @@ -6661,7 +6636,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("116_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("116_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx464_tgt .local int rx464_pos @@ -6684,7 +6659,7 @@ NQP::Compiler - NQP compiler rx464_start: eq $I10, 1, rx464_restart if_null rx464_debug, debug_580 - rx464_cur."!cursor_debug"("START ", "term:sym") + rx464_cur."!cursor_debug"("START", "term:sym") debug_580: $I10 = self.'from'() ne $I10, -1, rxscan468_done @@ -6709,13 +6684,13 @@ NQP::Compiler - NQP compiler # rx pass rx464_cur."!cursor_pass"(rx464_pos, "term:sym") if_null rx464_debug, debug_581 - rx464_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx464_pos) + rx464_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx464_pos) debug_581: .return (rx464_cur) rx464_restart: .annotate 'line', 4 if_null rx464_debug, debug_582 - rx464_cur."!cursor_debug"("NEXT ", "term:sym") + rx464_cur."!cursor_debug"("NEXT", "term:sym") debug_582: rx464_fail: (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0) @@ -6725,7 +6700,7 @@ NQP::Compiler - NQP compiler rx464_done: rx464_cur."!cursor_fail"() if_null rx464_debug, debug_583 - rx464_cur."!cursor_debug"("FAIL ", "term:sym") + rx464_cur."!cursor_debug"("FAIL", "term:sym") debug_583: .return (rx464_cur) .return () @@ -6733,7 +6708,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("117_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("117_1282324002.40722") :method .annotate 'line', 4 $P466 = self."!PREFIX__!subrule"("statement_prefix", "") new $P467, "ResizablePMCArray" @@ -6743,7 +6718,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("118_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("118_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx470_tgt .local int rx470_pos @@ -6766,7 +6741,7 @@ NQP::Compiler - NQP compiler rx470_start: eq $I10, 1, rx470_restart if_null rx470_debug, debug_584 - rx470_cur."!cursor_debug"("START ", "term:sym") + rx470_cur."!cursor_debug"("START", "term:sym") debug_584: $I10 = self.'from'() ne $I10, -1, rxscan473_done @@ -6795,13 +6770,13 @@ NQP::Compiler - NQP compiler # rx pass rx470_cur."!cursor_pass"(rx470_pos, "term:sym") if_null rx470_debug, debug_585 - rx470_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx470_pos) + rx470_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx470_pos) debug_585: .return (rx470_cur) rx470_restart: .annotate 'line', 4 if_null rx470_debug, debug_586 - rx470_cur."!cursor_debug"("NEXT ", "term:sym") + rx470_cur."!cursor_debug"("NEXT", "term:sym") debug_586: rx470_fail: (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0) @@ -6811,7 +6786,7 @@ NQP::Compiler - NQP compiler rx470_done: rx470_cur."!cursor_fail"() if_null rx470_debug, debug_587 - rx470_cur."!cursor_debug"("FAIL ", "term:sym") + rx470_cur."!cursor_debug"("FAIL", "term:sym") debug_587: .return (rx470_cur) .return () @@ -6819,7 +6794,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("119_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("119_1282324002.40722") :method .annotate 'line', 4 new $P472, "ResizablePMCArray" push $P472, "" @@ -6828,7 +6803,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "fatarrow" :subid("120_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "fatarrow" :subid("120_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx475_tgt .local int rx475_pos @@ -6851,7 +6826,7 @@ NQP::Compiler - NQP compiler rx475_start: eq $I10, 1, rx475_restart if_null rx475_debug, debug_588 - rx475_cur."!cursor_debug"("START ", "fatarrow") + rx475_cur."!cursor_debug"("START", "fatarrow") debug_588: $I10 = self.'from'() ne $I10, -1, rxscan479_done @@ -6873,23 +6848,21 @@ NQP::Compiler - NQP compiler rx475_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("key") rx475_pos = $P10."pos"() - # rx rxquantr480 ** 0..* - set_addr $I10, rxquantr480_done - rx475_cur."!mark_push"(0, rx475_pos, $I10) - rxquantr480_loop: - # rx enumcharlist negate=0 - ge rx475_pos, rx475_eos, rx475_fail + # rx enumcharlist_q negate=0 r 0..-1 sub $I10, rx475_pos, rx475_off + set rx475_rep, 0 + sub $I12, rx475_eos, rx475_pos + rxenumcharlistq480_loop: + le $I12, 0, rxenumcharlistq480_done substr $S10, rx475_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx475_fail - inc rx475_pos - set_addr $I10, rxquantr480_done - (rx475_rep) = rx475_cur."!mark_commit"($I10) - set_addr $I10, rxquantr480_done - rx475_cur."!mark_push"(rx475_rep, rx475_pos, $I10) - goto rxquantr480_loop - rxquantr480_done: + lt $I11, 0, rxenumcharlistq480_done + inc rx475_rep + inc $I10 + dec $I12 + goto rxenumcharlistq480_loop + rxenumcharlistq480_done: + add rx475_pos, rx475_pos, rx475_rep # rx literal "=>" add $I11, rx475_pos, 2 gt $I11, rx475_eos, rx475_fail @@ -6913,13 +6886,13 @@ NQP::Compiler - NQP compiler # rx pass rx475_cur."!cursor_pass"(rx475_pos, "fatarrow") if_null rx475_debug, debug_589 - rx475_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx475_pos) + rx475_cur."!cursor_debug"("PASS", "fatarrow", " at pos=", rx475_pos) debug_589: .return (rx475_cur) rx475_restart: .annotate 'line', 4 if_null rx475_debug, debug_590 - rx475_cur."!cursor_debug"("NEXT ", "fatarrow") + rx475_cur."!cursor_debug"("NEXT", "fatarrow") debug_590: rx475_fail: (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0) @@ -6929,7 +6902,7 @@ NQP::Compiler - NQP compiler rx475_done: rx475_cur."!cursor_fail"() if_null rx475_debug, debug_591 - rx475_cur."!cursor_debug"("FAIL ", "fatarrow") + rx475_cur."!cursor_debug"("FAIL", "fatarrow") debug_591: .return (rx475_cur) .return () @@ -6937,7 +6910,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__fatarrow" :subid("121_1282016529.10767") :method +.sub "!PREFIX__fatarrow" :subid("121_1282324002.40722") :method .annotate 'line', 4 $P477 = self."!PREFIX__!subrule"("identifier", "") new $P478, "ResizablePMCArray" @@ -6947,7 +6920,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "colonpair" :subid("122_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "colonpair" :subid("122_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx482_tgt .local int rx482_pos @@ -6971,7 +6944,7 @@ NQP::Compiler - NQP compiler rx482_start: eq $I10, 1, rx482_restart if_null rx482_debug, debug_592 - rx482_cur."!cursor_debug"("START ", "colonpair") + rx482_cur."!cursor_debug"("START", "colonpair") debug_592: $I10 = self.'from'() ne $I10, -1, rxscan488_done @@ -7073,13 +7046,13 @@ NQP::Compiler - NQP compiler # rx pass rx482_cur."!cursor_pass"(rx482_pos, "colonpair") if_null rx482_debug, debug_593 - rx482_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx482_pos) + rx482_cur."!cursor_debug"("PASS", "colonpair", " at pos=", rx482_pos) debug_593: .return (rx482_cur) rx482_restart: .annotate 'line', 4 if_null rx482_debug, debug_594 - rx482_cur."!cursor_debug"("NEXT ", "colonpair") + rx482_cur."!cursor_debug"("NEXT", "colonpair") debug_594: rx482_fail: (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0) @@ -7089,7 +7062,7 @@ NQP::Compiler - NQP compiler rx482_done: rx482_cur."!cursor_fail"() if_null rx482_debug, debug_595 - rx482_cur."!cursor_debug"("FAIL ", "colonpair") + rx482_cur."!cursor_debug"("FAIL", "colonpair") debug_595: .return (rx482_cur) .return () @@ -7097,7 +7070,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__colonpair" :subid("123_1282016529.10767") :method +.sub "!PREFIX__colonpair" :subid("123_1282324002.40722") :method .annotate 'line', 4 $P484 = self."!PREFIX__!subrule"("circumfix", ":") $P485 = self."!PREFIX__!subrule"("identifier", ":") @@ -7111,7 +7084,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "variable" :subid("124_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "variable" :subid("124_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx494_tgt .local int rx494_pos @@ -7135,7 +7108,7 @@ NQP::Compiler - NQP compiler rx494_start: eq $I10, 1, rx494_restart if_null rx494_debug, debug_596 - rx494_cur."!cursor_debug"("START ", "variable") + rx494_cur."!cursor_debug"("START", "variable") debug_596: $I10 = self.'from'() ne $I10, -1, rxscan499_done @@ -7263,13 +7236,13 @@ NQP::Compiler - NQP compiler # rx pass rx494_cur."!cursor_pass"(rx494_pos, "variable") if_null rx494_debug, debug_597 - rx494_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx494_pos) + rx494_cur."!cursor_debug"("PASS", "variable", " at pos=", rx494_pos) debug_597: .return (rx494_cur) rx494_restart: .annotate 'line', 4 if_null rx494_debug, debug_598 - rx494_cur."!cursor_debug"("NEXT ", "variable") + rx494_cur."!cursor_debug"("NEXT", "variable") debug_598: rx494_fail: (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0) @@ -7279,7 +7252,7 @@ NQP::Compiler - NQP compiler rx494_done: rx494_cur."!cursor_fail"() if_null rx494_debug, debug_599 - rx494_cur."!cursor_debug"("FAIL ", "variable") + rx494_cur."!cursor_debug"("FAIL", "variable") debug_599: .return (rx494_cur) .return () @@ -7287,7 +7260,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__variable" :subid("125_1282016529.10767") :method +.sub "!PREFIX__variable" :subid("125_1282324002.40722") :method .annotate 'line', 4 $P496 = self."!PREFIX__!subrule"("sigil", "") $P497 = self."!PREFIX__!subrule"("sigil", "") @@ -7302,7 +7275,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "sigil" :subid("126_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "sigil" :subid("126_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx506_tgt .local int rx506_pos @@ -7325,7 +7298,7 @@ NQP::Compiler - NQP compiler rx506_start: eq $I10, 1, rx506_restart if_null rx506_debug, debug_600 - rx506_cur."!cursor_debug"("START ", "sigil") + rx506_cur."!cursor_debug"("START", "sigil") debug_600: $I10 = self.'from'() ne $I10, -1, rxscan509_done @@ -7350,13 +7323,13 @@ NQP::Compiler - NQP compiler # rx pass rx506_cur."!cursor_pass"(rx506_pos, "sigil") if_null rx506_debug, debug_601 - rx506_cur."!cursor_debug"("PASS ", "sigil", " at pos=", rx506_pos) + rx506_cur."!cursor_debug"("PASS", "sigil", " at pos=", rx506_pos) debug_601: .return (rx506_cur) rx506_restart: .annotate 'line', 4 if_null rx506_debug, debug_602 - rx506_cur."!cursor_debug"("NEXT ", "sigil") + rx506_cur."!cursor_debug"("NEXT", "sigil") debug_602: rx506_fail: (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0) @@ -7366,7 +7339,7 @@ NQP::Compiler - NQP compiler rx506_done: rx506_cur."!cursor_fail"() if_null rx506_debug, debug_603 - rx506_cur."!cursor_debug"("FAIL ", "sigil") + rx506_cur."!cursor_debug"("FAIL", "sigil") debug_603: .return (rx506_cur) .return () @@ -7374,7 +7347,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__sigil" :subid("127_1282016529.10767") :method +.sub "!PREFIX__sigil" :subid("127_1282324002.40722") :method .annotate 'line', 4 new $P508, "ResizablePMCArray" push $P508, "&" @@ -7386,7 +7359,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "twigil" :subid("128_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "twigil" :subid("128_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx511_tgt .local int rx511_pos @@ -7409,7 +7382,7 @@ NQP::Compiler - NQP compiler rx511_start: eq $I10, 1, rx511_restart if_null rx511_debug, debug_604 - rx511_cur."!cursor_debug"("START ", "twigil") + rx511_cur."!cursor_debug"("START", "twigil") debug_604: $I10 = self.'from'() ne $I10, -1, rxscan514_done @@ -7434,13 +7407,13 @@ NQP::Compiler - NQP compiler # rx pass rx511_cur."!cursor_pass"(rx511_pos, "twigil") if_null rx511_debug, debug_605 - rx511_cur."!cursor_debug"("PASS ", "twigil", " at pos=", rx511_pos) + rx511_cur."!cursor_debug"("PASS", "twigil", " at pos=", rx511_pos) debug_605: .return (rx511_cur) rx511_restart: .annotate 'line', 4 if_null rx511_debug, debug_606 - rx511_cur."!cursor_debug"("NEXT ", "twigil") + rx511_cur."!cursor_debug"("NEXT", "twigil") debug_606: rx511_fail: (rx511_rep, rx511_pos, $I10, $P10) = rx511_cur."!mark_fail"(0) @@ -7450,7 +7423,7 @@ NQP::Compiler - NQP compiler rx511_done: rx511_cur."!cursor_fail"() if_null rx511_debug, debug_607 - rx511_cur."!cursor_debug"("FAIL ", "twigil") + rx511_cur."!cursor_debug"("FAIL", "twigil") debug_607: .return (rx511_cur) .return () @@ -7458,7 +7431,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__twigil" :subid("129_1282016529.10767") :method +.sub "!PREFIX__twigil" :subid("129_1282324002.40722") :method .annotate 'line', 4 new $P513, "ResizablePMCArray" push $P513, "?" @@ -7469,7 +7442,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "package_declarator" :subid("130_1282016529.10767") :method +.sub "package_declarator" :subid("130_1282324002.40722") :method .annotate 'line', 259 $P516 = self."!protoregex"("package_declarator") .return ($P516) @@ -7477,7 +7450,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__package_declarator" :subid("131_1282016529.10767") :method +.sub "!PREFIX__package_declarator" :subid("131_1282324002.40722") :method .annotate 'line', 259 $P518 = self."!PREFIX__!protoregex"("package_declarator") .return ($P518) @@ -7485,7 +7458,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "package_declarator:sym" :subid("132_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "package_declarator:sym" :subid("132_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx520_tgt .local int rx520_pos @@ -7508,7 +7481,7 @@ NQP::Compiler - NQP compiler rx520_start: eq $I10, 1, rx520_restart if_null rx520_debug, debug_608 - rx520_cur."!cursor_debug"("START ", "package_declarator:sym") + rx520_cur."!cursor_debug"("START", "package_declarator:sym") debug_608: $I10 = self.'from'() ne $I10, -1, rxscan524_done @@ -7554,13 +7527,13 @@ NQP::Compiler - NQP compiler # rx pass rx520_cur."!cursor_pass"(rx520_pos, "package_declarator:sym") if_null rx520_debug, debug_609 - rx520_cur."!cursor_debug"("PASS ", "package_declarator:sym", " at pos=", rx520_pos) + rx520_cur."!cursor_debug"("PASS", "package_declarator:sym", " at pos=", rx520_pos) debug_609: .return (rx520_cur) rx520_restart: .annotate 'line', 4 if_null rx520_debug, debug_610 - rx520_cur."!cursor_debug"("NEXT ", "package_declarator:sym") + rx520_cur."!cursor_debug"("NEXT", "package_declarator:sym") debug_610: rx520_fail: (rx520_rep, rx520_pos, $I10, $P10) = rx520_cur."!mark_fail"(0) @@ -7570,7 +7543,7 @@ NQP::Compiler - NQP compiler rx520_done: rx520_cur."!cursor_fail"() if_null rx520_debug, debug_611 - rx520_cur."!cursor_debug"("FAIL ", "package_declarator:sym") + rx520_cur."!cursor_debug"("FAIL", "package_declarator:sym") debug_611: .return (rx520_cur) .return () @@ -7578,7 +7551,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__package_declarator:sym" :subid("133_1282016529.10767") :method +.sub "!PREFIX__package_declarator:sym" :subid("133_1282324002.40722") :method .annotate 'line', 4 $P522 = self."!PREFIX__!subrule"("package_def", "module") new $P523, "ResizablePMCArray" @@ -7588,7 +7561,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "package_declarator:sym" :subid("134_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "package_declarator:sym" :subid("134_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx527_tgt .local int rx527_pos @@ -7611,7 +7584,7 @@ NQP::Compiler - NQP compiler rx527_start: eq $I10, 1, rx527_restart if_null rx527_debug, debug_612 - rx527_cur."!cursor_debug"("START ", "package_declarator:sym") + rx527_cur."!cursor_debug"("START", "package_declarator:sym") debug_612: $I10 = self.'from'() ne $I10, -1, rxscan532_done @@ -7670,13 +7643,13 @@ NQP::Compiler - NQP compiler # rx pass rx527_cur."!cursor_pass"(rx527_pos, "package_declarator:sym") if_null rx527_debug, debug_613 - rx527_cur."!cursor_debug"("PASS ", "package_declarator:sym", " at pos=", rx527_pos) + rx527_cur."!cursor_debug"("PASS", "package_declarator:sym", " at pos=", rx527_pos) debug_613: .return (rx527_cur) rx527_restart: .annotate 'line', 4 if_null rx527_debug, debug_614 - rx527_cur."!cursor_debug"("NEXT ", "package_declarator:sym") + rx527_cur."!cursor_debug"("NEXT", "package_declarator:sym") debug_614: rx527_fail: (rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0) @@ -7686,7 +7659,7 @@ NQP::Compiler - NQP compiler rx527_done: rx527_cur."!cursor_fail"() if_null rx527_debug, debug_615 - rx527_cur."!cursor_debug"("FAIL ", "package_declarator:sym") + rx527_cur."!cursor_debug"("FAIL", "package_declarator:sym") debug_615: .return (rx527_cur) .return () @@ -7694,7 +7667,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__package_declarator:sym" :subid("135_1282016529.10767") :method +.sub "!PREFIX__package_declarator:sym" :subid("135_1282324002.40722") :method .annotate 'line', 4 $P529 = self."!PREFIX__!subrule"("package_def", "grammar") $P530 = self."!PREFIX__!subrule"("package_def", "class") @@ -7706,7 +7679,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "package_def" :subid("136_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "package_def" :subid("136_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx536_tgt .local int rx536_pos @@ -7730,7 +7703,7 @@ NQP::Compiler - NQP compiler rx536_start: eq $I10, 1, rx536_restart if_null rx536_debug, debug_616 - rx536_cur."!cursor_debug"("START ", "package_def") + rx536_cur."!cursor_debug"("START", "package_def") debug_616: $I10 = self.'from'() ne $I10, -1, rxscan540_done @@ -7901,13 +7874,13 @@ NQP::Compiler - NQP compiler # rx pass rx536_cur."!cursor_pass"(rx536_pos, "package_def") if_null rx536_debug, debug_617 - rx536_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx536_pos) + rx536_cur."!cursor_debug"("PASS", "package_def", " at pos=", rx536_pos) debug_617: .return (rx536_cur) rx536_restart: .annotate 'line', 4 if_null rx536_debug, debug_618 - rx536_cur."!cursor_debug"("NEXT ", "package_def") + rx536_cur."!cursor_debug"("NEXT", "package_def") debug_618: rx536_fail: (rx536_rep, rx536_pos, $I10, $P10) = rx536_cur."!mark_fail"(0) @@ -7917,7 +7890,7 @@ NQP::Compiler - NQP compiler rx536_done: rx536_cur."!cursor_fail"() if_null rx536_debug, debug_619 - rx536_cur."!cursor_debug"("FAIL ", "package_def") + rx536_cur."!cursor_debug"("FAIL", "package_def") debug_619: .return (rx536_cur) .return () @@ -7925,7 +7898,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__package_def" :subid("137_1282016529.10767") :method +.sub "!PREFIX__package_def" :subid("137_1282324002.40722") :method .annotate 'line', 4 $P538 = self."!PREFIX__!subrule"("ws", "") new $P539, "ResizablePMCArray" @@ -7935,7 +7908,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scope_declarator" :subid("138_1282016529.10767") :method +.sub "scope_declarator" :subid("138_1282324002.40722") :method .annotate 'line', 273 $P559 = self."!protoregex"("scope_declarator") .return ($P559) @@ -7943,7 +7916,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scope_declarator" :subid("139_1282016529.10767") :method +.sub "!PREFIX__scope_declarator" :subid("139_1282324002.40722") :method .annotate 'line', 273 $P561 = self."!PREFIX__!protoregex"("scope_declarator") .return ($P561) @@ -7951,7 +7924,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scope_declarator:sym" :subid("140_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "scope_declarator:sym" :subid("140_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx563_tgt .local int rx563_pos @@ -7974,7 +7947,7 @@ NQP::Compiler - NQP compiler rx563_start: eq $I10, 1, rx563_restart if_null rx563_debug, debug_620 - rx563_cur."!cursor_debug"("START ", "scope_declarator:sym") + rx563_cur."!cursor_debug"("START", "scope_declarator:sym") debug_620: $I10 = self.'from'() ne $I10, -1, rxscan567_done @@ -8020,13 +7993,13 @@ NQP::Compiler - NQP compiler # rx pass rx563_cur."!cursor_pass"(rx563_pos, "scope_declarator:sym") if_null rx563_debug, debug_621 - rx563_cur."!cursor_debug"("PASS ", "scope_declarator:sym", " at pos=", rx563_pos) + rx563_cur."!cursor_debug"("PASS", "scope_declarator:sym", " at pos=", rx563_pos) debug_621: .return (rx563_cur) rx563_restart: .annotate 'line', 4 if_null rx563_debug, debug_622 - rx563_cur."!cursor_debug"("NEXT ", "scope_declarator:sym") + rx563_cur."!cursor_debug"("NEXT", "scope_declarator:sym") debug_622: rx563_fail: (rx563_rep, rx563_pos, $I10, $P10) = rx563_cur."!mark_fail"(0) @@ -8036,7 +8009,7 @@ NQP::Compiler - NQP compiler rx563_done: rx563_cur."!cursor_fail"() if_null rx563_debug, debug_623 - rx563_cur."!cursor_debug"("FAIL ", "scope_declarator:sym") + rx563_cur."!cursor_debug"("FAIL", "scope_declarator:sym") debug_623: .return (rx563_cur) .return () @@ -8044,7 +8017,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scope_declarator:sym" :subid("141_1282016529.10767") :method +.sub "!PREFIX__scope_declarator:sym" :subid("141_1282324002.40722") :method .annotate 'line', 4 $P565 = self."!PREFIX__!subrule"("scoped", "my") new $P566, "ResizablePMCArray" @@ -8054,7 +8027,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scope_declarator:sym" :subid("142_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "scope_declarator:sym" :subid("142_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx570_tgt .local int rx570_pos @@ -8077,7 +8050,7 @@ NQP::Compiler - NQP compiler rx570_start: eq $I10, 1, rx570_restart if_null rx570_debug, debug_624 - rx570_cur."!cursor_debug"("START ", "scope_declarator:sym") + rx570_cur."!cursor_debug"("START", "scope_declarator:sym") debug_624: $I10 = self.'from'() ne $I10, -1, rxscan574_done @@ -8123,13 +8096,13 @@ NQP::Compiler - NQP compiler # rx pass rx570_cur."!cursor_pass"(rx570_pos, "scope_declarator:sym") if_null rx570_debug, debug_625 - rx570_cur."!cursor_debug"("PASS ", "scope_declarator:sym", " at pos=", rx570_pos) + rx570_cur."!cursor_debug"("PASS", "scope_declarator:sym", " at pos=", rx570_pos) debug_625: .return (rx570_cur) rx570_restart: .annotate 'line', 4 if_null rx570_debug, debug_626 - rx570_cur."!cursor_debug"("NEXT ", "scope_declarator:sym") + rx570_cur."!cursor_debug"("NEXT", "scope_declarator:sym") debug_626: rx570_fail: (rx570_rep, rx570_pos, $I10, $P10) = rx570_cur."!mark_fail"(0) @@ -8139,7 +8112,7 @@ NQP::Compiler - NQP compiler rx570_done: rx570_cur."!cursor_fail"() if_null rx570_debug, debug_627 - rx570_cur."!cursor_debug"("FAIL ", "scope_declarator:sym") + rx570_cur."!cursor_debug"("FAIL", "scope_declarator:sym") debug_627: .return (rx570_cur) .return () @@ -8147,7 +8120,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scope_declarator:sym" :subid("143_1282016529.10767") :method +.sub "!PREFIX__scope_declarator:sym" :subid("143_1282324002.40722") :method .annotate 'line', 4 $P572 = self."!PREFIX__!subrule"("scoped", "our") new $P573, "ResizablePMCArray" @@ -8157,7 +8130,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scope_declarator:sym" :subid("144_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "scope_declarator:sym" :subid("144_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx577_tgt .local int rx577_pos @@ -8180,7 +8153,7 @@ NQP::Compiler - NQP compiler rx577_start: eq $I10, 1, rx577_restart if_null rx577_debug, debug_628 - rx577_cur."!cursor_debug"("START ", "scope_declarator:sym") + rx577_cur."!cursor_debug"("START", "scope_declarator:sym") debug_628: $I10 = self.'from'() ne $I10, -1, rxscan581_done @@ -8226,13 +8199,13 @@ NQP::Compiler - NQP compiler # rx pass rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym") if_null rx577_debug, debug_629 - rx577_cur."!cursor_debug"("PASS ", "scope_declarator:sym", " at pos=", rx577_pos) + rx577_cur."!cursor_debug"("PASS", "scope_declarator:sym", " at pos=", rx577_pos) debug_629: .return (rx577_cur) rx577_restart: .annotate 'line', 4 if_null rx577_debug, debug_630 - rx577_cur."!cursor_debug"("NEXT ", "scope_declarator:sym") + rx577_cur."!cursor_debug"("NEXT", "scope_declarator:sym") debug_630: rx577_fail: (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0) @@ -8242,7 +8215,7 @@ NQP::Compiler - NQP compiler rx577_done: rx577_cur."!cursor_fail"() if_null rx577_debug, debug_631 - rx577_cur."!cursor_debug"("FAIL ", "scope_declarator:sym") + rx577_cur."!cursor_debug"("FAIL", "scope_declarator:sym") debug_631: .return (rx577_cur) .return () @@ -8250,7 +8223,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scope_declarator:sym" :subid("145_1282016529.10767") :method +.sub "!PREFIX__scope_declarator:sym" :subid("145_1282324002.40722") :method .annotate 'line', 4 $P579 = self."!PREFIX__!subrule"("scoped", "has") new $P580, "ResizablePMCArray" @@ -8260,7 +8233,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "scoped" :subid("146_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "scoped" :subid("146_1282324002.40722") :method :outer("11_1282324002.40722") .param pmc param_584 .annotate 'line', 278 .lex "$*SCOPE", param_584 @@ -8286,7 +8259,7 @@ NQP::Compiler - NQP compiler rx585_start: eq $I10, 1, rx585_restart if_null rx585_debug, debug_632 - rx585_cur."!cursor_debug"("START ", "scoped") + rx585_cur."!cursor_debug"("START", "scoped") debug_632: $I10 = self.'from'() ne $I10, -1, rxscan590_done @@ -8347,13 +8320,13 @@ NQP::Compiler - NQP compiler # rx pass rx585_cur."!cursor_pass"(rx585_pos, "scoped") if_null rx585_debug, debug_633 - rx585_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx585_pos) + rx585_cur."!cursor_debug"("PASS", "scoped", " at pos=", rx585_pos) debug_633: .return (rx585_cur) rx585_restart: .annotate 'line', 4 if_null rx585_debug, debug_634 - rx585_cur."!cursor_debug"("NEXT ", "scoped") + rx585_cur."!cursor_debug"("NEXT", "scoped") debug_634: rx585_fail: (rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0) @@ -8363,7 +8336,7 @@ NQP::Compiler - NQP compiler rx585_done: rx585_cur."!cursor_fail"() if_null rx585_debug, debug_635 - rx585_cur."!cursor_debug"("FAIL ", "scoped") + rx585_cur."!cursor_debug"("FAIL", "scoped") debug_635: .return (rx585_cur) .return () @@ -8371,7 +8344,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__scoped" :subid("147_1282016529.10767") :method +.sub "!PREFIX__scoped" :subid("147_1282324002.40722") :method .annotate 'line', 4 $P587 = self."!PREFIX__!subrule"("ws", "") $P588 = self."!PREFIX__!subrule"("ws", "") @@ -8383,7 +8356,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "typename" :subid("148_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "typename" :subid("148_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx597_tgt .local int rx597_pos @@ -8406,7 +8379,7 @@ NQP::Compiler - NQP compiler rx597_start: eq $I10, 1, rx597_restart if_null rx597_debug, debug_636 - rx597_cur."!cursor_debug"("START ", "typename") + rx597_cur."!cursor_debug"("START", "typename") debug_636: $I10 = self.'from'() ne $I10, -1, rxscan601_done @@ -8431,13 +8404,13 @@ NQP::Compiler - NQP compiler # rx pass rx597_cur."!cursor_pass"(rx597_pos, "typename") if_null rx597_debug, debug_637 - rx597_cur."!cursor_debug"("PASS ", "typename", " at pos=", rx597_pos) + rx597_cur."!cursor_debug"("PASS", "typename", " at pos=", rx597_pos) debug_637: .return (rx597_cur) rx597_restart: .annotate 'line', 4 if_null rx597_debug, debug_638 - rx597_cur."!cursor_debug"("NEXT ", "typename") + rx597_cur."!cursor_debug"("NEXT", "typename") debug_638: rx597_fail: (rx597_rep, rx597_pos, $I10, $P10) = rx597_cur."!mark_fail"(0) @@ -8447,7 +8420,7 @@ NQP::Compiler - NQP compiler rx597_done: rx597_cur."!cursor_fail"() if_null rx597_debug, debug_639 - rx597_cur."!cursor_debug"("FAIL ", "typename") + rx597_cur."!cursor_debug"("FAIL", "typename") debug_639: .return (rx597_cur) .return () @@ -8455,7 +8428,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__typename" :subid("149_1282016529.10767") :method +.sub "!PREFIX__typename" :subid("149_1282324002.40722") :method .annotate 'line', 4 $P599 = self."!PREFIX__!subrule"("name", "") new $P600, "ResizablePMCArray" @@ -8465,7 +8438,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "declarator" :subid("150_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "declarator" :subid("150_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx603_tgt .local int rx603_pos @@ -8488,7 +8461,7 @@ NQP::Compiler - NQP compiler rx603_start: eq $I10, 1, rx603_restart if_null rx603_debug, debug_640 - rx603_cur."!cursor_debug"("START ", "declarator") + rx603_cur."!cursor_debug"("START", "declarator") debug_640: $I10 = self.'from'() ne $I10, -1, rxscan608_done @@ -8529,13 +8502,13 @@ NQP::Compiler - NQP compiler # rx pass rx603_cur."!cursor_pass"(rx603_pos, "declarator") if_null rx603_debug, debug_641 - rx603_cur."!cursor_debug"("PASS ", "declarator", " at pos=", rx603_pos) + rx603_cur."!cursor_debug"("PASS", "declarator", " at pos=", rx603_pos) debug_641: .return (rx603_cur) rx603_restart: .annotate 'line', 4 if_null rx603_debug, debug_642 - rx603_cur."!cursor_debug"("NEXT ", "declarator") + rx603_cur."!cursor_debug"("NEXT", "declarator") debug_642: rx603_fail: (rx603_rep, rx603_pos, $I10, $P10) = rx603_cur."!mark_fail"(0) @@ -8545,7 +8518,7 @@ NQP::Compiler - NQP compiler rx603_done: rx603_cur."!cursor_fail"() if_null rx603_debug, debug_643 - rx603_cur."!cursor_debug"("FAIL ", "declarator") + rx603_cur."!cursor_debug"("FAIL", "declarator") debug_643: .return (rx603_cur) .return () @@ -8553,7 +8526,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__declarator" :subid("151_1282016529.10767") :method +.sub "!PREFIX__declarator" :subid("151_1282324002.40722") :method .annotate 'line', 4 $P605 = self."!PREFIX__!subrule"("routine_declarator", "") $P606 = self."!PREFIX__!subrule"("variable_declarator", "") @@ -8565,7 +8538,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "variable_declarator" :subid("152_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "variable_declarator" :subid("152_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx611_tgt .local int rx611_pos @@ -8588,7 +8561,7 @@ NQP::Compiler - NQP compiler rx611_start: eq $I10, 1, rx611_restart if_null rx611_debug, debug_644 - rx611_cur."!cursor_debug"("START ", "variable_declarator") + rx611_cur."!cursor_debug"("START", "variable_declarator") debug_644: $I10 = self.'from'() ne $I10, -1, rxscan615_done @@ -8613,13 +8586,13 @@ NQP::Compiler - NQP compiler # rx pass rx611_cur."!cursor_pass"(rx611_pos, "variable_declarator") if_null rx611_debug, debug_645 - rx611_cur."!cursor_debug"("PASS ", "variable_declarator", " at pos=", rx611_pos) + rx611_cur."!cursor_debug"("PASS", "variable_declarator", " at pos=", rx611_pos) debug_645: .return (rx611_cur) rx611_restart: .annotate 'line', 4 if_null rx611_debug, debug_646 - rx611_cur."!cursor_debug"("NEXT ", "variable_declarator") + rx611_cur."!cursor_debug"("NEXT", "variable_declarator") debug_646: rx611_fail: (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0) @@ -8629,7 +8602,7 @@ NQP::Compiler - NQP compiler rx611_done: rx611_cur."!cursor_fail"() if_null rx611_debug, debug_647 - rx611_cur."!cursor_debug"("FAIL ", "variable_declarator") + rx611_cur."!cursor_debug"("FAIL", "variable_declarator") debug_647: .return (rx611_cur) .return () @@ -8637,7 +8610,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__variable_declarator" :subid("153_1282016529.10767") :method +.sub "!PREFIX__variable_declarator" :subid("153_1282324002.40722") :method .annotate 'line', 4 $P613 = self."!PREFIX__!subrule"("variable", "") new $P614, "ResizablePMCArray" @@ -8647,7 +8620,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "routine_declarator" :subid("154_1282016529.10767") :method +.sub "routine_declarator" :subid("154_1282324002.40722") :method .annotate 'line', 292 $P617 = self."!protoregex"("routine_declarator") .return ($P617) @@ -8655,7 +8628,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__routine_declarator" :subid("155_1282016529.10767") :method +.sub "!PREFIX__routine_declarator" :subid("155_1282324002.40722") :method .annotate 'line', 292 $P619 = self."!PREFIX__!protoregex"("routine_declarator") .return ($P619) @@ -8663,7 +8636,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "routine_declarator:sym" :subid("156_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "routine_declarator:sym" :subid("156_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx621_tgt .local int rx621_pos @@ -8686,7 +8659,7 @@ NQP::Compiler - NQP compiler rx621_start: eq $I10, 1, rx621_restart if_null rx621_debug, debug_648 - rx621_cur."!cursor_debug"("START ", "routine_declarator:sym") + rx621_cur."!cursor_debug"("START", "routine_declarator:sym") debug_648: $I10 = self.'from'() ne $I10, -1, rxscan625_done @@ -8732,13 +8705,13 @@ NQP::Compiler - NQP compiler # rx pass rx621_cur."!cursor_pass"(rx621_pos, "routine_declarator:sym") if_null rx621_debug, debug_649 - rx621_cur."!cursor_debug"("PASS ", "routine_declarator:sym", " at pos=", rx621_pos) + rx621_cur."!cursor_debug"("PASS", "routine_declarator:sym", " at pos=", rx621_pos) debug_649: .return (rx621_cur) rx621_restart: .annotate 'line', 4 if_null rx621_debug, debug_650 - rx621_cur."!cursor_debug"("NEXT ", "routine_declarator:sym") + rx621_cur."!cursor_debug"("NEXT", "routine_declarator:sym") debug_650: rx621_fail: (rx621_rep, rx621_pos, $I10, $P10) = rx621_cur."!mark_fail"(0) @@ -8748,7 +8721,7 @@ NQP::Compiler - NQP compiler rx621_done: rx621_cur."!cursor_fail"() if_null rx621_debug, debug_651 - rx621_cur."!cursor_debug"("FAIL ", "routine_declarator:sym") + rx621_cur."!cursor_debug"("FAIL", "routine_declarator:sym") debug_651: .return (rx621_cur) .return () @@ -8756,7 +8729,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__routine_declarator:sym" :subid("157_1282016529.10767") :method +.sub "!PREFIX__routine_declarator:sym" :subid("157_1282324002.40722") :method .annotate 'line', 4 $P623 = self."!PREFIX__!subrule"("routine_def", "sub") new $P624, "ResizablePMCArray" @@ -8766,7 +8739,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "routine_declarator:sym" :subid("158_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "routine_declarator:sym" :subid("158_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx628_tgt .local int rx628_pos @@ -8789,7 +8762,7 @@ NQP::Compiler - NQP compiler rx628_start: eq $I10, 1, rx628_restart if_null rx628_debug, debug_652 - rx628_cur."!cursor_debug"("START ", "routine_declarator:sym") + rx628_cur."!cursor_debug"("START", "routine_declarator:sym") debug_652: $I10 = self.'from'() ne $I10, -1, rxscan632_done @@ -8835,13 +8808,13 @@ NQP::Compiler - NQP compiler # rx pass rx628_cur."!cursor_pass"(rx628_pos, "routine_declarator:sym") if_null rx628_debug, debug_653 - rx628_cur."!cursor_debug"("PASS ", "routine_declarator:sym", " at pos=", rx628_pos) + rx628_cur."!cursor_debug"("PASS", "routine_declarator:sym", " at pos=", rx628_pos) debug_653: .return (rx628_cur) rx628_restart: .annotate 'line', 4 if_null rx628_debug, debug_654 - rx628_cur."!cursor_debug"("NEXT ", "routine_declarator:sym") + rx628_cur."!cursor_debug"("NEXT", "routine_declarator:sym") debug_654: rx628_fail: (rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0) @@ -8851,7 +8824,7 @@ NQP::Compiler - NQP compiler rx628_done: rx628_cur."!cursor_fail"() if_null rx628_debug, debug_655 - rx628_cur."!cursor_debug"("FAIL ", "routine_declarator:sym") + rx628_cur."!cursor_debug"("FAIL", "routine_declarator:sym") debug_655: .return (rx628_cur) .return () @@ -8859,7 +8832,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__routine_declarator:sym" :subid("159_1282016529.10767") :method +.sub "!PREFIX__routine_declarator:sym" :subid("159_1282324002.40722") :method .annotate 'line', 4 $P630 = self."!PREFIX__!subrule"("method_def", "method") new $P631, "ResizablePMCArray" @@ -8869,7 +8842,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "routine_def" :subid("160_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "routine_def" :subid("160_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx635_tgt .local int rx635_pos @@ -8893,7 +8866,7 @@ NQP::Compiler - NQP compiler rx635_start: eq $I10, 1, rx635_restart if_null rx635_debug, debug_656 - rx635_cur."!cursor_debug"("START ", "routine_def") + rx635_cur."!cursor_debug"("START", "routine_def") debug_656: $I10 = self.'from'() ne $I10, -1, rxscan639_done @@ -9068,13 +9041,13 @@ NQP::Compiler - NQP compiler # rx pass rx635_cur."!cursor_pass"(rx635_pos, "routine_def") if_null rx635_debug, debug_657 - rx635_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx635_pos) + rx635_cur."!cursor_debug"("PASS", "routine_def", " at pos=", rx635_pos) debug_657: .return (rx635_cur) rx635_restart: .annotate 'line', 4 if_null rx635_debug, debug_658 - rx635_cur."!cursor_debug"("NEXT ", "routine_def") + rx635_cur."!cursor_debug"("NEXT", "routine_def") debug_658: rx635_fail: (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0) @@ -9084,7 +9057,7 @@ NQP::Compiler - NQP compiler rx635_done: rx635_cur."!cursor_fail"() if_null rx635_debug, debug_659 - rx635_cur."!cursor_debug"("FAIL ", "routine_def") + rx635_cur."!cursor_debug"("FAIL", "routine_def") debug_659: .return (rx635_cur) .return () @@ -9092,7 +9065,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__routine_def" :subid("161_1282016529.10767") :method +.sub "!PREFIX__routine_def" :subid("161_1282324002.40722") :method .annotate 'line', 4 $P637 = self."!PREFIX__!subrule"("ws", "") new $P638, "ResizablePMCArray" @@ -9102,7 +9075,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "method_def" :subid("162_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "method_def" :subid("162_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx658_tgt .local int rx658_pos @@ -9126,7 +9099,7 @@ NQP::Compiler - NQP compiler rx658_start: eq $I10, 1, rx658_restart if_null rx658_debug, debug_660 - rx658_cur."!cursor_debug"("START ", "method_def") + rx658_cur."!cursor_debug"("START", "method_def") debug_660: $I10 = self.'from'() ne $I10, -1, rxscan662_done @@ -9269,13 +9242,13 @@ NQP::Compiler - NQP compiler # rx pass rx658_cur."!cursor_pass"(rx658_pos, "method_def") if_null rx658_debug, debug_661 - rx658_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx658_pos) + rx658_cur."!cursor_debug"("PASS", "method_def", " at pos=", rx658_pos) debug_661: .return (rx658_cur) rx658_restart: .annotate 'line', 4 if_null rx658_debug, debug_662 - rx658_cur."!cursor_debug"("NEXT ", "method_def") + rx658_cur."!cursor_debug"("NEXT", "method_def") debug_662: rx658_fail: (rx658_rep, rx658_pos, $I10, $P10) = rx658_cur."!mark_fail"(0) @@ -9285,7 +9258,7 @@ NQP::Compiler - NQP compiler rx658_done: rx658_cur."!cursor_fail"() if_null rx658_debug, debug_663 - rx658_cur."!cursor_debug"("FAIL ", "method_def") + rx658_cur."!cursor_debug"("FAIL", "method_def") debug_663: .return (rx658_cur) .return () @@ -9293,7 +9266,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__method_def" :subid("163_1282016529.10767") :method +.sub "!PREFIX__method_def" :subid("163_1282324002.40722") :method .annotate 'line', 4 $P660 = self."!PREFIX__!subrule"("ws", "") new $P661, "ResizablePMCArray" @@ -9303,7 +9276,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "multi_declarator" :subid("164_1282016529.10767") :method +.sub "multi_declarator" :subid("164_1282324002.40722") :method .annotate 'line', 312 $P678 = self."!protoregex"("multi_declarator") .return ($P678) @@ -9311,7 +9284,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__multi_declarator" :subid("165_1282016529.10767") :method +.sub "!PREFIX__multi_declarator" :subid("165_1282324002.40722") :method .annotate 'line', 312 $P680 = self."!PREFIX__!protoregex"("multi_declarator") .return ($P680) @@ -9319,7 +9292,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "multi_declarator:sym" :subid("166_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "multi_declarator:sym" :subid("166_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 314 new $P682, "Undef" .lex "$*MULTINESS", $P682 @@ -9345,7 +9318,7 @@ NQP::Compiler - NQP compiler rx683_start: eq $I10, 1, rx683_restart if_null rx683_debug, debug_664 - rx683_cur."!cursor_debug"("START ", "multi_declarator:sym") + rx683_cur."!cursor_debug"("START", "multi_declarator:sym") debug_664: $I10 = self.'from'() ne $I10, -1, rxscan687_done @@ -9425,13 +9398,13 @@ NQP::Compiler - NQP compiler # rx pass rx683_cur."!cursor_pass"(rx683_pos, "multi_declarator:sym") if_null rx683_debug, debug_665 - rx683_cur."!cursor_debug"("PASS ", "multi_declarator:sym", " at pos=", rx683_pos) + rx683_cur."!cursor_debug"("PASS", "multi_declarator:sym", " at pos=", rx683_pos) debug_665: .return (rx683_cur) rx683_restart: .annotate 'line', 4 if_null rx683_debug, debug_666 - rx683_cur."!cursor_debug"("NEXT ", "multi_declarator:sym") + rx683_cur."!cursor_debug"("NEXT", "multi_declarator:sym") debug_666: rx683_fail: (rx683_rep, rx683_pos, $I10, $P10) = rx683_cur."!mark_fail"(0) @@ -9441,7 +9414,7 @@ NQP::Compiler - NQP compiler rx683_done: rx683_cur."!cursor_fail"() if_null rx683_debug, debug_667 - rx683_cur."!cursor_debug"("FAIL ", "multi_declarator:sym") + rx683_cur."!cursor_debug"("FAIL", "multi_declarator:sym") debug_667: .return (rx683_cur) .return () @@ -9449,7 +9422,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__multi_declarator:sym" :subid("167_1282016529.10767") :method +.sub "!PREFIX__multi_declarator:sym" :subid("167_1282324002.40722") :method .annotate 'line', 4 $P685 = self."!PREFIX__!subrule"("ws", "multi") new $P686, "ResizablePMCArray" @@ -9459,7 +9432,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "multi_declarator:sym" :subid("168_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "multi_declarator:sym" :subid("168_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 319 new $P692, "Undef" .lex "$*MULTINESS", $P692 @@ -9485,7 +9458,7 @@ NQP::Compiler - NQP compiler rx693_start: eq $I10, 1, rx693_restart if_null rx693_debug, debug_668 - rx693_cur."!cursor_debug"("START ", "multi_declarator:sym") + rx693_cur."!cursor_debug"("START", "multi_declarator:sym") debug_668: $I10 = self.'from'() ne $I10, -1, rxscan697_done @@ -9516,13 +9489,13 @@ NQP::Compiler - NQP compiler # rx pass rx693_cur."!cursor_pass"(rx693_pos, "multi_declarator:sym") if_null rx693_debug, debug_669 - rx693_cur."!cursor_debug"("PASS ", "multi_declarator:sym", " at pos=", rx693_pos) + rx693_cur."!cursor_debug"("PASS", "multi_declarator:sym", " at pos=", rx693_pos) debug_669: .return (rx693_cur) rx693_restart: .annotate 'line', 4 if_null rx693_debug, debug_670 - rx693_cur."!cursor_debug"("NEXT ", "multi_declarator:sym") + rx693_cur."!cursor_debug"("NEXT", "multi_declarator:sym") debug_670: rx693_fail: (rx693_rep, rx693_pos, $I10, $P10) = rx693_cur."!mark_fail"(0) @@ -9532,7 +9505,7 @@ NQP::Compiler - NQP compiler rx693_done: rx693_cur."!cursor_fail"() if_null rx693_debug, debug_671 - rx693_cur."!cursor_debug"("FAIL ", "multi_declarator:sym") + rx693_cur."!cursor_debug"("FAIL", "multi_declarator:sym") debug_671: .return (rx693_cur) .return () @@ -9540,7 +9513,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__multi_declarator:sym" :subid("169_1282016529.10767") :method +.sub "!PREFIX__multi_declarator:sym" :subid("169_1282324002.40722") :method .annotate 'line', 4 $P695 = self."!PREFIX__!subrule"("declarator", "") new $P696, "ResizablePMCArray" @@ -9550,7 +9523,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "signature" :subid("170_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "signature" :subid("170_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx700_tgt .local int rx700_pos @@ -9574,7 +9547,7 @@ NQP::Compiler - NQP compiler rx700_start: eq $I10, 1, rx700_restart if_null rx700_debug, debug_672 - rx700_cur."!cursor_debug"("START ", "signature") + rx700_cur."!cursor_debug"("START", "signature") debug_672: $I10 = self.'from'() ne $I10, -1, rxscan703_done @@ -9633,13 +9606,13 @@ NQP::Compiler - NQP compiler # rx pass rx700_cur."!cursor_pass"(rx700_pos, "signature") if_null rx700_debug, debug_673 - rx700_cur."!cursor_debug"("PASS ", "signature", " at pos=", rx700_pos) + rx700_cur."!cursor_debug"("PASS", "signature", " at pos=", rx700_pos) debug_673: .return (rx700_cur) rx700_restart: .annotate 'line', 4 if_null rx700_debug, debug_674 - rx700_cur."!cursor_debug"("NEXT ", "signature") + rx700_cur."!cursor_debug"("NEXT", "signature") debug_674: rx700_fail: (rx700_rep, rx700_pos, $I10, $P10) = rx700_cur."!mark_fail"(0) @@ -9649,7 +9622,7 @@ NQP::Compiler - NQP compiler rx700_done: rx700_cur."!cursor_fail"() if_null rx700_debug, debug_675 - rx700_cur."!cursor_debug"("FAIL ", "signature") + rx700_cur."!cursor_debug"("FAIL", "signature") debug_675: .return (rx700_cur) .return () @@ -9657,7 +9630,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__signature" :subid("171_1282016529.10767") :method +.sub "!PREFIX__signature" :subid("171_1282324002.40722") :method .annotate 'line', 4 new $P702, "ResizablePMCArray" push $P702, "" @@ -9666,7 +9639,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "parameter" :subid("172_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "parameter" :subid("172_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx707_tgt .local int rx707_pos @@ -9690,7 +9663,7 @@ NQP::Compiler - NQP compiler rx707_start: eq $I10, 1, rx707_restart if_null rx707_debug, debug_676 - rx707_cur."!cursor_debug"("START ", "parameter") + rx707_cur."!cursor_debug"("START", "parameter") debug_676: $I10 = self.'from'() ne $I10, -1, rxscan710_done @@ -9847,13 +9820,13 @@ NQP::Compiler - NQP compiler # rx pass rx707_cur."!cursor_pass"(rx707_pos, "parameter") if_null rx707_debug, debug_677 - rx707_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx707_pos) + rx707_cur."!cursor_debug"("PASS", "parameter", " at pos=", rx707_pos) debug_677: .return (rx707_cur) rx707_restart: .annotate 'line', 4 if_null rx707_debug, debug_678 - rx707_cur."!cursor_debug"("NEXT ", "parameter") + rx707_cur."!cursor_debug"("NEXT", "parameter") debug_678: rx707_fail: (rx707_rep, rx707_pos, $I10, $P10) = rx707_cur."!mark_fail"(0) @@ -9863,7 +9836,7 @@ NQP::Compiler - NQP compiler rx707_done: rx707_cur."!cursor_fail"() if_null rx707_debug, debug_679 - rx707_cur."!cursor_debug"("FAIL ", "parameter") + rx707_cur."!cursor_debug"("FAIL", "parameter") debug_679: .return (rx707_cur) .return () @@ -9871,7 +9844,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__parameter" :subid("173_1282016529.10767") :method +.sub "!PREFIX__parameter" :subid("173_1282324002.40722") :method .annotate 'line', 4 new $P709, "ResizablePMCArray" push $P709, "" @@ -9880,7 +9853,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "param_var" :subid("174_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "param_var" :subid("174_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx720_tgt .local int rx720_pos @@ -9904,7 +9877,7 @@ NQP::Compiler - NQP compiler rx720_start: eq $I10, 1, rx720_restart if_null rx720_debug, debug_680 - rx720_cur."!cursor_debug"("START ", "param_var") + rx720_cur."!cursor_debug"("START", "param_var") debug_680: $I10 = self.'from'() ne $I10, -1, rxscan724_done @@ -9985,13 +9958,13 @@ NQP::Compiler - NQP compiler # rx pass rx720_cur."!cursor_pass"(rx720_pos, "param_var") if_null rx720_debug, debug_681 - rx720_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx720_pos) + rx720_cur."!cursor_debug"("PASS", "param_var", " at pos=", rx720_pos) debug_681: .return (rx720_cur) rx720_restart: .annotate 'line', 4 if_null rx720_debug, debug_682 - rx720_cur."!cursor_debug"("NEXT ", "param_var") + rx720_cur."!cursor_debug"("NEXT", "param_var") debug_682: rx720_fail: (rx720_rep, rx720_pos, $I10, $P10) = rx720_cur."!mark_fail"(0) @@ -10001,7 +9974,7 @@ NQP::Compiler - NQP compiler rx720_done: rx720_cur."!cursor_fail"() if_null rx720_debug, debug_683 - rx720_cur."!cursor_debug"("FAIL ", "param_var") + rx720_cur."!cursor_debug"("FAIL", "param_var") debug_683: .return (rx720_cur) .return () @@ -10009,7 +9982,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__param_var" :subid("175_1282016529.10767") :method +.sub "!PREFIX__param_var" :subid("175_1282324002.40722") :method .annotate 'line', 4 $P722 = self."!PREFIX__!subrule"("sigil", "") new $P723, "ResizablePMCArray" @@ -10019,7 +9992,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "named_param" :subid("176_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "named_param" :subid("176_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx730_tgt .local int rx730_pos @@ -10042,7 +10015,7 @@ NQP::Compiler - NQP compiler rx730_start: eq $I10, 1, rx730_restart if_null rx730_debug, debug_684 - rx730_cur."!cursor_debug"("START ", "named_param") + rx730_cur."!cursor_debug"("START", "named_param") debug_684: $I10 = self.'from'() ne $I10, -1, rxscan734_done @@ -10075,13 +10048,13 @@ NQP::Compiler - NQP compiler # rx pass rx730_cur."!cursor_pass"(rx730_pos, "named_param") if_null rx730_debug, debug_685 - rx730_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx730_pos) + rx730_cur."!cursor_debug"("PASS", "named_param", " at pos=", rx730_pos) debug_685: .return (rx730_cur) rx730_restart: .annotate 'line', 4 if_null rx730_debug, debug_686 - rx730_cur."!cursor_debug"("NEXT ", "named_param") + rx730_cur."!cursor_debug"("NEXT", "named_param") debug_686: rx730_fail: (rx730_rep, rx730_pos, $I10, $P10) = rx730_cur."!mark_fail"(0) @@ -10091,7 +10064,7 @@ NQP::Compiler - NQP compiler rx730_done: rx730_cur."!cursor_fail"() if_null rx730_debug, debug_687 - rx730_cur."!cursor_debug"("FAIL ", "named_param") + rx730_cur."!cursor_debug"("FAIL", "named_param") debug_687: .return (rx730_cur) .return () @@ -10099,7 +10072,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__named_param" :subid("177_1282016529.10767") :method +.sub "!PREFIX__named_param" :subid("177_1282324002.40722") :method .annotate 'line', 4 $P732 = self."!PREFIX__!subrule"("param_var", ":") new $P733, "ResizablePMCArray" @@ -10109,7 +10082,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "default_value" :subid("178_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "default_value" :subid("178_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx736_tgt .local int rx736_pos @@ -10132,7 +10105,7 @@ NQP::Compiler - NQP compiler rx736_start: eq $I10, 1, rx736_restart if_null rx736_debug, debug_688 - rx736_cur."!cursor_debug"("START ", "default_value") + rx736_cur."!cursor_debug"("START", "default_value") debug_688: $I10 = self.'from'() ne $I10, -1, rxscan740_done @@ -10179,13 +10152,13 @@ NQP::Compiler - NQP compiler # rx pass rx736_cur."!cursor_pass"(rx736_pos, "default_value") if_null rx736_debug, debug_689 - rx736_cur."!cursor_debug"("PASS ", "default_value", " at pos=", rx736_pos) + rx736_cur."!cursor_debug"("PASS", "default_value", " at pos=", rx736_pos) debug_689: .return (rx736_cur) rx736_restart: .annotate 'line', 4 if_null rx736_debug, debug_690 - rx736_cur."!cursor_debug"("NEXT ", "default_value") + rx736_cur."!cursor_debug"("NEXT", "default_value") debug_690: rx736_fail: (rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0) @@ -10195,7 +10168,7 @@ NQP::Compiler - NQP compiler rx736_done: rx736_cur."!cursor_fail"() if_null rx736_debug, debug_691 - rx736_cur."!cursor_debug"("FAIL ", "default_value") + rx736_cur."!cursor_debug"("FAIL", "default_value") debug_691: .return (rx736_cur) .return () @@ -10203,7 +10176,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__default_value" :subid("179_1282016529.10767") :method +.sub "!PREFIX__default_value" :subid("179_1282324002.40722") :method .annotate 'line', 4 $P738 = self."!PREFIX__!subrule"("ws", "") new $P739, "ResizablePMCArray" @@ -10213,7 +10186,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "regex_declarator" :subid("180_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "regex_declarator" :subid("180_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx745_tgt .local int rx745_pos @@ -10237,7 +10210,7 @@ NQP::Compiler - NQP compiler rx745_start: eq $I10, 1, rx745_restart if_null rx745_debug, debug_692 - rx745_cur."!cursor_debug"("START ", "regex_declarator") + rx745_cur."!cursor_debug"("START", "regex_declarator") debug_692: $I10 = self.'from'() ne $I10, -1, rxscan749_done @@ -10605,13 +10578,13 @@ NQP::Compiler - NQP compiler # rx pass rx745_cur."!cursor_pass"(rx745_pos, "regex_declarator") if_null rx745_debug, debug_693 - rx745_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx745_pos) + rx745_cur."!cursor_debug"("PASS", "regex_declarator", " at pos=", rx745_pos) debug_693: .return (rx745_cur) rx745_restart: .annotate 'line', 4 if_null rx745_debug, debug_694 - rx745_cur."!cursor_debug"("NEXT ", "regex_declarator") + rx745_cur."!cursor_debug"("NEXT", "regex_declarator") debug_694: rx745_fail: (rx745_rep, rx745_pos, $I10, $P10) = rx745_cur."!mark_fail"(0) @@ -10621,7 +10594,7 @@ NQP::Compiler - NQP compiler rx745_done: rx745_cur."!cursor_fail"() if_null rx745_debug, debug_695 - rx745_cur."!cursor_debug"("FAIL ", "regex_declarator") + rx745_cur."!cursor_debug"("FAIL", "regex_declarator") debug_695: .return (rx745_cur) .return () @@ -10629,7 +10602,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__regex_declarator" :subid("181_1282016529.10767") :method +.sub "!PREFIX__regex_declarator" :subid("181_1282324002.40722") :method .annotate 'line', 4 $P747 = self."!PREFIX__!subrule"("ws", "") new $P748, "ResizablePMCArray" @@ -10639,7 +10612,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "dotty" :subid("182_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "dotty" :subid("182_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx782_tgt .local int rx782_pos @@ -10663,7 +10636,7 @@ NQP::Compiler - NQP compiler rx782_start: eq $I10, 1, rx782_restart if_null rx782_debug, debug_696 - rx782_cur."!cursor_debug"("START ", "dotty") + rx782_cur."!cursor_debug"("START", "dotty") debug_696: $I10 = self.'from'() ne $I10, -1, rxscan786_done @@ -10786,13 +10759,13 @@ NQP::Compiler - NQP compiler # rx pass rx782_cur."!cursor_pass"(rx782_pos, "dotty") if_null rx782_debug, debug_697 - rx782_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx782_pos) + rx782_cur."!cursor_debug"("PASS", "dotty", " at pos=", rx782_pos) debug_697: .return (rx782_cur) rx782_restart: .annotate 'line', 4 if_null rx782_debug, debug_698 - rx782_cur."!cursor_debug"("NEXT ", "dotty") + rx782_cur."!cursor_debug"("NEXT", "dotty") debug_698: rx782_fail: (rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0) @@ -10802,7 +10775,7 @@ NQP::Compiler - NQP compiler rx782_done: rx782_cur."!cursor_fail"() if_null rx782_debug, debug_699 - rx782_cur."!cursor_debug"("FAIL ", "dotty") + rx782_cur."!cursor_debug"("FAIL", "dotty") debug_699: .return (rx782_cur) .return () @@ -10810,7 +10783,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__dotty" :subid("183_1282016529.10767") :method +.sub "!PREFIX__dotty" :subid("183_1282324002.40722") :method .annotate 'line', 4 $P784 = self."!PREFIX__!subrule"("deflongname", ".") new $P785, "ResizablePMCArray" @@ -10822,7 +10795,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term" :subid("184_1282016529.10767") :method +.sub "term" :subid("184_1282324002.40722") :method .annotate 'line', 376 $P792 = self."!protoregex"("term") .return ($P792) @@ -10830,7 +10803,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term" :subid("185_1282016529.10767") :method +.sub "!PREFIX__term" :subid("185_1282324002.40722") :method .annotate 'line', 376 $P794 = self."!PREFIX__!protoregex"("term") .return ($P794) @@ -10838,7 +10811,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("186_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("186_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx796_tgt .local int rx796_pos @@ -10861,7 +10834,7 @@ NQP::Compiler - NQP compiler rx796_start: eq $I10, 1, rx796_restart if_null rx796_debug, debug_700 - rx796_cur."!cursor_debug"("START ", "term:sym") + rx796_cur."!cursor_debug"("START", "term:sym") debug_700: $I10 = self.'from'() ne $I10, -1, rxscan799_done @@ -10908,13 +10881,13 @@ NQP::Compiler - NQP compiler # rx pass rx796_cur."!cursor_pass"(rx796_pos, "term:sym") if_null rx796_debug, debug_701 - rx796_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx796_pos) + rx796_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx796_pos) debug_701: .return (rx796_cur) rx796_restart: .annotate 'line', 4 if_null rx796_debug, debug_702 - rx796_cur."!cursor_debug"("NEXT ", "term:sym") + rx796_cur."!cursor_debug"("NEXT", "term:sym") debug_702: rx796_fail: (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0) @@ -10924,7 +10897,7 @@ NQP::Compiler - NQP compiler rx796_done: rx796_cur."!cursor_fail"() if_null rx796_debug, debug_703 - rx796_cur."!cursor_debug"("FAIL ", "term:sym") + rx796_cur."!cursor_debug"("FAIL", "term:sym") debug_703: .return (rx796_cur) .return () @@ -10932,7 +10905,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("187_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("187_1282324002.40722") :method .annotate 'line', 4 new $P798, "ResizablePMCArray" push $P798, "self" @@ -10941,7 +10914,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("188_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("188_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx802_tgt .local int rx802_pos @@ -10964,7 +10937,7 @@ NQP::Compiler - NQP compiler rx802_start: eq $I10, 1, rx802_restart if_null rx802_debug, debug_704 - rx802_cur."!cursor_debug"("START ", "term:sym") + rx802_cur."!cursor_debug"("START", "term:sym") debug_704: $I10 = self.'from'() ne $I10, -1, rxscan806_done @@ -11003,13 +10976,13 @@ NQP::Compiler - NQP compiler # rx pass rx802_cur."!cursor_pass"(rx802_pos, "term:sym") if_null rx802_debug, debug_705 - rx802_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx802_pos) + rx802_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx802_pos) debug_705: .return (rx802_cur) rx802_restart: .annotate 'line', 4 if_null rx802_debug, debug_706 - rx802_cur."!cursor_debug"("NEXT ", "term:sym") + rx802_cur."!cursor_debug"("NEXT", "term:sym") debug_706: rx802_fail: (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0) @@ -11019,7 +10992,7 @@ NQP::Compiler - NQP compiler rx802_done: rx802_cur."!cursor_fail"() if_null rx802_debug, debug_707 - rx802_cur."!cursor_debug"("FAIL ", "term:sym") + rx802_cur."!cursor_debug"("FAIL", "term:sym") debug_707: .return (rx802_cur) .return () @@ -11027,7 +11000,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("189_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("189_1282324002.40722") :method .annotate 'line', 4 $P804 = self."!PREFIX__!subrule"("deflongname", "") new $P805, "ResizablePMCArray" @@ -11037,7 +11010,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("190_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("190_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx808_tgt .local int rx808_pos @@ -11061,7 +11034,7 @@ NQP::Compiler - NQP compiler rx808_start: eq $I10, 1, rx808_restart if_null rx808_debug, debug_708 - rx808_cur."!cursor_debug"("START ", "term:sym") + rx808_cur."!cursor_debug"("START", "term:sym") debug_708: $I10 = self.'from'() ne $I10, -1, rxscan812_done @@ -11107,13 +11080,13 @@ NQP::Compiler - NQP compiler # rx pass rx808_cur."!cursor_pass"(rx808_pos, "term:sym") if_null rx808_debug, debug_709 - rx808_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx808_pos) + rx808_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx808_pos) debug_709: .return (rx808_cur) rx808_restart: .annotate 'line', 4 if_null rx808_debug, debug_710 - rx808_cur."!cursor_debug"("NEXT ", "term:sym") + rx808_cur."!cursor_debug"("NEXT", "term:sym") debug_710: rx808_fail: (rx808_rep, rx808_pos, $I10, $P10) = rx808_cur."!mark_fail"(0) @@ -11123,7 +11096,7 @@ NQP::Compiler - NQP compiler rx808_done: rx808_cur."!cursor_fail"() if_null rx808_debug, debug_711 - rx808_cur."!cursor_debug"("FAIL ", "term:sym") + rx808_cur."!cursor_debug"("FAIL", "term:sym") debug_711: .return (rx808_cur) .return () @@ -11131,7 +11104,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("191_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("191_1282324002.40722") :method .annotate 'line', 4 $P810 = self."!PREFIX__!subrule"("name", "") new $P811, "ResizablePMCArray" @@ -11141,7 +11114,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("192_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("192_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx816_tgt .local int rx816_pos @@ -11165,7 +11138,7 @@ NQP::Compiler - NQP compiler rx816_start: eq $I10, 1, rx816_restart if_null rx816_debug, debug_712 - rx816_cur."!cursor_debug"("START ", "term:sym") + rx816_cur."!cursor_debug"("START", "term:sym") debug_712: $I10 = self.'from'() ne $I10, -1, rxscan819_done @@ -11231,13 +11204,13 @@ NQP::Compiler - NQP compiler # rx pass rx816_cur."!cursor_pass"(rx816_pos, "term:sym") if_null rx816_debug, debug_713 - rx816_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx816_pos) + rx816_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx816_pos) debug_713: .return (rx816_cur) rx816_restart: .annotate 'line', 4 if_null rx816_debug, debug_714 - rx816_cur."!cursor_debug"("NEXT ", "term:sym") + rx816_cur."!cursor_debug"("NEXT", "term:sym") debug_714: rx816_fail: (rx816_rep, rx816_pos, $I10, $P10) = rx816_cur."!mark_fail"(0) @@ -11247,7 +11220,7 @@ NQP::Compiler - NQP compiler rx816_done: rx816_cur."!cursor_fail"() if_null rx816_debug, debug_715 - rx816_cur."!cursor_debug"("FAIL ", "term:sym") + rx816_cur."!cursor_debug"("FAIL", "term:sym") debug_715: .return (rx816_cur) .return () @@ -11255,7 +11228,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("193_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("193_1282324002.40722") :method .annotate 'line', 4 new $P818, "ResizablePMCArray" push $P818, "pir::" @@ -11264,7 +11237,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "args" :subid("194_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "args" :subid("194_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx824_tgt .local int rx824_pos @@ -11287,7 +11260,7 @@ NQP::Compiler - NQP compiler rx824_start: eq $I10, 1, rx824_restart if_null rx824_debug, debug_716 - rx824_cur."!cursor_debug"("START ", "args") + rx824_cur."!cursor_debug"("START", "args") debug_716: $I10 = self.'from'() ne $I10, -1, rxscan828_done @@ -11326,13 +11299,13 @@ NQP::Compiler - NQP compiler # rx pass rx824_cur."!cursor_pass"(rx824_pos, "args") if_null rx824_debug, debug_717 - rx824_cur."!cursor_debug"("PASS ", "args", " at pos=", rx824_pos) + rx824_cur."!cursor_debug"("PASS", "args", " at pos=", rx824_pos) debug_717: .return (rx824_cur) rx824_restart: .annotate 'line', 4 if_null rx824_debug, debug_718 - rx824_cur."!cursor_debug"("NEXT ", "args") + rx824_cur."!cursor_debug"("NEXT", "args") debug_718: rx824_fail: (rx824_rep, rx824_pos, $I10, $P10) = rx824_cur."!mark_fail"(0) @@ -11342,7 +11315,7 @@ NQP::Compiler - NQP compiler rx824_done: rx824_cur."!cursor_fail"() if_null rx824_debug, debug_719 - rx824_cur."!cursor_debug"("FAIL ", "args") + rx824_cur."!cursor_debug"("FAIL", "args") debug_719: .return (rx824_cur) .return () @@ -11350,7 +11323,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__args" :subid("195_1282016529.10767") :method +.sub "!PREFIX__args" :subid("195_1282324002.40722") :method .annotate 'line', 4 $P826 = self."!PREFIX__!subrule"("arglist", "(") new $P827, "ResizablePMCArray" @@ -11360,7 +11333,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "arglist" :subid("196_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "arglist" :subid("196_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx830_tgt .local int rx830_pos @@ -11383,7 +11356,7 @@ NQP::Compiler - NQP compiler rx830_start: eq $I10, 1, rx830_restart if_null rx830_debug, debug_720 - rx830_cur."!cursor_debug"("START ", "arglist") + rx830_cur."!cursor_debug"("START", "arglist") debug_720: $I10 = self.'from'() ne $I10, -1, rxscan834_done @@ -11422,13 +11395,13 @@ NQP::Compiler - NQP compiler # rx pass rx830_cur."!cursor_pass"(rx830_pos, "arglist") if_null rx830_debug, debug_721 - rx830_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx830_pos) + rx830_cur."!cursor_debug"("PASS", "arglist", " at pos=", rx830_pos) debug_721: .return (rx830_cur) rx830_restart: .annotate 'line', 4 if_null rx830_debug, debug_722 - rx830_cur."!cursor_debug"("NEXT ", "arglist") + rx830_cur."!cursor_debug"("NEXT", "arglist") debug_722: rx830_fail: (rx830_rep, rx830_pos, $I10, $P10) = rx830_cur."!mark_fail"(0) @@ -11438,7 +11411,7 @@ NQP::Compiler - NQP compiler rx830_done: rx830_cur."!cursor_fail"() if_null rx830_debug, debug_723 - rx830_cur."!cursor_debug"("FAIL ", "arglist") + rx830_cur."!cursor_debug"("FAIL", "arglist") debug_723: .return (rx830_cur) .return () @@ -11446,7 +11419,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__arglist" :subid("197_1282016529.10767") :method +.sub "!PREFIX__arglist" :subid("197_1282324002.40722") :method .annotate 'line', 4 $P832 = self."!PREFIX__!subrule"("ws", "") new $P833, "ResizablePMCArray" @@ -11456,7 +11429,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("198_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("198_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx837_tgt .local int rx837_pos @@ -11479,7 +11452,7 @@ NQP::Compiler - NQP compiler rx837_start: eq $I10, 1, rx837_restart if_null rx837_debug, debug_724 - rx837_cur."!cursor_debug"("START ", "term:sym") + rx837_cur."!cursor_debug"("START", "term:sym") debug_724: $I10 = self.'from'() ne $I10, -1, rxscan841_done @@ -11504,13 +11477,13 @@ NQP::Compiler - NQP compiler # rx pass rx837_cur."!cursor_pass"(rx837_pos, "term:sym") if_null rx837_debug, debug_725 - rx837_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx837_pos) + rx837_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx837_pos) debug_725: .return (rx837_cur) rx837_restart: .annotate 'line', 4 if_null rx837_debug, debug_726 - rx837_cur."!cursor_debug"("NEXT ", "term:sym") + rx837_cur."!cursor_debug"("NEXT", "term:sym") debug_726: rx837_fail: (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0) @@ -11520,7 +11493,7 @@ NQP::Compiler - NQP compiler rx837_done: rx837_cur."!cursor_fail"() if_null rx837_debug, debug_727 - rx837_cur."!cursor_debug"("FAIL ", "term:sym") + rx837_cur."!cursor_debug"("FAIL", "term:sym") debug_727: .return (rx837_cur) .return () @@ -11528,7 +11501,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("199_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("199_1282324002.40722") :method .annotate 'line', 4 $P839 = self."!PREFIX__!subrule"("value", "") new $P840, "ResizablePMCArray" @@ -11538,7 +11511,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "value" :subid("200_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "value" :subid("200_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx843_tgt .local int rx843_pos @@ -11561,7 +11534,7 @@ NQP::Compiler - NQP compiler rx843_start: eq $I10, 1, rx843_restart if_null rx843_debug, debug_728 - rx843_cur."!cursor_debug"("START ", "value") + rx843_cur."!cursor_debug"("START", "value") debug_728: $I10 = self.'from'() ne $I10, -1, rxscan848_done @@ -11602,13 +11575,13 @@ NQP::Compiler - NQP compiler # rx pass rx843_cur."!cursor_pass"(rx843_pos, "value") if_null rx843_debug, debug_729 - rx843_cur."!cursor_debug"("PASS ", "value", " at pos=", rx843_pos) + rx843_cur."!cursor_debug"("PASS", "value", " at pos=", rx843_pos) debug_729: .return (rx843_cur) rx843_restart: .annotate 'line', 4 if_null rx843_debug, debug_730 - rx843_cur."!cursor_debug"("NEXT ", "value") + rx843_cur."!cursor_debug"("NEXT", "value") debug_730: rx843_fail: (rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0) @@ -11618,7 +11591,7 @@ NQP::Compiler - NQP compiler rx843_done: rx843_cur."!cursor_fail"() if_null rx843_debug, debug_731 - rx843_cur."!cursor_debug"("FAIL ", "value") + rx843_cur."!cursor_debug"("FAIL", "value") debug_731: .return (rx843_cur) .return () @@ -11626,7 +11599,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__value" :subid("201_1282016529.10767") :method +.sub "!PREFIX__value" :subid("201_1282324002.40722") :method .annotate 'line', 4 $P845 = self."!PREFIX__!subrule"("number", "") $P846 = self."!PREFIX__!subrule"("quote", "") @@ -11638,7 +11611,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "number" :subid("202_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "number" :subid("202_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx851_tgt .local int rx851_pos @@ -11661,7 +11634,7 @@ NQP::Compiler - NQP compiler rx851_start: eq $I10, 1, rx851_restart if_null rx851_debug, debug_732 - rx851_cur."!cursor_debug"("START ", "number") + rx851_cur."!cursor_debug"("START", "number") debug_732: $I10 = self.'from'() ne $I10, -1, rxscan854_done @@ -11679,20 +11652,20 @@ NQP::Compiler - NQP compiler # rx subcapture "sign" set_addr $I10, rxcap_856_fail rx851_cur."!mark_push"(0, rx851_pos, $I10) - # rx rxquantr855 ** 0..1 - set_addr $I10, rxquantr855_done - rx851_cur."!mark_push"(0, rx851_pos, $I10) - rxquantr855_loop: - # rx enumcharlist negate=0 - ge rx851_pos, rx851_eos, rx851_fail + # rx enumcharlist_q negate=0 r 0..1 sub $I10, rx851_pos, rx851_off + set rx851_rep, 0 + sub $I12, rx851_eos, rx851_pos + le $I12, 1, rxenumcharlistq855_loop + set $I12, 1 + rxenumcharlistq855_loop: + le $I12, 0, rxenumcharlistq855_done substr $S10, rx851_tgt, $I10, 1 index $I11, "+-", $S10 - lt $I11, 0, rx851_fail - inc rx851_pos - set_addr $I10, rxquantr855_done - (rx851_rep) = rx851_cur."!mark_commit"($I10) - rxquantr855_done: + lt $I11, 0, rxenumcharlistq855_done + inc rx851_rep + rxenumcharlistq855_done: + add rx851_pos, rx851_pos, rx851_rep set_addr $I10, rxcap_856_fail ($I12, $I11) = rx851_cur."!mark_peek"($I10) rx851_cur."!cursor_pos"($I11) @@ -11729,13 +11702,13 @@ NQP::Compiler - NQP compiler # rx pass rx851_cur."!cursor_pass"(rx851_pos, "number") if_null rx851_debug, debug_733 - rx851_cur."!cursor_debug"("PASS ", "number", " at pos=", rx851_pos) + rx851_cur."!cursor_debug"("PASS", "number", " at pos=", rx851_pos) debug_733: .return (rx851_cur) rx851_restart: .annotate 'line', 4 if_null rx851_debug, debug_734 - rx851_cur."!cursor_debug"("NEXT ", "number") + rx851_cur."!cursor_debug"("NEXT", "number") debug_734: rx851_fail: (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0) @@ -11745,7 +11718,7 @@ NQP::Compiler - NQP compiler rx851_done: rx851_cur."!cursor_fail"() if_null rx851_debug, debug_735 - rx851_cur."!cursor_debug"("FAIL ", "number") + rx851_cur."!cursor_debug"("FAIL", "number") debug_735: .return (rx851_cur) .return () @@ -11753,7 +11726,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__number" :subid("203_1282016529.10767") :method +.sub "!PREFIX__number" :subid("203_1282324002.40722") :method .annotate 'line', 4 new $P853, "ResizablePMCArray" push $P853, "" @@ -11762,7 +11735,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote" :subid("204_1282016529.10767") :method +.sub "quote" :subid("204_1282324002.40722") :method .annotate 'line', 417 $P859 = self."!protoregex"("quote") .return ($P859) @@ -11770,7 +11743,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote" :subid("205_1282016529.10767") :method +.sub "!PREFIX__quote" :subid("205_1282324002.40722") :method .annotate 'line', 417 $P861 = self."!PREFIX__!protoregex"("quote") .return ($P861) @@ -11778,7 +11751,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("206_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote:sym" :subid("206_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx863_tgt .local int rx863_pos @@ -11801,7 +11774,7 @@ NQP::Compiler - NQP compiler rx863_start: eq $I10, 1, rx863_restart if_null rx863_debug, debug_736 - rx863_cur."!cursor_debug"("START ", "quote:sym") + rx863_cur."!cursor_debug"("START", "quote:sym") debug_736: $I10 = self.'from'() ne $I10, -1, rxscan866_done @@ -11832,13 +11805,13 @@ NQP::Compiler - NQP compiler # rx pass rx863_cur."!cursor_pass"(rx863_pos, "quote:sym") if_null rx863_debug, debug_737 - rx863_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx863_pos) + rx863_cur."!cursor_debug"("PASS", "quote:sym", " at pos=", rx863_pos) debug_737: .return (rx863_cur) rx863_restart: .annotate 'line', 4 if_null rx863_debug, debug_738 - rx863_cur."!cursor_debug"("NEXT ", "quote:sym") + rx863_cur."!cursor_debug"("NEXT", "quote:sym") debug_738: rx863_fail: (rx863_rep, rx863_pos, $I10, $P10) = rx863_cur."!mark_fail"(0) @@ -11848,7 +11821,7 @@ NQP::Compiler - NQP compiler rx863_done: rx863_cur."!cursor_fail"() if_null rx863_debug, debug_739 - rx863_cur."!cursor_debug"("FAIL ", "quote:sym") + rx863_cur."!cursor_debug"("FAIL", "quote:sym") debug_739: .return (rx863_cur) .return () @@ -11856,7 +11829,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("207_1282016529.10767") :method +.sub "!PREFIX__quote:sym" :subid("207_1282324002.40722") :method .annotate 'line', 4 new $P865, "ResizablePMCArray" push $P865, "'" @@ -11865,7 +11838,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("208_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote:sym" :subid("208_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx868_tgt .local int rx868_pos @@ -11888,7 +11861,7 @@ NQP::Compiler - NQP compiler rx868_start: eq $I10, 1, rx868_restart if_null rx868_debug, debug_740 - rx868_cur."!cursor_debug"("START ", "quote:sym") + rx868_cur."!cursor_debug"("START", "quote:sym") debug_740: $I10 = self.'from'() ne $I10, -1, rxscan871_done @@ -11919,13 +11892,13 @@ NQP::Compiler - NQP compiler # rx pass rx868_cur."!cursor_pass"(rx868_pos, "quote:sym") if_null rx868_debug, debug_741 - rx868_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx868_pos) + rx868_cur."!cursor_debug"("PASS", "quote:sym", " at pos=", rx868_pos) debug_741: .return (rx868_cur) rx868_restart: .annotate 'line', 4 if_null rx868_debug, debug_742 - rx868_cur."!cursor_debug"("NEXT ", "quote:sym") + rx868_cur."!cursor_debug"("NEXT", "quote:sym") debug_742: rx868_fail: (rx868_rep, rx868_pos, $I10, $P10) = rx868_cur."!mark_fail"(0) @@ -11935,7 +11908,7 @@ NQP::Compiler - NQP compiler rx868_done: rx868_cur."!cursor_fail"() if_null rx868_debug, debug_743 - rx868_cur."!cursor_debug"("FAIL ", "quote:sym") + rx868_cur."!cursor_debug"("FAIL", "quote:sym") debug_743: .return (rx868_cur) .return () @@ -11943,7 +11916,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("209_1282016529.10767") :method +.sub "!PREFIX__quote:sym" :subid("209_1282324002.40722") :method .annotate 'line', 4 new $P870, "ResizablePMCArray" push $P870, "\"" @@ -11952,7 +11925,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("210_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote:sym" :subid("210_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx873_tgt .local int rx873_pos @@ -11975,7 +11948,7 @@ NQP::Compiler - NQP compiler rx873_start: eq $I10, 1, rx873_restart if_null rx873_debug, debug_744 - rx873_cur."!cursor_debug"("START ", "quote:sym") + rx873_cur."!cursor_debug"("START", "quote:sym") debug_744: $I10 = self.'from'() ne $I10, -1, rxscan877_done @@ -12026,13 +11999,13 @@ NQP::Compiler - NQP compiler # rx pass rx873_cur."!cursor_pass"(rx873_pos, "quote:sym") if_null rx873_debug, debug_745 - rx873_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx873_pos) + rx873_cur."!cursor_debug"("PASS", "quote:sym", " at pos=", rx873_pos) debug_745: .return (rx873_cur) rx873_restart: .annotate 'line', 4 if_null rx873_debug, debug_746 - rx873_cur."!cursor_debug"("NEXT ", "quote:sym") + rx873_cur."!cursor_debug"("NEXT", "quote:sym") debug_746: rx873_fail: (rx873_rep, rx873_pos, $I10, $P10) = rx873_cur."!mark_fail"(0) @@ -12042,7 +12015,7 @@ NQP::Compiler - NQP compiler rx873_done: rx873_cur."!cursor_fail"() if_null rx873_debug, debug_747 - rx873_cur."!cursor_debug"("FAIL ", "quote:sym") + rx873_cur."!cursor_debug"("FAIL", "quote:sym") debug_747: .return (rx873_cur) .return () @@ -12050,7 +12023,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("211_1282016529.10767") :method +.sub "!PREFIX__quote:sym" :subid("211_1282324002.40722") :method .annotate 'line', 4 $P875 = self."!PREFIX__!subrule"("ws", "q") new $P876, "ResizablePMCArray" @@ -12060,7 +12033,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("212_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote:sym" :subid("212_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx879_tgt .local int rx879_pos @@ -12083,7 +12056,7 @@ NQP::Compiler - NQP compiler rx879_start: eq $I10, 1, rx879_restart if_null rx879_debug, debug_748 - rx879_cur."!cursor_debug"("START ", "quote:sym") + rx879_cur."!cursor_debug"("START", "quote:sym") debug_748: $I10 = self.'from'() ne $I10, -1, rxscan883_done @@ -12134,13 +12107,13 @@ NQP::Compiler - NQP compiler # rx pass rx879_cur."!cursor_pass"(rx879_pos, "quote:sym") if_null rx879_debug, debug_749 - rx879_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx879_pos) + rx879_cur."!cursor_debug"("PASS", "quote:sym", " at pos=", rx879_pos) debug_749: .return (rx879_cur) rx879_restart: .annotate 'line', 4 if_null rx879_debug, debug_750 - rx879_cur."!cursor_debug"("NEXT ", "quote:sym") + rx879_cur."!cursor_debug"("NEXT", "quote:sym") debug_750: rx879_fail: (rx879_rep, rx879_pos, $I10, $P10) = rx879_cur."!mark_fail"(0) @@ -12150,7 +12123,7 @@ NQP::Compiler - NQP compiler rx879_done: rx879_cur."!cursor_fail"() if_null rx879_debug, debug_751 - rx879_cur."!cursor_debug"("FAIL ", "quote:sym") + rx879_cur."!cursor_debug"("FAIL", "quote:sym") debug_751: .return (rx879_cur) .return () @@ -12158,7 +12131,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("213_1282016529.10767") :method +.sub "!PREFIX__quote:sym" :subid("213_1282324002.40722") :method .annotate 'line', 4 $P881 = self."!PREFIX__!subrule"("ws", "qq") new $P882, "ResizablePMCArray" @@ -12168,7 +12141,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("214_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote:sym" :subid("214_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx885_tgt .local int rx885_pos @@ -12191,7 +12164,7 @@ NQP::Compiler - NQP compiler rx885_start: eq $I10, 1, rx885_restart if_null rx885_debug, debug_752 - rx885_cur."!cursor_debug"("START ", "quote:sym") + rx885_cur."!cursor_debug"("START", "quote:sym") debug_752: $I10 = self.'from'() ne $I10, -1, rxscan889_done @@ -12242,13 +12215,13 @@ NQP::Compiler - NQP compiler # rx pass rx885_cur."!cursor_pass"(rx885_pos, "quote:sym") if_null rx885_debug, debug_753 - rx885_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx885_pos) + rx885_cur."!cursor_debug"("PASS", "quote:sym", " at pos=", rx885_pos) debug_753: .return (rx885_cur) rx885_restart: .annotate 'line', 4 if_null rx885_debug, debug_754 - rx885_cur."!cursor_debug"("NEXT ", "quote:sym") + rx885_cur."!cursor_debug"("NEXT", "quote:sym") debug_754: rx885_fail: (rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0) @@ -12258,7 +12231,7 @@ NQP::Compiler - NQP compiler rx885_done: rx885_cur."!cursor_fail"() if_null rx885_debug, debug_755 - rx885_cur."!cursor_debug"("FAIL ", "quote:sym") + rx885_cur."!cursor_debug"("FAIL", "quote:sym") debug_755: .return (rx885_cur) .return () @@ -12266,7 +12239,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("215_1282016529.10767") :method +.sub "!PREFIX__quote:sym" :subid("215_1282324002.40722") :method .annotate 'line', 4 $P887 = self."!PREFIX__!subrule"("ws", "Q") new $P888, "ResizablePMCArray" @@ -12276,7 +12249,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("216_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote:sym" :subid("216_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx891_tgt .local int rx891_pos @@ -12299,7 +12272,7 @@ NQP::Compiler - NQP compiler rx891_start: eq $I10, 1, rx891_restart if_null rx891_debug, debug_756 - rx891_cur."!cursor_debug"("START ", "quote:sym") + rx891_cur."!cursor_debug"("START", "quote:sym") debug_756: $I10 = self.'from'() ne $I10, -1, rxscan895_done @@ -12336,13 +12309,13 @@ NQP::Compiler - NQP compiler # rx pass rx891_cur."!cursor_pass"(rx891_pos, "quote:sym") if_null rx891_debug, debug_757 - rx891_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx891_pos) + rx891_cur."!cursor_debug"("PASS", "quote:sym", " at pos=", rx891_pos) debug_757: .return (rx891_cur) rx891_restart: .annotate 'line', 4 if_null rx891_debug, debug_758 - rx891_cur."!cursor_debug"("NEXT ", "quote:sym") + rx891_cur."!cursor_debug"("NEXT", "quote:sym") debug_758: rx891_fail: (rx891_rep, rx891_pos, $I10, $P10) = rx891_cur."!mark_fail"(0) @@ -12352,7 +12325,7 @@ NQP::Compiler - NQP compiler rx891_done: rx891_cur."!cursor_fail"() if_null rx891_debug, debug_759 - rx891_cur."!cursor_debug"("FAIL ", "quote:sym") + rx891_cur."!cursor_debug"("FAIL", "quote:sym") debug_759: .return (rx891_cur) .return () @@ -12360,7 +12333,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("217_1282016529.10767") :method +.sub "!PREFIX__quote:sym" :subid("217_1282324002.40722") :method .annotate 'line', 4 $P893 = self."!PREFIX__!subrule"("ws", "Q:PIR") new $P894, "ResizablePMCArray" @@ -12370,7 +12343,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote:sym" :subid("218_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote:sym" :subid("218_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx897_tgt .local int rx897_pos @@ -12393,7 +12366,7 @@ NQP::Compiler - NQP compiler rx897_start: eq $I10, 1, rx897_restart if_null rx897_debug, debug_760 - rx897_cur."!cursor_debug"("START ", "quote:sym") + rx897_cur."!cursor_debug"("START", "quote:sym") debug_760: $I10 = self.'from'() ne $I10, -1, rxscan901_done @@ -12445,13 +12418,13 @@ NQP::Compiler - NQP compiler # rx pass rx897_cur."!cursor_pass"(rx897_pos, "quote:sym") if_null rx897_debug, debug_761 - rx897_cur."!cursor_debug"("PASS ", "quote:sym", " at pos=", rx897_pos) + rx897_cur."!cursor_debug"("PASS", "quote:sym", " at pos=", rx897_pos) debug_761: .return (rx897_cur) rx897_restart: .annotate 'line', 4 if_null rx897_debug, debug_762 - rx897_cur."!cursor_debug"("NEXT ", "quote:sym") + rx897_cur."!cursor_debug"("NEXT", "quote:sym") debug_762: rx897_fail: (rx897_rep, rx897_pos, $I10, $P10) = rx897_cur."!mark_fail"(0) @@ -12461,7 +12434,7 @@ NQP::Compiler - NQP compiler rx897_done: rx897_cur."!cursor_fail"() if_null rx897_debug, debug_763 - rx897_cur."!cursor_debug"("FAIL ", "quote:sym") + rx897_cur."!cursor_debug"("FAIL", "quote:sym") debug_763: .return (rx897_cur) .return () @@ -12469,7 +12442,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote:sym" :subid("219_1282016529.10767") :method +.sub "!PREFIX__quote:sym" :subid("219_1282324002.40722") :method .annotate 'line', 4 $P899 = self."!PREFIX__!subrule"("newpad", "/") new $P900, "ResizablePMCArray" @@ -12479,7 +12452,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote_escape:sym<$>" :subid("220_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote_escape:sym<$>" :subid("220_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx903_tgt .local int rx903_pos @@ -12502,7 +12475,7 @@ NQP::Compiler - NQP compiler rx903_start: eq $I10, 1, rx903_restart if_null rx903_debug, debug_764 - rx903_cur."!cursor_debug"("START ", "quote_escape:sym<$>") + rx903_cur."!cursor_debug"("START", "quote_escape:sym<$>") debug_764: $I10 = self.'from'() ne $I10, -1, rxscan906_done @@ -12537,13 +12510,13 @@ NQP::Compiler - NQP compiler # rx pass rx903_cur."!cursor_pass"(rx903_pos, "quote_escape:sym<$>") if_null rx903_debug, debug_765 - rx903_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx903_pos) + rx903_cur."!cursor_debug"("PASS", "quote_escape:sym<$>", " at pos=", rx903_pos) debug_765: .return (rx903_cur) rx903_restart: .annotate 'line', 4 if_null rx903_debug, debug_766 - rx903_cur."!cursor_debug"("NEXT ", "quote_escape:sym<$>") + rx903_cur."!cursor_debug"("NEXT", "quote_escape:sym<$>") debug_766: rx903_fail: (rx903_rep, rx903_pos, $I10, $P10) = rx903_cur."!mark_fail"(0) @@ -12553,7 +12526,7 @@ NQP::Compiler - NQP compiler rx903_done: rx903_cur."!cursor_fail"() if_null rx903_debug, debug_767 - rx903_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>") + rx903_cur."!cursor_debug"("FAIL", "quote_escape:sym<$>") debug_767: .return (rx903_cur) .return () @@ -12561,7 +12534,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote_escape:sym<$>" :subid("221_1282016529.10767") :method +.sub "!PREFIX__quote_escape:sym<$>" :subid("221_1282324002.40722") :method .annotate 'line', 4 new $P905, "ResizablePMCArray" push $P905, "$" @@ -12570,7 +12543,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote_escape:sym<{ }>" :subid("222_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote_escape:sym<{ }>" :subid("222_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx908_tgt .local int rx908_pos @@ -12593,7 +12566,7 @@ NQP::Compiler - NQP compiler rx908_start: eq $I10, 1, rx908_restart if_null rx908_debug, debug_768 - rx908_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>") + rx908_cur."!cursor_debug"("START", "quote_escape:sym<{ }>") debug_768: $I10 = self.'from'() ne $I10, -1, rxscan911_done @@ -12628,13 +12601,13 @@ NQP::Compiler - NQP compiler # rx pass rx908_cur."!cursor_pass"(rx908_pos, "quote_escape:sym<{ }>") if_null rx908_debug, debug_769 - rx908_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx908_pos) + rx908_cur."!cursor_debug"("PASS", "quote_escape:sym<{ }>", " at pos=", rx908_pos) debug_769: .return (rx908_cur) rx908_restart: .annotate 'line', 4 if_null rx908_debug, debug_770 - rx908_cur."!cursor_debug"("NEXT ", "quote_escape:sym<{ }>") + rx908_cur."!cursor_debug"("NEXT", "quote_escape:sym<{ }>") debug_770: rx908_fail: (rx908_rep, rx908_pos, $I10, $P10) = rx908_cur."!mark_fail"(0) @@ -12644,7 +12617,7 @@ NQP::Compiler - NQP compiler rx908_done: rx908_cur."!cursor_fail"() if_null rx908_debug, debug_771 - rx908_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>") + rx908_cur."!cursor_debug"("FAIL", "quote_escape:sym<{ }>") debug_771: .return (rx908_cur) .return () @@ -12652,7 +12625,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote_escape:sym<{ }>" :subid("223_1282016529.10767") :method +.sub "!PREFIX__quote_escape:sym<{ }>" :subid("223_1282324002.40722") :method .annotate 'line', 4 new $P910, "ResizablePMCArray" push $P910, "{" @@ -12661,7 +12634,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "quote_escape:sym" :subid("224_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "quote_escape:sym" :subid("224_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx913_tgt .local int rx913_pos @@ -12684,7 +12657,7 @@ NQP::Compiler - NQP compiler rx913_start: eq $I10, 1, rx913_restart if_null rx913_debug, debug_772 - rx913_cur."!cursor_debug"("START ", "quote_escape:sym") + rx913_cur."!cursor_debug"("START", "quote_escape:sym") debug_772: $I10 = self.'from'() ne $I10, -1, rxscan916_done @@ -12713,13 +12686,13 @@ NQP::Compiler - NQP compiler # rx pass rx913_cur."!cursor_pass"(rx913_pos, "quote_escape:sym") if_null rx913_debug, debug_773 - rx913_cur."!cursor_debug"("PASS ", "quote_escape:sym", " at pos=", rx913_pos) + rx913_cur."!cursor_debug"("PASS", "quote_escape:sym", " at pos=", rx913_pos) debug_773: .return (rx913_cur) rx913_restart: .annotate 'line', 4 if_null rx913_debug, debug_774 - rx913_cur."!cursor_debug"("NEXT ", "quote_escape:sym") + rx913_cur."!cursor_debug"("NEXT", "quote_escape:sym") debug_774: rx913_fail: (rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0) @@ -12729,7 +12702,7 @@ NQP::Compiler - NQP compiler rx913_done: rx913_cur."!cursor_fail"() if_null rx913_debug, debug_775 - rx913_cur."!cursor_debug"("FAIL ", "quote_escape:sym") + rx913_cur."!cursor_debug"("FAIL", "quote_escape:sym") debug_775: .return (rx913_cur) .return () @@ -12737,7 +12710,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__quote_escape:sym" :subid("225_1282016529.10767") :method +.sub "!PREFIX__quote_escape:sym" :subid("225_1282324002.40722") :method .annotate 'line', 4 new $P915, "ResizablePMCArray" push $P915, "\\e" @@ -12746,7 +12719,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym<( )>" :subid("226_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "circumfix:sym<( )>" :subid("226_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx918_tgt .local int rx918_pos @@ -12770,7 +12743,7 @@ NQP::Compiler - NQP compiler rx918_start: eq $I10, 1, rx918_restart if_null rx918_debug, debug_776 - rx918_cur."!cursor_debug"("START ", "circumfix:sym<( )>") + rx918_cur."!cursor_debug"("START", "circumfix:sym<( )>") debug_776: $I10 = self.'from'() ne $I10, -1, rxscan922_done @@ -12827,13 +12800,13 @@ NQP::Compiler - NQP compiler # rx pass rx918_cur."!cursor_pass"(rx918_pos, "circumfix:sym<( )>") if_null rx918_debug, debug_777 - rx918_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx918_pos) + rx918_cur."!cursor_debug"("PASS", "circumfix:sym<( )>", " at pos=", rx918_pos) debug_777: .return (rx918_cur) rx918_restart: .annotate 'line', 4 if_null rx918_debug, debug_778 - rx918_cur."!cursor_debug"("NEXT ", "circumfix:sym<( )>") + rx918_cur."!cursor_debug"("NEXT", "circumfix:sym<( )>") debug_778: rx918_fail: (rx918_rep, rx918_pos, $I10, $P10) = rx918_cur."!mark_fail"(0) @@ -12843,7 +12816,7 @@ NQP::Compiler - NQP compiler rx918_done: rx918_cur."!cursor_fail"() if_null rx918_debug, debug_779 - rx918_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>") + rx918_cur."!cursor_debug"("FAIL", "circumfix:sym<( )>") debug_779: .return (rx918_cur) .return () @@ -12851,7 +12824,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym<( )>" :subid("227_1282016529.10767") :method +.sub "!PREFIX__circumfix:sym<( )>" :subid("227_1282324002.40722") :method .annotate 'line', 4 $P920 = self."!PREFIX__!subrule"("ws", "(") new $P921, "ResizablePMCArray" @@ -12861,7 +12834,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym<[ ]>" :subid("228_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "circumfix:sym<[ ]>" :subid("228_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx926_tgt .local int rx926_pos @@ -12885,7 +12858,7 @@ NQP::Compiler - NQP compiler rx926_start: eq $I10, 1, rx926_restart if_null rx926_debug, debug_780 - rx926_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>") + rx926_cur."!cursor_debug"("START", "circumfix:sym<[ ]>") debug_780: $I10 = self.'from'() ne $I10, -1, rxscan930_done @@ -12942,13 +12915,13 @@ NQP::Compiler - NQP compiler # rx pass rx926_cur."!cursor_pass"(rx926_pos, "circumfix:sym<[ ]>") if_null rx926_debug, debug_781 - rx926_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx926_pos) + rx926_cur."!cursor_debug"("PASS", "circumfix:sym<[ ]>", " at pos=", rx926_pos) debug_781: .return (rx926_cur) rx926_restart: .annotate 'line', 4 if_null rx926_debug, debug_782 - rx926_cur."!cursor_debug"("NEXT ", "circumfix:sym<[ ]>") + rx926_cur."!cursor_debug"("NEXT", "circumfix:sym<[ ]>") debug_782: rx926_fail: (rx926_rep, rx926_pos, $I10, $P10) = rx926_cur."!mark_fail"(0) @@ -12958,7 +12931,7 @@ NQP::Compiler - NQP compiler rx926_done: rx926_cur."!cursor_fail"() if_null rx926_debug, debug_783 - rx926_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>") + rx926_cur."!cursor_debug"("FAIL", "circumfix:sym<[ ]>") debug_783: .return (rx926_cur) .return () @@ -12966,7 +12939,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym<[ ]>" :subid("229_1282016529.10767") :method +.sub "!PREFIX__circumfix:sym<[ ]>" :subid("229_1282324002.40722") :method .annotate 'line', 4 $P928 = self."!PREFIX__!subrule"("ws", "[") new $P929, "ResizablePMCArray" @@ -12976,7 +12949,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym" :subid("230_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "circumfix:sym" :subid("230_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx934_tgt .local int rx934_pos @@ -12999,7 +12972,7 @@ NQP::Compiler - NQP compiler rx934_start: eq $I10, 1, rx934_restart if_null rx934_debug, debug_784 - rx934_cur."!cursor_debug"("START ", "circumfix:sym") + rx934_cur."!cursor_debug"("START", "circumfix:sym") debug_784: $I10 = self.'from'() ne $I10, -1, rxscan937_done @@ -13030,13 +13003,13 @@ NQP::Compiler - NQP compiler # rx pass rx934_cur."!cursor_pass"(rx934_pos, "circumfix:sym") if_null rx934_debug, debug_785 - rx934_cur."!cursor_debug"("PASS ", "circumfix:sym", " at pos=", rx934_pos) + rx934_cur."!cursor_debug"("PASS", "circumfix:sym", " at pos=", rx934_pos) debug_785: .return (rx934_cur) rx934_restart: .annotate 'line', 4 if_null rx934_debug, debug_786 - rx934_cur."!cursor_debug"("NEXT ", "circumfix:sym") + rx934_cur."!cursor_debug"("NEXT", "circumfix:sym") debug_786: rx934_fail: (rx934_rep, rx934_pos, $I10, $P10) = rx934_cur."!mark_fail"(0) @@ -13046,7 +13019,7 @@ NQP::Compiler - NQP compiler rx934_done: rx934_cur."!cursor_fail"() if_null rx934_debug, debug_787 - rx934_cur."!cursor_debug"("FAIL ", "circumfix:sym") + rx934_cur."!cursor_debug"("FAIL", "circumfix:sym") debug_787: .return (rx934_cur) .return () @@ -13054,7 +13027,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym" :subid("231_1282016529.10767") :method +.sub "!PREFIX__circumfix:sym" :subid("231_1282324002.40722") :method .annotate 'line', 4 new $P936, "ResizablePMCArray" push $P936, "<" @@ -13063,7 +13036,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("232_1282016529.10767") :method :outer("11_1282016529.10767") +.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("232_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx939_tgt .local int rx939_pos @@ -13086,7 +13059,7 @@ NQP::Compiler - NQP compiler rx939_start: eq $I10, 1, rx939_restart if_null rx939_debug, debug_788 - rx939_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>") + rx939_cur."!cursor_debug"("START", unicode:"circumfix:sym<\x{ab} \x{bb}>") debug_788: $I10 = self.'from'() ne $I10, -1, rxscan942_done @@ -13117,13 +13090,13 @@ NQP::Compiler - NQP compiler # rx pass rx939_cur."!cursor_pass"(rx939_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>") if_null rx939_debug, debug_789 - rx939_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos) + rx939_cur."!cursor_debug"("PASS", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos) debug_789: .return (rx939_cur) rx939_restart: .annotate 'line', 4 if_null rx939_debug, debug_790 - rx939_cur."!cursor_debug"("NEXT ", unicode:"circumfix:sym<\x{ab} \x{bb}>") + rx939_cur."!cursor_debug"("NEXT", unicode:"circumfix:sym<\x{ab} \x{bb}>") debug_790: rx939_fail: (rx939_rep, rx939_pos, $I10, $P10) = rx939_cur."!mark_fail"(0) @@ -13133,7 +13106,7 @@ NQP::Compiler - NQP compiler rx939_done: rx939_cur."!cursor_fail"() if_null rx939_debug, debug_791 - rx939_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>") + rx939_cur."!cursor_debug"("FAIL", unicode:"circumfix:sym<\x{ab} \x{bb}>") debug_791: .return (rx939_cur) .return () @@ -13141,7 +13114,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("233_1282016529.10767") :method +.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("233_1282324002.40722") :method .annotate 'line', 4 new $P941, "ResizablePMCArray" push $P941, unicode:"\x{ab}" @@ -13150,7 +13123,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym<{ }>" :subid("234_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "circumfix:sym<{ }>" :subid("234_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx944_tgt .local int rx944_pos @@ -13173,7 +13146,7 @@ NQP::Compiler - NQP compiler rx944_start: eq $I10, 1, rx944_restart if_null rx944_debug, debug_792 - rx944_cur."!cursor_debug"("START ", "circumfix:sym<{ }>") + rx944_cur."!cursor_debug"("START", "circumfix:sym<{ }>") debug_792: $I10 = self.'from'() ne $I10, -1, rxscan947_done @@ -13204,13 +13177,13 @@ NQP::Compiler - NQP compiler # rx pass rx944_cur."!cursor_pass"(rx944_pos, "circumfix:sym<{ }>") if_null rx944_debug, debug_793 - rx944_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx944_pos) + rx944_cur."!cursor_debug"("PASS", "circumfix:sym<{ }>", " at pos=", rx944_pos) debug_793: .return (rx944_cur) rx944_restart: .annotate 'line', 4 if_null rx944_debug, debug_794 - rx944_cur."!cursor_debug"("NEXT ", "circumfix:sym<{ }>") + rx944_cur."!cursor_debug"("NEXT", "circumfix:sym<{ }>") debug_794: rx944_fail: (rx944_rep, rx944_pos, $I10, $P10) = rx944_cur."!mark_fail"(0) @@ -13220,7 +13193,7 @@ NQP::Compiler - NQP compiler rx944_done: rx944_cur."!cursor_fail"() if_null rx944_debug, debug_795 - rx944_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>") + rx944_cur."!cursor_debug"("FAIL", "circumfix:sym<{ }>") debug_795: .return (rx944_cur) .return () @@ -13228,7 +13201,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym<{ }>" :subid("235_1282016529.10767") :method +.sub "!PREFIX__circumfix:sym<{ }>" :subid("235_1282324002.40722") :method .annotate 'line', 4 new $P946, "ResizablePMCArray" push $P946, "{" @@ -13237,7 +13210,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "circumfix:sym" :subid("236_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "circumfix:sym" :subid("236_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx949_tgt .local int rx949_pos @@ -13260,7 +13233,7 @@ NQP::Compiler - NQP compiler rx949_start: eq $I10, 1, rx949_restart if_null rx949_debug, debug_796 - rx949_cur."!cursor_debug"("START ", "circumfix:sym") + rx949_cur."!cursor_debug"("START", "circumfix:sym") debug_796: $I10 = self.'from'() ne $I10, -1, rxscan953_done @@ -13324,13 +13297,13 @@ NQP::Compiler - NQP compiler # rx pass rx949_cur."!cursor_pass"(rx949_pos, "circumfix:sym") if_null rx949_debug, debug_797 - rx949_cur."!cursor_debug"("PASS ", "circumfix:sym", " at pos=", rx949_pos) + rx949_cur."!cursor_debug"("PASS", "circumfix:sym", " at pos=", rx949_pos) debug_797: .return (rx949_cur) rx949_restart: .annotate 'line', 4 if_null rx949_debug, debug_798 - rx949_cur."!cursor_debug"("NEXT ", "circumfix:sym") + rx949_cur."!cursor_debug"("NEXT", "circumfix:sym") debug_798: rx949_fail: (rx949_rep, rx949_pos, $I10, $P10) = rx949_cur."!mark_fail"(0) @@ -13340,7 +13313,7 @@ NQP::Compiler - NQP compiler rx949_done: rx949_cur."!cursor_fail"() if_null rx949_debug, debug_799 - rx949_cur."!cursor_debug"("FAIL ", "circumfix:sym") + rx949_cur."!cursor_debug"("FAIL", "circumfix:sym") debug_799: .return (rx949_cur) .return () @@ -13348,7 +13321,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__circumfix:sym" :subid("237_1282016529.10767") :method +.sub "!PREFIX__circumfix:sym" :subid("237_1282324002.40722") :method .annotate 'line', 4 $P951 = self."!PREFIX__!subrule"("sigil", "") new $P952, "ResizablePMCArray" @@ -13358,7 +13331,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "semilist" :subid("238_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "semilist" :subid("238_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 4 .local string rx958_tgt .local int rx958_pos @@ -13381,7 +13354,7 @@ NQP::Compiler - NQP compiler rx958_start: eq $I10, 1, rx958_restart if_null rx958_debug, debug_800 - rx958_cur."!cursor_debug"("START ", "semilist") + rx958_cur."!cursor_debug"("START", "semilist") debug_800: $I10 = self.'from'() ne $I10, -1, rxscan962_done @@ -13416,13 +13389,13 @@ NQP::Compiler - NQP compiler # rx pass rx958_cur."!cursor_pass"(rx958_pos, "semilist") if_null rx958_debug, debug_801 - rx958_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx958_pos) + rx958_cur."!cursor_debug"("PASS", "semilist", " at pos=", rx958_pos) debug_801: .return (rx958_cur) rx958_restart: .annotate 'line', 4 if_null rx958_debug, debug_802 - rx958_cur."!cursor_debug"("NEXT ", "semilist") + rx958_cur."!cursor_debug"("NEXT", "semilist") debug_802: rx958_fail: (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0) @@ -13432,7 +13405,7 @@ NQP::Compiler - NQP compiler rx958_done: rx958_cur."!cursor_fail"() if_null rx958_debug, debug_803 - rx958_cur."!cursor_debug"("FAIL ", "semilist") + rx958_cur."!cursor_debug"("FAIL", "semilist") debug_803: .return (rx958_cur) .return () @@ -13440,7 +13413,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__semilist" :subid("239_1282016529.10767") :method +.sub "!PREFIX__semilist" :subid("239_1282324002.40722") :method .annotate 'line', 4 $P960 = self."!PREFIX__!subrule"("ws", "") new $P961, "ResizablePMCArray" @@ -13450,7 +13423,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infixish" :subid("240_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infixish" :subid("240_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx966_tgt .local int rx966_pos @@ -13473,7 +13446,7 @@ NQP::Compiler - NQP compiler rx966_start: eq $I10, 1, rx966_restart if_null rx966_debug, debug_804 - rx966_cur."!cursor_debug"("START ", "infixish") + rx966_cur."!cursor_debug"("START", "infixish") debug_804: $I10 = self.'from'() ne $I10, -1, rxscan969_done @@ -13502,13 +13475,13 @@ NQP::Compiler - NQP compiler # rx pass rx966_cur."!cursor_pass"(rx966_pos, "infixish") if_null rx966_debug, debug_805 - rx966_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx966_pos) + rx966_cur."!cursor_debug"("PASS", "infixish", " at pos=", rx966_pos) debug_805: .return (rx966_cur) rx966_restart: .annotate 'line', 447 if_null rx966_debug, debug_806 - rx966_cur."!cursor_debug"("NEXT ", "infixish") + rx966_cur."!cursor_debug"("NEXT", "infixish") debug_806: rx966_fail: (rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0) @@ -13518,7 +13491,7 @@ NQP::Compiler - NQP compiler rx966_done: rx966_cur."!cursor_fail"() if_null rx966_debug, debug_807 - rx966_cur."!cursor_debug"("FAIL ", "infixish") + rx966_cur."!cursor_debug"("FAIL", "infixish") debug_807: .return (rx966_cur) .return () @@ -13526,7 +13499,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infixish" :subid("241_1282016529.10767") :method +.sub "!PREFIX__infixish" :subid("241_1282324002.40722") :method .annotate 'line', 447 new $P968, "ResizablePMCArray" push $P968, "" @@ -13535,7 +13508,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infixstopper" :subid("242_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infixstopper" :subid("242_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx971_tgt .local int rx971_pos @@ -13558,7 +13531,7 @@ NQP::Compiler - NQP compiler rx971_start: eq $I10, 1, rx971_restart if_null rx971_debug, debug_808 - rx971_cur."!cursor_debug"("START ", "infixstopper") + rx971_cur."!cursor_debug"("START", "infixstopper") debug_808: $I10 = self.'from'() ne $I10, -1, rxscan974_done @@ -13580,13 +13553,13 @@ NQP::Compiler - NQP compiler # rx pass rx971_cur."!cursor_pass"(rx971_pos, "infixstopper") if_null rx971_debug, debug_809 - rx971_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx971_pos) + rx971_cur."!cursor_debug"("PASS", "infixstopper", " at pos=", rx971_pos) debug_809: .return (rx971_cur) rx971_restart: .annotate 'line', 447 if_null rx971_debug, debug_810 - rx971_cur."!cursor_debug"("NEXT ", "infixstopper") + rx971_cur."!cursor_debug"("NEXT", "infixstopper") debug_810: rx971_fail: (rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0) @@ -13596,7 +13569,7 @@ NQP::Compiler - NQP compiler rx971_done: rx971_cur."!cursor_fail"() if_null rx971_debug, debug_811 - rx971_cur."!cursor_debug"("FAIL ", "infixstopper") + rx971_cur."!cursor_debug"("FAIL", "infixstopper") debug_811: .return (rx971_cur) .return () @@ -13604,7 +13577,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infixstopper" :subid("243_1282016529.10767") :method +.sub "!PREFIX__infixstopper" :subid("243_1282324002.40722") :method .annotate 'line', 447 new $P973, "ResizablePMCArray" push $P973, "" @@ -13613,7 +13586,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postcircumfix:sym<[ ]>" :subid("244_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "postcircumfix:sym<[ ]>" :subid("244_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx976_tgt .local int rx976_pos @@ -13636,7 +13609,7 @@ NQP::Compiler - NQP compiler rx976_start: eq $I10, 1, rx976_restart if_null rx976_debug, debug_812 - rx976_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>") + rx976_cur."!cursor_debug"("START", "postcircumfix:sym<[ ]>") debug_812: $I10 = self.'from'() ne $I10, -1, rxscan980_done @@ -13689,13 +13662,13 @@ NQP::Compiler - NQP compiler # rx pass rx976_cur."!cursor_pass"(rx976_pos, "postcircumfix:sym<[ ]>") if_null rx976_debug, debug_813 - rx976_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos) + rx976_cur."!cursor_debug"("PASS", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos) debug_813: .return (rx976_cur) rx976_restart: .annotate 'line', 447 if_null rx976_debug, debug_814 - rx976_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<[ ]>") + rx976_cur."!cursor_debug"("NEXT", "postcircumfix:sym<[ ]>") debug_814: rx976_fail: (rx976_rep, rx976_pos, $I10, $P10) = rx976_cur."!mark_fail"(0) @@ -13705,7 +13678,7 @@ NQP::Compiler - NQP compiler rx976_done: rx976_cur."!cursor_fail"() if_null rx976_debug, debug_815 - rx976_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>") + rx976_cur."!cursor_debug"("FAIL", "postcircumfix:sym<[ ]>") debug_815: .return (rx976_cur) .return () @@ -13713,7 +13686,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("245_1282016529.10767") :method +.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("245_1282324002.40722") :method .annotate 'line', 447 $P978 = self."!PREFIX__!subrule"("ws", "[") new $P979, "ResizablePMCArray" @@ -13723,7 +13696,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postcircumfix:sym<{ }>" :subid("246_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "postcircumfix:sym<{ }>" :subid("246_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx982_tgt .local int rx982_pos @@ -13746,7 +13719,7 @@ NQP::Compiler - NQP compiler rx982_start: eq $I10, 1, rx982_restart if_null rx982_debug, debug_816 - rx982_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>") + rx982_cur."!cursor_debug"("START", "postcircumfix:sym<{ }>") debug_816: $I10 = self.'from'() ne $I10, -1, rxscan986_done @@ -13799,13 +13772,13 @@ NQP::Compiler - NQP compiler # rx pass rx982_cur."!cursor_pass"(rx982_pos, "postcircumfix:sym<{ }>") if_null rx982_debug, debug_817 - rx982_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx982_pos) + rx982_cur."!cursor_debug"("PASS", "postcircumfix:sym<{ }>", " at pos=", rx982_pos) debug_817: .return (rx982_cur) rx982_restart: .annotate 'line', 447 if_null rx982_debug, debug_818 - rx982_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<{ }>") + rx982_cur."!cursor_debug"("NEXT", "postcircumfix:sym<{ }>") debug_818: rx982_fail: (rx982_rep, rx982_pos, $I10, $P10) = rx982_cur."!mark_fail"(0) @@ -13815,7 +13788,7 @@ NQP::Compiler - NQP compiler rx982_done: rx982_cur."!cursor_fail"() if_null rx982_debug, debug_819 - rx982_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>") + rx982_cur."!cursor_debug"("FAIL", "postcircumfix:sym<{ }>") debug_819: .return (rx982_cur) .return () @@ -13823,7 +13796,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("247_1282016529.10767") :method +.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("247_1282324002.40722") :method .annotate 'line', 447 $P984 = self."!PREFIX__!subrule"("ws", "{") new $P985, "ResizablePMCArray" @@ -13833,7 +13806,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postcircumfix:sym" :subid("248_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "postcircumfix:sym" :subid("248_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx988_tgt .local int rx988_pos @@ -13856,7 +13829,7 @@ NQP::Compiler - NQP compiler rx988_start: eq $I10, 1, rx988_restart if_null rx988_debug, debug_820 - rx988_cur."!cursor_debug"("START ", "postcircumfix:sym") + rx988_cur."!cursor_debug"("START", "postcircumfix:sym") debug_820: $I10 = self.'from'() ne $I10, -1, rxscan991_done @@ -13896,13 +13869,13 @@ NQP::Compiler - NQP compiler # rx pass rx988_cur."!cursor_pass"(rx988_pos, "postcircumfix:sym") if_null rx988_debug, debug_821 - rx988_cur."!cursor_debug"("PASS ", "postcircumfix:sym", " at pos=", rx988_pos) + rx988_cur."!cursor_debug"("PASS", "postcircumfix:sym", " at pos=", rx988_pos) debug_821: .return (rx988_cur) rx988_restart: .annotate 'line', 447 if_null rx988_debug, debug_822 - rx988_cur."!cursor_debug"("NEXT ", "postcircumfix:sym") + rx988_cur."!cursor_debug"("NEXT", "postcircumfix:sym") debug_822: rx988_fail: (rx988_rep, rx988_pos, $I10, $P10) = rx988_cur."!mark_fail"(0) @@ -13912,7 +13885,7 @@ NQP::Compiler - NQP compiler rx988_done: rx988_cur."!cursor_fail"() if_null rx988_debug, debug_823 - rx988_cur."!cursor_debug"("FAIL ", "postcircumfix:sym") + rx988_cur."!cursor_debug"("FAIL", "postcircumfix:sym") debug_823: .return (rx988_cur) .return () @@ -13920,7 +13893,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postcircumfix:sym" :subid("249_1282016529.10767") :method +.sub "!PREFIX__postcircumfix:sym" :subid("249_1282324002.40722") :method .annotate 'line', 447 new $P990, "ResizablePMCArray" push $P990, "<" @@ -13929,7 +13902,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postcircumfix:sym<( )>" :subid("250_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "postcircumfix:sym<( )>" :subid("250_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx993_tgt .local int rx993_pos @@ -13952,7 +13925,7 @@ NQP::Compiler - NQP compiler rx993_start: eq $I10, 1, rx993_restart if_null rx993_debug, debug_824 - rx993_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>") + rx993_cur."!cursor_debug"("START", "postcircumfix:sym<( )>") debug_824: $I10 = self.'from'() ne $I10, -1, rxscan997_done @@ -14005,13 +13978,13 @@ NQP::Compiler - NQP compiler # rx pass rx993_cur."!cursor_pass"(rx993_pos, "postcircumfix:sym<( )>") if_null rx993_debug, debug_825 - rx993_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx993_pos) + rx993_cur."!cursor_debug"("PASS", "postcircumfix:sym<( )>", " at pos=", rx993_pos) debug_825: .return (rx993_cur) rx993_restart: .annotate 'line', 447 if_null rx993_debug, debug_826 - rx993_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<( )>") + rx993_cur."!cursor_debug"("NEXT", "postcircumfix:sym<( )>") debug_826: rx993_fail: (rx993_rep, rx993_pos, $I10, $P10) = rx993_cur."!mark_fail"(0) @@ -14021,7 +13994,7 @@ NQP::Compiler - NQP compiler rx993_done: rx993_cur."!cursor_fail"() if_null rx993_debug, debug_827 - rx993_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>") + rx993_cur."!cursor_debug"("FAIL", "postcircumfix:sym<( )>") debug_827: .return (rx993_cur) .return () @@ -14029,7 +14002,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postcircumfix:sym<( )>" :subid("251_1282016529.10767") :method +.sub "!PREFIX__postcircumfix:sym<( )>" :subid("251_1282324002.40722") :method .annotate 'line', 447 $P995 = self."!PREFIX__!subrule"("ws", "(") new $P996, "ResizablePMCArray" @@ -14039,7 +14012,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postfix:sym<.>" :subid("252_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "postfix:sym<.>" :subid("252_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx999_tgt .local int rx999_pos @@ -14062,7 +14035,7 @@ NQP::Compiler - NQP compiler rx999_start: eq $I10, 1, rx999_restart if_null rx999_debug, debug_828 - rx999_cur."!cursor_debug"("START ", "postfix:sym<.>") + rx999_cur."!cursor_debug"("START", "postfix:sym<.>") debug_828: $I10 = self.'from'() ne $I10, -1, rxscan1003_done @@ -14094,13 +14067,13 @@ NQP::Compiler - NQP compiler # rx pass rx999_cur."!cursor_pass"(rx999_pos, "postfix:sym<.>") if_null rx999_debug, debug_829 - rx999_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx999_pos) + rx999_cur."!cursor_debug"("PASS", "postfix:sym<.>", " at pos=", rx999_pos) debug_829: .return (rx999_cur) rx999_restart: .annotate 'line', 447 if_null rx999_debug, debug_830 - rx999_cur."!cursor_debug"("NEXT ", "postfix:sym<.>") + rx999_cur."!cursor_debug"("NEXT", "postfix:sym<.>") debug_830: rx999_fail: (rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0) @@ -14110,7 +14083,7 @@ NQP::Compiler - NQP compiler rx999_done: rx999_cur."!cursor_fail"() if_null rx999_debug, debug_831 - rx999_cur."!cursor_debug"("FAIL ", "postfix:sym<.>") + rx999_cur."!cursor_debug"("FAIL", "postfix:sym<.>") debug_831: .return (rx999_cur) .return () @@ -14118,7 +14091,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postfix:sym<.>" :subid("253_1282016529.10767") :method +.sub "!PREFIX__postfix:sym<.>" :subid("253_1282324002.40722") :method .annotate 'line', 447 $P1001 = self."!PREFIX__!subrule"("dotty", "") new $P1002, "ResizablePMCArray" @@ -14128,7 +14101,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<++>" :subid("254_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym<++>" :subid("254_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1005_tgt .local int rx1005_pos @@ -14151,7 +14124,7 @@ NQP::Compiler - NQP compiler rx1005_start: eq $I10, 1, rx1005_restart if_null rx1005_debug, debug_832 - rx1005_cur."!cursor_debug"("START ", "prefix:sym<++>") + rx1005_cur."!cursor_debug"("START", "prefix:sym<++>") debug_832: $I10 = self.'from'() ne $I10, -1, rxscan1009_done @@ -14197,13 +14170,13 @@ NQP::Compiler - NQP compiler # rx pass rx1005_cur."!cursor_pass"(rx1005_pos, "prefix:sym<++>") if_null rx1005_debug, debug_833 - rx1005_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx1005_pos) + rx1005_cur."!cursor_debug"("PASS", "prefix:sym<++>", " at pos=", rx1005_pos) debug_833: .return (rx1005_cur) rx1005_restart: .annotate 'line', 447 if_null rx1005_debug, debug_834 - rx1005_cur."!cursor_debug"("NEXT ", "prefix:sym<++>") + rx1005_cur."!cursor_debug"("NEXT", "prefix:sym<++>") debug_834: rx1005_fail: (rx1005_rep, rx1005_pos, $I10, $P10) = rx1005_cur."!mark_fail"(0) @@ -14213,7 +14186,7 @@ NQP::Compiler - NQP compiler rx1005_done: rx1005_cur."!cursor_fail"() if_null rx1005_debug, debug_835 - rx1005_cur."!cursor_debug"("FAIL ", "prefix:sym<++>") + rx1005_cur."!cursor_debug"("FAIL", "prefix:sym<++>") debug_835: .return (rx1005_cur) .return () @@ -14221,7 +14194,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<++>" :subid("255_1282016529.10767") :method +.sub "!PREFIX__prefix:sym<++>" :subid("255_1282324002.40722") :method .annotate 'line', 447 $P1007 = self."!PREFIX__!subrule"("O", "++") new $P1008, "ResizablePMCArray" @@ -14231,7 +14204,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<-->" :subid("256_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym<-->" :subid("256_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1012_tgt .local int rx1012_pos @@ -14254,7 +14227,7 @@ NQP::Compiler - NQP compiler rx1012_start: eq $I10, 1, rx1012_restart if_null rx1012_debug, debug_836 - rx1012_cur."!cursor_debug"("START ", "prefix:sym<-->") + rx1012_cur."!cursor_debug"("START", "prefix:sym<-->") debug_836: $I10 = self.'from'() ne $I10, -1, rxscan1016_done @@ -14300,13 +14273,13 @@ NQP::Compiler - NQP compiler # rx pass rx1012_cur."!cursor_pass"(rx1012_pos, "prefix:sym<-->") if_null rx1012_debug, debug_837 - rx1012_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx1012_pos) + rx1012_cur."!cursor_debug"("PASS", "prefix:sym<-->", " at pos=", rx1012_pos) debug_837: .return (rx1012_cur) rx1012_restart: .annotate 'line', 447 if_null rx1012_debug, debug_838 - rx1012_cur."!cursor_debug"("NEXT ", "prefix:sym<-->") + rx1012_cur."!cursor_debug"("NEXT", "prefix:sym<-->") debug_838: rx1012_fail: (rx1012_rep, rx1012_pos, $I10, $P10) = rx1012_cur."!mark_fail"(0) @@ -14316,7 +14289,7 @@ NQP::Compiler - NQP compiler rx1012_done: rx1012_cur."!cursor_fail"() if_null rx1012_debug, debug_839 - rx1012_cur."!cursor_debug"("FAIL ", "prefix:sym<-->") + rx1012_cur."!cursor_debug"("FAIL", "prefix:sym<-->") debug_839: .return (rx1012_cur) .return () @@ -14324,7 +14297,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<-->" :subid("257_1282016529.10767") :method +.sub "!PREFIX__prefix:sym<-->" :subid("257_1282324002.40722") :method .annotate 'line', 447 $P1014 = self."!PREFIX__!subrule"("O", "--") new $P1015, "ResizablePMCArray" @@ -14334,7 +14307,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postfix:sym<++>" :subid("258_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "postfix:sym<++>" :subid("258_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1019_tgt .local int rx1019_pos @@ -14357,7 +14330,7 @@ NQP::Compiler - NQP compiler rx1019_start: eq $I10, 1, rx1019_restart if_null rx1019_debug, debug_840 - rx1019_cur."!cursor_debug"("START ", "postfix:sym<++>") + rx1019_cur."!cursor_debug"("START", "postfix:sym<++>") debug_840: $I10 = self.'from'() ne $I10, -1, rxscan1023_done @@ -14403,13 +14376,13 @@ NQP::Compiler - NQP compiler # rx pass rx1019_cur."!cursor_pass"(rx1019_pos, "postfix:sym<++>") if_null rx1019_debug, debug_841 - rx1019_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx1019_pos) + rx1019_cur."!cursor_debug"("PASS", "postfix:sym<++>", " at pos=", rx1019_pos) debug_841: .return (rx1019_cur) rx1019_restart: .annotate 'line', 447 if_null rx1019_debug, debug_842 - rx1019_cur."!cursor_debug"("NEXT ", "postfix:sym<++>") + rx1019_cur."!cursor_debug"("NEXT", "postfix:sym<++>") debug_842: rx1019_fail: (rx1019_rep, rx1019_pos, $I10, $P10) = rx1019_cur."!mark_fail"(0) @@ -14419,7 +14392,7 @@ NQP::Compiler - NQP compiler rx1019_done: rx1019_cur."!cursor_fail"() if_null rx1019_debug, debug_843 - rx1019_cur."!cursor_debug"("FAIL ", "postfix:sym<++>") + rx1019_cur."!cursor_debug"("FAIL", "postfix:sym<++>") debug_843: .return (rx1019_cur) .return () @@ -14427,7 +14400,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postfix:sym<++>" :subid("259_1282016529.10767") :method +.sub "!PREFIX__postfix:sym<++>" :subid("259_1282324002.40722") :method .annotate 'line', 447 $P1021 = self."!PREFIX__!subrule"("O", "++") new $P1022, "ResizablePMCArray" @@ -14437,7 +14410,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "postfix:sym<-->" :subid("260_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "postfix:sym<-->" :subid("260_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1026_tgt .local int rx1026_pos @@ -14460,7 +14433,7 @@ NQP::Compiler - NQP compiler rx1026_start: eq $I10, 1, rx1026_restart if_null rx1026_debug, debug_844 - rx1026_cur."!cursor_debug"("START ", "postfix:sym<-->") + rx1026_cur."!cursor_debug"("START", "postfix:sym<-->") debug_844: $I10 = self.'from'() ne $I10, -1, rxscan1030_done @@ -14506,13 +14479,13 @@ NQP::Compiler - NQP compiler # rx pass rx1026_cur."!cursor_pass"(rx1026_pos, "postfix:sym<-->") if_null rx1026_debug, debug_845 - rx1026_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx1026_pos) + rx1026_cur."!cursor_debug"("PASS", "postfix:sym<-->", " at pos=", rx1026_pos) debug_845: .return (rx1026_cur) rx1026_restart: .annotate 'line', 447 if_null rx1026_debug, debug_846 - rx1026_cur."!cursor_debug"("NEXT ", "postfix:sym<-->") + rx1026_cur."!cursor_debug"("NEXT", "postfix:sym<-->") debug_846: rx1026_fail: (rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0) @@ -14522,7 +14495,7 @@ NQP::Compiler - NQP compiler rx1026_done: rx1026_cur."!cursor_fail"() if_null rx1026_debug, debug_847 - rx1026_cur."!cursor_debug"("FAIL ", "postfix:sym<-->") + rx1026_cur."!cursor_debug"("FAIL", "postfix:sym<-->") debug_847: .return (rx1026_cur) .return () @@ -14530,7 +14503,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__postfix:sym<-->" :subid("261_1282016529.10767") :method +.sub "!PREFIX__postfix:sym<-->" :subid("261_1282324002.40722") :method .annotate 'line', 447 $P1028 = self."!PREFIX__!subrule"("O", "--") new $P1029, "ResizablePMCArray" @@ -14540,7 +14513,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<**>" :subid("262_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<**>" :subid("262_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1033_tgt .local int rx1033_pos @@ -14563,7 +14536,7 @@ NQP::Compiler - NQP compiler rx1033_start: eq $I10, 1, rx1033_restart if_null rx1033_debug, debug_848 - rx1033_cur."!cursor_debug"("START ", "infix:sym<**>") + rx1033_cur."!cursor_debug"("START", "infix:sym<**>") debug_848: $I10 = self.'from'() ne $I10, -1, rxscan1037_done @@ -14609,13 +14582,13 @@ NQP::Compiler - NQP compiler # rx pass rx1033_cur."!cursor_pass"(rx1033_pos, "infix:sym<**>") if_null rx1033_debug, debug_849 - rx1033_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx1033_pos) + rx1033_cur."!cursor_debug"("PASS", "infix:sym<**>", " at pos=", rx1033_pos) debug_849: .return (rx1033_cur) rx1033_restart: .annotate 'line', 447 if_null rx1033_debug, debug_850 - rx1033_cur."!cursor_debug"("NEXT ", "infix:sym<**>") + rx1033_cur."!cursor_debug"("NEXT", "infix:sym<**>") debug_850: rx1033_fail: (rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0) @@ -14625,7 +14598,7 @@ NQP::Compiler - NQP compiler rx1033_done: rx1033_cur."!cursor_fail"() if_null rx1033_debug, debug_851 - rx1033_cur."!cursor_debug"("FAIL ", "infix:sym<**>") + rx1033_cur."!cursor_debug"("FAIL", "infix:sym<**>") debug_851: .return (rx1033_cur) .return () @@ -14633,7 +14606,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<**>" :subid("263_1282016529.10767") :method +.sub "!PREFIX__infix:sym<**>" :subid("263_1282324002.40722") :method .annotate 'line', 447 $P1035 = self."!PREFIX__!subrule"("O", "**") new $P1036, "ResizablePMCArray" @@ -14643,7 +14616,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<+>" :subid("264_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym<+>" :subid("264_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1040_tgt .local int rx1040_pos @@ -14666,7 +14639,7 @@ NQP::Compiler - NQP compiler rx1040_start: eq $I10, 1, rx1040_restart if_null rx1040_debug, debug_852 - rx1040_cur."!cursor_debug"("START ", "prefix:sym<+>") + rx1040_cur."!cursor_debug"("START", "prefix:sym<+>") debug_852: $I10 = self.'from'() ne $I10, -1, rxscan1044_done @@ -14712,13 +14685,13 @@ NQP::Compiler - NQP compiler # rx pass rx1040_cur."!cursor_pass"(rx1040_pos, "prefix:sym<+>") if_null rx1040_debug, debug_853 - rx1040_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx1040_pos) + rx1040_cur."!cursor_debug"("PASS", "prefix:sym<+>", " at pos=", rx1040_pos) debug_853: .return (rx1040_cur) rx1040_restart: .annotate 'line', 447 if_null rx1040_debug, debug_854 - rx1040_cur."!cursor_debug"("NEXT ", "prefix:sym<+>") + rx1040_cur."!cursor_debug"("NEXT", "prefix:sym<+>") debug_854: rx1040_fail: (rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0) @@ -14728,7 +14701,7 @@ NQP::Compiler - NQP compiler rx1040_done: rx1040_cur."!cursor_fail"() if_null rx1040_debug, debug_855 - rx1040_cur."!cursor_debug"("FAIL ", "prefix:sym<+>") + rx1040_cur."!cursor_debug"("FAIL", "prefix:sym<+>") debug_855: .return (rx1040_cur) .return () @@ -14736,7 +14709,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<+>" :subid("265_1282016529.10767") :method +.sub "!PREFIX__prefix:sym<+>" :subid("265_1282324002.40722") :method .annotate 'line', 447 $P1042 = self."!PREFIX__!subrule"("O", "+") new $P1043, "ResizablePMCArray" @@ -14746,7 +14719,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<~>" :subid("266_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym<~>" :subid("266_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1047_tgt .local int rx1047_pos @@ -14769,7 +14742,7 @@ NQP::Compiler - NQP compiler rx1047_start: eq $I10, 1, rx1047_restart if_null rx1047_debug, debug_856 - rx1047_cur."!cursor_debug"("START ", "prefix:sym<~>") + rx1047_cur."!cursor_debug"("START", "prefix:sym<~>") debug_856: $I10 = self.'from'() ne $I10, -1, rxscan1051_done @@ -14815,13 +14788,13 @@ NQP::Compiler - NQP compiler # rx pass rx1047_cur."!cursor_pass"(rx1047_pos, "prefix:sym<~>") if_null rx1047_debug, debug_857 - rx1047_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx1047_pos) + rx1047_cur."!cursor_debug"("PASS", "prefix:sym<~>", " at pos=", rx1047_pos) debug_857: .return (rx1047_cur) rx1047_restart: .annotate 'line', 447 if_null rx1047_debug, debug_858 - rx1047_cur."!cursor_debug"("NEXT ", "prefix:sym<~>") + rx1047_cur."!cursor_debug"("NEXT", "prefix:sym<~>") debug_858: rx1047_fail: (rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0) @@ -14831,7 +14804,7 @@ NQP::Compiler - NQP compiler rx1047_done: rx1047_cur."!cursor_fail"() if_null rx1047_debug, debug_859 - rx1047_cur."!cursor_debug"("FAIL ", "prefix:sym<~>") + rx1047_cur."!cursor_debug"("FAIL", "prefix:sym<~>") debug_859: .return (rx1047_cur) .return () @@ -14839,7 +14812,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<~>" :subid("267_1282016529.10767") :method +.sub "!PREFIX__prefix:sym<~>" :subid("267_1282324002.40722") :method .annotate 'line', 447 $P1049 = self."!PREFIX__!subrule"("O", "~") new $P1050, "ResizablePMCArray" @@ -14849,7 +14822,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<->" :subid("268_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym<->" :subid("268_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1054_tgt .local int rx1054_pos @@ -14872,7 +14845,7 @@ NQP::Compiler - NQP compiler rx1054_start: eq $I10, 1, rx1054_restart if_null rx1054_debug, debug_860 - rx1054_cur."!cursor_debug"("START ", "prefix:sym<->") + rx1054_cur."!cursor_debug"("START", "prefix:sym<->") debug_860: $I10 = self.'from'() ne $I10, -1, rxscan1057_done @@ -14928,13 +14901,13 @@ NQP::Compiler - NQP compiler # rx pass rx1054_cur."!cursor_pass"(rx1054_pos, "prefix:sym<->") if_null rx1054_debug, debug_861 - rx1054_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx1054_pos) + rx1054_cur."!cursor_debug"("PASS", "prefix:sym<->", " at pos=", rx1054_pos) debug_861: .return (rx1054_cur) rx1054_restart: .annotate 'line', 447 if_null rx1054_debug, debug_862 - rx1054_cur."!cursor_debug"("NEXT ", "prefix:sym<->") + rx1054_cur."!cursor_debug"("NEXT", "prefix:sym<->") debug_862: rx1054_fail: (rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0) @@ -14944,7 +14917,7 @@ NQP::Compiler - NQP compiler rx1054_done: rx1054_cur."!cursor_fail"() if_null rx1054_debug, debug_863 - rx1054_cur."!cursor_debug"("FAIL ", "prefix:sym<->") + rx1054_cur."!cursor_debug"("FAIL", "prefix:sym<->") debug_863: .return (rx1054_cur) .return () @@ -14952,7 +14925,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<->" :subid("269_1282016529.10767") :method +.sub "!PREFIX__prefix:sym<->" :subid("269_1282324002.40722") :method .annotate 'line', 447 new $P1056, "ResizablePMCArray" push $P1056, "-" @@ -14961,7 +14934,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym" :subid("270_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym" :subid("270_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1060_tgt .local int rx1060_pos @@ -14984,7 +14957,7 @@ NQP::Compiler - NQP compiler rx1060_start: eq $I10, 1, rx1060_restart if_null rx1060_debug, debug_864 - rx1060_cur."!cursor_debug"("START ", "prefix:sym") + rx1060_cur."!cursor_debug"("START", "prefix:sym") debug_864: $I10 = self.'from'() ne $I10, -1, rxscan1064_done @@ -15030,13 +15003,13 @@ NQP::Compiler - NQP compiler # rx pass rx1060_cur."!cursor_pass"(rx1060_pos, "prefix:sym") if_null rx1060_debug, debug_865 - rx1060_cur."!cursor_debug"("PASS ", "prefix:sym", " at pos=", rx1060_pos) + rx1060_cur."!cursor_debug"("PASS", "prefix:sym", " at pos=", rx1060_pos) debug_865: .return (rx1060_cur) rx1060_restart: .annotate 'line', 447 if_null rx1060_debug, debug_866 - rx1060_cur."!cursor_debug"("NEXT ", "prefix:sym") + rx1060_cur."!cursor_debug"("NEXT", "prefix:sym") debug_866: rx1060_fail: (rx1060_rep, rx1060_pos, $I10, $P10) = rx1060_cur."!mark_fail"(0) @@ -15046,7 +15019,7 @@ NQP::Compiler - NQP compiler rx1060_done: rx1060_cur."!cursor_fail"() if_null rx1060_debug, debug_867 - rx1060_cur."!cursor_debug"("FAIL ", "prefix:sym") + rx1060_cur."!cursor_debug"("FAIL", "prefix:sym") debug_867: .return (rx1060_cur) .return () @@ -15054,7 +15027,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym" :subid("271_1282016529.10767") :method +.sub "!PREFIX__prefix:sym" :subid("271_1282324002.40722") :method .annotate 'line', 447 $P1062 = self."!PREFIX__!subrule"("O", "?") new $P1063, "ResizablePMCArray" @@ -15064,7 +15037,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym" :subid("272_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym" :subid("272_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1067_tgt .local int rx1067_pos @@ -15087,7 +15060,7 @@ NQP::Compiler - NQP compiler rx1067_start: eq $I10, 1, rx1067_restart if_null rx1067_debug, debug_868 - rx1067_cur."!cursor_debug"("START ", "prefix:sym") + rx1067_cur."!cursor_debug"("START", "prefix:sym") debug_868: $I10 = self.'from'() ne $I10, -1, rxscan1071_done @@ -15133,13 +15106,13 @@ NQP::Compiler - NQP compiler # rx pass rx1067_cur."!cursor_pass"(rx1067_pos, "prefix:sym") if_null rx1067_debug, debug_869 - rx1067_cur."!cursor_debug"("PASS ", "prefix:sym", " at pos=", rx1067_pos) + rx1067_cur."!cursor_debug"("PASS", "prefix:sym", " at pos=", rx1067_pos) debug_869: .return (rx1067_cur) rx1067_restart: .annotate 'line', 447 if_null rx1067_debug, debug_870 - rx1067_cur."!cursor_debug"("NEXT ", "prefix:sym") + rx1067_cur."!cursor_debug"("NEXT", "prefix:sym") debug_870: rx1067_fail: (rx1067_rep, rx1067_pos, $I10, $P10) = rx1067_cur."!mark_fail"(0) @@ -15149,7 +15122,7 @@ NQP::Compiler - NQP compiler rx1067_done: rx1067_cur."!cursor_fail"() if_null rx1067_debug, debug_871 - rx1067_cur."!cursor_debug"("FAIL ", "prefix:sym") + rx1067_cur."!cursor_debug"("FAIL", "prefix:sym") debug_871: .return (rx1067_cur) .return () @@ -15157,7 +15130,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym" :subid("273_1282016529.10767") :method +.sub "!PREFIX__prefix:sym" :subid("273_1282324002.40722") :method .annotate 'line', 447 $P1069 = self."!PREFIX__!subrule"("O", "!") new $P1070, "ResizablePMCArray" @@ -15167,7 +15140,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym<|>" :subid("274_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym<|>" :subid("274_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1074_tgt .local int rx1074_pos @@ -15190,7 +15163,7 @@ NQP::Compiler - NQP compiler rx1074_start: eq $I10, 1, rx1074_restart if_null rx1074_debug, debug_872 - rx1074_cur."!cursor_debug"("START ", "prefix:sym<|>") + rx1074_cur."!cursor_debug"("START", "prefix:sym<|>") debug_872: $I10 = self.'from'() ne $I10, -1, rxscan1078_done @@ -15236,13 +15209,13 @@ NQP::Compiler - NQP compiler # rx pass rx1074_cur."!cursor_pass"(rx1074_pos, "prefix:sym<|>") if_null rx1074_debug, debug_873 - rx1074_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1074_pos) + rx1074_cur."!cursor_debug"("PASS", "prefix:sym<|>", " at pos=", rx1074_pos) debug_873: .return (rx1074_cur) rx1074_restart: .annotate 'line', 447 if_null rx1074_debug, debug_874 - rx1074_cur."!cursor_debug"("NEXT ", "prefix:sym<|>") + rx1074_cur."!cursor_debug"("NEXT", "prefix:sym<|>") debug_874: rx1074_fail: (rx1074_rep, rx1074_pos, $I10, $P10) = rx1074_cur."!mark_fail"(0) @@ -15252,7 +15225,7 @@ NQP::Compiler - NQP compiler rx1074_done: rx1074_cur."!cursor_fail"() if_null rx1074_debug, debug_875 - rx1074_cur."!cursor_debug"("FAIL ", "prefix:sym<|>") + rx1074_cur."!cursor_debug"("FAIL", "prefix:sym<|>") debug_875: .return (rx1074_cur) .return () @@ -15260,7 +15233,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym<|>" :subid("275_1282016529.10767") :method +.sub "!PREFIX__prefix:sym<|>" :subid("275_1282324002.40722") :method .annotate 'line', 447 $P1076 = self."!PREFIX__!subrule"("O", "|") new $P1077, "ResizablePMCArray" @@ -15270,7 +15243,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<*>" :subid("276_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<*>" :subid("276_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1081_tgt .local int rx1081_pos @@ -15293,7 +15266,7 @@ NQP::Compiler - NQP compiler rx1081_start: eq $I10, 1, rx1081_restart if_null rx1081_debug, debug_876 - rx1081_cur."!cursor_debug"("START ", "infix:sym<*>") + rx1081_cur."!cursor_debug"("START", "infix:sym<*>") debug_876: $I10 = self.'from'() ne $I10, -1, rxscan1085_done @@ -15339,13 +15312,13 @@ NQP::Compiler - NQP compiler # rx pass rx1081_cur."!cursor_pass"(rx1081_pos, "infix:sym<*>") if_null rx1081_debug, debug_877 - rx1081_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1081_pos) + rx1081_cur."!cursor_debug"("PASS", "infix:sym<*>", " at pos=", rx1081_pos) debug_877: .return (rx1081_cur) rx1081_restart: .annotate 'line', 447 if_null rx1081_debug, debug_878 - rx1081_cur."!cursor_debug"("NEXT ", "infix:sym<*>") + rx1081_cur."!cursor_debug"("NEXT", "infix:sym<*>") debug_878: rx1081_fail: (rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0) @@ -15355,7 +15328,7 @@ NQP::Compiler - NQP compiler rx1081_done: rx1081_cur."!cursor_fail"() if_null rx1081_debug, debug_879 - rx1081_cur."!cursor_debug"("FAIL ", "infix:sym<*>") + rx1081_cur."!cursor_debug"("FAIL", "infix:sym<*>") debug_879: .return (rx1081_cur) .return () @@ -15363,7 +15336,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<*>" :subid("277_1282016529.10767") :method +.sub "!PREFIX__infix:sym<*>" :subid("277_1282324002.40722") :method .annotate 'line', 447 $P1083 = self."!PREFIX__!subrule"("O", "*") new $P1084, "ResizablePMCArray" @@ -15373,7 +15346,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("278_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("278_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1088_tgt .local int rx1088_pos @@ -15396,7 +15369,7 @@ NQP::Compiler - NQP compiler rx1088_start: eq $I10, 1, rx1088_restart if_null rx1088_debug, debug_880 - rx1088_cur."!cursor_debug"("START ", "infix:sym") + rx1088_cur."!cursor_debug"("START", "infix:sym") debug_880: $I10 = self.'from'() ne $I10, -1, rxscan1092_done @@ -15442,13 +15415,13 @@ NQP::Compiler - NQP compiler # rx pass rx1088_cur."!cursor_pass"(rx1088_pos, "infix:sym") if_null rx1088_debug, debug_881 - rx1088_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1088_pos) + rx1088_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1088_pos) debug_881: .return (rx1088_cur) rx1088_restart: .annotate 'line', 447 if_null rx1088_debug, debug_882 - rx1088_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1088_cur."!cursor_debug"("NEXT", "infix:sym") debug_882: rx1088_fail: (rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0) @@ -15458,7 +15431,7 @@ NQP::Compiler - NQP compiler rx1088_done: rx1088_cur."!cursor_fail"() if_null rx1088_debug, debug_883 - rx1088_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1088_cur."!cursor_debug"("FAIL", "infix:sym") debug_883: .return (rx1088_cur) .return () @@ -15466,7 +15439,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("279_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("279_1282324002.40722") :method .annotate 'line', 447 $P1090 = self."!PREFIX__!subrule"("O", "/") new $P1091, "ResizablePMCArray" @@ -15476,7 +15449,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<%>" :subid("280_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<%>" :subid("280_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1095_tgt .local int rx1095_pos @@ -15499,7 +15472,7 @@ NQP::Compiler - NQP compiler rx1095_start: eq $I10, 1, rx1095_restart if_null rx1095_debug, debug_884 - rx1095_cur."!cursor_debug"("START ", "infix:sym<%>") + rx1095_cur."!cursor_debug"("START", "infix:sym<%>") debug_884: $I10 = self.'from'() ne $I10, -1, rxscan1099_done @@ -15545,13 +15518,13 @@ NQP::Compiler - NQP compiler # rx pass rx1095_cur."!cursor_pass"(rx1095_pos, "infix:sym<%>") if_null rx1095_debug, debug_885 - rx1095_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1095_pos) + rx1095_cur."!cursor_debug"("PASS", "infix:sym<%>", " at pos=", rx1095_pos) debug_885: .return (rx1095_cur) rx1095_restart: .annotate 'line', 447 if_null rx1095_debug, debug_886 - rx1095_cur."!cursor_debug"("NEXT ", "infix:sym<%>") + rx1095_cur."!cursor_debug"("NEXT", "infix:sym<%>") debug_886: rx1095_fail: (rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0) @@ -15561,7 +15534,7 @@ NQP::Compiler - NQP compiler rx1095_done: rx1095_cur."!cursor_fail"() if_null rx1095_debug, debug_887 - rx1095_cur."!cursor_debug"("FAIL ", "infix:sym<%>") + rx1095_cur."!cursor_debug"("FAIL", "infix:sym<%>") debug_887: .return (rx1095_cur) .return () @@ -15569,7 +15542,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<%>" :subid("281_1282016529.10767") :method +.sub "!PREFIX__infix:sym<%>" :subid("281_1282324002.40722") :method .annotate 'line', 447 $P1097 = self."!PREFIX__!subrule"("O", "%") new $P1098, "ResizablePMCArray" @@ -15579,7 +15552,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<+&>" :subid("282_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<+&>" :subid("282_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1102_tgt .local int rx1102_pos @@ -15602,7 +15575,7 @@ NQP::Compiler - NQP compiler rx1102_start: eq $I10, 1, rx1102_restart if_null rx1102_debug, debug_888 - rx1102_cur."!cursor_debug"("START ", "infix:sym<+&>") + rx1102_cur."!cursor_debug"("START", "infix:sym<+&>") debug_888: $I10 = self.'from'() ne $I10, -1, rxscan1106_done @@ -15648,13 +15621,13 @@ NQP::Compiler - NQP compiler # rx pass rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<+&>") if_null rx1102_debug, debug_889 - rx1102_cur."!cursor_debug"("PASS ", "infix:sym<+&>", " at pos=", rx1102_pos) + rx1102_cur."!cursor_debug"("PASS", "infix:sym<+&>", " at pos=", rx1102_pos) debug_889: .return (rx1102_cur) rx1102_restart: .annotate 'line', 447 if_null rx1102_debug, debug_890 - rx1102_cur."!cursor_debug"("NEXT ", "infix:sym<+&>") + rx1102_cur."!cursor_debug"("NEXT", "infix:sym<+&>") debug_890: rx1102_fail: (rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0) @@ -15664,7 +15637,7 @@ NQP::Compiler - NQP compiler rx1102_done: rx1102_cur."!cursor_fail"() if_null rx1102_debug, debug_891 - rx1102_cur."!cursor_debug"("FAIL ", "infix:sym<+&>") + rx1102_cur."!cursor_debug"("FAIL", "infix:sym<+&>") debug_891: .return (rx1102_cur) .return () @@ -15672,7 +15645,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<+&>" :subid("283_1282016529.10767") :method +.sub "!PREFIX__infix:sym<+&>" :subid("283_1282324002.40722") :method .annotate 'line', 447 $P1104 = self."!PREFIX__!subrule"("O", "+&") new $P1105, "ResizablePMCArray" @@ -15682,7 +15655,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<+>" :subid("284_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<+>" :subid("284_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1109_tgt .local int rx1109_pos @@ -15705,7 +15678,7 @@ NQP::Compiler - NQP compiler rx1109_start: eq $I10, 1, rx1109_restart if_null rx1109_debug, debug_892 - rx1109_cur."!cursor_debug"("START ", "infix:sym<+>") + rx1109_cur."!cursor_debug"("START", "infix:sym<+>") debug_892: $I10 = self.'from'() ne $I10, -1, rxscan1113_done @@ -15751,13 +15724,13 @@ NQP::Compiler - NQP compiler # rx pass rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym<+>") if_null rx1109_debug, debug_893 - rx1109_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1109_pos) + rx1109_cur."!cursor_debug"("PASS", "infix:sym<+>", " at pos=", rx1109_pos) debug_893: .return (rx1109_cur) rx1109_restart: .annotate 'line', 447 if_null rx1109_debug, debug_894 - rx1109_cur."!cursor_debug"("NEXT ", "infix:sym<+>") + rx1109_cur."!cursor_debug"("NEXT", "infix:sym<+>") debug_894: rx1109_fail: (rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0) @@ -15767,7 +15740,7 @@ NQP::Compiler - NQP compiler rx1109_done: rx1109_cur."!cursor_fail"() if_null rx1109_debug, debug_895 - rx1109_cur."!cursor_debug"("FAIL ", "infix:sym<+>") + rx1109_cur."!cursor_debug"("FAIL", "infix:sym<+>") debug_895: .return (rx1109_cur) .return () @@ -15775,7 +15748,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<+>" :subid("285_1282016529.10767") :method +.sub "!PREFIX__infix:sym<+>" :subid("285_1282324002.40722") :method .annotate 'line', 447 $P1111 = self."!PREFIX__!subrule"("O", "+") new $P1112, "ResizablePMCArray" @@ -15785,7 +15758,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<->" :subid("286_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<->" :subid("286_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1116_tgt .local int rx1116_pos @@ -15808,7 +15781,7 @@ NQP::Compiler - NQP compiler rx1116_start: eq $I10, 1, rx1116_restart if_null rx1116_debug, debug_896 - rx1116_cur."!cursor_debug"("START ", "infix:sym<->") + rx1116_cur."!cursor_debug"("START", "infix:sym<->") debug_896: $I10 = self.'from'() ne $I10, -1, rxscan1120_done @@ -15854,13 +15827,13 @@ NQP::Compiler - NQP compiler # rx pass rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<->") if_null rx1116_debug, debug_897 - rx1116_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1116_pos) + rx1116_cur."!cursor_debug"("PASS", "infix:sym<->", " at pos=", rx1116_pos) debug_897: .return (rx1116_cur) rx1116_restart: .annotate 'line', 447 if_null rx1116_debug, debug_898 - rx1116_cur."!cursor_debug"("NEXT ", "infix:sym<->") + rx1116_cur."!cursor_debug"("NEXT", "infix:sym<->") debug_898: rx1116_fail: (rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0) @@ -15870,7 +15843,7 @@ NQP::Compiler - NQP compiler rx1116_done: rx1116_cur."!cursor_fail"() if_null rx1116_debug, debug_899 - rx1116_cur."!cursor_debug"("FAIL ", "infix:sym<->") + rx1116_cur."!cursor_debug"("FAIL", "infix:sym<->") debug_899: .return (rx1116_cur) .return () @@ -15878,7 +15851,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<->" :subid("287_1282016529.10767") :method +.sub "!PREFIX__infix:sym<->" :subid("287_1282324002.40722") :method .annotate 'line', 447 $P1118 = self."!PREFIX__!subrule"("O", "-") new $P1119, "ResizablePMCArray" @@ -15888,7 +15861,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<+|>" :subid("288_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<+|>" :subid("288_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1123_tgt .local int rx1123_pos @@ -15911,7 +15884,7 @@ NQP::Compiler - NQP compiler rx1123_start: eq $I10, 1, rx1123_restart if_null rx1123_debug, debug_900 - rx1123_cur."!cursor_debug"("START ", "infix:sym<+|>") + rx1123_cur."!cursor_debug"("START", "infix:sym<+|>") debug_900: $I10 = self.'from'() ne $I10, -1, rxscan1127_done @@ -15957,13 +15930,13 @@ NQP::Compiler - NQP compiler # rx pass rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+|>") if_null rx1123_debug, debug_901 - rx1123_cur."!cursor_debug"("PASS ", "infix:sym<+|>", " at pos=", rx1123_pos) + rx1123_cur."!cursor_debug"("PASS", "infix:sym<+|>", " at pos=", rx1123_pos) debug_901: .return (rx1123_cur) rx1123_restart: .annotate 'line', 447 if_null rx1123_debug, debug_902 - rx1123_cur."!cursor_debug"("NEXT ", "infix:sym<+|>") + rx1123_cur."!cursor_debug"("NEXT", "infix:sym<+|>") debug_902: rx1123_fail: (rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0) @@ -15973,7 +15946,7 @@ NQP::Compiler - NQP compiler rx1123_done: rx1123_cur."!cursor_fail"() if_null rx1123_debug, debug_903 - rx1123_cur."!cursor_debug"("FAIL ", "infix:sym<+|>") + rx1123_cur."!cursor_debug"("FAIL", "infix:sym<+|>") debug_903: .return (rx1123_cur) .return () @@ -15981,7 +15954,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<+|>" :subid("289_1282016529.10767") :method +.sub "!PREFIX__infix:sym<+|>" :subid("289_1282324002.40722") :method .annotate 'line', 447 $P1125 = self."!PREFIX__!subrule"("O", "+|") new $P1126, "ResizablePMCArray" @@ -15991,7 +15964,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<+^>" :subid("290_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<+^>" :subid("290_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1130_tgt .local int rx1130_pos @@ -16014,7 +15987,7 @@ NQP::Compiler - NQP compiler rx1130_start: eq $I10, 1, rx1130_restart if_null rx1130_debug, debug_904 - rx1130_cur."!cursor_debug"("START ", "infix:sym<+^>") + rx1130_cur."!cursor_debug"("START", "infix:sym<+^>") debug_904: $I10 = self.'from'() ne $I10, -1, rxscan1134_done @@ -16060,13 +16033,13 @@ NQP::Compiler - NQP compiler # rx pass rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<+^>") if_null rx1130_debug, debug_905 - rx1130_cur."!cursor_debug"("PASS ", "infix:sym<+^>", " at pos=", rx1130_pos) + rx1130_cur."!cursor_debug"("PASS", "infix:sym<+^>", " at pos=", rx1130_pos) debug_905: .return (rx1130_cur) rx1130_restart: .annotate 'line', 447 if_null rx1130_debug, debug_906 - rx1130_cur."!cursor_debug"("NEXT ", "infix:sym<+^>") + rx1130_cur."!cursor_debug"("NEXT", "infix:sym<+^>") debug_906: rx1130_fail: (rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0) @@ -16076,7 +16049,7 @@ NQP::Compiler - NQP compiler rx1130_done: rx1130_cur."!cursor_fail"() if_null rx1130_debug, debug_907 - rx1130_cur."!cursor_debug"("FAIL ", "infix:sym<+^>") + rx1130_cur."!cursor_debug"("FAIL", "infix:sym<+^>") debug_907: .return (rx1130_cur) .return () @@ -16084,7 +16057,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<+^>" :subid("291_1282016529.10767") :method +.sub "!PREFIX__infix:sym<+^>" :subid("291_1282324002.40722") :method .annotate 'line', 447 $P1132 = self."!PREFIX__!subrule"("O", "+^") new $P1133, "ResizablePMCArray" @@ -16094,7 +16067,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<~>" :subid("292_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<~>" :subid("292_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1137_tgt .local int rx1137_pos @@ -16117,7 +16090,7 @@ NQP::Compiler - NQP compiler rx1137_start: eq $I10, 1, rx1137_restart if_null rx1137_debug, debug_908 - rx1137_cur."!cursor_debug"("START ", "infix:sym<~>") + rx1137_cur."!cursor_debug"("START", "infix:sym<~>") debug_908: $I10 = self.'from'() ne $I10, -1, rxscan1141_done @@ -16163,13 +16136,13 @@ NQP::Compiler - NQP compiler # rx pass rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>") if_null rx1137_debug, debug_909 - rx1137_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1137_pos) + rx1137_cur."!cursor_debug"("PASS", "infix:sym<~>", " at pos=", rx1137_pos) debug_909: .return (rx1137_cur) rx1137_restart: .annotate 'line', 447 if_null rx1137_debug, debug_910 - rx1137_cur."!cursor_debug"("NEXT ", "infix:sym<~>") + rx1137_cur."!cursor_debug"("NEXT", "infix:sym<~>") debug_910: rx1137_fail: (rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0) @@ -16179,7 +16152,7 @@ NQP::Compiler - NQP compiler rx1137_done: rx1137_cur."!cursor_fail"() if_null rx1137_debug, debug_911 - rx1137_cur."!cursor_debug"("FAIL ", "infix:sym<~>") + rx1137_cur."!cursor_debug"("FAIL", "infix:sym<~>") debug_911: .return (rx1137_cur) .return () @@ -16187,7 +16160,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<~>" :subid("293_1282016529.10767") :method +.sub "!PREFIX__infix:sym<~>" :subid("293_1282324002.40722") :method .annotate 'line', 447 $P1139 = self."!PREFIX__!subrule"("O", "~") new $P1140, "ResizablePMCArray" @@ -16197,7 +16170,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<==>" :subid("294_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<==>" :subid("294_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1144_tgt .local int rx1144_pos @@ -16220,7 +16193,7 @@ NQP::Compiler - NQP compiler rx1144_start: eq $I10, 1, rx1144_restart if_null rx1144_debug, debug_912 - rx1144_cur."!cursor_debug"("START ", "infix:sym<==>") + rx1144_cur."!cursor_debug"("START", "infix:sym<==>") debug_912: $I10 = self.'from'() ne $I10, -1, rxscan1148_done @@ -16266,13 +16239,13 @@ NQP::Compiler - NQP compiler # rx pass rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>") if_null rx1144_debug, debug_913 - rx1144_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1144_pos) + rx1144_cur."!cursor_debug"("PASS", "infix:sym<==>", " at pos=", rx1144_pos) debug_913: .return (rx1144_cur) rx1144_restart: .annotate 'line', 447 if_null rx1144_debug, debug_914 - rx1144_cur."!cursor_debug"("NEXT ", "infix:sym<==>") + rx1144_cur."!cursor_debug"("NEXT", "infix:sym<==>") debug_914: rx1144_fail: (rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0) @@ -16282,7 +16255,7 @@ NQP::Compiler - NQP compiler rx1144_done: rx1144_cur."!cursor_fail"() if_null rx1144_debug, debug_915 - rx1144_cur."!cursor_debug"("FAIL ", "infix:sym<==>") + rx1144_cur."!cursor_debug"("FAIL", "infix:sym<==>") debug_915: .return (rx1144_cur) .return () @@ -16290,7 +16263,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<==>" :subid("295_1282016529.10767") :method +.sub "!PREFIX__infix:sym<==>" :subid("295_1282324002.40722") :method .annotate 'line', 447 $P1146 = self."!PREFIX__!subrule"("O", "==") new $P1147, "ResizablePMCArray" @@ -16300,7 +16273,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("296_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("296_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1151_tgt .local int rx1151_pos @@ -16323,7 +16296,7 @@ NQP::Compiler - NQP compiler rx1151_start: eq $I10, 1, rx1151_restart if_null rx1151_debug, debug_916 - rx1151_cur."!cursor_debug"("START ", "infix:sym") + rx1151_cur."!cursor_debug"("START", "infix:sym") debug_916: $I10 = self.'from'() ne $I10, -1, rxscan1155_done @@ -16369,13 +16342,13 @@ NQP::Compiler - NQP compiler # rx pass rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym") if_null rx1151_debug, debug_917 - rx1151_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1151_pos) + rx1151_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1151_pos) debug_917: .return (rx1151_cur) rx1151_restart: .annotate 'line', 447 if_null rx1151_debug, debug_918 - rx1151_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1151_cur."!cursor_debug"("NEXT", "infix:sym") debug_918: rx1151_fail: (rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0) @@ -16385,7 +16358,7 @@ NQP::Compiler - NQP compiler rx1151_done: rx1151_cur."!cursor_fail"() if_null rx1151_debug, debug_919 - rx1151_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1151_cur."!cursor_debug"("FAIL", "infix:sym") debug_919: .return (rx1151_cur) .return () @@ -16393,7 +16366,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("297_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("297_1282324002.40722") :method .annotate 'line', 447 $P1153 = self."!PREFIX__!subrule"("O", "!=") new $P1154, "ResizablePMCArray" @@ -16403,7 +16376,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<<=>" :subid("298_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<<=>" :subid("298_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1158_tgt .local int rx1158_pos @@ -16426,7 +16399,7 @@ NQP::Compiler - NQP compiler rx1158_start: eq $I10, 1, rx1158_restart if_null rx1158_debug, debug_920 - rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>") + rx1158_cur."!cursor_debug"("START", "infix:sym<<=>") debug_920: $I10 = self.'from'() ne $I10, -1, rxscan1162_done @@ -16472,13 +16445,13 @@ NQP::Compiler - NQP compiler # rx pass rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>") if_null rx1158_debug, debug_921 - rx1158_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1158_pos) + rx1158_cur."!cursor_debug"("PASS", "infix:sym<<=>", " at pos=", rx1158_pos) debug_921: .return (rx1158_cur) rx1158_restart: .annotate 'line', 447 if_null rx1158_debug, debug_922 - rx1158_cur."!cursor_debug"("NEXT ", "infix:sym<<=>") + rx1158_cur."!cursor_debug"("NEXT", "infix:sym<<=>") debug_922: rx1158_fail: (rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0) @@ -16488,7 +16461,7 @@ NQP::Compiler - NQP compiler rx1158_done: rx1158_cur."!cursor_fail"() if_null rx1158_debug, debug_923 - rx1158_cur."!cursor_debug"("FAIL ", "infix:sym<<=>") + rx1158_cur."!cursor_debug"("FAIL", "infix:sym<<=>") debug_923: .return (rx1158_cur) .return () @@ -16496,7 +16469,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<<=>" :subid("299_1282016529.10767") :method +.sub "!PREFIX__infix:sym<<=>" :subid("299_1282324002.40722") :method .annotate 'line', 447 $P1160 = self."!PREFIX__!subrule"("O", "<=") new $P1161, "ResizablePMCArray" @@ -16506,7 +16479,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<>=>" :subid("300_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<>=>" :subid("300_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1165_tgt .local int rx1165_pos @@ -16529,7 +16502,7 @@ NQP::Compiler - NQP compiler rx1165_start: eq $I10, 1, rx1165_restart if_null rx1165_debug, debug_924 - rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>") + rx1165_cur."!cursor_debug"("START", "infix:sym<>=>") debug_924: $I10 = self.'from'() ne $I10, -1, rxscan1169_done @@ -16575,13 +16548,13 @@ NQP::Compiler - NQP compiler # rx pass rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>") if_null rx1165_debug, debug_925 - rx1165_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1165_pos) + rx1165_cur."!cursor_debug"("PASS", "infix:sym<>=>", " at pos=", rx1165_pos) debug_925: .return (rx1165_cur) rx1165_restart: .annotate 'line', 447 if_null rx1165_debug, debug_926 - rx1165_cur."!cursor_debug"("NEXT ", "infix:sym<>=>") + rx1165_cur."!cursor_debug"("NEXT", "infix:sym<>=>") debug_926: rx1165_fail: (rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0) @@ -16591,7 +16564,7 @@ NQP::Compiler - NQP compiler rx1165_done: rx1165_cur."!cursor_fail"() if_null rx1165_debug, debug_927 - rx1165_cur."!cursor_debug"("FAIL ", "infix:sym<>=>") + rx1165_cur."!cursor_debug"("FAIL", "infix:sym<>=>") debug_927: .return (rx1165_cur) .return () @@ -16599,7 +16572,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<>=>" :subid("301_1282016529.10767") :method +.sub "!PREFIX__infix:sym<>=>" :subid("301_1282324002.40722") :method .annotate 'line', 447 $P1167 = self."!PREFIX__!subrule"("O", ">=") new $P1168, "ResizablePMCArray" @@ -16609,7 +16582,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<<>" :subid("302_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<<>" :subid("302_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1172_tgt .local int rx1172_pos @@ -16632,7 +16605,7 @@ NQP::Compiler - NQP compiler rx1172_start: eq $I10, 1, rx1172_restart if_null rx1172_debug, debug_928 - rx1172_cur."!cursor_debug"("START ", "infix:sym<<>") + rx1172_cur."!cursor_debug"("START", "infix:sym<<>") debug_928: $I10 = self.'from'() ne $I10, -1, rxscan1176_done @@ -16678,13 +16651,13 @@ NQP::Compiler - NQP compiler # rx pass rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>") if_null rx1172_debug, debug_929 - rx1172_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1172_pos) + rx1172_cur."!cursor_debug"("PASS", "infix:sym<<>", " at pos=", rx1172_pos) debug_929: .return (rx1172_cur) rx1172_restart: .annotate 'line', 447 if_null rx1172_debug, debug_930 - rx1172_cur."!cursor_debug"("NEXT ", "infix:sym<<>") + rx1172_cur."!cursor_debug"("NEXT", "infix:sym<<>") debug_930: rx1172_fail: (rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0) @@ -16694,7 +16667,7 @@ NQP::Compiler - NQP compiler rx1172_done: rx1172_cur."!cursor_fail"() if_null rx1172_debug, debug_931 - rx1172_cur."!cursor_debug"("FAIL ", "infix:sym<<>") + rx1172_cur."!cursor_debug"("FAIL", "infix:sym<<>") debug_931: .return (rx1172_cur) .return () @@ -16702,7 +16675,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<<>" :subid("303_1282016529.10767") :method +.sub "!PREFIX__infix:sym<<>" :subid("303_1282324002.40722") :method .annotate 'line', 447 $P1174 = self."!PREFIX__!subrule"("O", "<") new $P1175, "ResizablePMCArray" @@ -16712,7 +16685,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<>>" :subid("304_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<>>" :subid("304_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1179_tgt .local int rx1179_pos @@ -16735,7 +16708,7 @@ NQP::Compiler - NQP compiler rx1179_start: eq $I10, 1, rx1179_restart if_null rx1179_debug, debug_932 - rx1179_cur."!cursor_debug"("START ", "infix:sym<>>") + rx1179_cur."!cursor_debug"("START", "infix:sym<>>") debug_932: $I10 = self.'from'() ne $I10, -1, rxscan1183_done @@ -16781,13 +16754,13 @@ NQP::Compiler - NQP compiler # rx pass rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>") if_null rx1179_debug, debug_933 - rx1179_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1179_pos) + rx1179_cur."!cursor_debug"("PASS", "infix:sym<>>", " at pos=", rx1179_pos) debug_933: .return (rx1179_cur) rx1179_restart: .annotate 'line', 447 if_null rx1179_debug, debug_934 - rx1179_cur."!cursor_debug"("NEXT ", "infix:sym<>>") + rx1179_cur."!cursor_debug"("NEXT", "infix:sym<>>") debug_934: rx1179_fail: (rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0) @@ -16797,7 +16770,7 @@ NQP::Compiler - NQP compiler rx1179_done: rx1179_cur."!cursor_fail"() if_null rx1179_debug, debug_935 - rx1179_cur."!cursor_debug"("FAIL ", "infix:sym<>>") + rx1179_cur."!cursor_debug"("FAIL", "infix:sym<>>") debug_935: .return (rx1179_cur) .return () @@ -16805,7 +16778,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<>>" :subid("305_1282016529.10767") :method +.sub "!PREFIX__infix:sym<>>" :subid("305_1282324002.40722") :method .annotate 'line', 447 $P1181 = self."!PREFIX__!subrule"("O", ">") new $P1182, "ResizablePMCArray" @@ -16815,7 +16788,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("306_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("306_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1186_tgt .local int rx1186_pos @@ -16838,7 +16811,7 @@ NQP::Compiler - NQP compiler rx1186_start: eq $I10, 1, rx1186_restart if_null rx1186_debug, debug_936 - rx1186_cur."!cursor_debug"("START ", "infix:sym") + rx1186_cur."!cursor_debug"("START", "infix:sym") debug_936: $I10 = self.'from'() ne $I10, -1, rxscan1190_done @@ -16884,13 +16857,13 @@ NQP::Compiler - NQP compiler # rx pass rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym") if_null rx1186_debug, debug_937 - rx1186_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1186_pos) + rx1186_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1186_pos) debug_937: .return (rx1186_cur) rx1186_restart: .annotate 'line', 447 if_null rx1186_debug, debug_938 - rx1186_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1186_cur."!cursor_debug"("NEXT", "infix:sym") debug_938: rx1186_fail: (rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0) @@ -16900,7 +16873,7 @@ NQP::Compiler - NQP compiler rx1186_done: rx1186_cur."!cursor_fail"() if_null rx1186_debug, debug_939 - rx1186_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1186_cur."!cursor_debug"("FAIL", "infix:sym") debug_939: .return (rx1186_cur) .return () @@ -16908,7 +16881,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("307_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("307_1282324002.40722") :method .annotate 'line', 447 $P1188 = self."!PREFIX__!subrule"("O", "eq") new $P1189, "ResizablePMCArray" @@ -16918,7 +16891,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("308_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("308_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1193_tgt .local int rx1193_pos @@ -16941,7 +16914,7 @@ NQP::Compiler - NQP compiler rx1193_start: eq $I10, 1, rx1193_restart if_null rx1193_debug, debug_940 - rx1193_cur."!cursor_debug"("START ", "infix:sym") + rx1193_cur."!cursor_debug"("START", "infix:sym") debug_940: $I10 = self.'from'() ne $I10, -1, rxscan1197_done @@ -16987,13 +16960,13 @@ NQP::Compiler - NQP compiler # rx pass rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym") if_null rx1193_debug, debug_941 - rx1193_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1193_pos) + rx1193_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1193_pos) debug_941: .return (rx1193_cur) rx1193_restart: .annotate 'line', 447 if_null rx1193_debug, debug_942 - rx1193_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1193_cur."!cursor_debug"("NEXT", "infix:sym") debug_942: rx1193_fail: (rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0) @@ -17003,7 +16976,7 @@ NQP::Compiler - NQP compiler rx1193_done: rx1193_cur."!cursor_fail"() if_null rx1193_debug, debug_943 - rx1193_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1193_cur."!cursor_debug"("FAIL", "infix:sym") debug_943: .return (rx1193_cur) .return () @@ -17011,7 +16984,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("309_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("309_1282324002.40722") :method .annotate 'line', 447 $P1195 = self."!PREFIX__!subrule"("O", "ne") new $P1196, "ResizablePMCArray" @@ -17021,7 +16994,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("310_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("310_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1200_tgt .local int rx1200_pos @@ -17044,7 +17017,7 @@ NQP::Compiler - NQP compiler rx1200_start: eq $I10, 1, rx1200_restart if_null rx1200_debug, debug_944 - rx1200_cur."!cursor_debug"("START ", "infix:sym") + rx1200_cur."!cursor_debug"("START", "infix:sym") debug_944: $I10 = self.'from'() ne $I10, -1, rxscan1204_done @@ -17090,13 +17063,13 @@ NQP::Compiler - NQP compiler # rx pass rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym") if_null rx1200_debug, debug_945 - rx1200_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1200_pos) + rx1200_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1200_pos) debug_945: .return (rx1200_cur) rx1200_restart: .annotate 'line', 447 if_null rx1200_debug, debug_946 - rx1200_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1200_cur."!cursor_debug"("NEXT", "infix:sym") debug_946: rx1200_fail: (rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0) @@ -17106,7 +17079,7 @@ NQP::Compiler - NQP compiler rx1200_done: rx1200_cur."!cursor_fail"() if_null rx1200_debug, debug_947 - rx1200_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1200_cur."!cursor_debug"("FAIL", "infix:sym") debug_947: .return (rx1200_cur) .return () @@ -17114,7 +17087,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("311_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("311_1282324002.40722") :method .annotate 'line', 447 $P1202 = self."!PREFIX__!subrule"("O", "le") new $P1203, "ResizablePMCArray" @@ -17124,7 +17097,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("312_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("312_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1207_tgt .local int rx1207_pos @@ -17147,7 +17120,7 @@ NQP::Compiler - NQP compiler rx1207_start: eq $I10, 1, rx1207_restart if_null rx1207_debug, debug_948 - rx1207_cur."!cursor_debug"("START ", "infix:sym") + rx1207_cur."!cursor_debug"("START", "infix:sym") debug_948: $I10 = self.'from'() ne $I10, -1, rxscan1211_done @@ -17193,13 +17166,13 @@ NQP::Compiler - NQP compiler # rx pass rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym") if_null rx1207_debug, debug_949 - rx1207_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1207_pos) + rx1207_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1207_pos) debug_949: .return (rx1207_cur) rx1207_restart: .annotate 'line', 447 if_null rx1207_debug, debug_950 - rx1207_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1207_cur."!cursor_debug"("NEXT", "infix:sym") debug_950: rx1207_fail: (rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0) @@ -17209,7 +17182,7 @@ NQP::Compiler - NQP compiler rx1207_done: rx1207_cur."!cursor_fail"() if_null rx1207_debug, debug_951 - rx1207_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1207_cur."!cursor_debug"("FAIL", "infix:sym") debug_951: .return (rx1207_cur) .return () @@ -17217,7 +17190,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("313_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("313_1282324002.40722") :method .annotate 'line', 447 $P1209 = self."!PREFIX__!subrule"("O", "ge") new $P1210, "ResizablePMCArray" @@ -17227,7 +17200,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("314_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("314_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1214_tgt .local int rx1214_pos @@ -17250,7 +17223,7 @@ NQP::Compiler - NQP compiler rx1214_start: eq $I10, 1, rx1214_restart if_null rx1214_debug, debug_952 - rx1214_cur."!cursor_debug"("START ", "infix:sym") + rx1214_cur."!cursor_debug"("START", "infix:sym") debug_952: $I10 = self.'from'() ne $I10, -1, rxscan1218_done @@ -17296,13 +17269,13 @@ NQP::Compiler - NQP compiler # rx pass rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym") if_null rx1214_debug, debug_953 - rx1214_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1214_pos) + rx1214_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1214_pos) debug_953: .return (rx1214_cur) rx1214_restart: .annotate 'line', 447 if_null rx1214_debug, debug_954 - rx1214_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1214_cur."!cursor_debug"("NEXT", "infix:sym") debug_954: rx1214_fail: (rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0) @@ -17312,7 +17285,7 @@ NQP::Compiler - NQP compiler rx1214_done: rx1214_cur."!cursor_fail"() if_null rx1214_debug, debug_955 - rx1214_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1214_cur."!cursor_debug"("FAIL", "infix:sym") debug_955: .return (rx1214_cur) .return () @@ -17320,7 +17293,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("315_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("315_1282324002.40722") :method .annotate 'line', 447 $P1216 = self."!PREFIX__!subrule"("O", "lt") new $P1217, "ResizablePMCArray" @@ -17330,7 +17303,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("316_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("316_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1221_tgt .local int rx1221_pos @@ -17353,7 +17326,7 @@ NQP::Compiler - NQP compiler rx1221_start: eq $I10, 1, rx1221_restart if_null rx1221_debug, debug_956 - rx1221_cur."!cursor_debug"("START ", "infix:sym") + rx1221_cur."!cursor_debug"("START", "infix:sym") debug_956: $I10 = self.'from'() ne $I10, -1, rxscan1225_done @@ -17399,13 +17372,13 @@ NQP::Compiler - NQP compiler # rx pass rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym") if_null rx1221_debug, debug_957 - rx1221_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1221_pos) + rx1221_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1221_pos) debug_957: .return (rx1221_cur) rx1221_restart: .annotate 'line', 447 if_null rx1221_debug, debug_958 - rx1221_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1221_cur."!cursor_debug"("NEXT", "infix:sym") debug_958: rx1221_fail: (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0) @@ -17415,7 +17388,7 @@ NQP::Compiler - NQP compiler rx1221_done: rx1221_cur."!cursor_fail"() if_null rx1221_debug, debug_959 - rx1221_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1221_cur."!cursor_debug"("FAIL", "infix:sym") debug_959: .return (rx1221_cur) .return () @@ -17423,7 +17396,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("317_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("317_1282324002.40722") :method .annotate 'line', 447 $P1223 = self."!PREFIX__!subrule"("O", "gt") new $P1224, "ResizablePMCArray" @@ -17433,7 +17406,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<=:=>" :subid("318_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<=:=>" :subid("318_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1228_tgt .local int rx1228_pos @@ -17456,7 +17429,7 @@ NQP::Compiler - NQP compiler rx1228_start: eq $I10, 1, rx1228_restart if_null rx1228_debug, debug_960 - rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>") + rx1228_cur."!cursor_debug"("START", "infix:sym<=:=>") debug_960: $I10 = self.'from'() ne $I10, -1, rxscan1232_done @@ -17502,13 +17475,13 @@ NQP::Compiler - NQP compiler # rx pass rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>") if_null rx1228_debug, debug_961 - rx1228_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1228_pos) + rx1228_cur."!cursor_debug"("PASS", "infix:sym<=:=>", " at pos=", rx1228_pos) debug_961: .return (rx1228_cur) rx1228_restart: .annotate 'line', 447 if_null rx1228_debug, debug_962 - rx1228_cur."!cursor_debug"("NEXT ", "infix:sym<=:=>") + rx1228_cur."!cursor_debug"("NEXT", "infix:sym<=:=>") debug_962: rx1228_fail: (rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0) @@ -17518,7 +17491,7 @@ NQP::Compiler - NQP compiler rx1228_done: rx1228_cur."!cursor_fail"() if_null rx1228_debug, debug_963 - rx1228_cur."!cursor_debug"("FAIL ", "infix:sym<=:=>") + rx1228_cur."!cursor_debug"("FAIL", "infix:sym<=:=>") debug_963: .return (rx1228_cur) .return () @@ -17526,7 +17499,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<=:=>" :subid("319_1282016529.10767") :method +.sub "!PREFIX__infix:sym<=:=>" :subid("319_1282324002.40722") :method .annotate 'line', 447 $P1230 = self."!PREFIX__!subrule"("O", "=:=") new $P1231, "ResizablePMCArray" @@ -17536,7 +17509,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<~~>" :subid("320_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<~~>" :subid("320_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1235_tgt .local int rx1235_pos @@ -17559,7 +17532,7 @@ NQP::Compiler - NQP compiler rx1235_start: eq $I10, 1, rx1235_restart if_null rx1235_debug, debug_964 - rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>") + rx1235_cur."!cursor_debug"("START", "infix:sym<~~>") debug_964: $I10 = self.'from'() ne $I10, -1, rxscan1239_done @@ -17605,13 +17578,13 @@ NQP::Compiler - NQP compiler # rx pass rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>") if_null rx1235_debug, debug_965 - rx1235_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1235_pos) + rx1235_cur."!cursor_debug"("PASS", "infix:sym<~~>", " at pos=", rx1235_pos) debug_965: .return (rx1235_cur) rx1235_restart: .annotate 'line', 447 if_null rx1235_debug, debug_966 - rx1235_cur."!cursor_debug"("NEXT ", "infix:sym<~~>") + rx1235_cur."!cursor_debug"("NEXT", "infix:sym<~~>") debug_966: rx1235_fail: (rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0) @@ -17621,7 +17594,7 @@ NQP::Compiler - NQP compiler rx1235_done: rx1235_cur."!cursor_fail"() if_null rx1235_debug, debug_967 - rx1235_cur."!cursor_debug"("FAIL ", "infix:sym<~~>") + rx1235_cur."!cursor_debug"("FAIL", "infix:sym<~~>") debug_967: .return (rx1235_cur) .return () @@ -17629,7 +17602,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<~~>" :subid("321_1282016529.10767") :method +.sub "!PREFIX__infix:sym<~~>" :subid("321_1282324002.40722") :method .annotate 'line', 447 $P1237 = self."!PREFIX__!subrule"("O", "~~") new $P1238, "ResizablePMCArray" @@ -17639,7 +17612,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<&&>" :subid("322_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<&&>" :subid("322_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1242_tgt .local int rx1242_pos @@ -17662,7 +17635,7 @@ NQP::Compiler - NQP compiler rx1242_start: eq $I10, 1, rx1242_restart if_null rx1242_debug, debug_968 - rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>") + rx1242_cur."!cursor_debug"("START", "infix:sym<&&>") debug_968: $I10 = self.'from'() ne $I10, -1, rxscan1246_done @@ -17708,13 +17681,13 @@ NQP::Compiler - NQP compiler # rx pass rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>") if_null rx1242_debug, debug_969 - rx1242_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1242_pos) + rx1242_cur."!cursor_debug"("PASS", "infix:sym<&&>", " at pos=", rx1242_pos) debug_969: .return (rx1242_cur) rx1242_restart: .annotate 'line', 447 if_null rx1242_debug, debug_970 - rx1242_cur."!cursor_debug"("NEXT ", "infix:sym<&&>") + rx1242_cur."!cursor_debug"("NEXT", "infix:sym<&&>") debug_970: rx1242_fail: (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0) @@ -17724,7 +17697,7 @@ NQP::Compiler - NQP compiler rx1242_done: rx1242_cur."!cursor_fail"() if_null rx1242_debug, debug_971 - rx1242_cur."!cursor_debug"("FAIL ", "infix:sym<&&>") + rx1242_cur."!cursor_debug"("FAIL", "infix:sym<&&>") debug_971: .return (rx1242_cur) .return () @@ -17732,7 +17705,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<&&>" :subid("323_1282016529.10767") :method +.sub "!PREFIX__infix:sym<&&>" :subid("323_1282324002.40722") :method .annotate 'line', 447 $P1244 = self."!PREFIX__!subrule"("O", "&&") new $P1245, "ResizablePMCArray" @@ -17742,7 +17715,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<||>" :subid("324_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<||>" :subid("324_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1249_tgt .local int rx1249_pos @@ -17765,7 +17738,7 @@ NQP::Compiler - NQP compiler rx1249_start: eq $I10, 1, rx1249_restart if_null rx1249_debug, debug_972 - rx1249_cur."!cursor_debug"("START ", "infix:sym<||>") + rx1249_cur."!cursor_debug"("START", "infix:sym<||>") debug_972: $I10 = self.'from'() ne $I10, -1, rxscan1253_done @@ -17811,13 +17784,13 @@ NQP::Compiler - NQP compiler # rx pass rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>") if_null rx1249_debug, debug_973 - rx1249_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1249_pos) + rx1249_cur."!cursor_debug"("PASS", "infix:sym<||>", " at pos=", rx1249_pos) debug_973: .return (rx1249_cur) rx1249_restart: .annotate 'line', 447 if_null rx1249_debug, debug_974 - rx1249_cur."!cursor_debug"("NEXT ", "infix:sym<||>") + rx1249_cur."!cursor_debug"("NEXT", "infix:sym<||>") debug_974: rx1249_fail: (rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0) @@ -17827,7 +17800,7 @@ NQP::Compiler - NQP compiler rx1249_done: rx1249_cur."!cursor_fail"() if_null rx1249_debug, debug_975 - rx1249_cur."!cursor_debug"("FAIL ", "infix:sym<||>") + rx1249_cur."!cursor_debug"("FAIL", "infix:sym<||>") debug_975: .return (rx1249_cur) .return () @@ -17835,7 +17808,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<||>" :subid("325_1282016529.10767") :method +.sub "!PREFIX__infix:sym<||>" :subid("325_1282324002.40722") :method .annotate 'line', 447 $P1251 = self."!PREFIX__!subrule"("O", "||") new $P1252, "ResizablePMCArray" @@ -17845,7 +17818,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("326_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("326_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1256_tgt .local int rx1256_pos @@ -17868,7 +17841,7 @@ NQP::Compiler - NQP compiler rx1256_start: eq $I10, 1, rx1256_restart if_null rx1256_debug, debug_976 - rx1256_cur."!cursor_debug"("START ", "infix:sym") + rx1256_cur."!cursor_debug"("START", "infix:sym") debug_976: $I10 = self.'from'() ne $I10, -1, rxscan1260_done @@ -17914,13 +17887,13 @@ NQP::Compiler - NQP compiler # rx pass rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym") if_null rx1256_debug, debug_977 - rx1256_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1256_pos) + rx1256_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1256_pos) debug_977: .return (rx1256_cur) rx1256_restart: .annotate 'line', 447 if_null rx1256_debug, debug_978 - rx1256_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1256_cur."!cursor_debug"("NEXT", "infix:sym") debug_978: rx1256_fail: (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0) @@ -17930,7 +17903,7 @@ NQP::Compiler - NQP compiler rx1256_done: rx1256_cur."!cursor_fail"() if_null rx1256_debug, debug_979 - rx1256_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1256_cur."!cursor_debug"("FAIL", "infix:sym") debug_979: .return (rx1256_cur) .return () @@ -17938,7 +17911,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("327_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("327_1282324002.40722") :method .annotate 'line', 447 $P1258 = self."!PREFIX__!subrule"("O", "//") new $P1259, "ResizablePMCArray" @@ -17948,7 +17921,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym" :subid("328_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym" :subid("328_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1263_tgt .local int rx1263_pos @@ -17971,7 +17944,7 @@ NQP::Compiler - NQP compiler rx1263_start: eq $I10, 1, rx1263_restart if_null rx1263_debug, debug_980 - rx1263_cur."!cursor_debug"("START ", "infix:sym") + rx1263_cur."!cursor_debug"("START", "infix:sym") debug_980: $I10 = self.'from'() ne $I10, -1, rxscan1267_done @@ -18027,13 +18000,13 @@ NQP::Compiler - NQP compiler # rx pass rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym") if_null rx1263_debug, debug_981 - rx1263_cur."!cursor_debug"("PASS ", "infix:sym", " at pos=", rx1263_pos) + rx1263_cur."!cursor_debug"("PASS", "infix:sym", " at pos=", rx1263_pos) debug_981: .return (rx1263_cur) rx1263_restart: .annotate 'line', 447 if_null rx1263_debug, debug_982 - rx1263_cur."!cursor_debug"("NEXT ", "infix:sym") + rx1263_cur."!cursor_debug"("NEXT", "infix:sym") debug_982: rx1263_fail: (rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0) @@ -18043,7 +18016,7 @@ NQP::Compiler - NQP compiler rx1263_done: rx1263_cur."!cursor_fail"() if_null rx1263_debug, debug_983 - rx1263_cur."!cursor_debug"("FAIL ", "infix:sym") + rx1263_cur."!cursor_debug"("FAIL", "infix:sym") debug_983: .return (rx1263_cur) .return () @@ -18051,7 +18024,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym" :subid("329_1282016529.10767") :method +.sub "!PREFIX__infix:sym" :subid("329_1282324002.40722") :method .annotate 'line', 447 $P1265 = self."!PREFIX__!subrule"("ws", "??") new $P1266, "ResizablePMCArray" @@ -18061,7 +18034,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<=>" :subid("330_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<=>" :subid("330_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1269_tgt .local int rx1269_pos @@ -18084,7 +18057,7 @@ NQP::Compiler - NQP compiler rx1269_start: eq $I10, 1, rx1269_restart if_null rx1269_debug, debug_984 - rx1269_cur."!cursor_debug"("START ", "infix:sym<=>") + rx1269_cur."!cursor_debug"("START", "infix:sym<=>") debug_984: $I10 = self.'from'() ne $I10, -1, rxscan1273_done @@ -18129,13 +18102,13 @@ NQP::Compiler - NQP compiler # rx pass rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>") if_null rx1269_debug, debug_985 - rx1269_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1269_pos) + rx1269_cur."!cursor_debug"("PASS", "infix:sym<=>", " at pos=", rx1269_pos) debug_985: .return (rx1269_cur) rx1269_restart: .annotate 'line', 447 if_null rx1269_debug, debug_986 - rx1269_cur."!cursor_debug"("NEXT ", "infix:sym<=>") + rx1269_cur."!cursor_debug"("NEXT", "infix:sym<=>") debug_986: rx1269_fail: (rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0) @@ -18145,7 +18118,7 @@ NQP::Compiler - NQP compiler rx1269_done: rx1269_cur."!cursor_fail"() if_null rx1269_debug, debug_987 - rx1269_cur."!cursor_debug"("FAIL ", "infix:sym<=>") + rx1269_cur."!cursor_debug"("FAIL", "infix:sym<=>") debug_987: .return (rx1269_cur) .return () @@ -18153,7 +18126,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<=>" :subid("331_1282016529.10767") :method +.sub "!PREFIX__infix:sym<=>" :subid("331_1282324002.40722") :method .annotate 'line', 447 $P1271 = self."!PREFIX__!subrule"("panic", "=") new $P1272, "ResizablePMCArray" @@ -18163,7 +18136,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<:=>" :subid("332_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<:=>" :subid("332_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1276_tgt .local int rx1276_pos @@ -18186,7 +18159,7 @@ NQP::Compiler - NQP compiler rx1276_start: eq $I10, 1, rx1276_restart if_null rx1276_debug, debug_988 - rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>") + rx1276_cur."!cursor_debug"("START", "infix:sym<:=>") debug_988: $I10 = self.'from'() ne $I10, -1, rxscan1280_done @@ -18232,13 +18205,13 @@ NQP::Compiler - NQP compiler # rx pass rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>") if_null rx1276_debug, debug_989 - rx1276_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1276_pos) + rx1276_cur."!cursor_debug"("PASS", "infix:sym<:=>", " at pos=", rx1276_pos) debug_989: .return (rx1276_cur) rx1276_restart: .annotate 'line', 447 if_null rx1276_debug, debug_990 - rx1276_cur."!cursor_debug"("NEXT ", "infix:sym<:=>") + rx1276_cur."!cursor_debug"("NEXT", "infix:sym<:=>") debug_990: rx1276_fail: (rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0) @@ -18248,7 +18221,7 @@ NQP::Compiler - NQP compiler rx1276_done: rx1276_cur."!cursor_fail"() if_null rx1276_debug, debug_991 - rx1276_cur."!cursor_debug"("FAIL ", "infix:sym<:=>") + rx1276_cur."!cursor_debug"("FAIL", "infix:sym<:=>") debug_991: .return (rx1276_cur) .return () @@ -18256,7 +18229,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<:=>" :subid("333_1282016529.10767") :method +.sub "!PREFIX__infix:sym<:=>" :subid("333_1282324002.40722") :method .annotate 'line', 447 $P1278 = self."!PREFIX__!subrule"("O", ":=") new $P1279, "ResizablePMCArray" @@ -18266,7 +18239,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<::=>" :subid("334_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<::=>" :subid("334_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1283_tgt .local int rx1283_pos @@ -18289,7 +18262,7 @@ NQP::Compiler - NQP compiler rx1283_start: eq $I10, 1, rx1283_restart if_null rx1283_debug, debug_992 - rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>") + rx1283_cur."!cursor_debug"("START", "infix:sym<::=>") debug_992: $I10 = self.'from'() ne $I10, -1, rxscan1287_done @@ -18335,13 +18308,13 @@ NQP::Compiler - NQP compiler # rx pass rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>") if_null rx1283_debug, debug_993 - rx1283_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1283_pos) + rx1283_cur."!cursor_debug"("PASS", "infix:sym<::=>", " at pos=", rx1283_pos) debug_993: .return (rx1283_cur) rx1283_restart: .annotate 'line', 447 if_null rx1283_debug, debug_994 - rx1283_cur."!cursor_debug"("NEXT ", "infix:sym<::=>") + rx1283_cur."!cursor_debug"("NEXT", "infix:sym<::=>") debug_994: rx1283_fail: (rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0) @@ -18351,7 +18324,7 @@ NQP::Compiler - NQP compiler rx1283_done: rx1283_cur."!cursor_fail"() if_null rx1283_debug, debug_995 - rx1283_cur."!cursor_debug"("FAIL ", "infix:sym<::=>") + rx1283_cur."!cursor_debug"("FAIL", "infix:sym<::=>") debug_995: .return (rx1283_cur) .return () @@ -18359,7 +18332,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<::=>" :subid("335_1282016529.10767") :method +.sub "!PREFIX__infix:sym<::=>" :subid("335_1282324002.40722") :method .annotate 'line', 447 $P1285 = self."!PREFIX__!subrule"("O", "::=") new $P1286, "ResizablePMCArray" @@ -18369,7 +18342,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "infix:sym<,>" :subid("336_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "infix:sym<,>" :subid("336_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1290_tgt .local int rx1290_pos @@ -18392,7 +18365,7 @@ NQP::Compiler - NQP compiler rx1290_start: eq $I10, 1, rx1290_restart if_null rx1290_debug, debug_996 - rx1290_cur."!cursor_debug"("START ", "infix:sym<,>") + rx1290_cur."!cursor_debug"("START", "infix:sym<,>") debug_996: $I10 = self.'from'() ne $I10, -1, rxscan1294_done @@ -18438,13 +18411,13 @@ NQP::Compiler - NQP compiler # rx pass rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>") if_null rx1290_debug, debug_997 - rx1290_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1290_pos) + rx1290_cur."!cursor_debug"("PASS", "infix:sym<,>", " at pos=", rx1290_pos) debug_997: .return (rx1290_cur) rx1290_restart: .annotate 'line', 447 if_null rx1290_debug, debug_998 - rx1290_cur."!cursor_debug"("NEXT ", "infix:sym<,>") + rx1290_cur."!cursor_debug"("NEXT", "infix:sym<,>") debug_998: rx1290_fail: (rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0) @@ -18454,7 +18427,7 @@ NQP::Compiler - NQP compiler rx1290_done: rx1290_cur."!cursor_fail"() if_null rx1290_debug, debug_999 - rx1290_cur."!cursor_debug"("FAIL ", "infix:sym<,>") + rx1290_cur."!cursor_debug"("FAIL", "infix:sym<,>") debug_999: .return (rx1290_cur) .return () @@ -18462,7 +18435,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__infix:sym<,>" :subid("337_1282016529.10767") :method +.sub "!PREFIX__infix:sym<,>" :subid("337_1282324002.40722") :method .annotate 'line', 447 $P1292 = self."!PREFIX__!subrule"("O", ",") new $P1293, "ResizablePMCArray" @@ -18472,7 +18445,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym" :subid("338_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym" :subid("338_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1297_tgt .local int rx1297_pos @@ -18495,7 +18468,7 @@ NQP::Compiler - NQP compiler rx1297_start: eq $I10, 1, rx1297_restart if_null rx1297_debug, debug_1000 - rx1297_cur."!cursor_debug"("START ", "prefix:sym") + rx1297_cur."!cursor_debug"("START", "prefix:sym") debug_1000: $I10 = self.'from'() ne $I10, -1, rxscan1300_done @@ -18547,13 +18520,13 @@ NQP::Compiler - NQP compiler # rx pass rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym") if_null rx1297_debug, debug_1001 - rx1297_cur."!cursor_debug"("PASS ", "prefix:sym", " at pos=", rx1297_pos) + rx1297_cur."!cursor_debug"("PASS", "prefix:sym", " at pos=", rx1297_pos) debug_1001: .return (rx1297_cur) rx1297_restart: .annotate 'line', 447 if_null rx1297_debug, debug_1002 - rx1297_cur."!cursor_debug"("NEXT ", "prefix:sym") + rx1297_cur."!cursor_debug"("NEXT", "prefix:sym") debug_1002: rx1297_fail: (rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0) @@ -18563,7 +18536,7 @@ NQP::Compiler - NQP compiler rx1297_done: rx1297_cur."!cursor_fail"() if_null rx1297_debug, debug_1003 - rx1297_cur."!cursor_debug"("FAIL ", "prefix:sym") + rx1297_cur."!cursor_debug"("FAIL", "prefix:sym") debug_1003: .return (rx1297_cur) .return () @@ -18571,7 +18544,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym" :subid("339_1282016529.10767") :method +.sub "!PREFIX__prefix:sym" :subid("339_1282324002.40722") :method .annotate 'line', 447 new $P1299, "ResizablePMCArray" push $P1299, "return" @@ -18580,7 +18553,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "prefix:sym" :subid("340_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "prefix:sym" :subid("340_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1303_tgt .local int rx1303_pos @@ -18603,7 +18576,7 @@ NQP::Compiler - NQP compiler rx1303_start: eq $I10, 1, rx1303_restart if_null rx1303_debug, debug_1004 - rx1303_cur."!cursor_debug"("START ", "prefix:sym") + rx1303_cur."!cursor_debug"("START", "prefix:sym") debug_1004: $I10 = self.'from'() ne $I10, -1, rxscan1306_done @@ -18655,13 +18628,13 @@ NQP::Compiler - NQP compiler # rx pass rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym") if_null rx1303_debug, debug_1005 - rx1303_cur."!cursor_debug"("PASS ", "prefix:sym", " at pos=", rx1303_pos) + rx1303_cur."!cursor_debug"("PASS", "prefix:sym", " at pos=", rx1303_pos) debug_1005: .return (rx1303_cur) rx1303_restart: .annotate 'line', 447 if_null rx1303_debug, debug_1006 - rx1303_cur."!cursor_debug"("NEXT ", "prefix:sym") + rx1303_cur."!cursor_debug"("NEXT", "prefix:sym") debug_1006: rx1303_fail: (rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0) @@ -18671,7 +18644,7 @@ NQP::Compiler - NQP compiler rx1303_done: rx1303_cur."!cursor_fail"() if_null rx1303_debug, debug_1007 - rx1303_cur."!cursor_debug"("FAIL ", "prefix:sym") + rx1303_cur."!cursor_debug"("FAIL", "prefix:sym") debug_1007: .return (rx1303_cur) .return () @@ -18679,7 +18652,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__prefix:sym" :subid("341_1282016529.10767") :method +.sub "!PREFIX__prefix:sym" :subid("341_1282324002.40722") :method .annotate 'line', 447 new $P1305, "ResizablePMCArray" push $P1305, "make" @@ -18688,7 +18661,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("342_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("342_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1309_tgt .local int rx1309_pos @@ -18711,7 +18684,7 @@ NQP::Compiler - NQP compiler rx1309_start: eq $I10, 1, rx1309_restart if_null rx1309_debug, debug_1008 - rx1309_cur."!cursor_debug"("START ", "term:sym") + rx1309_cur."!cursor_debug"("START", "term:sym") debug_1008: $I10 = self.'from'() ne $I10, -1, rxscan1312_done @@ -18750,13 +18723,13 @@ NQP::Compiler - NQP compiler # rx pass rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym") if_null rx1309_debug, debug_1009 - rx1309_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx1309_pos) + rx1309_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx1309_pos) debug_1009: .return (rx1309_cur) rx1309_restart: .annotate 'line', 447 if_null rx1309_debug, debug_1010 - rx1309_cur."!cursor_debug"("NEXT ", "term:sym") + rx1309_cur."!cursor_debug"("NEXT", "term:sym") debug_1010: rx1309_fail: (rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0) @@ -18766,7 +18739,7 @@ NQP::Compiler - NQP compiler rx1309_done: rx1309_cur."!cursor_fail"() if_null rx1309_debug, debug_1011 - rx1309_cur."!cursor_debug"("FAIL ", "term:sym") + rx1309_cur."!cursor_debug"("FAIL", "term:sym") debug_1011: .return (rx1309_cur) .return () @@ -18774,7 +18747,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("343_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("343_1282324002.40722") :method .annotate 'line', 447 new $P1311, "ResizablePMCArray" push $P1311, "last" @@ -18783,7 +18756,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("344_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("344_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1315_tgt .local int rx1315_pos @@ -18806,7 +18779,7 @@ NQP::Compiler - NQP compiler rx1315_start: eq $I10, 1, rx1315_restart if_null rx1315_debug, debug_1012 - rx1315_cur."!cursor_debug"("START ", "term:sym") + rx1315_cur."!cursor_debug"("START", "term:sym") debug_1012: $I10 = self.'from'() ne $I10, -1, rxscan1318_done @@ -18845,13 +18818,13 @@ NQP::Compiler - NQP compiler # rx pass rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym") if_null rx1315_debug, debug_1013 - rx1315_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx1315_pos) + rx1315_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx1315_pos) debug_1013: .return (rx1315_cur) rx1315_restart: .annotate 'line', 447 if_null rx1315_debug, debug_1014 - rx1315_cur."!cursor_debug"("NEXT ", "term:sym") + rx1315_cur."!cursor_debug"("NEXT", "term:sym") debug_1014: rx1315_fail: (rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0) @@ -18861,7 +18834,7 @@ NQP::Compiler - NQP compiler rx1315_done: rx1315_cur."!cursor_fail"() if_null rx1315_debug, debug_1015 - rx1315_cur."!cursor_debug"("FAIL ", "term:sym") + rx1315_cur."!cursor_debug"("FAIL", "term:sym") debug_1015: .return (rx1315_cur) .return () @@ -18869,7 +18842,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("345_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("345_1282324002.40722") :method .annotate 'line', 447 new $P1317, "ResizablePMCArray" push $P1317, "next" @@ -18878,7 +18851,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "term:sym" :subid("346_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "term:sym" :subid("346_1282324002.40722") :method :outer("11_1282324002.40722") .annotate 'line', 447 .local string rx1321_tgt .local int rx1321_pos @@ -18901,7 +18874,7 @@ NQP::Compiler - NQP compiler rx1321_start: eq $I10, 1, rx1321_restart if_null rx1321_debug, debug_1016 - rx1321_cur."!cursor_debug"("START ", "term:sym") + rx1321_cur."!cursor_debug"("START", "term:sym") debug_1016: $I10 = self.'from'() ne $I10, -1, rxscan1324_done @@ -18940,13 +18913,13 @@ NQP::Compiler - NQP compiler # rx pass rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym") if_null rx1321_debug, debug_1017 - rx1321_cur."!cursor_debug"("PASS ", "term:sym", " at pos=", rx1321_pos) + rx1321_cur."!cursor_debug"("PASS", "term:sym", " at pos=", rx1321_pos) debug_1017: .return (rx1321_cur) rx1321_restart: .annotate 'line', 447 if_null rx1321_debug, debug_1018 - rx1321_cur."!cursor_debug"("NEXT ", "term:sym") + rx1321_cur."!cursor_debug"("NEXT", "term:sym") debug_1018: rx1321_fail: (rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0) @@ -18956,7 +18929,7 @@ NQP::Compiler - NQP compiler rx1321_done: rx1321_cur."!cursor_fail"() if_null rx1321_debug, debug_1019 - rx1321_cur."!cursor_debug"("FAIL ", "term:sym") + rx1321_cur."!cursor_debug"("FAIL", "term:sym") debug_1019: .return (rx1321_cur) .return () @@ -18964,7 +18937,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "!PREFIX__term:sym" :subid("347_1282016529.10767") :method +.sub "!PREFIX__term:sym" :subid("347_1282324002.40722") :method .annotate 'line', 447 new $P1323, "ResizablePMCArray" push $P1323, "redo" @@ -18974,7 +18947,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] .include "except_types.pasm" -.sub "smartmatch" :subid("348_1282016529.10767") :method :outer("11_1282016529.10767") +.sub "smartmatch" :subid("348_1282324002.40722") :method :outer("11_1282324002.40722") .param pmc param_1329 .annotate 'line', 561 new $P1328, 'ExceptionHandler' @@ -19027,34 +19000,34 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1339" :subid("349_1282016529.10767") :outer("11_1282016529.10767") +.sub "_block1339" :subid("349_1282324002.40722") :outer("11_1282324002.40722") .annotate 'line', 567 - .const 'Sub' $P1396 = "368_1282016529.10767" + .const 'Sub' $P1396 = "368_1282324002.40722" capture_lex $P1396 - .const 'Sub' $P1391 = "366_1282016529.10767" + .const 'Sub' $P1391 = "366_1282324002.40722" capture_lex $P1391 - .const 'Sub' $P1379 = "363_1282016529.10767" + .const 'Sub' $P1379 = "363_1282324002.40722" capture_lex $P1379 - .const 'Sub' $P1369 = "360_1282016529.10767" + .const 'Sub' $P1369 = "360_1282324002.40722" capture_lex $P1369 - .const 'Sub' $P1364 = "358_1282016529.10767" + .const 'Sub' $P1364 = "358_1282324002.40722" capture_lex $P1364 - .const 'Sub' $P1355 = "355_1282016529.10767" + .const 'Sub' $P1355 = "355_1282324002.40722" capture_lex $P1355 - .const 'Sub' $P1350 = "353_1282016529.10767" + .const 'Sub' $P1350 = "353_1282324002.40722" capture_lex $P1350 - .const 'Sub' $P1341 = "350_1282016529.10767" + .const 'Sub' $P1341 = "350_1282324002.40722" capture_lex $P1341 - .const 'Sub' $P1396 = "368_1282016529.10767" + .const 'Sub' $P1396 = "368_1282324002.40722" capture_lex $P1396 .return ($P1396) .end .namespace ["NQP";"Regex"] -.sub "metachar:sym<:my>" :subid("350_1282016529.10767") :method :outer("349_1282016529.10767") +.sub "metachar:sym<:my>" :subid("350_1282324002.40722") :method :outer("349_1282324002.40722") .annotate 'line', 567 - .const 'Sub' $P1347 = "352_1282016529.10767" + .const 'Sub' $P1347 = "352_1282324002.40722" capture_lex $P1347 .local string rx1342_tgt .local int rx1342_pos @@ -19077,7 +19050,7 @@ NQP::Compiler - NQP compiler rx1342_start: eq $I10, 1, rx1342_restart if_null rx1342_debug, debug_1026 - rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>") + rx1342_cur."!cursor_debug"("START", "metachar:sym<:my>") debug_1026: $I10 = self.'from'() ne $I10, -1, rxscan1345_done @@ -19101,7 +19074,7 @@ NQP::Compiler - NQP compiler add rx1342_pos, 1 # rx subrule "before" subtype=zerowidth negate= rx1342_cur."!cursor_pos"(rx1342_pos) - .const 'Sub' $P1347 = "352_1282016529.10767" + .const 'Sub' $P1347 = "352_1282324002.40722" capture_lex $P1347 $P10 = rx1342_cur."before"($P1347) unless $P10, rx1342_fail @@ -19128,13 +19101,13 @@ NQP::Compiler - NQP compiler # rx pass rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>") if_null rx1342_debug, debug_1031 - rx1342_cur."!cursor_debug"("PASS ", "metachar:sym<:my>", " at pos=", rx1342_pos) + rx1342_cur."!cursor_debug"("PASS", "metachar:sym<:my>", " at pos=", rx1342_pos) debug_1031: .return (rx1342_cur) rx1342_restart: .annotate 'line', 567 if_null rx1342_debug, debug_1032 - rx1342_cur."!cursor_debug"("NEXT ", "metachar:sym<:my>") + rx1342_cur."!cursor_debug"("NEXT", "metachar:sym<:my>") debug_1032: rx1342_fail: (rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0) @@ -19144,7 +19117,7 @@ NQP::Compiler - NQP compiler rx1342_done: rx1342_cur."!cursor_fail"() if_null rx1342_debug, debug_1033 - rx1342_cur."!cursor_debug"("FAIL ", "metachar:sym<:my>") + rx1342_cur."!cursor_debug"("FAIL", "metachar:sym<:my>") debug_1033: .return (rx1342_cur) .return () @@ -19152,7 +19125,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "!PREFIX__metachar:sym<:my>" :subid("351_1282016529.10767") :method +.sub "!PREFIX__metachar:sym<:my>" :subid("351_1282324002.40722") :method .annotate 'line', 567 new $P1344, "ResizablePMCArray" push $P1344, ":" @@ -19161,7 +19134,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1346" :anon :subid("352_1282016529.10767") :method :outer("350_1282016529.10767") +.sub "_block1346" :anon :subid("352_1282324002.40722") :method :outer("350_1282324002.40722") .annotate 'line', 569 .local string rx1348_tgt .local int rx1348_pos @@ -19184,7 +19157,7 @@ NQP::Compiler - NQP compiler rx1348_start: eq $I10, 1, rx1348_restart if_null rx1348_debug, debug_1027 - rx1348_cur."!cursor_debug"("START ", "") + rx1348_cur."!cursor_debug"("START", "") debug_1027: $I10 = self.'from'() ne $I10, -1, rxscan1349_done @@ -19208,12 +19181,12 @@ NQP::Compiler - NQP compiler # rx pass rx1348_cur."!cursor_pass"(rx1348_pos, "") if_null rx1348_debug, debug_1028 - rx1348_cur."!cursor_debug"("PASS ", "", " at pos=", rx1348_pos) + rx1348_cur."!cursor_debug"("PASS", "", " at pos=", rx1348_pos) debug_1028: .return (rx1348_cur) rx1348_restart: if_null rx1348_debug, debug_1029 - rx1348_cur."!cursor_debug"("NEXT ", "") + rx1348_cur."!cursor_debug"("NEXT", "") debug_1029: rx1348_fail: (rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0) @@ -19223,7 +19196,7 @@ NQP::Compiler - NQP compiler rx1348_done: rx1348_cur."!cursor_fail"() if_null rx1348_debug, debug_1030 - rx1348_cur."!cursor_debug"("FAIL ", "") + rx1348_cur."!cursor_debug"("FAIL", "") debug_1030: .return (rx1348_cur) .return () @@ -19231,7 +19204,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "metachar:sym<{ }>" :subid("353_1282016529.10767") :method :outer("349_1282016529.10767") +.sub "metachar:sym<{ }>" :subid("353_1282324002.40722") :method :outer("349_1282324002.40722") .annotate 'line', 567 .local string rx1351_tgt .local int rx1351_pos @@ -19254,7 +19227,7 @@ NQP::Compiler - NQP compiler rx1351_start: eq $I10, 1, rx1351_restart if_null rx1351_debug, debug_1034 - rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>") + rx1351_cur."!cursor_debug"("START", "metachar:sym<{ }>") debug_1034: $I10 = self.'from'() ne $I10, -1, rxscan1354_done @@ -19286,13 +19259,13 @@ NQP::Compiler - NQP compiler # rx pass rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>") if_null rx1351_debug, debug_1035 - rx1351_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1351_pos) + rx1351_cur."!cursor_debug"("PASS", "metachar:sym<{ }>", " at pos=", rx1351_pos) debug_1035: .return (rx1351_cur) rx1351_restart: .annotate 'line', 567 if_null rx1351_debug, debug_1036 - rx1351_cur."!cursor_debug"("NEXT ", "metachar:sym<{ }>") + rx1351_cur."!cursor_debug"("NEXT", "metachar:sym<{ }>") debug_1036: rx1351_fail: (rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0) @@ -19302,7 +19275,7 @@ NQP::Compiler - NQP compiler rx1351_done: rx1351_cur."!cursor_fail"() if_null rx1351_debug, debug_1037 - rx1351_cur."!cursor_debug"("FAIL ", "metachar:sym<{ }>") + rx1351_cur."!cursor_debug"("FAIL", "metachar:sym<{ }>") debug_1037: .return (rx1351_cur) .return () @@ -19310,7 +19283,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "!PREFIX__metachar:sym<{ }>" :subid("354_1282016529.10767") :method +.sub "!PREFIX__metachar:sym<{ }>" :subid("354_1282324002.40722") :method .annotate 'line', 567 new $P1353, "ResizablePMCArray" push $P1353, "{" @@ -19319,9 +19292,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "metachar:sym" :subid("355_1282016529.10767") :method :outer("349_1282016529.10767") +.sub "metachar:sym" :subid("355_1282324002.40722") :method :outer("349_1282324002.40722") .annotate 'line', 567 - .const 'Sub' $P1361 = "357_1282016529.10767" + .const 'Sub' $P1361 = "357_1282324002.40722" capture_lex $P1361 .local string rx1356_tgt .local int rx1356_pos @@ -19344,7 +19317,7 @@ NQP::Compiler - NQP compiler rx1356_start: eq $I10, 1, rx1356_restart if_null rx1356_debug, debug_1038 - rx1356_cur."!cursor_debug"("START ", "metachar:sym") + rx1356_cur."!cursor_debug"("START", "metachar:sym") debug_1038: $I10 = self.'from'() ne $I10, -1, rxscan1359_done @@ -19367,7 +19340,7 @@ NQP::Compiler - NQP compiler lt $I11, 0, rx1356_fail # rx subrule "before" subtype=zerowidth negate= rx1356_cur."!cursor_pos"(rx1356_pos) - .const 'Sub' $P1361 = "357_1282016529.10767" + .const 'Sub' $P1361 = "357_1282324002.40722" capture_lex $P1361 $P10 = rx1356_cur."before"($P1361) unless $P10, rx1356_fail @@ -19382,13 +19355,13 @@ NQP::Compiler - NQP compiler # rx pass rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym") if_null rx1356_debug, debug_1043 - rx1356_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx1356_pos) + rx1356_cur."!cursor_debug"("PASS", "metachar:sym", " at pos=", rx1356_pos) debug_1043: .return (rx1356_cur) rx1356_restart: .annotate 'line', 567 if_null rx1356_debug, debug_1044 - rx1356_cur."!cursor_debug"("NEXT ", "metachar:sym") + rx1356_cur."!cursor_debug"("NEXT", "metachar:sym") debug_1044: rx1356_fail: (rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0) @@ -19398,7 +19371,7 @@ NQP::Compiler - NQP compiler rx1356_done: rx1356_cur."!cursor_fail"() if_null rx1356_debug, debug_1045 - rx1356_cur."!cursor_debug"("FAIL ", "metachar:sym") + rx1356_cur."!cursor_debug"("FAIL", "metachar:sym") debug_1045: .return (rx1356_cur) .return () @@ -19406,7 +19379,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "!PREFIX__metachar:sym" :subid("356_1282016529.10767") :method +.sub "!PREFIX__metachar:sym" :subid("356_1282324002.40722") :method .annotate 'line', 567 new $P1358, "ResizablePMCArray" push $P1358, "$" @@ -19416,7 +19389,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1360" :anon :subid("357_1282016529.10767") :method :outer("355_1282016529.10767") +.sub "_block1360" :anon :subid("357_1282324002.40722") :method :outer("355_1282324002.40722") .annotate 'line', 577 .local string rx1362_tgt .local int rx1362_pos @@ -19439,7 +19412,7 @@ NQP::Compiler - NQP compiler rx1362_start: eq $I10, 1, rx1362_restart if_null rx1362_debug, debug_1039 - rx1362_cur."!cursor_debug"("START ", "") + rx1362_cur."!cursor_debug"("START", "") debug_1039: $I10 = self.'from'() ne $I10, -1, rxscan1363_done @@ -19465,12 +19438,12 @@ NQP::Compiler - NQP compiler # rx pass rx1362_cur."!cursor_pass"(rx1362_pos, "") if_null rx1362_debug, debug_1040 - rx1362_cur."!cursor_debug"("PASS ", "", " at pos=", rx1362_pos) + rx1362_cur."!cursor_debug"("PASS", "", " at pos=", rx1362_pos) debug_1040: .return (rx1362_cur) rx1362_restart: if_null rx1362_debug, debug_1041 - rx1362_cur."!cursor_debug"("NEXT ", "") + rx1362_cur."!cursor_debug"("NEXT", "") debug_1041: rx1362_fail: (rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0) @@ -19480,7 +19453,7 @@ NQP::Compiler - NQP compiler rx1362_done: rx1362_cur."!cursor_fail"() if_null rx1362_debug, debug_1042 - rx1362_cur."!cursor_debug"("FAIL ", "") + rx1362_cur."!cursor_debug"("FAIL", "") debug_1042: .return (rx1362_cur) .return () @@ -19488,7 +19461,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "assertion:sym<{ }>" :subid("358_1282016529.10767") :method :outer("349_1282016529.10767") +.sub "assertion:sym<{ }>" :subid("358_1282324002.40722") :method :outer("349_1282324002.40722") .annotate 'line', 567 .local string rx1365_tgt .local int rx1365_pos @@ -19511,7 +19484,7 @@ NQP::Compiler - NQP compiler rx1365_start: eq $I10, 1, rx1365_restart if_null rx1365_debug, debug_1046 - rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>") + rx1365_cur."!cursor_debug"("START", "assertion:sym<{ }>") debug_1046: $I10 = self.'from'() ne $I10, -1, rxscan1368_done @@ -19543,13 +19516,13 @@ NQP::Compiler - NQP compiler # rx pass rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>") if_null rx1365_debug, debug_1047 - rx1365_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1365_pos) + rx1365_cur."!cursor_debug"("PASS", "assertion:sym<{ }>", " at pos=", rx1365_pos) debug_1047: .return (rx1365_cur) rx1365_restart: .annotate 'line', 567 if_null rx1365_debug, debug_1048 - rx1365_cur."!cursor_debug"("NEXT ", "assertion:sym<{ }>") + rx1365_cur."!cursor_debug"("NEXT", "assertion:sym<{ }>") debug_1048: rx1365_fail: (rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0) @@ -19559,7 +19532,7 @@ NQP::Compiler - NQP compiler rx1365_done: rx1365_cur."!cursor_fail"() if_null rx1365_debug, debug_1049 - rx1365_cur."!cursor_debug"("FAIL ", "assertion:sym<{ }>") + rx1365_cur."!cursor_debug"("FAIL", "assertion:sym<{ }>") debug_1049: .return (rx1365_cur) .return () @@ -19567,7 +19540,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "!PREFIX__assertion:sym<{ }>" :subid("359_1282016529.10767") :method +.sub "!PREFIX__assertion:sym<{ }>" :subid("359_1282324002.40722") :method .annotate 'line', 567 new $P1367, "ResizablePMCArray" push $P1367, "{" @@ -19576,9 +19549,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "assertion:sym" :subid("360_1282016529.10767") :method :outer("349_1282016529.10767") +.sub "assertion:sym" :subid("360_1282324002.40722") :method :outer("349_1282324002.40722") .annotate 'line', 567 - .const 'Sub' $P1375 = "362_1282016529.10767" + .const 'Sub' $P1375 = "362_1282324002.40722" capture_lex $P1375 .local string rx1370_tgt .local int rx1370_pos @@ -19601,7 +19574,7 @@ NQP::Compiler - NQP compiler rx1370_start: eq $I10, 1, rx1370_restart if_null rx1370_debug, debug_1050 - rx1370_cur."!cursor_debug"("START ", "assertion:sym") + rx1370_cur."!cursor_debug"("START", "assertion:sym") debug_1050: $I10 = self.'from'() ne $I10, -1, rxscan1373_done @@ -19628,7 +19601,7 @@ NQP::Compiler - NQP compiler inc rx1370_pos # rx subrule "before" subtype=zerowidth negate= rx1370_cur."!cursor_pos"(rx1370_pos) - .const 'Sub' $P1375 = "362_1282016529.10767" + .const 'Sub' $P1375 = "362_1282324002.40722" capture_lex $P1375 $P10 = rx1370_cur."before"($P1375) unless $P10, rx1370_fail @@ -19654,13 +19627,13 @@ NQP::Compiler - NQP compiler # rx pass rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym") if_null rx1370_debug, debug_1055 - rx1370_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx1370_pos) + rx1370_cur."!cursor_debug"("PASS", "assertion:sym", " at pos=", rx1370_pos) debug_1055: .return (rx1370_cur) rx1370_restart: .annotate 'line', 567 if_null rx1370_debug, debug_1056 - rx1370_cur."!cursor_debug"("NEXT ", "assertion:sym") + rx1370_cur."!cursor_debug"("NEXT", "assertion:sym") debug_1056: rx1370_fail: (rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0) @@ -19670,7 +19643,7 @@ NQP::Compiler - NQP compiler rx1370_done: rx1370_cur."!cursor_fail"() if_null rx1370_debug, debug_1057 - rx1370_cur."!cursor_debug"("FAIL ", "assertion:sym") + rx1370_cur."!cursor_debug"("FAIL", "assertion:sym") debug_1057: .return (rx1370_cur) .return () @@ -19678,7 +19651,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "!PREFIX__assertion:sym" :subid("361_1282016529.10767") :method +.sub "!PREFIX__assertion:sym" :subid("361_1282324002.40722") :method .annotate 'line', 567 new $P1372, "ResizablePMCArray" push $P1372, "!" @@ -19688,7 +19661,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1374" :anon :subid("362_1282016529.10767") :method :outer("360_1282016529.10767") +.sub "_block1374" :anon :subid("362_1282324002.40722") :method :outer("360_1282324002.40722") .annotate 'line', 585 .local string rx1376_tgt .local int rx1376_pos @@ -19711,7 +19684,7 @@ NQP::Compiler - NQP compiler rx1376_start: eq $I10, 1, rx1376_restart if_null rx1376_debug, debug_1051 - rx1376_cur."!cursor_debug"("START ", "") + rx1376_cur."!cursor_debug"("START", "") debug_1051: $I10 = self.'from'() ne $I10, -1, rxscan1377_done @@ -19735,12 +19708,12 @@ NQP::Compiler - NQP compiler # rx pass rx1376_cur."!cursor_pass"(rx1376_pos, "") if_null rx1376_debug, debug_1052 - rx1376_cur."!cursor_debug"("PASS ", "", " at pos=", rx1376_pos) + rx1376_cur."!cursor_debug"("PASS", "", " at pos=", rx1376_pos) debug_1052: .return (rx1376_cur) rx1376_restart: if_null rx1376_debug, debug_1053 - rx1376_cur."!cursor_debug"("NEXT ", "") + rx1376_cur."!cursor_debug"("NEXT", "") debug_1053: rx1376_fail: (rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0) @@ -19750,7 +19723,7 @@ NQP::Compiler - NQP compiler rx1376_done: rx1376_cur."!cursor_fail"() if_null rx1376_debug, debug_1054 - rx1376_cur."!cursor_debug"("FAIL ", "") + rx1376_cur."!cursor_debug"("FAIL", "") debug_1054: .return (rx1376_cur) .return () @@ -19758,9 +19731,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "assertion:sym" :subid("363_1282016529.10767") :method :outer("349_1282016529.10767") +.sub "assertion:sym" :subid("363_1282324002.40722") :method :outer("349_1282324002.40722") .annotate 'line', 567 - .const 'Sub' $P1388 = "365_1282016529.10767" + .const 'Sub' $P1388 = "365_1282324002.40722" capture_lex $P1388 .local string rx1380_tgt .local int rx1380_pos @@ -19784,7 +19757,7 @@ NQP::Compiler - NQP compiler rx1380_start: eq $I10, 1, rx1380_restart if_null rx1380_debug, debug_1058 - rx1380_cur."!cursor_debug"("START ", "assertion:sym") + rx1380_cur."!cursor_debug"("START", "assertion:sym") debug_1058: $I10 = self.'from'() ne $I10, -1, rxscan1384_done @@ -19818,7 +19791,7 @@ NQP::Compiler - NQP compiler .annotate 'line', 591 # rx subrule "before" subtype=zerowidth negate= rx1380_cur."!cursor_pos"(rx1380_pos) - .const 'Sub' $P1388 = "365_1282016529.10767" + .const 'Sub' $P1388 = "365_1282324002.40722" capture_lex $P1388 $P10 = rx1380_cur."before"($P1388) unless $P10, rx1380_fail @@ -19910,13 +19883,13 @@ NQP::Compiler - NQP compiler # rx pass rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym") if_null rx1380_debug, debug_1063 - rx1380_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx1380_pos) + rx1380_cur."!cursor_debug"("PASS", "assertion:sym", " at pos=", rx1380_pos) debug_1063: .return (rx1380_cur) rx1380_restart: .annotate 'line', 567 if_null rx1380_debug, debug_1064 - rx1380_cur."!cursor_debug"("NEXT ", "assertion:sym") + rx1380_cur."!cursor_debug"("NEXT", "assertion:sym") debug_1064: rx1380_fail: (rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0) @@ -19926,7 +19899,7 @@ NQP::Compiler - NQP compiler rx1380_done: rx1380_cur."!cursor_fail"() if_null rx1380_debug, debug_1065 - rx1380_cur."!cursor_debug"("FAIL ", "assertion:sym") + rx1380_cur."!cursor_debug"("FAIL", "assertion:sym") debug_1065: .return (rx1380_cur) .return () @@ -19934,7 +19907,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "!PREFIX__assertion:sym" :subid("364_1282016529.10767") :method +.sub "!PREFIX__assertion:sym" :subid("364_1282324002.40722") :method .annotate 'line', 567 $P1382 = self."!PREFIX__!subrule"("identifier", "") new $P1383, "ResizablePMCArray" @@ -19944,7 +19917,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "_block1387" :anon :subid("365_1282016529.10767") :method :outer("363_1282016529.10767") +.sub "_block1387" :anon :subid("365_1282324002.40722") :method :outer("363_1282324002.40722") .annotate 'line', 591 .local string rx1389_tgt .local int rx1389_pos @@ -19967,7 +19940,7 @@ NQP::Compiler - NQP compiler rx1389_start: eq $I10, 1, rx1389_restart if_null rx1389_debug, debug_1059 - rx1389_cur."!cursor_debug"("START ", "") + rx1389_cur."!cursor_debug"("START", "") debug_1059: $I10 = self.'from'() ne $I10, -1, rxscan1390_done @@ -19991,12 +19964,12 @@ NQP::Compiler - NQP compiler # rx pass rx1389_cur."!cursor_pass"(rx1389_pos, "") if_null rx1389_debug, debug_1060 - rx1389_cur."!cursor_debug"("PASS ", "", " at pos=", rx1389_pos) + rx1389_cur."!cursor_debug"("PASS", "", " at pos=", rx1389_pos) debug_1060: .return (rx1389_cur) rx1389_restart: if_null rx1389_debug, debug_1061 - rx1389_cur."!cursor_debug"("NEXT ", "") + rx1389_cur."!cursor_debug"("NEXT", "") debug_1061: rx1389_fail: (rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0) @@ -20006,7 +19979,7 @@ NQP::Compiler - NQP compiler rx1389_done: rx1389_cur."!cursor_fail"() if_null rx1389_debug, debug_1062 - rx1389_cur."!cursor_debug"("FAIL ", "") + rx1389_cur."!cursor_debug"("FAIL", "") debug_1062: .return (rx1389_cur) .return () @@ -20014,7 +19987,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "assertion:sym" :subid("366_1282016529.10767") :method :outer("349_1282016529.10767") +.sub "assertion:sym" :subid("366_1282324002.40722") :method :outer("349_1282324002.40722") .annotate 'line', 567 .local string rx1392_tgt .local int rx1392_pos @@ -20037,7 +20010,7 @@ NQP::Compiler - NQP compiler rx1392_start: eq $I10, 1, rx1392_restart if_null rx1392_debug, debug_1066 - rx1392_cur."!cursor_debug"("START ", "assertion:sym") + rx1392_cur."!cursor_debug"("START", "assertion:sym") debug_1066: $I10 = self.'from'() ne $I10, -1, rxscan1395_done @@ -20069,13 +20042,13 @@ NQP::Compiler - NQP compiler # rx pass rx1392_cur."!cursor_pass"(rx1392_pos, "assertion:sym") if_null rx1392_debug, debug_1067 - rx1392_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx1392_pos) + rx1392_cur."!cursor_debug"("PASS", "assertion:sym", " at pos=", rx1392_pos) debug_1067: .return (rx1392_cur) rx1392_restart: .annotate 'line', 567 if_null rx1392_debug, debug_1068 - rx1392_cur."!cursor_debug"("NEXT ", "assertion:sym") + rx1392_cur."!cursor_debug"("NEXT", "assertion:sym") debug_1068: rx1392_fail: (rx1392_rep, rx1392_pos, $I10, $P10) = rx1392_cur."!mark_fail"(0) @@ -20085,7 +20058,7 @@ NQP::Compiler - NQP compiler rx1392_done: rx1392_cur."!cursor_fail"() if_null rx1392_debug, debug_1069 - rx1392_cur."!cursor_debug"("FAIL ", "assertion:sym") + rx1392_cur."!cursor_debug"("FAIL", "assertion:sym") debug_1069: .return (rx1392_cur) .return () @@ -20093,7 +20066,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "!PREFIX__assertion:sym" :subid("367_1282016529.10767") :method +.sub "!PREFIX__assertion:sym" :subid("367_1282324002.40722") :method .annotate 'line', 567 new $P1394, "ResizablePMCArray" push $P1394, "$" @@ -20103,7 +20076,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "codeblock" :subid("368_1282016529.10767") :method :outer("349_1282016529.10767") +.sub "codeblock" :subid("368_1282324002.40722") :method :outer("349_1282324002.40722") .annotate 'line', 567 .local string rx1397_tgt .local int rx1397_pos @@ -20126,7 +20099,7 @@ NQP::Compiler - NQP compiler rx1397_start: eq $I10, 1, rx1397_restart if_null rx1397_debug, debug_1070 - rx1397_cur."!cursor_debug"("START ", "codeblock") + rx1397_cur."!cursor_debug"("START", "codeblock") debug_1070: $I10 = self.'from'() ne $I10, -1, rxscan1401_done @@ -20152,13 +20125,13 @@ NQP::Compiler - NQP compiler # rx pass rx1397_cur."!cursor_pass"(rx1397_pos, "codeblock") if_null rx1397_debug, debug_1071 - rx1397_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1397_pos) + rx1397_cur."!cursor_debug"("PASS", "codeblock", " at pos=", rx1397_pos) debug_1071: .return (rx1397_cur) rx1397_restart: .annotate 'line', 567 if_null rx1397_debug, debug_1072 - rx1397_cur."!cursor_debug"("NEXT ", "codeblock") + rx1397_cur."!cursor_debug"("NEXT", "codeblock") debug_1072: rx1397_fail: (rx1397_rep, rx1397_pos, $I10, $P10) = rx1397_cur."!mark_fail"(0) @@ -20168,7 +20141,7 @@ NQP::Compiler - NQP compiler rx1397_done: rx1397_cur."!cursor_fail"() if_null rx1397_debug, debug_1073 - rx1397_cur."!cursor_debug"("FAIL ", "codeblock") + rx1397_cur."!cursor_debug"("FAIL", "codeblock") debug_1073: .return (rx1397_cur) .return () @@ -20176,7 +20149,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Regex"] -.sub "!PREFIX__codeblock" :subid("369_1282016529.10767") :method +.sub "!PREFIX__codeblock" :subid("369_1282324002.40722") :method .annotate 'line', 567 $P1399 = self."!PREFIX__!subrule"("LANG", "") new $P1400, "ResizablePMCArray" @@ -20186,18 +20159,18 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Grammar"] -.sub "_block1403" :load :anon :subid("370_1282016529.10767") +.sub "_block1403" :load :anon :subid("370_1282324002.40722") .annotate 'line', 4 - .const 'Sub' $P1405 = "11_1282016529.10767" + .const 'Sub' $P1405 = "11_1282324002.40722" $P1406 = $P1405() .return ($P1406) .end .namespace [] -.sub "_block1424" :load :anon :subid("371_1282016529.10767") +.sub "_block1424" :load :anon :subid("371_1282324002.40722") .annotate 'line', 1 - .const 'Sub' $P1426 = "10_1282016529.10767" + .const 'Sub' $P1426 = "10_1282324002.40722" $P1427 = $P1426() .return ($P1427) .end @@ -20205,7 +20178,7 @@ NQP::Compiler - NQP compiler ### .include 'gen/nqp-actions.pir' .namespace [] -.sub "_block11" :anon :subid("10_1282016534.58916") +.sub "_block11" :anon :subid("10_1282324007.53935") .annotate 'line', 0 get_hll_global $P14, ["NQP";"Actions"], "_block13" capture_lex $P14 @@ -20222,15 +20195,15 @@ NQP::Compiler - NQP compiler $P2452 = $P14() .annotate 'line', 1 .return ($P2452) - .const 'Sub' $P2454 = "143_1282016534.58916" + .const 'Sub' $P2454 = "143_1282324007.53935" .return ($P2454) .end .namespace [] -.sub "" :load :init :subid("post144") :outer("10_1282016534.58916") +.sub "" :load :init :subid("post144") :outer("10_1282324007.53935") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1282016534.58916" + .const 'Sub' $P12 = "10_1282324007.53935" .local pmc block set block, $P12 $P2457 = get_root_global ["parrot"], "P6metaclass" @@ -20239,217 +20212,217 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block13" :subid("11_1282016534.58916") :outer("10_1282016534.58916") +.sub "_block13" :subid("11_1282324007.53935") :outer("10_1282324007.53935") .annotate 'line', 3 - .const 'Sub' $P2448 = "142_1282016534.58916" + .const 'Sub' $P2448 = "142_1282324007.53935" capture_lex $P2448 get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330" capture_lex $P2331 - .const 'Sub' $P2320 = "132_1282016534.58916" + .const 'Sub' $P2320 = "132_1282324007.53935" capture_lex $P2320 - .const 'Sub' $P2313 = "131_1282016534.58916" + .const 'Sub' $P2313 = "131_1282324007.53935" capture_lex $P2313 - .const 'Sub' $P2306 = "130_1282016534.58916" + .const 'Sub' $P2306 = "130_1282324007.53935" capture_lex $P2306 - .const 'Sub' $P2299 = "129_1282016534.58916" + .const 'Sub' $P2299 = "129_1282324007.53935" capture_lex $P2299 - .const 'Sub' $P2286 = "128_1282016534.58916" + .const 'Sub' $P2286 = "128_1282324007.53935" capture_lex $P2286 - .const 'Sub' $P2276 = "127_1282016534.58916" + .const 'Sub' $P2276 = "127_1282324007.53935" capture_lex $P2276 - .const 'Sub' $P2266 = "126_1282016534.58916" + .const 'Sub' $P2266 = "126_1282324007.53935" capture_lex $P2266 - .const 'Sub' $P2256 = "125_1282016534.58916" + .const 'Sub' $P2256 = "125_1282324007.53935" capture_lex $P2256 - .const 'Sub' $P2249 = "124_1282016534.58916" + .const 'Sub' $P2249 = "124_1282324007.53935" capture_lex $P2249 - .const 'Sub' $P2235 = "123_1282016534.58916" + .const 'Sub' $P2235 = "123_1282324007.53935" capture_lex $P2235 - .const 'Sub' $P2225 = "122_1282016534.58916" + .const 'Sub' $P2225 = "122_1282324007.53935" capture_lex $P2225 - .const 'Sub' $P2188 = "121_1282016534.58916" + .const 'Sub' $P2188 = "121_1282324007.53935" capture_lex $P2188 - .const 'Sub' $P2174 = "120_1282016534.58916" + .const 'Sub' $P2174 = "120_1282324007.53935" capture_lex $P2174 - .const 'Sub' $P2164 = "119_1282016534.58916" + .const 'Sub' $P2164 = "119_1282324007.53935" capture_lex $P2164 - .const 'Sub' $P2154 = "118_1282016534.58916" + .const 'Sub' $P2154 = "118_1282324007.53935" capture_lex $P2154 - .const 'Sub' $P2144 = "117_1282016534.58916" + .const 'Sub' $P2144 = "117_1282324007.53935" capture_lex $P2144 - .const 'Sub' $P2134 = "116_1282016534.58916" + .const 'Sub' $P2134 = "116_1282324007.53935" capture_lex $P2134 - .const 'Sub' $P2124 = "115_1282016534.58916" + .const 'Sub' $P2124 = "115_1282324007.53935" capture_lex $P2124 - .const 'Sub' $P2096 = "114_1282016534.58916" + .const 'Sub' $P2096 = "114_1282324007.53935" capture_lex $P2096 - .const 'Sub' $P2079 = "113_1282016534.58916" + .const 'Sub' $P2079 = "113_1282324007.53935" capture_lex $P2079 - .const 'Sub' $P2069 = "112_1282016534.58916" + .const 'Sub' $P2069 = "112_1282324007.53935" capture_lex $P2069 - .const 'Sub' $P2056 = "111_1282016534.58916" + .const 'Sub' $P2056 = "111_1282324007.53935" capture_lex $P2056 - .const 'Sub' $P2043 = "110_1282016534.58916" + .const 'Sub' $P2043 = "110_1282324007.53935" capture_lex $P2043 - .const 'Sub' $P2030 = "109_1282016534.58916" + .const 'Sub' $P2030 = "109_1282324007.53935" capture_lex $P2030 - .const 'Sub' $P2020 = "108_1282016534.58916" + .const 'Sub' $P2020 = "108_1282324007.53935" capture_lex $P2020 - .const 'Sub' $P1991 = "107_1282016534.58916" + .const 'Sub' $P1991 = "107_1282324007.53935" capture_lex $P1991 - .const 'Sub' $P1967 = "106_1282016534.58916" + .const 'Sub' $P1967 = "106_1282324007.53935" capture_lex $P1967 - .const 'Sub' $P1957 = "105_1282016534.58916" + .const 'Sub' $P1957 = "105_1282324007.53935" capture_lex $P1957 - .const 'Sub' $P1947 = "104_1282016534.58916" + .const 'Sub' $P1947 = "104_1282324007.53935" capture_lex $P1947 - .const 'Sub' $P1920 = "103_1282016534.58916" + .const 'Sub' $P1920 = "103_1282324007.53935" capture_lex $P1920 - .const 'Sub' $P1902 = "102_1282016534.58916" + .const 'Sub' $P1902 = "102_1282324007.53935" capture_lex $P1902 - .const 'Sub' $P1892 = "101_1282016534.58916" + .const 'Sub' $P1892 = "101_1282324007.53935" capture_lex $P1892 - .const 'Sub' $P1788 = "98_1282016534.58916" + .const 'Sub' $P1788 = "98_1282324007.53935" capture_lex $P1788 - .const 'Sub' $P1778 = "97_1282016534.58916" + .const 'Sub' $P1778 = "97_1282324007.53935" capture_lex $P1778 - .const 'Sub' $P1749 = "96_1282016534.58916" + .const 'Sub' $P1749 = "96_1282324007.53935" capture_lex $P1749 - .const 'Sub' $P1707 = "95_1282016534.58916" + .const 'Sub' $P1707 = "95_1282324007.53935" capture_lex $P1707 - .const 'Sub' $P1691 = "94_1282016534.58916" + .const 'Sub' $P1691 = "94_1282324007.53935" capture_lex $P1691 - .const 'Sub' $P1682 = "93_1282016534.58916" + .const 'Sub' $P1682 = "93_1282324007.53935" capture_lex $P1682 - .const 'Sub' $P1650 = "92_1282016534.58916" + .const 'Sub' $P1650 = "92_1282324007.53935" capture_lex $P1650 - .const 'Sub' $P1551 = "89_1282016534.58916" + .const 'Sub' $P1551 = "89_1282324007.53935" capture_lex $P1551 - .const 'Sub' $P1534 = "88_1282016534.58916" + .const 'Sub' $P1534 = "88_1282324007.53935" capture_lex $P1534 - .const 'Sub' $P1514 = "87_1282016534.58916" + .const 'Sub' $P1514 = "87_1282324007.53935" capture_lex $P1514 - .const 'Sub' $P1402 = "84_1282016534.58916" + .const 'Sub' $P1402 = "84_1282324007.53935" capture_lex $P1402 - .const 'Sub' $P1345 = "80_1282016534.58916" + .const 'Sub' $P1345 = "80_1282324007.53935" capture_lex $P1345 - .const 'Sub' $P1300 = "78_1282016534.58916" + .const 'Sub' $P1300 = "78_1282324007.53935" capture_lex $P1300 - .const 'Sub' $P1250 = "76_1282016534.58916" + .const 'Sub' $P1250 = "76_1282324007.53935" capture_lex $P1250 - .const 'Sub' $P1240 = "75_1282016534.58916" + .const 'Sub' $P1240 = "75_1282324007.53935" capture_lex $P1240 - .const 'Sub' $P1230 = "74_1282016534.58916" + .const 'Sub' $P1230 = "74_1282324007.53935" capture_lex $P1230 - .const 'Sub' $P1159 = "72_1282016534.58916" + .const 'Sub' $P1159 = "72_1282324007.53935" capture_lex $P1159 - .const 'Sub' $P1149 = "71_1282016534.58916" + .const 'Sub' $P1149 = "71_1282324007.53935" capture_lex $P1149 - .const 'Sub' $P1132 = "70_1282016534.58916" + .const 'Sub' $P1132 = "70_1282324007.53935" capture_lex $P1132 - .const 'Sub' $P1115 = "69_1282016534.58916" + .const 'Sub' $P1115 = "69_1282324007.53935" capture_lex $P1115 - .const 'Sub' $P1098 = "68_1282016534.58916" + .const 'Sub' $P1098 = "68_1282324007.53935" capture_lex $P1098 - .const 'Sub' $P1088 = "67_1282016534.58916" + .const 'Sub' $P1088 = "67_1282324007.53935" capture_lex $P1088 - .const 'Sub' $P1078 = "66_1282016534.58916" + .const 'Sub' $P1078 = "66_1282324007.53935" capture_lex $P1078 - .const 'Sub' $P1068 = "65_1282016534.58916" + .const 'Sub' $P1068 = "65_1282324007.53935" capture_lex $P1068 - .const 'Sub' $P1044 = "64_1282016534.58916" + .const 'Sub' $P1044 = "64_1282324007.53935" capture_lex $P1044 - .const 'Sub' $P991 = "63_1282016534.58916" + .const 'Sub' $P991 = "63_1282324007.53935" capture_lex $P991 - .const 'Sub' $P981 = "62_1282016534.58916" + .const 'Sub' $P981 = "62_1282324007.53935" capture_lex $P981 - .const 'Sub' $P892 = "60_1282016534.58916" + .const 'Sub' $P892 = "60_1282324007.53935" capture_lex $P892 - .const 'Sub' $P866 = "59_1282016534.58916" + .const 'Sub' $P866 = "59_1282324007.53935" capture_lex $P866 - .const 'Sub' $P850 = "58_1282016534.58916" + .const 'Sub' $P850 = "58_1282324007.53935" capture_lex $P850 - .const 'Sub' $P840 = "57_1282016534.58916" + .const 'Sub' $P840 = "57_1282324007.53935" capture_lex $P840 - .const 'Sub' $P830 = "56_1282016534.58916" + .const 'Sub' $P830 = "56_1282324007.53935" capture_lex $P830 - .const 'Sub' $P820 = "55_1282016534.58916" + .const 'Sub' $P820 = "55_1282324007.53935" capture_lex $P820 - .const 'Sub' $P810 = "54_1282016534.58916" + .const 'Sub' $P810 = "54_1282324007.53935" capture_lex $P810 - .const 'Sub' $P800 = "53_1282016534.58916" + .const 'Sub' $P800 = "53_1282324007.53935" capture_lex $P800 - .const 'Sub' $P790 = "52_1282016534.58916" + .const 'Sub' $P790 = "52_1282324007.53935" capture_lex $P790 - .const 'Sub' $P780 = "51_1282016534.58916" + .const 'Sub' $P780 = "51_1282324007.53935" capture_lex $P780 - .const 'Sub' $P770 = "50_1282016534.58916" + .const 'Sub' $P770 = "50_1282324007.53935" capture_lex $P770 - .const 'Sub' $P760 = "49_1282016534.58916" + .const 'Sub' $P760 = "49_1282324007.53935" capture_lex $P760 - .const 'Sub' $P750 = "48_1282016534.58916" + .const 'Sub' $P750 = "48_1282324007.53935" capture_lex $P750 - .const 'Sub' $P740 = "47_1282016534.58916" + .const 'Sub' $P740 = "47_1282324007.53935" capture_lex $P740 - .const 'Sub' $P730 = "46_1282016534.58916" + .const 'Sub' $P730 = "46_1282324007.53935" capture_lex $P730 - .const 'Sub' $P720 = "45_1282016534.58916" + .const 'Sub' $P720 = "45_1282324007.53935" capture_lex $P720 - .const 'Sub' $P702 = "44_1282016534.58916" + .const 'Sub' $P702 = "44_1282324007.53935" capture_lex $P702 - .const 'Sub' $P667 = "43_1282016534.58916" + .const 'Sub' $P667 = "43_1282324007.53935" capture_lex $P667 - .const 'Sub' $P651 = "42_1282016534.58916" + .const 'Sub' $P651 = "42_1282324007.53935" capture_lex $P651 - .const 'Sub' $P630 = "41_1282016534.58916" + .const 'Sub' $P630 = "41_1282324007.53935" capture_lex $P630 - .const 'Sub' $P610 = "40_1282016534.58916" + .const 'Sub' $P610 = "40_1282324007.53935" capture_lex $P610 - .const 'Sub' $P597 = "39_1282016534.58916" + .const 'Sub' $P597 = "39_1282324007.53935" capture_lex $P597 - .const 'Sub' $P571 = "38_1282016534.58916" + .const 'Sub' $P571 = "38_1282324007.53935" capture_lex $P571 - .const 'Sub' $P535 = "37_1282016534.58916" + .const 'Sub' $P535 = "37_1282324007.53935" capture_lex $P535 - .const 'Sub' $P518 = "36_1282016534.58916" + .const 'Sub' $P518 = "36_1282324007.53935" capture_lex $P518 - .const 'Sub' $P504 = "35_1282016534.58916" + .const 'Sub' $P504 = "35_1282324007.53935" capture_lex $P504 - .const 'Sub' $P451 = "33_1282016534.58916" + .const 'Sub' $P451 = "33_1282324007.53935" capture_lex $P451 - .const 'Sub' $P440 = "32_1282016534.58916" + .const 'Sub' $P440 = "32_1282324007.53935" capture_lex $P440 - .const 'Sub' $P427 = "31_1282016534.58916" + .const 'Sub' $P427 = "31_1282324007.53935" capture_lex $P427 - .const 'Sub' $P407 = "30_1282016534.58916" + .const 'Sub' $P407 = "30_1282324007.53935" capture_lex $P407 - .const 'Sub' $P397 = "29_1282016534.58916" + .const 'Sub' $P397 = "29_1282324007.53935" capture_lex $P397 - .const 'Sub' $P387 = "28_1282016534.58916" + .const 'Sub' $P387 = "28_1282324007.53935" capture_lex $P387 - .const 'Sub' $P371 = "27_1282016534.58916" + .const 'Sub' $P371 = "27_1282324007.53935" capture_lex $P371 - .const 'Sub' $P288 = "25_1282016534.58916" + .const 'Sub' $P288 = "25_1282324007.53935" capture_lex $P288 - .const 'Sub' $P245 = "23_1282016534.58916" + .const 'Sub' $P245 = "23_1282324007.53935" capture_lex $P245 - .const 'Sub' $P213 = "22_1282016534.58916" + .const 'Sub' $P213 = "22_1282324007.53935" capture_lex $P213 - .const 'Sub' $P180 = "21_1282016534.58916" + .const 'Sub' $P180 = "21_1282324007.53935" capture_lex $P180 - .const 'Sub' $P170 = "20_1282016534.58916" + .const 'Sub' $P170 = "20_1282324007.53935" capture_lex $P170 - .const 'Sub' $P151 = "19_1282016534.58916" + .const 'Sub' $P151 = "19_1282324007.53935" capture_lex $P151 - .const 'Sub' $P100 = "18_1282016534.58916" + .const 'Sub' $P100 = "18_1282324007.53935" capture_lex $P100 - .const 'Sub' $P84 = "17_1282016534.58916" + .const 'Sub' $P84 = "17_1282324007.53935" capture_lex $P84 - .const 'Sub' $P63 = "16_1282016534.58916" + .const 'Sub' $P63 = "16_1282324007.53935" capture_lex $P63 - .const 'Sub' $P27 = "13_1282016534.58916" + .const 'Sub' $P27 = "13_1282324007.53935" capture_lex $P27 - .const 'Sub' $P16 = "12_1282016534.58916" + .const 'Sub' $P16 = "12_1282324007.53935" capture_lex $P16 get_global $P15, "@BLOCK" unless_null $P15, vivify_147 @@ -20457,27 +20430,27 @@ NQP::Compiler - NQP compiler set_global "@BLOCK", $P15 vivify_147: .annotate 'line', 9 - .const 'Sub' $P16 = "12_1282016534.58916" + .const 'Sub' $P16 = "12_1282324007.53935" newclosure $P26, $P16 .lex "xblock_immediate", $P26 .annotate 'line', 14 - .const 'Sub' $P27 = "13_1282016534.58916" + .const 'Sub' $P27 = "13_1282324007.53935" newclosure $P62, $P27 .lex "block_immediate", $P62 .annotate 'line', 24 - .const 'Sub' $P63 = "16_1282016534.58916" + .const 'Sub' $P63 = "16_1282324007.53935" newclosure $P83, $P63 .lex "vivitype", $P83 .annotate 'line', 43 - .const 'Sub' $P84 = "17_1282016534.58916" + .const 'Sub' $P84 = "17_1282324007.53935" newclosure $P99, $P84 .lex "colonpair_str", $P99 .annotate 'line', 223 - .const 'Sub' $P100 = "18_1282016534.58916" + .const 'Sub' $P100 = "18_1282324007.53935" newclosure $P150, $P100 .lex "push_block_handler", $P150 .annotate 'line', 835 - .const 'Sub' $P151 = "19_1282016534.58916" + .const 'Sub' $P151 = "19_1282324007.53935" newclosure $P165, $P151 .lex "control", $P165 .annotate 'line', 3 @@ -20504,19 +20477,19 @@ NQP::Compiler - NQP compiler $P2442 = $P2331() .annotate 'line', 3 .return ($P2442) - .const 'Sub' $P2444 = "141_1282016534.58916" + .const 'Sub' $P2444 = "141_1282324007.53935" .return ($P2444) .end .namespace ["NQP";"Actions"] -.sub "" :load :init :subid("post145") :outer("11_1282016534.58916") +.sub "" :load :init :subid("post145") :outer("11_1282324007.53935") .annotate 'line', 3 get_hll_global $P14, ["NQP";"Actions"], "_block13" .local pmc block set block, $P14 .annotate 'line', 5 - .const 'Sub' $P2448 = "142_1282016534.58916" + .const 'Sub' $P2448 = "142_1282324007.53935" capture_lex $P2448 $P2448() $P2451 = get_root_global ["parrot"], "P6metaclass" @@ -20525,7 +20498,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block2447" :anon :subid("142_1282016534.58916") :outer("11_1282016534.58916") +.sub "_block2447" :anon :subid("142_1282324007.53935") :outer("11_1282324007.53935") .annotate 'line', 6 get_global $P2449, "@BLOCK" unless_null $P2449, vivify_146 @@ -20541,7 +20514,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "xblock_immediate" :subid("12_1282016534.58916") :outer("11_1282016534.58916") +.sub "xblock_immediate" :subid("12_1282324007.53935") :outer("11_1282324007.53935") .param pmc param_19 .annotate 'line', 9 new $P18, 'ExceptionHandler' @@ -20578,10 +20551,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "block_immediate" :subid("13_1282016534.58916") :outer("11_1282016534.58916") +.sub "block_immediate" :subid("13_1282324007.53935") :outer("11_1282324007.53935") .param pmc param_30 .annotate 'line', 14 - .const 'Sub' $P40 = "14_1282016534.58916" + .const 'Sub' $P40 = "14_1282324007.53935" capture_lex $P40 new $P29, 'ExceptionHandler' set_addr $P29, control_28 @@ -20603,7 +20576,7 @@ NQP::Compiler - NQP compiler set $P33, $P38 unless_34_end: if $P33, unless_32_end - .const 'Sub' $P40 = "14_1282016534.58916" + .const 'Sub' $P40 = "14_1282324007.53935" capture_lex $P40 $P40() unless_32_end: @@ -20620,9 +20593,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block39" :anon :subid("14_1282016534.58916") :outer("13_1282016534.58916") +.sub "_block39" :anon :subid("14_1282324007.53935") :outer("13_1282324007.53935") .annotate 'line', 16 - .const 'Sub' $P51 = "15_1282016534.58916" + .const 'Sub' $P51 = "15_1282324007.53935" capture_lex $P51 .annotate 'line', 17 new $P41, "Undef" @@ -20645,7 +20618,7 @@ NQP::Compiler - NQP compiler unless $P45, loop56_done shift $P49, $P45 loop56_redo: - .const 'Sub' $P51 = "15_1282016534.58916" + .const 'Sub' $P51 = "15_1282324007.53935" capture_lex $P51 $P51($P49) loop56_next: @@ -20668,7 +20641,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block50" :anon :subid("15_1282016534.58916") :outer("14_1282016534.58916") +.sub "_block50" :anon :subid("15_1282324007.53935") :outer("14_1282324007.53935") .param pmc param_52 .annotate 'line', 18 .lex "$_", param_52 @@ -20681,7 +20654,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "vivitype" :subid("16_1282016534.58916") :outer("11_1282016534.58916") +.sub "vivitype" :subid("16_1282324007.53935") :outer("11_1282324007.53935") .param pmc param_66 .annotate 'line', 24 new $P65, 'ExceptionHandler' @@ -20730,7 +20703,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "colonpair_str" :subid("17_1282016534.58916") :outer("11_1282016534.58916") +.sub "colonpair_str" :subid("17_1282324007.53935") :outer("11_1282324007.53935") .param pmc param_87 .annotate 'line', 43 new $P86, 'ExceptionHandler' @@ -20769,7 +20742,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "push_block_handler" :subid("18_1282016534.58916") :outer("11_1282016534.58916") +.sub "push_block_handler" :subid("18_1282324007.53935") :outer("11_1282324007.53935") .param pmc param_103 .param pmc param_104 .annotate 'line', 223 @@ -20887,7 +20860,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "control" :subid("19_1282016534.58916") :outer("11_1282016534.58916") +.sub "control" :subid("19_1282324007.53935") :outer("11_1282324007.53935") .param pmc param_154 .param pmc param_155 .annotate 'line', 835 @@ -20920,7 +20893,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "TOP" :subid("20_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "TOP" :subid("20_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_173 .annotate 'line', 33 new $P172, 'ExceptionHandler' @@ -20951,7 +20924,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "deflongname" :subid("21_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "deflongname" :subid("21_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_183 .annotate 'line', 35 new $P182, 'ExceptionHandler' @@ -21041,7 +21014,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "comp_unit" :subid("22_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "comp_unit" :subid("22_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_216 .annotate 'line', 49 new $P215, 'ExceptionHandler' @@ -21116,10 +21089,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statementlist" :subid("23_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statementlist" :subid("23_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_248 .annotate 'line', 76 - .const 'Sub' $P262 = "24_1282016534.58916" + .const 'Sub' $P262 = "24_1282324007.53935" capture_lex $P262 new $P247, 'ExceptionHandler' set_addr $P247, control_246 @@ -21164,7 +21137,7 @@ NQP::Compiler - NQP compiler unless $P256, loop281_done shift $P260, $P256 loop281_redo: - .const 'Sub' $P262 = "24_1282016534.58916" + .const 'Sub' $P262 = "24_1282324007.53935" capture_lex $P262 $P262($P260) loop281_next: @@ -21194,7 +21167,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block261" :anon :subid("24_1282016534.58916") :outer("23_1282016534.58916") +.sub "_block261" :anon :subid("24_1282324007.53935") :outer("23_1282324007.53935") .param pmc param_264 .annotate 'line', 80 new $P263, "Undef" @@ -21249,12 +21222,12 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement" :subid("25_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement" :subid("25_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_291 .param pmc param_292 :optional .param int has_param_292 :opt_flag .annotate 'line', 89 - .const 'Sub' $P300 = "26_1282016534.58916" + .const 'Sub' $P300 = "26_1282324007.53935" capture_lex $P300 new $P290, 'ExceptionHandler' set_addr $P290, control_289 @@ -21313,7 +21286,7 @@ NQP::Compiler - NQP compiler goto if_296_end if_296: .annotate 'line', 91 - .const 'Sub' $P300 = "26_1282016534.58916" + .const 'Sub' $P300 = "26_1282324007.53935" capture_lex $P300 $P300() if_296_end: @@ -21332,7 +21305,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block299" :anon :subid("26_1282016534.58916") :outer("25_1282016534.58916") +.sub "_block299" :anon :subid("26_1282324007.53935") :outer("25_1282324007.53935") .annotate 'line', 92 new $P301, "Undef" .lex "$mc", $P301 @@ -21505,7 +21478,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "xblock" :subid("27_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "xblock" :subid("27_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_374 .annotate 'line', 117 new $P373, 'ExceptionHandler' @@ -21550,7 +21523,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "pblock" :subid("28_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "pblock" :subid("28_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_390 .annotate 'line', 121 new $P389, 'ExceptionHandler' @@ -21583,7 +21556,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "block" :subid("29_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "block" :subid("29_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_400 .annotate 'line', 125 new $P399, 'ExceptionHandler' @@ -21616,7 +21589,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "blockoid" :subid("30_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "blockoid" :subid("30_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_410 .annotate 'line', 129 new $P409, 'ExceptionHandler' @@ -21673,7 +21646,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "newpad" :subid("31_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "newpad" :subid("31_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_430 .annotate 'line', 138 new $P429, 'ExceptionHandler' @@ -21709,7 +21682,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "outerctx" :subid("32_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "outerctx" :subid("32_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_443 .annotate 'line', 143 new $P442, 'ExceptionHandler' @@ -21749,10 +21722,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("33_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_control:sym" :subid("33_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_454 .annotate 'line', 150 - .const 'Sub' $P482 = "34_1282016534.58916" + .const 'Sub' $P482 = "34_1282324007.53935" capture_lex $P482 new $P453, 'ExceptionHandler' set_addr $P453, control_452 @@ -21837,7 +21810,7 @@ NQP::Compiler - NQP compiler isgt $I480, $N479, 0.0 unless $I480, loop497_done loop497_redo: - .const 'Sub' $P482 = "34_1282016534.58916" + .const 'Sub' $P482 = "34_1282324007.53935" capture_lex $P482 $P482() loop497_next: @@ -21865,7 +21838,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block481" :anon :subid("34_1282016534.58916") :outer("33_1282016534.58916") +.sub "_block481" :anon :subid("34_1282324007.53935") :outer("33_1282324007.53935") .annotate 'line', 159 new $P483, "Undef" .lex "$else", $P483 @@ -21905,7 +21878,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("35_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_control:sym" :subid("35_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_507 .annotate 'line', 166 new $P506, 'ExceptionHandler' @@ -21947,7 +21920,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("36_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_control:sym" :subid("36_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_521 .annotate 'line', 172 new $P520, 'ExceptionHandler' @@ -21998,7 +21971,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("37_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_control:sym" :subid("37_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_538 .annotate 'line', 178 new $P537, 'ExceptionHandler' @@ -22099,7 +22072,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("38_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_control:sym" :subid("38_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_574 .annotate 'line', 192 new $P573, 'ExceptionHandler' @@ -22180,7 +22153,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("39_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_control:sym" :subid("39_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_600 .annotate 'line', 205 new $P599, 'ExceptionHandler' @@ -22216,7 +22189,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("40_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_control:sym" :subid("40_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_613 .annotate 'line', 209 new $P612, 'ExceptionHandler' @@ -22275,7 +22248,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_control:sym" :subid("41_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_control:sym" :subid("41_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_633 .annotate 'line', 216 new $P632, 'ExceptionHandler' @@ -22334,7 +22307,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_prefix:sym" :subid("42_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_prefix:sym" :subid("42_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_654 .annotate 'line', 260 new $P653, 'ExceptionHandler' @@ -22381,7 +22354,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_prefix:sym" :subid("43_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_prefix:sym" :subid("43_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_670 .annotate 'line', 265 new $P669, 'ExceptionHandler' @@ -22459,7 +22432,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "blorst" :subid("44_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "blorst" :subid("44_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_705 .annotate 'line', 288 new $P704, 'ExceptionHandler' @@ -22519,7 +22492,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_mod_cond:sym" :subid("45_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_mod_cond:sym" :subid("45_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_723 .annotate 'line', 296 new $P722, 'ExceptionHandler' @@ -22550,7 +22523,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_mod_cond:sym" :subid("46_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_mod_cond:sym" :subid("46_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_733 .annotate 'line', 297 new $P732, 'ExceptionHandler' @@ -22581,7 +22554,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_mod_loop:sym" :subid("47_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_mod_loop:sym" :subid("47_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_743 .annotate 'line', 299 new $P742, 'ExceptionHandler' @@ -22612,7 +22585,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "statement_mod_loop:sym" :subid("48_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "statement_mod_loop:sym" :subid("48_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_753 .annotate 'line', 300 new $P752, 'ExceptionHandler' @@ -22643,7 +22616,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("49_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("49_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_763 .annotate 'line', 304 new $P762, 'ExceptionHandler' @@ -22674,7 +22647,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("50_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("50_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_773 .annotate 'line', 305 new $P772, 'ExceptionHandler' @@ -22705,7 +22678,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("51_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("51_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_783 .annotate 'line', 306 new $P782, 'ExceptionHandler' @@ -22736,7 +22709,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("52_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("52_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_793 .annotate 'line', 307 new $P792, 'ExceptionHandler' @@ -22767,7 +22740,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("53_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("53_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_803 .annotate 'line', 308 new $P802, 'ExceptionHandler' @@ -22798,7 +22771,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("54_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("54_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_813 .annotate 'line', 309 new $P812, 'ExceptionHandler' @@ -22829,7 +22802,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("55_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("55_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_823 .annotate 'line', 310 new $P822, 'ExceptionHandler' @@ -22860,7 +22833,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("56_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("56_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_833 .annotate 'line', 311 new $P832, 'ExceptionHandler' @@ -22891,7 +22864,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("57_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("57_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_843 .annotate 'line', 312 new $P842, 'ExceptionHandler' @@ -22922,7 +22895,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "fatarrow" :subid("58_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "fatarrow" :subid("58_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_853 .annotate 'line', 314 new $P852, 'ExceptionHandler' @@ -22972,7 +22945,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "colonpair" :subid("59_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "colonpair" :subid("59_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_869 .annotate 'line', 320 new $P868, 'ExceptionHandler' @@ -23054,10 +23027,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "variable" :subid("60_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "variable" :subid("60_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_895 .annotate 'line', 328 - .const 'Sub' $P908 = "61_1282016534.58916" + .const 'Sub' $P908 = "61_1282324007.53935" capture_lex $P908 new $P894, 'ExceptionHandler' set_addr $P894, control_893 @@ -23081,7 +23054,7 @@ NQP::Compiler - NQP compiler vivify_325: if $P900, if_898 .annotate 'line', 334 - .const 'Sub' $P908 = "61_1282016534.58916" + .const 'Sub' $P908 = "61_1282324007.53935" capture_lex $P908 $P908() goto if_898_end @@ -23118,7 +23091,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block907" :anon :subid("61_1282016534.58916") :outer("60_1282016534.58916") +.sub "_block907" :anon :subid("61_1282324007.53935") :outer("60_1282324007.53935") .annotate 'line', 335 $P909 = root_new ['parrot';'ResizablePMCArray'] .lex "@name", $P909 @@ -23288,7 +23261,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "package_declarator:sym" :subid("62_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "package_declarator:sym" :subid("62_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_984 .annotate 'line', 366 new $P983, 'ExceptionHandler' @@ -23319,7 +23292,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "package_declarator:sym" :subid("63_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "package_declarator:sym" :subid("63_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_994 .annotate 'line', 367 new $P993, 'ExceptionHandler' @@ -23477,7 +23450,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "package_def" :subid("64_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "package_def" :subid("64_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1047 .annotate 'line', 390 new $P1046, 'ExceptionHandler' @@ -23556,7 +23529,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "scope_declarator:sym" :subid("65_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "scope_declarator:sym" :subid("65_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1071 .annotate 'line', 397 new $P1070, 'ExceptionHandler' @@ -23587,7 +23560,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "scope_declarator:sym" :subid("66_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "scope_declarator:sym" :subid("66_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1081 .annotate 'line', 398 new $P1080, 'ExceptionHandler' @@ -23618,7 +23591,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "scope_declarator:sym" :subid("67_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "scope_declarator:sym" :subid("67_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1091 .annotate 'line', 399 new $P1090, 'ExceptionHandler' @@ -23649,7 +23622,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "scoped" :subid("68_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "scoped" :subid("68_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1101 .annotate 'line', 401 new $P1100, 'ExceptionHandler' @@ -23708,7 +23681,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "declarator" :subid("69_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "declarator" :subid("69_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1118 .annotate 'line', 407 new $P1117, 'ExceptionHandler' @@ -23767,7 +23740,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "multi_declarator:sym" :subid("70_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "multi_declarator:sym" :subid("70_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1135 .annotate 'line', 413 new $P1134, 'ExceptionHandler' @@ -23821,7 +23794,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "multi_declarator:sym" :subid("71_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "multi_declarator:sym" :subid("71_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1152 .annotate 'line', 414 new $P1151, 'ExceptionHandler' @@ -23852,10 +23825,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "variable_declarator" :subid("72_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "variable_declarator" :subid("72_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1162 .annotate 'line', 417 - .const 'Sub' $P1202 = "73_1282016534.58916" + .const 'Sub' $P1202 = "73_1282324007.53935" capture_lex $P1202 new $P1161, 'ExceptionHandler' set_addr $P1161, control_1160 @@ -23937,7 +23910,7 @@ NQP::Compiler - NQP compiler iseq $I1187, $S1186, "has" if $I1187, if_1184 .annotate 'line', 434 - .const 'Sub' $P1202 = "73_1282016534.58916" + .const 'Sub' $P1202 = "73_1282324007.53935" capture_lex $P1202 $P1202() goto if_1184_end @@ -23997,7 +23970,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1201" :anon :subid("73_1282016534.58916") :outer("72_1282016534.58916") +.sub "_block1201" :anon :subid("73_1282324007.53935") :outer("72_1282324007.53935") .annotate 'line', 435 new $P1203, "Undef" .lex "$scope", $P1203 @@ -24059,7 +24032,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "routine_declarator:sym" :subid("74_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "routine_declarator:sym" :subid("74_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1233 .annotate 'line', 445 new $P1232, 'ExceptionHandler' @@ -24090,7 +24063,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "routine_declarator:sym" :subid("75_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "routine_declarator:sym" :subid("75_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1243 .annotate 'line', 446 new $P1242, 'ExceptionHandler' @@ -24121,10 +24094,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "routine_def" :subid("76_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "routine_def" :subid("76_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1253 .annotate 'line', 448 - .const 'Sub' $P1264 = "77_1282016534.58916" + .const 'Sub' $P1264 = "77_1282324007.53935" capture_lex $P1264 new $P1252, 'ExceptionHandler' set_addr $P1252, control_1251 @@ -24161,7 +24134,7 @@ NQP::Compiler - NQP compiler new $P1262, "Undef" vivify_423: unless $P1262, if_1260_end - .const 'Sub' $P1264 = "77_1282016534.58916" + .const 'Sub' $P1264 = "77_1282324007.53935" capture_lex $P1264 $P1264() if_1260_end: @@ -24180,7 +24153,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1263" :anon :subid("77_1282016534.58916") :outer("76_1282016534.58916") +.sub "_block1263" :anon :subid("77_1282324007.53935") :outer("76_1282324007.53935") .annotate 'line', 453 new $P1265, "Undef" .lex "$name", $P1265 @@ -24277,10 +24250,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "method_def" :subid("78_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "method_def" :subid("78_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1303 .annotate 'line', 466 - .const 'Sub' $P1324 = "79_1282016534.58916" + .const 'Sub' $P1324 = "79_1282324007.53935" capture_lex $P1324 new $P1302, 'ExceptionHandler' set_addr $P1302, control_1301 @@ -24347,7 +24320,7 @@ NQP::Compiler - NQP compiler new $P1322, "Undef" vivify_444: unless $P1322, if_1320_end - .const 'Sub' $P1324 = "79_1282016534.58916" + .const 'Sub' $P1324 = "79_1282324007.53935" capture_lex $P1324 $P1324() if_1320_end: @@ -24381,7 +24354,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1323" :anon :subid("79_1282016534.58916") :outer("78_1282016534.58916") +.sub "_block1323" :anon :subid("79_1282324007.53935") :outer("78_1282324007.53935") .annotate 'line', 476 new $P1325, "Undef" .lex "$name", $P1325 @@ -24413,12 +24386,12 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "signature" :subid("80_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "signature" :subid("80_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1348 .annotate 'line', 484 - .const 'Sub' $P1374 = "82_1282016534.58916" + .const 'Sub' $P1374 = "82_1282324007.53935" capture_lex $P1374 - .const 'Sub' $P1359 = "81_1282016534.58916" + .const 'Sub' $P1359 = "81_1282324007.53935" capture_lex $P1359 new $P1347, 'ExceptionHandler' set_addr $P1347, control_1346 @@ -24462,7 +24435,7 @@ NQP::Compiler - NQP compiler unless $P1353, loop1365_done shift $P1357, $P1353 loop1365_redo: - .const 'Sub' $P1359 = "81_1282016534.58916" + .const 'Sub' $P1359 = "81_1282324007.53935" capture_lex $P1359 $P1359($P1357) loop1365_next: @@ -24491,7 +24464,7 @@ NQP::Compiler - NQP compiler set $P1368, $I1372 goto if_1369_end if_1369: - .const 'Sub' $P1374 = "82_1282016534.58916" + .const 'Sub' $P1374 = "82_1282324007.53935" capture_lex $P1374 $P1400 = $P1374() set $P1368, $P1400 @@ -24507,7 +24480,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1358" :anon :subid("81_1282016534.58916") :outer("80_1282016534.58916") +.sub "_block1358" :anon :subid("81_1282324007.53935") :outer("80_1282324007.53935") .param pmc param_1360 .annotate 'line', 487 .lex "$_", param_1360 @@ -24521,9 +24494,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block1373" :anon :subid("82_1282016534.58916") :outer("80_1282016534.58916") +.sub "_block1373" :anon :subid("82_1282324007.53935") :outer("80_1282324007.53935") .annotate 'line', 490 - .const 'Sub' $P1383 = "83_1282016534.58916" + .const 'Sub' $P1383 = "83_1282324007.53935" capture_lex $P1383 .annotate 'line', 491 $P1375 = root_new ['parrot';'ResizablePMCArray'] @@ -24544,7 +24517,7 @@ NQP::Compiler - NQP compiler unless $P1377, loop1393_done shift $P1381, $P1377 loop1393_redo: - .const 'Sub' $P1383 = "83_1282016534.58916" + .const 'Sub' $P1383 = "83_1282324007.53935" capture_lex $P1383 $P1383($P1381) loop1393_next: @@ -24575,7 +24548,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1382" :anon :subid("83_1282016534.58916") :outer("82_1282016534.58916") +.sub "_block1382" :anon :subid("83_1282324007.53935") :outer("82_1282324007.53935") .param pmc param_1384 .annotate 'line', 492 .lex "$_", param_1384 @@ -24598,10 +24571,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "parameter" :subid("84_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "parameter" :subid("84_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1405 .annotate 'line', 499 - .const 'Sub' $P1486 = "85_1282016534.58916" + .const 'Sub' $P1486 = "85_1282324007.53935" capture_lex $P1486 new $P1404, 'ExceptionHandler' set_addr $P1404, control_1403 @@ -24827,7 +24800,7 @@ NQP::Compiler - NQP compiler new $P1484, "Undef" vivify_490: unless $P1484, if_1482_end - .const 'Sub' $P1486 = "85_1282016534.58916" + .const 'Sub' $P1486 = "85_1282324007.53935" capture_lex $P1486 $P1486() if_1482_end: @@ -24847,9 +24820,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block1485" :anon :subid("85_1282016534.58916") :outer("84_1282016534.58916") +.sub "_block1485" :anon :subid("85_1282324007.53935") :outer("84_1282324007.53935") .annotate 'line', 530 - .const 'Sub' $P1498 = "86_1282016534.58916" + .const 'Sub' $P1498 = "86_1282324007.53935" capture_lex $P1498 .annotate 'line', 531 $P1487 = root_new ['parrot';'ResizablePMCArray'] @@ -24888,7 +24861,7 @@ NQP::Compiler - NQP compiler unless $P1489, loop1504_done shift $P1496, $P1489 loop1504_redo: - .const 'Sub' $P1498 = "86_1282016534.58916" + .const 'Sub' $P1498 = "86_1282324007.53935" capture_lex $P1498 $P1498($P1496) loop1504_next: @@ -24912,7 +24885,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1497" :anon :subid("86_1282016534.58916") :outer("85_1282016534.58916") +.sub "_block1497" :anon :subid("86_1282324007.53935") :outer("85_1282324007.53935") .param pmc param_1499 .annotate 'line', 532 .lex "$_", param_1499 @@ -24926,7 +24899,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "param_var" :subid("87_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "param_var" :subid("87_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1517 .annotate 'line', 539 new $P1516, 'ExceptionHandler' @@ -24980,7 +24953,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "named_param" :subid("88_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "named_param" :subid("88_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1537 .annotate 'line', 547 new $P1536, 'ExceptionHandler' @@ -25034,14 +25007,14 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "regex_declarator" :subid("89_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "regex_declarator" :subid("89_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1554 .param pmc param_1555 :optional .param int has_param_1555 :opt_flag .annotate 'line', 553 - .const 'Sub' $P1625 = "91_1282016534.58916" + .const 'Sub' $P1625 = "91_1282324007.53935" capture_lex $P1625 - .const 'Sub' $P1597 = "90_1282016534.58916" + .const 'Sub' $P1597 = "90_1282324007.53935" capture_lex $P1597 new $P1553, 'ExceptionHandler' set_addr $P1553, control_1552 @@ -25099,13 +25072,13 @@ NQP::Compiler - NQP compiler iseq $I1595, $S1594, "open" if $I1595, if_1592 .annotate 'line', 599 - .const 'Sub' $P1625 = "91_1282016534.58916" + .const 'Sub' $P1625 = "91_1282324007.53935" capture_lex $P1625 $P1625() goto if_1592_end if_1592: .annotate 'line', 586 - .const 'Sub' $P1597 = "90_1282016534.58916" + .const 'Sub' $P1597 = "90_1282324007.53935" capture_lex $P1597 $P1597() if_1592_end: @@ -25162,7 +25135,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1624" :anon :subid("91_1282016534.58916") :outer("89_1282016534.58916") +.sub "_block1624" :anon :subid("91_1282324007.53935") :outer("89_1282324007.53935") .annotate 'line', 600 new $P1626, "Undef" .lex "$regex", $P1626 @@ -25214,7 +25187,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block1596" :anon :subid("90_1282016534.58916") :outer("89_1282016534.58916") +.sub "_block1596" :anon :subid("90_1282324007.53935") :outer("89_1282324007.53935") .annotate 'line', 587 $P1598 = root_new ['parrot';'Hash'] .lex "%h", $P1598 @@ -25313,7 +25286,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "dotty" :subid("92_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "dotty" :subid("92_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1653 .annotate 'line', 617 new $P1652, 'ExceptionHandler' @@ -25411,7 +25384,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("93_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("93_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1685 .annotate 'line', 626 new $P1684, 'ExceptionHandler' @@ -25437,7 +25410,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("94_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("94_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1694 .annotate 'line', 630 new $P1693, 'ExceptionHandler' @@ -25487,7 +25460,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("95_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("95_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1710 .annotate 'line', 636 new $P1709, 'ExceptionHandler' @@ -25606,7 +25579,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("96_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("96_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1752 .annotate 'line', 650 new $P1751, 'ExceptionHandler' @@ -25698,7 +25671,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "args" :subid("97_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "args" :subid("97_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1781 .annotate 'line', 665 new $P1780, 'ExceptionHandler' @@ -25729,10 +25702,10 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "arglist" :subid("98_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "arglist" :subid("98_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1791 .annotate 'line', 667 - .const 'Sub' $P1802 = "99_1282016534.58916" + .const 'Sub' $P1802 = "99_1282324007.53935" capture_lex $P1802 new $P1790, 'ExceptionHandler' set_addr $P1790, control_1789 @@ -25764,7 +25737,7 @@ NQP::Compiler - NQP compiler new $P1800, "Undef" vivify_558: unless $P1800, if_1798_end - .const 'Sub' $P1802 = "99_1282016534.58916" + .const 'Sub' $P1802 = "99_1282324007.53935" capture_lex $P1802 $P1802() if_1798_end: @@ -25921,9 +25894,9 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "_block1801" :anon :subid("99_1282016534.58916") :outer("98_1282016534.58916") +.sub "_block1801" :anon :subid("99_1282324007.53935") :outer("98_1282324007.53935") .annotate 'line', 669 - .const 'Sub' $P1823 = "100_1282016534.58916" + .const 'Sub' $P1823 = "100_1282324007.53935" capture_lex $P1823 .annotate 'line', 670 new $P1803, "Undef" @@ -25976,7 +25949,7 @@ NQP::Compiler - NQP compiler unless $P1817, loop1828_done shift $P1821, $P1817 loop1828_redo: - .const 'Sub' $P1823 = "100_1282016534.58916" + .const 'Sub' $P1823 = "100_1282324007.53935" capture_lex $P1823 $P1823($P1821) loop1828_next: @@ -25999,7 +25972,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block1822" :anon :subid("100_1282016534.58916") :outer("99_1282016534.58916") +.sub "_block1822" :anon :subid("100_1282324007.53935") :outer("99_1282324007.53935") .param pmc param_1824 .annotate 'line', 672 .lex "$_", param_1824 @@ -26012,7 +25985,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("101_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("101_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1895 .annotate 'line', 693 new $P1894, 'ExceptionHandler' @@ -26043,7 +26016,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym<( )>" :subid("102_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "circumfix:sym<( )>" :subid("102_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1905 .annotate 'line', 695 new $P1904, 'ExceptionHandler' @@ -26100,7 +26073,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym<[ ]>" :subid("103_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "circumfix:sym<[ ]>" :subid("103_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1923 .annotate 'line', 701 new $P1922, 'ExceptionHandler' @@ -26177,7 +26150,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym" :subid("104_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "circumfix:sym" :subid("104_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1950 .annotate 'line', 716 new $P1949, 'ExceptionHandler' @@ -26208,7 +26181,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("105_1282016534.58916") :method :outer("11_1282016534.58916") +.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("105_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1960 .annotate 'line', 717 new $P1959, 'ExceptionHandler' @@ -26239,7 +26212,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym<{ }>" :subid("106_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "circumfix:sym<{ }>" :subid("106_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1970 .annotate 'line', 719 new $P1969, 'ExceptionHandler' @@ -26318,7 +26291,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "circumfix:sym" :subid("107_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "circumfix:sym" :subid("107_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_1994 .annotate 'line', 727 new $P1993, 'ExceptionHandler' @@ -26398,7 +26371,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "semilist" :subid("108_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "semilist" :subid("108_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2023 .annotate 'line', 734 new $P2022, 'ExceptionHandler' @@ -26429,7 +26402,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postcircumfix:sym<[ ]>" :subid("109_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "postcircumfix:sym<[ ]>" :subid("109_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2033 .annotate 'line', 736 new $P2032, 'ExceptionHandler' @@ -26467,7 +26440,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postcircumfix:sym<{ }>" :subid("110_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "postcircumfix:sym<{ }>" :subid("110_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2046 .annotate 'line', 742 new $P2045, 'ExceptionHandler' @@ -26505,7 +26478,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postcircumfix:sym" :subid("111_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "postcircumfix:sym" :subid("111_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2059 .annotate 'line', 748 new $P2058, 'ExceptionHandler' @@ -26543,7 +26516,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postcircumfix:sym<( )>" :subid("112_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "postcircumfix:sym<( )>" :subid("112_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2072 .annotate 'line', 754 new $P2071, 'ExceptionHandler' @@ -26576,7 +26549,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "value" :subid("113_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "value" :subid("113_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2082 .annotate 'line', 758 new $P2081, 'ExceptionHandler' @@ -26632,7 +26605,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "number" :subid("114_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "number" :subid("114_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2099 .annotate 'line', 762 new $P2098, 'ExceptionHandler' @@ -26711,7 +26684,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("115_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote:sym" :subid("115_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2127 .annotate 'line', 768 new $P2126, 'ExceptionHandler' @@ -26742,7 +26715,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("116_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote:sym" :subid("116_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2137 .annotate 'line', 769 new $P2136, 'ExceptionHandler' @@ -26773,7 +26746,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("117_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote:sym" :subid("117_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2147 .annotate 'line', 770 new $P2146, 'ExceptionHandler' @@ -26804,7 +26777,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("118_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote:sym" :subid("118_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2157 .annotate 'line', 771 new $P2156, 'ExceptionHandler' @@ -26835,7 +26808,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("119_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote:sym" :subid("119_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2167 .annotate 'line', 772 new $P2166, 'ExceptionHandler' @@ -26866,7 +26839,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("120_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote:sym" :subid("120_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2177 .annotate 'line', 773 new $P2176, 'ExceptionHandler' @@ -26903,7 +26876,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote:sym" :subid("121_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote:sym" :subid("121_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2191 .param pmc param_2192 :optional .param int has_param_2192 :opt_flag @@ -27013,7 +26986,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym<$>" :subid("122_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote_escape:sym<$>" :subid("122_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2228 .annotate 'line', 802 new $P2227, 'ExceptionHandler' @@ -27044,7 +27017,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym<{ }>" :subid("123_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote_escape:sym<{ }>" :subid("123_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2238 .annotate 'line', 803 new $P2237, 'ExceptionHandler' @@ -27083,7 +27056,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "quote_escape:sym" :subid("124_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "quote_escape:sym" :subid("124_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2252 .annotate 'line', 808 new $P2251, 'ExceptionHandler' @@ -27105,7 +27078,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postfix:sym<.>" :subid("125_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "postfix:sym<.>" :subid("125_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2259 .annotate 'line', 812 new $P2258, 'ExceptionHandler' @@ -27136,7 +27109,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postfix:sym<++>" :subid("126_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "postfix:sym<++>" :subid("126_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2269 .annotate 'line', 814 new $P2268, 'ExceptionHandler' @@ -27167,7 +27140,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "postfix:sym<-->" :subid("127_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "postfix:sym<-->" :subid("127_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2279 .annotate 'line', 820 new $P2278, 'ExceptionHandler' @@ -27198,7 +27171,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "prefix:sym" :subid("128_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "prefix:sym" :subid("128_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2289 .annotate 'line', 826 new $P2288, 'ExceptionHandler' @@ -27229,7 +27202,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("129_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("129_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2302 .annotate 'line', 844 new $P2301, 'ExceptionHandler' @@ -27251,7 +27224,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("130_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("130_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2309 .annotate 'line', 845 new $P2308, 'ExceptionHandler' @@ -27273,7 +27246,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "term:sym" :subid("131_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "term:sym" :subid("131_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2316 .annotate 'line', 846 new $P2315, 'ExceptionHandler' @@ -27295,7 +27268,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] .include "except_types.pasm" -.sub "infix:sym<~~>" :subid("132_1282016534.58916") :method :outer("11_1282016534.58916") +.sub "infix:sym<~~>" :subid("132_1282324007.53935") :method :outer("11_1282324007.53935") .param pmc param_2323 .annotate 'line', 848 new $P2322, 'ExceptionHandler' @@ -27321,24 +27294,24 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] -.sub "_block2330" :subid("133_1282016534.58916") :outer("11_1282016534.58916") +.sub "_block2330" :subid("133_1282324007.53935") :outer("11_1282324007.53935") .annotate 'line', 853 - .const 'Sub' $P2416 = "140_1282016534.58916" + .const 'Sub' $P2416 = "140_1282324007.53935" capture_lex $P2416 - .const 'Sub' $P2403 = "139_1282016534.58916" + .const 'Sub' $P2403 = "139_1282324007.53935" capture_lex $P2403 - .const 'Sub' $P2386 = "138_1282016534.58916" + .const 'Sub' $P2386 = "138_1282324007.53935" capture_lex $P2386 - .const 'Sub' $P2373 = "137_1282016534.58916" + .const 'Sub' $P2373 = "137_1282324007.53935" capture_lex $P2373 - .const 'Sub' $P2360 = "136_1282016534.58916" + .const 'Sub' $P2360 = "136_1282324007.53935" capture_lex $P2360 - .const 'Sub' $P2347 = "135_1282016534.58916" + .const 'Sub' $P2347 = "135_1282324007.53935" capture_lex $P2347 - .const 'Sub' $P2332 = "134_1282016534.58916" + .const 'Sub' $P2332 = "134_1282324007.53935" capture_lex $P2332 .annotate 'line', 887 - .const 'Sub' $P2416 = "140_1282016534.58916" + .const 'Sub' $P2416 = "140_1282324007.53935" newclosure $P2441, $P2416 .annotate 'line', 853 .return ($P2441) @@ -27347,7 +27320,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "metachar:sym<:my>" :subid("134_1282016534.58916") :method :outer("133_1282016534.58916") +.sub "metachar:sym<:my>" :subid("134_1282324007.53935") :method :outer("133_1282324007.53935") .param pmc param_2335 .annotate 'line', 855 new $P2334, 'ExceptionHandler' @@ -27388,7 +27361,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "metachar:sym<{ }>" :subid("135_1282016534.58916") :method :outer("133_1282016534.58916") +.sub "metachar:sym<{ }>" :subid("135_1282324007.53935") :method :outer("133_1282324007.53935") .param pmc param_2350 .annotate 'line', 861 new $P2349, 'ExceptionHandler' @@ -27424,7 +27397,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("136_1282016534.58916") :method :outer("133_1282016534.58916") +.sub "metachar:sym" :subid("136_1282324007.53935") :method :outer("133_1282324007.53935") .param pmc param_2363 .annotate 'line', 866 new $P2362, 'ExceptionHandler' @@ -27460,7 +27433,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "assertion:sym<{ }>" :subid("137_1282016534.58916") :method :outer("133_1282016534.58916") +.sub "assertion:sym<{ }>" :subid("137_1282324007.53935") :method :outer("133_1282324007.53935") .param pmc param_2376 .annotate 'line', 871 new $P2375, 'ExceptionHandler' @@ -27496,7 +27469,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("138_1282016534.58916") :method :outer("133_1282016534.58916") +.sub "assertion:sym" :subid("138_1282324007.53935") :method :outer("133_1282324007.53935") .param pmc param_2389 .annotate 'line', 876 new $P2388, 'ExceptionHandler' @@ -27544,7 +27517,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("139_1282016534.58916") :method :outer("133_1282016534.58916") +.sub "assertion:sym" :subid("139_1282324007.53935") :method :outer("133_1282324007.53935") .param pmc param_2406 .annotate 'line', 882 new $P2405, 'ExceptionHandler' @@ -27580,7 +27553,7 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"RegexActions"] .include "except_types.pasm" -.sub "codeblock" :subid("140_1282016534.58916") :method :outer("133_1282016534.58916") +.sub "codeblock" :subid("140_1282324007.53935") :method :outer("133_1282324007.53935") .param pmc param_2419 .annotate 'line', 887 new $P2418, 'ExceptionHandler' @@ -27644,18 +27617,18 @@ NQP::Compiler - NQP compiler .namespace ["NQP";"Actions"] -.sub "_block2443" :load :anon :subid("141_1282016534.58916") +.sub "_block2443" :load :anon :subid("141_1282324007.53935") .annotate 'line', 3 - .const 'Sub' $P2445 = "11_1282016534.58916" + .const 'Sub' $P2445 = "11_1282324007.53935" $P2446 = $P2445() .return ($P2446) .end .namespace [] -.sub "_block2453" :load :anon :subid("143_1282016534.58916") +.sub "_block2453" :load :anon :subid("143_1282324007.53935") .annotate 'line', 1 - .const 'Sub' $P2455 = "10_1282016534.58916" + .const 'Sub' $P2455 = "10_1282324007.53935" $P2456 = $P2455() .return ($P2456) .end diff --git a/ext/nqp-rx/src/stage0/P6Regex-s0.pir b/ext/nqp-rx/src/stage0/P6Regex-s0.pir index 5daa3d41f7..b100908044 100644 --- a/ext/nqp-rx/src/stage0/P6Regex-s0.pir +++ b/ext/nqp-rx/src/stage0/P6Regex-s0.pir @@ -16,7 +16,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes ### .include 'gen/p6regex-grammar.pir' .namespace [] -.sub "_block11" :anon :subid("10_1282016522.91354") +.sub "_block11" :anon :subid("10_1282323996.47527") .annotate 'line', 0 get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" capture_lex $P14 @@ -30,153 +30,155 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 3 get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" capture_lex $P14 - $P572 = $P14() + $P581 = $P14() .annotate 'line', 1 - .return ($P572) - .const 'Sub' $P574 = "161_1282016522.91354" - .return ($P574) + .return ($P581) + .const 'Sub' $P583 = "163_1282323996.47527" + .return ($P583) .end .namespace [] -.sub "" :load :init :subid("post162") :outer("10_1282016522.91354") +.sub "" :load :init :subid("post164") :outer("10_1282323996.47527") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1282016522.91354" + .const 'Sub' $P12 = "10_1282323996.47527" .local pmc block set block, $P12 - $P577 = get_root_global ["parrot"], "P6metaclass" - $P577."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent")) + $P586 = get_root_global ["parrot"], "P6metaclass" + $P586."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent")) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block13" :subid("11_1282016522.91354") :outer("10_1282016522.91354") +.sub "_block13" :subid("11_1282323996.47527") :outer("10_1282323996.47527") .annotate 'line', 3 - .const 'Sub' $P561 = "158_1282016522.91354" - capture_lex $P561 - .const 'Sub' $P554 = "156_1282016522.91354" - capture_lex $P554 - .const 'Sub' $P547 = "154_1282016522.91354" - capture_lex $P547 - .const 'Sub' $P527 = "149_1282016522.91354" - capture_lex $P527 - .const 'Sub' $P493 = "143_1282016522.91354" - capture_lex $P493 - .const 'Sub' $P481 = "140_1282016522.91354" - capture_lex $P481 - .const 'Sub' $P469 = "137_1282016522.91354" - capture_lex $P469 - .const 'Sub' $P463 = "135_1282016522.91354" - capture_lex $P463 - .const 'Sub' $P452 = "132_1282016522.91354" - capture_lex $P452 - .const 'Sub' $P441 = "129_1282016522.91354" + .const 'Sub' $P570 = "160_1282323996.47527" + capture_lex $P570 + .const 'Sub' $P563 = "158_1282323996.47527" + capture_lex $P563 + .const 'Sub' $P556 = "156_1282323996.47527" + capture_lex $P556 + .const 'Sub' $P536 = "151_1282323996.47527" + capture_lex $P536 + .const 'Sub' $P502 = "145_1282323996.47527" + capture_lex $P502 + .const 'Sub' $P490 = "142_1282323996.47527" + capture_lex $P490 + .const 'Sub' $P478 = "139_1282323996.47527" + capture_lex $P478 + .const 'Sub' $P472 = "137_1282323996.47527" + capture_lex $P472 + .const 'Sub' $P461 = "134_1282323996.47527" + capture_lex $P461 + .const 'Sub' $P450 = "131_1282323996.47527" + capture_lex $P450 + .const 'Sub' $P441 = "127_1282323996.47527" capture_lex $P441 - .const 'Sub' $P432 = "125_1282016522.91354" - capture_lex $P432 - .const 'Sub' $P426 = "123_1282016522.91354" - capture_lex $P426 - .const 'Sub' $P420 = "121_1282016522.91354" - capture_lex $P420 - .const 'Sub' $P414 = "119_1282016522.91354" - capture_lex $P414 - .const 'Sub' $P408 = "117_1282016522.91354" - capture_lex $P408 - .const 'Sub' $P400 = "115_1282016522.91354" - capture_lex $P400 - .const 'Sub' $P389 = "113_1282016522.91354" - capture_lex $P389 - .const 'Sub' $P378 = "111_1282016522.91354" - capture_lex $P378 - .const 'Sub' $P372 = "109_1282016522.91354" - capture_lex $P372 - .const 'Sub' $P366 = "107_1282016522.91354" - capture_lex $P366 - .const 'Sub' $P360 = "105_1282016522.91354" - capture_lex $P360 - .const 'Sub' $P354 = "103_1282016522.91354" - capture_lex $P354 - .const 'Sub' $P348 = "101_1282016522.91354" - capture_lex $P348 - .const 'Sub' $P342 = "99_1282016522.91354" - capture_lex $P342 - .const 'Sub' $P336 = "97_1282016522.91354" - capture_lex $P336 - .const 'Sub' $P330 = "95_1282016522.91354" - capture_lex $P330 - .const 'Sub' $P318 = "91_1282016522.91354" - capture_lex $P318 - .const 'Sub' $P308 = "89_1282016522.91354" - capture_lex $P308 - .const 'Sub' $P301 = "87_1282016522.91354" - capture_lex $P301 - .const 'Sub' $P289 = "85_1282016522.91354" - capture_lex $P289 - .const 'Sub' $P282 = "83_1282016522.91354" - capture_lex $P282 - .const 'Sub' $P276 = "81_1282016522.91354" - capture_lex $P276 - .const 'Sub' $P270 = "79_1282016522.91354" - capture_lex $P270 - .const 'Sub' $P263 = "77_1282016522.91354" - capture_lex $P263 - .const 'Sub' $P256 = "75_1282016522.91354" - capture_lex $P256 - .const 'Sub' $P249 = "73_1282016522.91354" - capture_lex $P249 - .const 'Sub' $P242 = "71_1282016522.91354" - capture_lex $P242 - .const 'Sub' $P236 = "69_1282016522.91354" - capture_lex $P236 - .const 'Sub' $P230 = "67_1282016522.91354" - capture_lex $P230 - .const 'Sub' $P224 = "65_1282016522.91354" - capture_lex $P224 - .const 'Sub' $P218 = "63_1282016522.91354" - capture_lex $P218 - .const 'Sub' $P212 = "61_1282016522.91354" - capture_lex $P212 - .const 'Sub' $P207 = "59_1282016522.91354" - capture_lex $P207 - .const 'Sub' $P202 = "57_1282016522.91354" - capture_lex $P202 - .const 'Sub' $P196 = "55_1282016522.91354" - capture_lex $P196 - .const 'Sub' $P190 = "53_1282016522.91354" - capture_lex $P190 - .const 'Sub' $P184 = "51_1282016522.91354" - capture_lex $P184 - .const 'Sub' $P169 = "46_1282016522.91354" - capture_lex $P169 - .const 'Sub' $P154 = "44_1282016522.91354" - capture_lex $P154 - .const 'Sub' $P147 = "42_1282016522.91354" - capture_lex $P147 - .const 'Sub' $P140 = "40_1282016522.91354" - capture_lex $P140 - .const 'Sub' $P133 = "38_1282016522.91354" - capture_lex $P133 - .const 'Sub' $P116 = "33_1282016522.91354" - capture_lex $P116 - .const 'Sub' $P104 = "30_1282016522.91354" - capture_lex $P104 - .const 'Sub' $P97 = "28_1282016522.91354" + .const 'Sub' $P435 = "125_1282323996.47527" + capture_lex $P435 + .const 'Sub' $P429 = "123_1282323996.47527" + capture_lex $P429 + .const 'Sub' $P423 = "121_1282323996.47527" + capture_lex $P423 + .const 'Sub' $P417 = "119_1282323996.47527" + capture_lex $P417 + .const 'Sub' $P409 = "117_1282323996.47527" + capture_lex $P409 + .const 'Sub' $P398 = "115_1282323996.47527" + capture_lex $P398 + .const 'Sub' $P387 = "113_1282323996.47527" + capture_lex $P387 + .const 'Sub' $P381 = "111_1282323996.47527" + capture_lex $P381 + .const 'Sub' $P375 = "109_1282323996.47527" + capture_lex $P375 + .const 'Sub' $P369 = "107_1282323996.47527" + capture_lex $P369 + .const 'Sub' $P363 = "105_1282323996.47527" + capture_lex $P363 + .const 'Sub' $P357 = "103_1282323996.47527" + capture_lex $P357 + .const 'Sub' $P351 = "101_1282323996.47527" + capture_lex $P351 + .const 'Sub' $P345 = "99_1282323996.47527" + capture_lex $P345 + .const 'Sub' $P339 = "97_1282323996.47527" + capture_lex $P339 + .const 'Sub' $P327 = "93_1282323996.47527" + capture_lex $P327 + .const 'Sub' $P317 = "91_1282323996.47527" + capture_lex $P317 + .const 'Sub' $P310 = "89_1282323996.47527" + capture_lex $P310 + .const 'Sub' $P298 = "87_1282323996.47527" + capture_lex $P298 + .const 'Sub' $P291 = "85_1282323996.47527" + capture_lex $P291 + .const 'Sub' $P285 = "83_1282323996.47527" + capture_lex $P285 + .const 'Sub' $P279 = "81_1282323996.47527" + capture_lex $P279 + .const 'Sub' $P272 = "79_1282323996.47527" + capture_lex $P272 + .const 'Sub' $P265 = "77_1282323996.47527" + capture_lex $P265 + .const 'Sub' $P258 = "75_1282323996.47527" + capture_lex $P258 + .const 'Sub' $P251 = "73_1282323996.47527" + capture_lex $P251 + .const 'Sub' $P245 = "71_1282323996.47527" + capture_lex $P245 + .const 'Sub' $P239 = "69_1282323996.47527" + capture_lex $P239 + .const 'Sub' $P233 = "67_1282323996.47527" + capture_lex $P233 + .const 'Sub' $P227 = "65_1282323996.47527" + capture_lex $P227 + .const 'Sub' $P221 = "63_1282323996.47527" + capture_lex $P221 + .const 'Sub' $P216 = "61_1282323996.47527" + capture_lex $P216 + .const 'Sub' $P211 = "59_1282323996.47527" + capture_lex $P211 + .const 'Sub' $P205 = "57_1282323996.47527" + capture_lex $P205 + .const 'Sub' $P199 = "55_1282323996.47527" + capture_lex $P199 + .const 'Sub' $P193 = "53_1282323996.47527" + capture_lex $P193 + .const 'Sub' $P178 = "48_1282323996.47527" + capture_lex $P178 + .const 'Sub' $P163 = "46_1282323996.47527" + capture_lex $P163 + .const 'Sub' $P156 = "44_1282323996.47527" + capture_lex $P156 + .const 'Sub' $P149 = "42_1282323996.47527" + capture_lex $P149 + .const 'Sub' $P142 = "40_1282323996.47527" + capture_lex $P142 + .const 'Sub' $P125 = "35_1282323996.47527" + capture_lex $P125 + .const 'Sub' $P113 = "32_1282323996.47527" + capture_lex $P113 + .const 'Sub' $P106 = "30_1282323996.47527" + capture_lex $P106 + .const 'Sub' $P97 = "28_1282323996.47527" capture_lex $P97 - .const 'Sub' $P87 = "26_1282016522.91354" + .const 'Sub' $P87 = "26_1282323996.47527" capture_lex $P87 - .const 'Sub' $P80 = "24_1282016522.91354" + .const 'Sub' $P80 = "24_1282323996.47527" capture_lex $P80 - .const 'Sub' $P68 = "22_1282016522.91354" + .const 'Sub' $P68 = "22_1282323996.47527" capture_lex $P68 - .const 'Sub' $P61 = "20_1282016522.91354" + .const 'Sub' $P61 = "20_1282323996.47527" capture_lex $P61 - .const 'Sub' $P54 = "18_1282016522.91354" + .const 'Sub' $P54 = "18_1282323996.47527" capture_lex $P54 - .const 'Sub' $P44 = "15_1282016522.91354" + .const 'Sub' $P44 = "15_1282323996.47527" capture_lex $P44 - .const 'Sub' $P37 = "13_1282016522.91354" + .const 'Sub' $P37 = "13_1282323996.47527" capture_lex $P37 - .const 'Sub' $P15 = "12_1282016522.91354" + .const 'Sub' $P15 = "12_1282323996.47527" capture_lex $P15 $P0 = find_dynamic_lex "$*CTXSAVE" if null $P0 goto ctxsave_done @@ -184,17 +186,17 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $I0 goto ctxsave_done $P0."ctxsave"() ctxsave_done: - .const 'Sub' $P561 = "158_1282016522.91354" - capture_lex $P561 - .return ($P561) - .const 'Sub' $P569 = "160_1282016522.91354" - .return ($P569) + .const 'Sub' $P570 = "160_1282323996.47527" + capture_lex $P570 + .return ($P570) + .const 'Sub' $P578 = "162_1282323996.47527" + .return ($P578) .end .namespace ["Regex";"P6Regex";"Grammar"] .include "except_types.pasm" -.sub "obs" :subid("12_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "obs" :subid("12_1282323996.47527") :method :outer("11_1282323996.47527") .param pmc param_18 .param pmc param_19 .param pmc param_20 :optional @@ -207,11 +209,11 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .lex "self", self .lex "$old", param_18 .lex "$new", param_19 - if has_param_20, optparam_163 + if has_param_20, optparam_165 new $P21, "String" assign $P21, "in Perl 6" set param_20, $P21 - optparam_163: + optparam_165: .lex "$when", param_20 .annotate 'line', 4 find_lex $P22, "self" @@ -241,7 +243,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "ws" :subid("13_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "ws" :subid("13_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 .local string rx38_tgt .local int rx38_pos @@ -263,9 +265,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx38_tgt, rx38_tgt, rx38_off rx38_start: eq $I10, 1, rx38_restart - if_null rx38_debug, debug_164 - rx38_cur."!cursor_debug"("START ", "ws") - debug_164: + if_null rx38_debug, debug_166 + rx38_cur."!cursor_debug"("START", "ws") + debug_166: $I10 = self.'from'() ne $I10, -1, rxscan41_done goto rxscan41_scan @@ -314,15 +316,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantr42_done: # rx pass rx38_cur."!cursor_pass"(rx38_pos, "ws") - if_null rx38_debug, debug_165 - rx38_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx38_pos) - debug_165: + if_null rx38_debug, debug_167 + rx38_cur."!cursor_debug"("PASS", "ws", " at pos=", rx38_pos) + debug_167: .return (rx38_cur) rx38_restart: .annotate 'line', 3 - if_null rx38_debug, debug_166 - rx38_cur."!cursor_debug"("NEXT ", "ws") - debug_166: + if_null rx38_debug, debug_168 + rx38_cur."!cursor_debug"("NEXT", "ws") + debug_168: rx38_fail: (rx38_rep, rx38_pos, $I10, $P10) = rx38_cur."!mark_fail"(0) lt rx38_pos, -1, rx38_done @@ -330,16 +332,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx38_done: rx38_cur."!cursor_fail"() - if_null rx38_debug, debug_167 - rx38_cur."!cursor_debug"("FAIL ", "ws") - debug_167: + if_null rx38_debug, debug_169 + rx38_cur."!cursor_debug"("FAIL", "ws") + debug_169: .return (rx38_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__ws" :subid("14_1282016522.91354") :method +.sub "!PREFIX__ws" :subid("14_1282323996.47527") :method .annotate 'line', 3 new $P40, "ResizablePMCArray" push $P40, "" @@ -348,9 +350,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "normspace" :subid("15_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "normspace" :subid("15_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .const 'Sub' $P50 = "17_1282016522.91354" + .const 'Sub' $P50 = "17_1282323996.47527" capture_lex $P50 .local string rx45_tgt .local int rx45_pos @@ -372,9 +374,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx45_tgt, rx45_tgt, rx45_off rx45_start: eq $I10, 1, rx45_restart - if_null rx45_debug, debug_168 - rx45_cur."!cursor_debug"("START ", "normspace") - debug_168: + if_null rx45_debug, debug_170 + rx45_cur."!cursor_debug"("START", "normspace") + debug_170: $I10 = self.'from'() ne $I10, -1, rxscan48_done goto rxscan48_scan @@ -390,7 +392,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 10 # rx subrule "before" subtype=zerowidth negate= rx45_cur."!cursor_pos"(rx45_pos) - .const 'Sub' $P50 = "17_1282016522.91354" + .const 'Sub' $P50 = "17_1282323996.47527" capture_lex $P50 $P10 = rx45_cur."before"($P50) unless $P10, rx45_fail @@ -401,15 +403,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx45_pos = $P10."pos"() # rx pass rx45_cur."!cursor_pass"(rx45_pos, "normspace") - if_null rx45_debug, debug_173 - rx45_cur."!cursor_debug"("PASS ", "normspace", " at pos=", rx45_pos) - debug_173: + if_null rx45_debug, debug_175 + rx45_cur."!cursor_debug"("PASS", "normspace", " at pos=", rx45_pos) + debug_175: .return (rx45_cur) rx45_restart: .annotate 'line', 3 - if_null rx45_debug, debug_174 - rx45_cur."!cursor_debug"("NEXT ", "normspace") - debug_174: + if_null rx45_debug, debug_176 + rx45_cur."!cursor_debug"("NEXT", "normspace") + debug_176: rx45_fail: (rx45_rep, rx45_pos, $I10, $P10) = rx45_cur."!mark_fail"(0) lt rx45_pos, -1, rx45_done @@ -417,16 +419,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx45_done: rx45_cur."!cursor_fail"() - if_null rx45_debug, debug_175 - rx45_cur."!cursor_debug"("FAIL ", "normspace") - debug_175: + if_null rx45_debug, debug_177 + rx45_cur."!cursor_debug"("FAIL", "normspace") + debug_177: .return (rx45_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__normspace" :subid("16_1282016522.91354") :method +.sub "!PREFIX__normspace" :subid("16_1282323996.47527") :method .annotate 'line', 3 new $P47, "ResizablePMCArray" push $P47, "" @@ -435,7 +437,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block49" :anon :subid("17_1282016522.91354") :method :outer("15_1282016522.91354") +.sub "_block49" :anon :subid("17_1282323996.47527") :method :outer("15_1282323996.47527") .annotate 'line', 10 .local string rx51_tgt .local int rx51_pos @@ -457,9 +459,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx51_tgt, rx51_tgt, rx51_off rx51_start: eq $I10, 1, rx51_restart - if_null rx51_debug, debug_169 - rx51_cur."!cursor_debug"("START ", "") - debug_169: + if_null rx51_debug, debug_171 + rx51_cur."!cursor_debug"("START", "") + debug_171: $I10 = self.'from'() ne $I10, -1, rxscan52_done goto rxscan52_scan @@ -493,14 +495,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes alt53_end: # rx pass rx51_cur."!cursor_pass"(rx51_pos, "") - if_null rx51_debug, debug_170 - rx51_cur."!cursor_debug"("PASS ", "", " at pos=", rx51_pos) - debug_170: + if_null rx51_debug, debug_172 + rx51_cur."!cursor_debug"("PASS", "", " at pos=", rx51_pos) + debug_172: .return (rx51_cur) rx51_restart: - if_null rx51_debug, debug_171 - rx51_cur."!cursor_debug"("NEXT ", "") - debug_171: + if_null rx51_debug, debug_173 + rx51_cur."!cursor_debug"("NEXT", "") + debug_173: rx51_fail: (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0) lt rx51_pos, -1, rx51_done @@ -508,16 +510,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx51_done: rx51_cur."!cursor_fail"() - if_null rx51_debug, debug_172 - rx51_cur."!cursor_debug"("FAIL ", "") - debug_172: + if_null rx51_debug, debug_174 + rx51_cur."!cursor_debug"("FAIL", "") + debug_174: .return (rx51_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "identifier" :subid("18_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "identifier" :subid("18_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 .local string rx55_tgt .local int rx55_pos @@ -539,9 +541,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx55_tgt, rx55_tgt, rx55_off rx55_start: eq $I10, 1, rx55_restart - if_null rx55_debug, debug_176 - rx55_cur."!cursor_debug"("START ", "identifier") - debug_176: + if_null rx55_debug, debug_178 + rx55_cur."!cursor_debug"("START", "identifier") + debug_178: $I10 = self.'from'() ne $I10, -1, rxscan59_done goto rxscan59_scan @@ -584,15 +586,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rxquantr60_done: # rx pass rx55_cur."!cursor_pass"(rx55_pos, "identifier") - if_null rx55_debug, debug_177 - rx55_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx55_pos) - debug_177: + if_null rx55_debug, debug_179 + rx55_cur."!cursor_debug"("PASS", "identifier", " at pos=", rx55_pos) + debug_179: .return (rx55_cur) rx55_restart: .annotate 'line', 3 - if_null rx55_debug, debug_178 - rx55_cur."!cursor_debug"("NEXT ", "identifier") - debug_178: + if_null rx55_debug, debug_180 + rx55_cur."!cursor_debug"("NEXT", "identifier") + debug_180: rx55_fail: (rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0) lt rx55_pos, -1, rx55_done @@ -600,16 +602,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx55_done: rx55_cur."!cursor_fail"() - if_null rx55_debug, debug_179 - rx55_cur."!cursor_debug"("FAIL ", "identifier") - debug_179: + if_null rx55_debug, debug_181 + rx55_cur."!cursor_debug"("FAIL", "identifier") + debug_181: .return (rx55_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__identifier" :subid("19_1282016522.91354") :method +.sub "!PREFIX__identifier" :subid("19_1282323996.47527") :method .annotate 'line', 3 $P57 = self."!PREFIX__!subrule"("ident", "") new $P58, "ResizablePMCArray" @@ -619,7 +621,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "arg" :subid("20_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "arg" :subid("20_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 .local string rx62_tgt .local int rx62_pos @@ -641,9 +643,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx62_tgt, rx62_tgt, rx62_off rx62_start: eq $I10, 1, rx62_restart - if_null rx62_debug, debug_180 - rx62_cur."!cursor_debug"("START ", "arg") - debug_180: + if_null rx62_debug, debug_182 + rx62_cur."!cursor_debug"("START", "arg") + debug_182: $I10 = self.'from'() ne $I10, -1, rxscan65_done goto rxscan65_scan @@ -719,15 +721,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 14 # rx pass rx62_cur."!cursor_pass"(rx62_pos, "arg") - if_null rx62_debug, debug_181 - rx62_cur."!cursor_debug"("PASS ", "arg", " at pos=", rx62_pos) - debug_181: + if_null rx62_debug, debug_183 + rx62_cur."!cursor_debug"("PASS", "arg", " at pos=", rx62_pos) + debug_183: .return (rx62_cur) rx62_restart: .annotate 'line', 3 - if_null rx62_debug, debug_182 - rx62_cur."!cursor_debug"("NEXT ", "arg") - debug_182: + if_null rx62_debug, debug_184 + rx62_cur."!cursor_debug"("NEXT", "arg") + debug_184: rx62_fail: (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0) lt rx62_pos, -1, rx62_done @@ -735,16 +737,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx62_done: rx62_cur."!cursor_fail"() - if_null rx62_debug, debug_183 - rx62_cur."!cursor_debug"("FAIL ", "arg") - debug_183: + if_null rx62_debug, debug_185 + rx62_cur."!cursor_debug"("FAIL", "arg") + debug_185: .return (rx62_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__arg" :subid("21_1282016522.91354") :method +.sub "!PREFIX__arg" :subid("21_1282323996.47527") :method .annotate 'line', 3 new $P64, "ResizablePMCArray" push $P64, "" @@ -755,7 +757,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "arglist" :subid("22_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "arglist" :subid("22_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 .local string rx69_tgt .local int rx69_pos @@ -778,9 +780,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx69_tgt, rx69_tgt, rx69_off rx69_start: eq $I10, 1, rx69_restart - if_null rx69_debug, debug_184 - rx69_cur."!cursor_debug"("START ", "arglist") - debug_184: + if_null rx69_debug, debug_186 + rx69_cur."!cursor_debug"("START", "arglist") + debug_186: $I10 = self.'from'() ne $I10, -1, rxscan73_done goto rxscan73_scan @@ -852,15 +854,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes rx69_pos = $P10."pos"() # rx pass rx69_cur."!cursor_pass"(rx69_pos, "arglist") - if_null rx69_debug, debug_185 - rx69_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx69_pos) - debug_185: + if_null rx69_debug, debug_187 + rx69_cur."!cursor_debug"("PASS", "arglist", " at pos=", rx69_pos) + debug_187: .return (rx69_cur) rx69_restart: .annotate 'line', 3 - if_null rx69_debug, debug_186 - rx69_cur."!cursor_debug"("NEXT ", "arglist") - debug_186: + if_null rx69_debug, debug_188 + rx69_cur."!cursor_debug"("NEXT", "arglist") + debug_188: rx69_fail: (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0) lt rx69_pos, -1, rx69_done @@ -868,16 +870,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx69_done: rx69_cur."!cursor_fail"() - if_null rx69_debug, debug_187 - rx69_cur."!cursor_debug"("FAIL ", "arglist") - debug_187: + if_null rx69_debug, debug_189 + rx69_cur."!cursor_debug"("FAIL", "arglist") + debug_189: .return (rx69_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__arglist" :subid("23_1282016522.91354") :method +.sub "!PREFIX__arglist" :subid("23_1282323996.47527") :method .annotate 'line', 3 $P71 = self."!PREFIX__!subrule"("ws", "") new $P72, "ResizablePMCArray" @@ -887,7 +889,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "TOP" :subid("24_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "TOP" :subid("24_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 .local string rx81_tgt .local int rx81_pos @@ -909,9 +911,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx81_tgt, rx81_tgt, rx81_off rx81_start: eq $I10, 1, rx81_restart - if_null rx81_debug, debug_188 - rx81_cur."!cursor_debug"("START ", "TOP") - debug_188: + if_null rx81_debug, debug_190 + rx81_cur."!cursor_debug"("START", "TOP") + debug_190: $I10 = self.'from'() ne $I10, -1, rxscan85_done goto rxscan85_scan @@ -949,15 +951,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 24 # rx pass rx81_cur."!cursor_pass"(rx81_pos, "TOP") - if_null rx81_debug, debug_189 - rx81_cur."!cursor_debug"("PASS ", "TOP", " at pos=", rx81_pos) - debug_189: + if_null rx81_debug, debug_191 + rx81_cur."!cursor_debug"("PASS", "TOP", " at pos=", rx81_pos) + debug_191: .return (rx81_cur) rx81_restart: .annotate 'line', 3 - if_null rx81_debug, debug_190 - rx81_cur."!cursor_debug"("NEXT ", "TOP") - debug_190: + if_null rx81_debug, debug_192 + rx81_cur."!cursor_debug"("NEXT", "TOP") + debug_192: rx81_fail: (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0) lt rx81_pos, -1, rx81_done @@ -965,16 +967,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx81_done: rx81_cur."!cursor_fail"() - if_null rx81_debug, debug_191 - rx81_cur."!cursor_debug"("FAIL ", "TOP") - debug_191: + if_null rx81_debug, debug_193 + rx81_cur."!cursor_debug"("FAIL", "TOP") + debug_193: .return (rx81_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__TOP" :subid("25_1282016522.91354") :method +.sub "!PREFIX__TOP" :subid("25_1282323996.47527") :method .annotate 'line', 3 $P83 = self."!PREFIX__!subrule"("nibbler", "") new $P84, "ResizablePMCArray" @@ -984,7 +986,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "nibbler" :subid("26_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "nibbler" :subid("26_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 .local string rx88_tgt .local int rx88_pos @@ -994,7 +996,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local pmc rx88_cur .local pmc rx88_debug (rx88_cur, rx88_pos, rx88_tgt, $I10) = self."!cursor_start"() - rx88_cur."!cursor_caparray"("termish") + rx88_cur."!cursor_caparray"("termconj") getattribute rx88_debug, rx88_cur, "$!debug" .lex unicode:"$\x{a2}", rx88_cur .local pmc match @@ -1007,9 +1009,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx88_tgt, rx88_tgt, rx88_off rx88_start: eq $I10, 1, rx88_restart - if_null rx88_debug, debug_192 - rx88_cur."!cursor_debug"("START ", "nibbler") - debug_192: + if_null rx88_debug, debug_194 + rx88_cur."!cursor_debug"("START", "nibbler") + debug_194: $I10 = self.'from'() ne $I10, -1, rxscan91_done goto rxscan91_scan @@ -1082,12 +1084,12 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes (rx88_rep) = rx88_cur."!mark_commit"($I10) rxquantr92_done: .annotate 'line', 32 - # rx subrule "termish" subtype=capture negate= + # rx subrule "termconj" subtype=capture negate= rx88_cur."!cursor_pos"(rx88_pos) - $P10 = rx88_cur."termish"() + $P10 = rx88_cur."termconj"() unless $P10, rx88_fail rx88_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("termish") + $P10."!cursor_names"("termconj") rx88_pos = $P10."pos"() .annotate 'line', 35 # rx rxquantr94 ** 0..* @@ -1119,12 +1121,12 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 34 set_addr $I10, alt96_1 rx88_cur."!mark_push"(0, rx88_pos, $I10) - # rx subrule "termish" subtype=capture negate= + # rx subrule "termconj" subtype=capture negate= rx88_cur."!cursor_pos"(rx88_pos) - $P10 = rx88_cur."termish"() + $P10 = rx88_cur."termconj"() unless $P10, rx88_fail rx88_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("termish") + $P10."!cursor_names"("termconj") rx88_pos = $P10."pos"() goto alt96_end alt96_1: @@ -1144,15 +1146,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 29 # rx pass rx88_cur."!cursor_pass"(rx88_pos, "nibbler") - if_null rx88_debug, debug_193 - rx88_cur."!cursor_debug"("PASS ", "nibbler", " at pos=", rx88_pos) - debug_193: + if_null rx88_debug, debug_195 + rx88_cur."!cursor_debug"("PASS", "nibbler", " at pos=", rx88_pos) + debug_195: .return (rx88_cur) rx88_restart: .annotate 'line', 3 - if_null rx88_debug, debug_194 - rx88_cur."!cursor_debug"("NEXT ", "nibbler") - debug_194: + if_null rx88_debug, debug_196 + rx88_cur."!cursor_debug"("NEXT", "nibbler") + debug_196: rx88_fail: (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0) lt rx88_pos, -1, rx88_done @@ -1160,16 +1162,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx88_done: rx88_cur."!cursor_fail"() - if_null rx88_debug, debug_195 - rx88_cur."!cursor_debug"("FAIL ", "nibbler") - debug_195: + if_null rx88_debug, debug_197 + rx88_cur."!cursor_debug"("FAIL", "nibbler") + debug_197: .return (rx88_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__nibbler" :subid("27_1282016522.91354") :method +.sub "!PREFIX__nibbler" :subid("27_1282323996.47527") :method .annotate 'line', 3 new $P90, "ResizablePMCArray" push $P90, "" @@ -1178,7 +1180,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Grammar"] -.sub "termish" :subid("28_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "termconj" :subid("28_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 .local string rx98_tgt .local int rx98_pos @@ -1188,7 +1190,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local pmc rx98_cur .local pmc rx98_debug (rx98_cur, rx98_pos, rx98_tgt, $I10) = self."!cursor_start"() - rx98_cur."!cursor_caparray"("noun") + rx98_cur."!cursor_caparray"("termish") getattribute rx98_debug, rx98_cur, "$!debug" .lex unicode:"$\x{a2}", rx98_cur .local pmc match @@ -1201,57 +1203,93 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx98_tgt, rx98_tgt, rx98_off rx98_start: eq $I10, 1, rx98_restart - if_null rx98_debug, debug_196 - rx98_cur."!cursor_debug"("START ", "termish") - debug_196: + if_null rx98_debug, debug_198 + rx98_cur."!cursor_debug"("START", "termconj") + debug_198: $I10 = self.'from'() - ne $I10, -1, rxscan101_done - goto rxscan101_scan - rxscan101_loop: + ne $I10, -1, rxscan102_done + goto rxscan102_scan + rxscan102_loop: ($P10) = rx98_cur."from"() inc $P10 set rx98_pos, $P10 - ge rx98_pos, rx98_eos, rxscan101_done - rxscan101_scan: - set_addr $I10, rxscan101_loop + ge rx98_pos, rx98_eos, rxscan102_done + rxscan102_scan: + set_addr $I10, rxscan102_loop rx98_cur."!mark_push"(0, rx98_pos, $I10) - rxscan101_done: + rxscan102_done: .annotate 'line', 39 - # rx rxquantr102 ** 1..* - set_addr $I10, rxquantr102_done - rx98_cur."!mark_push"(0, -1, $I10) - rxquantr102_loop: - # rx subrule "quantified_atom" subtype=capture negate= + # rx subrule "termish" subtype=capture negate= rx98_cur."!cursor_pos"(rx98_pos) - $P10 = rx98_cur."quantified_atom"() + $P10 = rx98_cur."termish"() unless $P10, rx98_fail - goto rxsubrule103_pass - rxsubrule103_back: - $P10 = $P10."!cursor_next"() + rx98_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("termish") + rx98_pos = $P10."pos"() +.annotate 'line', 42 + # rx rxquantr103 ** 0..* + set_addr $I10, rxquantr103_done + rx98_cur."!mark_push"(0, rx98_pos, $I10) + rxquantr103_loop: + alt104_0: +.annotate 'line', 40 + set_addr $I10, alt104_1 + rx98_cur."!mark_push"(0, rx98_pos, $I10) + # rx literal "&&" + add $I11, rx98_pos, 2 + gt $I11, rx98_eos, rx98_fail + sub $I11, rx98_pos, rx98_off + substr $S10, rx98_tgt, $I11, 2 + ne $S10, "&&", rx98_fail + add rx98_pos, 2 + goto alt104_end + alt104_1: + # rx literal "&" + add $I11, rx98_pos, 1 + gt $I11, rx98_eos, rx98_fail + sub $I11, rx98_pos, rx98_off + ord $I11, rx98_tgt, $I11 + ne $I11, 38, rx98_fail + add rx98_pos, 1 + alt104_end: + alt105_0: +.annotate 'line', 41 + set_addr $I10, alt105_1 + rx98_cur."!mark_push"(0, rx98_pos, $I10) + # rx subrule "termish" subtype=capture negate= + rx98_cur."!cursor_pos"(rx98_pos) + $P10 = rx98_cur."termish"() + unless $P10, rx98_fail + rx98_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("termish") + rx98_pos = $P10."pos"() + goto alt105_end + alt105_1: + # rx subrule "panic" subtype=method negate= + rx98_cur."!cursor_pos"(rx98_pos) + $P10 = rx98_cur."panic"("Null pattern not allowed") unless $P10, rx98_fail - rxsubrule103_pass: - set_addr $I10, rxsubrule103_back - rx98_cur."!mark_push"(0, rx98_pos, $I10, $P10) - $P10."!cursor_names"("noun") rx98_pos = $P10."pos"() - set_addr $I10, rxquantr102_done + alt105_end: +.annotate 'line', 42 + set_addr $I10, rxquantr103_done (rx98_rep) = rx98_cur."!mark_commit"($I10) - set_addr $I10, rxquantr102_done + set_addr $I10, rxquantr103_done rx98_cur."!mark_push"(rx98_rep, rx98_pos, $I10) - goto rxquantr102_loop - rxquantr102_done: + goto rxquantr103_loop + rxquantr103_done: .annotate 'line', 38 # rx pass - rx98_cur."!cursor_pass"(rx98_pos, "termish") - if_null rx98_debug, debug_197 - rx98_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx98_pos) - debug_197: + rx98_cur."!cursor_pass"(rx98_pos, "termconj") + if_null rx98_debug, debug_199 + rx98_cur."!cursor_debug"("PASS", "termconj", " at pos=", rx98_pos) + debug_199: .return (rx98_cur) rx98_restart: .annotate 'line', 3 - if_null rx98_debug, debug_198 - rx98_cur."!cursor_debug"("NEXT ", "termish") - debug_198: + if_null rx98_debug, debug_200 + rx98_cur."!cursor_debug"("NEXT", "termconj") + debug_200: rx98_fail: (rx98_rep, rx98_pos, $I10, $P10) = rx98_cur."!mark_fail"(0) lt rx98_pos, -1, rx98_done @@ -1259,154 +1297,128 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx98_done: rx98_cur."!cursor_fail"() - if_null rx98_debug, debug_199 - rx98_cur."!cursor_debug"("FAIL ", "termish") - debug_199: + if_null rx98_debug, debug_201 + rx98_cur."!cursor_debug"("FAIL", "termconj") + debug_201: .return (rx98_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__termish" :subid("29_1282016522.91354") :method +.sub "!PREFIX__termconj" :subid("29_1282323996.47527") :method .annotate 'line', 3 - new $P100, "ResizablePMCArray" - push $P100, "" - .return ($P100) + $P100 = self."!PREFIX__!subrule"("termish", "") + new $P101, "ResizablePMCArray" + push $P101, $P100 + .return ($P101) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantified_atom" :subid("30_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "termish" :subid("30_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .const 'Sub' $P113 = "32_1282016522.91354" - capture_lex $P113 - .local string rx105_tgt - .local int rx105_pos - .local int rx105_off - .local int rx105_eos - .local int rx105_rep - .local pmc rx105_cur - .local pmc rx105_debug - (rx105_cur, rx105_pos, rx105_tgt, $I10) = self."!cursor_start"() - rx105_cur."!cursor_caparray"("quantifier", "backmod") - getattribute rx105_debug, rx105_cur, "$!debug" - .lex unicode:"$\x{a2}", rx105_cur + .local string rx107_tgt + .local int rx107_pos + .local int rx107_off + .local int rx107_eos + .local int rx107_rep + .local pmc rx107_cur + .local pmc rx107_debug + (rx107_cur, rx107_pos, rx107_tgt, $I10) = self."!cursor_start"() + rx107_cur."!cursor_caparray"("noun") + getattribute rx107_debug, rx107_cur, "$!debug" + .lex unicode:"$\x{a2}", rx107_cur .local pmc match .lex "$/", match - length rx105_eos, rx105_tgt - gt rx105_pos, rx105_eos, rx105_done - set rx105_off, 0 - lt rx105_pos, 2, rx105_start - sub rx105_off, rx105_pos, 1 - substr rx105_tgt, rx105_tgt, rx105_off - rx105_start: - eq $I10, 1, rx105_restart - if_null rx105_debug, debug_200 - rx105_cur."!cursor_debug"("START ", "quantified_atom") - debug_200: + length rx107_eos, rx107_tgt + gt rx107_pos, rx107_eos, rx107_done + set rx107_off, 0 + lt rx107_pos, 2, rx107_start + sub rx107_off, rx107_pos, 1 + substr rx107_tgt, rx107_tgt, rx107_off + rx107_start: + eq $I10, 1, rx107_restart + if_null rx107_debug, debug_202 + rx107_cur."!cursor_debug"("START", "termish") + debug_202: $I10 = self.'from'() - ne $I10, -1, rxscan109_done - goto rxscan109_scan - rxscan109_loop: - ($P10) = rx105_cur."from"() + ne $I10, -1, rxscan110_done + goto rxscan110_scan + rxscan110_loop: + ($P10) = rx107_cur."from"() inc $P10 - set rx105_pos, $P10 - ge rx105_pos, rx105_eos, rxscan109_done - rxscan109_scan: - set_addr $I10, rxscan109_loop - rx105_cur."!mark_push"(0, rx105_pos, $I10) - rxscan109_done: -.annotate 'line', 43 - # rx subrule "atom" subtype=capture negate= - rx105_cur."!cursor_pos"(rx105_pos) - $P10 = rx105_cur."atom"() - unless $P10, rx105_fail - rx105_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("atom") - rx105_pos = $P10."pos"() - # rx rxquantr110 ** 0..1 - set_addr $I10, rxquantr110_done - rx105_cur."!mark_push"(0, rx105_pos, $I10) - rxquantr110_loop: - # rx subrule "ws" subtype=method negate= - rx105_cur."!cursor_pos"(rx105_pos) - $P10 = rx105_cur."ws"() - unless $P10, rx105_fail - rx105_pos = $P10."pos"() - alt111_0: - set_addr $I10, alt111_1 - rx105_cur."!mark_push"(0, rx105_pos, $I10) - # rx subrule "quantifier" subtype=capture negate= - rx105_cur."!cursor_pos"(rx105_pos) - $P10 = rx105_cur."quantifier"() - unless $P10, rx105_fail - rx105_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("quantifier") - rx105_pos = $P10."pos"() - goto alt111_end - alt111_1: - # rx subrule "before" subtype=zerowidth negate= - rx105_cur."!cursor_pos"(rx105_pos) - .const 'Sub' $P113 = "32_1282016522.91354" - capture_lex $P113 - $P10 = rx105_cur."before"($P113) - unless $P10, rx105_fail - # rx subrule "backmod" subtype=capture negate= - rx105_cur."!cursor_pos"(rx105_pos) - $P10 = rx105_cur."backmod"() - unless $P10, rx105_fail - rx105_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("backmod") - rx105_pos = $P10."pos"() - # rx subrule "alpha" subtype=zerowidth negate=1 - rx105_cur."!cursor_pos"(rx105_pos) - $P10 = rx105_cur."alpha"() - if $P10, rx105_fail - alt111_end: - set_addr $I10, rxquantr110_done - (rx105_rep) = rx105_cur."!mark_commit"($I10) - rxquantr110_done: -.annotate 'line', 42 + set rx107_pos, $P10 + ge rx107_pos, rx107_eos, rxscan110_done + rxscan110_scan: + set_addr $I10, rxscan110_loop + rx107_cur."!mark_push"(0, rx107_pos, $I10) + rxscan110_done: +.annotate 'line', 46 + # rx rxquantr111 ** 1..* + set_addr $I10, rxquantr111_done + rx107_cur."!mark_push"(0, -1, $I10) + rxquantr111_loop: + # rx subrule "quantified_atom" subtype=capture negate= + rx107_cur."!cursor_pos"(rx107_pos) + $P10 = rx107_cur."quantified_atom"() + unless $P10, rx107_fail + goto rxsubrule112_pass + rxsubrule112_back: + $P10 = $P10."!cursor_next"() + unless $P10, rx107_fail + rxsubrule112_pass: + set_addr $I10, rxsubrule112_back + rx107_cur."!mark_push"(0, rx107_pos, $I10, $P10) + $P10."!cursor_names"("noun") + rx107_pos = $P10."pos"() + set_addr $I10, rxquantr111_done + (rx107_rep) = rx107_cur."!mark_commit"($I10) + set_addr $I10, rxquantr111_done + rx107_cur."!mark_push"(rx107_rep, rx107_pos, $I10) + goto rxquantr111_loop + rxquantr111_done: +.annotate 'line', 45 # rx pass - rx105_cur."!cursor_pass"(rx105_pos, "quantified_atom") - if_null rx105_debug, debug_205 - rx105_cur."!cursor_debug"("PASS ", "quantified_atom", " at pos=", rx105_pos) - debug_205: - .return (rx105_cur) - rx105_restart: + rx107_cur."!cursor_pass"(rx107_pos, "termish") + if_null rx107_debug, debug_203 + rx107_cur."!cursor_debug"("PASS", "termish", " at pos=", rx107_pos) + debug_203: + .return (rx107_cur) + rx107_restart: .annotate 'line', 3 - if_null rx105_debug, debug_206 - rx105_cur."!cursor_debug"("NEXT ", "quantified_atom") - debug_206: - rx105_fail: - (rx105_rep, rx105_pos, $I10, $P10) = rx105_cur."!mark_fail"(0) - lt rx105_pos, -1, rx105_done - eq rx105_pos, -1, rx105_fail + if_null rx107_debug, debug_204 + rx107_cur."!cursor_debug"("NEXT", "termish") + debug_204: + rx107_fail: + (rx107_rep, rx107_pos, $I10, $P10) = rx107_cur."!mark_fail"(0) + lt rx107_pos, -1, rx107_done + eq rx107_pos, -1, rx107_fail jump $I10 - rx105_done: - rx105_cur."!cursor_fail"() - if_null rx105_debug, debug_207 - rx105_cur."!cursor_debug"("FAIL ", "quantified_atom") - debug_207: - .return (rx105_cur) + rx107_done: + rx107_cur."!cursor_fail"() + if_null rx107_debug, debug_205 + rx107_cur."!cursor_debug"("FAIL", "termish") + debug_205: + .return (rx107_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantified_atom" :subid("31_1282016522.91354") :method +.sub "!PREFIX__termish" :subid("31_1282323996.47527") :method .annotate 'line', 3 - $P107 = self."!PREFIX__!subrule"("atom", "") - new $P108, "ResizablePMCArray" - push $P108, $P107 - .return ($P108) + new $P109, "ResizablePMCArray" + push $P109, "" + .return ($P109) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block112" :anon :subid("32_1282016522.91354") :method :outer("30_1282016522.91354") -.annotate 'line', 43 +.sub "quantified_atom" :subid("32_1282323996.47527") :method :outer("11_1282323996.47527") +.annotate 'line', 3 + .const 'Sub' $P122 = "34_1282323996.47527" + capture_lex $P122 .local string rx114_tgt .local int rx114_pos .local int rx114_off @@ -1415,6 +1427,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local pmc rx114_cur .local pmc rx114_debug (rx114_cur, rx114_pos, rx114_tgt, $I10) = self."!cursor_start"() + rx114_cur."!cursor_caparray"("quantifier", "backmod") getattribute rx114_debug, rx114_cur, "$!debug" .lex unicode:"$\x{a2}", rx114_cur .local pmc match @@ -1427,38 +1440,83 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx114_tgt, rx114_tgt, rx114_off rx114_start: eq $I10, 1, rx114_restart - if_null rx114_debug, debug_201 - rx114_cur."!cursor_debug"("START ", "") - debug_201: + if_null rx114_debug, debug_206 + rx114_cur."!cursor_debug"("START", "quantified_atom") + debug_206: $I10 = self.'from'() - ne $I10, -1, rxscan115_done - goto rxscan115_scan - rxscan115_loop: + ne $I10, -1, rxscan118_done + goto rxscan118_scan + rxscan118_loop: ($P10) = rx114_cur."from"() inc $P10 set rx114_pos, $P10 - ge rx114_pos, rx114_eos, rxscan115_done - rxscan115_scan: - set_addr $I10, rxscan115_loop + ge rx114_pos, rx114_eos, rxscan118_done + rxscan118_scan: + set_addr $I10, rxscan118_loop rx114_cur."!mark_push"(0, rx114_pos, $I10) - rxscan115_done: - # rx literal ":" - add $I11, rx114_pos, 1 - gt $I11, rx114_eos, rx114_fail - sub $I11, rx114_pos, rx114_off - ord $I11, rx114_tgt, $I11 - ne $I11, 58, rx114_fail - add rx114_pos, 1 + rxscan118_done: +.annotate 'line', 50 + # rx subrule "atom" subtype=capture negate= + rx114_cur."!cursor_pos"(rx114_pos) + $P10 = rx114_cur."atom"() + unless $P10, rx114_fail + rx114_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("atom") + rx114_pos = $P10."pos"() + # rx rxquantr119 ** 0..1 + set_addr $I10, rxquantr119_done + rx114_cur."!mark_push"(0, rx114_pos, $I10) + rxquantr119_loop: + # rx subrule "ws" subtype=method negate= + rx114_cur."!cursor_pos"(rx114_pos) + $P10 = rx114_cur."ws"() + unless $P10, rx114_fail + rx114_pos = $P10."pos"() + alt120_0: + set_addr $I10, alt120_1 + rx114_cur."!mark_push"(0, rx114_pos, $I10) + # rx subrule "quantifier" subtype=capture negate= + rx114_cur."!cursor_pos"(rx114_pos) + $P10 = rx114_cur."quantifier"() + unless $P10, rx114_fail + rx114_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("quantifier") + rx114_pos = $P10."pos"() + goto alt120_end + alt120_1: + # rx subrule "before" subtype=zerowidth negate= + rx114_cur."!cursor_pos"(rx114_pos) + .const 'Sub' $P122 = "34_1282323996.47527" + capture_lex $P122 + $P10 = rx114_cur."before"($P122) + unless $P10, rx114_fail + # rx subrule "backmod" subtype=capture negate= + rx114_cur."!cursor_pos"(rx114_pos) + $P10 = rx114_cur."backmod"() + unless $P10, rx114_fail + rx114_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("backmod") + rx114_pos = $P10."pos"() + # rx subrule "alpha" subtype=zerowidth negate=1 + rx114_cur."!cursor_pos"(rx114_pos) + $P10 = rx114_cur."alpha"() + if $P10, rx114_fail + alt120_end: + set_addr $I10, rxquantr119_done + (rx114_rep) = rx114_cur."!mark_commit"($I10) + rxquantr119_done: +.annotate 'line', 49 # rx pass - rx114_cur."!cursor_pass"(rx114_pos, "") - if_null rx114_debug, debug_202 - rx114_cur."!cursor_debug"("PASS ", "", " at pos=", rx114_pos) - debug_202: + rx114_cur."!cursor_pass"(rx114_pos, "quantified_atom") + if_null rx114_debug, debug_211 + rx114_cur."!cursor_debug"("PASS", "quantified_atom", " at pos=", rx114_pos) + debug_211: .return (rx114_cur) rx114_restart: - if_null rx114_debug, debug_203 - rx114_cur."!cursor_debug"("NEXT ", "") - debug_203: +.annotate 'line', 3 + if_null rx114_debug, debug_212 + rx114_cur."!cursor_debug"("NEXT", "quantified_atom") + debug_212: rx114_fail: (rx114_rep, rx114_pos, $I10, $P10) = rx114_cur."!mark_fail"(0) lt rx114_pos, -1, rx114_done @@ -1466,4846 +1524,4822 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx114_done: rx114_cur."!cursor_fail"() - if_null rx114_debug, debug_204 - rx114_cur."!cursor_debug"("FAIL ", "") - debug_204: + if_null rx114_debug, debug_213 + rx114_cur."!cursor_debug"("FAIL", "quantified_atom") + debug_213: .return (rx114_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "atom" :subid("33_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "!PREFIX__quantified_atom" :subid("33_1282323996.47527") :method .annotate 'line', 3 - .const 'Sub' $P126 = "35_1282016522.91354" - capture_lex $P126 - .local string rx117_tgt - .local int rx117_pos - .local int rx117_off - .local int rx117_eos - .local int rx117_rep - .local pmc rx117_cur - .local pmc rx117_debug - (rx117_cur, rx117_pos, rx117_tgt, $I10) = self."!cursor_start"() - getattribute rx117_debug, rx117_cur, "$!debug" - .lex unicode:"$\x{a2}", rx117_cur + $P116 = self."!PREFIX__!subrule"("atom", "") + new $P117, "ResizablePMCArray" + push $P117, $P116 + .return ($P117) +.end + + +.namespace ["Regex";"P6Regex";"Grammar"] +.sub "_block121" :anon :subid("34_1282323996.47527") :method :outer("32_1282323996.47527") +.annotate 'line', 50 + .local string rx123_tgt + .local int rx123_pos + .local int rx123_off + .local int rx123_eos + .local int rx123_rep + .local pmc rx123_cur + .local pmc rx123_debug + (rx123_cur, rx123_pos, rx123_tgt, $I10) = self."!cursor_start"() + getattribute rx123_debug, rx123_cur, "$!debug" + .lex unicode:"$\x{a2}", rx123_cur .local pmc match .lex "$/", match - length rx117_eos, rx117_tgt - gt rx117_pos, rx117_eos, rx117_done - set rx117_off, 0 - lt rx117_pos, 2, rx117_start - sub rx117_off, rx117_pos, 1 - substr rx117_tgt, rx117_tgt, rx117_off - rx117_start: - eq $I10, 1, rx117_restart - if_null rx117_debug, debug_208 - rx117_cur."!cursor_debug"("START ", "atom") + length rx123_eos, rx123_tgt + gt rx123_pos, rx123_eos, rx123_done + set rx123_off, 0 + lt rx123_pos, 2, rx123_start + sub rx123_off, rx123_pos, 1 + substr rx123_tgt, rx123_tgt, rx123_off + rx123_start: + eq $I10, 1, rx123_restart + if_null rx123_debug, debug_207 + rx123_cur."!cursor_debug"("START", "") + debug_207: + $I10 = self.'from'() + ne $I10, -1, rxscan124_done + goto rxscan124_scan + rxscan124_loop: + ($P10) = rx123_cur."from"() + inc $P10 + set rx123_pos, $P10 + ge rx123_pos, rx123_eos, rxscan124_done + rxscan124_scan: + set_addr $I10, rxscan124_loop + rx123_cur."!mark_push"(0, rx123_pos, $I10) + rxscan124_done: + # rx literal ":" + add $I11, rx123_pos, 1 + gt $I11, rx123_eos, rx123_fail + sub $I11, rx123_pos, rx123_off + ord $I11, rx123_tgt, $I11 + ne $I11, 58, rx123_fail + add rx123_pos, 1 + # rx pass + rx123_cur."!cursor_pass"(rx123_pos, "") + if_null rx123_debug, debug_208 + rx123_cur."!cursor_debug"("PASS", "", " at pos=", rx123_pos) debug_208: + .return (rx123_cur) + rx123_restart: + if_null rx123_debug, debug_209 + rx123_cur."!cursor_debug"("NEXT", "") + debug_209: + rx123_fail: + (rx123_rep, rx123_pos, $I10, $P10) = rx123_cur."!mark_fail"(0) + lt rx123_pos, -1, rx123_done + eq rx123_pos, -1, rx123_fail + jump $I10 + rx123_done: + rx123_cur."!cursor_fail"() + if_null rx123_debug, debug_210 + rx123_cur."!cursor_debug"("FAIL", "") + debug_210: + .return (rx123_cur) + .return () +.end + + +.namespace ["Regex";"P6Regex";"Grammar"] +.sub "atom" :subid("35_1282323996.47527") :method :outer("11_1282323996.47527") +.annotate 'line', 3 + .const 'Sub' $P135 = "37_1282323996.47527" + capture_lex $P135 + .local string rx126_tgt + .local int rx126_pos + .local int rx126_off + .local int rx126_eos + .local int rx126_rep + .local pmc rx126_cur + .local pmc rx126_debug + (rx126_cur, rx126_pos, rx126_tgt, $I10) = self."!cursor_start"() + getattribute rx126_debug, rx126_cur, "$!debug" + .lex unicode:"$\x{a2}", rx126_cur + .local pmc match + .lex "$/", match + length rx126_eos, rx126_tgt + gt rx126_pos, rx126_eos, rx126_done + set rx126_off, 0 + lt rx126_pos, 2, rx126_start + sub rx126_off, rx126_pos, 1 + substr rx126_tgt, rx126_tgt, rx126_off + rx126_start: + eq $I10, 1, rx126_restart + if_null rx126_debug, debug_214 + rx126_cur."!cursor_debug"("START", "atom") + debug_214: $I10 = self.'from'() - ne $I10, -1, rxscan121_done - goto rxscan121_scan - rxscan121_loop: - ($P10) = rx117_cur."from"() + ne $I10, -1, rxscan130_done + goto rxscan130_scan + rxscan130_loop: + ($P10) = rx126_cur."from"() inc $P10 - set rx117_pos, $P10 - ge rx117_pos, rx117_eos, rxscan121_done - rxscan121_scan: - set_addr $I10, rxscan121_loop - rx117_cur."!mark_push"(0, rx117_pos, $I10) - rxscan121_done: - alt122_0: -.annotate 'line', 48 - set_addr $I10, alt122_1 - rx117_cur."!mark_push"(0, rx117_pos, $I10) -.annotate 'line', 49 + set rx126_pos, $P10 + ge rx126_pos, rx126_eos, rxscan130_done + rxscan130_scan: + set_addr $I10, rxscan130_loop + rx126_cur."!mark_push"(0, rx126_pos, $I10) + rxscan130_done: + alt131_0: +.annotate 'line', 55 + set_addr $I10, alt131_1 + rx126_cur."!mark_push"(0, rx126_pos, $I10) +.annotate 'line', 56 # rx charclass w - ge rx117_pos, rx117_eos, rx117_fail - sub $I10, rx117_pos, rx117_off - is_cclass $I11, 8192, rx117_tgt, $I10 - unless $I11, rx117_fail - inc rx117_pos - # rx rxquantr123 ** 0..1 - set_addr $I10, rxquantr123_done - rx117_cur."!mark_push"(0, rx117_pos, $I10) - rxquantr123_loop: - # rx rxquantg124 ** 1..* - rxquantg124_loop: + ge rx126_pos, rx126_eos, rx126_fail + sub $I10, rx126_pos, rx126_off + is_cclass $I11, 8192, rx126_tgt, $I10 + unless $I11, rx126_fail + inc rx126_pos + # rx rxquantr132 ** 0..1 + set_addr $I10, rxquantr132_done + rx126_cur."!mark_push"(0, rx126_pos, $I10) + rxquantr132_loop: + # rx rxquantg133 ** 1..* + rxquantg133_loop: # rx charclass w - ge rx117_pos, rx117_eos, rx117_fail - sub $I10, rx117_pos, rx117_off - is_cclass $I11, 8192, rx117_tgt, $I10 - unless $I11, rx117_fail - inc rx117_pos - set_addr $I10, rxquantg124_done - rx117_cur."!mark_push"(rx117_rep, rx117_pos, $I10) - goto rxquantg124_loop - rxquantg124_done: + ge rx126_pos, rx126_eos, rx126_fail + sub $I10, rx126_pos, rx126_off + is_cclass $I11, 8192, rx126_tgt, $I10 + unless $I11, rx126_fail + inc rx126_pos + set_addr $I10, rxquantg133_done + rx126_cur."!mark_push"(rx126_rep, rx126_pos, $I10) + goto rxquantg133_loop + rxquantg133_done: # rx subrule "before" subtype=zerowidth negate= - rx117_cur."!cursor_pos"(rx117_pos) - .const 'Sub' $P126 = "35_1282016522.91354" - capture_lex $P126 - $P10 = rx117_cur."before"($P126) - unless $P10, rx117_fail - set_addr $I10, rxquantr123_done - (rx117_rep) = rx117_cur."!mark_commit"($I10) - rxquantr123_done: - goto alt122_end - alt122_1: -.annotate 'line', 50 + rx126_cur."!cursor_pos"(rx126_pos) + .const 'Sub' $P135 = "37_1282323996.47527" + capture_lex $P135 + $P10 = rx126_cur."before"($P135) + unless $P10, rx126_fail + set_addr $I10, rxquantr132_done + (rx126_rep) = rx126_cur."!mark_commit"($I10) + rxquantr132_done: + goto alt131_end + alt131_1: +.annotate 'line', 57 # rx subrule "metachar" subtype=capture negate= - rx117_cur."!cursor_pos"(rx117_pos) - $P10 = rx117_cur."metachar"() - unless $P10, rx117_fail - rx117_cur."!mark_push"(0, -1, 0, $P10) + rx126_cur."!cursor_pos"(rx126_pos) + $P10 = rx126_cur."metachar"() + unless $P10, rx126_fail + rx126_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("metachar") - rx117_pos = $P10."pos"() - alt122_end: -.annotate 'line', 46 + rx126_pos = $P10."pos"() + alt131_end: +.annotate 'line', 53 # rx pass - rx117_cur."!cursor_pass"(rx117_pos, "atom") - if_null rx117_debug, debug_213 - rx117_cur."!cursor_debug"("PASS ", "atom", " at pos=", rx117_pos) - debug_213: - .return (rx117_cur) - rx117_restart: + rx126_cur."!cursor_pass"(rx126_pos, "atom") + if_null rx126_debug, debug_219 + rx126_cur."!cursor_debug"("PASS", "atom", " at pos=", rx126_pos) + debug_219: + .return (rx126_cur) + rx126_restart: .annotate 'line', 3 - if_null rx117_debug, debug_214 - rx117_cur."!cursor_debug"("NEXT ", "atom") - debug_214: - rx117_fail: - (rx117_rep, rx117_pos, $I10, $P10) = rx117_cur."!mark_fail"(0) - lt rx117_pos, -1, rx117_done - eq rx117_pos, -1, rx117_fail + if_null rx126_debug, debug_220 + rx126_cur."!cursor_debug"("NEXT", "atom") + debug_220: + rx126_fail: + (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0) + lt rx126_pos, -1, rx126_done + eq rx126_pos, -1, rx126_fail jump $I10 - rx117_done: - rx117_cur."!cursor_fail"() - if_null rx117_debug, debug_215 - rx117_cur."!cursor_debug"("FAIL ", "atom") - debug_215: - .return (rx117_cur) + rx126_done: + rx126_cur."!cursor_fail"() + if_null rx126_debug, debug_221 + rx126_cur."!cursor_debug"("FAIL", "atom") + debug_221: + .return (rx126_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__atom" :subid("34_1282016522.91354") :method +.sub "!PREFIX__atom" :subid("36_1282323996.47527") :method .annotate 'line', 3 - $P119 = self."!PREFIX__!subrule"("metachar", "") - new $P120, "ResizablePMCArray" - push $P120, $P119 - push $P120, "" - .return ($P120) + $P128 = self."!PREFIX__!subrule"("metachar", "") + new $P129, "ResizablePMCArray" + push $P129, $P128 + push $P129, "" + .return ($P129) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block125" :anon :subid("35_1282016522.91354") :method :outer("33_1282016522.91354") -.annotate 'line', 49 - .local string rx127_tgt - .local int rx127_pos - .local int rx127_off - .local int rx127_eos - .local int rx127_rep - .local pmc rx127_cur - .local pmc rx127_debug - (rx127_cur, rx127_pos, rx127_tgt, $I10) = self."!cursor_start"() - getattribute rx127_debug, rx127_cur, "$!debug" - .lex unicode:"$\x{a2}", rx127_cur +.sub "_block134" :anon :subid("37_1282323996.47527") :method :outer("35_1282323996.47527") +.annotate 'line', 56 + .local string rx136_tgt + .local int rx136_pos + .local int rx136_off + .local int rx136_eos + .local int rx136_rep + .local pmc rx136_cur + .local pmc rx136_debug + (rx136_cur, rx136_pos, rx136_tgt, $I10) = self."!cursor_start"() + getattribute rx136_debug, rx136_cur, "$!debug" + .lex unicode:"$\x{a2}", rx136_cur .local pmc match .lex "$/", match - length rx127_eos, rx127_tgt - gt rx127_pos, rx127_eos, rx127_done - set rx127_off, 0 - lt rx127_pos, 2, rx127_start - sub rx127_off, rx127_pos, 1 - substr rx127_tgt, rx127_tgt, rx127_off - rx127_start: - eq $I10, 1, rx127_restart - if_null rx127_debug, debug_209 - rx127_cur."!cursor_debug"("START ", "") - debug_209: + length rx136_eos, rx136_tgt + gt rx136_pos, rx136_eos, rx136_done + set rx136_off, 0 + lt rx136_pos, 2, rx136_start + sub rx136_off, rx136_pos, 1 + substr rx136_tgt, rx136_tgt, rx136_off + rx136_start: + eq $I10, 1, rx136_restart + if_null rx136_debug, debug_215 + rx136_cur."!cursor_debug"("START", "") + debug_215: $I10 = self.'from'() - ne $I10, -1, rxscan128_done - goto rxscan128_scan - rxscan128_loop: - ($P10) = rx127_cur."from"() + ne $I10, -1, rxscan137_done + goto rxscan137_scan + rxscan137_loop: + ($P10) = rx136_cur."from"() inc $P10 - set rx127_pos, $P10 - ge rx127_pos, rx127_eos, rxscan128_done - rxscan128_scan: - set_addr $I10, rxscan128_loop - rx127_cur."!mark_push"(0, rx127_pos, $I10) - rxscan128_done: + set rx136_pos, $P10 + ge rx136_pos, rx136_eos, rxscan137_done + rxscan137_scan: + set_addr $I10, rxscan137_loop + rx136_cur."!mark_push"(0, rx136_pos, $I10) + rxscan137_done: # rx charclass w - ge rx127_pos, rx127_eos, rx127_fail - sub $I10, rx127_pos, rx127_off - is_cclass $I11, 8192, rx127_tgt, $I10 - unless $I11, rx127_fail - inc rx127_pos + ge rx136_pos, rx136_eos, rx136_fail + sub $I10, rx136_pos, rx136_off + is_cclass $I11, 8192, rx136_tgt, $I10 + unless $I11, rx136_fail + inc rx136_pos # rx pass - rx127_cur."!cursor_pass"(rx127_pos, "") - if_null rx127_debug, debug_210 - rx127_cur."!cursor_debug"("PASS ", "", " at pos=", rx127_pos) - debug_210: - .return (rx127_cur) - rx127_restart: - if_null rx127_debug, debug_211 - rx127_cur."!cursor_debug"("NEXT ", "") - debug_211: - rx127_fail: - (rx127_rep, rx127_pos, $I10, $P10) = rx127_cur."!mark_fail"(0) - lt rx127_pos, -1, rx127_done - eq rx127_pos, -1, rx127_fail + rx136_cur."!cursor_pass"(rx136_pos, "") + if_null rx136_debug, debug_216 + rx136_cur."!cursor_debug"("PASS", "", " at pos=", rx136_pos) + debug_216: + .return (rx136_cur) + rx136_restart: + if_null rx136_debug, debug_217 + rx136_cur."!cursor_debug"("NEXT", "") + debug_217: + rx136_fail: + (rx136_rep, rx136_pos, $I10, $P10) = rx136_cur."!mark_fail"(0) + lt rx136_pos, -1, rx136_done + eq rx136_pos, -1, rx136_fail jump $I10 - rx127_done: - rx127_cur."!cursor_fail"() - if_null rx127_debug, debug_212 - rx127_cur."!cursor_debug"("FAIL ", "") - debug_212: - .return (rx127_cur) + rx136_done: + rx136_cur."!cursor_fail"() + if_null rx136_debug, debug_218 + rx136_cur."!cursor_debug"("FAIL", "") + debug_218: + .return (rx136_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier" :subid("36_1282016522.91354") :method -.annotate 'line', 54 - $P130 = self."!protoregex"("quantifier") - .return ($P130) +.sub "quantifier" :subid("38_1282323996.47527") :method +.annotate 'line', 61 + $P139 = self."!protoregex"("quantifier") + .return ($P139) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier" :subid("37_1282016522.91354") :method -.annotate 'line', 54 - $P132 = self."!PREFIX__!protoregex"("quantifier") - .return ($P132) +.sub "!PREFIX__quantifier" :subid("39_1282323996.47527") :method +.annotate 'line', 61 + $P141 = self."!PREFIX__!protoregex"("quantifier") + .return ($P141) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier:sym<*>" :subid("38_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "quantifier:sym<*>" :subid("40_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx134_tgt - .local int rx134_pos - .local int rx134_off - .local int rx134_eos - .local int rx134_rep - .local pmc rx134_cur - .local pmc rx134_debug - (rx134_cur, rx134_pos, rx134_tgt, $I10) = self."!cursor_start"() - getattribute rx134_debug, rx134_cur, "$!debug" - .lex unicode:"$\x{a2}", rx134_cur + .local string rx143_tgt + .local int rx143_pos + .local int rx143_off + .local int rx143_eos + .local int rx143_rep + .local pmc rx143_cur + .local pmc rx143_debug + (rx143_cur, rx143_pos, rx143_tgt, $I10) = self."!cursor_start"() + getattribute rx143_debug, rx143_cur, "$!debug" + .lex unicode:"$\x{a2}", rx143_cur .local pmc match .lex "$/", match - length rx134_eos, rx134_tgt - gt rx134_pos, rx134_eos, rx134_done - set rx134_off, 0 - lt rx134_pos, 2, rx134_start - sub rx134_off, rx134_pos, 1 - substr rx134_tgt, rx134_tgt, rx134_off - rx134_start: - eq $I10, 1, rx134_restart - if_null rx134_debug, debug_216 - rx134_cur."!cursor_debug"("START ", "quantifier:sym<*>") - debug_216: + length rx143_eos, rx143_tgt + gt rx143_pos, rx143_eos, rx143_done + set rx143_off, 0 + lt rx143_pos, 2, rx143_start + sub rx143_off, rx143_pos, 1 + substr rx143_tgt, rx143_tgt, rx143_off + rx143_start: + eq $I10, 1, rx143_restart + if_null rx143_debug, debug_222 + rx143_cur."!cursor_debug"("START", "quantifier:sym<*>") + debug_222: $I10 = self.'from'() - ne $I10, -1, rxscan138_done - goto rxscan138_scan - rxscan138_loop: - ($P10) = rx134_cur."from"() + ne $I10, -1, rxscan147_done + goto rxscan147_scan + rxscan147_loop: + ($P10) = rx143_cur."from"() inc $P10 - set rx134_pos, $P10 - ge rx134_pos, rx134_eos, rxscan138_done - rxscan138_scan: - set_addr $I10, rxscan138_loop - rx134_cur."!mark_push"(0, rx134_pos, $I10) - rxscan138_done: -.annotate 'line', 55 + set rx143_pos, $P10 + ge rx143_pos, rx143_eos, rxscan147_done + rxscan147_scan: + set_addr $I10, rxscan147_loop + rx143_cur."!mark_push"(0, rx143_pos, $I10) + rxscan147_done: +.annotate 'line', 62 # rx subcapture "sym" - set_addr $I10, rxcap_139_fail - rx134_cur."!mark_push"(0, rx134_pos, $I10) + set_addr $I10, rxcap_148_fail + rx143_cur."!mark_push"(0, rx143_pos, $I10) # rx literal "*" - add $I11, rx134_pos, 1 - gt $I11, rx134_eos, rx134_fail - sub $I11, rx134_pos, rx134_off - ord $I11, rx134_tgt, $I11 - ne $I11, 42, rx134_fail - add rx134_pos, 1 - set_addr $I10, rxcap_139_fail - ($I12, $I11) = rx134_cur."!mark_peek"($I10) - rx134_cur."!cursor_pos"($I11) - ($P10) = rx134_cur."!cursor_start"() - $P10."!cursor_pass"(rx134_pos, "") - rx134_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx143_pos, 1 + gt $I11, rx143_eos, rx143_fail + sub $I11, rx143_pos, rx143_off + ord $I11, rx143_tgt, $I11 + ne $I11, 42, rx143_fail + add rx143_pos, 1 + set_addr $I10, rxcap_148_fail + ($I12, $I11) = rx143_cur."!mark_peek"($I10) + rx143_cur."!cursor_pos"($I11) + ($P10) = rx143_cur."!cursor_start"() + $P10."!cursor_pass"(rx143_pos, "") + rx143_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_139_done - rxcap_139_fail: - goto rx134_fail - rxcap_139_done: + goto rxcap_148_done + rxcap_148_fail: + goto rx143_fail + rxcap_148_done: # rx subrule "backmod" subtype=capture negate= - rx134_cur."!cursor_pos"(rx134_pos) - $P10 = rx134_cur."backmod"() - unless $P10, rx134_fail - rx134_cur."!mark_push"(0, -1, 0, $P10) + rx143_cur."!cursor_pos"(rx143_pos) + $P10 = rx143_cur."backmod"() + unless $P10, rx143_fail + rx143_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("backmod") - rx134_pos = $P10."pos"() + rx143_pos = $P10."pos"() # rx pass - rx134_cur."!cursor_pass"(rx134_pos, "quantifier:sym<*>") - if_null rx134_debug, debug_217 - rx134_cur."!cursor_debug"("PASS ", "quantifier:sym<*>", " at pos=", rx134_pos) - debug_217: - .return (rx134_cur) - rx134_restart: + rx143_cur."!cursor_pass"(rx143_pos, "quantifier:sym<*>") + if_null rx143_debug, debug_223 + rx143_cur."!cursor_debug"("PASS", "quantifier:sym<*>", " at pos=", rx143_pos) + debug_223: + .return (rx143_cur) + rx143_restart: .annotate 'line', 3 - if_null rx134_debug, debug_218 - rx134_cur."!cursor_debug"("NEXT ", "quantifier:sym<*>") - debug_218: - rx134_fail: - (rx134_rep, rx134_pos, $I10, $P10) = rx134_cur."!mark_fail"(0) - lt rx134_pos, -1, rx134_done - eq rx134_pos, -1, rx134_fail + if_null rx143_debug, debug_224 + rx143_cur."!cursor_debug"("NEXT", "quantifier:sym<*>") + debug_224: + rx143_fail: + (rx143_rep, rx143_pos, $I10, $P10) = rx143_cur."!mark_fail"(0) + lt rx143_pos, -1, rx143_done + eq rx143_pos, -1, rx143_fail jump $I10 - rx134_done: - rx134_cur."!cursor_fail"() - if_null rx134_debug, debug_219 - rx134_cur."!cursor_debug"("FAIL ", "quantifier:sym<*>") - debug_219: - .return (rx134_cur) + rx143_done: + rx143_cur."!cursor_fail"() + if_null rx143_debug, debug_225 + rx143_cur."!cursor_debug"("FAIL", "quantifier:sym<*>") + debug_225: + .return (rx143_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier:sym<*>" :subid("39_1282016522.91354") :method +.sub "!PREFIX__quantifier:sym<*>" :subid("41_1282323996.47527") :method .annotate 'line', 3 - $P136 = self."!PREFIX__!subrule"("backmod", "*") - new $P137, "ResizablePMCArray" - push $P137, $P136 - .return ($P137) + $P145 = self."!PREFIX__!subrule"("backmod", "*") + new $P146, "ResizablePMCArray" + push $P146, $P145 + .return ($P146) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier:sym<+>" :subid("40_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "quantifier:sym<+>" :subid("42_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx141_tgt - .local int rx141_pos - .local int rx141_off - .local int rx141_eos - .local int rx141_rep - .local pmc rx141_cur - .local pmc rx141_debug - (rx141_cur, rx141_pos, rx141_tgt, $I10) = self."!cursor_start"() - getattribute rx141_debug, rx141_cur, "$!debug" - .lex unicode:"$\x{a2}", rx141_cur + .local string rx150_tgt + .local int rx150_pos + .local int rx150_off + .local int rx150_eos + .local int rx150_rep + .local pmc rx150_cur + .local pmc rx150_debug + (rx150_cur, rx150_pos, rx150_tgt, $I10) = self."!cursor_start"() + getattribute rx150_debug, rx150_cur, "$!debug" + .lex unicode:"$\x{a2}", rx150_cur .local pmc match .lex "$/", match - length rx141_eos, rx141_tgt - gt rx141_pos, rx141_eos, rx141_done - set rx141_off, 0 - lt rx141_pos, 2, rx141_start - sub rx141_off, rx141_pos, 1 - substr rx141_tgt, rx141_tgt, rx141_off - rx141_start: - eq $I10, 1, rx141_restart - if_null rx141_debug, debug_220 - rx141_cur."!cursor_debug"("START ", "quantifier:sym<+>") - debug_220: + length rx150_eos, rx150_tgt + gt rx150_pos, rx150_eos, rx150_done + set rx150_off, 0 + lt rx150_pos, 2, rx150_start + sub rx150_off, rx150_pos, 1 + substr rx150_tgt, rx150_tgt, rx150_off + rx150_start: + eq $I10, 1, rx150_restart + if_null rx150_debug, debug_226 + rx150_cur."!cursor_debug"("START", "quantifier:sym<+>") + debug_226: $I10 = self.'from'() - ne $I10, -1, rxscan145_done - goto rxscan145_scan - rxscan145_loop: - ($P10) = rx141_cur."from"() + ne $I10, -1, rxscan154_done + goto rxscan154_scan + rxscan154_loop: + ($P10) = rx150_cur."from"() inc $P10 - set rx141_pos, $P10 - ge rx141_pos, rx141_eos, rxscan145_done - rxscan145_scan: - set_addr $I10, rxscan145_loop - rx141_cur."!mark_push"(0, rx141_pos, $I10) - rxscan145_done: -.annotate 'line', 56 + set rx150_pos, $P10 + ge rx150_pos, rx150_eos, rxscan154_done + rxscan154_scan: + set_addr $I10, rxscan154_loop + rx150_cur."!mark_push"(0, rx150_pos, $I10) + rxscan154_done: +.annotate 'line', 63 # rx subcapture "sym" - set_addr $I10, rxcap_146_fail - rx141_cur."!mark_push"(0, rx141_pos, $I10) + set_addr $I10, rxcap_155_fail + rx150_cur."!mark_push"(0, rx150_pos, $I10) # rx literal "+" - add $I11, rx141_pos, 1 - gt $I11, rx141_eos, rx141_fail - sub $I11, rx141_pos, rx141_off - ord $I11, rx141_tgt, $I11 - ne $I11, 43, rx141_fail - add rx141_pos, 1 - set_addr $I10, rxcap_146_fail - ($I12, $I11) = rx141_cur."!mark_peek"($I10) - rx141_cur."!cursor_pos"($I11) - ($P10) = rx141_cur."!cursor_start"() - $P10."!cursor_pass"(rx141_pos, "") - rx141_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx150_pos, 1 + gt $I11, rx150_eos, rx150_fail + sub $I11, rx150_pos, rx150_off + ord $I11, rx150_tgt, $I11 + ne $I11, 43, rx150_fail + add rx150_pos, 1 + set_addr $I10, rxcap_155_fail + ($I12, $I11) = rx150_cur."!mark_peek"($I10) + rx150_cur."!cursor_pos"($I11) + ($P10) = rx150_cur."!cursor_start"() + $P10."!cursor_pass"(rx150_pos, "") + rx150_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_146_done - rxcap_146_fail: - goto rx141_fail - rxcap_146_done: + goto rxcap_155_done + rxcap_155_fail: + goto rx150_fail + rxcap_155_done: # rx subrule "backmod" subtype=capture negate= - rx141_cur."!cursor_pos"(rx141_pos) - $P10 = rx141_cur."backmod"() - unless $P10, rx141_fail - rx141_cur."!mark_push"(0, -1, 0, $P10) + rx150_cur."!cursor_pos"(rx150_pos) + $P10 = rx150_cur."backmod"() + unless $P10, rx150_fail + rx150_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("backmod") - rx141_pos = $P10."pos"() + rx150_pos = $P10."pos"() # rx pass - rx141_cur."!cursor_pass"(rx141_pos, "quantifier:sym<+>") - if_null rx141_debug, debug_221 - rx141_cur."!cursor_debug"("PASS ", "quantifier:sym<+>", " at pos=", rx141_pos) - debug_221: - .return (rx141_cur) - rx141_restart: + rx150_cur."!cursor_pass"(rx150_pos, "quantifier:sym<+>") + if_null rx150_debug, debug_227 + rx150_cur."!cursor_debug"("PASS", "quantifier:sym<+>", " at pos=", rx150_pos) + debug_227: + .return (rx150_cur) + rx150_restart: .annotate 'line', 3 - if_null rx141_debug, debug_222 - rx141_cur."!cursor_debug"("NEXT ", "quantifier:sym<+>") - debug_222: - rx141_fail: - (rx141_rep, rx141_pos, $I10, $P10) = rx141_cur."!mark_fail"(0) - lt rx141_pos, -1, rx141_done - eq rx141_pos, -1, rx141_fail + if_null rx150_debug, debug_228 + rx150_cur."!cursor_debug"("NEXT", "quantifier:sym<+>") + debug_228: + rx150_fail: + (rx150_rep, rx150_pos, $I10, $P10) = rx150_cur."!mark_fail"(0) + lt rx150_pos, -1, rx150_done + eq rx150_pos, -1, rx150_fail jump $I10 - rx141_done: - rx141_cur."!cursor_fail"() - if_null rx141_debug, debug_223 - rx141_cur."!cursor_debug"("FAIL ", "quantifier:sym<+>") - debug_223: - .return (rx141_cur) + rx150_done: + rx150_cur."!cursor_fail"() + if_null rx150_debug, debug_229 + rx150_cur."!cursor_debug"("FAIL", "quantifier:sym<+>") + debug_229: + .return (rx150_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier:sym<+>" :subid("41_1282016522.91354") :method +.sub "!PREFIX__quantifier:sym<+>" :subid("43_1282323996.47527") :method .annotate 'line', 3 - $P143 = self."!PREFIX__!subrule"("backmod", "+") - new $P144, "ResizablePMCArray" - push $P144, $P143 - .return ($P144) + $P152 = self."!PREFIX__!subrule"("backmod", "+") + new $P153, "ResizablePMCArray" + push $P153, $P152 + .return ($P153) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier:sym" :subid("42_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "quantifier:sym" :subid("44_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx148_tgt - .local int rx148_pos - .local int rx148_off - .local int rx148_eos - .local int rx148_rep - .local pmc rx148_cur - .local pmc rx148_debug - (rx148_cur, rx148_pos, rx148_tgt, $I10) = self."!cursor_start"() - getattribute rx148_debug, rx148_cur, "$!debug" - .lex unicode:"$\x{a2}", rx148_cur + .local string rx157_tgt + .local int rx157_pos + .local int rx157_off + .local int rx157_eos + .local int rx157_rep + .local pmc rx157_cur + .local pmc rx157_debug + (rx157_cur, rx157_pos, rx157_tgt, $I10) = self."!cursor_start"() + getattribute rx157_debug, rx157_cur, "$!debug" + .lex unicode:"$\x{a2}", rx157_cur .local pmc match .lex "$/", match - length rx148_eos, rx148_tgt - gt rx148_pos, rx148_eos, rx148_done - set rx148_off, 0 - lt rx148_pos, 2, rx148_start - sub rx148_off, rx148_pos, 1 - substr rx148_tgt, rx148_tgt, rx148_off - rx148_start: - eq $I10, 1, rx148_restart - if_null rx148_debug, debug_224 - rx148_cur."!cursor_debug"("START ", "quantifier:sym") - debug_224: + length rx157_eos, rx157_tgt + gt rx157_pos, rx157_eos, rx157_done + set rx157_off, 0 + lt rx157_pos, 2, rx157_start + sub rx157_off, rx157_pos, 1 + substr rx157_tgt, rx157_tgt, rx157_off + rx157_start: + eq $I10, 1, rx157_restart + if_null rx157_debug, debug_230 + rx157_cur."!cursor_debug"("START", "quantifier:sym") + debug_230: $I10 = self.'from'() - ne $I10, -1, rxscan152_done - goto rxscan152_scan - rxscan152_loop: - ($P10) = rx148_cur."from"() + ne $I10, -1, rxscan161_done + goto rxscan161_scan + rxscan161_loop: + ($P10) = rx157_cur."from"() inc $P10 - set rx148_pos, $P10 - ge rx148_pos, rx148_eos, rxscan152_done - rxscan152_scan: - set_addr $I10, rxscan152_loop - rx148_cur."!mark_push"(0, rx148_pos, $I10) - rxscan152_done: -.annotate 'line', 57 + set rx157_pos, $P10 + ge rx157_pos, rx157_eos, rxscan161_done + rxscan161_scan: + set_addr $I10, rxscan161_loop + rx157_cur."!mark_push"(0, rx157_pos, $I10) + rxscan161_done: +.annotate 'line', 64 # rx subcapture "sym" - set_addr $I10, rxcap_153_fail - rx148_cur."!mark_push"(0, rx148_pos, $I10) + set_addr $I10, rxcap_162_fail + rx157_cur."!mark_push"(0, rx157_pos, $I10) # rx literal "?" - add $I11, rx148_pos, 1 - gt $I11, rx148_eos, rx148_fail - sub $I11, rx148_pos, rx148_off - ord $I11, rx148_tgt, $I11 - ne $I11, 63, rx148_fail - add rx148_pos, 1 - set_addr $I10, rxcap_153_fail - ($I12, $I11) = rx148_cur."!mark_peek"($I10) - rx148_cur."!cursor_pos"($I11) - ($P10) = rx148_cur."!cursor_start"() - $P10."!cursor_pass"(rx148_pos, "") - rx148_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx157_pos, 1 + gt $I11, rx157_eos, rx157_fail + sub $I11, rx157_pos, rx157_off + ord $I11, rx157_tgt, $I11 + ne $I11, 63, rx157_fail + add rx157_pos, 1 + set_addr $I10, rxcap_162_fail + ($I12, $I11) = rx157_cur."!mark_peek"($I10) + rx157_cur."!cursor_pos"($I11) + ($P10) = rx157_cur."!cursor_start"() + $P10."!cursor_pass"(rx157_pos, "") + rx157_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_153_done - rxcap_153_fail: - goto rx148_fail - rxcap_153_done: + goto rxcap_162_done + rxcap_162_fail: + goto rx157_fail + rxcap_162_done: # rx subrule "backmod" subtype=capture negate= - rx148_cur."!cursor_pos"(rx148_pos) - $P10 = rx148_cur."backmod"() - unless $P10, rx148_fail - rx148_cur."!mark_push"(0, -1, 0, $P10) + rx157_cur."!cursor_pos"(rx157_pos) + $P10 = rx157_cur."backmod"() + unless $P10, rx157_fail + rx157_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("backmod") - rx148_pos = $P10."pos"() + rx157_pos = $P10."pos"() # rx pass - rx148_cur."!cursor_pass"(rx148_pos, "quantifier:sym") - if_null rx148_debug, debug_225 - rx148_cur."!cursor_debug"("PASS ", "quantifier:sym", " at pos=", rx148_pos) - debug_225: - .return (rx148_cur) - rx148_restart: + rx157_cur."!cursor_pass"(rx157_pos, "quantifier:sym") + if_null rx157_debug, debug_231 + rx157_cur."!cursor_debug"("PASS", "quantifier:sym", " at pos=", rx157_pos) + debug_231: + .return (rx157_cur) + rx157_restart: .annotate 'line', 3 - if_null rx148_debug, debug_226 - rx148_cur."!cursor_debug"("NEXT ", "quantifier:sym") - debug_226: - rx148_fail: - (rx148_rep, rx148_pos, $I10, $P10) = rx148_cur."!mark_fail"(0) - lt rx148_pos, -1, rx148_done - eq rx148_pos, -1, rx148_fail + if_null rx157_debug, debug_232 + rx157_cur."!cursor_debug"("NEXT", "quantifier:sym") + debug_232: + rx157_fail: + (rx157_rep, rx157_pos, $I10, $P10) = rx157_cur."!mark_fail"(0) + lt rx157_pos, -1, rx157_done + eq rx157_pos, -1, rx157_fail jump $I10 - rx148_done: - rx148_cur."!cursor_fail"() - if_null rx148_debug, debug_227 - rx148_cur."!cursor_debug"("FAIL ", "quantifier:sym") - debug_227: - .return (rx148_cur) + rx157_done: + rx157_cur."!cursor_fail"() + if_null rx157_debug, debug_233 + rx157_cur."!cursor_debug"("FAIL", "quantifier:sym") + debug_233: + .return (rx157_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier:sym" :subid("43_1282016522.91354") :method +.sub "!PREFIX__quantifier:sym" :subid("45_1282323996.47527") :method .annotate 'line', 3 - $P150 = self."!PREFIX__!subrule"("backmod", "?") - new $P151, "ResizablePMCArray" - push $P151, $P150 - .return ($P151) + $P159 = self."!PREFIX__!subrule"("backmod", "?") + new $P160, "ResizablePMCArray" + push $P160, $P159 + .return ($P160) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "quantifier:sym<**>" :subid("44_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "quantifier:sym<**>" :subid("46_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx155_tgt - .local int rx155_pos - .local int rx155_off - .local int rx155_eos - .local int rx155_rep - .local pmc rx155_cur - .local pmc rx155_debug - (rx155_cur, rx155_pos, rx155_tgt, $I10) = self."!cursor_start"() - rx155_cur."!cursor_caparray"("max", "normspace") - getattribute rx155_debug, rx155_cur, "$!debug" - .lex unicode:"$\x{a2}", rx155_cur + .local string rx164_tgt + .local int rx164_pos + .local int rx164_off + .local int rx164_eos + .local int rx164_rep + .local pmc rx164_cur + .local pmc rx164_debug + (rx164_cur, rx164_pos, rx164_tgt, $I10) = self."!cursor_start"() + rx164_cur."!cursor_caparray"("max", "normspace") + getattribute rx164_debug, rx164_cur, "$!debug" + .lex unicode:"$\x{a2}", rx164_cur .local pmc match .lex "$/", match - length rx155_eos, rx155_tgt - gt rx155_pos, rx155_eos, rx155_done - set rx155_off, 0 - lt rx155_pos, 2, rx155_start - sub rx155_off, rx155_pos, 1 - substr rx155_tgt, rx155_tgt, rx155_off - rx155_start: - eq $I10, 1, rx155_restart - if_null rx155_debug, debug_228 - rx155_cur."!cursor_debug"("START ", "quantifier:sym<**>") - debug_228: + length rx164_eos, rx164_tgt + gt rx164_pos, rx164_eos, rx164_done + set rx164_off, 0 + lt rx164_pos, 2, rx164_start + sub rx164_off, rx164_pos, 1 + substr rx164_tgt, rx164_tgt, rx164_off + rx164_start: + eq $I10, 1, rx164_restart + if_null rx164_debug, debug_234 + rx164_cur."!cursor_debug"("START", "quantifier:sym<**>") + debug_234: $I10 = self.'from'() - ne $I10, -1, rxscan158_done - goto rxscan158_scan - rxscan158_loop: - ($P10) = rx155_cur."from"() + ne $I10, -1, rxscan167_done + goto rxscan167_scan + rxscan167_loop: + ($P10) = rx164_cur."from"() inc $P10 - set rx155_pos, $P10 - ge rx155_pos, rx155_eos, rxscan158_done - rxscan158_scan: - set_addr $I10, rxscan158_loop - rx155_cur."!mark_push"(0, rx155_pos, $I10) - rxscan158_done: -.annotate 'line', 59 + set rx164_pos, $P10 + ge rx164_pos, rx164_eos, rxscan167_done + rxscan167_scan: + set_addr $I10, rxscan167_loop + rx164_cur."!mark_push"(0, rx164_pos, $I10) + rxscan167_done: +.annotate 'line', 66 # rx subcapture "sym" - set_addr $I10, rxcap_159_fail - rx155_cur."!mark_push"(0, rx155_pos, $I10) + set_addr $I10, rxcap_168_fail + rx164_cur."!mark_push"(0, rx164_pos, $I10) # rx literal "**" - add $I11, rx155_pos, 2 - gt $I11, rx155_eos, rx155_fail - sub $I11, rx155_pos, rx155_off - substr $S10, rx155_tgt, $I11, 2 - ne $S10, "**", rx155_fail - add rx155_pos, 2 - set_addr $I10, rxcap_159_fail - ($I12, $I11) = rx155_cur."!mark_peek"($I10) - rx155_cur."!cursor_pos"($I11) - ($P10) = rx155_cur."!cursor_start"() - $P10."!cursor_pass"(rx155_pos, "") - rx155_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx164_pos, 2 + gt $I11, rx164_eos, rx164_fail + sub $I11, rx164_pos, rx164_off + substr $S10, rx164_tgt, $I11, 2 + ne $S10, "**", rx164_fail + add rx164_pos, 2 + set_addr $I10, rxcap_168_fail + ($I12, $I11) = rx164_cur."!mark_peek"($I10) + rx164_cur."!cursor_pos"($I11) + ($P10) = rx164_cur."!cursor_start"() + $P10."!cursor_pass"(rx164_pos, "") + rx164_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_159_done - rxcap_159_fail: - goto rx155_fail - rxcap_159_done: - # rx rxquantr160 ** 0..1 - set_addr $I10, rxquantr160_done - rx155_cur."!mark_push"(0, rx155_pos, $I10) - rxquantr160_loop: + goto rxcap_168_done + rxcap_168_fail: + goto rx164_fail + rxcap_168_done: + # rx rxquantr169 ** 0..1 + set_addr $I10, rxquantr169_done + rx164_cur."!mark_push"(0, rx164_pos, $I10) + rxquantr169_loop: # rx subrule "normspace" subtype=capture negate= - rx155_cur."!cursor_pos"(rx155_pos) - $P10 = rx155_cur."normspace"() - unless $P10, rx155_fail - goto rxsubrule161_pass - rxsubrule161_back: + rx164_cur."!cursor_pos"(rx164_pos) + $P10 = rx164_cur."normspace"() + unless $P10, rx164_fail + goto rxsubrule170_pass + rxsubrule170_back: $P10 = $P10."!cursor_next"() - unless $P10, rx155_fail - rxsubrule161_pass: - set_addr $I10, rxsubrule161_back - rx155_cur."!mark_push"(0, rx155_pos, $I10, $P10) + unless $P10, rx164_fail + rxsubrule170_pass: + set_addr $I10, rxsubrule170_back + rx164_cur."!mark_push"(0, rx164_pos, $I10, $P10) $P10."!cursor_names"("normspace") - rx155_pos = $P10."pos"() - set_addr $I10, rxquantr160_done - (rx155_rep) = rx155_cur."!mark_commit"($I10) - rxquantr160_done: + rx164_pos = $P10."pos"() + set_addr $I10, rxquantr169_done + (rx164_rep) = rx164_cur."!mark_commit"($I10) + rxquantr169_done: # rx subrule "backmod" subtype=capture negate= - rx155_cur."!cursor_pos"(rx155_pos) - $P10 = rx155_cur."backmod"() - unless $P10, rx155_fail - rx155_cur."!mark_push"(0, -1, 0, $P10) + rx164_cur."!cursor_pos"(rx164_pos) + $P10 = rx164_cur."backmod"() + unless $P10, rx164_fail + rx164_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("backmod") - rx155_pos = $P10."pos"() - # rx rxquantr162 ** 0..1 - set_addr $I10, rxquantr162_done - rx155_cur."!mark_push"(0, rx155_pos, $I10) - rxquantr162_loop: + rx164_pos = $P10."pos"() + # rx rxquantr171 ** 0..1 + set_addr $I10, rxquantr171_done + rx164_cur."!mark_push"(0, rx164_pos, $I10) + rxquantr171_loop: # rx subrule "normspace" subtype=capture negate= - rx155_cur."!cursor_pos"(rx155_pos) - $P10 = rx155_cur."normspace"() - unless $P10, rx155_fail - goto rxsubrule163_pass - rxsubrule163_back: + rx164_cur."!cursor_pos"(rx164_pos) + $P10 = rx164_cur."normspace"() + unless $P10, rx164_fail + goto rxsubrule172_pass + rxsubrule172_back: $P10 = $P10."!cursor_next"() - unless $P10, rx155_fail - rxsubrule163_pass: - set_addr $I10, rxsubrule163_back - rx155_cur."!mark_push"(0, rx155_pos, $I10, $P10) + unless $P10, rx164_fail + rxsubrule172_pass: + set_addr $I10, rxsubrule172_back + rx164_cur."!mark_push"(0, rx164_pos, $I10, $P10) $P10."!cursor_names"("normspace") - rx155_pos = $P10."pos"() - set_addr $I10, rxquantr162_done - (rx155_rep) = rx155_cur."!mark_commit"($I10) - rxquantr162_done: - alt164_0: -.annotate 'line', 60 - set_addr $I10, alt164_1 - rx155_cur."!mark_push"(0, rx155_pos, $I10) -.annotate 'line', 61 + rx164_pos = $P10."pos"() + set_addr $I10, rxquantr171_done + (rx164_rep) = rx164_cur."!mark_commit"($I10) + rxquantr171_done: + alt173_0: +.annotate 'line', 67 + set_addr $I10, alt173_1 + rx164_cur."!mark_push"(0, rx164_pos, $I10) +.annotate 'line', 68 # rx subcapture "min" - set_addr $I10, rxcap_165_fail - rx155_cur."!mark_push"(0, rx155_pos, $I10) + set_addr $I10, rxcap_174_fail + rx164_cur."!mark_push"(0, rx164_pos, $I10) # rx charclass_q d r 1..-1 - sub $I10, rx155_pos, rx155_off - find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_eos + sub $I10, rx164_pos, rx164_off + find_not_cclass $I11, 8, rx164_tgt, $I10, rx164_eos add $I12, $I10, 1 - lt $I11, $I12, rx155_fail - add rx155_pos, rx155_off, $I11 - set_addr $I10, rxcap_165_fail - ($I12, $I11) = rx155_cur."!mark_peek"($I10) - rx155_cur."!cursor_pos"($I11) - ($P10) = rx155_cur."!cursor_start"() - $P10."!cursor_pass"(rx155_pos, "") - rx155_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, $I12, rx164_fail + add rx164_pos, rx164_off, $I11 + set_addr $I10, rxcap_174_fail + ($I12, $I11) = rx164_cur."!mark_peek"($I10) + rx164_cur."!cursor_pos"($I11) + ($P10) = rx164_cur."!cursor_start"() + $P10."!cursor_pass"(rx164_pos, "") + rx164_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("min") - goto rxcap_165_done - rxcap_165_fail: - goto rx155_fail - rxcap_165_done: -.annotate 'line', 68 - # rx rxquantr166 ** 0..1 - set_addr $I10, rxquantr166_done - rx155_cur."!mark_push"(0, rx155_pos, $I10) - rxquantr166_loop: -.annotate 'line', 62 + goto rxcap_174_done + rxcap_174_fail: + goto rx164_fail + rxcap_174_done: +.annotate 'line', 75 + # rx rxquantr175 ** 0..1 + set_addr $I10, rxquantr175_done + rx164_cur."!mark_push"(0, rx164_pos, $I10) + rxquantr175_loop: +.annotate 'line', 69 # rx literal ".." - add $I11, rx155_pos, 2 - gt $I11, rx155_eos, rx155_fail - sub $I11, rx155_pos, rx155_off - substr $S10, rx155_tgt, $I11, 2 - ne $S10, "..", rx155_fail - add rx155_pos, 2 -.annotate 'line', 63 + add $I11, rx164_pos, 2 + gt $I11, rx164_eos, rx164_fail + sub $I11, rx164_pos, rx164_off + substr $S10, rx164_tgt, $I11, 2 + ne $S10, "..", rx164_fail + add rx164_pos, 2 +.annotate 'line', 70 # rx subcapture "max" - set_addr $I10, rxcap_168_fail - rx155_cur."!mark_push"(0, rx155_pos, $I10) - alt167_0: - set_addr $I10, alt167_1 - rx155_cur."!mark_push"(0, rx155_pos, $I10) -.annotate 'line', 64 + set_addr $I10, rxcap_177_fail + rx164_cur."!mark_push"(0, rx164_pos, $I10) + alt176_0: + set_addr $I10, alt176_1 + rx164_cur."!mark_push"(0, rx164_pos, $I10) +.annotate 'line', 71 # rx charclass_q d r 1..-1 - sub $I10, rx155_pos, rx155_off - find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_eos + sub $I10, rx164_pos, rx164_off + find_not_cclass $I11, 8, rx164_tgt, $I10, rx164_eos add $I12, $I10, 1 - lt $I11, $I12, rx155_fail - add rx155_pos, rx155_off, $I11 - goto alt167_end - alt167_1: - set_addr $I10, alt167_2 - rx155_cur."!mark_push"(0, rx155_pos, $I10) -.annotate 'line', 65 + lt $I11, $I12, rx164_fail + add rx164_pos, rx164_off, $I11 + goto alt176_end + alt176_1: + set_addr $I10, alt176_2 + rx164_cur."!mark_push"(0, rx164_pos, $I10) +.annotate 'line', 72 # rx literal "*" - add $I11, rx155_pos, 1 - gt $I11, rx155_eos, rx155_fail - sub $I11, rx155_pos, rx155_off - ord $I11, rx155_tgt, $I11 - ne $I11, 42, rx155_fail - add rx155_pos, 1 - goto alt167_end - alt167_2: -.annotate 'line', 66 + add $I11, rx164_pos, 1 + gt $I11, rx164_eos, rx164_fail + sub $I11, rx164_pos, rx164_off + ord $I11, rx164_tgt, $I11 + ne $I11, 42, rx164_fail + add rx164_pos, 1 + goto alt176_end + alt176_2: +.annotate 'line', 73 # rx subrule "panic" subtype=method negate= - rx155_cur."!cursor_pos"(rx155_pos) - $P10 = rx155_cur."panic"("Only integers or '*' allowed as range quantifier endpoint") - unless $P10, rx155_fail - rx155_pos = $P10."pos"() - alt167_end: -.annotate 'line', 63 - set_addr $I10, rxcap_168_fail - ($I12, $I11) = rx155_cur."!mark_peek"($I10) - rx155_cur."!cursor_pos"($I11) - ($P10) = rx155_cur."!cursor_start"() - $P10."!cursor_pass"(rx155_pos, "") - rx155_cur."!mark_push"(0, -1, 0, $P10) + rx164_cur."!cursor_pos"(rx164_pos) + $P10 = rx164_cur."panic"("Only integers or '*' allowed as range quantifier endpoint") + unless $P10, rx164_fail + rx164_pos = $P10."pos"() + alt176_end: +.annotate 'line', 70 + set_addr $I10, rxcap_177_fail + ($I12, $I11) = rx164_cur."!mark_peek"($I10) + rx164_cur."!cursor_pos"($I11) + ($P10) = rx164_cur."!cursor_start"() + $P10."!cursor_pass"(rx164_pos, "") + rx164_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("max") - goto rxcap_168_done - rxcap_168_fail: - goto rx155_fail - rxcap_168_done: + goto rxcap_177_done + rxcap_177_fail: + goto rx164_fail + rxcap_177_done: +.annotate 'line', 75 + set_addr $I10, rxquantr175_done + (rx164_rep) = rx164_cur."!mark_commit"($I10) + rxquantr175_done: .annotate 'line', 68 - set_addr $I10, rxquantr166_done - (rx155_rep) = rx155_cur."!mark_commit"($I10) - rxquantr166_done: -.annotate 'line', 61 - goto alt164_end - alt164_1: -.annotate 'line', 69 + goto alt173_end + alt173_1: +.annotate 'line', 76 # rx subrule "quantified_atom" subtype=capture negate= - rx155_cur."!cursor_pos"(rx155_pos) - $P10 = rx155_cur."quantified_atom"() - unless $P10, rx155_fail - rx155_cur."!mark_push"(0, -1, 0, $P10) + rx164_cur."!cursor_pos"(rx164_pos) + $P10 = rx164_cur."quantified_atom"() + unless $P10, rx164_fail + rx164_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("quantified_atom") - rx155_pos = $P10."pos"() - alt164_end: -.annotate 'line', 58 + rx164_pos = $P10."pos"() + alt173_end: +.annotate 'line', 65 # rx pass - rx155_cur."!cursor_pass"(rx155_pos, "quantifier:sym<**>") - if_null rx155_debug, debug_229 - rx155_cur."!cursor_debug"("PASS ", "quantifier:sym<**>", " at pos=", rx155_pos) - debug_229: - .return (rx155_cur) - rx155_restart: + rx164_cur."!cursor_pass"(rx164_pos, "quantifier:sym<**>") + if_null rx164_debug, debug_235 + rx164_cur."!cursor_debug"("PASS", "quantifier:sym<**>", " at pos=", rx164_pos) + debug_235: + .return (rx164_cur) + rx164_restart: .annotate 'line', 3 - if_null rx155_debug, debug_230 - rx155_cur."!cursor_debug"("NEXT ", "quantifier:sym<**>") - debug_230: - rx155_fail: - (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0) - lt rx155_pos, -1, rx155_done - eq rx155_pos, -1, rx155_fail + if_null rx164_debug, debug_236 + rx164_cur."!cursor_debug"("NEXT", "quantifier:sym<**>") + debug_236: + rx164_fail: + (rx164_rep, rx164_pos, $I10, $P10) = rx164_cur."!mark_fail"(0) + lt rx164_pos, -1, rx164_done + eq rx164_pos, -1, rx164_fail jump $I10 - rx155_done: - rx155_cur."!cursor_fail"() - if_null rx155_debug, debug_231 - rx155_cur."!cursor_debug"("FAIL ", "quantifier:sym<**>") - debug_231: - .return (rx155_cur) + rx164_done: + rx164_cur."!cursor_fail"() + if_null rx164_debug, debug_237 + rx164_cur."!cursor_debug"("FAIL", "quantifier:sym<**>") + debug_237: + .return (rx164_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__quantifier:sym<**>" :subid("45_1282016522.91354") :method +.sub "!PREFIX__quantifier:sym<**>" :subid("47_1282323996.47527") :method .annotate 'line', 3 - new $P157, "ResizablePMCArray" - push $P157, "**" - .return ($P157) + new $P166, "ResizablePMCArray" + push $P166, "**" + .return ($P166) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backmod" :subid("46_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backmod" :subid("48_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .const 'Sub' $P177 = "48_1282016522.91354" - capture_lex $P177 - .local string rx170_tgt - .local int rx170_pos - .local int rx170_off - .local int rx170_eos - .local int rx170_rep - .local pmc rx170_cur - .local pmc rx170_debug - (rx170_cur, rx170_pos, rx170_tgt, $I10) = self."!cursor_start"() - getattribute rx170_debug, rx170_cur, "$!debug" - .lex unicode:"$\x{a2}", rx170_cur + .const 'Sub' $P186 = "50_1282323996.47527" + capture_lex $P186 + .local string rx179_tgt + .local int rx179_pos + .local int rx179_off + .local int rx179_eos + .local int rx179_rep + .local pmc rx179_cur + .local pmc rx179_debug + (rx179_cur, rx179_pos, rx179_tgt, $I10) = self."!cursor_start"() + getattribute rx179_debug, rx179_cur, "$!debug" + .lex unicode:"$\x{a2}", rx179_cur .local pmc match .lex "$/", match - length rx170_eos, rx170_tgt - gt rx170_pos, rx170_eos, rx170_done - set rx170_off, 0 - lt rx170_pos, 2, rx170_start - sub rx170_off, rx170_pos, 1 - substr rx170_tgt, rx170_tgt, rx170_off - rx170_start: - eq $I10, 1, rx170_restart - if_null rx170_debug, debug_232 - rx170_cur."!cursor_debug"("START ", "backmod") - debug_232: + length rx179_eos, rx179_tgt + gt rx179_pos, rx179_eos, rx179_done + set rx179_off, 0 + lt rx179_pos, 2, rx179_start + sub rx179_off, rx179_pos, 1 + substr rx179_tgt, rx179_tgt, rx179_off + rx179_start: + eq $I10, 1, rx179_restart + if_null rx179_debug, debug_238 + rx179_cur."!cursor_debug"("START", "backmod") + debug_238: $I10 = self.'from'() - ne $I10, -1, rxscan173_done - goto rxscan173_scan - rxscan173_loop: - ($P10) = rx170_cur."from"() + ne $I10, -1, rxscan182_done + goto rxscan182_scan + rxscan182_loop: + ($P10) = rx179_cur."from"() inc $P10 - set rx170_pos, $P10 - ge rx170_pos, rx170_eos, rxscan173_done - rxscan173_scan: - set_addr $I10, rxscan173_loop - rx170_cur."!mark_push"(0, rx170_pos, $I10) - rxscan173_done: -.annotate 'line', 73 - # rx rxquantr174 ** 0..1 - set_addr $I10, rxquantr174_done - rx170_cur."!mark_push"(0, rx170_pos, $I10) - rxquantr174_loop: + set rx179_pos, $P10 + ge rx179_pos, rx179_eos, rxscan182_done + rxscan182_scan: + set_addr $I10, rxscan182_loop + rx179_cur."!mark_push"(0, rx179_pos, $I10) + rxscan182_done: +.annotate 'line', 80 + # rx rxquantr183 ** 0..1 + set_addr $I10, rxquantr183_done + rx179_cur."!mark_push"(0, rx179_pos, $I10) + rxquantr183_loop: # rx literal ":" - add $I11, rx170_pos, 1 - gt $I11, rx170_eos, rx170_fail - sub $I11, rx170_pos, rx170_off - ord $I11, rx170_tgt, $I11 - ne $I11, 58, rx170_fail - add rx170_pos, 1 - set_addr $I10, rxquantr174_done - (rx170_rep) = rx170_cur."!mark_commit"($I10) - rxquantr174_done: - alt175_0: - set_addr $I10, alt175_1 - rx170_cur."!mark_push"(0, rx170_pos, $I10) + add $I11, rx179_pos, 1 + gt $I11, rx179_eos, rx179_fail + sub $I11, rx179_pos, rx179_off + ord $I11, rx179_tgt, $I11 + ne $I11, 58, rx179_fail + add rx179_pos, 1 + set_addr $I10, rxquantr183_done + (rx179_rep) = rx179_cur."!mark_commit"($I10) + rxquantr183_done: + alt184_0: + set_addr $I10, alt184_1 + rx179_cur."!mark_push"(0, rx179_pos, $I10) # rx literal "?" - add $I11, rx170_pos, 1 - gt $I11, rx170_eos, rx170_fail - sub $I11, rx170_pos, rx170_off - ord $I11, rx170_tgt, $I11 - ne $I11, 63, rx170_fail - add rx170_pos, 1 - goto alt175_end - alt175_1: - set_addr $I10, alt175_2 - rx170_cur."!mark_push"(0, rx170_pos, $I10) + add $I11, rx179_pos, 1 + gt $I11, rx179_eos, rx179_fail + sub $I11, rx179_pos, rx179_off + ord $I11, rx179_tgt, $I11 + ne $I11, 63, rx179_fail + add rx179_pos, 1 + goto alt184_end + alt184_1: + set_addr $I10, alt184_2 + rx179_cur."!mark_push"(0, rx179_pos, $I10) # rx literal "!" - add $I11, rx170_pos, 1 - gt $I11, rx170_eos, rx170_fail - sub $I11, rx170_pos, rx170_off - ord $I11, rx170_tgt, $I11 - ne $I11, 33, rx170_fail - add rx170_pos, 1 - goto alt175_end - alt175_2: + add $I11, rx179_pos, 1 + gt $I11, rx179_eos, rx179_fail + sub $I11, rx179_pos, rx179_off + ord $I11, rx179_tgt, $I11 + ne $I11, 33, rx179_fail + add rx179_pos, 1 + goto alt184_end + alt184_2: # rx subrule "before" subtype=zerowidth negate=1 - rx170_cur."!cursor_pos"(rx170_pos) - .const 'Sub' $P177 = "48_1282016522.91354" - capture_lex $P177 - $P10 = rx170_cur."before"($P177) - if $P10, rx170_fail - alt175_end: + rx179_cur."!cursor_pos"(rx179_pos) + .const 'Sub' $P186 = "50_1282323996.47527" + capture_lex $P186 + $P10 = rx179_cur."before"($P186) + if $P10, rx179_fail + alt184_end: # rx pass - rx170_cur."!cursor_pass"(rx170_pos, "backmod") - if_null rx170_debug, debug_237 - rx170_cur."!cursor_debug"("PASS ", "backmod", " at pos=", rx170_pos) - debug_237: - .return (rx170_cur) - rx170_restart: + rx179_cur."!cursor_pass"(rx179_pos, "backmod") + if_null rx179_debug, debug_243 + rx179_cur."!cursor_debug"("PASS", "backmod", " at pos=", rx179_pos) + debug_243: + .return (rx179_cur) + rx179_restart: .annotate 'line', 3 - if_null rx170_debug, debug_238 - rx170_cur."!cursor_debug"("NEXT ", "backmod") - debug_238: - rx170_fail: - (rx170_rep, rx170_pos, $I10, $P10) = rx170_cur."!mark_fail"(0) - lt rx170_pos, -1, rx170_done - eq rx170_pos, -1, rx170_fail + if_null rx179_debug, debug_244 + rx179_cur."!cursor_debug"("NEXT", "backmod") + debug_244: + rx179_fail: + (rx179_rep, rx179_pos, $I10, $P10) = rx179_cur."!mark_fail"(0) + lt rx179_pos, -1, rx179_done + eq rx179_pos, -1, rx179_fail jump $I10 - rx170_done: - rx170_cur."!cursor_fail"() - if_null rx170_debug, debug_239 - rx170_cur."!cursor_debug"("FAIL ", "backmod") - debug_239: - .return (rx170_cur) + rx179_done: + rx179_cur."!cursor_fail"() + if_null rx179_debug, debug_245 + rx179_cur."!cursor_debug"("FAIL", "backmod") + debug_245: + .return (rx179_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backmod" :subid("47_1282016522.91354") :method +.sub "!PREFIX__backmod" :subid("49_1282323996.47527") :method .annotate 'line', 3 - new $P172, "ResizablePMCArray" - push $P172, "" - .return ($P172) + new $P181, "ResizablePMCArray" + push $P181, "" + .return ($P181) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block176" :anon :subid("48_1282016522.91354") :method :outer("46_1282016522.91354") -.annotate 'line', 73 - .local string rx178_tgt - .local int rx178_pos - .local int rx178_off - .local int rx178_eos - .local int rx178_rep - .local pmc rx178_cur - .local pmc rx178_debug - (rx178_cur, rx178_pos, rx178_tgt, $I10) = self."!cursor_start"() - getattribute rx178_debug, rx178_cur, "$!debug" - .lex unicode:"$\x{a2}", rx178_cur +.sub "_block185" :anon :subid("50_1282323996.47527") :method :outer("48_1282323996.47527") +.annotate 'line', 80 + .local string rx187_tgt + .local int rx187_pos + .local int rx187_off + .local int rx187_eos + .local int rx187_rep + .local pmc rx187_cur + .local pmc rx187_debug + (rx187_cur, rx187_pos, rx187_tgt, $I10) = self."!cursor_start"() + getattribute rx187_debug, rx187_cur, "$!debug" + .lex unicode:"$\x{a2}", rx187_cur .local pmc match .lex "$/", match - length rx178_eos, rx178_tgt - gt rx178_pos, rx178_eos, rx178_done - set rx178_off, 0 - lt rx178_pos, 2, rx178_start - sub rx178_off, rx178_pos, 1 - substr rx178_tgt, rx178_tgt, rx178_off - rx178_start: - eq $I10, 1, rx178_restart - if_null rx178_debug, debug_233 - rx178_cur."!cursor_debug"("START ", "") - debug_233: + length rx187_eos, rx187_tgt + gt rx187_pos, rx187_eos, rx187_done + set rx187_off, 0 + lt rx187_pos, 2, rx187_start + sub rx187_off, rx187_pos, 1 + substr rx187_tgt, rx187_tgt, rx187_off + rx187_start: + eq $I10, 1, rx187_restart + if_null rx187_debug, debug_239 + rx187_cur."!cursor_debug"("START", "") + debug_239: $I10 = self.'from'() - ne $I10, -1, rxscan179_done - goto rxscan179_scan - rxscan179_loop: - ($P10) = rx178_cur."from"() + ne $I10, -1, rxscan188_done + goto rxscan188_scan + rxscan188_loop: + ($P10) = rx187_cur."from"() inc $P10 - set rx178_pos, $P10 - ge rx178_pos, rx178_eos, rxscan179_done - rxscan179_scan: - set_addr $I10, rxscan179_loop - rx178_cur."!mark_push"(0, rx178_pos, $I10) - rxscan179_done: + set rx187_pos, $P10 + ge rx187_pos, rx187_eos, rxscan188_done + rxscan188_scan: + set_addr $I10, rxscan188_loop + rx187_cur."!mark_push"(0, rx187_pos, $I10) + rxscan188_done: # rx literal ":" - add $I11, rx178_pos, 1 - gt $I11, rx178_eos, rx178_fail - sub $I11, rx178_pos, rx178_off - ord $I11, rx178_tgt, $I11 - ne $I11, 58, rx178_fail - add rx178_pos, 1 + add $I11, rx187_pos, 1 + gt $I11, rx187_eos, rx187_fail + sub $I11, rx187_pos, rx187_off + ord $I11, rx187_tgt, $I11 + ne $I11, 58, rx187_fail + add rx187_pos, 1 # rx pass - rx178_cur."!cursor_pass"(rx178_pos, "") - if_null rx178_debug, debug_234 - rx178_cur."!cursor_debug"("PASS ", "", " at pos=", rx178_pos) - debug_234: - .return (rx178_cur) - rx178_restart: - if_null rx178_debug, debug_235 - rx178_cur."!cursor_debug"("NEXT ", "") - debug_235: - rx178_fail: - (rx178_rep, rx178_pos, $I10, $P10) = rx178_cur."!mark_fail"(0) - lt rx178_pos, -1, rx178_done - eq rx178_pos, -1, rx178_fail + rx187_cur."!cursor_pass"(rx187_pos, "") + if_null rx187_debug, debug_240 + rx187_cur."!cursor_debug"("PASS", "", " at pos=", rx187_pos) + debug_240: + .return (rx187_cur) + rx187_restart: + if_null rx187_debug, debug_241 + rx187_cur."!cursor_debug"("NEXT", "") + debug_241: + rx187_fail: + (rx187_rep, rx187_pos, $I10, $P10) = rx187_cur."!mark_fail"(0) + lt rx187_pos, -1, rx187_done + eq rx187_pos, -1, rx187_fail jump $I10 - rx178_done: - rx178_cur."!cursor_fail"() - if_null rx178_debug, debug_236 - rx178_cur."!cursor_debug"("FAIL ", "") - debug_236: - .return (rx178_cur) + rx187_done: + rx187_cur."!cursor_fail"() + if_null rx187_debug, debug_242 + rx187_cur."!cursor_debug"("FAIL", "") + debug_242: + .return (rx187_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar" :subid("49_1282016522.91354") :method -.annotate 'line', 75 - $P181 = self."!protoregex"("metachar") - .return ($P181) +.sub "metachar" :subid("51_1282323996.47527") :method +.annotate 'line', 82 + $P190 = self."!protoregex"("metachar") + .return ($P190) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar" :subid("50_1282016522.91354") :method -.annotate 'line', 75 - $P183 = self."!PREFIX__!protoregex"("metachar") - .return ($P183) +.sub "!PREFIX__metachar" :subid("52_1282323996.47527") :method +.annotate 'line', 82 + $P192 = self."!PREFIX__!protoregex"("metachar") + .return ($P192) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("51_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym" :subid("53_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx185_tgt - .local int rx185_pos - .local int rx185_off - .local int rx185_eos - .local int rx185_rep - .local pmc rx185_cur - .local pmc rx185_debug - (rx185_cur, rx185_pos, rx185_tgt, $I10) = self."!cursor_start"() - getattribute rx185_debug, rx185_cur, "$!debug" - .lex unicode:"$\x{a2}", rx185_cur + .local string rx194_tgt + .local int rx194_pos + .local int rx194_off + .local int rx194_eos + .local int rx194_rep + .local pmc rx194_cur + .local pmc rx194_debug + (rx194_cur, rx194_pos, rx194_tgt, $I10) = self."!cursor_start"() + getattribute rx194_debug, rx194_cur, "$!debug" + .lex unicode:"$\x{a2}", rx194_cur .local pmc match .lex "$/", match - length rx185_eos, rx185_tgt - gt rx185_pos, rx185_eos, rx185_done - set rx185_off, 0 - lt rx185_pos, 2, rx185_start - sub rx185_off, rx185_pos, 1 - substr rx185_tgt, rx185_tgt, rx185_off - rx185_start: - eq $I10, 1, rx185_restart - if_null rx185_debug, debug_240 - rx185_cur."!cursor_debug"("START ", "metachar:sym") - debug_240: + length rx194_eos, rx194_tgt + gt rx194_pos, rx194_eos, rx194_done + set rx194_off, 0 + lt rx194_pos, 2, rx194_start + sub rx194_off, rx194_pos, 1 + substr rx194_tgt, rx194_tgt, rx194_off + rx194_start: + eq $I10, 1, rx194_restart + if_null rx194_debug, debug_246 + rx194_cur."!cursor_debug"("START", "metachar:sym") + debug_246: $I10 = self.'from'() - ne $I10, -1, rxscan189_done - goto rxscan189_scan - rxscan189_loop: - ($P10) = rx185_cur."from"() + ne $I10, -1, rxscan198_done + goto rxscan198_scan + rxscan198_loop: + ($P10) = rx194_cur."from"() inc $P10 - set rx185_pos, $P10 - ge rx185_pos, rx185_eos, rxscan189_done - rxscan189_scan: - set_addr $I10, rxscan189_loop - rx185_cur."!mark_push"(0, rx185_pos, $I10) - rxscan189_done: -.annotate 'line', 76 + set rx194_pos, $P10 + ge rx194_pos, rx194_eos, rxscan198_done + rxscan198_scan: + set_addr $I10, rxscan198_loop + rx194_cur."!mark_push"(0, rx194_pos, $I10) + rxscan198_done: +.annotate 'line', 83 # rx subrule "normspace" subtype=method negate= - rx185_cur."!cursor_pos"(rx185_pos) - $P10 = rx185_cur."normspace"() - unless $P10, rx185_fail - rx185_pos = $P10."pos"() + rx194_cur."!cursor_pos"(rx194_pos) + $P10 = rx194_cur."normspace"() + unless $P10, rx194_fail + rx194_pos = $P10."pos"() # rx pass - rx185_cur."!cursor_pass"(rx185_pos, "metachar:sym") - if_null rx185_debug, debug_241 - rx185_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx185_pos) - debug_241: - .return (rx185_cur) - rx185_restart: + rx194_cur."!cursor_pass"(rx194_pos, "metachar:sym") + if_null rx194_debug, debug_247 + rx194_cur."!cursor_debug"("PASS", "metachar:sym", " at pos=", rx194_pos) + debug_247: + .return (rx194_cur) + rx194_restart: .annotate 'line', 3 - if_null rx185_debug, debug_242 - rx185_cur."!cursor_debug"("NEXT ", "metachar:sym") - debug_242: - rx185_fail: - (rx185_rep, rx185_pos, $I10, $P10) = rx185_cur."!mark_fail"(0) - lt rx185_pos, -1, rx185_done - eq rx185_pos, -1, rx185_fail + if_null rx194_debug, debug_248 + rx194_cur."!cursor_debug"("NEXT", "metachar:sym") + debug_248: + rx194_fail: + (rx194_rep, rx194_pos, $I10, $P10) = rx194_cur."!mark_fail"(0) + lt rx194_pos, -1, rx194_done + eq rx194_pos, -1, rx194_fail jump $I10 - rx185_done: - rx185_cur."!cursor_fail"() - if_null rx185_debug, debug_243 - rx185_cur."!cursor_debug"("FAIL ", "metachar:sym") - debug_243: - .return (rx185_cur) + rx194_done: + rx194_cur."!cursor_fail"() + if_null rx194_debug, debug_249 + rx194_cur."!cursor_debug"("FAIL", "metachar:sym") + debug_249: + .return (rx194_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("52_1282016522.91354") :method +.sub "!PREFIX__metachar:sym" :subid("54_1282323996.47527") :method .annotate 'line', 3 - $P187 = self."!PREFIX__!subrule"("normspace", "") - new $P188, "ResizablePMCArray" - push $P188, $P187 - .return ($P188) + $P196 = self."!PREFIX__!subrule"("normspace", "") + new $P197, "ResizablePMCArray" + push $P197, $P196 + .return ($P197) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<[ ]>" :subid("53_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<[ ]>" :subid("55_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx191_tgt - .local int rx191_pos - .local int rx191_off - .local int rx191_eos - .local int rx191_rep - .local pmc rx191_cur - .local pmc rx191_debug - (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"() - getattribute rx191_debug, rx191_cur, "$!debug" - .lex unicode:"$\x{a2}", rx191_cur + .local string rx200_tgt + .local int rx200_pos + .local int rx200_off + .local int rx200_eos + .local int rx200_rep + .local pmc rx200_cur + .local pmc rx200_debug + (rx200_cur, rx200_pos, rx200_tgt, $I10) = self."!cursor_start"() + getattribute rx200_debug, rx200_cur, "$!debug" + .lex unicode:"$\x{a2}", rx200_cur .local pmc match .lex "$/", match - length rx191_eos, rx191_tgt - gt rx191_pos, rx191_eos, rx191_done - set rx191_off, 0 - lt rx191_pos, 2, rx191_start - sub rx191_off, rx191_pos, 1 - substr rx191_tgt, rx191_tgt, rx191_off - rx191_start: - eq $I10, 1, rx191_restart - if_null rx191_debug, debug_244 - rx191_cur."!cursor_debug"("START ", "metachar:sym<[ ]>") - debug_244: + length rx200_eos, rx200_tgt + gt rx200_pos, rx200_eos, rx200_done + set rx200_off, 0 + lt rx200_pos, 2, rx200_start + sub rx200_off, rx200_pos, 1 + substr rx200_tgt, rx200_tgt, rx200_off + rx200_start: + eq $I10, 1, rx200_restart + if_null rx200_debug, debug_250 + rx200_cur."!cursor_debug"("START", "metachar:sym<[ ]>") + debug_250: $I10 = self.'from'() - ne $I10, -1, rxscan195_done - goto rxscan195_scan - rxscan195_loop: - ($P10) = rx191_cur."from"() + ne $I10, -1, rxscan204_done + goto rxscan204_scan + rxscan204_loop: + ($P10) = rx200_cur."from"() inc $P10 - set rx191_pos, $P10 - ge rx191_pos, rx191_eos, rxscan195_done - rxscan195_scan: - set_addr $I10, rxscan195_loop - rx191_cur."!mark_push"(0, rx191_pos, $I10) - rxscan195_done: -.annotate 'line', 77 + set rx200_pos, $P10 + ge rx200_pos, rx200_eos, rxscan204_done + rxscan204_scan: + set_addr $I10, rxscan204_loop + rx200_cur."!mark_push"(0, rx200_pos, $I10) + rxscan204_done: +.annotate 'line', 84 # rx literal "[" - add $I11, rx191_pos, 1 - gt $I11, rx191_eos, rx191_fail - sub $I11, rx191_pos, rx191_off - ord $I11, rx191_tgt, $I11 - ne $I11, 91, rx191_fail - add rx191_pos, 1 + add $I11, rx200_pos, 1 + gt $I11, rx200_eos, rx200_fail + sub $I11, rx200_pos, rx200_off + ord $I11, rx200_tgt, $I11 + ne $I11, 91, rx200_fail + add rx200_pos, 1 # rx subrule "nibbler" subtype=capture negate= - rx191_cur."!cursor_pos"(rx191_pos) - $P10 = rx191_cur."nibbler"() - unless $P10, rx191_fail - rx191_cur."!mark_push"(0, -1, 0, $P10) + rx200_cur."!cursor_pos"(rx200_pos) + $P10 = rx200_cur."nibbler"() + unless $P10, rx200_fail + rx200_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("nibbler") - rx191_pos = $P10."pos"() + rx200_pos = $P10."pos"() # rx literal "]" - add $I11, rx191_pos, 1 - gt $I11, rx191_eos, rx191_fail - sub $I11, rx191_pos, rx191_off - ord $I11, rx191_tgt, $I11 - ne $I11, 93, rx191_fail - add rx191_pos, 1 + add $I11, rx200_pos, 1 + gt $I11, rx200_eos, rx200_fail + sub $I11, rx200_pos, rx200_off + ord $I11, rx200_tgt, $I11 + ne $I11, 93, rx200_fail + add rx200_pos, 1 # rx pass - rx191_cur."!cursor_pass"(rx191_pos, "metachar:sym<[ ]>") - if_null rx191_debug, debug_245 - rx191_cur."!cursor_debug"("PASS ", "metachar:sym<[ ]>", " at pos=", rx191_pos) - debug_245: - .return (rx191_cur) - rx191_restart: + rx200_cur."!cursor_pass"(rx200_pos, "metachar:sym<[ ]>") + if_null rx200_debug, debug_251 + rx200_cur."!cursor_debug"("PASS", "metachar:sym<[ ]>", " at pos=", rx200_pos) + debug_251: + .return (rx200_cur) + rx200_restart: .annotate 'line', 3 - if_null rx191_debug, debug_246 - rx191_cur."!cursor_debug"("NEXT ", "metachar:sym<[ ]>") - debug_246: - rx191_fail: - (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0) - lt rx191_pos, -1, rx191_done - eq rx191_pos, -1, rx191_fail + if_null rx200_debug, debug_252 + rx200_cur."!cursor_debug"("NEXT", "metachar:sym<[ ]>") + debug_252: + rx200_fail: + (rx200_rep, rx200_pos, $I10, $P10) = rx200_cur."!mark_fail"(0) + lt rx200_pos, -1, rx200_done + eq rx200_pos, -1, rx200_fail jump $I10 - rx191_done: - rx191_cur."!cursor_fail"() - if_null rx191_debug, debug_247 - rx191_cur."!cursor_debug"("FAIL ", "metachar:sym<[ ]>") - debug_247: - .return (rx191_cur) + rx200_done: + rx200_cur."!cursor_fail"() + if_null rx200_debug, debug_253 + rx200_cur."!cursor_debug"("FAIL", "metachar:sym<[ ]>") + debug_253: + .return (rx200_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<[ ]>" :subid("54_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<[ ]>" :subid("56_1282323996.47527") :method .annotate 'line', 3 - $P193 = self."!PREFIX__!subrule"("nibbler", "[") - new $P194, "ResizablePMCArray" - push $P194, $P193 - .return ($P194) + $P202 = self."!PREFIX__!subrule"("nibbler", "[") + new $P203, "ResizablePMCArray" + push $P203, $P202 + .return ($P203) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<( )>" :subid("55_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<( )>" :subid("57_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx197_tgt - .local int rx197_pos - .local int rx197_off - .local int rx197_eos - .local int rx197_rep - .local pmc rx197_cur - .local pmc rx197_debug - (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"() - getattribute rx197_debug, rx197_cur, "$!debug" - .lex unicode:"$\x{a2}", rx197_cur + .local string rx206_tgt + .local int rx206_pos + .local int rx206_off + .local int rx206_eos + .local int rx206_rep + .local pmc rx206_cur + .local pmc rx206_debug + (rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"() + getattribute rx206_debug, rx206_cur, "$!debug" + .lex unicode:"$\x{a2}", rx206_cur .local pmc match .lex "$/", match - length rx197_eos, rx197_tgt - gt rx197_pos, rx197_eos, rx197_done - set rx197_off, 0 - lt rx197_pos, 2, rx197_start - sub rx197_off, rx197_pos, 1 - substr rx197_tgt, rx197_tgt, rx197_off - rx197_start: - eq $I10, 1, rx197_restart - if_null rx197_debug, debug_248 - rx197_cur."!cursor_debug"("START ", "metachar:sym<( )>") - debug_248: + length rx206_eos, rx206_tgt + gt rx206_pos, rx206_eos, rx206_done + set rx206_off, 0 + lt rx206_pos, 2, rx206_start + sub rx206_off, rx206_pos, 1 + substr rx206_tgt, rx206_tgt, rx206_off + rx206_start: + eq $I10, 1, rx206_restart + if_null rx206_debug, debug_254 + rx206_cur."!cursor_debug"("START", "metachar:sym<( )>") + debug_254: $I10 = self.'from'() - ne $I10, -1, rxscan201_done - goto rxscan201_scan - rxscan201_loop: - ($P10) = rx197_cur."from"() + ne $I10, -1, rxscan210_done + goto rxscan210_scan + rxscan210_loop: + ($P10) = rx206_cur."from"() inc $P10 - set rx197_pos, $P10 - ge rx197_pos, rx197_eos, rxscan201_done - rxscan201_scan: - set_addr $I10, rxscan201_loop - rx197_cur."!mark_push"(0, rx197_pos, $I10) - rxscan201_done: -.annotate 'line', 78 + set rx206_pos, $P10 + ge rx206_pos, rx206_eos, rxscan210_done + rxscan210_scan: + set_addr $I10, rxscan210_loop + rx206_cur."!mark_push"(0, rx206_pos, $I10) + rxscan210_done: +.annotate 'line', 85 # rx literal "(" - add $I11, rx197_pos, 1 - gt $I11, rx197_eos, rx197_fail - sub $I11, rx197_pos, rx197_off - ord $I11, rx197_tgt, $I11 - ne $I11, 40, rx197_fail - add rx197_pos, 1 + add $I11, rx206_pos, 1 + gt $I11, rx206_eos, rx206_fail + sub $I11, rx206_pos, rx206_off + ord $I11, rx206_tgt, $I11 + ne $I11, 40, rx206_fail + add rx206_pos, 1 # rx subrule "nibbler" subtype=capture negate= - rx197_cur."!cursor_pos"(rx197_pos) - $P10 = rx197_cur."nibbler"() - unless $P10, rx197_fail - rx197_cur."!mark_push"(0, -1, 0, $P10) + rx206_cur."!cursor_pos"(rx206_pos) + $P10 = rx206_cur."nibbler"() + unless $P10, rx206_fail + rx206_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("nibbler") - rx197_pos = $P10."pos"() + rx206_pos = $P10."pos"() # rx literal ")" - add $I11, rx197_pos, 1 - gt $I11, rx197_eos, rx197_fail - sub $I11, rx197_pos, rx197_off - ord $I11, rx197_tgt, $I11 - ne $I11, 41, rx197_fail - add rx197_pos, 1 + add $I11, rx206_pos, 1 + gt $I11, rx206_eos, rx206_fail + sub $I11, rx206_pos, rx206_off + ord $I11, rx206_tgt, $I11 + ne $I11, 41, rx206_fail + add rx206_pos, 1 # rx pass - rx197_cur."!cursor_pass"(rx197_pos, "metachar:sym<( )>") - if_null rx197_debug, debug_249 - rx197_cur."!cursor_debug"("PASS ", "metachar:sym<( )>", " at pos=", rx197_pos) - debug_249: - .return (rx197_cur) - rx197_restart: + rx206_cur."!cursor_pass"(rx206_pos, "metachar:sym<( )>") + if_null rx206_debug, debug_255 + rx206_cur."!cursor_debug"("PASS", "metachar:sym<( )>", " at pos=", rx206_pos) + debug_255: + .return (rx206_cur) + rx206_restart: .annotate 'line', 3 - if_null rx197_debug, debug_250 - rx197_cur."!cursor_debug"("NEXT ", "metachar:sym<( )>") - debug_250: - rx197_fail: - (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0) - lt rx197_pos, -1, rx197_done - eq rx197_pos, -1, rx197_fail + if_null rx206_debug, debug_256 + rx206_cur."!cursor_debug"("NEXT", "metachar:sym<( )>") + debug_256: + rx206_fail: + (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0) + lt rx206_pos, -1, rx206_done + eq rx206_pos, -1, rx206_fail jump $I10 - rx197_done: - rx197_cur."!cursor_fail"() - if_null rx197_debug, debug_251 - rx197_cur."!cursor_debug"("FAIL ", "metachar:sym<( )>") - debug_251: - .return (rx197_cur) + rx206_done: + rx206_cur."!cursor_fail"() + if_null rx206_debug, debug_257 + rx206_cur."!cursor_debug"("FAIL", "metachar:sym<( )>") + debug_257: + .return (rx206_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<( )>" :subid("56_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<( )>" :subid("58_1282323996.47527") :method .annotate 'line', 3 - $P199 = self."!PREFIX__!subrule"("nibbler", "(") - new $P200, "ResizablePMCArray" - push $P200, $P199 - .return ($P200) + $P208 = self."!PREFIX__!subrule"("nibbler", "(") + new $P209, "ResizablePMCArray" + push $P209, $P208 + .return ($P209) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<'>" :subid("57_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<'>" :subid("59_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx203_tgt - .local int rx203_pos - .local int rx203_off - .local int rx203_eos - .local int rx203_rep - .local pmc rx203_cur - .local pmc rx203_debug - (rx203_cur, rx203_pos, rx203_tgt, $I10) = self."!cursor_start"() - getattribute rx203_debug, rx203_cur, "$!debug" - .lex unicode:"$\x{a2}", rx203_cur + .local string rx212_tgt + .local int rx212_pos + .local int rx212_off + .local int rx212_eos + .local int rx212_rep + .local pmc rx212_cur + .local pmc rx212_debug + (rx212_cur, rx212_pos, rx212_tgt, $I10) = self."!cursor_start"() + getattribute rx212_debug, rx212_cur, "$!debug" + .lex unicode:"$\x{a2}", rx212_cur .local pmc match .lex "$/", match - length rx203_eos, rx203_tgt - gt rx203_pos, rx203_eos, rx203_done - set rx203_off, 0 - lt rx203_pos, 2, rx203_start - sub rx203_off, rx203_pos, 1 - substr rx203_tgt, rx203_tgt, rx203_off - rx203_start: - eq $I10, 1, rx203_restart - if_null rx203_debug, debug_252 - rx203_cur."!cursor_debug"("START ", "metachar:sym<'>") - debug_252: + length rx212_eos, rx212_tgt + gt rx212_pos, rx212_eos, rx212_done + set rx212_off, 0 + lt rx212_pos, 2, rx212_start + sub rx212_off, rx212_pos, 1 + substr rx212_tgt, rx212_tgt, rx212_off + rx212_start: + eq $I10, 1, rx212_restart + if_null rx212_debug, debug_258 + rx212_cur."!cursor_debug"("START", "metachar:sym<'>") + debug_258: $I10 = self.'from'() - ne $I10, -1, rxscan206_done - goto rxscan206_scan - rxscan206_loop: - ($P10) = rx203_cur."from"() + ne $I10, -1, rxscan215_done + goto rxscan215_scan + rxscan215_loop: + ($P10) = rx212_cur."from"() inc $P10 - set rx203_pos, $P10 - ge rx203_pos, rx203_eos, rxscan206_done - rxscan206_scan: - set_addr $I10, rxscan206_loop - rx203_cur."!mark_push"(0, rx203_pos, $I10) - rxscan206_done: -.annotate 'line', 79 + set rx212_pos, $P10 + ge rx212_pos, rx212_eos, rxscan215_done + rxscan215_scan: + set_addr $I10, rxscan215_loop + rx212_cur."!mark_push"(0, rx212_pos, $I10) + rxscan215_done: +.annotate 'line', 86 # rx enumcharlist negate=0 zerowidth - ge rx203_pos, rx203_eos, rx203_fail - sub $I10, rx203_pos, rx203_off - substr $S10, rx203_tgt, $I10, 1 + ge rx212_pos, rx212_eos, rx212_fail + sub $I10, rx212_pos, rx212_off + substr $S10, rx212_tgt, $I10, 1 index $I11, "'", $S10 - lt $I11, 0, rx203_fail + lt $I11, 0, rx212_fail # rx subrule "quote_EXPR" subtype=capture negate= - rx203_cur."!cursor_pos"(rx203_pos) - $P10 = rx203_cur."quote_EXPR"(":q") - unless $P10, rx203_fail - rx203_cur."!mark_push"(0, -1, 0, $P10) + rx212_cur."!cursor_pos"(rx212_pos) + $P10 = rx212_cur."quote_EXPR"(":q") + unless $P10, rx212_fail + rx212_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("quote_EXPR") - rx203_pos = $P10."pos"() + rx212_pos = $P10."pos"() # rx pass - rx203_cur."!cursor_pass"(rx203_pos, "metachar:sym<'>") - if_null rx203_debug, debug_253 - rx203_cur."!cursor_debug"("PASS ", "metachar:sym<'>", " at pos=", rx203_pos) - debug_253: - .return (rx203_cur) - rx203_restart: + rx212_cur."!cursor_pass"(rx212_pos, "metachar:sym<'>") + if_null rx212_debug, debug_259 + rx212_cur."!cursor_debug"("PASS", "metachar:sym<'>", " at pos=", rx212_pos) + debug_259: + .return (rx212_cur) + rx212_restart: .annotate 'line', 3 - if_null rx203_debug, debug_254 - rx203_cur."!cursor_debug"("NEXT ", "metachar:sym<'>") - debug_254: - rx203_fail: - (rx203_rep, rx203_pos, $I10, $P10) = rx203_cur."!mark_fail"(0) - lt rx203_pos, -1, rx203_done - eq rx203_pos, -1, rx203_fail + if_null rx212_debug, debug_260 + rx212_cur."!cursor_debug"("NEXT", "metachar:sym<'>") + debug_260: + rx212_fail: + (rx212_rep, rx212_pos, $I10, $P10) = rx212_cur."!mark_fail"(0) + lt rx212_pos, -1, rx212_done + eq rx212_pos, -1, rx212_fail jump $I10 - rx203_done: - rx203_cur."!cursor_fail"() - if_null rx203_debug, debug_255 - rx203_cur."!cursor_debug"("FAIL ", "metachar:sym<'>") - debug_255: - .return (rx203_cur) + rx212_done: + rx212_cur."!cursor_fail"() + if_null rx212_debug, debug_261 + rx212_cur."!cursor_debug"("FAIL", "metachar:sym<'>") + debug_261: + .return (rx212_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<'>" :subid("58_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<'>" :subid("60_1282323996.47527") :method .annotate 'line', 3 - new $P205, "ResizablePMCArray" - push $P205, "'" - .return ($P205) + new $P214, "ResizablePMCArray" + push $P214, "'" + .return ($P214) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<\">" :subid("59_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<\">" :subid("61_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx208_tgt - .local int rx208_pos - .local int rx208_off - .local int rx208_eos - .local int rx208_rep - .local pmc rx208_cur - .local pmc rx208_debug - (rx208_cur, rx208_pos, rx208_tgt, $I10) = self."!cursor_start"() - getattribute rx208_debug, rx208_cur, "$!debug" - .lex unicode:"$\x{a2}", rx208_cur + .local string rx217_tgt + .local int rx217_pos + .local int rx217_off + .local int rx217_eos + .local int rx217_rep + .local pmc rx217_cur + .local pmc rx217_debug + (rx217_cur, rx217_pos, rx217_tgt, $I10) = self."!cursor_start"() + getattribute rx217_debug, rx217_cur, "$!debug" + .lex unicode:"$\x{a2}", rx217_cur .local pmc match .lex "$/", match - length rx208_eos, rx208_tgt - gt rx208_pos, rx208_eos, rx208_done - set rx208_off, 0 - lt rx208_pos, 2, rx208_start - sub rx208_off, rx208_pos, 1 - substr rx208_tgt, rx208_tgt, rx208_off - rx208_start: - eq $I10, 1, rx208_restart - if_null rx208_debug, debug_256 - rx208_cur."!cursor_debug"("START ", "metachar:sym<\">") - debug_256: + length rx217_eos, rx217_tgt + gt rx217_pos, rx217_eos, rx217_done + set rx217_off, 0 + lt rx217_pos, 2, rx217_start + sub rx217_off, rx217_pos, 1 + substr rx217_tgt, rx217_tgt, rx217_off + rx217_start: + eq $I10, 1, rx217_restart + if_null rx217_debug, debug_262 + rx217_cur."!cursor_debug"("START", "metachar:sym<\">") + debug_262: $I10 = self.'from'() - ne $I10, -1, rxscan211_done - goto rxscan211_scan - rxscan211_loop: - ($P10) = rx208_cur."from"() + ne $I10, -1, rxscan220_done + goto rxscan220_scan + rxscan220_loop: + ($P10) = rx217_cur."from"() inc $P10 - set rx208_pos, $P10 - ge rx208_pos, rx208_eos, rxscan211_done - rxscan211_scan: - set_addr $I10, rxscan211_loop - rx208_cur."!mark_push"(0, rx208_pos, $I10) - rxscan211_done: -.annotate 'line', 80 + set rx217_pos, $P10 + ge rx217_pos, rx217_eos, rxscan220_done + rxscan220_scan: + set_addr $I10, rxscan220_loop + rx217_cur."!mark_push"(0, rx217_pos, $I10) + rxscan220_done: +.annotate 'line', 87 # rx enumcharlist negate=0 zerowidth - ge rx208_pos, rx208_eos, rx208_fail - sub $I10, rx208_pos, rx208_off - substr $S10, rx208_tgt, $I10, 1 + ge rx217_pos, rx217_eos, rx217_fail + sub $I10, rx217_pos, rx217_off + substr $S10, rx217_tgt, $I10, 1 index $I11, "\"", $S10 - lt $I11, 0, rx208_fail + lt $I11, 0, rx217_fail # rx subrule "quote_EXPR" subtype=capture negate= - rx208_cur."!cursor_pos"(rx208_pos) - $P10 = rx208_cur."quote_EXPR"(":qq") - unless $P10, rx208_fail - rx208_cur."!mark_push"(0, -1, 0, $P10) + rx217_cur."!cursor_pos"(rx217_pos) + $P10 = rx217_cur."quote_EXPR"(":qq") + unless $P10, rx217_fail + rx217_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("quote_EXPR") - rx208_pos = $P10."pos"() + rx217_pos = $P10."pos"() # rx pass - rx208_cur."!cursor_pass"(rx208_pos, "metachar:sym<\">") - if_null rx208_debug, debug_257 - rx208_cur."!cursor_debug"("PASS ", "metachar:sym<\">", " at pos=", rx208_pos) - debug_257: - .return (rx208_cur) - rx208_restart: + rx217_cur."!cursor_pass"(rx217_pos, "metachar:sym<\">") + if_null rx217_debug, debug_263 + rx217_cur."!cursor_debug"("PASS", "metachar:sym<\">", " at pos=", rx217_pos) + debug_263: + .return (rx217_cur) + rx217_restart: .annotate 'line', 3 - if_null rx208_debug, debug_258 - rx208_cur."!cursor_debug"("NEXT ", "metachar:sym<\">") - debug_258: - rx208_fail: - (rx208_rep, rx208_pos, $I10, $P10) = rx208_cur."!mark_fail"(0) - lt rx208_pos, -1, rx208_done - eq rx208_pos, -1, rx208_fail + if_null rx217_debug, debug_264 + rx217_cur."!cursor_debug"("NEXT", "metachar:sym<\">") + debug_264: + rx217_fail: + (rx217_rep, rx217_pos, $I10, $P10) = rx217_cur."!mark_fail"(0) + lt rx217_pos, -1, rx217_done + eq rx217_pos, -1, rx217_fail jump $I10 - rx208_done: - rx208_cur."!cursor_fail"() - if_null rx208_debug, debug_259 - rx208_cur."!cursor_debug"("FAIL ", "metachar:sym<\">") - debug_259: - .return (rx208_cur) + rx217_done: + rx217_cur."!cursor_fail"() + if_null rx217_debug, debug_265 + rx217_cur."!cursor_debug"("FAIL", "metachar:sym<\">") + debug_265: + .return (rx217_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<\">" :subid("60_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<\">" :subid("62_1282323996.47527") :method .annotate 'line', 3 - new $P210, "ResizablePMCArray" - push $P210, "\"" - .return ($P210) + new $P219, "ResizablePMCArray" + push $P219, "\"" + .return ($P219) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<.>" :subid("61_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<.>" :subid("63_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx213_tgt - .local int rx213_pos - .local int rx213_off - .local int rx213_eos - .local int rx213_rep - .local pmc rx213_cur - .local pmc rx213_debug - (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"() - getattribute rx213_debug, rx213_cur, "$!debug" - .lex unicode:"$\x{a2}", rx213_cur + .local string rx222_tgt + .local int rx222_pos + .local int rx222_off + .local int rx222_eos + .local int rx222_rep + .local pmc rx222_cur + .local pmc rx222_debug + (rx222_cur, rx222_pos, rx222_tgt, $I10) = self."!cursor_start"() + getattribute rx222_debug, rx222_cur, "$!debug" + .lex unicode:"$\x{a2}", rx222_cur .local pmc match .lex "$/", match - length rx213_eos, rx213_tgt - gt rx213_pos, rx213_eos, rx213_done - set rx213_off, 0 - lt rx213_pos, 2, rx213_start - sub rx213_off, rx213_pos, 1 - substr rx213_tgt, rx213_tgt, rx213_off - rx213_start: - eq $I10, 1, rx213_restart - if_null rx213_debug, debug_260 - rx213_cur."!cursor_debug"("START ", "metachar:sym<.>") - debug_260: + length rx222_eos, rx222_tgt + gt rx222_pos, rx222_eos, rx222_done + set rx222_off, 0 + lt rx222_pos, 2, rx222_start + sub rx222_off, rx222_pos, 1 + substr rx222_tgt, rx222_tgt, rx222_off + rx222_start: + eq $I10, 1, rx222_restart + if_null rx222_debug, debug_266 + rx222_cur."!cursor_debug"("START", "metachar:sym<.>") + debug_266: $I10 = self.'from'() - ne $I10, -1, rxscan216_done - goto rxscan216_scan - rxscan216_loop: - ($P10) = rx213_cur."from"() + ne $I10, -1, rxscan225_done + goto rxscan225_scan + rxscan225_loop: + ($P10) = rx222_cur."from"() inc $P10 - set rx213_pos, $P10 - ge rx213_pos, rx213_eos, rxscan216_done - rxscan216_scan: - set_addr $I10, rxscan216_loop - rx213_cur."!mark_push"(0, rx213_pos, $I10) - rxscan216_done: -.annotate 'line', 81 + set rx222_pos, $P10 + ge rx222_pos, rx222_eos, rxscan225_done + rxscan225_scan: + set_addr $I10, rxscan225_loop + rx222_cur."!mark_push"(0, rx222_pos, $I10) + rxscan225_done: +.annotate 'line', 88 # rx subcapture "sym" - set_addr $I10, rxcap_217_fail - rx213_cur."!mark_push"(0, rx213_pos, $I10) + set_addr $I10, rxcap_226_fail + rx222_cur."!mark_push"(0, rx222_pos, $I10) # rx literal "." - add $I11, rx213_pos, 1 - gt $I11, rx213_eos, rx213_fail - sub $I11, rx213_pos, rx213_off - ord $I11, rx213_tgt, $I11 - ne $I11, 46, rx213_fail - add rx213_pos, 1 - set_addr $I10, rxcap_217_fail - ($I12, $I11) = rx213_cur."!mark_peek"($I10) - rx213_cur."!cursor_pos"($I11) - ($P10) = rx213_cur."!cursor_start"() - $P10."!cursor_pass"(rx213_pos, "") - rx213_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx222_pos, 1 + gt $I11, rx222_eos, rx222_fail + sub $I11, rx222_pos, rx222_off + ord $I11, rx222_tgt, $I11 + ne $I11, 46, rx222_fail + add rx222_pos, 1 + set_addr $I10, rxcap_226_fail + ($I12, $I11) = rx222_cur."!mark_peek"($I10) + rx222_cur."!cursor_pos"($I11) + ($P10) = rx222_cur."!cursor_start"() + $P10."!cursor_pass"(rx222_pos, "") + rx222_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_217_done - rxcap_217_fail: - goto rx213_fail - rxcap_217_done: + goto rxcap_226_done + rxcap_226_fail: + goto rx222_fail + rxcap_226_done: # rx pass - rx213_cur."!cursor_pass"(rx213_pos, "metachar:sym<.>") - if_null rx213_debug, debug_261 - rx213_cur."!cursor_debug"("PASS ", "metachar:sym<.>", " at pos=", rx213_pos) - debug_261: - .return (rx213_cur) - rx213_restart: + rx222_cur."!cursor_pass"(rx222_pos, "metachar:sym<.>") + if_null rx222_debug, debug_267 + rx222_cur."!cursor_debug"("PASS", "metachar:sym<.>", " at pos=", rx222_pos) + debug_267: + .return (rx222_cur) + rx222_restart: .annotate 'line', 3 - if_null rx213_debug, debug_262 - rx213_cur."!cursor_debug"("NEXT ", "metachar:sym<.>") - debug_262: - rx213_fail: - (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0) - lt rx213_pos, -1, rx213_done - eq rx213_pos, -1, rx213_fail + if_null rx222_debug, debug_268 + rx222_cur."!cursor_debug"("NEXT", "metachar:sym<.>") + debug_268: + rx222_fail: + (rx222_rep, rx222_pos, $I10, $P10) = rx222_cur."!mark_fail"(0) + lt rx222_pos, -1, rx222_done + eq rx222_pos, -1, rx222_fail jump $I10 - rx213_done: - rx213_cur."!cursor_fail"() - if_null rx213_debug, debug_263 - rx213_cur."!cursor_debug"("FAIL ", "metachar:sym<.>") - debug_263: - .return (rx213_cur) + rx222_done: + rx222_cur."!cursor_fail"() + if_null rx222_debug, debug_269 + rx222_cur."!cursor_debug"("FAIL", "metachar:sym<.>") + debug_269: + .return (rx222_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<.>" :subid("62_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<.>" :subid("64_1282323996.47527") :method .annotate 'line', 3 - new $P215, "ResizablePMCArray" - push $P215, "." - .return ($P215) + new $P224, "ResizablePMCArray" + push $P224, "." + .return ($P224) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<^>" :subid("63_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<^>" :subid("65_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx219_tgt - .local int rx219_pos - .local int rx219_off - .local int rx219_eos - .local int rx219_rep - .local pmc rx219_cur - .local pmc rx219_debug - (rx219_cur, rx219_pos, rx219_tgt, $I10) = self."!cursor_start"() - getattribute rx219_debug, rx219_cur, "$!debug" - .lex unicode:"$\x{a2}", rx219_cur + .local string rx228_tgt + .local int rx228_pos + .local int rx228_off + .local int rx228_eos + .local int rx228_rep + .local pmc rx228_cur + .local pmc rx228_debug + (rx228_cur, rx228_pos, rx228_tgt, $I10) = self."!cursor_start"() + getattribute rx228_debug, rx228_cur, "$!debug" + .lex unicode:"$\x{a2}", rx228_cur .local pmc match .lex "$/", match - length rx219_eos, rx219_tgt - gt rx219_pos, rx219_eos, rx219_done - set rx219_off, 0 - lt rx219_pos, 2, rx219_start - sub rx219_off, rx219_pos, 1 - substr rx219_tgt, rx219_tgt, rx219_off - rx219_start: - eq $I10, 1, rx219_restart - if_null rx219_debug, debug_264 - rx219_cur."!cursor_debug"("START ", "metachar:sym<^>") - debug_264: + length rx228_eos, rx228_tgt + gt rx228_pos, rx228_eos, rx228_done + set rx228_off, 0 + lt rx228_pos, 2, rx228_start + sub rx228_off, rx228_pos, 1 + substr rx228_tgt, rx228_tgt, rx228_off + rx228_start: + eq $I10, 1, rx228_restart + if_null rx228_debug, debug_270 + rx228_cur."!cursor_debug"("START", "metachar:sym<^>") + debug_270: $I10 = self.'from'() - ne $I10, -1, rxscan222_done - goto rxscan222_scan - rxscan222_loop: - ($P10) = rx219_cur."from"() + ne $I10, -1, rxscan231_done + goto rxscan231_scan + rxscan231_loop: + ($P10) = rx228_cur."from"() inc $P10 - set rx219_pos, $P10 - ge rx219_pos, rx219_eos, rxscan222_done - rxscan222_scan: - set_addr $I10, rxscan222_loop - rx219_cur."!mark_push"(0, rx219_pos, $I10) - rxscan222_done: -.annotate 'line', 82 + set rx228_pos, $P10 + ge rx228_pos, rx228_eos, rxscan231_done + rxscan231_scan: + set_addr $I10, rxscan231_loop + rx228_cur."!mark_push"(0, rx228_pos, $I10) + rxscan231_done: +.annotate 'line', 89 # rx subcapture "sym" - set_addr $I10, rxcap_223_fail - rx219_cur."!mark_push"(0, rx219_pos, $I10) + set_addr $I10, rxcap_232_fail + rx228_cur."!mark_push"(0, rx228_pos, $I10) # rx literal "^" - add $I11, rx219_pos, 1 - gt $I11, rx219_eos, rx219_fail - sub $I11, rx219_pos, rx219_off - ord $I11, rx219_tgt, $I11 - ne $I11, 94, rx219_fail - add rx219_pos, 1 - set_addr $I10, rxcap_223_fail - ($I12, $I11) = rx219_cur."!mark_peek"($I10) - rx219_cur."!cursor_pos"($I11) - ($P10) = rx219_cur."!cursor_start"() - $P10."!cursor_pass"(rx219_pos, "") - rx219_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx228_pos, 1 + gt $I11, rx228_eos, rx228_fail + sub $I11, rx228_pos, rx228_off + ord $I11, rx228_tgt, $I11 + ne $I11, 94, rx228_fail + add rx228_pos, 1 + set_addr $I10, rxcap_232_fail + ($I12, $I11) = rx228_cur."!mark_peek"($I10) + rx228_cur."!cursor_pos"($I11) + ($P10) = rx228_cur."!cursor_start"() + $P10."!cursor_pass"(rx228_pos, "") + rx228_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_223_done - rxcap_223_fail: - goto rx219_fail - rxcap_223_done: + goto rxcap_232_done + rxcap_232_fail: + goto rx228_fail + rxcap_232_done: # rx pass - rx219_cur."!cursor_pass"(rx219_pos, "metachar:sym<^>") - if_null rx219_debug, debug_265 - rx219_cur."!cursor_debug"("PASS ", "metachar:sym<^>", " at pos=", rx219_pos) - debug_265: - .return (rx219_cur) - rx219_restart: + rx228_cur."!cursor_pass"(rx228_pos, "metachar:sym<^>") + if_null rx228_debug, debug_271 + rx228_cur."!cursor_debug"("PASS", "metachar:sym<^>", " at pos=", rx228_pos) + debug_271: + .return (rx228_cur) + rx228_restart: .annotate 'line', 3 - if_null rx219_debug, debug_266 - rx219_cur."!cursor_debug"("NEXT ", "metachar:sym<^>") - debug_266: - rx219_fail: - (rx219_rep, rx219_pos, $I10, $P10) = rx219_cur."!mark_fail"(0) - lt rx219_pos, -1, rx219_done - eq rx219_pos, -1, rx219_fail + if_null rx228_debug, debug_272 + rx228_cur."!cursor_debug"("NEXT", "metachar:sym<^>") + debug_272: + rx228_fail: + (rx228_rep, rx228_pos, $I10, $P10) = rx228_cur."!mark_fail"(0) + lt rx228_pos, -1, rx228_done + eq rx228_pos, -1, rx228_fail jump $I10 - rx219_done: - rx219_cur."!cursor_fail"() - if_null rx219_debug, debug_267 - rx219_cur."!cursor_debug"("FAIL ", "metachar:sym<^>") - debug_267: - .return (rx219_cur) + rx228_done: + rx228_cur."!cursor_fail"() + if_null rx228_debug, debug_273 + rx228_cur."!cursor_debug"("FAIL", "metachar:sym<^>") + debug_273: + .return (rx228_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<^>" :subid("64_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<^>" :subid("66_1282323996.47527") :method .annotate 'line', 3 - new $P221, "ResizablePMCArray" - push $P221, "^" - .return ($P221) + new $P230, "ResizablePMCArray" + push $P230, "^" + .return ($P230) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<^^>" :subid("65_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<^^>" :subid("67_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx225_tgt - .local int rx225_pos - .local int rx225_off - .local int rx225_eos - .local int rx225_rep - .local pmc rx225_cur - .local pmc rx225_debug - (rx225_cur, rx225_pos, rx225_tgt, $I10) = self."!cursor_start"() - getattribute rx225_debug, rx225_cur, "$!debug" - .lex unicode:"$\x{a2}", rx225_cur + .local string rx234_tgt + .local int rx234_pos + .local int rx234_off + .local int rx234_eos + .local int rx234_rep + .local pmc rx234_cur + .local pmc rx234_debug + (rx234_cur, rx234_pos, rx234_tgt, $I10) = self."!cursor_start"() + getattribute rx234_debug, rx234_cur, "$!debug" + .lex unicode:"$\x{a2}", rx234_cur .local pmc match .lex "$/", match - length rx225_eos, rx225_tgt - gt rx225_pos, rx225_eos, rx225_done - set rx225_off, 0 - lt rx225_pos, 2, rx225_start - sub rx225_off, rx225_pos, 1 - substr rx225_tgt, rx225_tgt, rx225_off - rx225_start: - eq $I10, 1, rx225_restart - if_null rx225_debug, debug_268 - rx225_cur."!cursor_debug"("START ", "metachar:sym<^^>") - debug_268: + length rx234_eos, rx234_tgt + gt rx234_pos, rx234_eos, rx234_done + set rx234_off, 0 + lt rx234_pos, 2, rx234_start + sub rx234_off, rx234_pos, 1 + substr rx234_tgt, rx234_tgt, rx234_off + rx234_start: + eq $I10, 1, rx234_restart + if_null rx234_debug, debug_274 + rx234_cur."!cursor_debug"("START", "metachar:sym<^^>") + debug_274: $I10 = self.'from'() - ne $I10, -1, rxscan228_done - goto rxscan228_scan - rxscan228_loop: - ($P10) = rx225_cur."from"() + ne $I10, -1, rxscan237_done + goto rxscan237_scan + rxscan237_loop: + ($P10) = rx234_cur."from"() inc $P10 - set rx225_pos, $P10 - ge rx225_pos, rx225_eos, rxscan228_done - rxscan228_scan: - set_addr $I10, rxscan228_loop - rx225_cur."!mark_push"(0, rx225_pos, $I10) - rxscan228_done: -.annotate 'line', 83 + set rx234_pos, $P10 + ge rx234_pos, rx234_eos, rxscan237_done + rxscan237_scan: + set_addr $I10, rxscan237_loop + rx234_cur."!mark_push"(0, rx234_pos, $I10) + rxscan237_done: +.annotate 'line', 90 # rx subcapture "sym" - set_addr $I10, rxcap_229_fail - rx225_cur."!mark_push"(0, rx225_pos, $I10) + set_addr $I10, rxcap_238_fail + rx234_cur."!mark_push"(0, rx234_pos, $I10) # rx literal "^^" - add $I11, rx225_pos, 2 - gt $I11, rx225_eos, rx225_fail - sub $I11, rx225_pos, rx225_off - substr $S10, rx225_tgt, $I11, 2 - ne $S10, "^^", rx225_fail - add rx225_pos, 2 - set_addr $I10, rxcap_229_fail - ($I12, $I11) = rx225_cur."!mark_peek"($I10) - rx225_cur."!cursor_pos"($I11) - ($P10) = rx225_cur."!cursor_start"() - $P10."!cursor_pass"(rx225_pos, "") - rx225_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx234_pos, 2 + gt $I11, rx234_eos, rx234_fail + sub $I11, rx234_pos, rx234_off + substr $S10, rx234_tgt, $I11, 2 + ne $S10, "^^", rx234_fail + add rx234_pos, 2 + set_addr $I10, rxcap_238_fail + ($I12, $I11) = rx234_cur."!mark_peek"($I10) + rx234_cur."!cursor_pos"($I11) + ($P10) = rx234_cur."!cursor_start"() + $P10."!cursor_pass"(rx234_pos, "") + rx234_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_229_done - rxcap_229_fail: - goto rx225_fail - rxcap_229_done: + goto rxcap_238_done + rxcap_238_fail: + goto rx234_fail + rxcap_238_done: # rx pass - rx225_cur."!cursor_pass"(rx225_pos, "metachar:sym<^^>") - if_null rx225_debug, debug_269 - rx225_cur."!cursor_debug"("PASS ", "metachar:sym<^^>", " at pos=", rx225_pos) - debug_269: - .return (rx225_cur) - rx225_restart: + rx234_cur."!cursor_pass"(rx234_pos, "metachar:sym<^^>") + if_null rx234_debug, debug_275 + rx234_cur."!cursor_debug"("PASS", "metachar:sym<^^>", " at pos=", rx234_pos) + debug_275: + .return (rx234_cur) + rx234_restart: .annotate 'line', 3 - if_null rx225_debug, debug_270 - rx225_cur."!cursor_debug"("NEXT ", "metachar:sym<^^>") - debug_270: - rx225_fail: - (rx225_rep, rx225_pos, $I10, $P10) = rx225_cur."!mark_fail"(0) - lt rx225_pos, -1, rx225_done - eq rx225_pos, -1, rx225_fail + if_null rx234_debug, debug_276 + rx234_cur."!cursor_debug"("NEXT", "metachar:sym<^^>") + debug_276: + rx234_fail: + (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0) + lt rx234_pos, -1, rx234_done + eq rx234_pos, -1, rx234_fail jump $I10 - rx225_done: - rx225_cur."!cursor_fail"() - if_null rx225_debug, debug_271 - rx225_cur."!cursor_debug"("FAIL ", "metachar:sym<^^>") - debug_271: - .return (rx225_cur) + rx234_done: + rx234_cur."!cursor_fail"() + if_null rx234_debug, debug_277 + rx234_cur."!cursor_debug"("FAIL", "metachar:sym<^^>") + debug_277: + .return (rx234_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<^^>" :subid("66_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<^^>" :subid("68_1282323996.47527") :method .annotate 'line', 3 - new $P227, "ResizablePMCArray" - push $P227, "^^" - .return ($P227) + new $P236, "ResizablePMCArray" + push $P236, "^^" + .return ($P236) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<$>" :subid("67_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<$>" :subid("69_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx231_tgt - .local int rx231_pos - .local int rx231_off - .local int rx231_eos - .local int rx231_rep - .local pmc rx231_cur - .local pmc rx231_debug - (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"() - getattribute rx231_debug, rx231_cur, "$!debug" - .lex unicode:"$\x{a2}", rx231_cur + .local string rx240_tgt + .local int rx240_pos + .local int rx240_off + .local int rx240_eos + .local int rx240_rep + .local pmc rx240_cur + .local pmc rx240_debug + (rx240_cur, rx240_pos, rx240_tgt, $I10) = self."!cursor_start"() + getattribute rx240_debug, rx240_cur, "$!debug" + .lex unicode:"$\x{a2}", rx240_cur .local pmc match .lex "$/", match - length rx231_eos, rx231_tgt - gt rx231_pos, rx231_eos, rx231_done - set rx231_off, 0 - lt rx231_pos, 2, rx231_start - sub rx231_off, rx231_pos, 1 - substr rx231_tgt, rx231_tgt, rx231_off - rx231_start: - eq $I10, 1, rx231_restart - if_null rx231_debug, debug_272 - rx231_cur."!cursor_debug"("START ", "metachar:sym<$>") - debug_272: + length rx240_eos, rx240_tgt + gt rx240_pos, rx240_eos, rx240_done + set rx240_off, 0 + lt rx240_pos, 2, rx240_start + sub rx240_off, rx240_pos, 1 + substr rx240_tgt, rx240_tgt, rx240_off + rx240_start: + eq $I10, 1, rx240_restart + if_null rx240_debug, debug_278 + rx240_cur."!cursor_debug"("START", "metachar:sym<$>") + debug_278: $I10 = self.'from'() - ne $I10, -1, rxscan234_done - goto rxscan234_scan - rxscan234_loop: - ($P10) = rx231_cur."from"() + ne $I10, -1, rxscan243_done + goto rxscan243_scan + rxscan243_loop: + ($P10) = rx240_cur."from"() inc $P10 - set rx231_pos, $P10 - ge rx231_pos, rx231_eos, rxscan234_done - rxscan234_scan: - set_addr $I10, rxscan234_loop - rx231_cur."!mark_push"(0, rx231_pos, $I10) - rxscan234_done: -.annotate 'line', 84 + set rx240_pos, $P10 + ge rx240_pos, rx240_eos, rxscan243_done + rxscan243_scan: + set_addr $I10, rxscan243_loop + rx240_cur."!mark_push"(0, rx240_pos, $I10) + rxscan243_done: +.annotate 'line', 91 # rx subcapture "sym" - set_addr $I10, rxcap_235_fail - rx231_cur."!mark_push"(0, rx231_pos, $I10) + set_addr $I10, rxcap_244_fail + rx240_cur."!mark_push"(0, rx240_pos, $I10) # rx literal "$" - add $I11, rx231_pos, 1 - gt $I11, rx231_eos, rx231_fail - sub $I11, rx231_pos, rx231_off - ord $I11, rx231_tgt, $I11 - ne $I11, 36, rx231_fail - add rx231_pos, 1 - set_addr $I10, rxcap_235_fail - ($I12, $I11) = rx231_cur."!mark_peek"($I10) - rx231_cur."!cursor_pos"($I11) - ($P10) = rx231_cur."!cursor_start"() - $P10."!cursor_pass"(rx231_pos, "") - rx231_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx240_pos, 1 + gt $I11, rx240_eos, rx240_fail + sub $I11, rx240_pos, rx240_off + ord $I11, rx240_tgt, $I11 + ne $I11, 36, rx240_fail + add rx240_pos, 1 + set_addr $I10, rxcap_244_fail + ($I12, $I11) = rx240_cur."!mark_peek"($I10) + rx240_cur."!cursor_pos"($I11) + ($P10) = rx240_cur."!cursor_start"() + $P10."!cursor_pass"(rx240_pos, "") + rx240_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_235_done - rxcap_235_fail: - goto rx231_fail - rxcap_235_done: + goto rxcap_244_done + rxcap_244_fail: + goto rx240_fail + rxcap_244_done: # rx pass - rx231_cur."!cursor_pass"(rx231_pos, "metachar:sym<$>") - if_null rx231_debug, debug_273 - rx231_cur."!cursor_debug"("PASS ", "metachar:sym<$>", " at pos=", rx231_pos) - debug_273: - .return (rx231_cur) - rx231_restart: + rx240_cur."!cursor_pass"(rx240_pos, "metachar:sym<$>") + if_null rx240_debug, debug_279 + rx240_cur."!cursor_debug"("PASS", "metachar:sym<$>", " at pos=", rx240_pos) + debug_279: + .return (rx240_cur) + rx240_restart: .annotate 'line', 3 - if_null rx231_debug, debug_274 - rx231_cur."!cursor_debug"("NEXT ", "metachar:sym<$>") - debug_274: - rx231_fail: - (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0) - lt rx231_pos, -1, rx231_done - eq rx231_pos, -1, rx231_fail + if_null rx240_debug, debug_280 + rx240_cur."!cursor_debug"("NEXT", "metachar:sym<$>") + debug_280: + rx240_fail: + (rx240_rep, rx240_pos, $I10, $P10) = rx240_cur."!mark_fail"(0) + lt rx240_pos, -1, rx240_done + eq rx240_pos, -1, rx240_fail jump $I10 - rx231_done: - rx231_cur."!cursor_fail"() - if_null rx231_debug, debug_275 - rx231_cur."!cursor_debug"("FAIL ", "metachar:sym<$>") - debug_275: - .return (rx231_cur) + rx240_done: + rx240_cur."!cursor_fail"() + if_null rx240_debug, debug_281 + rx240_cur."!cursor_debug"("FAIL", "metachar:sym<$>") + debug_281: + .return (rx240_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<$>" :subid("68_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<$>" :subid("70_1282323996.47527") :method .annotate 'line', 3 - new $P233, "ResizablePMCArray" - push $P233, "$" - .return ($P233) + new $P242, "ResizablePMCArray" + push $P242, "$" + .return ($P242) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<$$>" :subid("69_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<$$>" :subid("71_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx237_tgt - .local int rx237_pos - .local int rx237_off - .local int rx237_eos - .local int rx237_rep - .local pmc rx237_cur - .local pmc rx237_debug - (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"() - getattribute rx237_debug, rx237_cur, "$!debug" - .lex unicode:"$\x{a2}", rx237_cur + .local string rx246_tgt + .local int rx246_pos + .local int rx246_off + .local int rx246_eos + .local int rx246_rep + .local pmc rx246_cur + .local pmc rx246_debug + (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"() + getattribute rx246_debug, rx246_cur, "$!debug" + .lex unicode:"$\x{a2}", rx246_cur .local pmc match .lex "$/", match - length rx237_eos, rx237_tgt - gt rx237_pos, rx237_eos, rx237_done - set rx237_off, 0 - lt rx237_pos, 2, rx237_start - sub rx237_off, rx237_pos, 1 - substr rx237_tgt, rx237_tgt, rx237_off - rx237_start: - eq $I10, 1, rx237_restart - if_null rx237_debug, debug_276 - rx237_cur."!cursor_debug"("START ", "metachar:sym<$$>") - debug_276: + length rx246_eos, rx246_tgt + gt rx246_pos, rx246_eos, rx246_done + set rx246_off, 0 + lt rx246_pos, 2, rx246_start + sub rx246_off, rx246_pos, 1 + substr rx246_tgt, rx246_tgt, rx246_off + rx246_start: + eq $I10, 1, rx246_restart + if_null rx246_debug, debug_282 + rx246_cur."!cursor_debug"("START", "metachar:sym<$$>") + debug_282: $I10 = self.'from'() - ne $I10, -1, rxscan240_done - goto rxscan240_scan - rxscan240_loop: - ($P10) = rx237_cur."from"() + ne $I10, -1, rxscan249_done + goto rxscan249_scan + rxscan249_loop: + ($P10) = rx246_cur."from"() inc $P10 - set rx237_pos, $P10 - ge rx237_pos, rx237_eos, rxscan240_done - rxscan240_scan: - set_addr $I10, rxscan240_loop - rx237_cur."!mark_push"(0, rx237_pos, $I10) - rxscan240_done: -.annotate 'line', 85 + set rx246_pos, $P10 + ge rx246_pos, rx246_eos, rxscan249_done + rxscan249_scan: + set_addr $I10, rxscan249_loop + rx246_cur."!mark_push"(0, rx246_pos, $I10) + rxscan249_done: +.annotate 'line', 92 # rx subcapture "sym" - set_addr $I10, rxcap_241_fail - rx237_cur."!mark_push"(0, rx237_pos, $I10) + set_addr $I10, rxcap_250_fail + rx246_cur."!mark_push"(0, rx246_pos, $I10) # rx literal "$$" - add $I11, rx237_pos, 2 - gt $I11, rx237_eos, rx237_fail - sub $I11, rx237_pos, rx237_off - substr $S10, rx237_tgt, $I11, 2 - ne $S10, "$$", rx237_fail - add rx237_pos, 2 - set_addr $I10, rxcap_241_fail - ($I12, $I11) = rx237_cur."!mark_peek"($I10) - rx237_cur."!cursor_pos"($I11) - ($P10) = rx237_cur."!cursor_start"() - $P10."!cursor_pass"(rx237_pos, "") - rx237_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx246_pos, 2 + gt $I11, rx246_eos, rx246_fail + sub $I11, rx246_pos, rx246_off + substr $S10, rx246_tgt, $I11, 2 + ne $S10, "$$", rx246_fail + add rx246_pos, 2 + set_addr $I10, rxcap_250_fail + ($I12, $I11) = rx246_cur."!mark_peek"($I10) + rx246_cur."!cursor_pos"($I11) + ($P10) = rx246_cur."!cursor_start"() + $P10."!cursor_pass"(rx246_pos, "") + rx246_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_241_done - rxcap_241_fail: - goto rx237_fail - rxcap_241_done: + goto rxcap_250_done + rxcap_250_fail: + goto rx246_fail + rxcap_250_done: # rx pass - rx237_cur."!cursor_pass"(rx237_pos, "metachar:sym<$$>") - if_null rx237_debug, debug_277 - rx237_cur."!cursor_debug"("PASS ", "metachar:sym<$$>", " at pos=", rx237_pos) - debug_277: - .return (rx237_cur) - rx237_restart: + rx246_cur."!cursor_pass"(rx246_pos, "metachar:sym<$$>") + if_null rx246_debug, debug_283 + rx246_cur."!cursor_debug"("PASS", "metachar:sym<$$>", " at pos=", rx246_pos) + debug_283: + .return (rx246_cur) + rx246_restart: .annotate 'line', 3 - if_null rx237_debug, debug_278 - rx237_cur."!cursor_debug"("NEXT ", "metachar:sym<$$>") - debug_278: - rx237_fail: - (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0) - lt rx237_pos, -1, rx237_done - eq rx237_pos, -1, rx237_fail + if_null rx246_debug, debug_284 + rx246_cur."!cursor_debug"("NEXT", "metachar:sym<$$>") + debug_284: + rx246_fail: + (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0) + lt rx246_pos, -1, rx246_done + eq rx246_pos, -1, rx246_fail jump $I10 - rx237_done: - rx237_cur."!cursor_fail"() - if_null rx237_debug, debug_279 - rx237_cur."!cursor_debug"("FAIL ", "metachar:sym<$$>") - debug_279: - .return (rx237_cur) + rx246_done: + rx246_cur."!cursor_fail"() + if_null rx246_debug, debug_285 + rx246_cur."!cursor_debug"("FAIL", "metachar:sym<$$>") + debug_285: + .return (rx246_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<$$>" :subid("70_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<$$>" :subid("72_1282323996.47527") :method .annotate 'line', 3 - new $P239, "ResizablePMCArray" - push $P239, "$$" - .return ($P239) + new $P248, "ResizablePMCArray" + push $P248, "$$" + .return ($P248) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<:::>" :subid("71_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<:::>" :subid("73_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx243_tgt - .local int rx243_pos - .local int rx243_off - .local int rx243_eos - .local int rx243_rep - .local pmc rx243_cur - .local pmc rx243_debug - (rx243_cur, rx243_pos, rx243_tgt, $I10) = self."!cursor_start"() - getattribute rx243_debug, rx243_cur, "$!debug" - .lex unicode:"$\x{a2}", rx243_cur + .local string rx252_tgt + .local int rx252_pos + .local int rx252_off + .local int rx252_eos + .local int rx252_rep + .local pmc rx252_cur + .local pmc rx252_debug + (rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"() + getattribute rx252_debug, rx252_cur, "$!debug" + .lex unicode:"$\x{a2}", rx252_cur .local pmc match .lex "$/", match - length rx243_eos, rx243_tgt - gt rx243_pos, rx243_eos, rx243_done - set rx243_off, 0 - lt rx243_pos, 2, rx243_start - sub rx243_off, rx243_pos, 1 - substr rx243_tgt, rx243_tgt, rx243_off - rx243_start: - eq $I10, 1, rx243_restart - if_null rx243_debug, debug_280 - rx243_cur."!cursor_debug"("START ", "metachar:sym<:::>") - debug_280: + length rx252_eos, rx252_tgt + gt rx252_pos, rx252_eos, rx252_done + set rx252_off, 0 + lt rx252_pos, 2, rx252_start + sub rx252_off, rx252_pos, 1 + substr rx252_tgt, rx252_tgt, rx252_off + rx252_start: + eq $I10, 1, rx252_restart + if_null rx252_debug, debug_286 + rx252_cur."!cursor_debug"("START", "metachar:sym<:::>") + debug_286: $I10 = self.'from'() - ne $I10, -1, rxscan247_done - goto rxscan247_scan - rxscan247_loop: - ($P10) = rx243_cur."from"() + ne $I10, -1, rxscan256_done + goto rxscan256_scan + rxscan256_loop: + ($P10) = rx252_cur."from"() inc $P10 - set rx243_pos, $P10 - ge rx243_pos, rx243_eos, rxscan247_done - rxscan247_scan: - set_addr $I10, rxscan247_loop - rx243_cur."!mark_push"(0, rx243_pos, $I10) - rxscan247_done: -.annotate 'line', 86 + set rx252_pos, $P10 + ge rx252_pos, rx252_eos, rxscan256_done + rxscan256_scan: + set_addr $I10, rxscan256_loop + rx252_cur."!mark_push"(0, rx252_pos, $I10) + rxscan256_done: +.annotate 'line', 93 # rx subcapture "sym" - set_addr $I10, rxcap_248_fail - rx243_cur."!mark_push"(0, rx243_pos, $I10) + set_addr $I10, rxcap_257_fail + rx252_cur."!mark_push"(0, rx252_pos, $I10) # rx literal ":::" - add $I11, rx243_pos, 3 - gt $I11, rx243_eos, rx243_fail - sub $I11, rx243_pos, rx243_off - substr $S10, rx243_tgt, $I11, 3 - ne $S10, ":::", rx243_fail - add rx243_pos, 3 - set_addr $I10, rxcap_248_fail - ($I12, $I11) = rx243_cur."!mark_peek"($I10) - rx243_cur."!cursor_pos"($I11) - ($P10) = rx243_cur."!cursor_start"() - $P10."!cursor_pass"(rx243_pos, "") - rx243_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx252_pos, 3 + gt $I11, rx252_eos, rx252_fail + sub $I11, rx252_pos, rx252_off + substr $S10, rx252_tgt, $I11, 3 + ne $S10, ":::", rx252_fail + add rx252_pos, 3 + set_addr $I10, rxcap_257_fail + ($I12, $I11) = rx252_cur."!mark_peek"($I10) + rx252_cur."!cursor_pos"($I11) + ($P10) = rx252_cur."!cursor_start"() + $P10."!cursor_pass"(rx252_pos, "") + rx252_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_248_done - rxcap_248_fail: - goto rx243_fail - rxcap_248_done: + goto rxcap_257_done + rxcap_257_fail: + goto rx252_fail + rxcap_257_done: # rx subrule "panic" subtype=method negate= - rx243_cur."!cursor_pos"(rx243_pos) - $P10 = rx243_cur."panic"("::: not yet implemented") - unless $P10, rx243_fail - rx243_pos = $P10."pos"() + rx252_cur."!cursor_pos"(rx252_pos) + $P10 = rx252_cur."panic"("::: not yet implemented") + unless $P10, rx252_fail + rx252_pos = $P10."pos"() # rx pass - rx243_cur."!cursor_pass"(rx243_pos, "metachar:sym<:::>") - if_null rx243_debug, debug_281 - rx243_cur."!cursor_debug"("PASS ", "metachar:sym<:::>", " at pos=", rx243_pos) - debug_281: - .return (rx243_cur) - rx243_restart: + rx252_cur."!cursor_pass"(rx252_pos, "metachar:sym<:::>") + if_null rx252_debug, debug_287 + rx252_cur."!cursor_debug"("PASS", "metachar:sym<:::>", " at pos=", rx252_pos) + debug_287: + .return (rx252_cur) + rx252_restart: .annotate 'line', 3 - if_null rx243_debug, debug_282 - rx243_cur."!cursor_debug"("NEXT ", "metachar:sym<:::>") - debug_282: - rx243_fail: - (rx243_rep, rx243_pos, $I10, $P10) = rx243_cur."!mark_fail"(0) - lt rx243_pos, -1, rx243_done - eq rx243_pos, -1, rx243_fail + if_null rx252_debug, debug_288 + rx252_cur."!cursor_debug"("NEXT", "metachar:sym<:::>") + debug_288: + rx252_fail: + (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0) + lt rx252_pos, -1, rx252_done + eq rx252_pos, -1, rx252_fail jump $I10 - rx243_done: - rx243_cur."!cursor_fail"() - if_null rx243_debug, debug_283 - rx243_cur."!cursor_debug"("FAIL ", "metachar:sym<:::>") - debug_283: - .return (rx243_cur) + rx252_done: + rx252_cur."!cursor_fail"() + if_null rx252_debug, debug_289 + rx252_cur."!cursor_debug"("FAIL", "metachar:sym<:::>") + debug_289: + .return (rx252_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<:::>" :subid("72_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<:::>" :subid("74_1282323996.47527") :method .annotate 'line', 3 - $P245 = self."!PREFIX__!subrule"("panic", ":::") - new $P246, "ResizablePMCArray" - push $P246, $P245 - .return ($P246) + $P254 = self."!PREFIX__!subrule"("panic", ":::") + new $P255, "ResizablePMCArray" + push $P255, $P254 + .return ($P255) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<::>" :subid("73_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<::>" :subid("75_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx250_tgt - .local int rx250_pos - .local int rx250_off - .local int rx250_eos - .local int rx250_rep - .local pmc rx250_cur - .local pmc rx250_debug - (rx250_cur, rx250_pos, rx250_tgt, $I10) = self."!cursor_start"() - getattribute rx250_debug, rx250_cur, "$!debug" - .lex unicode:"$\x{a2}", rx250_cur + .local string rx259_tgt + .local int rx259_pos + .local int rx259_off + .local int rx259_eos + .local int rx259_rep + .local pmc rx259_cur + .local pmc rx259_debug + (rx259_cur, rx259_pos, rx259_tgt, $I10) = self."!cursor_start"() + getattribute rx259_debug, rx259_cur, "$!debug" + .lex unicode:"$\x{a2}", rx259_cur .local pmc match .lex "$/", match - length rx250_eos, rx250_tgt - gt rx250_pos, rx250_eos, rx250_done - set rx250_off, 0 - lt rx250_pos, 2, rx250_start - sub rx250_off, rx250_pos, 1 - substr rx250_tgt, rx250_tgt, rx250_off - rx250_start: - eq $I10, 1, rx250_restart - if_null rx250_debug, debug_284 - rx250_cur."!cursor_debug"("START ", "metachar:sym<::>") - debug_284: + length rx259_eos, rx259_tgt + gt rx259_pos, rx259_eos, rx259_done + set rx259_off, 0 + lt rx259_pos, 2, rx259_start + sub rx259_off, rx259_pos, 1 + substr rx259_tgt, rx259_tgt, rx259_off + rx259_start: + eq $I10, 1, rx259_restart + if_null rx259_debug, debug_290 + rx259_cur."!cursor_debug"("START", "metachar:sym<::>") + debug_290: $I10 = self.'from'() - ne $I10, -1, rxscan254_done - goto rxscan254_scan - rxscan254_loop: - ($P10) = rx250_cur."from"() + ne $I10, -1, rxscan263_done + goto rxscan263_scan + rxscan263_loop: + ($P10) = rx259_cur."from"() inc $P10 - set rx250_pos, $P10 - ge rx250_pos, rx250_eos, rxscan254_done - rxscan254_scan: - set_addr $I10, rxscan254_loop - rx250_cur."!mark_push"(0, rx250_pos, $I10) - rxscan254_done: -.annotate 'line', 87 + set rx259_pos, $P10 + ge rx259_pos, rx259_eos, rxscan263_done + rxscan263_scan: + set_addr $I10, rxscan263_loop + rx259_cur."!mark_push"(0, rx259_pos, $I10) + rxscan263_done: +.annotate 'line', 94 # rx subcapture "sym" - set_addr $I10, rxcap_255_fail - rx250_cur."!mark_push"(0, rx250_pos, $I10) + set_addr $I10, rxcap_264_fail + rx259_cur."!mark_push"(0, rx259_pos, $I10) # rx literal "::" - add $I11, rx250_pos, 2 - gt $I11, rx250_eos, rx250_fail - sub $I11, rx250_pos, rx250_off - substr $S10, rx250_tgt, $I11, 2 - ne $S10, "::", rx250_fail - add rx250_pos, 2 - set_addr $I10, rxcap_255_fail - ($I12, $I11) = rx250_cur."!mark_peek"($I10) - rx250_cur."!cursor_pos"($I11) - ($P10) = rx250_cur."!cursor_start"() - $P10."!cursor_pass"(rx250_pos, "") - rx250_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx259_pos, 2 + gt $I11, rx259_eos, rx259_fail + sub $I11, rx259_pos, rx259_off + substr $S10, rx259_tgt, $I11, 2 + ne $S10, "::", rx259_fail + add rx259_pos, 2 + set_addr $I10, rxcap_264_fail + ($I12, $I11) = rx259_cur."!mark_peek"($I10) + rx259_cur."!cursor_pos"($I11) + ($P10) = rx259_cur."!cursor_start"() + $P10."!cursor_pass"(rx259_pos, "") + rx259_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_255_done - rxcap_255_fail: - goto rx250_fail - rxcap_255_done: + goto rxcap_264_done + rxcap_264_fail: + goto rx259_fail + rxcap_264_done: # rx subrule "panic" subtype=method negate= - rx250_cur."!cursor_pos"(rx250_pos) - $P10 = rx250_cur."panic"(":: not yet implemented") - unless $P10, rx250_fail - rx250_pos = $P10."pos"() + rx259_cur."!cursor_pos"(rx259_pos) + $P10 = rx259_cur."panic"(":: not yet implemented") + unless $P10, rx259_fail + rx259_pos = $P10."pos"() # rx pass - rx250_cur."!cursor_pass"(rx250_pos, "metachar:sym<::>") - if_null rx250_debug, debug_285 - rx250_cur."!cursor_debug"("PASS ", "metachar:sym<::>", " at pos=", rx250_pos) - debug_285: - .return (rx250_cur) - rx250_restart: + rx259_cur."!cursor_pass"(rx259_pos, "metachar:sym<::>") + if_null rx259_debug, debug_291 + rx259_cur."!cursor_debug"("PASS", "metachar:sym<::>", " at pos=", rx259_pos) + debug_291: + .return (rx259_cur) + rx259_restart: .annotate 'line', 3 - if_null rx250_debug, debug_286 - rx250_cur."!cursor_debug"("NEXT ", "metachar:sym<::>") - debug_286: - rx250_fail: - (rx250_rep, rx250_pos, $I10, $P10) = rx250_cur."!mark_fail"(0) - lt rx250_pos, -1, rx250_done - eq rx250_pos, -1, rx250_fail + if_null rx259_debug, debug_292 + rx259_cur."!cursor_debug"("NEXT", "metachar:sym<::>") + debug_292: + rx259_fail: + (rx259_rep, rx259_pos, $I10, $P10) = rx259_cur."!mark_fail"(0) + lt rx259_pos, -1, rx259_done + eq rx259_pos, -1, rx259_fail jump $I10 - rx250_done: - rx250_cur."!cursor_fail"() - if_null rx250_debug, debug_287 - rx250_cur."!cursor_debug"("FAIL ", "metachar:sym<::>") - debug_287: - .return (rx250_cur) + rx259_done: + rx259_cur."!cursor_fail"() + if_null rx259_debug, debug_293 + rx259_cur."!cursor_debug"("FAIL", "metachar:sym<::>") + debug_293: + .return (rx259_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<::>" :subid("74_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<::>" :subid("76_1282323996.47527") :method .annotate 'line', 3 - $P252 = self."!PREFIX__!subrule"("panic", "::") - new $P253, "ResizablePMCArray" - push $P253, $P252 - .return ($P253) + $P261 = self."!PREFIX__!subrule"("panic", "::") + new $P262, "ResizablePMCArray" + push $P262, $P261 + .return ($P262) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("75_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym" :subid("77_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx257_tgt - .local int rx257_pos - .local int rx257_off - .local int rx257_eos - .local int rx257_rep - .local pmc rx257_cur - .local pmc rx257_debug - (rx257_cur, rx257_pos, rx257_tgt, $I10) = self."!cursor_start"() - getattribute rx257_debug, rx257_cur, "$!debug" - .lex unicode:"$\x{a2}", rx257_cur + .local string rx266_tgt + .local int rx266_pos + .local int rx266_off + .local int rx266_eos + .local int rx266_rep + .local pmc rx266_cur + .local pmc rx266_debug + (rx266_cur, rx266_pos, rx266_tgt, $I10) = self."!cursor_start"() + getattribute rx266_debug, rx266_cur, "$!debug" + .lex unicode:"$\x{a2}", rx266_cur .local pmc match .lex "$/", match - length rx257_eos, rx257_tgt - gt rx257_pos, rx257_eos, rx257_done - set rx257_off, 0 - lt rx257_pos, 2, rx257_start - sub rx257_off, rx257_pos, 1 - substr rx257_tgt, rx257_tgt, rx257_off - rx257_start: - eq $I10, 1, rx257_restart - if_null rx257_debug, debug_288 - rx257_cur."!cursor_debug"("START ", "metachar:sym") - debug_288: + length rx266_eos, rx266_tgt + gt rx266_pos, rx266_eos, rx266_done + set rx266_off, 0 + lt rx266_pos, 2, rx266_start + sub rx266_off, rx266_pos, 1 + substr rx266_tgt, rx266_tgt, rx266_off + rx266_start: + eq $I10, 1, rx266_restart + if_null rx266_debug, debug_294 + rx266_cur."!cursor_debug"("START", "metachar:sym") + debug_294: $I10 = self.'from'() - ne $I10, -1, rxscan260_done - goto rxscan260_scan - rxscan260_loop: - ($P10) = rx257_cur."from"() + ne $I10, -1, rxscan269_done + goto rxscan269_scan + rxscan269_loop: + ($P10) = rx266_cur."from"() inc $P10 - set rx257_pos, $P10 - ge rx257_pos, rx257_eos, rxscan260_done - rxscan260_scan: - set_addr $I10, rxscan260_loop - rx257_cur."!mark_push"(0, rx257_pos, $I10) - rxscan260_done: -.annotate 'line', 88 + set rx266_pos, $P10 + ge rx266_pos, rx266_eos, rxscan269_done + rxscan269_scan: + set_addr $I10, rxscan269_loop + rx266_cur."!mark_push"(0, rx266_pos, $I10) + rxscan269_done: +.annotate 'line', 95 # rx subcapture "sym" - set_addr $I10, rxcap_262_fail - rx257_cur."!mark_push"(0, rx257_pos, $I10) - alt261_0: - set_addr $I10, alt261_1 - rx257_cur."!mark_push"(0, rx257_pos, $I10) + set_addr $I10, rxcap_271_fail + rx266_cur."!mark_push"(0, rx266_pos, $I10) + alt270_0: + set_addr $I10, alt270_1 + rx266_cur."!mark_push"(0, rx266_pos, $I10) # rx literal "<<" - add $I11, rx257_pos, 2 - gt $I11, rx257_eos, rx257_fail - sub $I11, rx257_pos, rx257_off - substr $S10, rx257_tgt, $I11, 2 - ne $S10, "<<", rx257_fail - add rx257_pos, 2 - goto alt261_end - alt261_1: + add $I11, rx266_pos, 2 + gt $I11, rx266_eos, rx266_fail + sub $I11, rx266_pos, rx266_off + substr $S10, rx266_tgt, $I11, 2 + ne $S10, "<<", rx266_fail + add rx266_pos, 2 + goto alt270_end + alt270_1: # rx literal unicode:"\x{ab}" - add $I11, rx257_pos, 1 - gt $I11, rx257_eos, rx257_fail - sub $I11, rx257_pos, rx257_off - ord $I11, rx257_tgt, $I11 - ne $I11, 171, rx257_fail - add rx257_pos, 1 - alt261_end: - set_addr $I10, rxcap_262_fail - ($I12, $I11) = rx257_cur."!mark_peek"($I10) - rx257_cur."!cursor_pos"($I11) - ($P10) = rx257_cur."!cursor_start"() - $P10."!cursor_pass"(rx257_pos, "") - rx257_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx266_pos, 1 + gt $I11, rx266_eos, rx266_fail + sub $I11, rx266_pos, rx266_off + ord $I11, rx266_tgt, $I11 + ne $I11, 171, rx266_fail + add rx266_pos, 1 + alt270_end: + set_addr $I10, rxcap_271_fail + ($I12, $I11) = rx266_cur."!mark_peek"($I10) + rx266_cur."!cursor_pos"($I11) + ($P10) = rx266_cur."!cursor_start"() + $P10."!cursor_pass"(rx266_pos, "") + rx266_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_262_done - rxcap_262_fail: - goto rx257_fail - rxcap_262_done: + goto rxcap_271_done + rxcap_271_fail: + goto rx266_fail + rxcap_271_done: # rx pass - rx257_cur."!cursor_pass"(rx257_pos, "metachar:sym") - if_null rx257_debug, debug_289 - rx257_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx257_pos) - debug_289: - .return (rx257_cur) - rx257_restart: + rx266_cur."!cursor_pass"(rx266_pos, "metachar:sym") + if_null rx266_debug, debug_295 + rx266_cur."!cursor_debug"("PASS", "metachar:sym", " at pos=", rx266_pos) + debug_295: + .return (rx266_cur) + rx266_restart: .annotate 'line', 3 - if_null rx257_debug, debug_290 - rx257_cur."!cursor_debug"("NEXT ", "metachar:sym") - debug_290: - rx257_fail: - (rx257_rep, rx257_pos, $I10, $P10) = rx257_cur."!mark_fail"(0) - lt rx257_pos, -1, rx257_done - eq rx257_pos, -1, rx257_fail + if_null rx266_debug, debug_296 + rx266_cur."!cursor_debug"("NEXT", "metachar:sym") + debug_296: + rx266_fail: + (rx266_rep, rx266_pos, $I10, $P10) = rx266_cur."!mark_fail"(0) + lt rx266_pos, -1, rx266_done + eq rx266_pos, -1, rx266_fail jump $I10 - rx257_done: - rx257_cur."!cursor_fail"() - if_null rx257_debug, debug_291 - rx257_cur."!cursor_debug"("FAIL ", "metachar:sym") - debug_291: - .return (rx257_cur) + rx266_done: + rx266_cur."!cursor_fail"() + if_null rx266_debug, debug_297 + rx266_cur."!cursor_debug"("FAIL", "metachar:sym") + debug_297: + .return (rx266_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("76_1282016522.91354") :method +.sub "!PREFIX__metachar:sym" :subid("78_1282323996.47527") :method .annotate 'line', 3 - new $P259, "ResizablePMCArray" - push $P259, unicode:"\x{ab}" - push $P259, "<<" - .return ($P259) + new $P268, "ResizablePMCArray" + push $P268, unicode:"\x{ab}" + push $P268, "<<" + .return ($P268) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("77_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym" :subid("79_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx264_tgt - .local int rx264_pos - .local int rx264_off - .local int rx264_eos - .local int rx264_rep - .local pmc rx264_cur - .local pmc rx264_debug - (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"() - getattribute rx264_debug, rx264_cur, "$!debug" - .lex unicode:"$\x{a2}", rx264_cur + .local string rx273_tgt + .local int rx273_pos + .local int rx273_off + .local int rx273_eos + .local int rx273_rep + .local pmc rx273_cur + .local pmc rx273_debug + (rx273_cur, rx273_pos, rx273_tgt, $I10) = self."!cursor_start"() + getattribute rx273_debug, rx273_cur, "$!debug" + .lex unicode:"$\x{a2}", rx273_cur .local pmc match .lex "$/", match - length rx264_eos, rx264_tgt - gt rx264_pos, rx264_eos, rx264_done - set rx264_off, 0 - lt rx264_pos, 2, rx264_start - sub rx264_off, rx264_pos, 1 - substr rx264_tgt, rx264_tgt, rx264_off - rx264_start: - eq $I10, 1, rx264_restart - if_null rx264_debug, debug_292 - rx264_cur."!cursor_debug"("START ", "metachar:sym") - debug_292: + length rx273_eos, rx273_tgt + gt rx273_pos, rx273_eos, rx273_done + set rx273_off, 0 + lt rx273_pos, 2, rx273_start + sub rx273_off, rx273_pos, 1 + substr rx273_tgt, rx273_tgt, rx273_off + rx273_start: + eq $I10, 1, rx273_restart + if_null rx273_debug, debug_298 + rx273_cur."!cursor_debug"("START", "metachar:sym") + debug_298: $I10 = self.'from'() - ne $I10, -1, rxscan267_done - goto rxscan267_scan - rxscan267_loop: - ($P10) = rx264_cur."from"() + ne $I10, -1, rxscan276_done + goto rxscan276_scan + rxscan276_loop: + ($P10) = rx273_cur."from"() inc $P10 - set rx264_pos, $P10 - ge rx264_pos, rx264_eos, rxscan267_done - rxscan267_scan: - set_addr $I10, rxscan267_loop - rx264_cur."!mark_push"(0, rx264_pos, $I10) - rxscan267_done: -.annotate 'line', 89 + set rx273_pos, $P10 + ge rx273_pos, rx273_eos, rxscan276_done + rxscan276_scan: + set_addr $I10, rxscan276_loop + rx273_cur."!mark_push"(0, rx273_pos, $I10) + rxscan276_done: +.annotate 'line', 96 # rx subcapture "sym" - set_addr $I10, rxcap_269_fail - rx264_cur."!mark_push"(0, rx264_pos, $I10) - alt268_0: - set_addr $I10, alt268_1 - rx264_cur."!mark_push"(0, rx264_pos, $I10) + set_addr $I10, rxcap_278_fail + rx273_cur."!mark_push"(0, rx273_pos, $I10) + alt277_0: + set_addr $I10, alt277_1 + rx273_cur."!mark_push"(0, rx273_pos, $I10) # rx literal ">>" - add $I11, rx264_pos, 2 - gt $I11, rx264_eos, rx264_fail - sub $I11, rx264_pos, rx264_off - substr $S10, rx264_tgt, $I11, 2 - ne $S10, ">>", rx264_fail - add rx264_pos, 2 - goto alt268_end - alt268_1: + add $I11, rx273_pos, 2 + gt $I11, rx273_eos, rx273_fail + sub $I11, rx273_pos, rx273_off + substr $S10, rx273_tgt, $I11, 2 + ne $S10, ">>", rx273_fail + add rx273_pos, 2 + goto alt277_end + alt277_1: # rx literal unicode:"\x{bb}" - add $I11, rx264_pos, 1 - gt $I11, rx264_eos, rx264_fail - sub $I11, rx264_pos, rx264_off - ord $I11, rx264_tgt, $I11 - ne $I11, 187, rx264_fail - add rx264_pos, 1 - alt268_end: - set_addr $I10, rxcap_269_fail - ($I12, $I11) = rx264_cur."!mark_peek"($I10) - rx264_cur."!cursor_pos"($I11) - ($P10) = rx264_cur."!cursor_start"() - $P10."!cursor_pass"(rx264_pos, "") - rx264_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx273_pos, 1 + gt $I11, rx273_eos, rx273_fail + sub $I11, rx273_pos, rx273_off + ord $I11, rx273_tgt, $I11 + ne $I11, 187, rx273_fail + add rx273_pos, 1 + alt277_end: + set_addr $I10, rxcap_278_fail + ($I12, $I11) = rx273_cur."!mark_peek"($I10) + rx273_cur."!cursor_pos"($I11) + ($P10) = rx273_cur."!cursor_start"() + $P10."!cursor_pass"(rx273_pos, "") + rx273_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_269_done - rxcap_269_fail: - goto rx264_fail - rxcap_269_done: + goto rxcap_278_done + rxcap_278_fail: + goto rx273_fail + rxcap_278_done: # rx pass - rx264_cur."!cursor_pass"(rx264_pos, "metachar:sym") - if_null rx264_debug, debug_293 - rx264_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx264_pos) - debug_293: - .return (rx264_cur) - rx264_restart: + rx273_cur."!cursor_pass"(rx273_pos, "metachar:sym") + if_null rx273_debug, debug_299 + rx273_cur."!cursor_debug"("PASS", "metachar:sym", " at pos=", rx273_pos) + debug_299: + .return (rx273_cur) + rx273_restart: .annotate 'line', 3 - if_null rx264_debug, debug_294 - rx264_cur."!cursor_debug"("NEXT ", "metachar:sym") - debug_294: - rx264_fail: - (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0) - lt rx264_pos, -1, rx264_done - eq rx264_pos, -1, rx264_fail + if_null rx273_debug, debug_300 + rx273_cur."!cursor_debug"("NEXT", "metachar:sym") + debug_300: + rx273_fail: + (rx273_rep, rx273_pos, $I10, $P10) = rx273_cur."!mark_fail"(0) + lt rx273_pos, -1, rx273_done + eq rx273_pos, -1, rx273_fail jump $I10 - rx264_done: - rx264_cur."!cursor_fail"() - if_null rx264_debug, debug_295 - rx264_cur."!cursor_debug"("FAIL ", "metachar:sym") - debug_295: - .return (rx264_cur) + rx273_done: + rx273_cur."!cursor_fail"() + if_null rx273_debug, debug_301 + rx273_cur."!cursor_debug"("FAIL", "metachar:sym") + debug_301: + .return (rx273_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("78_1282016522.91354") :method +.sub "!PREFIX__metachar:sym" :subid("80_1282323996.47527") :method .annotate 'line', 3 - new $P266, "ResizablePMCArray" - push $P266, unicode:"\x{bb}" - push $P266, ">>" - .return ($P266) + new $P275, "ResizablePMCArray" + push $P275, unicode:"\x{bb}" + push $P275, ">>" + .return ($P275) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("79_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym" :subid("81_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx271_tgt - .local int rx271_pos - .local int rx271_off - .local int rx271_eos - .local int rx271_rep - .local pmc rx271_cur - .local pmc rx271_debug - (rx271_cur, rx271_pos, rx271_tgt, $I10) = self."!cursor_start"() - getattribute rx271_debug, rx271_cur, "$!debug" - .lex unicode:"$\x{a2}", rx271_cur + .local string rx280_tgt + .local int rx280_pos + .local int rx280_off + .local int rx280_eos + .local int rx280_rep + .local pmc rx280_cur + .local pmc rx280_debug + (rx280_cur, rx280_pos, rx280_tgt, $I10) = self."!cursor_start"() + getattribute rx280_debug, rx280_cur, "$!debug" + .lex unicode:"$\x{a2}", rx280_cur .local pmc match .lex "$/", match - length rx271_eos, rx271_tgt - gt rx271_pos, rx271_eos, rx271_done - set rx271_off, 0 - lt rx271_pos, 2, rx271_start - sub rx271_off, rx271_pos, 1 - substr rx271_tgt, rx271_tgt, rx271_off - rx271_start: - eq $I10, 1, rx271_restart - if_null rx271_debug, debug_296 - rx271_cur."!cursor_debug"("START ", "metachar:sym") - debug_296: + length rx280_eos, rx280_tgt + gt rx280_pos, rx280_eos, rx280_done + set rx280_off, 0 + lt rx280_pos, 2, rx280_start + sub rx280_off, rx280_pos, 1 + substr rx280_tgt, rx280_tgt, rx280_off + rx280_start: + eq $I10, 1, rx280_restart + if_null rx280_debug, debug_302 + rx280_cur."!cursor_debug"("START", "metachar:sym") + debug_302: $I10 = self.'from'() - ne $I10, -1, rxscan275_done - goto rxscan275_scan - rxscan275_loop: - ($P10) = rx271_cur."from"() + ne $I10, -1, rxscan284_done + goto rxscan284_scan + rxscan284_loop: + ($P10) = rx280_cur."from"() inc $P10 - set rx271_pos, $P10 - ge rx271_pos, rx271_eos, rxscan275_done - rxscan275_scan: - set_addr $I10, rxscan275_loop - rx271_cur."!mark_push"(0, rx271_pos, $I10) - rxscan275_done: -.annotate 'line', 90 + set rx280_pos, $P10 + ge rx280_pos, rx280_eos, rxscan284_done + rxscan284_scan: + set_addr $I10, rxscan284_loop + rx280_cur."!mark_push"(0, rx280_pos, $I10) + rxscan284_done: +.annotate 'line', 97 # rx literal "\\" - add $I11, rx271_pos, 1 - gt $I11, rx271_eos, rx271_fail - sub $I11, rx271_pos, rx271_off - ord $I11, rx271_tgt, $I11 - ne $I11, 92, rx271_fail - add rx271_pos, 1 + add $I11, rx280_pos, 1 + gt $I11, rx280_eos, rx280_fail + sub $I11, rx280_pos, rx280_off + ord $I11, rx280_tgt, $I11 + ne $I11, 92, rx280_fail + add rx280_pos, 1 # rx subrule "backslash" subtype=capture negate= - rx271_cur."!cursor_pos"(rx271_pos) - $P10 = rx271_cur."backslash"() - unless $P10, rx271_fail - rx271_cur."!mark_push"(0, -1, 0, $P10) + rx280_cur."!cursor_pos"(rx280_pos) + $P10 = rx280_cur."backslash"() + unless $P10, rx280_fail + rx280_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("backslash") - rx271_pos = $P10."pos"() + rx280_pos = $P10."pos"() # rx pass - rx271_cur."!cursor_pass"(rx271_pos, "metachar:sym") - if_null rx271_debug, debug_297 - rx271_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx271_pos) - debug_297: - .return (rx271_cur) - rx271_restart: + rx280_cur."!cursor_pass"(rx280_pos, "metachar:sym") + if_null rx280_debug, debug_303 + rx280_cur."!cursor_debug"("PASS", "metachar:sym", " at pos=", rx280_pos) + debug_303: + .return (rx280_cur) + rx280_restart: .annotate 'line', 3 - if_null rx271_debug, debug_298 - rx271_cur."!cursor_debug"("NEXT ", "metachar:sym") - debug_298: - rx271_fail: - (rx271_rep, rx271_pos, $I10, $P10) = rx271_cur."!mark_fail"(0) - lt rx271_pos, -1, rx271_done - eq rx271_pos, -1, rx271_fail + if_null rx280_debug, debug_304 + rx280_cur."!cursor_debug"("NEXT", "metachar:sym") + debug_304: + rx280_fail: + (rx280_rep, rx280_pos, $I10, $P10) = rx280_cur."!mark_fail"(0) + lt rx280_pos, -1, rx280_done + eq rx280_pos, -1, rx280_fail jump $I10 - rx271_done: - rx271_cur."!cursor_fail"() - if_null rx271_debug, debug_299 - rx271_cur."!cursor_debug"("FAIL ", "metachar:sym") - debug_299: - .return (rx271_cur) + rx280_done: + rx280_cur."!cursor_fail"() + if_null rx280_debug, debug_305 + rx280_cur."!cursor_debug"("FAIL", "metachar:sym") + debug_305: + .return (rx280_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("80_1282016522.91354") :method +.sub "!PREFIX__metachar:sym" :subid("82_1282323996.47527") :method .annotate 'line', 3 - $P273 = self."!PREFIX__!subrule"("backslash", "\\") - new $P274, "ResizablePMCArray" - push $P274, $P273 - .return ($P274) + $P282 = self."!PREFIX__!subrule"("backslash", "\\") + new $P283, "ResizablePMCArray" + push $P283, $P282 + .return ($P283) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("81_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym" :subid("83_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx277_tgt - .local int rx277_pos - .local int rx277_off - .local int rx277_eos - .local int rx277_rep - .local pmc rx277_cur - .local pmc rx277_debug - (rx277_cur, rx277_pos, rx277_tgt, $I10) = self."!cursor_start"() - getattribute rx277_debug, rx277_cur, "$!debug" - .lex unicode:"$\x{a2}", rx277_cur + .local string rx286_tgt + .local int rx286_pos + .local int rx286_off + .local int rx286_eos + .local int rx286_rep + .local pmc rx286_cur + .local pmc rx286_debug + (rx286_cur, rx286_pos, rx286_tgt, $I10) = self."!cursor_start"() + getattribute rx286_debug, rx286_cur, "$!debug" + .lex unicode:"$\x{a2}", rx286_cur .local pmc match .lex "$/", match - length rx277_eos, rx277_tgt - gt rx277_pos, rx277_eos, rx277_done - set rx277_off, 0 - lt rx277_pos, 2, rx277_start - sub rx277_off, rx277_pos, 1 - substr rx277_tgt, rx277_tgt, rx277_off - rx277_start: - eq $I10, 1, rx277_restart - if_null rx277_debug, debug_300 - rx277_cur."!cursor_debug"("START ", "metachar:sym") - debug_300: + length rx286_eos, rx286_tgt + gt rx286_pos, rx286_eos, rx286_done + set rx286_off, 0 + lt rx286_pos, 2, rx286_start + sub rx286_off, rx286_pos, 1 + substr rx286_tgt, rx286_tgt, rx286_off + rx286_start: + eq $I10, 1, rx286_restart + if_null rx286_debug, debug_306 + rx286_cur."!cursor_debug"("START", "metachar:sym") + debug_306: $I10 = self.'from'() - ne $I10, -1, rxscan281_done - goto rxscan281_scan - rxscan281_loop: - ($P10) = rx277_cur."from"() + ne $I10, -1, rxscan290_done + goto rxscan290_scan + rxscan290_loop: + ($P10) = rx286_cur."from"() inc $P10 - set rx277_pos, $P10 - ge rx277_pos, rx277_eos, rxscan281_done - rxscan281_scan: - set_addr $I10, rxscan281_loop - rx277_cur."!mark_push"(0, rx277_pos, $I10) - rxscan281_done: -.annotate 'line', 91 + set rx286_pos, $P10 + ge rx286_pos, rx286_eos, rxscan290_done + rxscan290_scan: + set_addr $I10, rxscan290_loop + rx286_cur."!mark_push"(0, rx286_pos, $I10) + rxscan290_done: +.annotate 'line', 98 # rx subrule "mod_internal" subtype=capture negate= - rx277_cur."!cursor_pos"(rx277_pos) - $P10 = rx277_cur."mod_internal"() - unless $P10, rx277_fail - rx277_cur."!mark_push"(0, -1, 0, $P10) + rx286_cur."!cursor_pos"(rx286_pos) + $P10 = rx286_cur."mod_internal"() + unless $P10, rx286_fail + rx286_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("mod_internal") - rx277_pos = $P10."pos"() + rx286_pos = $P10."pos"() # rx pass - rx277_cur."!cursor_pass"(rx277_pos, "metachar:sym") - if_null rx277_debug, debug_301 - rx277_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx277_pos) - debug_301: - .return (rx277_cur) - rx277_restart: + rx286_cur."!cursor_pass"(rx286_pos, "metachar:sym") + if_null rx286_debug, debug_307 + rx286_cur."!cursor_debug"("PASS", "metachar:sym", " at pos=", rx286_pos) + debug_307: + .return (rx286_cur) + rx286_restart: .annotate 'line', 3 - if_null rx277_debug, debug_302 - rx277_cur."!cursor_debug"("NEXT ", "metachar:sym") - debug_302: - rx277_fail: - (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0) - lt rx277_pos, -1, rx277_done - eq rx277_pos, -1, rx277_fail + if_null rx286_debug, debug_308 + rx286_cur."!cursor_debug"("NEXT", "metachar:sym") + debug_308: + rx286_fail: + (rx286_rep, rx286_pos, $I10, $P10) = rx286_cur."!mark_fail"(0) + lt rx286_pos, -1, rx286_done + eq rx286_pos, -1, rx286_fail jump $I10 - rx277_done: - rx277_cur."!cursor_fail"() - if_null rx277_debug, debug_303 - rx277_cur."!cursor_debug"("FAIL ", "metachar:sym") - debug_303: - .return (rx277_cur) + rx286_done: + rx286_cur."!cursor_fail"() + if_null rx286_debug, debug_309 + rx286_cur."!cursor_debug"("FAIL", "metachar:sym") + debug_309: + .return (rx286_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("82_1282016522.91354") :method +.sub "!PREFIX__metachar:sym" :subid("84_1282323996.47527") :method .annotate 'line', 3 - $P279 = self."!PREFIX__!subrule"("mod_internal", "") - new $P280, "ResizablePMCArray" - push $P280, $P279 - .return ($P280) + $P288 = self."!PREFIX__!subrule"("mod_internal", "") + new $P289, "ResizablePMCArray" + push $P289, $P288 + .return ($P289) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<~>" :subid("83_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<~>" :subid("85_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx283_tgt - .local int rx283_pos - .local int rx283_off - .local int rx283_eos - .local int rx283_rep - .local pmc rx283_cur - .local pmc rx283_debug - (rx283_cur, rx283_pos, rx283_tgt, $I10) = self."!cursor_start"() - getattribute rx283_debug, rx283_cur, "$!debug" - .lex unicode:"$\x{a2}", rx283_cur + .local string rx292_tgt + .local int rx292_pos + .local int rx292_off + .local int rx292_eos + .local int rx292_rep + .local pmc rx292_cur + .local pmc rx292_debug + (rx292_cur, rx292_pos, rx292_tgt, $I10) = self."!cursor_start"() + getattribute rx292_debug, rx292_cur, "$!debug" + .lex unicode:"$\x{a2}", rx292_cur .local pmc match .lex "$/", match - length rx283_eos, rx283_tgt - gt rx283_pos, rx283_eos, rx283_done - set rx283_off, 0 - lt rx283_pos, 2, rx283_start - sub rx283_off, rx283_pos, 1 - substr rx283_tgt, rx283_tgt, rx283_off - rx283_start: - eq $I10, 1, rx283_restart - if_null rx283_debug, debug_304 - rx283_cur."!cursor_debug"("START ", "metachar:sym<~>") - debug_304: + length rx292_eos, rx292_tgt + gt rx292_pos, rx292_eos, rx292_done + set rx292_off, 0 + lt rx292_pos, 2, rx292_start + sub rx292_off, rx292_pos, 1 + substr rx292_tgt, rx292_tgt, rx292_off + rx292_start: + eq $I10, 1, rx292_restart + if_null rx292_debug, debug_310 + rx292_cur."!cursor_debug"("START", "metachar:sym<~>") + debug_310: $I10 = self.'from'() - ne $I10, -1, rxscan287_done - goto rxscan287_scan - rxscan287_loop: - ($P10) = rx283_cur."from"() + ne $I10, -1, rxscan296_done + goto rxscan296_scan + rxscan296_loop: + ($P10) = rx292_cur."from"() inc $P10 - set rx283_pos, $P10 - ge rx283_pos, rx283_eos, rxscan287_done - rxscan287_scan: - set_addr $I10, rxscan287_loop - rx283_cur."!mark_push"(0, rx283_pos, $I10) - rxscan287_done: -.annotate 'line', 95 + set rx292_pos, $P10 + ge rx292_pos, rx292_eos, rxscan296_done + rxscan296_scan: + set_addr $I10, rxscan296_loop + rx292_cur."!mark_push"(0, rx292_pos, $I10) + rxscan296_done: +.annotate 'line', 102 # rx subcapture "sym" - set_addr $I10, rxcap_288_fail - rx283_cur."!mark_push"(0, rx283_pos, $I10) + set_addr $I10, rxcap_297_fail + rx292_cur."!mark_push"(0, rx292_pos, $I10) # rx literal "~" - add $I11, rx283_pos, 1 - gt $I11, rx283_eos, rx283_fail - sub $I11, rx283_pos, rx283_off - ord $I11, rx283_tgt, $I11 - ne $I11, 126, rx283_fail - add rx283_pos, 1 - set_addr $I10, rxcap_288_fail - ($I12, $I11) = rx283_cur."!mark_peek"($I10) - rx283_cur."!cursor_pos"($I11) - ($P10) = rx283_cur."!cursor_start"() - $P10."!cursor_pass"(rx283_pos, "") - rx283_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx292_pos, 1 + gt $I11, rx292_eos, rx292_fail + sub $I11, rx292_pos, rx292_off + ord $I11, rx292_tgt, $I11 + ne $I11, 126, rx292_fail + add rx292_pos, 1 + set_addr $I10, rxcap_297_fail + ($I12, $I11) = rx292_cur."!mark_peek"($I10) + rx292_cur."!cursor_pos"($I11) + ($P10) = rx292_cur."!cursor_start"() + $P10."!cursor_pass"(rx292_pos, "") + rx292_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_288_done - rxcap_288_fail: - goto rx283_fail - rxcap_288_done: -.annotate 'line', 96 + goto rxcap_297_done + rxcap_297_fail: + goto rx292_fail + rxcap_297_done: +.annotate 'line', 103 # rx subrule "ws" subtype=method negate= - rx283_cur."!cursor_pos"(rx283_pos) - $P10 = rx283_cur."ws"() - unless $P10, rx283_fail - rx283_pos = $P10."pos"() + rx292_cur."!cursor_pos"(rx292_pos) + $P10 = rx292_cur."ws"() + unless $P10, rx292_fail + rx292_pos = $P10."pos"() # rx subrule "quantified_atom" subtype=capture negate= - rx283_cur."!cursor_pos"(rx283_pos) - $P10 = rx283_cur."quantified_atom"() - unless $P10, rx283_fail - rx283_cur."!mark_push"(0, -1, 0, $P10) + rx292_cur."!cursor_pos"(rx292_pos) + $P10 = rx292_cur."quantified_atom"() + unless $P10, rx292_fail + rx292_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("GOAL") - rx283_pos = $P10."pos"() -.annotate 'line', 97 + rx292_pos = $P10."pos"() +.annotate 'line', 104 # rx subrule "ws" subtype=method negate= - rx283_cur."!cursor_pos"(rx283_pos) - $P10 = rx283_cur."ws"() - unless $P10, rx283_fail - rx283_pos = $P10."pos"() + rx292_cur."!cursor_pos"(rx292_pos) + $P10 = rx292_cur."ws"() + unless $P10, rx292_fail + rx292_pos = $P10."pos"() # rx subrule "quantified_atom" subtype=capture negate= - rx283_cur."!cursor_pos"(rx283_pos) - $P10 = rx283_cur."quantified_atom"() - unless $P10, rx283_fail - rx283_cur."!mark_push"(0, -1, 0, $P10) + rx292_cur."!cursor_pos"(rx292_pos) + $P10 = rx292_cur."quantified_atom"() + unless $P10, rx292_fail + rx292_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("EXPR") - rx283_pos = $P10."pos"() -.annotate 'line', 94 + rx292_pos = $P10."pos"() +.annotate 'line', 101 # rx pass - rx283_cur."!cursor_pass"(rx283_pos, "metachar:sym<~>") - if_null rx283_debug, debug_305 - rx283_cur."!cursor_debug"("PASS ", "metachar:sym<~>", " at pos=", rx283_pos) - debug_305: - .return (rx283_cur) - rx283_restart: + rx292_cur."!cursor_pass"(rx292_pos, "metachar:sym<~>") + if_null rx292_debug, debug_311 + rx292_cur."!cursor_debug"("PASS", "metachar:sym<~>", " at pos=", rx292_pos) + debug_311: + .return (rx292_cur) + rx292_restart: .annotate 'line', 3 - if_null rx283_debug, debug_306 - rx283_cur."!cursor_debug"("NEXT ", "metachar:sym<~>") - debug_306: - rx283_fail: - (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0) - lt rx283_pos, -1, rx283_done - eq rx283_pos, -1, rx283_fail + if_null rx292_debug, debug_312 + rx292_cur."!cursor_debug"("NEXT", "metachar:sym<~>") + debug_312: + rx292_fail: + (rx292_rep, rx292_pos, $I10, $P10) = rx292_cur."!mark_fail"(0) + lt rx292_pos, -1, rx292_done + eq rx292_pos, -1, rx292_fail jump $I10 - rx283_done: - rx283_cur."!cursor_fail"() - if_null rx283_debug, debug_307 - rx283_cur."!cursor_debug"("FAIL ", "metachar:sym<~>") - debug_307: - .return (rx283_cur) + rx292_done: + rx292_cur."!cursor_fail"() + if_null rx292_debug, debug_313 + rx292_cur."!cursor_debug"("FAIL", "metachar:sym<~>") + debug_313: + .return (rx292_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<~>" :subid("84_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<~>" :subid("86_1282323996.47527") :method .annotate 'line', 3 - $P285 = self."!PREFIX__!subrule"("ws", "~") - new $P286, "ResizablePMCArray" - push $P286, $P285 - .return ($P286) + $P294 = self."!PREFIX__!subrule"("ws", "~") + new $P295, "ResizablePMCArray" + push $P295, $P294 + .return ($P295) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym<{*}>" :subid("85_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym<{*}>" :subid("87_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx290_tgt - .local int rx290_pos - .local int rx290_off - .local int rx290_eos - .local int rx290_rep - .local pmc rx290_cur - .local pmc rx290_debug - (rx290_cur, rx290_pos, rx290_tgt, $I10) = self."!cursor_start"() - rx290_cur."!cursor_caparray"("key") - getattribute rx290_debug, rx290_cur, "$!debug" - .lex unicode:"$\x{a2}", rx290_cur + .local string rx299_tgt + .local int rx299_pos + .local int rx299_off + .local int rx299_eos + .local int rx299_rep + .local pmc rx299_cur + .local pmc rx299_debug + (rx299_cur, rx299_pos, rx299_tgt, $I10) = self."!cursor_start"() + rx299_cur."!cursor_caparray"("key") + getattribute rx299_debug, rx299_cur, "$!debug" + .lex unicode:"$\x{a2}", rx299_cur .local pmc match .lex "$/", match - length rx290_eos, rx290_tgt - gt rx290_pos, rx290_eos, rx290_done - set rx290_off, 0 - lt rx290_pos, 2, rx290_start - sub rx290_off, rx290_pos, 1 - substr rx290_tgt, rx290_tgt, rx290_off - rx290_start: - eq $I10, 1, rx290_restart - if_null rx290_debug, debug_308 - rx290_cur."!cursor_debug"("START ", "metachar:sym<{*}>") - debug_308: + length rx299_eos, rx299_tgt + gt rx299_pos, rx299_eos, rx299_done + set rx299_off, 0 + lt rx299_pos, 2, rx299_start + sub rx299_off, rx299_pos, 1 + substr rx299_tgt, rx299_tgt, rx299_off + rx299_start: + eq $I10, 1, rx299_restart + if_null rx299_debug, debug_314 + rx299_cur."!cursor_debug"("START", "metachar:sym<{*}>") + debug_314: $I10 = self.'from'() - ne $I10, -1, rxscan293_done - goto rxscan293_scan - rxscan293_loop: - ($P10) = rx290_cur."from"() + ne $I10, -1, rxscan302_done + goto rxscan302_scan + rxscan302_loop: + ($P10) = rx299_cur."from"() inc $P10 - set rx290_pos, $P10 - ge rx290_pos, rx290_eos, rxscan293_done - rxscan293_scan: - set_addr $I10, rxscan293_loop - rx290_cur."!mark_push"(0, rx290_pos, $I10) - rxscan293_done: -.annotate 'line', 101 + set rx299_pos, $P10 + ge rx299_pos, rx299_eos, rxscan302_done + rxscan302_scan: + set_addr $I10, rxscan302_loop + rx299_cur."!mark_push"(0, rx299_pos, $I10) + rxscan302_done: +.annotate 'line', 108 # rx subcapture "sym" - set_addr $I10, rxcap_294_fail - rx290_cur."!mark_push"(0, rx290_pos, $I10) + set_addr $I10, rxcap_303_fail + rx299_cur."!mark_push"(0, rx299_pos, $I10) # rx literal "{*}" - add $I11, rx290_pos, 3 - gt $I11, rx290_eos, rx290_fail - sub $I11, rx290_pos, rx290_off - substr $S10, rx290_tgt, $I11, 3 - ne $S10, "{*}", rx290_fail - add rx290_pos, 3 - set_addr $I10, rxcap_294_fail - ($I12, $I11) = rx290_cur."!mark_peek"($I10) - rx290_cur."!cursor_pos"($I11) - ($P10) = rx290_cur."!cursor_start"() - $P10."!cursor_pass"(rx290_pos, "") - rx290_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx299_pos, 3 + gt $I11, rx299_eos, rx299_fail + sub $I11, rx299_pos, rx299_off + substr $S10, rx299_tgt, $I11, 3 + ne $S10, "{*}", rx299_fail + add rx299_pos, 3 + set_addr $I10, rxcap_303_fail + ($I12, $I11) = rx299_cur."!mark_peek"($I10) + rx299_cur."!cursor_pos"($I11) + ($P10) = rx299_cur."!cursor_start"() + $P10."!cursor_pass"(rx299_pos, "") + rx299_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_294_done - rxcap_294_fail: - goto rx290_fail - rxcap_294_done: -.annotate 'line', 102 - # rx rxquantr295 ** 0..1 - set_addr $I10, rxquantr295_done - rx290_cur."!mark_push"(0, rx290_pos, $I10) - rxquantr295_loop: - # rx rxquantr296 ** 0..* - set_addr $I10, rxquantr296_done - rx290_cur."!mark_push"(0, rx290_pos, $I10) - rxquantr296_loop: - # rx enumcharlist negate=0 - ge rx290_pos, rx290_eos, rx290_fail - sub $I10, rx290_pos, rx290_off - substr $S10, rx290_tgt, $I10, 1 + goto rxcap_303_done + rxcap_303_fail: + goto rx299_fail + rxcap_303_done: +.annotate 'line', 109 + # rx rxquantr304 ** 0..1 + set_addr $I10, rxquantr304_done + rx299_cur."!mark_push"(0, rx299_pos, $I10) + rxquantr304_loop: + # rx enumcharlist_q negate=0 r 0..-1 + sub $I10, rx299_pos, rx299_off + set rx299_rep, 0 + sub $I12, rx299_eos, rx299_pos + rxenumcharlistq305_loop: + le $I12, 0, rxenumcharlistq305_done + substr $S10, rx299_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx290_fail - inc rx290_pos - set_addr $I10, rxquantr296_done - (rx290_rep) = rx290_cur."!mark_commit"($I10) - set_addr $I10, rxquantr296_done - rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10) - goto rxquantr296_loop - rxquantr296_done: + lt $I11, 0, rxenumcharlistq305_done + inc rx299_rep + inc $I10 + dec $I12 + goto rxenumcharlistq305_loop + rxenumcharlistq305_done: + add rx299_pos, rx299_pos, rx299_rep # rx literal "#= " - add $I11, rx290_pos, 3 - gt $I11, rx290_eos, rx290_fail - sub $I11, rx290_pos, rx290_off - substr $S10, rx290_tgt, $I11, 3 - ne $S10, "#= ", rx290_fail - add rx290_pos, 3 - # rx rxquantr297 ** 0..* - set_addr $I10, rxquantr297_done - rx290_cur."!mark_push"(0, rx290_pos, $I10) - rxquantr297_loop: - # rx enumcharlist negate=0 - ge rx290_pos, rx290_eos, rx290_fail - sub $I10, rx290_pos, rx290_off - substr $S10, rx290_tgt, $I10, 1 + add $I11, rx299_pos, 3 + gt $I11, rx299_eos, rx299_fail + sub $I11, rx299_pos, rx299_off + substr $S10, rx299_tgt, $I11, 3 + ne $S10, "#= ", rx299_fail + add rx299_pos, 3 + # rx enumcharlist_q negate=0 r 0..-1 + sub $I10, rx299_pos, rx299_off + set rx299_rep, 0 + sub $I12, rx299_eos, rx299_pos + rxenumcharlistq306_loop: + le $I12, 0, rxenumcharlistq306_done + substr $S10, rx299_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx290_fail - inc rx290_pos - set_addr $I10, rxquantr297_done - (rx290_rep) = rx290_cur."!mark_commit"($I10) - set_addr $I10, rxquantr297_done - rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10) - goto rxquantr297_loop - rxquantr297_done: + lt $I11, 0, rxenumcharlistq306_done + inc rx299_rep + inc $I10 + dec $I12 + goto rxenumcharlistq306_loop + rxenumcharlistq306_done: + add rx299_pos, rx299_pos, rx299_rep # rx subcapture "key" - set_addr $I10, rxcap_300_fail - rx290_cur."!mark_push"(0, rx290_pos, $I10) + set_addr $I10, rxcap_309_fail + rx299_cur."!mark_push"(0, rx299_pos, $I10) # rx charclass_q S r 1..-1 - sub $I10, rx290_pos, rx290_off - find_cclass $I11, 32, rx290_tgt, $I10, rx290_eos + sub $I10, rx299_pos, rx299_off + find_cclass $I11, 32, rx299_tgt, $I10, rx299_eos add $I12, $I10, 1 - lt $I11, $I12, rx290_fail - add rx290_pos, rx290_off, $I11 - # rx rxquantr298 ** 0..* - set_addr $I10, rxquantr298_done - rx290_cur."!mark_push"(0, rx290_pos, $I10) - rxquantr298_loop: - # rx rxquantr299 ** 1..* - set_addr $I10, rxquantr299_done - rx290_cur."!mark_push"(0, -1, $I10) - rxquantr299_loop: - # rx enumcharlist negate=0 - ge rx290_pos, rx290_eos, rx290_fail - sub $I10, rx290_pos, rx290_off - substr $S10, rx290_tgt, $I10, 1 + lt $I11, $I12, rx299_fail + add rx299_pos, rx299_off, $I11 + # rx rxquantr307 ** 0..* + set_addr $I10, rxquantr307_done + rx299_cur."!mark_push"(0, rx299_pos, $I10) + rxquantr307_loop: + # rx enumcharlist_q negate=0 r 1..-1 + sub $I10, rx299_pos, rx299_off + set rx299_rep, 0 + sub $I12, rx299_eos, rx299_pos + rxenumcharlistq308_loop: + le $I12, 0, rxenumcharlistq308_done + substr $S10, rx299_tgt, $I10, 1 index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10 - lt $I11, 0, rx290_fail - inc rx290_pos - set_addr $I10, rxquantr299_done - (rx290_rep) = rx290_cur."!mark_commit"($I10) - set_addr $I10, rxquantr299_done - rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10) - goto rxquantr299_loop - rxquantr299_done: + lt $I11, 0, rxenumcharlistq308_done + inc rx299_rep + inc $I10 + dec $I12 + goto rxenumcharlistq308_loop + rxenumcharlistq308_done: + lt rx299_rep, 1, rx299_fail + add rx299_pos, rx299_pos, rx299_rep # rx charclass_q S r 1..-1 - sub $I10, rx290_pos, rx290_off - find_cclass $I11, 32, rx290_tgt, $I10, rx290_eos + sub $I10, rx299_pos, rx299_off + find_cclass $I11, 32, rx299_tgt, $I10, rx299_eos add $I12, $I10, 1 - lt $I11, $I12, rx290_fail - add rx290_pos, rx290_off, $I11 - set_addr $I10, rxquantr298_done - (rx290_rep) = rx290_cur."!mark_commit"($I10) - set_addr $I10, rxquantr298_done - rx290_cur."!mark_push"(rx290_rep, rx290_pos, $I10) - goto rxquantr298_loop - rxquantr298_done: - set_addr $I10, rxcap_300_fail - ($I12, $I11) = rx290_cur."!mark_peek"($I10) - rx290_cur."!cursor_pos"($I11) - ($P10) = rx290_cur."!cursor_start"() - $P10."!cursor_pass"(rx290_pos, "") - rx290_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, $I12, rx299_fail + add rx299_pos, rx299_off, $I11 + set_addr $I10, rxquantr307_done + (rx299_rep) = rx299_cur."!mark_commit"($I10) + set_addr $I10, rxquantr307_done + rx299_cur."!mark_push"(rx299_rep, rx299_pos, $I10) + goto rxquantr307_loop + rxquantr307_done: + set_addr $I10, rxcap_309_fail + ($I12, $I11) = rx299_cur."!mark_peek"($I10) + rx299_cur."!cursor_pos"($I11) + ($P10) = rx299_cur."!cursor_start"() + $P10."!cursor_pass"(rx299_pos, "") + rx299_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("key") - goto rxcap_300_done - rxcap_300_fail: - goto rx290_fail - rxcap_300_done: - set_addr $I10, rxquantr295_done - (rx290_rep) = rx290_cur."!mark_commit"($I10) - rxquantr295_done: -.annotate 'line', 100 + goto rxcap_309_done + rxcap_309_fail: + goto rx299_fail + rxcap_309_done: + set_addr $I10, rxquantr304_done + (rx299_rep) = rx299_cur."!mark_commit"($I10) + rxquantr304_done: +.annotate 'line', 107 # rx pass - rx290_cur."!cursor_pass"(rx290_pos, "metachar:sym<{*}>") - if_null rx290_debug, debug_309 - rx290_cur."!cursor_debug"("PASS ", "metachar:sym<{*}>", " at pos=", rx290_pos) - debug_309: - .return (rx290_cur) - rx290_restart: + rx299_cur."!cursor_pass"(rx299_pos, "metachar:sym<{*}>") + if_null rx299_debug, debug_315 + rx299_cur."!cursor_debug"("PASS", "metachar:sym<{*}>", " at pos=", rx299_pos) + debug_315: + .return (rx299_cur) + rx299_restart: .annotate 'line', 3 - if_null rx290_debug, debug_310 - rx290_cur."!cursor_debug"("NEXT ", "metachar:sym<{*}>") - debug_310: - rx290_fail: - (rx290_rep, rx290_pos, $I10, $P10) = rx290_cur."!mark_fail"(0) - lt rx290_pos, -1, rx290_done - eq rx290_pos, -1, rx290_fail + if_null rx299_debug, debug_316 + rx299_cur."!cursor_debug"("NEXT", "metachar:sym<{*}>") + debug_316: + rx299_fail: + (rx299_rep, rx299_pos, $I10, $P10) = rx299_cur."!mark_fail"(0) + lt rx299_pos, -1, rx299_done + eq rx299_pos, -1, rx299_fail jump $I10 - rx290_done: - rx290_cur."!cursor_fail"() - if_null rx290_debug, debug_311 - rx290_cur."!cursor_debug"("FAIL ", "metachar:sym<{*}>") - debug_311: - .return (rx290_cur) + rx299_done: + rx299_cur."!cursor_fail"() + if_null rx299_debug, debug_317 + rx299_cur."!cursor_debug"("FAIL", "metachar:sym<{*}>") + debug_317: + .return (rx299_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym<{*}>" :subid("86_1282016522.91354") :method +.sub "!PREFIX__metachar:sym<{*}>" :subid("88_1282323996.47527") :method .annotate 'line', 3 - new $P292, "ResizablePMCArray" - push $P292, "{*}" - .return ($P292) + new $P301, "ResizablePMCArray" + push $P301, "{*}" + .return ($P301) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("87_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym" :subid("89_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx302_tgt - .local int rx302_pos - .local int rx302_off - .local int rx302_eos - .local int rx302_rep - .local pmc rx302_cur - .local pmc rx302_debug - (rx302_cur, rx302_pos, rx302_tgt, $I10) = self."!cursor_start"() - getattribute rx302_debug, rx302_cur, "$!debug" - .lex unicode:"$\x{a2}", rx302_cur + .local string rx311_tgt + .local int rx311_pos + .local int rx311_off + .local int rx311_eos + .local int rx311_rep + .local pmc rx311_cur + .local pmc rx311_debug + (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"() + getattribute rx311_debug, rx311_cur, "$!debug" + .lex unicode:"$\x{a2}", rx311_cur .local pmc match .lex "$/", match - length rx302_eos, rx302_tgt - gt rx302_pos, rx302_eos, rx302_done - set rx302_off, 0 - lt rx302_pos, 2, rx302_start - sub rx302_off, rx302_pos, 1 - substr rx302_tgt, rx302_tgt, rx302_off - rx302_start: - eq $I10, 1, rx302_restart - if_null rx302_debug, debug_312 - rx302_cur."!cursor_debug"("START ", "metachar:sym") - debug_312: + length rx311_eos, rx311_tgt + gt rx311_pos, rx311_eos, rx311_done + set rx311_off, 0 + lt rx311_pos, 2, rx311_start + sub rx311_off, rx311_pos, 1 + substr rx311_tgt, rx311_tgt, rx311_off + rx311_start: + eq $I10, 1, rx311_restart + if_null rx311_debug, debug_318 + rx311_cur."!cursor_debug"("START", "metachar:sym") + debug_318: $I10 = self.'from'() - ne $I10, -1, rxscan306_done - goto rxscan306_scan - rxscan306_loop: - ($P10) = rx302_cur."from"() + ne $I10, -1, rxscan315_done + goto rxscan315_scan + rxscan315_loop: + ($P10) = rx311_cur."from"() inc $P10 - set rx302_pos, $P10 - ge rx302_pos, rx302_eos, rxscan306_done - rxscan306_scan: - set_addr $I10, rxscan306_loop - rx302_cur."!mark_push"(0, rx302_pos, $I10) - rxscan306_done: -.annotate 'line', 105 + set rx311_pos, $P10 + ge rx311_pos, rx311_eos, rxscan315_done + rxscan315_scan: + set_addr $I10, rxscan315_loop + rx311_cur."!mark_push"(0, rx311_pos, $I10) + rxscan315_done: +.annotate 'line', 112 # rx literal "<" - add $I11, rx302_pos, 1 - gt $I11, rx302_eos, rx302_fail - sub $I11, rx302_pos, rx302_off - ord $I11, rx302_tgt, $I11 - ne $I11, 60, rx302_fail - add rx302_pos, 1 + add $I11, rx311_pos, 1 + gt $I11, rx311_eos, rx311_fail + sub $I11, rx311_pos, rx311_off + ord $I11, rx311_tgt, $I11 + ne $I11, 60, rx311_fail + add rx311_pos, 1 # rx subrule "assertion" subtype=capture negate= - rx302_cur."!cursor_pos"(rx302_pos) - $P10 = rx302_cur."assertion"() - unless $P10, rx302_fail - rx302_cur."!mark_push"(0, -1, 0, $P10) + rx311_cur."!cursor_pos"(rx311_pos) + $P10 = rx311_cur."assertion"() + unless $P10, rx311_fail + rx311_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("assertion") - rx302_pos = $P10."pos"() - alt307_0: -.annotate 'line', 106 - set_addr $I10, alt307_1 - rx302_cur."!mark_push"(0, rx302_pos, $I10) + rx311_pos = $P10."pos"() + alt316_0: +.annotate 'line', 113 + set_addr $I10, alt316_1 + rx311_cur."!mark_push"(0, rx311_pos, $I10) # rx literal ">" - add $I11, rx302_pos, 1 - gt $I11, rx302_eos, rx302_fail - sub $I11, rx302_pos, rx302_off - ord $I11, rx302_tgt, $I11 - ne $I11, 62, rx302_fail - add rx302_pos, 1 - goto alt307_end - alt307_1: + add $I11, rx311_pos, 1 + gt $I11, rx311_eos, rx311_fail + sub $I11, rx311_pos, rx311_off + ord $I11, rx311_tgt, $I11 + ne $I11, 62, rx311_fail + add rx311_pos, 1 + goto alt316_end + alt316_1: # rx subrule "panic" subtype=method negate= - rx302_cur."!cursor_pos"(rx302_pos) - $P10 = rx302_cur."panic"("regex assertion not terminated by angle bracket") - unless $P10, rx302_fail - rx302_pos = $P10."pos"() - alt307_end: -.annotate 'line', 104 + rx311_cur."!cursor_pos"(rx311_pos) + $P10 = rx311_cur."panic"("regex assertion not terminated by angle bracket") + unless $P10, rx311_fail + rx311_pos = $P10."pos"() + alt316_end: +.annotate 'line', 111 # rx pass - rx302_cur."!cursor_pass"(rx302_pos, "metachar:sym") - if_null rx302_debug, debug_313 - rx302_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx302_pos) - debug_313: - .return (rx302_cur) - rx302_restart: + rx311_cur."!cursor_pass"(rx311_pos, "metachar:sym") + if_null rx311_debug, debug_319 + rx311_cur."!cursor_debug"("PASS", "metachar:sym", " at pos=", rx311_pos) + debug_319: + .return (rx311_cur) + rx311_restart: .annotate 'line', 3 - if_null rx302_debug, debug_314 - rx302_cur."!cursor_debug"("NEXT ", "metachar:sym") - debug_314: - rx302_fail: - (rx302_rep, rx302_pos, $I10, $P10) = rx302_cur."!mark_fail"(0) - lt rx302_pos, -1, rx302_done - eq rx302_pos, -1, rx302_fail + if_null rx311_debug, debug_320 + rx311_cur."!cursor_debug"("NEXT", "metachar:sym") + debug_320: + rx311_fail: + (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0) + lt rx311_pos, -1, rx311_done + eq rx311_pos, -1, rx311_fail jump $I10 - rx302_done: - rx302_cur."!cursor_fail"() - if_null rx302_debug, debug_315 - rx302_cur."!cursor_debug"("FAIL ", "metachar:sym") - debug_315: - .return (rx302_cur) + rx311_done: + rx311_cur."!cursor_fail"() + if_null rx311_debug, debug_321 + rx311_cur."!cursor_debug"("FAIL", "metachar:sym") + debug_321: + .return (rx311_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("88_1282016522.91354") :method +.sub "!PREFIX__metachar:sym" :subid("90_1282323996.47527") :method .annotate 'line', 3 - $P304 = self."!PREFIX__!subrule"("assertion", "<") - new $P305, "ResizablePMCArray" - push $P305, $P304 - .return ($P305) + $P313 = self."!PREFIX__!subrule"("assertion", "<") + new $P314, "ResizablePMCArray" + push $P314, $P313 + .return ($P314) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("89_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym" :subid("91_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx309_tgt - .local int rx309_pos - .local int rx309_off - .local int rx309_eos - .local int rx309_rep - .local pmc rx309_cur - .local pmc rx309_debug - (rx309_cur, rx309_pos, rx309_tgt, $I10) = self."!cursor_start"() - rx309_cur."!cursor_caparray"("quantified_atom") - getattribute rx309_debug, rx309_cur, "$!debug" - .lex unicode:"$\x{a2}", rx309_cur + .local string rx318_tgt + .local int rx318_pos + .local int rx318_off + .local int rx318_eos + .local int rx318_rep + .local pmc rx318_cur + .local pmc rx318_debug + (rx318_cur, rx318_pos, rx318_tgt, $I10) = self."!cursor_start"() + rx318_cur."!cursor_caparray"("quantified_atom") + getattribute rx318_debug, rx318_cur, "$!debug" + .lex unicode:"$\x{a2}", rx318_cur .local pmc match .lex "$/", match - length rx309_eos, rx309_tgt - gt rx309_pos, rx309_eos, rx309_done - set rx309_off, 0 - lt rx309_pos, 2, rx309_start - sub rx309_off, rx309_pos, 1 - substr rx309_tgt, rx309_tgt, rx309_off - rx309_start: - eq $I10, 1, rx309_restart - if_null rx309_debug, debug_316 - rx309_cur."!cursor_debug"("START ", "metachar:sym") - debug_316: + length rx318_eos, rx318_tgt + gt rx318_pos, rx318_eos, rx318_done + set rx318_off, 0 + lt rx318_pos, 2, rx318_start + sub rx318_off, rx318_pos, 1 + substr rx318_tgt, rx318_tgt, rx318_off + rx318_start: + eq $I10, 1, rx318_restart + if_null rx318_debug, debug_322 + rx318_cur."!cursor_debug"("START", "metachar:sym") + debug_322: $I10 = self.'from'() - ne $I10, -1, rxscan312_done - goto rxscan312_scan - rxscan312_loop: - ($P10) = rx309_cur."from"() + ne $I10, -1, rxscan321_done + goto rxscan321_scan + rxscan321_loop: + ($P10) = rx318_cur."from"() inc $P10 - set rx309_pos, $P10 - ge rx309_pos, rx309_eos, rxscan312_done - rxscan312_scan: - set_addr $I10, rxscan312_loop - rx309_cur."!mark_push"(0, rx309_pos, $I10) - rxscan312_done: - alt313_0: -.annotate 'line', 110 - set_addr $I10, alt313_1 - rx309_cur."!mark_push"(0, rx309_pos, $I10) -.annotate 'line', 111 + set rx318_pos, $P10 + ge rx318_pos, rx318_eos, rxscan321_done + rxscan321_scan: + set_addr $I10, rxscan321_loop + rx318_cur."!mark_push"(0, rx318_pos, $I10) + rxscan321_done: + alt322_0: +.annotate 'line', 117 + set_addr $I10, alt322_1 + rx318_cur."!mark_push"(0, rx318_pos, $I10) +.annotate 'line', 118 # rx literal "$<" - add $I11, rx309_pos, 2 - gt $I11, rx309_eos, rx309_fail - sub $I11, rx309_pos, rx309_off - substr $S10, rx309_tgt, $I11, 2 - ne $S10, "$<", rx309_fail - add rx309_pos, 2 + add $I11, rx318_pos, 2 + gt $I11, rx318_eos, rx318_fail + sub $I11, rx318_pos, rx318_off + substr $S10, rx318_tgt, $I11, 2 + ne $S10, "$<", rx318_fail + add rx318_pos, 2 # rx subcapture "name" - set_addr $I10, rxcap_315_fail - rx309_cur."!mark_push"(0, rx309_pos, $I10) - # rx rxquantr314 ** 1..* - set_addr $I10, rxquantr314_done - rx309_cur."!mark_push"(0, -1, $I10) - rxquantr314_loop: - # rx enumcharlist negate=1 - ge rx309_pos, rx309_eos, rx309_fail - sub $I10, rx309_pos, rx309_off - substr $S10, rx309_tgt, $I10, 1 + set_addr $I10, rxcap_324_fail + rx318_cur."!mark_push"(0, rx318_pos, $I10) + # rx enumcharlist_q negate=1 r 1..-1 + sub $I10, rx318_pos, rx318_off + set rx318_rep, 0 + sub $I12, rx318_eos, rx318_pos + rxenumcharlistq323_loop: + le $I12, 0, rxenumcharlistq323_done + substr $S10, rx318_tgt, $I10, 1 index $I11, ">", $S10 - ge $I11, 0, rx309_fail - inc rx309_pos - set_addr $I10, rxquantr314_done - (rx309_rep) = rx309_cur."!mark_commit"($I10) - set_addr $I10, rxquantr314_done - rx309_cur."!mark_push"(rx309_rep, rx309_pos, $I10) - goto rxquantr314_loop - rxquantr314_done: - set_addr $I10, rxcap_315_fail - ($I12, $I11) = rx309_cur."!mark_peek"($I10) - rx309_cur."!cursor_pos"($I11) - ($P10) = rx309_cur."!cursor_start"() - $P10."!cursor_pass"(rx309_pos, "") - rx309_cur."!mark_push"(0, -1, 0, $P10) + ge $I11, 0, rxenumcharlistq323_done + inc rx318_rep + inc $I10 + dec $I12 + goto rxenumcharlistq323_loop + rxenumcharlistq323_done: + lt rx318_rep, 1, rx318_fail + add rx318_pos, rx318_pos, rx318_rep + set_addr $I10, rxcap_324_fail + ($I12, $I11) = rx318_cur."!mark_peek"($I10) + rx318_cur."!cursor_pos"($I11) + ($P10) = rx318_cur."!cursor_start"() + $P10."!cursor_pass"(rx318_pos, "") + rx318_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("name") - goto rxcap_315_done - rxcap_315_fail: - goto rx309_fail - rxcap_315_done: + goto rxcap_324_done + rxcap_324_fail: + goto rx318_fail + rxcap_324_done: # rx literal ">" - add $I11, rx309_pos, 1 - gt $I11, rx309_eos, rx309_fail - sub $I11, rx309_pos, rx309_off - ord $I11, rx309_tgt, $I11 - ne $I11, 62, rx309_fail - add rx309_pos, 1 - goto alt313_end - alt313_1: -.annotate 'line', 112 + add $I11, rx318_pos, 1 + gt $I11, rx318_eos, rx318_fail + sub $I11, rx318_pos, rx318_off + ord $I11, rx318_tgt, $I11 + ne $I11, 62, rx318_fail + add rx318_pos, 1 + goto alt322_end + alt322_1: +.annotate 'line', 119 # rx literal "$" - add $I11, rx309_pos, 1 - gt $I11, rx309_eos, rx309_fail - sub $I11, rx309_pos, rx309_off - ord $I11, rx309_tgt, $I11 - ne $I11, 36, rx309_fail - add rx309_pos, 1 + add $I11, rx318_pos, 1 + gt $I11, rx318_eos, rx318_fail + sub $I11, rx318_pos, rx318_off + ord $I11, rx318_tgt, $I11 + ne $I11, 36, rx318_fail + add rx318_pos, 1 # rx subcapture "pos" - set_addr $I10, rxcap_316_fail - rx309_cur."!mark_push"(0, rx309_pos, $I10) + set_addr $I10, rxcap_325_fail + rx318_cur."!mark_push"(0, rx318_pos, $I10) # rx charclass_q d r 1..-1 - sub $I10, rx309_pos, rx309_off - find_not_cclass $I11, 8, rx309_tgt, $I10, rx309_eos + sub $I10, rx318_pos, rx318_off + find_not_cclass $I11, 8, rx318_tgt, $I10, rx318_eos add $I12, $I10, 1 - lt $I11, $I12, rx309_fail - add rx309_pos, rx309_off, $I11 - set_addr $I10, rxcap_316_fail - ($I12, $I11) = rx309_cur."!mark_peek"($I10) - rx309_cur."!cursor_pos"($I11) - ($P10) = rx309_cur."!cursor_start"() - $P10."!cursor_pass"(rx309_pos, "") - rx309_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, $I12, rx318_fail + add rx318_pos, rx318_off, $I11 + set_addr $I10, rxcap_325_fail + ($I12, $I11) = rx318_cur."!mark_peek"($I10) + rx318_cur."!cursor_pos"($I11) + ($P10) = rx318_cur."!cursor_start"() + $P10."!cursor_pass"(rx318_pos, "") + rx318_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("pos") - goto rxcap_316_done - rxcap_316_fail: - goto rx309_fail - rxcap_316_done: - alt313_end: -.annotate 'line', 115 - # rx rxquantr317 ** 0..1 - set_addr $I10, rxquantr317_done - rx309_cur."!mark_push"(0, rx309_pos, $I10) - rxquantr317_loop: + goto rxcap_325_done + rxcap_325_fail: + goto rx318_fail + rxcap_325_done: + alt322_end: +.annotate 'line', 122 + # rx rxquantr326 ** 0..1 + set_addr $I10, rxquantr326_done + rx318_cur."!mark_push"(0, rx318_pos, $I10) + rxquantr326_loop: # rx subrule "ws" subtype=method negate= - rx309_cur."!cursor_pos"(rx309_pos) - $P10 = rx309_cur."ws"() - unless $P10, rx309_fail - rx309_pos = $P10."pos"() + rx318_cur."!cursor_pos"(rx318_pos) + $P10 = rx318_cur."ws"() + unless $P10, rx318_fail + rx318_pos = $P10."pos"() # rx literal "=" - add $I11, rx309_pos, 1 - gt $I11, rx309_eos, rx309_fail - sub $I11, rx309_pos, rx309_off - ord $I11, rx309_tgt, $I11 - ne $I11, 61, rx309_fail - add rx309_pos, 1 + add $I11, rx318_pos, 1 + gt $I11, rx318_eos, rx318_fail + sub $I11, rx318_pos, rx318_off + ord $I11, rx318_tgt, $I11 + ne $I11, 61, rx318_fail + add rx318_pos, 1 # rx subrule "ws" subtype=method negate= - rx309_cur."!cursor_pos"(rx309_pos) - $P10 = rx309_cur."ws"() - unless $P10, rx309_fail - rx309_pos = $P10."pos"() + rx318_cur."!cursor_pos"(rx318_pos) + $P10 = rx318_cur."ws"() + unless $P10, rx318_fail + rx318_pos = $P10."pos"() # rx subrule "quantified_atom" subtype=capture negate= - rx309_cur."!cursor_pos"(rx309_pos) - $P10 = rx309_cur."quantified_atom"() - unless $P10, rx309_fail - rx309_cur."!mark_push"(0, -1, 0, $P10) + rx318_cur."!cursor_pos"(rx318_pos) + $P10 = rx318_cur."quantified_atom"() + unless $P10, rx318_fail + rx318_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("quantified_atom") - rx309_pos = $P10."pos"() - set_addr $I10, rxquantr317_done - (rx309_rep) = rx309_cur."!mark_commit"($I10) - rxquantr317_done: -.annotate 'line', 109 + rx318_pos = $P10."pos"() + set_addr $I10, rxquantr326_done + (rx318_rep) = rx318_cur."!mark_commit"($I10) + rxquantr326_done: +.annotate 'line', 116 # rx pass - rx309_cur."!cursor_pass"(rx309_pos, "metachar:sym") - if_null rx309_debug, debug_317 - rx309_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx309_pos) - debug_317: - .return (rx309_cur) - rx309_restart: + rx318_cur."!cursor_pass"(rx318_pos, "metachar:sym") + if_null rx318_debug, debug_323 + rx318_cur."!cursor_debug"("PASS", "metachar:sym", " at pos=", rx318_pos) + debug_323: + .return (rx318_cur) + rx318_restart: .annotate 'line', 3 - if_null rx309_debug, debug_318 - rx309_cur."!cursor_debug"("NEXT ", "metachar:sym") - debug_318: - rx309_fail: - (rx309_rep, rx309_pos, $I10, $P10) = rx309_cur."!mark_fail"(0) - lt rx309_pos, -1, rx309_done - eq rx309_pos, -1, rx309_fail + if_null rx318_debug, debug_324 + rx318_cur."!cursor_debug"("NEXT", "metachar:sym") + debug_324: + rx318_fail: + (rx318_rep, rx318_pos, $I10, $P10) = rx318_cur."!mark_fail"(0) + lt rx318_pos, -1, rx318_done + eq rx318_pos, -1, rx318_fail jump $I10 - rx309_done: - rx309_cur."!cursor_fail"() - if_null rx309_debug, debug_319 - rx309_cur."!cursor_debug"("FAIL ", "metachar:sym") - debug_319: - .return (rx309_cur) + rx318_done: + rx318_cur."!cursor_fail"() + if_null rx318_debug, debug_325 + rx318_cur."!cursor_debug"("FAIL", "metachar:sym") + debug_325: + .return (rx318_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("90_1282016522.91354") :method +.sub "!PREFIX__metachar:sym" :subid("92_1282323996.47527") :method .annotate 'line', 3 - new $P311, "ResizablePMCArray" - push $P311, "$" - push $P311, "$<" - .return ($P311) + new $P320, "ResizablePMCArray" + push $P320, "$" + push $P320, "$<" + .return ($P320) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "metachar:sym" :subid("91_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "metachar:sym" :subid("93_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx319_tgt - .local int rx319_pos - .local int rx319_off - .local int rx319_eos - .local int rx319_rep - .local pmc rx319_cur - .local pmc rx319_debug - (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"() - getattribute rx319_debug, rx319_cur, "$!debug" - .lex unicode:"$\x{a2}", rx319_cur + .local string rx328_tgt + .local int rx328_pos + .local int rx328_off + .local int rx328_eos + .local int rx328_rep + .local pmc rx328_cur + .local pmc rx328_debug + (rx328_cur, rx328_pos, rx328_tgt, $I10) = self."!cursor_start"() + getattribute rx328_debug, rx328_cur, "$!debug" + .lex unicode:"$\x{a2}", rx328_cur .local pmc match .lex "$/", match - length rx319_eos, rx319_tgt - gt rx319_pos, rx319_eos, rx319_done - set rx319_off, 0 - lt rx319_pos, 2, rx319_start - sub rx319_off, rx319_pos, 1 - substr rx319_tgt, rx319_tgt, rx319_off - rx319_start: - eq $I10, 1, rx319_restart - if_null rx319_debug, debug_320 - rx319_cur."!cursor_debug"("START ", "metachar:sym") - debug_320: + length rx328_eos, rx328_tgt + gt rx328_pos, rx328_eos, rx328_done + set rx328_off, 0 + lt rx328_pos, 2, rx328_start + sub rx328_off, rx328_pos, 1 + substr rx328_tgt, rx328_tgt, rx328_off + rx328_start: + eq $I10, 1, rx328_restart + if_null rx328_debug, debug_326 + rx328_cur."!cursor_debug"("START", "metachar:sym") + debug_326: $I10 = self.'from'() - ne $I10, -1, rxscan322_done - goto rxscan322_scan - rxscan322_loop: - ($P10) = rx319_cur."from"() + ne $I10, -1, rxscan331_done + goto rxscan331_scan + rxscan331_loop: + ($P10) = rx328_cur."from"() inc $P10 - set rx319_pos, $P10 - ge rx319_pos, rx319_eos, rxscan322_done - rxscan322_scan: - set_addr $I10, rxscan322_loop - rx319_cur."!mark_push"(0, rx319_pos, $I10) - rxscan322_done: -.annotate 'line', 119 + set rx328_pos, $P10 + ge rx328_pos, rx328_eos, rxscan331_done + rxscan331_scan: + set_addr $I10, rxscan331_loop + rx328_cur."!mark_push"(0, rx328_pos, $I10) + rxscan331_done: +.annotate 'line', 126 # rx literal ":PIR{{" - add $I11, rx319_pos, 6 - gt $I11, rx319_eos, rx319_fail - sub $I11, rx319_pos, rx319_off - substr $S10, rx319_tgt, $I11, 6 - ne $S10, ":PIR{{", rx319_fail - add rx319_pos, 6 + add $I11, rx328_pos, 6 + gt $I11, rx328_eos, rx328_fail + sub $I11, rx328_pos, rx328_off + substr $S10, rx328_tgt, $I11, 6 + ne $S10, ":PIR{{", rx328_fail + add rx328_pos, 6 # rx subcapture "pir" - set_addr $I10, rxcap_325_fail - rx319_cur."!mark_push"(0, rx319_pos, $I10) - # rx rxquantf323 ** 0..* - set_addr $I10, rxquantf323_loop - rx319_cur."!mark_push"(0, rx319_pos, $I10) - goto rxquantf323_done - rxquantf323_loop: + set_addr $I10, rxcap_334_fail + rx328_cur."!mark_push"(0, rx328_pos, $I10) + # rx rxquantf332 ** 0..* + set_addr $I10, rxquantf332_loop + rx328_cur."!mark_push"(0, rx328_pos, $I10) + goto rxquantf332_done + rxquantf332_loop: # rx charclass . - ge rx319_pos, rx319_eos, rx319_fail - inc rx319_pos - set_addr $I10, rxquantf323_loop - rx319_cur."!mark_push"(rx319_rep, rx319_pos, $I10) - rxquantf323_done: - set_addr $I10, rxcap_325_fail - ($I12, $I11) = rx319_cur."!mark_peek"($I10) - rx319_cur."!cursor_pos"($I11) - ($P10) = rx319_cur."!cursor_start"() - $P10."!cursor_pass"(rx319_pos, "") - rx319_cur."!mark_push"(0, -1, 0, $P10) + ge rx328_pos, rx328_eos, rx328_fail + inc rx328_pos + set_addr $I10, rxquantf332_loop + rx328_cur."!mark_push"(rx328_rep, rx328_pos, $I10) + rxquantf332_done: + set_addr $I10, rxcap_334_fail + ($I12, $I11) = rx328_cur."!mark_peek"($I10) + rx328_cur."!cursor_pos"($I11) + ($P10) = rx328_cur."!cursor_start"() + $P10."!cursor_pass"(rx328_pos, "") + rx328_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("pir") - goto rxcap_325_done - rxcap_325_fail: - goto rx319_fail - rxcap_325_done: + goto rxcap_334_done + rxcap_334_fail: + goto rx328_fail + rxcap_334_done: # rx literal "}}" - add $I11, rx319_pos, 2 - gt $I11, rx319_eos, rx319_fail - sub $I11, rx319_pos, rx319_off - substr $S10, rx319_tgt, $I11, 2 - ne $S10, "}}", rx319_fail - add rx319_pos, 2 -.annotate 'line', 118 + add $I11, rx328_pos, 2 + gt $I11, rx328_eos, rx328_fail + sub $I11, rx328_pos, rx328_off + substr $S10, rx328_tgt, $I11, 2 + ne $S10, "}}", rx328_fail + add rx328_pos, 2 +.annotate 'line', 125 # rx pass - rx319_cur."!cursor_pass"(rx319_pos, "metachar:sym") - if_null rx319_debug, debug_321 - rx319_cur."!cursor_debug"("PASS ", "metachar:sym", " at pos=", rx319_pos) - debug_321: - .return (rx319_cur) - rx319_restart: + rx328_cur."!cursor_pass"(rx328_pos, "metachar:sym") + if_null rx328_debug, debug_327 + rx328_cur."!cursor_debug"("PASS", "metachar:sym", " at pos=", rx328_pos) + debug_327: + .return (rx328_cur) + rx328_restart: .annotate 'line', 3 - if_null rx319_debug, debug_322 - rx319_cur."!cursor_debug"("NEXT ", "metachar:sym") - debug_322: - rx319_fail: - (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0) - lt rx319_pos, -1, rx319_done - eq rx319_pos, -1, rx319_fail + if_null rx328_debug, debug_328 + rx328_cur."!cursor_debug"("NEXT", "metachar:sym") + debug_328: + rx328_fail: + (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0) + lt rx328_pos, -1, rx328_done + eq rx328_pos, -1, rx328_fail jump $I10 - rx319_done: - rx319_cur."!cursor_fail"() - if_null rx319_debug, debug_323 - rx319_cur."!cursor_debug"("FAIL ", "metachar:sym") - debug_323: - .return (rx319_cur) + rx328_done: + rx328_cur."!cursor_fail"() + if_null rx328_debug, debug_329 + rx328_cur."!cursor_debug"("FAIL", "metachar:sym") + debug_329: + .return (rx328_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__metachar:sym" :subid("92_1282016522.91354") :method +.sub "!PREFIX__metachar:sym" :subid("94_1282323996.47527") :method .annotate 'line', 3 - new $P321, "ResizablePMCArray" - push $P321, ":PIR{{" - .return ($P321) + new $P330, "ResizablePMCArray" + push $P330, ":PIR{{" + .return ($P330) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash" :subid("93_1282016522.91354") :method -.annotate 'line', 122 - $P327 = self."!protoregex"("backslash") - .return ($P327) +.sub "backslash" :subid("95_1282323996.47527") :method +.annotate 'line', 129 + $P336 = self."!protoregex"("backslash") + .return ($P336) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash" :subid("94_1282016522.91354") :method -.annotate 'line', 122 - $P329 = self."!PREFIX__!protoregex"("backslash") - .return ($P329) +.sub "!PREFIX__backslash" :subid("96_1282323996.47527") :method +.annotate 'line', 129 + $P338 = self."!PREFIX__!protoregex"("backslash") + .return ($P338) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("95_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("97_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx331_tgt - .local int rx331_pos - .local int rx331_off - .local int rx331_eos - .local int rx331_rep - .local pmc rx331_cur - .local pmc rx331_debug - (rx331_cur, rx331_pos, rx331_tgt, $I10) = self."!cursor_start"() - getattribute rx331_debug, rx331_cur, "$!debug" - .lex unicode:"$\x{a2}", rx331_cur + .local string rx340_tgt + .local int rx340_pos + .local int rx340_off + .local int rx340_eos + .local int rx340_rep + .local pmc rx340_cur + .local pmc rx340_debug + (rx340_cur, rx340_pos, rx340_tgt, $I10) = self."!cursor_start"() + getattribute rx340_debug, rx340_cur, "$!debug" + .lex unicode:"$\x{a2}", rx340_cur .local pmc match .lex "$/", match - length rx331_eos, rx331_tgt - gt rx331_pos, rx331_eos, rx331_done - set rx331_off, 0 - lt rx331_pos, 2, rx331_start - sub rx331_off, rx331_pos, 1 - substr rx331_tgt, rx331_tgt, rx331_off - rx331_start: - eq $I10, 1, rx331_restart - if_null rx331_debug, debug_324 - rx331_cur."!cursor_debug"("START ", "backslash:sym") - debug_324: + length rx340_eos, rx340_tgt + gt rx340_pos, rx340_eos, rx340_done + set rx340_off, 0 + lt rx340_pos, 2, rx340_start + sub rx340_off, rx340_pos, 1 + substr rx340_tgt, rx340_tgt, rx340_off + rx340_start: + eq $I10, 1, rx340_restart + if_null rx340_debug, debug_330 + rx340_cur."!cursor_debug"("START", "backslash:sym") + debug_330: $I10 = self.'from'() - ne $I10, -1, rxscan334_done - goto rxscan334_scan - rxscan334_loop: - ($P10) = rx331_cur."from"() + ne $I10, -1, rxscan343_done + goto rxscan343_scan + rxscan343_loop: + ($P10) = rx340_cur."from"() inc $P10 - set rx331_pos, $P10 - ge rx331_pos, rx331_eos, rxscan334_done - rxscan334_scan: - set_addr $I10, rxscan334_loop - rx331_cur."!mark_push"(0, rx331_pos, $I10) - rxscan334_done: -.annotate 'line', 123 + set rx340_pos, $P10 + ge rx340_pos, rx340_eos, rxscan343_done + rxscan343_scan: + set_addr $I10, rxscan343_loop + rx340_cur."!mark_push"(0, rx340_pos, $I10) + rxscan343_done: +.annotate 'line', 130 # rx subcapture "sym" - set_addr $I10, rxcap_335_fail - rx331_cur."!mark_push"(0, rx331_pos, $I10) + set_addr $I10, rxcap_344_fail + rx340_cur."!mark_push"(0, rx340_pos, $I10) # rx enumcharlist negate=0 - ge rx331_pos, rx331_eos, rx331_fail - sub $I10, rx331_pos, rx331_off - substr $S10, rx331_tgt, $I10, 1 + ge rx340_pos, rx340_eos, rx340_fail + sub $I10, rx340_pos, rx340_off + substr $S10, rx340_tgt, $I10, 1 index $I11, "dswnDSWN", $S10 - lt $I11, 0, rx331_fail - inc rx331_pos - set_addr $I10, rxcap_335_fail - ($I12, $I11) = rx331_cur."!mark_peek"($I10) - rx331_cur."!cursor_pos"($I11) - ($P10) = rx331_cur."!cursor_start"() - $P10."!cursor_pass"(rx331_pos, "") - rx331_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx340_fail + inc rx340_pos + set_addr $I10, rxcap_344_fail + ($I12, $I11) = rx340_cur."!mark_peek"($I10) + rx340_cur."!cursor_pos"($I11) + ($P10) = rx340_cur."!cursor_start"() + $P10."!cursor_pass"(rx340_pos, "") + rx340_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_335_done - rxcap_335_fail: - goto rx331_fail - rxcap_335_done: + goto rxcap_344_done + rxcap_344_fail: + goto rx340_fail + rxcap_344_done: # rx pass - rx331_cur."!cursor_pass"(rx331_pos, "backslash:sym") - if_null rx331_debug, debug_325 - rx331_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx331_pos) - debug_325: - .return (rx331_cur) - rx331_restart: + rx340_cur."!cursor_pass"(rx340_pos, "backslash:sym") + if_null rx340_debug, debug_331 + rx340_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx340_pos) + debug_331: + .return (rx340_cur) + rx340_restart: .annotate 'line', 3 - if_null rx331_debug, debug_326 - rx331_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_326: - rx331_fail: - (rx331_rep, rx331_pos, $I10, $P10) = rx331_cur."!mark_fail"(0) - lt rx331_pos, -1, rx331_done - eq rx331_pos, -1, rx331_fail + if_null rx340_debug, debug_332 + rx340_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_332: + rx340_fail: + (rx340_rep, rx340_pos, $I10, $P10) = rx340_cur."!mark_fail"(0) + lt rx340_pos, -1, rx340_done + eq rx340_pos, -1, rx340_fail jump $I10 - rx331_done: - rx331_cur."!cursor_fail"() - if_null rx331_debug, debug_327 - rx331_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_327: - .return (rx331_cur) + rx340_done: + rx340_cur."!cursor_fail"() + if_null rx340_debug, debug_333 + rx340_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_333: + .return (rx340_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("96_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("98_1282323996.47527") :method .annotate 'line', 3 - new $P333, "ResizablePMCArray" - push $P333, "N" - push $P333, "W" - push $P333, "S" - push $P333, "D" - push $P333, "n" - push $P333, "w" - push $P333, "s" - push $P333, "d" - .return ($P333) + new $P342, "ResizablePMCArray" + push $P342, "N" + push $P342, "W" + push $P342, "S" + push $P342, "D" + push $P342, "n" + push $P342, "w" + push $P342, "s" + push $P342, "d" + .return ($P342) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("97_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("99_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx337_tgt - .local int rx337_pos - .local int rx337_off - .local int rx337_eos - .local int rx337_rep - .local pmc rx337_cur - .local pmc rx337_debug - (rx337_cur, rx337_pos, rx337_tgt, $I10) = self."!cursor_start"() - getattribute rx337_debug, rx337_cur, "$!debug" - .lex unicode:"$\x{a2}", rx337_cur + .local string rx346_tgt + .local int rx346_pos + .local int rx346_off + .local int rx346_eos + .local int rx346_rep + .local pmc rx346_cur + .local pmc rx346_debug + (rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"() + getattribute rx346_debug, rx346_cur, "$!debug" + .lex unicode:"$\x{a2}", rx346_cur .local pmc match .lex "$/", match - length rx337_eos, rx337_tgt - gt rx337_pos, rx337_eos, rx337_done - set rx337_off, 0 - lt rx337_pos, 2, rx337_start - sub rx337_off, rx337_pos, 1 - substr rx337_tgt, rx337_tgt, rx337_off - rx337_start: - eq $I10, 1, rx337_restart - if_null rx337_debug, debug_328 - rx337_cur."!cursor_debug"("START ", "backslash:sym") - debug_328: + length rx346_eos, rx346_tgt + gt rx346_pos, rx346_eos, rx346_done + set rx346_off, 0 + lt rx346_pos, 2, rx346_start + sub rx346_off, rx346_pos, 1 + substr rx346_tgt, rx346_tgt, rx346_off + rx346_start: + eq $I10, 1, rx346_restart + if_null rx346_debug, debug_334 + rx346_cur."!cursor_debug"("START", "backslash:sym") + debug_334: $I10 = self.'from'() - ne $I10, -1, rxscan340_done - goto rxscan340_scan - rxscan340_loop: - ($P10) = rx337_cur."from"() + ne $I10, -1, rxscan349_done + goto rxscan349_scan + rxscan349_loop: + ($P10) = rx346_cur."from"() inc $P10 - set rx337_pos, $P10 - ge rx337_pos, rx337_eos, rxscan340_done - rxscan340_scan: - set_addr $I10, rxscan340_loop - rx337_cur."!mark_push"(0, rx337_pos, $I10) - rxscan340_done: -.annotate 'line', 124 + set rx346_pos, $P10 + ge rx346_pos, rx346_eos, rxscan349_done + rxscan349_scan: + set_addr $I10, rxscan349_loop + rx346_cur."!mark_push"(0, rx346_pos, $I10) + rxscan349_done: +.annotate 'line', 131 # rx subcapture "sym" - set_addr $I10, rxcap_341_fail - rx337_cur."!mark_push"(0, rx337_pos, $I10) + set_addr $I10, rxcap_350_fail + rx346_cur."!mark_push"(0, rx346_pos, $I10) # rx enumcharlist negate=0 - ge rx337_pos, rx337_eos, rx337_fail - sub $I10, rx337_pos, rx337_off - substr $S10, rx337_tgt, $I10, 1 + ge rx346_pos, rx346_eos, rx346_fail + sub $I10, rx346_pos, rx346_off + substr $S10, rx346_tgt, $I10, 1 index $I11, "bB", $S10 - lt $I11, 0, rx337_fail - inc rx337_pos - set_addr $I10, rxcap_341_fail - ($I12, $I11) = rx337_cur."!mark_peek"($I10) - rx337_cur."!cursor_pos"($I11) - ($P10) = rx337_cur."!cursor_start"() - $P10."!cursor_pass"(rx337_pos, "") - rx337_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx346_fail + inc rx346_pos + set_addr $I10, rxcap_350_fail + ($I12, $I11) = rx346_cur."!mark_peek"($I10) + rx346_cur."!cursor_pos"($I11) + ($P10) = rx346_cur."!cursor_start"() + $P10."!cursor_pass"(rx346_pos, "") + rx346_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_341_done - rxcap_341_fail: - goto rx337_fail - rxcap_341_done: + goto rxcap_350_done + rxcap_350_fail: + goto rx346_fail + rxcap_350_done: # rx pass - rx337_cur."!cursor_pass"(rx337_pos, "backslash:sym") - if_null rx337_debug, debug_329 - rx337_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx337_pos) - debug_329: - .return (rx337_cur) - rx337_restart: + rx346_cur."!cursor_pass"(rx346_pos, "backslash:sym") + if_null rx346_debug, debug_335 + rx346_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx346_pos) + debug_335: + .return (rx346_cur) + rx346_restart: .annotate 'line', 3 - if_null rx337_debug, debug_330 - rx337_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_330: - rx337_fail: - (rx337_rep, rx337_pos, $I10, $P10) = rx337_cur."!mark_fail"(0) - lt rx337_pos, -1, rx337_done - eq rx337_pos, -1, rx337_fail + if_null rx346_debug, debug_336 + rx346_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_336: + rx346_fail: + (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0) + lt rx346_pos, -1, rx346_done + eq rx346_pos, -1, rx346_fail jump $I10 - rx337_done: - rx337_cur."!cursor_fail"() - if_null rx337_debug, debug_331 - rx337_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_331: - .return (rx337_cur) + rx346_done: + rx346_cur."!cursor_fail"() + if_null rx346_debug, debug_337 + rx346_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_337: + .return (rx346_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("98_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("100_1282323996.47527") :method .annotate 'line', 3 - new $P339, "ResizablePMCArray" - push $P339, "B" - push $P339, "b" - .return ($P339) + new $P348, "ResizablePMCArray" + push $P348, "B" + push $P348, "b" + .return ($P348) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("99_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("101_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx343_tgt - .local int rx343_pos - .local int rx343_off - .local int rx343_eos - .local int rx343_rep - .local pmc rx343_cur - .local pmc rx343_debug - (rx343_cur, rx343_pos, rx343_tgt, $I10) = self."!cursor_start"() - getattribute rx343_debug, rx343_cur, "$!debug" - .lex unicode:"$\x{a2}", rx343_cur + .local string rx352_tgt + .local int rx352_pos + .local int rx352_off + .local int rx352_eos + .local int rx352_rep + .local pmc rx352_cur + .local pmc rx352_debug + (rx352_cur, rx352_pos, rx352_tgt, $I10) = self."!cursor_start"() + getattribute rx352_debug, rx352_cur, "$!debug" + .lex unicode:"$\x{a2}", rx352_cur .local pmc match .lex "$/", match - length rx343_eos, rx343_tgt - gt rx343_pos, rx343_eos, rx343_done - set rx343_off, 0 - lt rx343_pos, 2, rx343_start - sub rx343_off, rx343_pos, 1 - substr rx343_tgt, rx343_tgt, rx343_off - rx343_start: - eq $I10, 1, rx343_restart - if_null rx343_debug, debug_332 - rx343_cur."!cursor_debug"("START ", "backslash:sym") - debug_332: + length rx352_eos, rx352_tgt + gt rx352_pos, rx352_eos, rx352_done + set rx352_off, 0 + lt rx352_pos, 2, rx352_start + sub rx352_off, rx352_pos, 1 + substr rx352_tgt, rx352_tgt, rx352_off + rx352_start: + eq $I10, 1, rx352_restart + if_null rx352_debug, debug_338 + rx352_cur."!cursor_debug"("START", "backslash:sym") + debug_338: $I10 = self.'from'() - ne $I10, -1, rxscan346_done - goto rxscan346_scan - rxscan346_loop: - ($P10) = rx343_cur."from"() + ne $I10, -1, rxscan355_done + goto rxscan355_scan + rxscan355_loop: + ($P10) = rx352_cur."from"() inc $P10 - set rx343_pos, $P10 - ge rx343_pos, rx343_eos, rxscan346_done - rxscan346_scan: - set_addr $I10, rxscan346_loop - rx343_cur."!mark_push"(0, rx343_pos, $I10) - rxscan346_done: -.annotate 'line', 125 + set rx352_pos, $P10 + ge rx352_pos, rx352_eos, rxscan355_done + rxscan355_scan: + set_addr $I10, rxscan355_loop + rx352_cur."!mark_push"(0, rx352_pos, $I10) + rxscan355_done: +.annotate 'line', 132 # rx subcapture "sym" - set_addr $I10, rxcap_347_fail - rx343_cur."!mark_push"(0, rx343_pos, $I10) + set_addr $I10, rxcap_356_fail + rx352_cur."!mark_push"(0, rx352_pos, $I10) # rx enumcharlist negate=0 - ge rx343_pos, rx343_eos, rx343_fail - sub $I10, rx343_pos, rx343_off - substr $S10, rx343_tgt, $I10, 1 + ge rx352_pos, rx352_eos, rx352_fail + sub $I10, rx352_pos, rx352_off + substr $S10, rx352_tgt, $I10, 1 index $I11, "eE", $S10 - lt $I11, 0, rx343_fail - inc rx343_pos - set_addr $I10, rxcap_347_fail - ($I12, $I11) = rx343_cur."!mark_peek"($I10) - rx343_cur."!cursor_pos"($I11) - ($P10) = rx343_cur."!cursor_start"() - $P10."!cursor_pass"(rx343_pos, "") - rx343_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx352_fail + inc rx352_pos + set_addr $I10, rxcap_356_fail + ($I12, $I11) = rx352_cur."!mark_peek"($I10) + rx352_cur."!cursor_pos"($I11) + ($P10) = rx352_cur."!cursor_start"() + $P10."!cursor_pass"(rx352_pos, "") + rx352_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_347_done - rxcap_347_fail: - goto rx343_fail - rxcap_347_done: + goto rxcap_356_done + rxcap_356_fail: + goto rx352_fail + rxcap_356_done: # rx pass - rx343_cur."!cursor_pass"(rx343_pos, "backslash:sym") - if_null rx343_debug, debug_333 - rx343_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx343_pos) - debug_333: - .return (rx343_cur) - rx343_restart: + rx352_cur."!cursor_pass"(rx352_pos, "backslash:sym") + if_null rx352_debug, debug_339 + rx352_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx352_pos) + debug_339: + .return (rx352_cur) + rx352_restart: .annotate 'line', 3 - if_null rx343_debug, debug_334 - rx343_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_334: - rx343_fail: - (rx343_rep, rx343_pos, $I10, $P10) = rx343_cur."!mark_fail"(0) - lt rx343_pos, -1, rx343_done - eq rx343_pos, -1, rx343_fail + if_null rx352_debug, debug_340 + rx352_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_340: + rx352_fail: + (rx352_rep, rx352_pos, $I10, $P10) = rx352_cur."!mark_fail"(0) + lt rx352_pos, -1, rx352_done + eq rx352_pos, -1, rx352_fail jump $I10 - rx343_done: - rx343_cur."!cursor_fail"() - if_null rx343_debug, debug_335 - rx343_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_335: - .return (rx343_cur) + rx352_done: + rx352_cur."!cursor_fail"() + if_null rx352_debug, debug_341 + rx352_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_341: + .return (rx352_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("100_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("102_1282323996.47527") :method .annotate 'line', 3 - new $P345, "ResizablePMCArray" - push $P345, "E" - push $P345, "e" - .return ($P345) + new $P354, "ResizablePMCArray" + push $P354, "E" + push $P354, "e" + .return ($P354) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("101_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("103_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx349_tgt - .local int rx349_pos - .local int rx349_off - .local int rx349_eos - .local int rx349_rep - .local pmc rx349_cur - .local pmc rx349_debug - (rx349_cur, rx349_pos, rx349_tgt, $I10) = self."!cursor_start"() - getattribute rx349_debug, rx349_cur, "$!debug" - .lex unicode:"$\x{a2}", rx349_cur + .local string rx358_tgt + .local int rx358_pos + .local int rx358_off + .local int rx358_eos + .local int rx358_rep + .local pmc rx358_cur + .local pmc rx358_debug + (rx358_cur, rx358_pos, rx358_tgt, $I10) = self."!cursor_start"() + getattribute rx358_debug, rx358_cur, "$!debug" + .lex unicode:"$\x{a2}", rx358_cur .local pmc match .lex "$/", match - length rx349_eos, rx349_tgt - gt rx349_pos, rx349_eos, rx349_done - set rx349_off, 0 - lt rx349_pos, 2, rx349_start - sub rx349_off, rx349_pos, 1 - substr rx349_tgt, rx349_tgt, rx349_off - rx349_start: - eq $I10, 1, rx349_restart - if_null rx349_debug, debug_336 - rx349_cur."!cursor_debug"("START ", "backslash:sym") - debug_336: + length rx358_eos, rx358_tgt + gt rx358_pos, rx358_eos, rx358_done + set rx358_off, 0 + lt rx358_pos, 2, rx358_start + sub rx358_off, rx358_pos, 1 + substr rx358_tgt, rx358_tgt, rx358_off + rx358_start: + eq $I10, 1, rx358_restart + if_null rx358_debug, debug_342 + rx358_cur."!cursor_debug"("START", "backslash:sym") + debug_342: $I10 = self.'from'() - ne $I10, -1, rxscan352_done - goto rxscan352_scan - rxscan352_loop: - ($P10) = rx349_cur."from"() + ne $I10, -1, rxscan361_done + goto rxscan361_scan + rxscan361_loop: + ($P10) = rx358_cur."from"() inc $P10 - set rx349_pos, $P10 - ge rx349_pos, rx349_eos, rxscan352_done - rxscan352_scan: - set_addr $I10, rxscan352_loop - rx349_cur."!mark_push"(0, rx349_pos, $I10) - rxscan352_done: -.annotate 'line', 126 + set rx358_pos, $P10 + ge rx358_pos, rx358_eos, rxscan361_done + rxscan361_scan: + set_addr $I10, rxscan361_loop + rx358_cur."!mark_push"(0, rx358_pos, $I10) + rxscan361_done: +.annotate 'line', 133 # rx subcapture "sym" - set_addr $I10, rxcap_353_fail - rx349_cur."!mark_push"(0, rx349_pos, $I10) + set_addr $I10, rxcap_362_fail + rx358_cur."!mark_push"(0, rx358_pos, $I10) # rx enumcharlist negate=0 - ge rx349_pos, rx349_eos, rx349_fail - sub $I10, rx349_pos, rx349_off - substr $S10, rx349_tgt, $I10, 1 + ge rx358_pos, rx358_eos, rx358_fail + sub $I10, rx358_pos, rx358_off + substr $S10, rx358_tgt, $I10, 1 index $I11, "fF", $S10 - lt $I11, 0, rx349_fail - inc rx349_pos - set_addr $I10, rxcap_353_fail - ($I12, $I11) = rx349_cur."!mark_peek"($I10) - rx349_cur."!cursor_pos"($I11) - ($P10) = rx349_cur."!cursor_start"() - $P10."!cursor_pass"(rx349_pos, "") - rx349_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx358_fail + inc rx358_pos + set_addr $I10, rxcap_362_fail + ($I12, $I11) = rx358_cur."!mark_peek"($I10) + rx358_cur."!cursor_pos"($I11) + ($P10) = rx358_cur."!cursor_start"() + $P10."!cursor_pass"(rx358_pos, "") + rx358_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_353_done - rxcap_353_fail: - goto rx349_fail - rxcap_353_done: + goto rxcap_362_done + rxcap_362_fail: + goto rx358_fail + rxcap_362_done: # rx pass - rx349_cur."!cursor_pass"(rx349_pos, "backslash:sym") - if_null rx349_debug, debug_337 - rx349_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx349_pos) - debug_337: - .return (rx349_cur) - rx349_restart: + rx358_cur."!cursor_pass"(rx358_pos, "backslash:sym") + if_null rx358_debug, debug_343 + rx358_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx358_pos) + debug_343: + .return (rx358_cur) + rx358_restart: .annotate 'line', 3 - if_null rx349_debug, debug_338 - rx349_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_338: - rx349_fail: - (rx349_rep, rx349_pos, $I10, $P10) = rx349_cur."!mark_fail"(0) - lt rx349_pos, -1, rx349_done - eq rx349_pos, -1, rx349_fail + if_null rx358_debug, debug_344 + rx358_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_344: + rx358_fail: + (rx358_rep, rx358_pos, $I10, $P10) = rx358_cur."!mark_fail"(0) + lt rx358_pos, -1, rx358_done + eq rx358_pos, -1, rx358_fail jump $I10 - rx349_done: - rx349_cur."!cursor_fail"() - if_null rx349_debug, debug_339 - rx349_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_339: - .return (rx349_cur) + rx358_done: + rx358_cur."!cursor_fail"() + if_null rx358_debug, debug_345 + rx358_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_345: + .return (rx358_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("102_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("104_1282323996.47527") :method .annotate 'line', 3 - new $P351, "ResizablePMCArray" - push $P351, "F" - push $P351, "f" - .return ($P351) + new $P360, "ResizablePMCArray" + push $P360, "F" + push $P360, "f" + .return ($P360) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("103_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("105_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx355_tgt - .local int rx355_pos - .local int rx355_off - .local int rx355_eos - .local int rx355_rep - .local pmc rx355_cur - .local pmc rx355_debug - (rx355_cur, rx355_pos, rx355_tgt, $I10) = self."!cursor_start"() - getattribute rx355_debug, rx355_cur, "$!debug" - .lex unicode:"$\x{a2}", rx355_cur + .local string rx364_tgt + .local int rx364_pos + .local int rx364_off + .local int rx364_eos + .local int rx364_rep + .local pmc rx364_cur + .local pmc rx364_debug + (rx364_cur, rx364_pos, rx364_tgt, $I10) = self."!cursor_start"() + getattribute rx364_debug, rx364_cur, "$!debug" + .lex unicode:"$\x{a2}", rx364_cur .local pmc match .lex "$/", match - length rx355_eos, rx355_tgt - gt rx355_pos, rx355_eos, rx355_done - set rx355_off, 0 - lt rx355_pos, 2, rx355_start - sub rx355_off, rx355_pos, 1 - substr rx355_tgt, rx355_tgt, rx355_off - rx355_start: - eq $I10, 1, rx355_restart - if_null rx355_debug, debug_340 - rx355_cur."!cursor_debug"("START ", "backslash:sym") - debug_340: + length rx364_eos, rx364_tgt + gt rx364_pos, rx364_eos, rx364_done + set rx364_off, 0 + lt rx364_pos, 2, rx364_start + sub rx364_off, rx364_pos, 1 + substr rx364_tgt, rx364_tgt, rx364_off + rx364_start: + eq $I10, 1, rx364_restart + if_null rx364_debug, debug_346 + rx364_cur."!cursor_debug"("START", "backslash:sym") + debug_346: $I10 = self.'from'() - ne $I10, -1, rxscan358_done - goto rxscan358_scan - rxscan358_loop: - ($P10) = rx355_cur."from"() + ne $I10, -1, rxscan367_done + goto rxscan367_scan + rxscan367_loop: + ($P10) = rx364_cur."from"() inc $P10 - set rx355_pos, $P10 - ge rx355_pos, rx355_eos, rxscan358_done - rxscan358_scan: - set_addr $I10, rxscan358_loop - rx355_cur."!mark_push"(0, rx355_pos, $I10) - rxscan358_done: -.annotate 'line', 127 + set rx364_pos, $P10 + ge rx364_pos, rx364_eos, rxscan367_done + rxscan367_scan: + set_addr $I10, rxscan367_loop + rx364_cur."!mark_push"(0, rx364_pos, $I10) + rxscan367_done: +.annotate 'line', 134 # rx subcapture "sym" - set_addr $I10, rxcap_359_fail - rx355_cur."!mark_push"(0, rx355_pos, $I10) + set_addr $I10, rxcap_368_fail + rx364_cur."!mark_push"(0, rx364_pos, $I10) # rx enumcharlist negate=0 - ge rx355_pos, rx355_eos, rx355_fail - sub $I10, rx355_pos, rx355_off - substr $S10, rx355_tgt, $I10, 1 + ge rx364_pos, rx364_eos, rx364_fail + sub $I10, rx364_pos, rx364_off + substr $S10, rx364_tgt, $I10, 1 index $I11, "hH", $S10 - lt $I11, 0, rx355_fail - inc rx355_pos - set_addr $I10, rxcap_359_fail - ($I12, $I11) = rx355_cur."!mark_peek"($I10) - rx355_cur."!cursor_pos"($I11) - ($P10) = rx355_cur."!cursor_start"() - $P10."!cursor_pass"(rx355_pos, "") - rx355_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx364_fail + inc rx364_pos + set_addr $I10, rxcap_368_fail + ($I12, $I11) = rx364_cur."!mark_peek"($I10) + rx364_cur."!cursor_pos"($I11) + ($P10) = rx364_cur."!cursor_start"() + $P10."!cursor_pass"(rx364_pos, "") + rx364_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_359_done - rxcap_359_fail: - goto rx355_fail - rxcap_359_done: + goto rxcap_368_done + rxcap_368_fail: + goto rx364_fail + rxcap_368_done: # rx pass - rx355_cur."!cursor_pass"(rx355_pos, "backslash:sym") - if_null rx355_debug, debug_341 - rx355_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx355_pos) - debug_341: - .return (rx355_cur) - rx355_restart: + rx364_cur."!cursor_pass"(rx364_pos, "backslash:sym") + if_null rx364_debug, debug_347 + rx364_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx364_pos) + debug_347: + .return (rx364_cur) + rx364_restart: .annotate 'line', 3 - if_null rx355_debug, debug_342 - rx355_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_342: - rx355_fail: - (rx355_rep, rx355_pos, $I10, $P10) = rx355_cur."!mark_fail"(0) - lt rx355_pos, -1, rx355_done - eq rx355_pos, -1, rx355_fail + if_null rx364_debug, debug_348 + rx364_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_348: + rx364_fail: + (rx364_rep, rx364_pos, $I10, $P10) = rx364_cur."!mark_fail"(0) + lt rx364_pos, -1, rx364_done + eq rx364_pos, -1, rx364_fail jump $I10 - rx355_done: - rx355_cur."!cursor_fail"() - if_null rx355_debug, debug_343 - rx355_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_343: - .return (rx355_cur) + rx364_done: + rx364_cur."!cursor_fail"() + if_null rx364_debug, debug_349 + rx364_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_349: + .return (rx364_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("104_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("106_1282323996.47527") :method .annotate 'line', 3 - new $P357, "ResizablePMCArray" - push $P357, "H" - push $P357, "h" - .return ($P357) + new $P366, "ResizablePMCArray" + push $P366, "H" + push $P366, "h" + .return ($P366) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("105_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("107_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx361_tgt - .local int rx361_pos - .local int rx361_off - .local int rx361_eos - .local int rx361_rep - .local pmc rx361_cur - .local pmc rx361_debug - (rx361_cur, rx361_pos, rx361_tgt, $I10) = self."!cursor_start"() - getattribute rx361_debug, rx361_cur, "$!debug" - .lex unicode:"$\x{a2}", rx361_cur + .local string rx370_tgt + .local int rx370_pos + .local int rx370_off + .local int rx370_eos + .local int rx370_rep + .local pmc rx370_cur + .local pmc rx370_debug + (rx370_cur, rx370_pos, rx370_tgt, $I10) = self."!cursor_start"() + getattribute rx370_debug, rx370_cur, "$!debug" + .lex unicode:"$\x{a2}", rx370_cur .local pmc match .lex "$/", match - length rx361_eos, rx361_tgt - gt rx361_pos, rx361_eos, rx361_done - set rx361_off, 0 - lt rx361_pos, 2, rx361_start - sub rx361_off, rx361_pos, 1 - substr rx361_tgt, rx361_tgt, rx361_off - rx361_start: - eq $I10, 1, rx361_restart - if_null rx361_debug, debug_344 - rx361_cur."!cursor_debug"("START ", "backslash:sym") - debug_344: + length rx370_eos, rx370_tgt + gt rx370_pos, rx370_eos, rx370_done + set rx370_off, 0 + lt rx370_pos, 2, rx370_start + sub rx370_off, rx370_pos, 1 + substr rx370_tgt, rx370_tgt, rx370_off + rx370_start: + eq $I10, 1, rx370_restart + if_null rx370_debug, debug_350 + rx370_cur."!cursor_debug"("START", "backslash:sym") + debug_350: $I10 = self.'from'() - ne $I10, -1, rxscan364_done - goto rxscan364_scan - rxscan364_loop: - ($P10) = rx361_cur."from"() + ne $I10, -1, rxscan373_done + goto rxscan373_scan + rxscan373_loop: + ($P10) = rx370_cur."from"() inc $P10 - set rx361_pos, $P10 - ge rx361_pos, rx361_eos, rxscan364_done - rxscan364_scan: - set_addr $I10, rxscan364_loop - rx361_cur."!mark_push"(0, rx361_pos, $I10) - rxscan364_done: -.annotate 'line', 128 + set rx370_pos, $P10 + ge rx370_pos, rx370_eos, rxscan373_done + rxscan373_scan: + set_addr $I10, rxscan373_loop + rx370_cur."!mark_push"(0, rx370_pos, $I10) + rxscan373_done: +.annotate 'line', 135 # rx subcapture "sym" - set_addr $I10, rxcap_365_fail - rx361_cur."!mark_push"(0, rx361_pos, $I10) + set_addr $I10, rxcap_374_fail + rx370_cur."!mark_push"(0, rx370_pos, $I10) # rx enumcharlist negate=0 - ge rx361_pos, rx361_eos, rx361_fail - sub $I10, rx361_pos, rx361_off - substr $S10, rx361_tgt, $I10, 1 + ge rx370_pos, rx370_eos, rx370_fail + sub $I10, rx370_pos, rx370_off + substr $S10, rx370_tgt, $I10, 1 index $I11, "rR", $S10 - lt $I11, 0, rx361_fail - inc rx361_pos - set_addr $I10, rxcap_365_fail - ($I12, $I11) = rx361_cur."!mark_peek"($I10) - rx361_cur."!cursor_pos"($I11) - ($P10) = rx361_cur."!cursor_start"() - $P10."!cursor_pass"(rx361_pos, "") - rx361_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx370_fail + inc rx370_pos + set_addr $I10, rxcap_374_fail + ($I12, $I11) = rx370_cur."!mark_peek"($I10) + rx370_cur."!cursor_pos"($I11) + ($P10) = rx370_cur."!cursor_start"() + $P10."!cursor_pass"(rx370_pos, "") + rx370_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_365_done - rxcap_365_fail: - goto rx361_fail - rxcap_365_done: + goto rxcap_374_done + rxcap_374_fail: + goto rx370_fail + rxcap_374_done: # rx pass - rx361_cur."!cursor_pass"(rx361_pos, "backslash:sym") - if_null rx361_debug, debug_345 - rx361_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx361_pos) - debug_345: - .return (rx361_cur) - rx361_restart: + rx370_cur."!cursor_pass"(rx370_pos, "backslash:sym") + if_null rx370_debug, debug_351 + rx370_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx370_pos) + debug_351: + .return (rx370_cur) + rx370_restart: .annotate 'line', 3 - if_null rx361_debug, debug_346 - rx361_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_346: - rx361_fail: - (rx361_rep, rx361_pos, $I10, $P10) = rx361_cur."!mark_fail"(0) - lt rx361_pos, -1, rx361_done - eq rx361_pos, -1, rx361_fail + if_null rx370_debug, debug_352 + rx370_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_352: + rx370_fail: + (rx370_rep, rx370_pos, $I10, $P10) = rx370_cur."!mark_fail"(0) + lt rx370_pos, -1, rx370_done + eq rx370_pos, -1, rx370_fail jump $I10 - rx361_done: - rx361_cur."!cursor_fail"() - if_null rx361_debug, debug_347 - rx361_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_347: - .return (rx361_cur) + rx370_done: + rx370_cur."!cursor_fail"() + if_null rx370_debug, debug_353 + rx370_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_353: + .return (rx370_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("106_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("108_1282323996.47527") :method .annotate 'line', 3 - new $P363, "ResizablePMCArray" - push $P363, "R" - push $P363, "r" - .return ($P363) + new $P372, "ResizablePMCArray" + push $P372, "R" + push $P372, "r" + .return ($P372) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("107_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("109_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx367_tgt - .local int rx367_pos - .local int rx367_off - .local int rx367_eos - .local int rx367_rep - .local pmc rx367_cur - .local pmc rx367_debug - (rx367_cur, rx367_pos, rx367_tgt, $I10) = self."!cursor_start"() - getattribute rx367_debug, rx367_cur, "$!debug" - .lex unicode:"$\x{a2}", rx367_cur + .local string rx376_tgt + .local int rx376_pos + .local int rx376_off + .local int rx376_eos + .local int rx376_rep + .local pmc rx376_cur + .local pmc rx376_debug + (rx376_cur, rx376_pos, rx376_tgt, $I10) = self."!cursor_start"() + getattribute rx376_debug, rx376_cur, "$!debug" + .lex unicode:"$\x{a2}", rx376_cur .local pmc match .lex "$/", match - length rx367_eos, rx367_tgt - gt rx367_pos, rx367_eos, rx367_done - set rx367_off, 0 - lt rx367_pos, 2, rx367_start - sub rx367_off, rx367_pos, 1 - substr rx367_tgt, rx367_tgt, rx367_off - rx367_start: - eq $I10, 1, rx367_restart - if_null rx367_debug, debug_348 - rx367_cur."!cursor_debug"("START ", "backslash:sym") - debug_348: + length rx376_eos, rx376_tgt + gt rx376_pos, rx376_eos, rx376_done + set rx376_off, 0 + lt rx376_pos, 2, rx376_start + sub rx376_off, rx376_pos, 1 + substr rx376_tgt, rx376_tgt, rx376_off + rx376_start: + eq $I10, 1, rx376_restart + if_null rx376_debug, debug_354 + rx376_cur."!cursor_debug"("START", "backslash:sym") + debug_354: $I10 = self.'from'() - ne $I10, -1, rxscan370_done - goto rxscan370_scan - rxscan370_loop: - ($P10) = rx367_cur."from"() + ne $I10, -1, rxscan379_done + goto rxscan379_scan + rxscan379_loop: + ($P10) = rx376_cur."from"() inc $P10 - set rx367_pos, $P10 - ge rx367_pos, rx367_eos, rxscan370_done - rxscan370_scan: - set_addr $I10, rxscan370_loop - rx367_cur."!mark_push"(0, rx367_pos, $I10) - rxscan370_done: -.annotate 'line', 129 + set rx376_pos, $P10 + ge rx376_pos, rx376_eos, rxscan379_done + rxscan379_scan: + set_addr $I10, rxscan379_loop + rx376_cur."!mark_push"(0, rx376_pos, $I10) + rxscan379_done: +.annotate 'line', 136 # rx subcapture "sym" - set_addr $I10, rxcap_371_fail - rx367_cur."!mark_push"(0, rx367_pos, $I10) + set_addr $I10, rxcap_380_fail + rx376_cur."!mark_push"(0, rx376_pos, $I10) # rx enumcharlist negate=0 - ge rx367_pos, rx367_eos, rx367_fail - sub $I10, rx367_pos, rx367_off - substr $S10, rx367_tgt, $I10, 1 + ge rx376_pos, rx376_eos, rx376_fail + sub $I10, rx376_pos, rx376_off + substr $S10, rx376_tgt, $I10, 1 index $I11, "tT", $S10 - lt $I11, 0, rx367_fail - inc rx367_pos - set_addr $I10, rxcap_371_fail - ($I12, $I11) = rx367_cur."!mark_peek"($I10) - rx367_cur."!cursor_pos"($I11) - ($P10) = rx367_cur."!cursor_start"() - $P10."!cursor_pass"(rx367_pos, "") - rx367_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx376_fail + inc rx376_pos + set_addr $I10, rxcap_380_fail + ($I12, $I11) = rx376_cur."!mark_peek"($I10) + rx376_cur."!cursor_pos"($I11) + ($P10) = rx376_cur."!cursor_start"() + $P10."!cursor_pass"(rx376_pos, "") + rx376_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_371_done - rxcap_371_fail: - goto rx367_fail - rxcap_371_done: + goto rxcap_380_done + rxcap_380_fail: + goto rx376_fail + rxcap_380_done: # rx pass - rx367_cur."!cursor_pass"(rx367_pos, "backslash:sym") - if_null rx367_debug, debug_349 - rx367_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx367_pos) - debug_349: - .return (rx367_cur) - rx367_restart: + rx376_cur."!cursor_pass"(rx376_pos, "backslash:sym") + if_null rx376_debug, debug_355 + rx376_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx376_pos) + debug_355: + .return (rx376_cur) + rx376_restart: .annotate 'line', 3 - if_null rx367_debug, debug_350 - rx367_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_350: - rx367_fail: - (rx367_rep, rx367_pos, $I10, $P10) = rx367_cur."!mark_fail"(0) - lt rx367_pos, -1, rx367_done - eq rx367_pos, -1, rx367_fail + if_null rx376_debug, debug_356 + rx376_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_356: + rx376_fail: + (rx376_rep, rx376_pos, $I10, $P10) = rx376_cur."!mark_fail"(0) + lt rx376_pos, -1, rx376_done + eq rx376_pos, -1, rx376_fail jump $I10 - rx367_done: - rx367_cur."!cursor_fail"() - if_null rx367_debug, debug_351 - rx367_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_351: - .return (rx367_cur) + rx376_done: + rx376_cur."!cursor_fail"() + if_null rx376_debug, debug_357 + rx376_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_357: + .return (rx376_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("108_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("110_1282323996.47527") :method .annotate 'line', 3 - new $P369, "ResizablePMCArray" - push $P369, "T" - push $P369, "t" - .return ($P369) + new $P378, "ResizablePMCArray" + push $P378, "T" + push $P378, "t" + .return ($P378) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("109_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("111_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx373_tgt - .local int rx373_pos - .local int rx373_off - .local int rx373_eos - .local int rx373_rep - .local pmc rx373_cur - .local pmc rx373_debug - (rx373_cur, rx373_pos, rx373_tgt, $I10) = self."!cursor_start"() - getattribute rx373_debug, rx373_cur, "$!debug" - .lex unicode:"$\x{a2}", rx373_cur + .local string rx382_tgt + .local int rx382_pos + .local int rx382_off + .local int rx382_eos + .local int rx382_rep + .local pmc rx382_cur + .local pmc rx382_debug + (rx382_cur, rx382_pos, rx382_tgt, $I10) = self."!cursor_start"() + getattribute rx382_debug, rx382_cur, "$!debug" + .lex unicode:"$\x{a2}", rx382_cur .local pmc match .lex "$/", match - length rx373_eos, rx373_tgt - gt rx373_pos, rx373_eos, rx373_done - set rx373_off, 0 - lt rx373_pos, 2, rx373_start - sub rx373_off, rx373_pos, 1 - substr rx373_tgt, rx373_tgt, rx373_off - rx373_start: - eq $I10, 1, rx373_restart - if_null rx373_debug, debug_352 - rx373_cur."!cursor_debug"("START ", "backslash:sym") - debug_352: + length rx382_eos, rx382_tgt + gt rx382_pos, rx382_eos, rx382_done + set rx382_off, 0 + lt rx382_pos, 2, rx382_start + sub rx382_off, rx382_pos, 1 + substr rx382_tgt, rx382_tgt, rx382_off + rx382_start: + eq $I10, 1, rx382_restart + if_null rx382_debug, debug_358 + rx382_cur."!cursor_debug"("START", "backslash:sym") + debug_358: $I10 = self.'from'() - ne $I10, -1, rxscan376_done - goto rxscan376_scan - rxscan376_loop: - ($P10) = rx373_cur."from"() + ne $I10, -1, rxscan385_done + goto rxscan385_scan + rxscan385_loop: + ($P10) = rx382_cur."from"() inc $P10 - set rx373_pos, $P10 - ge rx373_pos, rx373_eos, rxscan376_done - rxscan376_scan: - set_addr $I10, rxscan376_loop - rx373_cur."!mark_push"(0, rx373_pos, $I10) - rxscan376_done: -.annotate 'line', 130 + set rx382_pos, $P10 + ge rx382_pos, rx382_eos, rxscan385_done + rxscan385_scan: + set_addr $I10, rxscan385_loop + rx382_cur."!mark_push"(0, rx382_pos, $I10) + rxscan385_done: +.annotate 'line', 137 # rx subcapture "sym" - set_addr $I10, rxcap_377_fail - rx373_cur."!mark_push"(0, rx373_pos, $I10) + set_addr $I10, rxcap_386_fail + rx382_cur."!mark_push"(0, rx382_pos, $I10) # rx enumcharlist negate=0 - ge rx373_pos, rx373_eos, rx373_fail - sub $I10, rx373_pos, rx373_off - substr $S10, rx373_tgt, $I10, 1 + ge rx382_pos, rx382_eos, rx382_fail + sub $I10, rx382_pos, rx382_off + substr $S10, rx382_tgt, $I10, 1 index $I11, "vV", $S10 - lt $I11, 0, rx373_fail - inc rx373_pos - set_addr $I10, rxcap_377_fail - ($I12, $I11) = rx373_cur."!mark_peek"($I10) - rx373_cur."!cursor_pos"($I11) - ($P10) = rx373_cur."!cursor_start"() - $P10."!cursor_pass"(rx373_pos, "") - rx373_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx382_fail + inc rx382_pos + set_addr $I10, rxcap_386_fail + ($I12, $I11) = rx382_cur."!mark_peek"($I10) + rx382_cur."!cursor_pos"($I11) + ($P10) = rx382_cur."!cursor_start"() + $P10."!cursor_pass"(rx382_pos, "") + rx382_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_377_done - rxcap_377_fail: - goto rx373_fail - rxcap_377_done: + goto rxcap_386_done + rxcap_386_fail: + goto rx382_fail + rxcap_386_done: # rx pass - rx373_cur."!cursor_pass"(rx373_pos, "backslash:sym") - if_null rx373_debug, debug_353 - rx373_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx373_pos) - debug_353: - .return (rx373_cur) - rx373_restart: + rx382_cur."!cursor_pass"(rx382_pos, "backslash:sym") + if_null rx382_debug, debug_359 + rx382_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx382_pos) + debug_359: + .return (rx382_cur) + rx382_restart: .annotate 'line', 3 - if_null rx373_debug, debug_354 - rx373_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_354: - rx373_fail: - (rx373_rep, rx373_pos, $I10, $P10) = rx373_cur."!mark_fail"(0) - lt rx373_pos, -1, rx373_done - eq rx373_pos, -1, rx373_fail + if_null rx382_debug, debug_360 + rx382_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_360: + rx382_fail: + (rx382_rep, rx382_pos, $I10, $P10) = rx382_cur."!mark_fail"(0) + lt rx382_pos, -1, rx382_done + eq rx382_pos, -1, rx382_fail jump $I10 - rx373_done: - rx373_cur."!cursor_fail"() - if_null rx373_debug, debug_355 - rx373_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_355: - .return (rx373_cur) + rx382_done: + rx382_cur."!cursor_fail"() + if_null rx382_debug, debug_361 + rx382_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_361: + .return (rx382_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("110_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("112_1282323996.47527") :method .annotate 'line', 3 - new $P375, "ResizablePMCArray" - push $P375, "V" - push $P375, "v" - .return ($P375) + new $P384, "ResizablePMCArray" + push $P384, "V" + push $P384, "v" + .return ($P384) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("111_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("113_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx379_tgt - .local int rx379_pos - .local int rx379_off - .local int rx379_eos - .local int rx379_rep - .local pmc rx379_cur - .local pmc rx379_debug - (rx379_cur, rx379_pos, rx379_tgt, $I10) = self."!cursor_start"() - getattribute rx379_debug, rx379_cur, "$!debug" - .lex unicode:"$\x{a2}", rx379_cur + .local string rx388_tgt + .local int rx388_pos + .local int rx388_off + .local int rx388_eos + .local int rx388_rep + .local pmc rx388_cur + .local pmc rx388_debug + (rx388_cur, rx388_pos, rx388_tgt, $I10) = self."!cursor_start"() + getattribute rx388_debug, rx388_cur, "$!debug" + .lex unicode:"$\x{a2}", rx388_cur .local pmc match .lex "$/", match - length rx379_eos, rx379_tgt - gt rx379_pos, rx379_eos, rx379_done - set rx379_off, 0 - lt rx379_pos, 2, rx379_start - sub rx379_off, rx379_pos, 1 - substr rx379_tgt, rx379_tgt, rx379_off - rx379_start: - eq $I10, 1, rx379_restart - if_null rx379_debug, debug_356 - rx379_cur."!cursor_debug"("START ", "backslash:sym") - debug_356: + length rx388_eos, rx388_tgt + gt rx388_pos, rx388_eos, rx388_done + set rx388_off, 0 + lt rx388_pos, 2, rx388_start + sub rx388_off, rx388_pos, 1 + substr rx388_tgt, rx388_tgt, rx388_off + rx388_start: + eq $I10, 1, rx388_restart + if_null rx388_debug, debug_362 + rx388_cur."!cursor_debug"("START", "backslash:sym") + debug_362: $I10 = self.'from'() - ne $I10, -1, rxscan386_done - goto rxscan386_scan - rxscan386_loop: - ($P10) = rx379_cur."from"() + ne $I10, -1, rxscan395_done + goto rxscan395_scan + rxscan395_loop: + ($P10) = rx388_cur."from"() inc $P10 - set rx379_pos, $P10 - ge rx379_pos, rx379_eos, rxscan386_done - rxscan386_scan: - set_addr $I10, rxscan386_loop - rx379_cur."!mark_push"(0, rx379_pos, $I10) - rxscan386_done: -.annotate 'line', 131 + set rx388_pos, $P10 + ge rx388_pos, rx388_eos, rxscan395_done + rxscan395_scan: + set_addr $I10, rxscan395_loop + rx388_cur."!mark_push"(0, rx388_pos, $I10) + rxscan395_done: +.annotate 'line', 138 # rx subcapture "sym" - set_addr $I10, rxcap_387_fail - rx379_cur."!mark_push"(0, rx379_pos, $I10) + set_addr $I10, rxcap_396_fail + rx388_cur."!mark_push"(0, rx388_pos, $I10) # rx enumcharlist negate=0 - ge rx379_pos, rx379_eos, rx379_fail - sub $I10, rx379_pos, rx379_off - substr $S10, rx379_tgt, $I10, 1 + ge rx388_pos, rx388_eos, rx388_fail + sub $I10, rx388_pos, rx388_off + substr $S10, rx388_tgt, $I10, 1 index $I11, "oO", $S10 - lt $I11, 0, rx379_fail - inc rx379_pos - set_addr $I10, rxcap_387_fail - ($I12, $I11) = rx379_cur."!mark_peek"($I10) - rx379_cur."!cursor_pos"($I11) - ($P10) = rx379_cur."!cursor_start"() - $P10."!cursor_pass"(rx379_pos, "") - rx379_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx388_fail + inc rx388_pos + set_addr $I10, rxcap_396_fail + ($I12, $I11) = rx388_cur."!mark_peek"($I10) + rx388_cur."!cursor_pos"($I11) + ($P10) = rx388_cur."!cursor_start"() + $P10."!cursor_pass"(rx388_pos, "") + rx388_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_387_done - rxcap_387_fail: - goto rx379_fail - rxcap_387_done: - alt388_0: - set_addr $I10, alt388_1 - rx379_cur."!mark_push"(0, rx379_pos, $I10) + goto rxcap_396_done + rxcap_396_fail: + goto rx388_fail + rxcap_396_done: + alt397_0: + set_addr $I10, alt397_1 + rx388_cur."!mark_push"(0, rx388_pos, $I10) # rx subrule "octint" subtype=capture negate= - rx379_cur."!cursor_pos"(rx379_pos) - $P10 = rx379_cur."octint"() - unless $P10, rx379_fail - rx379_cur."!mark_push"(0, -1, 0, $P10) + rx388_cur."!cursor_pos"(rx388_pos) + $P10 = rx388_cur."octint"() + unless $P10, rx388_fail + rx388_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("octint") - rx379_pos = $P10."pos"() - goto alt388_end - alt388_1: + rx388_pos = $P10."pos"() + goto alt397_end + alt397_1: # rx literal "[" - add $I11, rx379_pos, 1 - gt $I11, rx379_eos, rx379_fail - sub $I11, rx379_pos, rx379_off - ord $I11, rx379_tgt, $I11 - ne $I11, 91, rx379_fail - add rx379_pos, 1 + add $I11, rx388_pos, 1 + gt $I11, rx388_eos, rx388_fail + sub $I11, rx388_pos, rx388_off + ord $I11, rx388_tgt, $I11 + ne $I11, 91, rx388_fail + add rx388_pos, 1 # rx subrule "octints" subtype=capture negate= - rx379_cur."!cursor_pos"(rx379_pos) - $P10 = rx379_cur."octints"() - unless $P10, rx379_fail - rx379_cur."!mark_push"(0, -1, 0, $P10) + rx388_cur."!cursor_pos"(rx388_pos) + $P10 = rx388_cur."octints"() + unless $P10, rx388_fail + rx388_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("octints") - rx379_pos = $P10."pos"() + rx388_pos = $P10."pos"() # rx literal "]" - add $I11, rx379_pos, 1 - gt $I11, rx379_eos, rx379_fail - sub $I11, rx379_pos, rx379_off - ord $I11, rx379_tgt, $I11 - ne $I11, 93, rx379_fail - add rx379_pos, 1 - alt388_end: + add $I11, rx388_pos, 1 + gt $I11, rx388_eos, rx388_fail + sub $I11, rx388_pos, rx388_off + ord $I11, rx388_tgt, $I11 + ne $I11, 93, rx388_fail + add rx388_pos, 1 + alt397_end: # rx pass - rx379_cur."!cursor_pass"(rx379_pos, "backslash:sym") - if_null rx379_debug, debug_357 - rx379_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx379_pos) - debug_357: - .return (rx379_cur) - rx379_restart: + rx388_cur."!cursor_pass"(rx388_pos, "backslash:sym") + if_null rx388_debug, debug_363 + rx388_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx388_pos) + debug_363: + .return (rx388_cur) + rx388_restart: .annotate 'line', 3 - if_null rx379_debug, debug_358 - rx379_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_358: - rx379_fail: - (rx379_rep, rx379_pos, $I10, $P10) = rx379_cur."!mark_fail"(0) - lt rx379_pos, -1, rx379_done - eq rx379_pos, -1, rx379_fail + if_null rx388_debug, debug_364 + rx388_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_364: + rx388_fail: + (rx388_rep, rx388_pos, $I10, $P10) = rx388_cur."!mark_fail"(0) + lt rx388_pos, -1, rx388_done + eq rx388_pos, -1, rx388_fail jump $I10 - rx379_done: - rx379_cur."!cursor_fail"() - if_null rx379_debug, debug_359 - rx379_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_359: - .return (rx379_cur) + rx388_done: + rx388_cur."!cursor_fail"() + if_null rx388_debug, debug_365 + rx388_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_365: + .return (rx388_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("112_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("114_1282323996.47527") :method .annotate 'line', 3 - $P381 = self."!PREFIX__!subrule"("octints", "O[") - $P382 = self."!PREFIX__!subrule"("octint", "O") - $P383 = self."!PREFIX__!subrule"("octints", "o[") - $P384 = self."!PREFIX__!subrule"("octint", "o") - new $P385, "ResizablePMCArray" - push $P385, $P381 - push $P385, $P382 - push $P385, $P383 - push $P385, $P384 - .return ($P385) + $P390 = self."!PREFIX__!subrule"("octints", "O[") + $P391 = self."!PREFIX__!subrule"("octint", "O") + $P392 = self."!PREFIX__!subrule"("octints", "o[") + $P393 = self."!PREFIX__!subrule"("octint", "o") + new $P394, "ResizablePMCArray" + push $P394, $P390 + push $P394, $P391 + push $P394, $P392 + push $P394, $P393 + .return ($P394) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("113_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("115_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx390_tgt - .local int rx390_pos - .local int rx390_off - .local int rx390_eos - .local int rx390_rep - .local pmc rx390_cur - .local pmc rx390_debug - (rx390_cur, rx390_pos, rx390_tgt, $I10) = self."!cursor_start"() - getattribute rx390_debug, rx390_cur, "$!debug" - .lex unicode:"$\x{a2}", rx390_cur + .local string rx399_tgt + .local int rx399_pos + .local int rx399_off + .local int rx399_eos + .local int rx399_rep + .local pmc rx399_cur + .local pmc rx399_debug + (rx399_cur, rx399_pos, rx399_tgt, $I10) = self."!cursor_start"() + getattribute rx399_debug, rx399_cur, "$!debug" + .lex unicode:"$\x{a2}", rx399_cur .local pmc match .lex "$/", match - length rx390_eos, rx390_tgt - gt rx390_pos, rx390_eos, rx390_done - set rx390_off, 0 - lt rx390_pos, 2, rx390_start - sub rx390_off, rx390_pos, 1 - substr rx390_tgt, rx390_tgt, rx390_off - rx390_start: - eq $I10, 1, rx390_restart - if_null rx390_debug, debug_360 - rx390_cur."!cursor_debug"("START ", "backslash:sym") - debug_360: + length rx399_eos, rx399_tgt + gt rx399_pos, rx399_eos, rx399_done + set rx399_off, 0 + lt rx399_pos, 2, rx399_start + sub rx399_off, rx399_pos, 1 + substr rx399_tgt, rx399_tgt, rx399_off + rx399_start: + eq $I10, 1, rx399_restart + if_null rx399_debug, debug_366 + rx399_cur."!cursor_debug"("START", "backslash:sym") + debug_366: $I10 = self.'from'() - ne $I10, -1, rxscan397_done - goto rxscan397_scan - rxscan397_loop: - ($P10) = rx390_cur."from"() + ne $I10, -1, rxscan406_done + goto rxscan406_scan + rxscan406_loop: + ($P10) = rx399_cur."from"() inc $P10 - set rx390_pos, $P10 - ge rx390_pos, rx390_eos, rxscan397_done - rxscan397_scan: - set_addr $I10, rxscan397_loop - rx390_cur."!mark_push"(0, rx390_pos, $I10) - rxscan397_done: -.annotate 'line', 132 + set rx399_pos, $P10 + ge rx399_pos, rx399_eos, rxscan406_done + rxscan406_scan: + set_addr $I10, rxscan406_loop + rx399_cur."!mark_push"(0, rx399_pos, $I10) + rxscan406_done: +.annotate 'line', 139 # rx subcapture "sym" - set_addr $I10, rxcap_398_fail - rx390_cur."!mark_push"(0, rx390_pos, $I10) + set_addr $I10, rxcap_407_fail + rx399_cur."!mark_push"(0, rx399_pos, $I10) # rx enumcharlist negate=0 - ge rx390_pos, rx390_eos, rx390_fail - sub $I10, rx390_pos, rx390_off - substr $S10, rx390_tgt, $I10, 1 + ge rx399_pos, rx399_eos, rx399_fail + sub $I10, rx399_pos, rx399_off + substr $S10, rx399_tgt, $I10, 1 index $I11, "xX", $S10 - lt $I11, 0, rx390_fail - inc rx390_pos - set_addr $I10, rxcap_398_fail - ($I12, $I11) = rx390_cur."!mark_peek"($I10) - rx390_cur."!cursor_pos"($I11) - ($P10) = rx390_cur."!cursor_start"() - $P10."!cursor_pass"(rx390_pos, "") - rx390_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx399_fail + inc rx399_pos + set_addr $I10, rxcap_407_fail + ($I12, $I11) = rx399_cur."!mark_peek"($I10) + rx399_cur."!cursor_pos"($I11) + ($P10) = rx399_cur."!cursor_start"() + $P10."!cursor_pass"(rx399_pos, "") + rx399_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_398_done - rxcap_398_fail: - goto rx390_fail - rxcap_398_done: - alt399_0: - set_addr $I10, alt399_1 - rx390_cur."!mark_push"(0, rx390_pos, $I10) + goto rxcap_407_done + rxcap_407_fail: + goto rx399_fail + rxcap_407_done: + alt408_0: + set_addr $I10, alt408_1 + rx399_cur."!mark_push"(0, rx399_pos, $I10) # rx subrule "hexint" subtype=capture negate= - rx390_cur."!cursor_pos"(rx390_pos) - $P10 = rx390_cur."hexint"() - unless $P10, rx390_fail - rx390_cur."!mark_push"(0, -1, 0, $P10) + rx399_cur."!cursor_pos"(rx399_pos) + $P10 = rx399_cur."hexint"() + unless $P10, rx399_fail + rx399_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("hexint") - rx390_pos = $P10."pos"() - goto alt399_end - alt399_1: + rx399_pos = $P10."pos"() + goto alt408_end + alt408_1: # rx literal "[" - add $I11, rx390_pos, 1 - gt $I11, rx390_eos, rx390_fail - sub $I11, rx390_pos, rx390_off - ord $I11, rx390_tgt, $I11 - ne $I11, 91, rx390_fail - add rx390_pos, 1 + add $I11, rx399_pos, 1 + gt $I11, rx399_eos, rx399_fail + sub $I11, rx399_pos, rx399_off + ord $I11, rx399_tgt, $I11 + ne $I11, 91, rx399_fail + add rx399_pos, 1 # rx subrule "hexints" subtype=capture negate= - rx390_cur."!cursor_pos"(rx390_pos) - $P10 = rx390_cur."hexints"() - unless $P10, rx390_fail - rx390_cur."!mark_push"(0, -1, 0, $P10) + rx399_cur."!cursor_pos"(rx399_pos) + $P10 = rx399_cur."hexints"() + unless $P10, rx399_fail + rx399_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("hexints") - rx390_pos = $P10."pos"() + rx399_pos = $P10."pos"() # rx literal "]" - add $I11, rx390_pos, 1 - gt $I11, rx390_eos, rx390_fail - sub $I11, rx390_pos, rx390_off - ord $I11, rx390_tgt, $I11 - ne $I11, 93, rx390_fail - add rx390_pos, 1 - alt399_end: + add $I11, rx399_pos, 1 + gt $I11, rx399_eos, rx399_fail + sub $I11, rx399_pos, rx399_off + ord $I11, rx399_tgt, $I11 + ne $I11, 93, rx399_fail + add rx399_pos, 1 + alt408_end: # rx pass - rx390_cur."!cursor_pass"(rx390_pos, "backslash:sym") - if_null rx390_debug, debug_361 - rx390_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx390_pos) - debug_361: - .return (rx390_cur) - rx390_restart: + rx399_cur."!cursor_pass"(rx399_pos, "backslash:sym") + if_null rx399_debug, debug_367 + rx399_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx399_pos) + debug_367: + .return (rx399_cur) + rx399_restart: .annotate 'line', 3 - if_null rx390_debug, debug_362 - rx390_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_362: - rx390_fail: - (rx390_rep, rx390_pos, $I10, $P10) = rx390_cur."!mark_fail"(0) - lt rx390_pos, -1, rx390_done - eq rx390_pos, -1, rx390_fail + if_null rx399_debug, debug_368 + rx399_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_368: + rx399_fail: + (rx399_rep, rx399_pos, $I10, $P10) = rx399_cur."!mark_fail"(0) + lt rx399_pos, -1, rx399_done + eq rx399_pos, -1, rx399_fail jump $I10 - rx390_done: - rx390_cur."!cursor_fail"() - if_null rx390_debug, debug_363 - rx390_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_363: - .return (rx390_cur) + rx399_done: + rx399_cur."!cursor_fail"() + if_null rx399_debug, debug_369 + rx399_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_369: + .return (rx399_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("114_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("116_1282323996.47527") :method .annotate 'line', 3 - $P392 = self."!PREFIX__!subrule"("hexints", "X[") - $P393 = self."!PREFIX__!subrule"("hexint", "X") - $P394 = self."!PREFIX__!subrule"("hexints", "x[") - $P395 = self."!PREFIX__!subrule"("hexint", "x") - new $P396, "ResizablePMCArray" - push $P396, $P392 - push $P396, $P393 - push $P396, $P394 - push $P396, $P395 - .return ($P396) + $P401 = self."!PREFIX__!subrule"("hexints", "X[") + $P402 = self."!PREFIX__!subrule"("hexint", "X") + $P403 = self."!PREFIX__!subrule"("hexints", "x[") + $P404 = self."!PREFIX__!subrule"("hexint", "x") + new $P405, "ResizablePMCArray" + push $P405, $P401 + push $P405, $P402 + push $P405, $P403 + push $P405, $P404 + .return ($P405) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("115_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("117_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx401_tgt - .local int rx401_pos - .local int rx401_off - .local int rx401_eos - .local int rx401_rep - .local pmc rx401_cur - .local pmc rx401_debug - (rx401_cur, rx401_pos, rx401_tgt, $I10) = self."!cursor_start"() - getattribute rx401_debug, rx401_cur, "$!debug" - .lex unicode:"$\x{a2}", rx401_cur + .local string rx410_tgt + .local int rx410_pos + .local int rx410_off + .local int rx410_eos + .local int rx410_rep + .local pmc rx410_cur + .local pmc rx410_debug + (rx410_cur, rx410_pos, rx410_tgt, $I10) = self."!cursor_start"() + getattribute rx410_debug, rx410_cur, "$!debug" + .lex unicode:"$\x{a2}", rx410_cur .local pmc match .lex "$/", match - length rx401_eos, rx401_tgt - gt rx401_pos, rx401_eos, rx401_done - set rx401_off, 0 - lt rx401_pos, 2, rx401_start - sub rx401_off, rx401_pos, 1 - substr rx401_tgt, rx401_tgt, rx401_off - rx401_start: - eq $I10, 1, rx401_restart - if_null rx401_debug, debug_364 - rx401_cur."!cursor_debug"("START ", "backslash:sym") - debug_364: + length rx410_eos, rx410_tgt + gt rx410_pos, rx410_eos, rx410_done + set rx410_off, 0 + lt rx410_pos, 2, rx410_start + sub rx410_off, rx410_pos, 1 + substr rx410_tgt, rx410_tgt, rx410_off + rx410_start: + eq $I10, 1, rx410_restart + if_null rx410_debug, debug_370 + rx410_cur."!cursor_debug"("START", "backslash:sym") + debug_370: $I10 = self.'from'() - ne $I10, -1, rxscan406_done - goto rxscan406_scan - rxscan406_loop: - ($P10) = rx401_cur."from"() + ne $I10, -1, rxscan415_done + goto rxscan415_scan + rxscan415_loop: + ($P10) = rx410_cur."from"() inc $P10 - set rx401_pos, $P10 - ge rx401_pos, rx401_eos, rxscan406_done - rxscan406_scan: - set_addr $I10, rxscan406_loop - rx401_cur."!mark_push"(0, rx401_pos, $I10) - rxscan406_done: -.annotate 'line', 133 + set rx410_pos, $P10 + ge rx410_pos, rx410_eos, rxscan415_done + rxscan415_scan: + set_addr $I10, rxscan415_loop + rx410_cur."!mark_push"(0, rx410_pos, $I10) + rxscan415_done: +.annotate 'line', 140 # rx subcapture "sym" - set_addr $I10, rxcap_407_fail - rx401_cur."!mark_push"(0, rx401_pos, $I10) + set_addr $I10, rxcap_416_fail + rx410_cur."!mark_push"(0, rx410_pos, $I10) # rx enumcharlist negate=0 - ge rx401_pos, rx401_eos, rx401_fail - sub $I10, rx401_pos, rx401_off - substr $S10, rx401_tgt, $I10, 1 + ge rx410_pos, rx410_eos, rx410_fail + sub $I10, rx410_pos, rx410_off + substr $S10, rx410_tgt, $I10, 1 index $I11, "cC", $S10 - lt $I11, 0, rx401_fail - inc rx401_pos - set_addr $I10, rxcap_407_fail - ($I12, $I11) = rx401_cur."!mark_peek"($I10) - rx401_cur."!cursor_pos"($I11) - ($P10) = rx401_cur."!cursor_start"() - $P10."!cursor_pass"(rx401_pos, "") - rx401_cur."!mark_push"(0, -1, 0, $P10) + lt $I11, 0, rx410_fail + inc rx410_pos + set_addr $I10, rxcap_416_fail + ($I12, $I11) = rx410_cur."!mark_peek"($I10) + rx410_cur."!cursor_pos"($I11) + ($P10) = rx410_cur."!cursor_start"() + $P10."!cursor_pass"(rx410_pos, "") + rx410_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_407_done - rxcap_407_fail: - goto rx401_fail - rxcap_407_done: + goto rxcap_416_done + rxcap_416_fail: + goto rx410_fail + rxcap_416_done: # rx subrule "charspec" subtype=capture negate= - rx401_cur."!cursor_pos"(rx401_pos) - $P10 = rx401_cur."charspec"() - unless $P10, rx401_fail - rx401_cur."!mark_push"(0, -1, 0, $P10) + rx410_cur."!cursor_pos"(rx410_pos) + $P10 = rx410_cur."charspec"() + unless $P10, rx410_fail + rx410_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("charspec") - rx401_pos = $P10."pos"() + rx410_pos = $P10."pos"() # rx pass - rx401_cur."!cursor_pass"(rx401_pos, "backslash:sym") - if_null rx401_debug, debug_365 - rx401_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx401_pos) - debug_365: - .return (rx401_cur) - rx401_restart: + rx410_cur."!cursor_pass"(rx410_pos, "backslash:sym") + if_null rx410_debug, debug_371 + rx410_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx410_pos) + debug_371: + .return (rx410_cur) + rx410_restart: .annotate 'line', 3 - if_null rx401_debug, debug_366 - rx401_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_366: - rx401_fail: - (rx401_rep, rx401_pos, $I10, $P10) = rx401_cur."!mark_fail"(0) - lt rx401_pos, -1, rx401_done - eq rx401_pos, -1, rx401_fail + if_null rx410_debug, debug_372 + rx410_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_372: + rx410_fail: + (rx410_rep, rx410_pos, $I10, $P10) = rx410_cur."!mark_fail"(0) + lt rx410_pos, -1, rx410_done + eq rx410_pos, -1, rx410_fail jump $I10 - rx401_done: - rx401_cur."!cursor_fail"() - if_null rx401_debug, debug_367 - rx401_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_367: - .return (rx401_cur) + rx410_done: + rx410_cur."!cursor_fail"() + if_null rx410_debug, debug_373 + rx410_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_373: + .return (rx410_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("116_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("118_1282323996.47527") :method .annotate 'line', 3 - $P403 = self."!PREFIX__!subrule"("charspec", "C") - $P404 = self."!PREFIX__!subrule"("charspec", "c") - new $P405, "ResizablePMCArray" - push $P405, $P403 - push $P405, $P404 - .return ($P405) + $P412 = self."!PREFIX__!subrule"("charspec", "C") + $P413 = self."!PREFIX__!subrule"("charspec", "c") + new $P414, "ResizablePMCArray" + push $P414, $P412 + push $P414, $P413 + .return ($P414) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("117_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("119_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx409_tgt - .local int rx409_pos - .local int rx409_off - .local int rx409_eos - .local int rx409_rep - .local pmc rx409_cur - .local pmc rx409_debug - (rx409_cur, rx409_pos, rx409_tgt, $I10) = self."!cursor_start"() - getattribute rx409_debug, rx409_cur, "$!debug" - .lex unicode:"$\x{a2}", rx409_cur + .local string rx418_tgt + .local int rx418_pos + .local int rx418_off + .local int rx418_eos + .local int rx418_rep + .local pmc rx418_cur + .local pmc rx418_debug + (rx418_cur, rx418_pos, rx418_tgt, $I10) = self."!cursor_start"() + getattribute rx418_debug, rx418_cur, "$!debug" + .lex unicode:"$\x{a2}", rx418_cur .local pmc match .lex "$/", match - length rx409_eos, rx409_tgt - gt rx409_pos, rx409_eos, rx409_done - set rx409_off, 0 - lt rx409_pos, 2, rx409_start - sub rx409_off, rx409_pos, 1 - substr rx409_tgt, rx409_tgt, rx409_off - rx409_start: - eq $I10, 1, rx409_restart - if_null rx409_debug, debug_368 - rx409_cur."!cursor_debug"("START ", "backslash:sym") - debug_368: + length rx418_eos, rx418_tgt + gt rx418_pos, rx418_eos, rx418_done + set rx418_off, 0 + lt rx418_pos, 2, rx418_start + sub rx418_off, rx418_pos, 1 + substr rx418_tgt, rx418_tgt, rx418_off + rx418_start: + eq $I10, 1, rx418_restart + if_null rx418_debug, debug_374 + rx418_cur."!cursor_debug"("START", "backslash:sym") + debug_374: $I10 = self.'from'() - ne $I10, -1, rxscan413_done - goto rxscan413_scan - rxscan413_loop: - ($P10) = rx409_cur."from"() + ne $I10, -1, rxscan422_done + goto rxscan422_scan + rxscan422_loop: + ($P10) = rx418_cur."from"() inc $P10 - set rx409_pos, $P10 - ge rx409_pos, rx409_eos, rxscan413_done - rxscan413_scan: - set_addr $I10, rxscan413_loop - rx409_cur."!mark_push"(0, rx409_pos, $I10) - rxscan413_done: -.annotate 'line', 134 + set rx418_pos, $P10 + ge rx418_pos, rx418_eos, rxscan422_done + rxscan422_scan: + set_addr $I10, rxscan422_loop + rx418_cur."!mark_push"(0, rx418_pos, $I10) + rxscan422_done: +.annotate 'line', 141 # rx literal "A" - add $I11, rx409_pos, 1 - gt $I11, rx409_eos, rx409_fail - sub $I11, rx409_pos, rx409_off - ord $I11, rx409_tgt, $I11 - ne $I11, 65, rx409_fail - add rx409_pos, 1 + add $I11, rx418_pos, 1 + gt $I11, rx418_eos, rx418_fail + sub $I11, rx418_pos, rx418_off + ord $I11, rx418_tgt, $I11 + ne $I11, 65, rx418_fail + add rx418_pos, 1 # rx subrule "obs" subtype=method negate= - rx409_cur."!cursor_pos"(rx409_pos) - $P10 = rx409_cur."obs"("\\A as beginning-of-string matcher", "^") - unless $P10, rx409_fail - rx409_pos = $P10."pos"() + rx418_cur."!cursor_pos"(rx418_pos) + $P10 = rx418_cur."obs"("\\A as beginning-of-string matcher", "^") + unless $P10, rx418_fail + rx418_pos = $P10."pos"() # rx pass - rx409_cur."!cursor_pass"(rx409_pos, "backslash:sym") - if_null rx409_debug, debug_369 - rx409_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx409_pos) - debug_369: - .return (rx409_cur) - rx409_restart: + rx418_cur."!cursor_pass"(rx418_pos, "backslash:sym") + if_null rx418_debug, debug_375 + rx418_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx418_pos) + debug_375: + .return (rx418_cur) + rx418_restart: .annotate 'line', 3 - if_null rx409_debug, debug_370 - rx409_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_370: - rx409_fail: - (rx409_rep, rx409_pos, $I10, $P10) = rx409_cur."!mark_fail"(0) - lt rx409_pos, -1, rx409_done - eq rx409_pos, -1, rx409_fail + if_null rx418_debug, debug_376 + rx418_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_376: + rx418_fail: + (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0) + lt rx418_pos, -1, rx418_done + eq rx418_pos, -1, rx418_fail jump $I10 - rx409_done: - rx409_cur."!cursor_fail"() - if_null rx409_debug, debug_371 - rx409_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_371: - .return (rx409_cur) + rx418_done: + rx418_cur."!cursor_fail"() + if_null rx418_debug, debug_377 + rx418_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_377: + .return (rx418_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("118_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("120_1282323996.47527") :method .annotate 'line', 3 - $P411 = self."!PREFIX__!subrule"("obs", "A") - new $P412, "ResizablePMCArray" - push $P412, $P411 - .return ($P412) + $P420 = self."!PREFIX__!subrule"("obs", "A") + new $P421, "ResizablePMCArray" + push $P421, $P420 + .return ($P421) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("119_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("121_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx415_tgt - .local int rx415_pos - .local int rx415_off - .local int rx415_eos - .local int rx415_rep - .local pmc rx415_cur - .local pmc rx415_debug - (rx415_cur, rx415_pos, rx415_tgt, $I10) = self."!cursor_start"() - getattribute rx415_debug, rx415_cur, "$!debug" - .lex unicode:"$\x{a2}", rx415_cur + .local string rx424_tgt + .local int rx424_pos + .local int rx424_off + .local int rx424_eos + .local int rx424_rep + .local pmc rx424_cur + .local pmc rx424_debug + (rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"() + getattribute rx424_debug, rx424_cur, "$!debug" + .lex unicode:"$\x{a2}", rx424_cur .local pmc match .lex "$/", match - length rx415_eos, rx415_tgt - gt rx415_pos, rx415_eos, rx415_done - set rx415_off, 0 - lt rx415_pos, 2, rx415_start - sub rx415_off, rx415_pos, 1 - substr rx415_tgt, rx415_tgt, rx415_off - rx415_start: - eq $I10, 1, rx415_restart - if_null rx415_debug, debug_372 - rx415_cur."!cursor_debug"("START ", "backslash:sym") - debug_372: + length rx424_eos, rx424_tgt + gt rx424_pos, rx424_eos, rx424_done + set rx424_off, 0 + lt rx424_pos, 2, rx424_start + sub rx424_off, rx424_pos, 1 + substr rx424_tgt, rx424_tgt, rx424_off + rx424_start: + eq $I10, 1, rx424_restart + if_null rx424_debug, debug_378 + rx424_cur."!cursor_debug"("START", "backslash:sym") + debug_378: $I10 = self.'from'() - ne $I10, -1, rxscan419_done - goto rxscan419_scan - rxscan419_loop: - ($P10) = rx415_cur."from"() + ne $I10, -1, rxscan428_done + goto rxscan428_scan + rxscan428_loop: + ($P10) = rx424_cur."from"() inc $P10 - set rx415_pos, $P10 - ge rx415_pos, rx415_eos, rxscan419_done - rxscan419_scan: - set_addr $I10, rxscan419_loop - rx415_cur."!mark_push"(0, rx415_pos, $I10) - rxscan419_done: -.annotate 'line', 135 + set rx424_pos, $P10 + ge rx424_pos, rx424_eos, rxscan428_done + rxscan428_scan: + set_addr $I10, rxscan428_loop + rx424_cur."!mark_push"(0, rx424_pos, $I10) + rxscan428_done: +.annotate 'line', 142 # rx literal "z" - add $I11, rx415_pos, 1 - gt $I11, rx415_eos, rx415_fail - sub $I11, rx415_pos, rx415_off - ord $I11, rx415_tgt, $I11 - ne $I11, 122, rx415_fail - add rx415_pos, 1 + add $I11, rx424_pos, 1 + gt $I11, rx424_eos, rx424_fail + sub $I11, rx424_pos, rx424_off + ord $I11, rx424_tgt, $I11 + ne $I11, 122, rx424_fail + add rx424_pos, 1 # rx subrule "obs" subtype=method negate= - rx415_cur."!cursor_pos"(rx415_pos) - $P10 = rx415_cur."obs"("\\z as end-of-string matcher", "$") - unless $P10, rx415_fail - rx415_pos = $P10."pos"() + rx424_cur."!cursor_pos"(rx424_pos) + $P10 = rx424_cur."obs"("\\z as end-of-string matcher", "$") + unless $P10, rx424_fail + rx424_pos = $P10."pos"() # rx pass - rx415_cur."!cursor_pass"(rx415_pos, "backslash:sym") - if_null rx415_debug, debug_373 - rx415_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx415_pos) - debug_373: - .return (rx415_cur) - rx415_restart: + rx424_cur."!cursor_pass"(rx424_pos, "backslash:sym") + if_null rx424_debug, debug_379 + rx424_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx424_pos) + debug_379: + .return (rx424_cur) + rx424_restart: .annotate 'line', 3 - if_null rx415_debug, debug_374 - rx415_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_374: - rx415_fail: - (rx415_rep, rx415_pos, $I10, $P10) = rx415_cur."!mark_fail"(0) - lt rx415_pos, -1, rx415_done - eq rx415_pos, -1, rx415_fail + if_null rx424_debug, debug_380 + rx424_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_380: + rx424_fail: + (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0) + lt rx424_pos, -1, rx424_done + eq rx424_pos, -1, rx424_fail jump $I10 - rx415_done: - rx415_cur."!cursor_fail"() - if_null rx415_debug, debug_375 - rx415_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_375: - .return (rx415_cur) + rx424_done: + rx424_cur."!cursor_fail"() + if_null rx424_debug, debug_381 + rx424_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_381: + .return (rx424_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("120_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("122_1282323996.47527") :method .annotate 'line', 3 - $P417 = self."!PREFIX__!subrule"("obs", "z") - new $P418, "ResizablePMCArray" - push $P418, $P417 - .return ($P418) + $P426 = self."!PREFIX__!subrule"("obs", "z") + new $P427, "ResizablePMCArray" + push $P427, $P426 + .return ($P427) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("121_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("123_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx421_tgt - .local int rx421_pos - .local int rx421_off - .local int rx421_eos - .local int rx421_rep - .local pmc rx421_cur - .local pmc rx421_debug - (rx421_cur, rx421_pos, rx421_tgt, $I10) = self."!cursor_start"() - getattribute rx421_debug, rx421_cur, "$!debug" - .lex unicode:"$\x{a2}", rx421_cur + .local string rx430_tgt + .local int rx430_pos + .local int rx430_off + .local int rx430_eos + .local int rx430_rep + .local pmc rx430_cur + .local pmc rx430_debug + (rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"() + getattribute rx430_debug, rx430_cur, "$!debug" + .lex unicode:"$\x{a2}", rx430_cur .local pmc match .lex "$/", match - length rx421_eos, rx421_tgt - gt rx421_pos, rx421_eos, rx421_done - set rx421_off, 0 - lt rx421_pos, 2, rx421_start - sub rx421_off, rx421_pos, 1 - substr rx421_tgt, rx421_tgt, rx421_off - rx421_start: - eq $I10, 1, rx421_restart - if_null rx421_debug, debug_376 - rx421_cur."!cursor_debug"("START ", "backslash:sym") - debug_376: + length rx430_eos, rx430_tgt + gt rx430_pos, rx430_eos, rx430_done + set rx430_off, 0 + lt rx430_pos, 2, rx430_start + sub rx430_off, rx430_pos, 1 + substr rx430_tgt, rx430_tgt, rx430_off + rx430_start: + eq $I10, 1, rx430_restart + if_null rx430_debug, debug_382 + rx430_cur."!cursor_debug"("START", "backslash:sym") + debug_382: $I10 = self.'from'() - ne $I10, -1, rxscan425_done - goto rxscan425_scan - rxscan425_loop: - ($P10) = rx421_cur."from"() + ne $I10, -1, rxscan434_done + goto rxscan434_scan + rxscan434_loop: + ($P10) = rx430_cur."from"() inc $P10 - set rx421_pos, $P10 - ge rx421_pos, rx421_eos, rxscan425_done - rxscan425_scan: - set_addr $I10, rxscan425_loop - rx421_cur."!mark_push"(0, rx421_pos, $I10) - rxscan425_done: -.annotate 'line', 136 + set rx430_pos, $P10 + ge rx430_pos, rx430_eos, rxscan434_done + rxscan434_scan: + set_addr $I10, rxscan434_loop + rx430_cur."!mark_push"(0, rx430_pos, $I10) + rxscan434_done: +.annotate 'line', 143 # rx literal "Z" - add $I11, rx421_pos, 1 - gt $I11, rx421_eos, rx421_fail - sub $I11, rx421_pos, rx421_off - ord $I11, rx421_tgt, $I11 - ne $I11, 90, rx421_fail - add rx421_pos, 1 + add $I11, rx430_pos, 1 + gt $I11, rx430_eos, rx430_fail + sub $I11, rx430_pos, rx430_off + ord $I11, rx430_tgt, $I11 + ne $I11, 90, rx430_fail + add rx430_pos, 1 # rx subrule "obs" subtype=method negate= - rx421_cur."!cursor_pos"(rx421_pos) - $P10 = rx421_cur."obs"("\\Z as end-of-string matcher", "\\n?$") - unless $P10, rx421_fail - rx421_pos = $P10."pos"() + rx430_cur."!cursor_pos"(rx430_pos) + $P10 = rx430_cur."obs"("\\Z as end-of-string matcher", "\\n?$") + unless $P10, rx430_fail + rx430_pos = $P10."pos"() # rx pass - rx421_cur."!cursor_pass"(rx421_pos, "backslash:sym") - if_null rx421_debug, debug_377 - rx421_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx421_pos) - debug_377: - .return (rx421_cur) - rx421_restart: + rx430_cur."!cursor_pass"(rx430_pos, "backslash:sym") + if_null rx430_debug, debug_383 + rx430_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx430_pos) + debug_383: + .return (rx430_cur) + rx430_restart: .annotate 'line', 3 - if_null rx421_debug, debug_378 - rx421_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_378: - rx421_fail: - (rx421_rep, rx421_pos, $I10, $P10) = rx421_cur."!mark_fail"(0) - lt rx421_pos, -1, rx421_done - eq rx421_pos, -1, rx421_fail + if_null rx430_debug, debug_384 + rx430_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_384: + rx430_fail: + (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0) + lt rx430_pos, -1, rx430_done + eq rx430_pos, -1, rx430_fail jump $I10 - rx421_done: - rx421_cur."!cursor_fail"() - if_null rx421_debug, debug_379 - rx421_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_379: - .return (rx421_cur) + rx430_done: + rx430_cur."!cursor_fail"() + if_null rx430_debug, debug_385 + rx430_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_385: + .return (rx430_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("122_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("124_1282323996.47527") :method .annotate 'line', 3 - $P423 = self."!PREFIX__!subrule"("obs", "Z") - new $P424, "ResizablePMCArray" - push $P424, $P423 - .return ($P424) + $P432 = self."!PREFIX__!subrule"("obs", "Z") + new $P433, "ResizablePMCArray" + push $P433, $P432 + .return ($P433) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("123_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("125_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx427_tgt - .local int rx427_pos - .local int rx427_off - .local int rx427_eos - .local int rx427_rep - .local pmc rx427_cur - .local pmc rx427_debug - (rx427_cur, rx427_pos, rx427_tgt, $I10) = self."!cursor_start"() - getattribute rx427_debug, rx427_cur, "$!debug" - .lex unicode:"$\x{a2}", rx427_cur + .local string rx436_tgt + .local int rx436_pos + .local int rx436_off + .local int rx436_eos + .local int rx436_rep + .local pmc rx436_cur + .local pmc rx436_debug + (rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"() + getattribute rx436_debug, rx436_cur, "$!debug" + .lex unicode:"$\x{a2}", rx436_cur .local pmc match .lex "$/", match - length rx427_eos, rx427_tgt - gt rx427_pos, rx427_eos, rx427_done - set rx427_off, 0 - lt rx427_pos, 2, rx427_start - sub rx427_off, rx427_pos, 1 - substr rx427_tgt, rx427_tgt, rx427_off - rx427_start: - eq $I10, 1, rx427_restart - if_null rx427_debug, debug_380 - rx427_cur."!cursor_debug"("START ", "backslash:sym") - debug_380: + length rx436_eos, rx436_tgt + gt rx436_pos, rx436_eos, rx436_done + set rx436_off, 0 + lt rx436_pos, 2, rx436_start + sub rx436_off, rx436_pos, 1 + substr rx436_tgt, rx436_tgt, rx436_off + rx436_start: + eq $I10, 1, rx436_restart + if_null rx436_debug, debug_386 + rx436_cur."!cursor_debug"("START", "backslash:sym") + debug_386: $I10 = self.'from'() - ne $I10, -1, rxscan431_done - goto rxscan431_scan - rxscan431_loop: - ($P10) = rx427_cur."from"() + ne $I10, -1, rxscan440_done + goto rxscan440_scan + rxscan440_loop: + ($P10) = rx436_cur."from"() inc $P10 - set rx427_pos, $P10 - ge rx427_pos, rx427_eos, rxscan431_done - rxscan431_scan: - set_addr $I10, rxscan431_loop - rx427_cur."!mark_push"(0, rx427_pos, $I10) - rxscan431_done: -.annotate 'line', 137 + set rx436_pos, $P10 + ge rx436_pos, rx436_eos, rxscan440_done + rxscan440_scan: + set_addr $I10, rxscan440_loop + rx436_cur."!mark_push"(0, rx436_pos, $I10) + rxscan440_done: +.annotate 'line', 144 # rx literal "Q" - add $I11, rx427_pos, 1 - gt $I11, rx427_eos, rx427_fail - sub $I11, rx427_pos, rx427_off - ord $I11, rx427_tgt, $I11 - ne $I11, 81, rx427_fail - add rx427_pos, 1 + add $I11, rx436_pos, 1 + gt $I11, rx436_eos, rx436_fail + sub $I11, rx436_pos, rx436_off + ord $I11, rx436_tgt, $I11 + ne $I11, 81, rx436_fail + add rx436_pos, 1 # rx subrule "obs" subtype=method negate= - rx427_cur."!cursor_pos"(rx427_pos) - $P10 = rx427_cur."obs"("\\Q as quotemeta", "quotes or literal variable match") - unless $P10, rx427_fail - rx427_pos = $P10."pos"() + rx436_cur."!cursor_pos"(rx436_pos) + $P10 = rx436_cur."obs"("\\Q as quotemeta", "quotes or literal variable match") + unless $P10, rx436_fail + rx436_pos = $P10."pos"() # rx pass - rx427_cur."!cursor_pass"(rx427_pos, "backslash:sym") - if_null rx427_debug, debug_381 - rx427_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx427_pos) - debug_381: - .return (rx427_cur) - rx427_restart: + rx436_cur."!cursor_pass"(rx436_pos, "backslash:sym") + if_null rx436_debug, debug_387 + rx436_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx436_pos) + debug_387: + .return (rx436_cur) + rx436_restart: .annotate 'line', 3 - if_null rx427_debug, debug_382 - rx427_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_382: - rx427_fail: - (rx427_rep, rx427_pos, $I10, $P10) = rx427_cur."!mark_fail"(0) - lt rx427_pos, -1, rx427_done - eq rx427_pos, -1, rx427_fail + if_null rx436_debug, debug_388 + rx436_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_388: + rx436_fail: + (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0) + lt rx436_pos, -1, rx436_done + eq rx436_pos, -1, rx436_fail jump $I10 - rx427_done: - rx427_cur."!cursor_fail"() - if_null rx427_debug, debug_383 - rx427_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_383: - .return (rx427_cur) + rx436_done: + rx436_cur."!cursor_fail"() + if_null rx436_debug, debug_389 + rx436_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_389: + .return (rx436_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("124_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("126_1282323996.47527") :method .annotate 'line', 3 - $P429 = self."!PREFIX__!subrule"("obs", "Q") - new $P430, "ResizablePMCArray" - push $P430, $P429 - .return ($P430) + $P438 = self."!PREFIX__!subrule"("obs", "Q") + new $P439, "ResizablePMCArray" + push $P439, $P438 + .return ($P439) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "backslash:sym" :subid("125_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "backslash:sym" :subid("127_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx433_tgt - .local int rx433_pos - .local int rx433_off - .local int rx433_eos - .local int rx433_rep - .local pmc rx433_cur - .local pmc rx433_debug - (rx433_cur, rx433_pos, rx433_tgt, $I10) = self."!cursor_start"() - getattribute rx433_debug, rx433_cur, "$!debug" - .lex unicode:"$\x{a2}", rx433_cur - .local pmc match - .lex "$/", match - length rx433_eos, rx433_tgt - gt rx433_pos, rx433_eos, rx433_done - set rx433_off, 0 - lt rx433_pos, 2, rx433_start - sub rx433_off, rx433_pos, 1 - substr rx433_tgt, rx433_tgt, rx433_off - rx433_start: - eq $I10, 1, rx433_restart - if_null rx433_debug, debug_384 - rx433_cur."!cursor_debug"("START ", "backslash:sym") - debug_384: - $I10 = self.'from'() - ne $I10, -1, rxscan436_done - goto rxscan436_scan - rxscan436_loop: - ($P10) = rx433_cur."from"() - inc $P10 - set rx433_pos, $P10 - ge rx433_pos, rx433_eos, rxscan436_done - rxscan436_scan: - set_addr $I10, rxscan436_loop - rx433_cur."!mark_push"(0, rx433_pos, $I10) - rxscan436_done: -.annotate 'line', 138 - # rx charclass W - ge rx433_pos, rx433_eos, rx433_fail - sub $I10, rx433_pos, rx433_off - is_cclass $I11, 8192, rx433_tgt, $I10 - if $I11, rx433_fail - inc rx433_pos - # rx pass - rx433_cur."!cursor_pass"(rx433_pos, "backslash:sym") - if_null rx433_debug, debug_385 - rx433_cur."!cursor_debug"("PASS ", "backslash:sym", " at pos=", rx433_pos) - debug_385: - .return (rx433_cur) - rx433_restart: -.annotate 'line', 3 - if_null rx433_debug, debug_386 - rx433_cur."!cursor_debug"("NEXT ", "backslash:sym") - debug_386: - rx433_fail: - (rx433_rep, rx433_pos, $I10, $P10) = rx433_cur."!mark_fail"(0) - lt rx433_pos, -1, rx433_done - eq rx433_pos, -1, rx433_fail - jump $I10 - rx433_done: - rx433_cur."!cursor_fail"() - if_null rx433_debug, debug_387 - rx433_cur."!cursor_debug"("FAIL ", "backslash:sym") - debug_387: - .return (rx433_cur) - .return () -.end - - -.namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__backslash:sym" :subid("126_1282016522.91354") :method -.annotate 'line', 3 - new $P435, "ResizablePMCArray" - push $P435, "" - .return ($P435) -.end - - -.namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion" :subid("127_1282016522.91354") :method -.annotate 'line', 140 - $P438 = self."!protoregex"("assertion") - .return ($P438) -.end - - -.namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion" :subid("128_1282016522.91354") :method -.annotate 'line', 140 - $P440 = self."!PREFIX__!protoregex"("assertion") - .return ($P440) -.end - - -.namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym" :subid("129_1282016522.91354") :method :outer("11_1282016522.91354") -.annotate 'line', 3 - .const 'Sub' $P449 = "131_1282016522.91354" - capture_lex $P449 .local string rx442_tgt .local int rx442_pos .local int rx442_off @@ -6326,59 +6360,39 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx442_tgt, rx442_tgt, rx442_off rx442_start: eq $I10, 1, rx442_restart - if_null rx442_debug, debug_388 - rx442_cur."!cursor_debug"("START ", "assertion:sym") - debug_388: + if_null rx442_debug, debug_390 + rx442_cur."!cursor_debug"("START", "backslash:sym") + debug_390: $I10 = self.'from'() - ne $I10, -1, rxscan446_done - goto rxscan446_scan - rxscan446_loop: + ne $I10, -1, rxscan445_done + goto rxscan445_scan + rxscan445_loop: ($P10) = rx442_cur."from"() inc $P10 set rx442_pos, $P10 - ge rx442_pos, rx442_eos, rxscan446_done - rxscan446_scan: - set_addr $I10, rxscan446_loop - rx442_cur."!mark_push"(0, rx442_pos, $I10) - rxscan446_done: -.annotate 'line', 142 - # rx literal "?" - add $I11, rx442_pos, 1 - gt $I11, rx442_eos, rx442_fail - sub $I11, rx442_pos, rx442_off - ord $I11, rx442_tgt, $I11 - ne $I11, 63, rx442_fail - add rx442_pos, 1 - alt447_0: - set_addr $I10, alt447_1 + ge rx442_pos, rx442_eos, rxscan445_done + rxscan445_scan: + set_addr $I10, rxscan445_loop rx442_cur."!mark_push"(0, rx442_pos, $I10) - # rx subrule "before" subtype=zerowidth negate= - rx442_cur."!cursor_pos"(rx442_pos) - .const 'Sub' $P449 = "131_1282016522.91354" - capture_lex $P449 - $P10 = rx442_cur."before"($P449) - unless $P10, rx442_fail - goto alt447_end - alt447_1: - # rx subrule "assertion" subtype=capture negate= - rx442_cur."!cursor_pos"(rx442_pos) - $P10 = rx442_cur."assertion"() - unless $P10, rx442_fail - rx442_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("assertion") - rx442_pos = $P10."pos"() - alt447_end: + rxscan445_done: +.annotate 'line', 145 + # rx charclass W + ge rx442_pos, rx442_eos, rx442_fail + sub $I10, rx442_pos, rx442_off + is_cclass $I11, 8192, rx442_tgt, $I10 + if $I11, rx442_fail + inc rx442_pos # rx pass - rx442_cur."!cursor_pass"(rx442_pos, "assertion:sym") - if_null rx442_debug, debug_393 - rx442_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx442_pos) - debug_393: + rx442_cur."!cursor_pass"(rx442_pos, "backslash:sym") + if_null rx442_debug, debug_391 + rx442_cur."!cursor_debug"("PASS", "backslash:sym", " at pos=", rx442_pos) + debug_391: .return (rx442_cur) rx442_restart: .annotate 'line', 3 - if_null rx442_debug, debug_394 - rx442_cur."!cursor_debug"("NEXT ", "assertion:sym") - debug_394: + if_null rx442_debug, debug_392 + rx442_cur."!cursor_debug"("NEXT", "backslash:sym") + debug_392: rx442_fail: (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0) lt rx442_pos, -1, rx442_done @@ -6386,364 +6400,320 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx442_done: rx442_cur."!cursor_fail"() - if_null rx442_debug, debug_395 - rx442_cur."!cursor_debug"("FAIL ", "assertion:sym") - debug_395: + if_null rx442_debug, debug_393 + rx442_cur."!cursor_debug"("FAIL", "backslash:sym") + debug_393: .return (rx442_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym" :subid("130_1282016522.91354") :method +.sub "!PREFIX__backslash:sym" :subid("128_1282323996.47527") :method .annotate 'line', 3 - $P444 = self."!PREFIX__!subrule"("assertion", "?") - new $P445, "ResizablePMCArray" - push $P445, $P444 - push $P445, "?" - .return ($P445) + new $P444, "ResizablePMCArray" + push $P444, "" + .return ($P444) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block448" :anon :subid("131_1282016522.91354") :method :outer("129_1282016522.91354") -.annotate 'line', 142 - .local string rx450_tgt - .local int rx450_pos - .local int rx450_off - .local int rx450_eos - .local int rx450_rep - .local pmc rx450_cur - .local pmc rx450_debug - (rx450_cur, rx450_pos, rx450_tgt, $I10) = self."!cursor_start"() - getattribute rx450_debug, rx450_cur, "$!debug" - .lex unicode:"$\x{a2}", rx450_cur - .local pmc match - .lex "$/", match - length rx450_eos, rx450_tgt - gt rx450_pos, rx450_eos, rx450_done - set rx450_off, 0 - lt rx450_pos, 2, rx450_start - sub rx450_off, rx450_pos, 1 - substr rx450_tgt, rx450_tgt, rx450_off - rx450_start: - eq $I10, 1, rx450_restart - if_null rx450_debug, debug_389 - rx450_cur."!cursor_debug"("START ", "") - debug_389: - $I10 = self.'from'() - ne $I10, -1, rxscan451_done - goto rxscan451_scan - rxscan451_loop: - ($P10) = rx450_cur."from"() - inc $P10 - set rx450_pos, $P10 - ge rx450_pos, rx450_eos, rxscan451_done - rxscan451_scan: - set_addr $I10, rxscan451_loop - rx450_cur."!mark_push"(0, rx450_pos, $I10) - rxscan451_done: - # rx literal ">" - add $I11, rx450_pos, 1 - gt $I11, rx450_eos, rx450_fail - sub $I11, rx450_pos, rx450_off - ord $I11, rx450_tgt, $I11 - ne $I11, 62, rx450_fail - add rx450_pos, 1 - # rx pass - rx450_cur."!cursor_pass"(rx450_pos, "") - if_null rx450_debug, debug_390 - rx450_cur."!cursor_debug"("PASS ", "", " at pos=", rx450_pos) - debug_390: - .return (rx450_cur) - rx450_restart: - if_null rx450_debug, debug_391 - rx450_cur."!cursor_debug"("NEXT ", "") - debug_391: - rx450_fail: - (rx450_rep, rx450_pos, $I10, $P10) = rx450_cur."!mark_fail"(0) - lt rx450_pos, -1, rx450_done - eq rx450_pos, -1, rx450_fail - jump $I10 - rx450_done: - rx450_cur."!cursor_fail"() - if_null rx450_debug, debug_392 - rx450_cur."!cursor_debug"("FAIL ", "") - debug_392: - .return (rx450_cur) - .return () +.sub "assertion" :subid("129_1282323996.47527") :method +.annotate 'line', 147 + $P447 = self."!protoregex"("assertion") + .return ($P447) +.end + + +.namespace ["Regex";"P6Regex";"Grammar"] +.sub "!PREFIX__assertion" :subid("130_1282323996.47527") :method +.annotate 'line', 147 + $P449 = self."!PREFIX__!protoregex"("assertion") + .return ($P449) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym" :subid("132_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "assertion:sym" :subid("131_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .const 'Sub' $P460 = "134_1282016522.91354" - capture_lex $P460 - .local string rx453_tgt - .local int rx453_pos - .local int rx453_off - .local int rx453_eos - .local int rx453_rep - .local pmc rx453_cur - .local pmc rx453_debug - (rx453_cur, rx453_pos, rx453_tgt, $I10) = self."!cursor_start"() - getattribute rx453_debug, rx453_cur, "$!debug" - .lex unicode:"$\x{a2}", rx453_cur + .const 'Sub' $P458 = "133_1282323996.47527" + capture_lex $P458 + .local string rx451_tgt + .local int rx451_pos + .local int rx451_off + .local int rx451_eos + .local int rx451_rep + .local pmc rx451_cur + .local pmc rx451_debug + (rx451_cur, rx451_pos, rx451_tgt, $I10) = self."!cursor_start"() + getattribute rx451_debug, rx451_cur, "$!debug" + .lex unicode:"$\x{a2}", rx451_cur .local pmc match .lex "$/", match - length rx453_eos, rx453_tgt - gt rx453_pos, rx453_eos, rx453_done - set rx453_off, 0 - lt rx453_pos, 2, rx453_start - sub rx453_off, rx453_pos, 1 - substr rx453_tgt, rx453_tgt, rx453_off - rx453_start: - eq $I10, 1, rx453_restart - if_null rx453_debug, debug_396 - rx453_cur."!cursor_debug"("START ", "assertion:sym") - debug_396: + length rx451_eos, rx451_tgt + gt rx451_pos, rx451_eos, rx451_done + set rx451_off, 0 + lt rx451_pos, 2, rx451_start + sub rx451_off, rx451_pos, 1 + substr rx451_tgt, rx451_tgt, rx451_off + rx451_start: + eq $I10, 1, rx451_restart + if_null rx451_debug, debug_394 + rx451_cur."!cursor_debug"("START", "assertion:sym") + debug_394: $I10 = self.'from'() - ne $I10, -1, rxscan457_done - goto rxscan457_scan - rxscan457_loop: - ($P10) = rx453_cur."from"() + ne $I10, -1, rxscan455_done + goto rxscan455_scan + rxscan455_loop: + ($P10) = rx451_cur."from"() inc $P10 - set rx453_pos, $P10 - ge rx453_pos, rx453_eos, rxscan457_done - rxscan457_scan: - set_addr $I10, rxscan457_loop - rx453_cur."!mark_push"(0, rx453_pos, $I10) - rxscan457_done: -.annotate 'line', 143 - # rx literal "!" - add $I11, rx453_pos, 1 - gt $I11, rx453_eos, rx453_fail - sub $I11, rx453_pos, rx453_off - ord $I11, rx453_tgt, $I11 - ne $I11, 33, rx453_fail - add rx453_pos, 1 - alt458_0: - set_addr $I10, alt458_1 - rx453_cur."!mark_push"(0, rx453_pos, $I10) + set rx451_pos, $P10 + ge rx451_pos, rx451_eos, rxscan455_done + rxscan455_scan: + set_addr $I10, rxscan455_loop + rx451_cur."!mark_push"(0, rx451_pos, $I10) + rxscan455_done: +.annotate 'line', 149 + # rx literal "?" + add $I11, rx451_pos, 1 + gt $I11, rx451_eos, rx451_fail + sub $I11, rx451_pos, rx451_off + ord $I11, rx451_tgt, $I11 + ne $I11, 63, rx451_fail + add rx451_pos, 1 + alt456_0: + set_addr $I10, alt456_1 + rx451_cur."!mark_push"(0, rx451_pos, $I10) # rx subrule "before" subtype=zerowidth negate= - rx453_cur."!cursor_pos"(rx453_pos) - .const 'Sub' $P460 = "134_1282016522.91354" - capture_lex $P460 - $P10 = rx453_cur."before"($P460) - unless $P10, rx453_fail - goto alt458_end - alt458_1: + rx451_cur."!cursor_pos"(rx451_pos) + .const 'Sub' $P458 = "133_1282323996.47527" + capture_lex $P458 + $P10 = rx451_cur."before"($P458) + unless $P10, rx451_fail + goto alt456_end + alt456_1: # rx subrule "assertion" subtype=capture negate= - rx453_cur."!cursor_pos"(rx453_pos) - $P10 = rx453_cur."assertion"() - unless $P10, rx453_fail - rx453_cur."!mark_push"(0, -1, 0, $P10) + rx451_cur."!cursor_pos"(rx451_pos) + $P10 = rx451_cur."assertion"() + unless $P10, rx451_fail + rx451_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("assertion") - rx453_pos = $P10."pos"() - alt458_end: + rx451_pos = $P10."pos"() + alt456_end: # rx pass - rx453_cur."!cursor_pass"(rx453_pos, "assertion:sym") - if_null rx453_debug, debug_401 - rx453_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx453_pos) - debug_401: - .return (rx453_cur) - rx453_restart: + rx451_cur."!cursor_pass"(rx451_pos, "assertion:sym") + if_null rx451_debug, debug_399 + rx451_cur."!cursor_debug"("PASS", "assertion:sym", " at pos=", rx451_pos) + debug_399: + .return (rx451_cur) + rx451_restart: .annotate 'line', 3 - if_null rx453_debug, debug_402 - rx453_cur."!cursor_debug"("NEXT ", "assertion:sym") - debug_402: - rx453_fail: - (rx453_rep, rx453_pos, $I10, $P10) = rx453_cur."!mark_fail"(0) - lt rx453_pos, -1, rx453_done - eq rx453_pos, -1, rx453_fail + if_null rx451_debug, debug_400 + rx451_cur."!cursor_debug"("NEXT", "assertion:sym") + debug_400: + rx451_fail: + (rx451_rep, rx451_pos, $I10, $P10) = rx451_cur."!mark_fail"(0) + lt rx451_pos, -1, rx451_done + eq rx451_pos, -1, rx451_fail jump $I10 - rx453_done: - rx453_cur."!cursor_fail"() - if_null rx453_debug, debug_403 - rx453_cur."!cursor_debug"("FAIL ", "assertion:sym") - debug_403: - .return (rx453_cur) + rx451_done: + rx451_cur."!cursor_fail"() + if_null rx451_debug, debug_401 + rx451_cur."!cursor_debug"("FAIL", "assertion:sym") + debug_401: + .return (rx451_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym" :subid("133_1282016522.91354") :method +.sub "!PREFIX__assertion:sym" :subid("132_1282323996.47527") :method .annotate 'line', 3 - $P455 = self."!PREFIX__!subrule"("assertion", "!") - new $P456, "ResizablePMCArray" - push $P456, $P455 - push $P456, "!" - .return ($P456) + $P453 = self."!PREFIX__!subrule"("assertion", "?") + new $P454, "ResizablePMCArray" + push $P454, $P453 + push $P454, "?" + .return ($P454) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block459" :anon :subid("134_1282016522.91354") :method :outer("132_1282016522.91354") -.annotate 'line', 143 - .local string rx461_tgt - .local int rx461_pos - .local int rx461_off - .local int rx461_eos - .local int rx461_rep - .local pmc rx461_cur - .local pmc rx461_debug - (rx461_cur, rx461_pos, rx461_tgt, $I10) = self."!cursor_start"() - getattribute rx461_debug, rx461_cur, "$!debug" - .lex unicode:"$\x{a2}", rx461_cur +.sub "_block457" :anon :subid("133_1282323996.47527") :method :outer("131_1282323996.47527") +.annotate 'line', 149 + .local string rx459_tgt + .local int rx459_pos + .local int rx459_off + .local int rx459_eos + .local int rx459_rep + .local pmc rx459_cur + .local pmc rx459_debug + (rx459_cur, rx459_pos, rx459_tgt, $I10) = self."!cursor_start"() + getattribute rx459_debug, rx459_cur, "$!debug" + .lex unicode:"$\x{a2}", rx459_cur .local pmc match .lex "$/", match - length rx461_eos, rx461_tgt - gt rx461_pos, rx461_eos, rx461_done - set rx461_off, 0 - lt rx461_pos, 2, rx461_start - sub rx461_off, rx461_pos, 1 - substr rx461_tgt, rx461_tgt, rx461_off - rx461_start: - eq $I10, 1, rx461_restart - if_null rx461_debug, debug_397 - rx461_cur."!cursor_debug"("START ", "") - debug_397: + length rx459_eos, rx459_tgt + gt rx459_pos, rx459_eos, rx459_done + set rx459_off, 0 + lt rx459_pos, 2, rx459_start + sub rx459_off, rx459_pos, 1 + substr rx459_tgt, rx459_tgt, rx459_off + rx459_start: + eq $I10, 1, rx459_restart + if_null rx459_debug, debug_395 + rx459_cur."!cursor_debug"("START", "") + debug_395: $I10 = self.'from'() - ne $I10, -1, rxscan462_done - goto rxscan462_scan - rxscan462_loop: - ($P10) = rx461_cur."from"() + ne $I10, -1, rxscan460_done + goto rxscan460_scan + rxscan460_loop: + ($P10) = rx459_cur."from"() inc $P10 - set rx461_pos, $P10 - ge rx461_pos, rx461_eos, rxscan462_done - rxscan462_scan: - set_addr $I10, rxscan462_loop - rx461_cur."!mark_push"(0, rx461_pos, $I10) - rxscan462_done: + set rx459_pos, $P10 + ge rx459_pos, rx459_eos, rxscan460_done + rxscan460_scan: + set_addr $I10, rxscan460_loop + rx459_cur."!mark_push"(0, rx459_pos, $I10) + rxscan460_done: # rx literal ">" - add $I11, rx461_pos, 1 - gt $I11, rx461_eos, rx461_fail - sub $I11, rx461_pos, rx461_off - ord $I11, rx461_tgt, $I11 - ne $I11, 62, rx461_fail - add rx461_pos, 1 + add $I11, rx459_pos, 1 + gt $I11, rx459_eos, rx459_fail + sub $I11, rx459_pos, rx459_off + ord $I11, rx459_tgt, $I11 + ne $I11, 62, rx459_fail + add rx459_pos, 1 # rx pass - rx461_cur."!cursor_pass"(rx461_pos, "") - if_null rx461_debug, debug_398 - rx461_cur."!cursor_debug"("PASS ", "", " at pos=", rx461_pos) - debug_398: - .return (rx461_cur) - rx461_restart: - if_null rx461_debug, debug_399 - rx461_cur."!cursor_debug"("NEXT ", "") - debug_399: - rx461_fail: - (rx461_rep, rx461_pos, $I10, $P10) = rx461_cur."!mark_fail"(0) - lt rx461_pos, -1, rx461_done - eq rx461_pos, -1, rx461_fail + rx459_cur."!cursor_pass"(rx459_pos, "") + if_null rx459_debug, debug_396 + rx459_cur."!cursor_debug"("PASS", "", " at pos=", rx459_pos) + debug_396: + .return (rx459_cur) + rx459_restart: + if_null rx459_debug, debug_397 + rx459_cur."!cursor_debug"("NEXT", "") + debug_397: + rx459_fail: + (rx459_rep, rx459_pos, $I10, $P10) = rx459_cur."!mark_fail"(0) + lt rx459_pos, -1, rx459_done + eq rx459_pos, -1, rx459_fail jump $I10 - rx461_done: - rx461_cur."!cursor_fail"() - if_null rx461_debug, debug_400 - rx461_cur."!cursor_debug"("FAIL ", "") - debug_400: - .return (rx461_cur) + rx459_done: + rx459_cur."!cursor_fail"() + if_null rx459_debug, debug_398 + rx459_cur."!cursor_debug"("FAIL", "") + debug_398: + .return (rx459_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym" :subid("135_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "assertion:sym" :subid("134_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx464_tgt - .local int rx464_pos - .local int rx464_off - .local int rx464_eos - .local int rx464_rep - .local pmc rx464_cur - .local pmc rx464_debug - (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"() - getattribute rx464_debug, rx464_cur, "$!debug" - .lex unicode:"$\x{a2}", rx464_cur + .const 'Sub' $P469 = "136_1282323996.47527" + capture_lex $P469 + .local string rx462_tgt + .local int rx462_pos + .local int rx462_off + .local int rx462_eos + .local int rx462_rep + .local pmc rx462_cur + .local pmc rx462_debug + (rx462_cur, rx462_pos, rx462_tgt, $I10) = self."!cursor_start"() + getattribute rx462_debug, rx462_cur, "$!debug" + .lex unicode:"$\x{a2}", rx462_cur .local pmc match .lex "$/", match - length rx464_eos, rx464_tgt - gt rx464_pos, rx464_eos, rx464_done - set rx464_off, 0 - lt rx464_pos, 2, rx464_start - sub rx464_off, rx464_pos, 1 - substr rx464_tgt, rx464_tgt, rx464_off - rx464_start: - eq $I10, 1, rx464_restart - if_null rx464_debug, debug_404 - rx464_cur."!cursor_debug"("START ", "assertion:sym") - debug_404: + length rx462_eos, rx462_tgt + gt rx462_pos, rx462_eos, rx462_done + set rx462_off, 0 + lt rx462_pos, 2, rx462_start + sub rx462_off, rx462_pos, 1 + substr rx462_tgt, rx462_tgt, rx462_off + rx462_start: + eq $I10, 1, rx462_restart + if_null rx462_debug, debug_402 + rx462_cur."!cursor_debug"("START", "assertion:sym") + debug_402: $I10 = self.'from'() - ne $I10, -1, rxscan468_done - goto rxscan468_scan - rxscan468_loop: - ($P10) = rx464_cur."from"() + ne $I10, -1, rxscan466_done + goto rxscan466_scan + rxscan466_loop: + ($P10) = rx462_cur."from"() inc $P10 - set rx464_pos, $P10 - ge rx464_pos, rx464_eos, rxscan468_done - rxscan468_scan: - set_addr $I10, rxscan468_loop - rx464_cur."!mark_push"(0, rx464_pos, $I10) - rxscan468_done: -.annotate 'line', 146 - # rx literal "." - add $I11, rx464_pos, 1 - gt $I11, rx464_eos, rx464_fail - sub $I11, rx464_pos, rx464_off - ord $I11, rx464_tgt, $I11 - ne $I11, 46, rx464_fail - add rx464_pos, 1 + set rx462_pos, $P10 + ge rx462_pos, rx462_eos, rxscan466_done + rxscan466_scan: + set_addr $I10, rxscan466_loop + rx462_cur."!mark_push"(0, rx462_pos, $I10) + rxscan466_done: +.annotate 'line', 150 + # rx literal "!" + add $I11, rx462_pos, 1 + gt $I11, rx462_eos, rx462_fail + sub $I11, rx462_pos, rx462_off + ord $I11, rx462_tgt, $I11 + ne $I11, 33, rx462_fail + add rx462_pos, 1 + alt467_0: + set_addr $I10, alt467_1 + rx462_cur."!mark_push"(0, rx462_pos, $I10) + # rx subrule "before" subtype=zerowidth negate= + rx462_cur."!cursor_pos"(rx462_pos) + .const 'Sub' $P469 = "136_1282323996.47527" + capture_lex $P469 + $P10 = rx462_cur."before"($P469) + unless $P10, rx462_fail + goto alt467_end + alt467_1: # rx subrule "assertion" subtype=capture negate= - rx464_cur."!cursor_pos"(rx464_pos) - $P10 = rx464_cur."assertion"() - unless $P10, rx464_fail - rx464_cur."!mark_push"(0, -1, 0, $P10) + rx462_cur."!cursor_pos"(rx462_pos) + $P10 = rx462_cur."assertion"() + unless $P10, rx462_fail + rx462_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("assertion") - rx464_pos = $P10."pos"() -.annotate 'line', 145 + rx462_pos = $P10."pos"() + alt467_end: # rx pass - rx464_cur."!cursor_pass"(rx464_pos, "assertion:sym") - if_null rx464_debug, debug_405 - rx464_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx464_pos) - debug_405: - .return (rx464_cur) - rx464_restart: + rx462_cur."!cursor_pass"(rx462_pos, "assertion:sym") + if_null rx462_debug, debug_407 + rx462_cur."!cursor_debug"("PASS", "assertion:sym", " at pos=", rx462_pos) + debug_407: + .return (rx462_cur) + rx462_restart: .annotate 'line', 3 - if_null rx464_debug, debug_406 - rx464_cur."!cursor_debug"("NEXT ", "assertion:sym") - debug_406: - rx464_fail: - (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0) - lt rx464_pos, -1, rx464_done - eq rx464_pos, -1, rx464_fail + if_null rx462_debug, debug_408 + rx462_cur."!cursor_debug"("NEXT", "assertion:sym") + debug_408: + rx462_fail: + (rx462_rep, rx462_pos, $I10, $P10) = rx462_cur."!mark_fail"(0) + lt rx462_pos, -1, rx462_done + eq rx462_pos, -1, rx462_fail jump $I10 - rx464_done: - rx464_cur."!cursor_fail"() - if_null rx464_debug, debug_407 - rx464_cur."!cursor_debug"("FAIL ", "assertion:sym") - debug_407: - .return (rx464_cur) + rx462_done: + rx462_cur."!cursor_fail"() + if_null rx462_debug, debug_409 + rx462_cur."!cursor_debug"("FAIL", "assertion:sym") + debug_409: + .return (rx462_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym" :subid("136_1282016522.91354") :method +.sub "!PREFIX__assertion:sym" :subid("135_1282323996.47527") :method .annotate 'line', 3 - $P466 = self."!PREFIX__!subrule"("assertion", ".") - new $P467, "ResizablePMCArray" - push $P467, $P466 - .return ($P467) + $P464 = self."!PREFIX__!subrule"("assertion", "!") + new $P465, "ResizablePMCArray" + push $P465, $P464 + push $P465, "!" + .return ($P465) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym" :subid("137_1282016522.91354") :method :outer("11_1282016522.91354") -.annotate 'line', 3 - .const 'Sub' $P478 = "139_1282016522.91354" - capture_lex $P478 +.sub "_block468" :anon :subid("136_1282323996.47527") :method :outer("134_1282323996.47527") +.annotate 'line', 150 .local string rx470_tgt .local int rx470_pos .local int rx470_off @@ -6752,7 +6722,6 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local pmc rx470_cur .local pmc rx470_debug (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"() - rx470_cur."!cursor_caparray"("nibbler", "arglist", "assertion") getattribute rx470_debug, rx470_cur, "$!debug" .lex unicode:"$\x{a2}", rx470_cur .local pmc match @@ -6765,141 +6734,38 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx470_tgt, rx470_tgt, rx470_off rx470_start: eq $I10, 1, rx470_restart - if_null rx470_debug, debug_408 - rx470_cur."!cursor_debug"("START ", "assertion:sym") - debug_408: + if_null rx470_debug, debug_403 + rx470_cur."!cursor_debug"("START", "") + debug_403: $I10 = self.'from'() - ne $I10, -1, rxscan474_done - goto rxscan474_scan - rxscan474_loop: + ne $I10, -1, rxscan471_done + goto rxscan471_scan + rxscan471_loop: ($P10) = rx470_cur."from"() inc $P10 set rx470_pos, $P10 - ge rx470_pos, rx470_eos, rxscan474_done - rxscan474_scan: - set_addr $I10, rxscan474_loop - rx470_cur."!mark_push"(0, rx470_pos, $I10) - rxscan474_done: -.annotate 'line', 150 - # rx subrule "identifier" subtype=capture negate= - rx470_cur."!cursor_pos"(rx470_pos) - $P10 = rx470_cur."identifier"() - unless $P10, rx470_fail - rx470_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("longname") - rx470_pos = $P10."pos"() -.annotate 'line', 157 - # rx rxquantr475 ** 0..1 - set_addr $I10, rxquantr475_done - rx470_cur."!mark_push"(0, rx470_pos, $I10) - rxquantr475_loop: - alt476_0: -.annotate 'line', 151 - set_addr $I10, alt476_1 - rx470_cur."!mark_push"(0, rx470_pos, $I10) -.annotate 'line', 152 - # rx subrule "before" subtype=zerowidth negate= - rx470_cur."!cursor_pos"(rx470_pos) - .const 'Sub' $P478 = "139_1282016522.91354" - capture_lex $P478 - $P10 = rx470_cur."before"($P478) - unless $P10, rx470_fail - goto alt476_end - alt476_1: - set_addr $I10, alt476_2 - rx470_cur."!mark_push"(0, rx470_pos, $I10) -.annotate 'line', 153 - # rx literal "=" - add $I11, rx470_pos, 1 - gt $I11, rx470_eos, rx470_fail - sub $I11, rx470_pos, rx470_off - ord $I11, rx470_tgt, $I11 - ne $I11, 61, rx470_fail - add rx470_pos, 1 - # rx subrule "assertion" subtype=capture negate= - rx470_cur."!cursor_pos"(rx470_pos) - $P10 = rx470_cur."assertion"() - unless $P10, rx470_fail - rx470_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("assertion") - rx470_pos = $P10."pos"() - goto alt476_end - alt476_2: - set_addr $I10, alt476_3 - rx470_cur."!mark_push"(0, rx470_pos, $I10) -.annotate 'line', 154 - # rx literal ":" - add $I11, rx470_pos, 1 - gt $I11, rx470_eos, rx470_fail - sub $I11, rx470_pos, rx470_off - ord $I11, rx470_tgt, $I11 - ne $I11, 58, rx470_fail - add rx470_pos, 1 - # rx subrule "arglist" subtype=capture negate= - rx470_cur."!cursor_pos"(rx470_pos) - $P10 = rx470_cur."arglist"() - unless $P10, rx470_fail - rx470_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("arglist") - rx470_pos = $P10."pos"() - goto alt476_end - alt476_3: - set_addr $I10, alt476_4 + ge rx470_pos, rx470_eos, rxscan471_done + rxscan471_scan: + set_addr $I10, rxscan471_loop rx470_cur."!mark_push"(0, rx470_pos, $I10) -.annotate 'line', 155 - # rx literal "(" - add $I11, rx470_pos, 1 - gt $I11, rx470_eos, rx470_fail - sub $I11, rx470_pos, rx470_off - ord $I11, rx470_tgt, $I11 - ne $I11, 40, rx470_fail - add rx470_pos, 1 - # rx subrule "arglist" subtype=capture negate= - rx470_cur."!cursor_pos"(rx470_pos) - $P10 = rx470_cur."arglist"() - unless $P10, rx470_fail - rx470_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("arglist") - rx470_pos = $P10."pos"() - # rx literal ")" + rxscan471_done: + # rx literal ">" add $I11, rx470_pos, 1 gt $I11, rx470_eos, rx470_fail sub $I11, rx470_pos, rx470_off ord $I11, rx470_tgt, $I11 - ne $I11, 41, rx470_fail + ne $I11, 62, rx470_fail add rx470_pos, 1 - goto alt476_end - alt476_4: -.annotate 'line', 156 - # rx subrule "normspace" subtype=method negate= - rx470_cur."!cursor_pos"(rx470_pos) - $P10 = rx470_cur."normspace"() - unless $P10, rx470_fail - rx470_pos = $P10."pos"() - # rx subrule "nibbler" subtype=capture negate= - rx470_cur."!cursor_pos"(rx470_pos) - $P10 = rx470_cur."nibbler"() - unless $P10, rx470_fail - rx470_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("nibbler") - rx470_pos = $P10."pos"() - alt476_end: -.annotate 'line', 157 - set_addr $I10, rxquantr475_done - (rx470_rep) = rx470_cur."!mark_commit"($I10) - rxquantr475_done: -.annotate 'line', 149 # rx pass - rx470_cur."!cursor_pass"(rx470_pos, "assertion:sym") - if_null rx470_debug, debug_413 - rx470_cur."!cursor_debug"("PASS ", "assertion:sym", " at pos=", rx470_pos) - debug_413: + rx470_cur."!cursor_pass"(rx470_pos, "") + if_null rx470_debug, debug_404 + rx470_cur."!cursor_debug"("PASS", "", " at pos=", rx470_pos) + debug_404: .return (rx470_cur) rx470_restart: -.annotate 'line', 3 - if_null rx470_debug, debug_414 - rx470_cur."!cursor_debug"("NEXT ", "assertion:sym") - debug_414: + if_null rx470_debug, debug_405 + rx470_cur."!cursor_debug"("NEXT", "") + debug_405: rx470_fail: (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0) lt rx470_pos, -1, rx470_done @@ -6907,27 +6773,109 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx470_done: rx470_cur."!cursor_fail"() - if_null rx470_debug, debug_415 - rx470_cur."!cursor_debug"("FAIL ", "assertion:sym") - debug_415: + if_null rx470_debug, debug_406 + rx470_cur."!cursor_debug"("FAIL", "") + debug_406: .return (rx470_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym" :subid("138_1282016522.91354") :method +.sub "assertion:sym" :subid("137_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - $P472 = self."!PREFIX__!subrule"("identifier", "") - new $P473, "ResizablePMCArray" - push $P473, $P472 - .return ($P473) + .local string rx473_tgt + .local int rx473_pos + .local int rx473_off + .local int rx473_eos + .local int rx473_rep + .local pmc rx473_cur + .local pmc rx473_debug + (rx473_cur, rx473_pos, rx473_tgt, $I10) = self."!cursor_start"() + getattribute rx473_debug, rx473_cur, "$!debug" + .lex unicode:"$\x{a2}", rx473_cur + .local pmc match + .lex "$/", match + length rx473_eos, rx473_tgt + gt rx473_pos, rx473_eos, rx473_done + set rx473_off, 0 + lt rx473_pos, 2, rx473_start + sub rx473_off, rx473_pos, 1 + substr rx473_tgt, rx473_tgt, rx473_off + rx473_start: + eq $I10, 1, rx473_restart + if_null rx473_debug, debug_410 + rx473_cur."!cursor_debug"("START", "assertion:sym") + debug_410: + $I10 = self.'from'() + ne $I10, -1, rxscan477_done + goto rxscan477_scan + rxscan477_loop: + ($P10) = rx473_cur."from"() + inc $P10 + set rx473_pos, $P10 + ge rx473_pos, rx473_eos, rxscan477_done + rxscan477_scan: + set_addr $I10, rxscan477_loop + rx473_cur."!mark_push"(0, rx473_pos, $I10) + rxscan477_done: +.annotate 'line', 153 + # rx literal "." + add $I11, rx473_pos, 1 + gt $I11, rx473_eos, rx473_fail + sub $I11, rx473_pos, rx473_off + ord $I11, rx473_tgt, $I11 + ne $I11, 46, rx473_fail + add rx473_pos, 1 + # rx subrule "assertion" subtype=capture negate= + rx473_cur."!cursor_pos"(rx473_pos) + $P10 = rx473_cur."assertion"() + unless $P10, rx473_fail + rx473_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("assertion") + rx473_pos = $P10."pos"() +.annotate 'line', 152 + # rx pass + rx473_cur."!cursor_pass"(rx473_pos, "assertion:sym") + if_null rx473_debug, debug_411 + rx473_cur."!cursor_debug"("PASS", "assertion:sym", " at pos=", rx473_pos) + debug_411: + .return (rx473_cur) + rx473_restart: +.annotate 'line', 3 + if_null rx473_debug, debug_412 + rx473_cur."!cursor_debug"("NEXT", "assertion:sym") + debug_412: + rx473_fail: + (rx473_rep, rx473_pos, $I10, $P10) = rx473_cur."!mark_fail"(0) + lt rx473_pos, -1, rx473_done + eq rx473_pos, -1, rx473_fail + jump $I10 + rx473_done: + rx473_cur."!cursor_fail"() + if_null rx473_debug, debug_413 + rx473_cur."!cursor_debug"("FAIL", "assertion:sym") + debug_413: + .return (rx473_cur) + .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block477" :anon :subid("139_1282016522.91354") :method :outer("137_1282016522.91354") -.annotate 'line', 152 +.sub "!PREFIX__assertion:sym" :subid("138_1282323996.47527") :method +.annotate 'line', 3 + $P475 = self."!PREFIX__!subrule"("assertion", ".") + new $P476, "ResizablePMCArray" + push $P476, $P475 + .return ($P476) +.end + + +.namespace ["Regex";"P6Regex";"Grammar"] +.sub "assertion:sym" :subid("139_1282323996.47527") :method :outer("11_1282323996.47527") +.annotate 'line', 3 + .const 'Sub' $P487 = "141_1282323996.47527" + capture_lex $P487 .local string rx479_tgt .local int rx479_pos .local int rx479_off @@ -6936,6 +6884,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local pmc rx479_cur .local pmc rx479_debug (rx479_cur, rx479_pos, rx479_tgt, $I10) = self."!cursor_start"() + rx479_cur."!cursor_caparray"("nibbler", "arglist", "assertion") getattribute rx479_debug, rx479_cur, "$!debug" .lex unicode:"$\x{a2}", rx479_cur .local pmc match @@ -6948,38 +6897,141 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx479_tgt, rx479_tgt, rx479_off rx479_start: eq $I10, 1, rx479_restart - if_null rx479_debug, debug_409 - rx479_cur."!cursor_debug"("START ", "") - debug_409: + if_null rx479_debug, debug_414 + rx479_cur."!cursor_debug"("START", "assertion:sym") + debug_414: $I10 = self.'from'() - ne $I10, -1, rxscan480_done - goto rxscan480_scan - rxscan480_loop: + ne $I10, -1, rxscan483_done + goto rxscan483_scan + rxscan483_loop: ($P10) = rx479_cur."from"() inc $P10 set rx479_pos, $P10 - ge rx479_pos, rx479_eos, rxscan480_done - rxscan480_scan: - set_addr $I10, rxscan480_loop + ge rx479_pos, rx479_eos, rxscan483_done + rxscan483_scan: + set_addr $I10, rxscan483_loop rx479_cur."!mark_push"(0, rx479_pos, $I10) - rxscan480_done: - # rx literal ">" + rxscan483_done: +.annotate 'line', 157 + # rx subrule "identifier" subtype=capture negate= + rx479_cur."!cursor_pos"(rx479_pos) + $P10 = rx479_cur."identifier"() + unless $P10, rx479_fail + rx479_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("longname") + rx479_pos = $P10."pos"() +.annotate 'line', 164 + # rx rxquantr484 ** 0..1 + set_addr $I10, rxquantr484_done + rx479_cur."!mark_push"(0, rx479_pos, $I10) + rxquantr484_loop: + alt485_0: +.annotate 'line', 158 + set_addr $I10, alt485_1 + rx479_cur."!mark_push"(0, rx479_pos, $I10) +.annotate 'line', 159 + # rx subrule "before" subtype=zerowidth negate= + rx479_cur."!cursor_pos"(rx479_pos) + .const 'Sub' $P487 = "141_1282323996.47527" + capture_lex $P487 + $P10 = rx479_cur."before"($P487) + unless $P10, rx479_fail + goto alt485_end + alt485_1: + set_addr $I10, alt485_2 + rx479_cur."!mark_push"(0, rx479_pos, $I10) +.annotate 'line', 160 + # rx literal "=" + add $I11, rx479_pos, 1 + gt $I11, rx479_eos, rx479_fail + sub $I11, rx479_pos, rx479_off + ord $I11, rx479_tgt, $I11 + ne $I11, 61, rx479_fail + add rx479_pos, 1 + # rx subrule "assertion" subtype=capture negate= + rx479_cur."!cursor_pos"(rx479_pos) + $P10 = rx479_cur."assertion"() + unless $P10, rx479_fail + rx479_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("assertion") + rx479_pos = $P10."pos"() + goto alt485_end + alt485_2: + set_addr $I10, alt485_3 + rx479_cur."!mark_push"(0, rx479_pos, $I10) +.annotate 'line', 161 + # rx literal ":" + add $I11, rx479_pos, 1 + gt $I11, rx479_eos, rx479_fail + sub $I11, rx479_pos, rx479_off + ord $I11, rx479_tgt, $I11 + ne $I11, 58, rx479_fail + add rx479_pos, 1 + # rx subrule "arglist" subtype=capture negate= + rx479_cur."!cursor_pos"(rx479_pos) + $P10 = rx479_cur."arglist"() + unless $P10, rx479_fail + rx479_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("arglist") + rx479_pos = $P10."pos"() + goto alt485_end + alt485_3: + set_addr $I10, alt485_4 + rx479_cur."!mark_push"(0, rx479_pos, $I10) +.annotate 'line', 162 + # rx literal "(" + add $I11, rx479_pos, 1 + gt $I11, rx479_eos, rx479_fail + sub $I11, rx479_pos, rx479_off + ord $I11, rx479_tgt, $I11 + ne $I11, 40, rx479_fail + add rx479_pos, 1 + # rx subrule "arglist" subtype=capture negate= + rx479_cur."!cursor_pos"(rx479_pos) + $P10 = rx479_cur."arglist"() + unless $P10, rx479_fail + rx479_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("arglist") + rx479_pos = $P10."pos"() + # rx literal ")" add $I11, rx479_pos, 1 gt $I11, rx479_eos, rx479_fail sub $I11, rx479_pos, rx479_off ord $I11, rx479_tgt, $I11 - ne $I11, 62, rx479_fail + ne $I11, 41, rx479_fail add rx479_pos, 1 + goto alt485_end + alt485_4: +.annotate 'line', 163 + # rx subrule "normspace" subtype=method negate= + rx479_cur."!cursor_pos"(rx479_pos) + $P10 = rx479_cur."normspace"() + unless $P10, rx479_fail + rx479_pos = $P10."pos"() + # rx subrule "nibbler" subtype=capture negate= + rx479_cur."!cursor_pos"(rx479_pos) + $P10 = rx479_cur."nibbler"() + unless $P10, rx479_fail + rx479_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("nibbler") + rx479_pos = $P10."pos"() + alt485_end: +.annotate 'line', 164 + set_addr $I10, rxquantr484_done + (rx479_rep) = rx479_cur."!mark_commit"($I10) + rxquantr484_done: +.annotate 'line', 156 # rx pass - rx479_cur."!cursor_pass"(rx479_pos, "") - if_null rx479_debug, debug_410 - rx479_cur."!cursor_debug"("PASS ", "", " at pos=", rx479_pos) - debug_410: + rx479_cur."!cursor_pass"(rx479_pos, "assertion:sym") + if_null rx479_debug, debug_419 + rx479_cur."!cursor_debug"("PASS", "assertion:sym", " at pos=", rx479_pos) + debug_419: .return (rx479_cur) rx479_restart: - if_null rx479_debug, debug_411 - rx479_cur."!cursor_debug"("NEXT ", "") - debug_411: +.annotate 'line', 3 + if_null rx479_debug, debug_420 + rx479_cur."!cursor_debug"("NEXT", "assertion:sym") + debug_420: rx479_fail: (rx479_rep, rx479_pos, $I10, $P10) = rx479_cur."!mark_fail"(0) lt rx479_pos, -1, rx479_done @@ -6987,133 +7039,37 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx479_done: rx479_cur."!cursor_fail"() - if_null rx479_debug, debug_412 - rx479_cur."!cursor_debug"("FAIL ", "") - debug_412: + if_null rx479_debug, debug_421 + rx479_cur."!cursor_debug"("FAIL", "assertion:sym") + debug_421: .return (rx479_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "assertion:sym<[>" :subid("140_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "!PREFIX__assertion:sym" :subid("140_1282323996.47527") :method .annotate 'line', 3 - .const 'Sub' $P487 = "142_1282016522.91354" - capture_lex $P487 - .local string rx482_tgt - .local int rx482_pos - .local int rx482_off - .local int rx482_eos - .local int rx482_rep - .local pmc rx482_cur - .local pmc rx482_debug - (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"() - rx482_cur."!cursor_caparray"("cclass_elem") - getattribute rx482_debug, rx482_cur, "$!debug" - .lex unicode:"$\x{a2}", rx482_cur - .local pmc match - .lex "$/", match - length rx482_eos, rx482_tgt - gt rx482_pos, rx482_eos, rx482_done - set rx482_off, 0 - lt rx482_pos, 2, rx482_start - sub rx482_off, rx482_pos, 1 - substr rx482_tgt, rx482_tgt, rx482_off - rx482_start: - eq $I10, 1, rx482_restart - if_null rx482_debug, debug_416 - rx482_cur."!cursor_debug"("START ", "assertion:sym<[>") - debug_416: - $I10 = self.'from'() - ne $I10, -1, rxscan485_done - goto rxscan485_scan - rxscan485_loop: - ($P10) = rx482_cur."from"() - inc $P10 - set rx482_pos, $P10 - ge rx482_pos, rx482_eos, rxscan485_done - rxscan485_scan: - set_addr $I10, rxscan485_loop - rx482_cur."!mark_push"(0, rx482_pos, $I10) - rxscan485_done: -.annotate 'line', 160 - # rx subrule "before" subtype=zerowidth negate= - rx482_cur."!cursor_pos"(rx482_pos) - .const 'Sub' $P487 = "142_1282016522.91354" - capture_lex $P487 - $P10 = rx482_cur."before"($P487) - unless $P10, rx482_fail - # rx rxquantr491 ** 1..* - set_addr $I10, rxquantr491_done - rx482_cur."!mark_push"(0, -1, $I10) - rxquantr491_loop: - # rx subrule "cclass_elem" subtype=capture negate= - rx482_cur."!cursor_pos"(rx482_pos) - $P10 = rx482_cur."cclass_elem"() - unless $P10, rx482_fail - goto rxsubrule492_pass - rxsubrule492_back: - $P10 = $P10."!cursor_next"() - unless $P10, rx482_fail - rxsubrule492_pass: - set_addr $I10, rxsubrule492_back - rx482_cur."!mark_push"(0, rx482_pos, $I10, $P10) - $P10."!cursor_names"("cclass_elem") - rx482_pos = $P10."pos"() - set_addr $I10, rxquantr491_done - (rx482_rep) = rx482_cur."!mark_commit"($I10) - set_addr $I10, rxquantr491_done - rx482_cur."!mark_push"(rx482_rep, rx482_pos, $I10) - goto rxquantr491_loop - rxquantr491_done: - # rx pass - rx482_cur."!cursor_pass"(rx482_pos, "assertion:sym<[>") - if_null rx482_debug, debug_421 - rx482_cur."!cursor_debug"("PASS ", "assertion:sym<[>", " at pos=", rx482_pos) - debug_421: - .return (rx482_cur) - rx482_restart: -.annotate 'line', 3 - if_null rx482_debug, debug_422 - rx482_cur."!cursor_debug"("NEXT ", "assertion:sym<[>") - debug_422: - rx482_fail: - (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0) - lt rx482_pos, -1, rx482_done - eq rx482_pos, -1, rx482_fail - jump $I10 - rx482_done: - rx482_cur."!cursor_fail"() - if_null rx482_debug, debug_423 - rx482_cur."!cursor_debug"("FAIL ", "assertion:sym<[>") - debug_423: - .return (rx482_cur) - .return () -.end - - -.namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__assertion:sym<[>" :subid("141_1282016522.91354") :method -.annotate 'line', 3 - new $P484, "ResizablePMCArray" - push $P484, "" - .return ($P484) -.end - - -.namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block486" :anon :subid("142_1282016522.91354") :method :outer("140_1282016522.91354") -.annotate 'line', 160 - .local string rx488_tgt - .local int rx488_pos - .local int rx488_off - .local int rx488_eos - .local int rx488_rep - .local pmc rx488_cur - .local pmc rx488_debug - (rx488_cur, rx488_pos, rx488_tgt, $I10) = self."!cursor_start"() - getattribute rx488_debug, rx488_cur, "$!debug" - .lex unicode:"$\x{a2}", rx488_cur + $P481 = self."!PREFIX__!subrule"("identifier", "") + new $P482, "ResizablePMCArray" + push $P482, $P481 + .return ($P482) +.end + + +.namespace ["Regex";"P6Regex";"Grammar"] +.sub "_block486" :anon :subid("141_1282323996.47527") :method :outer("139_1282323996.47527") +.annotate 'line', 159 + .local string rx488_tgt + .local int rx488_pos + .local int rx488_off + .local int rx488_eos + .local int rx488_rep + .local pmc rx488_cur + .local pmc rx488_debug + (rx488_cur, rx488_pos, rx488_tgt, $I10) = self."!cursor_start"() + getattribute rx488_debug, rx488_cur, "$!debug" + .lex unicode:"$\x{a2}", rx488_cur .local pmc match .lex "$/", match length rx488_eos, rx488_tgt @@ -7124,9 +7080,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx488_tgt, rx488_tgt, rx488_off rx488_start: eq $I10, 1, rx488_restart - if_null rx488_debug, debug_417 - rx488_cur."!cursor_debug"("START ", "") - debug_417: + if_null rx488_debug, debug_415 + rx488_cur."!cursor_debug"("START", "") + debug_415: $I10 = self.'from'() ne $I10, -1, rxscan489_done goto rxscan489_scan @@ -7139,47 +7095,23 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes set_addr $I10, rxscan489_loop rx488_cur."!mark_push"(0, rx488_pos, $I10) rxscan489_done: - alt490_0: - set_addr $I10, alt490_1 - rx488_cur."!mark_push"(0, rx488_pos, $I10) - # rx literal "[" - add $I11, rx488_pos, 1 - gt $I11, rx488_eos, rx488_fail - sub $I11, rx488_pos, rx488_off - ord $I11, rx488_tgt, $I11 - ne $I11, 91, rx488_fail - add rx488_pos, 1 - goto alt490_end - alt490_1: - set_addr $I10, alt490_2 - rx488_cur."!mark_push"(0, rx488_pos, $I10) - # rx literal "+" - add $I11, rx488_pos, 1 - gt $I11, rx488_eos, rx488_fail - sub $I11, rx488_pos, rx488_off - ord $I11, rx488_tgt, $I11 - ne $I11, 43, rx488_fail - add rx488_pos, 1 - goto alt490_end - alt490_2: - # rx literal "-" + # rx literal ">" add $I11, rx488_pos, 1 gt $I11, rx488_eos, rx488_fail sub $I11, rx488_pos, rx488_off ord $I11, rx488_tgt, $I11 - ne $I11, 45, rx488_fail + ne $I11, 62, rx488_fail add rx488_pos, 1 - alt490_end: # rx pass rx488_cur."!cursor_pass"(rx488_pos, "") - if_null rx488_debug, debug_418 - rx488_cur."!cursor_debug"("PASS ", "", " at pos=", rx488_pos) - debug_418: + if_null rx488_debug, debug_416 + rx488_cur."!cursor_debug"("PASS", "", " at pos=", rx488_pos) + debug_416: .return (rx488_cur) rx488_restart: - if_null rx488_debug, debug_419 - rx488_cur."!cursor_debug"("NEXT ", "") - debug_419: + if_null rx488_debug, debug_417 + rx488_cur."!cursor_debug"("NEXT", "") + debug_417: rx488_fail: (rx488_rep, rx488_pos, $I10, $P10) = rx488_cur."!mark_fail"(0) lt rx488_pos, -1, rx488_done @@ -7187,549 +7119,613 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx488_done: rx488_cur."!cursor_fail"() - if_null rx488_debug, debug_420 - rx488_cur."!cursor_debug"("FAIL ", "") - debug_420: + if_null rx488_debug, debug_418 + rx488_cur."!cursor_debug"("FAIL", "") + debug_418: .return (rx488_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "cclass_elem" :subid("143_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "assertion:sym<[>" :subid("142_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .const 'Sub' $P505 = "145_1282016522.91354" - capture_lex $P505 - .local string rx494_tgt - .local int rx494_pos - .local int rx494_off - .local int rx494_eos - .local int rx494_rep - .local pmc rx494_cur - .local pmc rx494_debug - (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"() - rx494_cur."!cursor_caparray"("charspec") - getattribute rx494_debug, rx494_cur, "$!debug" - .lex unicode:"$\x{a2}", rx494_cur + .const 'Sub' $P496 = "144_1282323996.47527" + capture_lex $P496 + .local string rx491_tgt + .local int rx491_pos + .local int rx491_off + .local int rx491_eos + .local int rx491_rep + .local pmc rx491_cur + .local pmc rx491_debug + (rx491_cur, rx491_pos, rx491_tgt, $I10) = self."!cursor_start"() + rx491_cur."!cursor_caparray"("cclass_elem") + getattribute rx491_debug, rx491_cur, "$!debug" + .lex unicode:"$\x{a2}", rx491_cur .local pmc match .lex "$/", match - length rx494_eos, rx494_tgt - gt rx494_pos, rx494_eos, rx494_done - set rx494_off, 0 - lt rx494_pos, 2, rx494_start - sub rx494_off, rx494_pos, 1 - substr rx494_tgt, rx494_tgt, rx494_off - rx494_start: - eq $I10, 1, rx494_restart - if_null rx494_debug, debug_424 - rx494_cur."!cursor_debug"("START ", "cclass_elem") - debug_424: + length rx491_eos, rx491_tgt + gt rx491_pos, rx491_eos, rx491_done + set rx491_off, 0 + lt rx491_pos, 2, rx491_start + sub rx491_off, rx491_pos, 1 + substr rx491_tgt, rx491_tgt, rx491_off + rx491_start: + eq $I10, 1, rx491_restart + if_null rx491_debug, debug_422 + rx491_cur."!cursor_debug"("START", "assertion:sym<[>") + debug_422: $I10 = self.'from'() - ne $I10, -1, rxscan497_done - goto rxscan497_scan - rxscan497_loop: - ($P10) = rx494_cur."from"() + ne $I10, -1, rxscan494_done + goto rxscan494_scan + rxscan494_loop: + ($P10) = rx491_cur."from"() inc $P10 - set rx494_pos, $P10 - ge rx494_pos, rx494_eos, rxscan497_done - rxscan497_scan: - set_addr $I10, rxscan497_loop - rx494_cur."!mark_push"(0, rx494_pos, $I10) - rxscan497_done: -.annotate 'line', 163 - # rx subcapture "sign" - set_addr $I10, rxcap_499_fail - rx494_cur."!mark_push"(0, rx494_pos, $I10) - alt498_0: - set_addr $I10, alt498_1 - rx494_cur."!mark_push"(0, rx494_pos, $I10) - # rx literal "+" - add $I11, rx494_pos, 1 - gt $I11, rx494_eos, rx494_fail - sub $I11, rx494_pos, rx494_off - ord $I11, rx494_tgt, $I11 - ne $I11, 43, rx494_fail - add rx494_pos, 1 - goto alt498_end - alt498_1: - set_addr $I10, alt498_2 - rx494_cur."!mark_push"(0, rx494_pos, $I10) - # rx literal "-" - add $I11, rx494_pos, 1 - gt $I11, rx494_eos, rx494_fail - sub $I11, rx494_pos, rx494_off - ord $I11, rx494_tgt, $I11 - ne $I11, 45, rx494_fail - add rx494_pos, 1 - goto alt498_end - alt498_2: - alt498_end: - set_addr $I10, rxcap_499_fail - ($I12, $I11) = rx494_cur."!mark_peek"($I10) - rx494_cur."!cursor_pos"($I11) - ($P10) = rx494_cur."!cursor_start"() - $P10."!cursor_pass"(rx494_pos, "") - rx494_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("sign") - goto rxcap_499_done - rxcap_499_fail: - goto rx494_fail - rxcap_499_done: -.annotate 'line', 164 - # rx rxquantr500 ** 0..1 + set rx491_pos, $P10 + ge rx491_pos, rx491_eos, rxscan494_done + rxscan494_scan: + set_addr $I10, rxscan494_loop + rx491_cur."!mark_push"(0, rx491_pos, $I10) + rxscan494_done: +.annotate 'line', 167 + # rx subrule "before" subtype=zerowidth negate= + rx491_cur."!cursor_pos"(rx491_pos) + .const 'Sub' $P496 = "144_1282323996.47527" + capture_lex $P496 + $P10 = rx491_cur."before"($P496) + unless $P10, rx491_fail + # rx rxquantr500 ** 1..* set_addr $I10, rxquantr500_done - rx494_cur."!mark_push"(0, rx494_pos, $I10) + rx491_cur."!mark_push"(0, -1, $I10) rxquantr500_loop: - # rx subrule "normspace" subtype=method negate= - rx494_cur."!cursor_pos"(rx494_pos) - $P10 = rx494_cur."normspace"() - unless $P10, rx494_fail + # rx subrule "cclass_elem" subtype=capture negate= + rx491_cur."!cursor_pos"(rx491_pos) + $P10 = rx491_cur."cclass_elem"() + unless $P10, rx491_fail goto rxsubrule501_pass rxsubrule501_back: $P10 = $P10."!cursor_next"() - unless $P10, rx494_fail + unless $P10, rx491_fail rxsubrule501_pass: set_addr $I10, rxsubrule501_back - rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10) - rx494_pos = $P10."pos"() + rx491_cur."!mark_push"(0, rx491_pos, $I10, $P10) + $P10."!cursor_names"("cclass_elem") + rx491_pos = $P10."pos"() set_addr $I10, rxquantr500_done - (rx494_rep) = rx494_cur."!mark_commit"($I10) + (rx491_rep) = rx491_cur."!mark_commit"($I10) + set_addr $I10, rxquantr500_done + rx491_cur."!mark_push"(rx491_rep, rx491_pos, $I10) + goto rxquantr500_loop rxquantr500_done: - alt502_0: -.annotate 'line', 165 - set_addr $I10, alt502_1 - rx494_cur."!mark_push"(0, rx494_pos, $I10) -.annotate 'line', 166 - # rx literal "[" - add $I11, rx494_pos, 1 - gt $I11, rx494_eos, rx494_fail - sub $I11, rx494_pos, rx494_off - ord $I11, rx494_tgt, $I11 - ne $I11, 91, rx494_fail - add rx494_pos, 1 -.annotate 'line', 169 - # rx rxquantr503 ** 0..* - set_addr $I10, rxquantr503_done - rx494_cur."!mark_push"(0, rx494_pos, $I10) - rxquantr503_loop: -.annotate 'line', 166 - # rx subrule $P505 subtype=capture negate= - rx494_cur."!cursor_pos"(rx494_pos) - .const 'Sub' $P505 = "145_1282016522.91354" - capture_lex $P505 - $P10 = rx494_cur.$P505() - unless $P10, rx494_fail - goto rxsubrule523_pass - rxsubrule523_back: - $P10 = $P10."!cursor_next"() - unless $P10, rx494_fail - rxsubrule523_pass: - set_addr $I10, rxsubrule523_back - rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10) - $P10."!cursor_names"("charspec") - rx494_pos = $P10."pos"() -.annotate 'line', 169 - set_addr $I10, rxquantr503_done - (rx494_rep) = rx494_cur."!mark_commit"($I10) - set_addr $I10, rxquantr503_done - rx494_cur."!mark_push"(rx494_rep, rx494_pos, $I10) - goto rxquantr503_loop - rxquantr503_done: -.annotate 'line', 170 - # rx charclass_q s r 0..-1 - sub $I10, rx494_pos, rx494_off - find_not_cclass $I11, 32, rx494_tgt, $I10, rx494_eos - add rx494_pos, rx494_off, $I11 - # rx literal "]" - add $I11, rx494_pos, 1 - gt $I11, rx494_eos, rx494_fail - sub $I11, rx494_pos, rx494_off - ord $I11, rx494_tgt, $I11 - ne $I11, 93, rx494_fail - add rx494_pos, 1 -.annotate 'line', 166 - goto alt502_end - alt502_1: -.annotate 'line', 171 - # rx subcapture "name" - set_addr $I10, rxcap_524_fail - rx494_cur."!mark_push"(0, rx494_pos, $I10) - # rx charclass_q w r 1..-1 - sub $I10, rx494_pos, rx494_off - find_not_cclass $I11, 8192, rx494_tgt, $I10, rx494_eos - add $I12, $I10, 1 - lt $I11, $I12, rx494_fail - add rx494_pos, rx494_off, $I11 - set_addr $I10, rxcap_524_fail - ($I12, $I11) = rx494_cur."!mark_peek"($I10) - rx494_cur."!cursor_pos"($I11) - ($P10) = rx494_cur."!cursor_start"() - $P10."!cursor_pass"(rx494_pos, "") - rx494_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("name") - goto rxcap_524_done - rxcap_524_fail: - goto rx494_fail - rxcap_524_done: - alt502_end: -.annotate 'line', 173 - # rx rxquantr525 ** 0..1 - set_addr $I10, rxquantr525_done - rx494_cur."!mark_push"(0, rx494_pos, $I10) - rxquantr525_loop: - # rx subrule "normspace" subtype=method negate= - rx494_cur."!cursor_pos"(rx494_pos) - $P10 = rx494_cur."normspace"() - unless $P10, rx494_fail - goto rxsubrule526_pass - rxsubrule526_back: - $P10 = $P10."!cursor_next"() - unless $P10, rx494_fail - rxsubrule526_pass: - set_addr $I10, rxsubrule526_back - rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10) - rx494_pos = $P10."pos"() - set_addr $I10, rxquantr525_done - (rx494_rep) = rx494_cur."!mark_commit"($I10) - rxquantr525_done: -.annotate 'line', 162 # rx pass - rx494_cur."!cursor_pass"(rx494_pos, "cclass_elem") - if_null rx494_debug, debug_441 - rx494_cur."!cursor_debug"("PASS ", "cclass_elem", " at pos=", rx494_pos) - debug_441: - .return (rx494_cur) - rx494_restart: + rx491_cur."!cursor_pass"(rx491_pos, "assertion:sym<[>") + if_null rx491_debug, debug_427 + rx491_cur."!cursor_debug"("PASS", "assertion:sym<[>", " at pos=", rx491_pos) + debug_427: + .return (rx491_cur) + rx491_restart: .annotate 'line', 3 - if_null rx494_debug, debug_442 - rx494_cur."!cursor_debug"("NEXT ", "cclass_elem") - debug_442: - rx494_fail: - (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0) - lt rx494_pos, -1, rx494_done - eq rx494_pos, -1, rx494_fail + if_null rx491_debug, debug_428 + rx491_cur."!cursor_debug"("NEXT", "assertion:sym<[>") + debug_428: + rx491_fail: + (rx491_rep, rx491_pos, $I10, $P10) = rx491_cur."!mark_fail"(0) + lt rx491_pos, -1, rx491_done + eq rx491_pos, -1, rx491_fail jump $I10 - rx494_done: - rx494_cur."!cursor_fail"() - if_null rx494_debug, debug_443 - rx494_cur."!cursor_debug"("FAIL ", "cclass_elem") - debug_443: - .return (rx494_cur) + rx491_done: + rx491_cur."!cursor_fail"() + if_null rx491_debug, debug_429 + rx491_cur."!cursor_debug"("FAIL", "assertion:sym<[>") + debug_429: + .return (rx491_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__cclass_elem" :subid("144_1282016522.91354") :method +.sub "!PREFIX__assertion:sym<[>" :subid("143_1282323996.47527") :method .annotate 'line', 3 - new $P496, "ResizablePMCArray" - push $P496, "" - push $P496, "-" - push $P496, "+" - .return ($P496) + new $P493, "ResizablePMCArray" + push $P493, "" + .return ($P493) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block504" :anon :subid("145_1282016522.91354") :method :outer("143_1282016522.91354") -.annotate 'line', 166 - .const 'Sub' $P520 = "148_1282016522.91354" - capture_lex $P520 - .const 'Sub' $P515 = "147_1282016522.91354" - capture_lex $P515 - .const 'Sub' $P511 = "146_1282016522.91354" - capture_lex $P511 - .local string rx506_tgt - .local int rx506_pos - .local int rx506_off - .local int rx506_eos - .local int rx506_rep - .local pmc rx506_cur - .local pmc rx506_debug - (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"() - rx506_cur."!cursor_caparray"("1") - getattribute rx506_debug, rx506_cur, "$!debug" - .lex unicode:"$\x{a2}", rx506_cur +.sub "_block495" :anon :subid("144_1282323996.47527") :method :outer("142_1282323996.47527") +.annotate 'line', 167 + .local string rx497_tgt + .local int rx497_pos + .local int rx497_off + .local int rx497_eos + .local int rx497_rep + .local pmc rx497_cur + .local pmc rx497_debug + (rx497_cur, rx497_pos, rx497_tgt, $I10) = self."!cursor_start"() + getattribute rx497_debug, rx497_cur, "$!debug" + .lex unicode:"$\x{a2}", rx497_cur .local pmc match .lex "$/", match - length rx506_eos, rx506_tgt - gt rx506_pos, rx506_eos, rx506_done - set rx506_off, 0 - lt rx506_pos, 2, rx506_start - sub rx506_off, rx506_pos, 1 - substr rx506_tgt, rx506_tgt, rx506_off - rx506_start: - eq $I10, 1, rx506_restart - if_null rx506_debug, debug_425 - rx506_cur."!cursor_debug"("START ", "") - debug_425: + length rx497_eos, rx497_tgt + gt rx497_pos, rx497_eos, rx497_done + set rx497_off, 0 + lt rx497_pos, 2, rx497_start + sub rx497_off, rx497_pos, 1 + substr rx497_tgt, rx497_tgt, rx497_off + rx497_start: + eq $I10, 1, rx497_restart + if_null rx497_debug, debug_423 + rx497_cur."!cursor_debug"("START", "") + debug_423: $I10 = self.'from'() - ne $I10, -1, rxscan507_done - goto rxscan507_scan - rxscan507_loop: - ($P10) = rx506_cur."from"() + ne $I10, -1, rxscan498_done + goto rxscan498_scan + rxscan498_loop: + ($P10) = rx497_cur."from"() inc $P10 - set rx506_pos, $P10 - ge rx506_pos, rx506_eos, rxscan507_done - rxscan507_scan: - set_addr $I10, rxscan507_loop - rx506_cur."!mark_push"(0, rx506_pos, $I10) - rxscan507_done: - alt508_0: - set_addr $I10, alt508_1 - rx506_cur."!mark_push"(0, rx506_pos, $I10) -.annotate 'line', 167 - # rx charclass_q s r 0..-1 - sub $I10, rx506_pos, rx506_off - find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos - add rx506_pos, rx506_off, $I11 + set rx497_pos, $P10 + ge rx497_pos, rx497_eos, rxscan498_done + rxscan498_scan: + set_addr $I10, rxscan498_loop + rx497_cur."!mark_push"(0, rx497_pos, $I10) + rxscan498_done: + alt499_0: + set_addr $I10, alt499_1 + rx497_cur."!mark_push"(0, rx497_pos, $I10) + # rx literal "[" + add $I11, rx497_pos, 1 + gt $I11, rx497_eos, rx497_fail + sub $I11, rx497_pos, rx497_off + ord $I11, rx497_tgt, $I11 + ne $I11, 91, rx497_fail + add rx497_pos, 1 + goto alt499_end + alt499_1: + set_addr $I10, alt499_2 + rx497_cur."!mark_push"(0, rx497_pos, $I10) + # rx literal "+" + add $I11, rx497_pos, 1 + gt $I11, rx497_eos, rx497_fail + sub $I11, rx497_pos, rx497_off + ord $I11, rx497_tgt, $I11 + ne $I11, 43, rx497_fail + add rx497_pos, 1 + goto alt499_end + alt499_2: # rx literal "-" - add $I11, rx506_pos, 1 - gt $I11, rx506_eos, rx506_fail - sub $I11, rx506_pos, rx506_off - ord $I11, rx506_tgt, $I11 - ne $I11, 45, rx506_fail - add rx506_pos, 1 - # rx subrule "obs" subtype=method negate= - rx506_cur."!cursor_pos"(rx506_pos) - $P10 = rx506_cur."obs"("- as character range", "..") - unless $P10, rx506_fail - rx506_pos = $P10."pos"() - goto alt508_end - alt508_1: -.annotate 'line', 168 - # rx charclass_q s r 0..-1 - sub $I10, rx506_pos, rx506_off - find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos - add rx506_pos, rx506_off, $I11 - alt509_0: - set_addr $I10, alt509_1 - rx506_cur."!mark_push"(0, rx506_pos, $I10) - # rx literal "\\" - add $I11, rx506_pos, 1 - gt $I11, rx506_eos, rx506_fail - sub $I11, rx506_pos, rx506_off - ord $I11, rx506_tgt, $I11 - ne $I11, 92, rx506_fail - add rx506_pos, 1 - # rx subrule $P511 subtype=capture negate= - rx506_cur."!cursor_pos"(rx506_pos) - .const 'Sub' $P511 = "146_1282016522.91354" - capture_lex $P511 - $P10 = rx506_cur.$P511() - unless $P10, rx506_fail - rx506_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"(0) - rx506_pos = $P10."pos"() - goto alt509_end - alt509_1: - # rx subrule $P515 subtype=capture negate= - rx506_cur."!cursor_pos"(rx506_pos) - .const 'Sub' $P515 = "147_1282016522.91354" - capture_lex $P515 - $P10 = rx506_cur.$P515() - unless $P10, rx506_fail - rx506_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"(0) - rx506_pos = $P10."pos"() - alt509_end: - # rx rxquantr518 ** 0..1 - set_addr $I10, rxquantr518_done - rx506_cur."!mark_push"(0, rx506_pos, $I10) - rxquantr518_loop: - # rx charclass_q s r 0..-1 - sub $I10, rx506_pos, rx506_off - find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos - add rx506_pos, rx506_off, $I11 - # rx literal ".." - add $I11, rx506_pos, 2 - gt $I11, rx506_eos, rx506_fail - sub $I11, rx506_pos, rx506_off - substr $S10, rx506_tgt, $I11, 2 - ne $S10, "..", rx506_fail - add rx506_pos, 2 - # rx charclass_q s r 0..-1 - sub $I10, rx506_pos, rx506_off - find_not_cclass $I11, 32, rx506_tgt, $I10, rx506_eos - add rx506_pos, rx506_off, $I11 - # rx subrule $P520 subtype=capture negate= - rx506_cur."!cursor_pos"(rx506_pos) - .const 'Sub' $P520 = "148_1282016522.91354" - capture_lex $P520 - $P10 = rx506_cur.$P520() - unless $P10, rx506_fail - rx506_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("1") - rx506_pos = $P10."pos"() - set_addr $I10, rxquantr518_done - (rx506_rep) = rx506_cur."!mark_commit"($I10) - rxquantr518_done: - alt508_end: -.annotate 'line', 166 + add $I11, rx497_pos, 1 + gt $I11, rx497_eos, rx497_fail + sub $I11, rx497_pos, rx497_off + ord $I11, rx497_tgt, $I11 + ne $I11, 45, rx497_fail + add rx497_pos, 1 + alt499_end: # rx pass - rx506_cur."!cursor_pass"(rx506_pos, "") - if_null rx506_debug, debug_438 - rx506_cur."!cursor_debug"("PASS ", "", " at pos=", rx506_pos) - debug_438: - .return (rx506_cur) - rx506_restart: - if_null rx506_debug, debug_439 - rx506_cur."!cursor_debug"("NEXT ", "") - debug_439: - rx506_fail: - (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0) - lt rx506_pos, -1, rx506_done - eq rx506_pos, -1, rx506_fail + rx497_cur."!cursor_pass"(rx497_pos, "") + if_null rx497_debug, debug_424 + rx497_cur."!cursor_debug"("PASS", "", " at pos=", rx497_pos) + debug_424: + .return (rx497_cur) + rx497_restart: + if_null rx497_debug, debug_425 + rx497_cur."!cursor_debug"("NEXT", "") + debug_425: + rx497_fail: + (rx497_rep, rx497_pos, $I10, $P10) = rx497_cur."!mark_fail"(0) + lt rx497_pos, -1, rx497_done + eq rx497_pos, -1, rx497_fail jump $I10 - rx506_done: - rx506_cur."!cursor_fail"() - if_null rx506_debug, debug_440 - rx506_cur."!cursor_debug"("FAIL ", "") - debug_440: - .return (rx506_cur) + rx497_done: + rx497_cur."!cursor_fail"() + if_null rx497_debug, debug_426 + rx497_cur."!cursor_debug"("FAIL", "") + debug_426: + .return (rx497_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block510" :anon :subid("146_1282016522.91354") :method :outer("145_1282016522.91354") -.annotate 'line', 168 - .local string rx512_tgt - .local int rx512_pos - .local int rx512_off - .local int rx512_eos - .local int rx512_rep - .local pmc rx512_cur - .local pmc rx512_debug - (rx512_cur, rx512_pos, rx512_tgt, $I10) = self."!cursor_start"() - getattribute rx512_debug, rx512_cur, "$!debug" - .lex unicode:"$\x{a2}", rx512_cur +.sub "cclass_elem" :subid("145_1282323996.47527") :method :outer("11_1282323996.47527") +.annotate 'line', 3 + .const 'Sub' $P514 = "147_1282323996.47527" + capture_lex $P514 + .local string rx503_tgt + .local int rx503_pos + .local int rx503_off + .local int rx503_eos + .local int rx503_rep + .local pmc rx503_cur + .local pmc rx503_debug + (rx503_cur, rx503_pos, rx503_tgt, $I10) = self."!cursor_start"() + rx503_cur."!cursor_caparray"("charspec") + getattribute rx503_debug, rx503_cur, "$!debug" + .lex unicode:"$\x{a2}", rx503_cur .local pmc match .lex "$/", match - length rx512_eos, rx512_tgt - gt rx512_pos, rx512_eos, rx512_done - set rx512_off, 0 - lt rx512_pos, 2, rx512_start - sub rx512_off, rx512_pos, 1 - substr rx512_tgt, rx512_tgt, rx512_off - rx512_start: - eq $I10, 1, rx512_restart - if_null rx512_debug, debug_426 - rx512_cur."!cursor_debug"("START ", "") - debug_426: + length rx503_eos, rx503_tgt + gt rx503_pos, rx503_eos, rx503_done + set rx503_off, 0 + lt rx503_pos, 2, rx503_start + sub rx503_off, rx503_pos, 1 + substr rx503_tgt, rx503_tgt, rx503_off + rx503_start: + eq $I10, 1, rx503_restart + if_null rx503_debug, debug_430 + rx503_cur."!cursor_debug"("START", "cclass_elem") + debug_430: $I10 = self.'from'() - ne $I10, -1, rxscan513_done - goto rxscan513_scan - rxscan513_loop: - ($P10) = rx512_cur."from"() + ne $I10, -1, rxscan506_done + goto rxscan506_scan + rxscan506_loop: + ($P10) = rx503_cur."from"() inc $P10 - set rx512_pos, $P10 - ge rx512_pos, rx512_eos, rxscan513_done - rxscan513_scan: - set_addr $I10, rxscan513_loop - rx512_cur."!mark_push"(0, rx512_pos, $I10) - rxscan513_done: - # rx charclass . - ge rx512_pos, rx512_eos, rx512_fail - inc rx512_pos + set rx503_pos, $P10 + ge rx503_pos, rx503_eos, rxscan506_done + rxscan506_scan: + set_addr $I10, rxscan506_loop + rx503_cur."!mark_push"(0, rx503_pos, $I10) + rxscan506_done: +.annotate 'line', 170 + # rx subcapture "sign" + set_addr $I10, rxcap_508_fail + rx503_cur."!mark_push"(0, rx503_pos, $I10) + alt507_0: + set_addr $I10, alt507_1 + rx503_cur."!mark_push"(0, rx503_pos, $I10) + # rx literal "+" + add $I11, rx503_pos, 1 + gt $I11, rx503_eos, rx503_fail + sub $I11, rx503_pos, rx503_off + ord $I11, rx503_tgt, $I11 + ne $I11, 43, rx503_fail + add rx503_pos, 1 + goto alt507_end + alt507_1: + set_addr $I10, alt507_2 + rx503_cur."!mark_push"(0, rx503_pos, $I10) + # rx literal "-" + add $I11, rx503_pos, 1 + gt $I11, rx503_eos, rx503_fail + sub $I11, rx503_pos, rx503_off + ord $I11, rx503_tgt, $I11 + ne $I11, 45, rx503_fail + add rx503_pos, 1 + goto alt507_end + alt507_2: + alt507_end: + set_addr $I10, rxcap_508_fail + ($I12, $I11) = rx503_cur."!mark_peek"($I10) + rx503_cur."!cursor_pos"($I11) + ($P10) = rx503_cur."!cursor_start"() + $P10."!cursor_pass"(rx503_pos, "") + rx503_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("sign") + goto rxcap_508_done + rxcap_508_fail: + goto rx503_fail + rxcap_508_done: +.annotate 'line', 171 + # rx rxquantr509 ** 0..1 + set_addr $I10, rxquantr509_done + rx503_cur."!mark_push"(0, rx503_pos, $I10) + rxquantr509_loop: + # rx subrule "normspace" subtype=method negate= + rx503_cur."!cursor_pos"(rx503_pos) + $P10 = rx503_cur."normspace"() + unless $P10, rx503_fail + goto rxsubrule510_pass + rxsubrule510_back: + $P10 = $P10."!cursor_next"() + unless $P10, rx503_fail + rxsubrule510_pass: + set_addr $I10, rxsubrule510_back + rx503_cur."!mark_push"(0, rx503_pos, $I10, $P10) + rx503_pos = $P10."pos"() + set_addr $I10, rxquantr509_done + (rx503_rep) = rx503_cur."!mark_commit"($I10) + rxquantr509_done: + alt511_0: +.annotate 'line', 172 + set_addr $I10, alt511_1 + rx503_cur."!mark_push"(0, rx503_pos, $I10) +.annotate 'line', 173 + # rx literal "[" + add $I11, rx503_pos, 1 + gt $I11, rx503_eos, rx503_fail + sub $I11, rx503_pos, rx503_off + ord $I11, rx503_tgt, $I11 + ne $I11, 91, rx503_fail + add rx503_pos, 1 +.annotate 'line', 176 + # rx rxquantr512 ** 0..* + set_addr $I10, rxquantr512_done + rx503_cur."!mark_push"(0, rx503_pos, $I10) + rxquantr512_loop: +.annotate 'line', 173 + # rx subrule $P514 subtype=capture negate= + rx503_cur."!cursor_pos"(rx503_pos) + .const 'Sub' $P514 = "147_1282323996.47527" + capture_lex $P514 + $P10 = rx503_cur.$P514() + unless $P10, rx503_fail + goto rxsubrule532_pass + rxsubrule532_back: + $P10 = $P10."!cursor_next"() + unless $P10, rx503_fail + rxsubrule532_pass: + set_addr $I10, rxsubrule532_back + rx503_cur."!mark_push"(0, rx503_pos, $I10, $P10) + $P10."!cursor_names"("charspec") + rx503_pos = $P10."pos"() +.annotate 'line', 176 + set_addr $I10, rxquantr512_done + (rx503_rep) = rx503_cur."!mark_commit"($I10) + set_addr $I10, rxquantr512_done + rx503_cur."!mark_push"(rx503_rep, rx503_pos, $I10) + goto rxquantr512_loop + rxquantr512_done: +.annotate 'line', 177 + # rx charclass_q s r 0..-1 + sub $I10, rx503_pos, rx503_off + find_not_cclass $I11, 32, rx503_tgt, $I10, rx503_eos + add rx503_pos, rx503_off, $I11 + # rx literal "]" + add $I11, rx503_pos, 1 + gt $I11, rx503_eos, rx503_fail + sub $I11, rx503_pos, rx503_off + ord $I11, rx503_tgt, $I11 + ne $I11, 93, rx503_fail + add rx503_pos, 1 +.annotate 'line', 173 + goto alt511_end + alt511_1: +.annotate 'line', 178 + # rx subcapture "name" + set_addr $I10, rxcap_533_fail + rx503_cur."!mark_push"(0, rx503_pos, $I10) + # rx charclass_q w r 1..-1 + sub $I10, rx503_pos, rx503_off + find_not_cclass $I11, 8192, rx503_tgt, $I10, rx503_eos + add $I12, $I10, 1 + lt $I11, $I12, rx503_fail + add rx503_pos, rx503_off, $I11 + set_addr $I10, rxcap_533_fail + ($I12, $I11) = rx503_cur."!mark_peek"($I10) + rx503_cur."!cursor_pos"($I11) + ($P10) = rx503_cur."!cursor_start"() + $P10."!cursor_pass"(rx503_pos, "") + rx503_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("name") + goto rxcap_533_done + rxcap_533_fail: + goto rx503_fail + rxcap_533_done: + alt511_end: +.annotate 'line', 180 + # rx rxquantr534 ** 0..1 + set_addr $I10, rxquantr534_done + rx503_cur."!mark_push"(0, rx503_pos, $I10) + rxquantr534_loop: + # rx subrule "normspace" subtype=method negate= + rx503_cur."!cursor_pos"(rx503_pos) + $P10 = rx503_cur."normspace"() + unless $P10, rx503_fail + goto rxsubrule535_pass + rxsubrule535_back: + $P10 = $P10."!cursor_next"() + unless $P10, rx503_fail + rxsubrule535_pass: + set_addr $I10, rxsubrule535_back + rx503_cur."!mark_push"(0, rx503_pos, $I10, $P10) + rx503_pos = $P10."pos"() + set_addr $I10, rxquantr534_done + (rx503_rep) = rx503_cur."!mark_commit"($I10) + rxquantr534_done: +.annotate 'line', 169 # rx pass - rx512_cur."!cursor_pass"(rx512_pos, "") - if_null rx512_debug, debug_427 - rx512_cur."!cursor_debug"("PASS ", "", " at pos=", rx512_pos) - debug_427: - .return (rx512_cur) - rx512_restart: - if_null rx512_debug, debug_428 - rx512_cur."!cursor_debug"("NEXT ", "") - debug_428: - rx512_fail: - (rx512_rep, rx512_pos, $I10, $P10) = rx512_cur."!mark_fail"(0) - lt rx512_pos, -1, rx512_done - eq rx512_pos, -1, rx512_fail + rx503_cur."!cursor_pass"(rx503_pos, "cclass_elem") + if_null rx503_debug, debug_447 + rx503_cur."!cursor_debug"("PASS", "cclass_elem", " at pos=", rx503_pos) + debug_447: + .return (rx503_cur) + rx503_restart: +.annotate 'line', 3 + if_null rx503_debug, debug_448 + rx503_cur."!cursor_debug"("NEXT", "cclass_elem") + debug_448: + rx503_fail: + (rx503_rep, rx503_pos, $I10, $P10) = rx503_cur."!mark_fail"(0) + lt rx503_pos, -1, rx503_done + eq rx503_pos, -1, rx503_fail jump $I10 - rx512_done: - rx512_cur."!cursor_fail"() - if_null rx512_debug, debug_429 - rx512_cur."!cursor_debug"("FAIL ", "") - debug_429: - .return (rx512_cur) + rx503_done: + rx503_cur."!cursor_fail"() + if_null rx503_debug, debug_449 + rx503_cur."!cursor_debug"("FAIL", "cclass_elem") + debug_449: + .return (rx503_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block514" :anon :subid("147_1282016522.91354") :method :outer("145_1282016522.91354") -.annotate 'line', 168 - .local string rx516_tgt - .local int rx516_pos - .local int rx516_off - .local int rx516_eos - .local int rx516_rep - .local pmc rx516_cur - .local pmc rx516_debug - (rx516_cur, rx516_pos, rx516_tgt, $I10) = self."!cursor_start"() - getattribute rx516_debug, rx516_cur, "$!debug" - .lex unicode:"$\x{a2}", rx516_cur +.sub "!PREFIX__cclass_elem" :subid("146_1282323996.47527") :method +.annotate 'line', 3 + new $P505, "ResizablePMCArray" + push $P505, "" + push $P505, "-" + push $P505, "+" + .return ($P505) +.end + + +.namespace ["Regex";"P6Regex";"Grammar"] +.sub "_block513" :anon :subid("147_1282323996.47527") :method :outer("145_1282323996.47527") +.annotate 'line', 173 + .const 'Sub' $P529 = "150_1282323996.47527" + capture_lex $P529 + .const 'Sub' $P524 = "149_1282323996.47527" + capture_lex $P524 + .const 'Sub' $P520 = "148_1282323996.47527" + capture_lex $P520 + .local string rx515_tgt + .local int rx515_pos + .local int rx515_off + .local int rx515_eos + .local int rx515_rep + .local pmc rx515_cur + .local pmc rx515_debug + (rx515_cur, rx515_pos, rx515_tgt, $I10) = self."!cursor_start"() + rx515_cur."!cursor_caparray"("1") + getattribute rx515_debug, rx515_cur, "$!debug" + .lex unicode:"$\x{a2}", rx515_cur .local pmc match .lex "$/", match - length rx516_eos, rx516_tgt - gt rx516_pos, rx516_eos, rx516_done - set rx516_off, 0 - lt rx516_pos, 2, rx516_start - sub rx516_off, rx516_pos, 1 - substr rx516_tgt, rx516_tgt, rx516_off - rx516_start: - eq $I10, 1, rx516_restart - if_null rx516_debug, debug_430 - rx516_cur."!cursor_debug"("START ", "") - debug_430: + length rx515_eos, rx515_tgt + gt rx515_pos, rx515_eos, rx515_done + set rx515_off, 0 + lt rx515_pos, 2, rx515_start + sub rx515_off, rx515_pos, 1 + substr rx515_tgt, rx515_tgt, rx515_off + rx515_start: + eq $I10, 1, rx515_restart + if_null rx515_debug, debug_431 + rx515_cur."!cursor_debug"("START", "") + debug_431: $I10 = self.'from'() - ne $I10, -1, rxscan517_done - goto rxscan517_scan - rxscan517_loop: - ($P10) = rx516_cur."from"() + ne $I10, -1, rxscan516_done + goto rxscan516_scan + rxscan516_loop: + ($P10) = rx515_cur."from"() inc $P10 - set rx516_pos, $P10 - ge rx516_pos, rx516_eos, rxscan517_done - rxscan517_scan: - set_addr $I10, rxscan517_loop - rx516_cur."!mark_push"(0, rx516_pos, $I10) - rxscan517_done: - # rx enumcharlist negate=1 - ge rx516_pos, rx516_eos, rx516_fail - sub $I10, rx516_pos, rx516_off - substr $S10, rx516_tgt, $I10, 1 - index $I11, "]\\", $S10 - ge $I11, 0, rx516_fail - inc rx516_pos + set rx515_pos, $P10 + ge rx515_pos, rx515_eos, rxscan516_done + rxscan516_scan: + set_addr $I10, rxscan516_loop + rx515_cur."!mark_push"(0, rx515_pos, $I10) + rxscan516_done: + alt517_0: + set_addr $I10, alt517_1 + rx515_cur."!mark_push"(0, rx515_pos, $I10) +.annotate 'line', 174 + # rx charclass_q s r 0..-1 + sub $I10, rx515_pos, rx515_off + find_not_cclass $I11, 32, rx515_tgt, $I10, rx515_eos + add rx515_pos, rx515_off, $I11 + # rx literal "-" + add $I11, rx515_pos, 1 + gt $I11, rx515_eos, rx515_fail + sub $I11, rx515_pos, rx515_off + ord $I11, rx515_tgt, $I11 + ne $I11, 45, rx515_fail + add rx515_pos, 1 + # rx subrule "obs" subtype=method negate= + rx515_cur."!cursor_pos"(rx515_pos) + $P10 = rx515_cur."obs"("- as character range", "..") + unless $P10, rx515_fail + rx515_pos = $P10."pos"() + goto alt517_end + alt517_1: +.annotate 'line', 175 + # rx charclass_q s r 0..-1 + sub $I10, rx515_pos, rx515_off + find_not_cclass $I11, 32, rx515_tgt, $I10, rx515_eos + add rx515_pos, rx515_off, $I11 + alt518_0: + set_addr $I10, alt518_1 + rx515_cur."!mark_push"(0, rx515_pos, $I10) + # rx literal "\\" + add $I11, rx515_pos, 1 + gt $I11, rx515_eos, rx515_fail + sub $I11, rx515_pos, rx515_off + ord $I11, rx515_tgt, $I11 + ne $I11, 92, rx515_fail + add rx515_pos, 1 + # rx subrule $P520 subtype=capture negate= + rx515_cur."!cursor_pos"(rx515_pos) + .const 'Sub' $P520 = "148_1282323996.47527" + capture_lex $P520 + $P10 = rx515_cur.$P520() + unless $P10, rx515_fail + rx515_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"(0) + rx515_pos = $P10."pos"() + goto alt518_end + alt518_1: + # rx subrule $P524 subtype=capture negate= + rx515_cur."!cursor_pos"(rx515_pos) + .const 'Sub' $P524 = "149_1282323996.47527" + capture_lex $P524 + $P10 = rx515_cur.$P524() + unless $P10, rx515_fail + rx515_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"(0) + rx515_pos = $P10."pos"() + alt518_end: + # rx rxquantr527 ** 0..1 + set_addr $I10, rxquantr527_done + rx515_cur."!mark_push"(0, rx515_pos, $I10) + rxquantr527_loop: + # rx charclass_q s r 0..-1 + sub $I10, rx515_pos, rx515_off + find_not_cclass $I11, 32, rx515_tgt, $I10, rx515_eos + add rx515_pos, rx515_off, $I11 + # rx literal ".." + add $I11, rx515_pos, 2 + gt $I11, rx515_eos, rx515_fail + sub $I11, rx515_pos, rx515_off + substr $S10, rx515_tgt, $I11, 2 + ne $S10, "..", rx515_fail + add rx515_pos, 2 + # rx charclass_q s r 0..-1 + sub $I10, rx515_pos, rx515_off + find_not_cclass $I11, 32, rx515_tgt, $I10, rx515_eos + add rx515_pos, rx515_off, $I11 + # rx subrule $P529 subtype=capture negate= + rx515_cur."!cursor_pos"(rx515_pos) + .const 'Sub' $P529 = "150_1282323996.47527" + capture_lex $P529 + $P10 = rx515_cur.$P529() + unless $P10, rx515_fail + rx515_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("1") + rx515_pos = $P10."pos"() + set_addr $I10, rxquantr527_done + (rx515_rep) = rx515_cur."!mark_commit"($I10) + rxquantr527_done: + alt517_end: +.annotate 'line', 173 # rx pass - rx516_cur."!cursor_pass"(rx516_pos, "") - if_null rx516_debug, debug_431 - rx516_cur."!cursor_debug"("PASS ", "", " at pos=", rx516_pos) - debug_431: - .return (rx516_cur) - rx516_restart: - if_null rx516_debug, debug_432 - rx516_cur."!cursor_debug"("NEXT ", "") - debug_432: - rx516_fail: - (rx516_rep, rx516_pos, $I10, $P10) = rx516_cur."!mark_fail"(0) - lt rx516_pos, -1, rx516_done - eq rx516_pos, -1, rx516_fail + rx515_cur."!cursor_pass"(rx515_pos, "") + if_null rx515_debug, debug_444 + rx515_cur."!cursor_debug"("PASS", "", " at pos=", rx515_pos) + debug_444: + .return (rx515_cur) + rx515_restart: + if_null rx515_debug, debug_445 + rx515_cur."!cursor_debug"("NEXT", "") + debug_445: + rx515_fail: + (rx515_rep, rx515_pos, $I10, $P10) = rx515_cur."!mark_fail"(0) + lt rx515_pos, -1, rx515_done + eq rx515_pos, -1, rx515_fail jump $I10 - rx516_done: - rx516_cur."!cursor_fail"() - if_null rx516_debug, debug_433 - rx516_cur."!cursor_debug"("FAIL ", "") - debug_433: - .return (rx516_cur) + rx515_done: + rx515_cur."!cursor_fail"() + if_null rx515_debug, debug_446 + rx515_cur."!cursor_debug"("FAIL", "") + debug_446: + .return (rx515_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block519" :anon :subid("148_1282016522.91354") :method :outer("145_1282016522.91354") -.annotate 'line', 168 +.sub "_block519" :anon :subid("148_1282323996.47527") :method :outer("147_1282323996.47527") +.annotate 'line', 175 .local string rx521_tgt .local int rx521_pos .local int rx521_off @@ -7750,9 +7746,9 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx521_tgt, rx521_tgt, rx521_off rx521_start: eq $I10, 1, rx521_restart - if_null rx521_debug, debug_434 - rx521_cur."!cursor_debug"("START ", "") - debug_434: + if_null rx521_debug, debug_432 + rx521_cur."!cursor_debug"("START", "") + debug_432: $I10 = self.'from'() ne $I10, -1, rxscan522_done goto rxscan522_scan @@ -7770,14 +7766,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes inc rx521_pos # rx pass rx521_cur."!cursor_pass"(rx521_pos, "") - if_null rx521_debug, debug_435 - rx521_cur."!cursor_debug"("PASS ", "", " at pos=", rx521_pos) - debug_435: + if_null rx521_debug, debug_433 + rx521_cur."!cursor_debug"("PASS", "", " at pos=", rx521_pos) + debug_433: .return (rx521_cur) rx521_restart: - if_null rx521_debug, debug_436 - rx521_cur."!cursor_debug"("NEXT ", "") - debug_436: + if_null rx521_debug, debug_434 + rx521_cur."!cursor_debug"("NEXT", "") + debug_434: rx521_fail: (rx521_rep, rx521_pos, $I10, $P10) = rx521_cur."!mark_fail"(0) lt rx521_pos, -1, rx521_done @@ -7785,204 +7781,155 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx521_done: rx521_cur."!cursor_fail"() - if_null rx521_debug, debug_437 - rx521_cur."!cursor_debug"("FAIL ", "") - debug_437: + if_null rx521_debug, debug_435 + rx521_cur."!cursor_debug"("FAIL", "") + debug_435: .return (rx521_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_internal" :subid("149_1282016522.91354") :method :outer("11_1282016522.91354") -.annotate 'line', 3 - .const 'Sub' $P536 = "151_1282016522.91354" - capture_lex $P536 - .local string rx528_tgt - .local int rx528_pos - .local int rx528_off - .local int rx528_eos - .local int rx528_rep - .local pmc rx528_cur - .local pmc rx528_debug - (rx528_cur, rx528_pos, rx528_tgt, $I10) = self."!cursor_start"() - rx528_cur."!cursor_caparray"("n") - getattribute rx528_debug, rx528_cur, "$!debug" - .lex unicode:"$\x{a2}", rx528_cur +.sub "_block523" :anon :subid("149_1282323996.47527") :method :outer("147_1282323996.47527") +.annotate 'line', 175 + .local string rx525_tgt + .local int rx525_pos + .local int rx525_off + .local int rx525_eos + .local int rx525_rep + .local pmc rx525_cur + .local pmc rx525_debug + (rx525_cur, rx525_pos, rx525_tgt, $I10) = self."!cursor_start"() + getattribute rx525_debug, rx525_cur, "$!debug" + .lex unicode:"$\x{a2}", rx525_cur .local pmc match .lex "$/", match - length rx528_eos, rx528_tgt - gt rx528_pos, rx528_eos, rx528_done - set rx528_off, 0 - lt rx528_pos, 2, rx528_start - sub rx528_off, rx528_pos, 1 - substr rx528_tgt, rx528_tgt, rx528_off - rx528_start: - eq $I10, 1, rx528_restart - if_null rx528_debug, debug_444 - rx528_cur."!cursor_debug"("START ", "mod_internal") - debug_444: + length rx525_eos, rx525_tgt + gt rx525_pos, rx525_eos, rx525_done + set rx525_off, 0 + lt rx525_pos, 2, rx525_start + sub rx525_off, rx525_pos, 1 + substr rx525_tgt, rx525_tgt, rx525_off + rx525_start: + eq $I10, 1, rx525_restart + if_null rx525_debug, debug_436 + rx525_cur."!cursor_debug"("START", "") + debug_436: $I10 = self.'from'() - ne $I10, -1, rxscan532_done - goto rxscan532_scan - rxscan532_loop: - ($P10) = rx528_cur."from"() + ne $I10, -1, rxscan526_done + goto rxscan526_scan + rxscan526_loop: + ($P10) = rx525_cur."from"() inc $P10 - set rx528_pos, $P10 - ge rx528_pos, rx528_eos, rxscan532_done - rxscan532_scan: - set_addr $I10, rxscan532_loop - rx528_cur."!mark_push"(0, rx528_pos, $I10) - rxscan532_done: - alt533_0: -.annotate 'line', 177 - set_addr $I10, alt533_1 - rx528_cur."!mark_push"(0, rx528_pos, $I10) -.annotate 'line', 178 - # rx literal ":" - add $I11, rx528_pos, 1 - gt $I11, rx528_eos, rx528_fail - sub $I11, rx528_pos, rx528_off - ord $I11, rx528_tgt, $I11 - ne $I11, 58, rx528_fail - add rx528_pos, 1 - # rx rxquantr534 ** 1..1 - set_addr $I10, rxquantr534_done - rx528_cur."!mark_push"(0, -1, $I10) - rxquantr534_loop: - # rx subrule $P536 subtype=capture negate= - rx528_cur."!cursor_pos"(rx528_pos) - .const 'Sub' $P536 = "151_1282016522.91354" - capture_lex $P536 - $P10 = rx528_cur.$P536() - unless $P10, rx528_fail - goto rxsubrule540_pass - rxsubrule540_back: - $P10 = $P10."!cursor_next"() - unless $P10, rx528_fail - rxsubrule540_pass: - set_addr $I10, rxsubrule540_back - rx528_cur."!mark_push"(0, rx528_pos, $I10, $P10) - $P10."!cursor_names"("n") - rx528_pos = $P10."pos"() - set_addr $I10, rxquantr534_done - (rx528_rep) = rx528_cur."!mark_commit"($I10) - rxquantr534_done: - # rx subrule "mod_ident" subtype=capture negate= - rx528_cur."!cursor_pos"(rx528_pos) - $P10 = rx528_cur."mod_ident"() - unless $P10, rx528_fail - rx528_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("mod_ident") - rx528_pos = $P10."pos"() - # rxanchor rwb - le rx528_pos, 0, rx528_fail - sub $I10, rx528_pos, rx528_off - is_cclass $I11, 8192, rx528_tgt, $I10 - if $I11, rx528_fail - dec $I10 - is_cclass $I11, 8192, rx528_tgt, $I10 - unless $I11, rx528_fail - goto alt533_end - alt533_1: -.annotate 'line', 179 - # rx literal ":" - add $I11, rx528_pos, 1 - gt $I11, rx528_eos, rx528_fail - sub $I11, rx528_pos, rx528_off - ord $I11, rx528_tgt, $I11 - ne $I11, 58, rx528_fail - add rx528_pos, 1 - # rx subrule "mod_ident" subtype=capture negate= - rx528_cur."!cursor_pos"(rx528_pos) - $P10 = rx528_cur."mod_ident"() - unless $P10, rx528_fail - rx528_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("mod_ident") - rx528_pos = $P10."pos"() - # rx rxquantr541 ** 0..1 - set_addr $I10, rxquantr541_done - rx528_cur."!mark_push"(0, rx528_pos, $I10) - rxquantr541_loop: - # rx literal "(" - add $I11, rx528_pos, 1 - gt $I11, rx528_eos, rx528_fail - sub $I11, rx528_pos, rx528_off - ord $I11, rx528_tgt, $I11 - ne $I11, 40, rx528_fail - add rx528_pos, 1 - # rx subcapture "n" - set_addr $I10, rxcap_542_fail - rx528_cur."!mark_push"(0, rx528_pos, $I10) - # rx charclass_q d r 1..-1 - sub $I10, rx528_pos, rx528_off - find_not_cclass $I11, 8, rx528_tgt, $I10, rx528_eos - add $I12, $I10, 1 - lt $I11, $I12, rx528_fail - add rx528_pos, rx528_off, $I11 - set_addr $I10, rxcap_542_fail - ($I12, $I11) = rx528_cur."!mark_peek"($I10) - rx528_cur."!cursor_pos"($I11) - ($P10) = rx528_cur."!cursor_start"() - $P10."!cursor_pass"(rx528_pos, "") - rx528_cur."!mark_push"(0, -1, 0, $P10) - $P10."!cursor_names"("n") - goto rxcap_542_done - rxcap_542_fail: - goto rx528_fail - rxcap_542_done: - # rx literal ")" - add $I11, rx528_pos, 1 - gt $I11, rx528_eos, rx528_fail - sub $I11, rx528_pos, rx528_off - ord $I11, rx528_tgt, $I11 - ne $I11, 41, rx528_fail - add rx528_pos, 1 - set_addr $I10, rxquantr541_done - (rx528_rep) = rx528_cur."!mark_commit"($I10) - rxquantr541_done: - alt533_end: -.annotate 'line', 176 + set rx525_pos, $P10 + ge rx525_pos, rx525_eos, rxscan526_done + rxscan526_scan: + set_addr $I10, rxscan526_loop + rx525_cur."!mark_push"(0, rx525_pos, $I10) + rxscan526_done: + # rx enumcharlist negate=1 + ge rx525_pos, rx525_eos, rx525_fail + sub $I10, rx525_pos, rx525_off + substr $S10, rx525_tgt, $I10, 1 + index $I11, "]\\", $S10 + ge $I11, 0, rx525_fail + inc rx525_pos # rx pass - rx528_cur."!cursor_pass"(rx528_pos, "mod_internal") - if_null rx528_debug, debug_449 - rx528_cur."!cursor_debug"("PASS ", "mod_internal", " at pos=", rx528_pos) - debug_449: - .return (rx528_cur) - rx528_restart: -.annotate 'line', 3 - if_null rx528_debug, debug_450 - rx528_cur."!cursor_debug"("NEXT ", "mod_internal") - debug_450: - rx528_fail: - (rx528_rep, rx528_pos, $I10, $P10) = rx528_cur."!mark_fail"(0) - lt rx528_pos, -1, rx528_done - eq rx528_pos, -1, rx528_fail + rx525_cur."!cursor_pass"(rx525_pos, "") + if_null rx525_debug, debug_437 + rx525_cur."!cursor_debug"("PASS", "", " at pos=", rx525_pos) + debug_437: + .return (rx525_cur) + rx525_restart: + if_null rx525_debug, debug_438 + rx525_cur."!cursor_debug"("NEXT", "") + debug_438: + rx525_fail: + (rx525_rep, rx525_pos, $I10, $P10) = rx525_cur."!mark_fail"(0) + lt rx525_pos, -1, rx525_done + eq rx525_pos, -1, rx525_fail jump $I10 - rx528_done: - rx528_cur."!cursor_fail"() - if_null rx528_debug, debug_451 - rx528_cur."!cursor_debug"("FAIL ", "mod_internal") - debug_451: - .return (rx528_cur) + rx525_done: + rx525_cur."!cursor_fail"() + if_null rx525_debug, debug_439 + rx525_cur."!cursor_debug"("FAIL", "") + debug_439: + .return (rx525_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_internal" :subid("150_1282016522.91354") :method -.annotate 'line', 3 - $P530 = self."!PREFIX__!subrule"("mod_ident", ":") - new $P531, "ResizablePMCArray" - push $P531, $P530 - push $P531, ":" - .return ($P531) +.sub "_block528" :anon :subid("150_1282323996.47527") :method :outer("147_1282323996.47527") +.annotate 'line', 175 + .local string rx530_tgt + .local int rx530_pos + .local int rx530_off + .local int rx530_eos + .local int rx530_rep + .local pmc rx530_cur + .local pmc rx530_debug + (rx530_cur, rx530_pos, rx530_tgt, $I10) = self."!cursor_start"() + getattribute rx530_debug, rx530_cur, "$!debug" + .lex unicode:"$\x{a2}", rx530_cur + .local pmc match + .lex "$/", match + length rx530_eos, rx530_tgt + gt rx530_pos, rx530_eos, rx530_done + set rx530_off, 0 + lt rx530_pos, 2, rx530_start + sub rx530_off, rx530_pos, 1 + substr rx530_tgt, rx530_tgt, rx530_off + rx530_start: + eq $I10, 1, rx530_restart + if_null rx530_debug, debug_440 + rx530_cur."!cursor_debug"("START", "") + debug_440: + $I10 = self.'from'() + ne $I10, -1, rxscan531_done + goto rxscan531_scan + rxscan531_loop: + ($P10) = rx530_cur."from"() + inc $P10 + set rx530_pos, $P10 + ge rx530_pos, rx530_eos, rxscan531_done + rxscan531_scan: + set_addr $I10, rxscan531_loop + rx530_cur."!mark_push"(0, rx530_pos, $I10) + rxscan531_done: + # rx charclass . + ge rx530_pos, rx530_eos, rx530_fail + inc rx530_pos + # rx pass + rx530_cur."!cursor_pass"(rx530_pos, "") + if_null rx530_debug, debug_441 + rx530_cur."!cursor_debug"("PASS", "", " at pos=", rx530_pos) + debug_441: + .return (rx530_cur) + rx530_restart: + if_null rx530_debug, debug_442 + rx530_cur."!cursor_debug"("NEXT", "") + debug_442: + rx530_fail: + (rx530_rep, rx530_pos, $I10, $P10) = rx530_cur."!mark_fail"(0) + lt rx530_pos, -1, rx530_done + eq rx530_pos, -1, rx530_fail + jump $I10 + rx530_done: + rx530_cur."!cursor_fail"() + if_null rx530_debug, debug_443 + rx530_cur."!cursor_debug"("FAIL", "") + debug_443: + .return (rx530_cur) + .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block535" :anon :subid("151_1282016522.91354") :method :outer("149_1282016522.91354") -.annotate 'line', 178 +.sub "mod_internal" :subid("151_1282323996.47527") :method :outer("11_1282323996.47527") +.annotate 'line', 3 + .const 'Sub' $P545 = "153_1282323996.47527" + capture_lex $P545 .local string rx537_tgt .local int rx537_pos .local int rx537_off @@ -7991,6 +7938,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .local pmc rx537_cur .local pmc rx537_debug (rx537_cur, rx537_pos, rx537_tgt, $I10) = self."!cursor_start"() + rx537_cur."!cursor_caparray"("n") getattribute rx537_debug, rx537_cur, "$!debug" .lex unicode:"$\x{a2}", rx537_cur .local pmc match @@ -8003,50 +7951,141 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes substr rx537_tgt, rx537_tgt, rx537_off rx537_start: eq $I10, 1, rx537_restart - if_null rx537_debug, debug_445 - rx537_cur."!cursor_debug"("START ", "") - debug_445: + if_null rx537_debug, debug_450 + rx537_cur."!cursor_debug"("START", "mod_internal") + debug_450: $I10 = self.'from'() - ne $I10, -1, rxscan538_done - goto rxscan538_scan - rxscan538_loop: + ne $I10, -1, rxscan541_done + goto rxscan541_scan + rxscan541_loop: ($P10) = rx537_cur."from"() inc $P10 set rx537_pos, $P10 - ge rx537_pos, rx537_eos, rxscan538_done - rxscan538_scan: - set_addr $I10, rxscan538_loop + ge rx537_pos, rx537_eos, rxscan541_done + rxscan541_scan: + set_addr $I10, rxscan541_loop rx537_cur."!mark_push"(0, rx537_pos, $I10) - rxscan538_done: - alt539_0: - set_addr $I10, alt539_1 + rxscan541_done: + alt542_0: +.annotate 'line', 184 + set_addr $I10, alt542_1 rx537_cur."!mark_push"(0, rx537_pos, $I10) - # rx literal "!" +.annotate 'line', 185 + # rx literal ":" + add $I11, rx537_pos, 1 + gt $I11, rx537_eos, rx537_fail + sub $I11, rx537_pos, rx537_off + ord $I11, rx537_tgt, $I11 + ne $I11, 58, rx537_fail + add rx537_pos, 1 + # rx rxquantr543 ** 1..1 + set_addr $I10, rxquantr543_done + rx537_cur."!mark_push"(0, -1, $I10) + rxquantr543_loop: + # rx subrule $P545 subtype=capture negate= + rx537_cur."!cursor_pos"(rx537_pos) + .const 'Sub' $P545 = "153_1282323996.47527" + capture_lex $P545 + $P10 = rx537_cur.$P545() + unless $P10, rx537_fail + goto rxsubrule549_pass + rxsubrule549_back: + $P10 = $P10."!cursor_next"() + unless $P10, rx537_fail + rxsubrule549_pass: + set_addr $I10, rxsubrule549_back + rx537_cur."!mark_push"(0, rx537_pos, $I10, $P10) + $P10."!cursor_names"("n") + rx537_pos = $P10."pos"() + set_addr $I10, rxquantr543_done + (rx537_rep) = rx537_cur."!mark_commit"($I10) + rxquantr543_done: + # rx subrule "mod_ident" subtype=capture negate= + rx537_cur."!cursor_pos"(rx537_pos) + $P10 = rx537_cur."mod_ident"() + unless $P10, rx537_fail + rx537_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("mod_ident") + rx537_pos = $P10."pos"() + # rxanchor rwb + le rx537_pos, 0, rx537_fail + sub $I10, rx537_pos, rx537_off + is_cclass $I11, 8192, rx537_tgt, $I10 + if $I11, rx537_fail + dec $I10 + is_cclass $I11, 8192, rx537_tgt, $I10 + unless $I11, rx537_fail + goto alt542_end + alt542_1: +.annotate 'line', 186 + # rx literal ":" + add $I11, rx537_pos, 1 + gt $I11, rx537_eos, rx537_fail + sub $I11, rx537_pos, rx537_off + ord $I11, rx537_tgt, $I11 + ne $I11, 58, rx537_fail + add rx537_pos, 1 + # rx subrule "mod_ident" subtype=capture negate= + rx537_cur."!cursor_pos"(rx537_pos) + $P10 = rx537_cur."mod_ident"() + unless $P10, rx537_fail + rx537_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("mod_ident") + rx537_pos = $P10."pos"() + # rx rxquantr550 ** 0..1 + set_addr $I10, rxquantr550_done + rx537_cur."!mark_push"(0, rx537_pos, $I10) + rxquantr550_loop: + # rx literal "(" add $I11, rx537_pos, 1 gt $I11, rx537_eos, rx537_fail sub $I11, rx537_pos, rx537_off ord $I11, rx537_tgt, $I11 - ne $I11, 33, rx537_fail + ne $I11, 40, rx537_fail add rx537_pos, 1 - goto alt539_end - alt539_1: + # rx subcapture "n" + set_addr $I10, rxcap_551_fail + rx537_cur."!mark_push"(0, rx537_pos, $I10) # rx charclass_q d r 1..-1 sub $I10, rx537_pos, rx537_off find_not_cclass $I11, 8, rx537_tgt, $I10, rx537_eos add $I12, $I10, 1 lt $I11, $I12, rx537_fail add rx537_pos, rx537_off, $I11 - alt539_end: + set_addr $I10, rxcap_551_fail + ($I12, $I11) = rx537_cur."!mark_peek"($I10) + rx537_cur."!cursor_pos"($I11) + ($P10) = rx537_cur."!cursor_start"() + $P10."!cursor_pass"(rx537_pos, "") + rx537_cur."!mark_push"(0, -1, 0, $P10) + $P10."!cursor_names"("n") + goto rxcap_551_done + rxcap_551_fail: + goto rx537_fail + rxcap_551_done: + # rx literal ")" + add $I11, rx537_pos, 1 + gt $I11, rx537_eos, rx537_fail + sub $I11, rx537_pos, rx537_off + ord $I11, rx537_tgt, $I11 + ne $I11, 41, rx537_fail + add rx537_pos, 1 + set_addr $I10, rxquantr550_done + (rx537_rep) = rx537_cur."!mark_commit"($I10) + rxquantr550_done: + alt542_end: +.annotate 'line', 183 # rx pass - rx537_cur."!cursor_pass"(rx537_pos, "") - if_null rx537_debug, debug_446 - rx537_cur."!cursor_debug"("PASS ", "", " at pos=", rx537_pos) - debug_446: + rx537_cur."!cursor_pass"(rx537_pos, "mod_internal") + if_null rx537_debug, debug_455 + rx537_cur."!cursor_debug"("PASS", "mod_internal", " at pos=", rx537_pos) + debug_455: .return (rx537_cur) rx537_restart: - if_null rx537_debug, debug_447 - rx537_cur."!cursor_debug"("NEXT ", "") - debug_447: +.annotate 'line', 3 + if_null rx537_debug, debug_456 + rx537_cur."!cursor_debug"("NEXT", "mod_internal") + debug_456: rx537_fail: (rx537_rep, rx537_pos, $I10, $P10) = rx537_cur."!mark_fail"(0) lt rx537_pos, -1, rx537_done @@ -8054,378 +8093,471 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes jump $I10 rx537_done: rx537_cur."!cursor_fail"() - if_null rx537_debug, debug_448 - rx537_cur."!cursor_debug"("FAIL ", "") - debug_448: + if_null rx537_debug, debug_457 + rx537_cur."!cursor_debug"("FAIL", "mod_internal") + debug_457: .return (rx537_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_ident" :subid("152_1282016522.91354") :method -.annotate 'line', 183 - $P544 = self."!protoregex"("mod_ident") - .return ($P544) +.sub "!PREFIX__mod_internal" :subid("152_1282323996.47527") :method +.annotate 'line', 3 + $P539 = self."!PREFIX__!subrule"("mod_ident", ":") + new $P540, "ResizablePMCArray" + push $P540, $P539 + push $P540, ":" + .return ($P540) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_ident" :subid("153_1282016522.91354") :method -.annotate 'line', 183 - $P546 = self."!PREFIX__!protoregex"("mod_ident") - .return ($P546) +.sub "_block544" :anon :subid("153_1282323996.47527") :method :outer("151_1282323996.47527") +.annotate 'line', 185 + .local string rx546_tgt + .local int rx546_pos + .local int rx546_off + .local int rx546_eos + .local int rx546_rep + .local pmc rx546_cur + .local pmc rx546_debug + (rx546_cur, rx546_pos, rx546_tgt, $I10) = self."!cursor_start"() + getattribute rx546_debug, rx546_cur, "$!debug" + .lex unicode:"$\x{a2}", rx546_cur + .local pmc match + .lex "$/", match + length rx546_eos, rx546_tgt + gt rx546_pos, rx546_eos, rx546_done + set rx546_off, 0 + lt rx546_pos, 2, rx546_start + sub rx546_off, rx546_pos, 1 + substr rx546_tgt, rx546_tgt, rx546_off + rx546_start: + eq $I10, 1, rx546_restart + if_null rx546_debug, debug_451 + rx546_cur."!cursor_debug"("START", "") + debug_451: + $I10 = self.'from'() + ne $I10, -1, rxscan547_done + goto rxscan547_scan + rxscan547_loop: + ($P10) = rx546_cur."from"() + inc $P10 + set rx546_pos, $P10 + ge rx546_pos, rx546_eos, rxscan547_done + rxscan547_scan: + set_addr $I10, rxscan547_loop + rx546_cur."!mark_push"(0, rx546_pos, $I10) + rxscan547_done: + alt548_0: + set_addr $I10, alt548_1 + rx546_cur."!mark_push"(0, rx546_pos, $I10) + # rx literal "!" + add $I11, rx546_pos, 1 + gt $I11, rx546_eos, rx546_fail + sub $I11, rx546_pos, rx546_off + ord $I11, rx546_tgt, $I11 + ne $I11, 33, rx546_fail + add rx546_pos, 1 + goto alt548_end + alt548_1: + # rx charclass_q d r 1..-1 + sub $I10, rx546_pos, rx546_off + find_not_cclass $I11, 8, rx546_tgt, $I10, rx546_eos + add $I12, $I10, 1 + lt $I11, $I12, rx546_fail + add rx546_pos, rx546_off, $I11 + alt548_end: + # rx pass + rx546_cur."!cursor_pass"(rx546_pos, "") + if_null rx546_debug, debug_452 + rx546_cur."!cursor_debug"("PASS", "", " at pos=", rx546_pos) + debug_452: + .return (rx546_cur) + rx546_restart: + if_null rx546_debug, debug_453 + rx546_cur."!cursor_debug"("NEXT", "") + debug_453: + rx546_fail: + (rx546_rep, rx546_pos, $I10, $P10) = rx546_cur."!mark_fail"(0) + lt rx546_pos, -1, rx546_done + eq rx546_pos, -1, rx546_fail + jump $I10 + rx546_done: + rx546_cur."!cursor_fail"() + if_null rx546_debug, debug_454 + rx546_cur."!cursor_debug"("FAIL", "") + debug_454: + .return (rx546_cur) + .return () +.end + + +.namespace ["Regex";"P6Regex";"Grammar"] +.sub "mod_ident" :subid("154_1282323996.47527") :method +.annotate 'line', 190 + $P553 = self."!protoregex"("mod_ident") + .return ($P553) +.end + + +.namespace ["Regex";"P6Regex";"Grammar"] +.sub "!PREFIX__mod_ident" :subid("155_1282323996.47527") :method +.annotate 'line', 190 + $P555 = self."!PREFIX__!protoregex"("mod_ident") + .return ($P555) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_ident:sym" :subid("154_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "mod_ident:sym" :subid("156_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx548_tgt - .local int rx548_pos - .local int rx548_off - .local int rx548_eos - .local int rx548_rep - .local pmc rx548_cur - .local pmc rx548_debug - (rx548_cur, rx548_pos, rx548_tgt, $I10) = self."!cursor_start"() - getattribute rx548_debug, rx548_cur, "$!debug" - .lex unicode:"$\x{a2}", rx548_cur + .local string rx557_tgt + .local int rx557_pos + .local int rx557_off + .local int rx557_eos + .local int rx557_rep + .local pmc rx557_cur + .local pmc rx557_debug + (rx557_cur, rx557_pos, rx557_tgt, $I10) = self."!cursor_start"() + getattribute rx557_debug, rx557_cur, "$!debug" + .lex unicode:"$\x{a2}", rx557_cur .local pmc match .lex "$/", match - length rx548_eos, rx548_tgt - gt rx548_pos, rx548_eos, rx548_done - set rx548_off, 0 - lt rx548_pos, 2, rx548_start - sub rx548_off, rx548_pos, 1 - substr rx548_tgt, rx548_tgt, rx548_off - rx548_start: - eq $I10, 1, rx548_restart - if_null rx548_debug, debug_452 - rx548_cur."!cursor_debug"("START ", "mod_ident:sym") - debug_452: + length rx557_eos, rx557_tgt + gt rx557_pos, rx557_eos, rx557_done + set rx557_off, 0 + lt rx557_pos, 2, rx557_start + sub rx557_off, rx557_pos, 1 + substr rx557_tgt, rx557_tgt, rx557_off + rx557_start: + eq $I10, 1, rx557_restart + if_null rx557_debug, debug_458 + rx557_cur."!cursor_debug"("START", "mod_ident:sym") + debug_458: $I10 = self.'from'() - ne $I10, -1, rxscan551_done - goto rxscan551_scan - rxscan551_loop: - ($P10) = rx548_cur."from"() + ne $I10, -1, rxscan560_done + goto rxscan560_scan + rxscan560_loop: + ($P10) = rx557_cur."from"() inc $P10 - set rx548_pos, $P10 - ge rx548_pos, rx548_eos, rxscan551_done - rxscan551_scan: - set_addr $I10, rxscan551_loop - rx548_cur."!mark_push"(0, rx548_pos, $I10) - rxscan551_done: -.annotate 'line', 184 + set rx557_pos, $P10 + ge rx557_pos, rx557_eos, rxscan560_done + rxscan560_scan: + set_addr $I10, rxscan560_loop + rx557_cur."!mark_push"(0, rx557_pos, $I10) + rxscan560_done: +.annotate 'line', 191 # rx subcapture "sym" - set_addr $I10, rxcap_552_fail - rx548_cur."!mark_push"(0, rx548_pos, $I10) + set_addr $I10, rxcap_561_fail + rx557_cur."!mark_push"(0, rx557_pos, $I10) # rx literal "i" - add $I11, rx548_pos, 1 - gt $I11, rx548_eos, rx548_fail - sub $I11, rx548_pos, rx548_off - ord $I11, rx548_tgt, $I11 - ne $I11, 105, rx548_fail - add rx548_pos, 1 - set_addr $I10, rxcap_552_fail - ($I12, $I11) = rx548_cur."!mark_peek"($I10) - rx548_cur."!cursor_pos"($I11) - ($P10) = rx548_cur."!cursor_start"() - $P10."!cursor_pass"(rx548_pos, "") - rx548_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx557_pos, 1 + gt $I11, rx557_eos, rx557_fail + sub $I11, rx557_pos, rx557_off + ord $I11, rx557_tgt, $I11 + ne $I11, 105, rx557_fail + add rx557_pos, 1 + set_addr $I10, rxcap_561_fail + ($I12, $I11) = rx557_cur."!mark_peek"($I10) + rx557_cur."!cursor_pos"($I11) + ($P10) = rx557_cur."!cursor_start"() + $P10."!cursor_pass"(rx557_pos, "") + rx557_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_552_done - rxcap_552_fail: - goto rx548_fail - rxcap_552_done: - # rx rxquantr553 ** 0..1 - set_addr $I10, rxquantr553_done - rx548_cur."!mark_push"(0, rx548_pos, $I10) - rxquantr553_loop: + goto rxcap_561_done + rxcap_561_fail: + goto rx557_fail + rxcap_561_done: + # rx rxquantr562 ** 0..1 + set_addr $I10, rxquantr562_done + rx557_cur."!mark_push"(0, rx557_pos, $I10) + rxquantr562_loop: # rx literal "gnorecase" - add $I11, rx548_pos, 9 - gt $I11, rx548_eos, rx548_fail - sub $I11, rx548_pos, rx548_off - substr $S10, rx548_tgt, $I11, 9 - ne $S10, "gnorecase", rx548_fail - add rx548_pos, 9 - set_addr $I10, rxquantr553_done - (rx548_rep) = rx548_cur."!mark_commit"($I10) - rxquantr553_done: + add $I11, rx557_pos, 9 + gt $I11, rx557_eos, rx557_fail + sub $I11, rx557_pos, rx557_off + substr $S10, rx557_tgt, $I11, 9 + ne $S10, "gnorecase", rx557_fail + add rx557_pos, 9 + set_addr $I10, rxquantr562_done + (rx557_rep) = rx557_cur."!mark_commit"($I10) + rxquantr562_done: # rx pass - rx548_cur."!cursor_pass"(rx548_pos, "mod_ident:sym") - if_null rx548_debug, debug_453 - rx548_cur."!cursor_debug"("PASS ", "mod_ident:sym", " at pos=", rx548_pos) - debug_453: - .return (rx548_cur) - rx548_restart: + rx557_cur."!cursor_pass"(rx557_pos, "mod_ident:sym") + if_null rx557_debug, debug_459 + rx557_cur."!cursor_debug"("PASS", "mod_ident:sym", " at pos=", rx557_pos) + debug_459: + .return (rx557_cur) + rx557_restart: .annotate 'line', 3 - if_null rx548_debug, debug_454 - rx548_cur."!cursor_debug"("NEXT ", "mod_ident:sym") - debug_454: - rx548_fail: - (rx548_rep, rx548_pos, $I10, $P10) = rx548_cur."!mark_fail"(0) - lt rx548_pos, -1, rx548_done - eq rx548_pos, -1, rx548_fail + if_null rx557_debug, debug_460 + rx557_cur."!cursor_debug"("NEXT", "mod_ident:sym") + debug_460: + rx557_fail: + (rx557_rep, rx557_pos, $I10, $P10) = rx557_cur."!mark_fail"(0) + lt rx557_pos, -1, rx557_done + eq rx557_pos, -1, rx557_fail jump $I10 - rx548_done: - rx548_cur."!cursor_fail"() - if_null rx548_debug, debug_455 - rx548_cur."!cursor_debug"("FAIL ", "mod_ident:sym") - debug_455: - .return (rx548_cur) + rx557_done: + rx557_cur."!cursor_fail"() + if_null rx557_debug, debug_461 + rx557_cur."!cursor_debug"("FAIL", "mod_ident:sym") + debug_461: + .return (rx557_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_ident:sym" :subid("155_1282016522.91354") :method +.sub "!PREFIX__mod_ident:sym" :subid("157_1282323996.47527") :method .annotate 'line', 3 - new $P550, "ResizablePMCArray" - push $P550, "i" - .return ($P550) + new $P559, "ResizablePMCArray" + push $P559, "i" + .return ($P559) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_ident:sym" :subid("156_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "mod_ident:sym" :subid("158_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx555_tgt - .local int rx555_pos - .local int rx555_off - .local int rx555_eos - .local int rx555_rep - .local pmc rx555_cur - .local pmc rx555_debug - (rx555_cur, rx555_pos, rx555_tgt, $I10) = self."!cursor_start"() - getattribute rx555_debug, rx555_cur, "$!debug" - .lex unicode:"$\x{a2}", rx555_cur + .local string rx564_tgt + .local int rx564_pos + .local int rx564_off + .local int rx564_eos + .local int rx564_rep + .local pmc rx564_cur + .local pmc rx564_debug + (rx564_cur, rx564_pos, rx564_tgt, $I10) = self."!cursor_start"() + getattribute rx564_debug, rx564_cur, "$!debug" + .lex unicode:"$\x{a2}", rx564_cur .local pmc match .lex "$/", match - length rx555_eos, rx555_tgt - gt rx555_pos, rx555_eos, rx555_done - set rx555_off, 0 - lt rx555_pos, 2, rx555_start - sub rx555_off, rx555_pos, 1 - substr rx555_tgt, rx555_tgt, rx555_off - rx555_start: - eq $I10, 1, rx555_restart - if_null rx555_debug, debug_456 - rx555_cur."!cursor_debug"("START ", "mod_ident:sym") - debug_456: + length rx564_eos, rx564_tgt + gt rx564_pos, rx564_eos, rx564_done + set rx564_off, 0 + lt rx564_pos, 2, rx564_start + sub rx564_off, rx564_pos, 1 + substr rx564_tgt, rx564_tgt, rx564_off + rx564_start: + eq $I10, 1, rx564_restart + if_null rx564_debug, debug_462 + rx564_cur."!cursor_debug"("START", "mod_ident:sym") + debug_462: $I10 = self.'from'() - ne $I10, -1, rxscan558_done - goto rxscan558_scan - rxscan558_loop: - ($P10) = rx555_cur."from"() + ne $I10, -1, rxscan567_done + goto rxscan567_scan + rxscan567_loop: + ($P10) = rx564_cur."from"() inc $P10 - set rx555_pos, $P10 - ge rx555_pos, rx555_eos, rxscan558_done - rxscan558_scan: - set_addr $I10, rxscan558_loop - rx555_cur."!mark_push"(0, rx555_pos, $I10) - rxscan558_done: -.annotate 'line', 185 + set rx564_pos, $P10 + ge rx564_pos, rx564_eos, rxscan567_done + rxscan567_scan: + set_addr $I10, rxscan567_loop + rx564_cur."!mark_push"(0, rx564_pos, $I10) + rxscan567_done: +.annotate 'line', 192 # rx subcapture "sym" - set_addr $I10, rxcap_559_fail - rx555_cur."!mark_push"(0, rx555_pos, $I10) + set_addr $I10, rxcap_568_fail + rx564_cur."!mark_push"(0, rx564_pos, $I10) # rx literal "r" - add $I11, rx555_pos, 1 - gt $I11, rx555_eos, rx555_fail - sub $I11, rx555_pos, rx555_off - ord $I11, rx555_tgt, $I11 - ne $I11, 114, rx555_fail - add rx555_pos, 1 - set_addr $I10, rxcap_559_fail - ($I12, $I11) = rx555_cur."!mark_peek"($I10) - rx555_cur."!cursor_pos"($I11) - ($P10) = rx555_cur."!cursor_start"() - $P10."!cursor_pass"(rx555_pos, "") - rx555_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx564_pos, 1 + gt $I11, rx564_eos, rx564_fail + sub $I11, rx564_pos, rx564_off + ord $I11, rx564_tgt, $I11 + ne $I11, 114, rx564_fail + add rx564_pos, 1 + set_addr $I10, rxcap_568_fail + ($I12, $I11) = rx564_cur."!mark_peek"($I10) + rx564_cur."!cursor_pos"($I11) + ($P10) = rx564_cur."!cursor_start"() + $P10."!cursor_pass"(rx564_pos, "") + rx564_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_559_done - rxcap_559_fail: - goto rx555_fail - rxcap_559_done: - # rx rxquantr560 ** 0..1 - set_addr $I10, rxquantr560_done - rx555_cur."!mark_push"(0, rx555_pos, $I10) - rxquantr560_loop: + goto rxcap_568_done + rxcap_568_fail: + goto rx564_fail + rxcap_568_done: + # rx rxquantr569 ** 0..1 + set_addr $I10, rxquantr569_done + rx564_cur."!mark_push"(0, rx564_pos, $I10) + rxquantr569_loop: # rx literal "atchet" - add $I11, rx555_pos, 6 - gt $I11, rx555_eos, rx555_fail - sub $I11, rx555_pos, rx555_off - substr $S10, rx555_tgt, $I11, 6 - ne $S10, "atchet", rx555_fail - add rx555_pos, 6 - set_addr $I10, rxquantr560_done - (rx555_rep) = rx555_cur."!mark_commit"($I10) - rxquantr560_done: + add $I11, rx564_pos, 6 + gt $I11, rx564_eos, rx564_fail + sub $I11, rx564_pos, rx564_off + substr $S10, rx564_tgt, $I11, 6 + ne $S10, "atchet", rx564_fail + add rx564_pos, 6 + set_addr $I10, rxquantr569_done + (rx564_rep) = rx564_cur."!mark_commit"($I10) + rxquantr569_done: # rx pass - rx555_cur."!cursor_pass"(rx555_pos, "mod_ident:sym") - if_null rx555_debug, debug_457 - rx555_cur."!cursor_debug"("PASS ", "mod_ident:sym", " at pos=", rx555_pos) - debug_457: - .return (rx555_cur) - rx555_restart: -.annotate 'line', 3 - if_null rx555_debug, debug_458 - rx555_cur."!cursor_debug"("NEXT ", "mod_ident:sym") - debug_458: - rx555_fail: - (rx555_rep, rx555_pos, $I10, $P10) = rx555_cur."!mark_fail"(0) - lt rx555_pos, -1, rx555_done - eq rx555_pos, -1, rx555_fail + rx564_cur."!cursor_pass"(rx564_pos, "mod_ident:sym") + if_null rx564_debug, debug_463 + rx564_cur."!cursor_debug"("PASS", "mod_ident:sym", " at pos=", rx564_pos) + debug_463: + .return (rx564_cur) + rx564_restart: +.annotate 'line', 3 + if_null rx564_debug, debug_464 + rx564_cur."!cursor_debug"("NEXT", "mod_ident:sym") + debug_464: + rx564_fail: + (rx564_rep, rx564_pos, $I10, $P10) = rx564_cur."!mark_fail"(0) + lt rx564_pos, -1, rx564_done + eq rx564_pos, -1, rx564_fail jump $I10 - rx555_done: - rx555_cur."!cursor_fail"() - if_null rx555_debug, debug_459 - rx555_cur."!cursor_debug"("FAIL ", "mod_ident:sym") - debug_459: - .return (rx555_cur) + rx564_done: + rx564_cur."!cursor_fail"() + if_null rx564_debug, debug_465 + rx564_cur."!cursor_debug"("FAIL", "mod_ident:sym") + debug_465: + .return (rx564_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_ident:sym" :subid("157_1282016522.91354") :method +.sub "!PREFIX__mod_ident:sym" :subid("159_1282323996.47527") :method .annotate 'line', 3 - new $P557, "ResizablePMCArray" - push $P557, "r" - .return ($P557) + new $P566, "ResizablePMCArray" + push $P566, "r" + .return ($P566) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "mod_ident:sym" :subid("158_1282016522.91354") :method :outer("11_1282016522.91354") +.sub "mod_ident:sym" :subid("160_1282323996.47527") :method :outer("11_1282323996.47527") .annotate 'line', 3 - .local string rx562_tgt - .local int rx562_pos - .local int rx562_off - .local int rx562_eos - .local int rx562_rep - .local pmc rx562_cur - .local pmc rx562_debug - (rx562_cur, rx562_pos, rx562_tgt, $I10) = self."!cursor_start"() - getattribute rx562_debug, rx562_cur, "$!debug" - .lex unicode:"$\x{a2}", rx562_cur + .local string rx571_tgt + .local int rx571_pos + .local int rx571_off + .local int rx571_eos + .local int rx571_rep + .local pmc rx571_cur + .local pmc rx571_debug + (rx571_cur, rx571_pos, rx571_tgt, $I10) = self."!cursor_start"() + getattribute rx571_debug, rx571_cur, "$!debug" + .lex unicode:"$\x{a2}", rx571_cur .local pmc match .lex "$/", match - length rx562_eos, rx562_tgt - gt rx562_pos, rx562_eos, rx562_done - set rx562_off, 0 - lt rx562_pos, 2, rx562_start - sub rx562_off, rx562_pos, 1 - substr rx562_tgt, rx562_tgt, rx562_off - rx562_start: - eq $I10, 1, rx562_restart - if_null rx562_debug, debug_460 - rx562_cur."!cursor_debug"("START ", "mod_ident:sym") - debug_460: + length rx571_eos, rx571_tgt + gt rx571_pos, rx571_eos, rx571_done + set rx571_off, 0 + lt rx571_pos, 2, rx571_start + sub rx571_off, rx571_pos, 1 + substr rx571_tgt, rx571_tgt, rx571_off + rx571_start: + eq $I10, 1, rx571_restart + if_null rx571_debug, debug_466 + rx571_cur."!cursor_debug"("START", "mod_ident:sym") + debug_466: $I10 = self.'from'() - ne $I10, -1, rxscan565_done - goto rxscan565_scan - rxscan565_loop: - ($P10) = rx562_cur."from"() + ne $I10, -1, rxscan574_done + goto rxscan574_scan + rxscan574_loop: + ($P10) = rx571_cur."from"() inc $P10 - set rx562_pos, $P10 - ge rx562_pos, rx562_eos, rxscan565_done - rxscan565_scan: - set_addr $I10, rxscan565_loop - rx562_cur."!mark_push"(0, rx562_pos, $I10) - rxscan565_done: -.annotate 'line', 186 + set rx571_pos, $P10 + ge rx571_pos, rx571_eos, rxscan574_done + rxscan574_scan: + set_addr $I10, rxscan574_loop + rx571_cur."!mark_push"(0, rx571_pos, $I10) + rxscan574_done: +.annotate 'line', 193 # rx subcapture "sym" - set_addr $I10, rxcap_566_fail - rx562_cur."!mark_push"(0, rx562_pos, $I10) + set_addr $I10, rxcap_575_fail + rx571_cur."!mark_push"(0, rx571_pos, $I10) # rx literal "s" - add $I11, rx562_pos, 1 - gt $I11, rx562_eos, rx562_fail - sub $I11, rx562_pos, rx562_off - ord $I11, rx562_tgt, $I11 - ne $I11, 115, rx562_fail - add rx562_pos, 1 - set_addr $I10, rxcap_566_fail - ($I12, $I11) = rx562_cur."!mark_peek"($I10) - rx562_cur."!cursor_pos"($I11) - ($P10) = rx562_cur."!cursor_start"() - $P10."!cursor_pass"(rx562_pos, "") - rx562_cur."!mark_push"(0, -1, 0, $P10) + add $I11, rx571_pos, 1 + gt $I11, rx571_eos, rx571_fail + sub $I11, rx571_pos, rx571_off + ord $I11, rx571_tgt, $I11 + ne $I11, 115, rx571_fail + add rx571_pos, 1 + set_addr $I10, rxcap_575_fail + ($I12, $I11) = rx571_cur."!mark_peek"($I10) + rx571_cur."!cursor_pos"($I11) + ($P10) = rx571_cur."!cursor_start"() + $P10."!cursor_pass"(rx571_pos, "") + rx571_cur."!mark_push"(0, -1, 0, $P10) $P10."!cursor_names"("sym") - goto rxcap_566_done - rxcap_566_fail: - goto rx562_fail - rxcap_566_done: - # rx rxquantr567 ** 0..1 - set_addr $I10, rxquantr567_done - rx562_cur."!mark_push"(0, rx562_pos, $I10) - rxquantr567_loop: + goto rxcap_575_done + rxcap_575_fail: + goto rx571_fail + rxcap_575_done: + # rx rxquantr576 ** 0..1 + set_addr $I10, rxquantr576_done + rx571_cur."!mark_push"(0, rx571_pos, $I10) + rxquantr576_loop: # rx literal "igspace" - add $I11, rx562_pos, 7 - gt $I11, rx562_eos, rx562_fail - sub $I11, rx562_pos, rx562_off - substr $S10, rx562_tgt, $I11, 7 - ne $S10, "igspace", rx562_fail - add rx562_pos, 7 - set_addr $I10, rxquantr567_done - (rx562_rep) = rx562_cur."!mark_commit"($I10) - rxquantr567_done: + add $I11, rx571_pos, 7 + gt $I11, rx571_eos, rx571_fail + sub $I11, rx571_pos, rx571_off + substr $S10, rx571_tgt, $I11, 7 + ne $S10, "igspace", rx571_fail + add rx571_pos, 7 + set_addr $I10, rxquantr576_done + (rx571_rep) = rx571_cur."!mark_commit"($I10) + rxquantr576_done: # rx pass - rx562_cur."!cursor_pass"(rx562_pos, "mod_ident:sym") - if_null rx562_debug, debug_461 - rx562_cur."!cursor_debug"("PASS ", "mod_ident:sym", " at pos=", rx562_pos) - debug_461: - .return (rx562_cur) - rx562_restart: -.annotate 'line', 3 - if_null rx562_debug, debug_462 - rx562_cur."!cursor_debug"("NEXT ", "mod_ident:sym") - debug_462: - rx562_fail: - (rx562_rep, rx562_pos, $I10, $P10) = rx562_cur."!mark_fail"(0) - lt rx562_pos, -1, rx562_done - eq rx562_pos, -1, rx562_fail + rx571_cur."!cursor_pass"(rx571_pos, "mod_ident:sym") + if_null rx571_debug, debug_467 + rx571_cur."!cursor_debug"("PASS", "mod_ident:sym", " at pos=", rx571_pos) + debug_467: + .return (rx571_cur) + rx571_restart: +.annotate 'line', 3 + if_null rx571_debug, debug_468 + rx571_cur."!cursor_debug"("NEXT", "mod_ident:sym") + debug_468: + rx571_fail: + (rx571_rep, rx571_pos, $I10, $P10) = rx571_cur."!mark_fail"(0) + lt rx571_pos, -1, rx571_done + eq rx571_pos, -1, rx571_fail jump $I10 - rx562_done: - rx562_cur."!cursor_fail"() - if_null rx562_debug, debug_463 - rx562_cur."!cursor_debug"("FAIL ", "mod_ident:sym") - debug_463: - .return (rx562_cur) + rx571_done: + rx571_cur."!cursor_fail"() + if_null rx571_debug, debug_469 + rx571_cur."!cursor_debug"("FAIL", "mod_ident:sym") + debug_469: + .return (rx571_cur) .return () .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "!PREFIX__mod_ident:sym" :subid("159_1282016522.91354") :method +.sub "!PREFIX__mod_ident:sym" :subid("161_1282323996.47527") :method .annotate 'line', 3 - new $P564, "ResizablePMCArray" - push $P564, "s" - .return ($P564) + new $P573, "ResizablePMCArray" + push $P573, "s" + .return ($P573) .end .namespace ["Regex";"P6Regex";"Grammar"] -.sub "_block568" :load :anon :subid("160_1282016522.91354") +.sub "_block577" :load :anon :subid("162_1282323996.47527") .annotate 'line', 3 - .const 'Sub' $P570 = "11_1282016522.91354" - $P571 = $P570() - .return ($P571) + .const 'Sub' $P579 = "11_1282323996.47527" + $P580 = $P579() + .return ($P580) .end .namespace [] -.sub "_block573" :load :anon :subid("161_1282016522.91354") +.sub "_block582" :load :anon :subid("163_1282323996.47527") .annotate 'line', 1 - .const 'Sub' $P575 = "10_1282016522.91354" - $P576 = $P575() - .return ($P576) + .const 'Sub' $P584 = "10_1282323996.47527" + $P585 = $P584() + .return ($P585) .end ### .include 'gen/p6regex-actions.pir' .namespace [] -.sub "_block11" :anon :subid("10_1282016526.02169") +.sub "_block11" :anon :subid("10_1282323999.42098") .annotate 'line', 0 get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" capture_lex $P14 @@ -8439,153 +8571,155 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 4 get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" capture_lex $P14 - $P1634 = $P14() + $P1671 = $P14() .annotate 'line', 1 - .return ($P1634) - .const 'Sub' $P1636 = "92_1282016526.02169" - .return ($P1636) + .return ($P1671) + .const 'Sub' $P1673 = "94_1282323999.42098" + .return ($P1673) .end .namespace [] -.sub "" :load :init :subid("post93") :outer("10_1282016526.02169") +.sub "" :load :init :subid("post95") :outer("10_1282323999.42098") .annotate 'line', 0 - .const 'Sub' $P12 = "10_1282016526.02169" + .const 'Sub' $P12 = "10_1282323999.42098" .local pmc block set block, $P12 - $P1639 = get_root_global ["parrot"], "P6metaclass" - $P1639."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent")) + $P1676 = get_root_global ["parrot"], "P6metaclass" + $P1676."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent")) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block13" :subid("11_1282016526.02169") :outer("10_1282016526.02169") +.sub "_block13" :subid("11_1282323999.42098") :outer("10_1282323999.42098") .annotate 'line', 4 - .const 'Sub' $P1611 = "90_1282016526.02169" - capture_lex $P1611 - .const 'Sub' $P1591 = "89_1282016526.02169" - capture_lex $P1591 - .const 'Sub' $P1559 = "88_1282016526.02169" - capture_lex $P1559 - .const 'Sub' $P1490 = "84_1282016526.02169" - capture_lex $P1490 - .const 'Sub' $P1422 = "82_1282016526.02169" - capture_lex $P1422 - .const 'Sub' $P1350 = "79_1282016526.02169" - capture_lex $P1350 - .const 'Sub' $P1336 = "78_1282016526.02169" - capture_lex $P1336 - .const 'Sub' $P1312 = "77_1282016526.02169" - capture_lex $P1312 - .const 'Sub' $P1294 = "76_1282016526.02169" - capture_lex $P1294 - .const 'Sub' $P1280 = "75_1282016526.02169" - capture_lex $P1280 - .const 'Sub' $P1267 = "74_1282016526.02169" - capture_lex $P1267 - .const 'Sub' $P1236 = "73_1282016526.02169" - capture_lex $P1236 - .const 'Sub' $P1205 = "72_1282016526.02169" - capture_lex $P1205 - .const 'Sub' $P1189 = "71_1282016526.02169" - capture_lex $P1189 - .const 'Sub' $P1173 = "70_1282016526.02169" - capture_lex $P1173 - .const 'Sub' $P1157 = "69_1282016526.02169" - capture_lex $P1157 - .const 'Sub' $P1141 = "68_1282016526.02169" - capture_lex $P1141 - .const 'Sub' $P1125 = "67_1282016526.02169" - capture_lex $P1125 - .const 'Sub' $P1109 = "66_1282016526.02169" - capture_lex $P1109 - .const 'Sub' $P1093 = "65_1282016526.02169" - capture_lex $P1093 - .const 'Sub' $P1069 = "64_1282016526.02169" - capture_lex $P1069 - .const 'Sub' $P1054 = "63_1282016526.02169" - capture_lex $P1054 - .const 'Sub' $P996 = "62_1282016526.02169" - capture_lex $P996 - .const 'Sub' $P975 = "61_1282016526.02169" - capture_lex $P975 - .const 'Sub' $P953 = "60_1282016526.02169" - capture_lex $P953 - .const 'Sub' $P943 = "59_1282016526.02169" - capture_lex $P943 - .const 'Sub' $P933 = "58_1282016526.02169" - capture_lex $P933 - .const 'Sub' $P923 = "57_1282016526.02169" - capture_lex $P923 - .const 'Sub' $P911 = "56_1282016526.02169" - capture_lex $P911 - .const 'Sub' $P899 = "55_1282016526.02169" - capture_lex $P899 - .const 'Sub' $P887 = "54_1282016526.02169" - capture_lex $P887 - .const 'Sub' $P875 = "53_1282016526.02169" - capture_lex $P875 - .const 'Sub' $P863 = "52_1282016526.02169" - capture_lex $P863 - .const 'Sub' $P851 = "51_1282016526.02169" - capture_lex $P851 - .const 'Sub' $P839 = "50_1282016526.02169" - capture_lex $P839 - .const 'Sub' $P827 = "49_1282016526.02169" - capture_lex $P827 - .const 'Sub' $P799 = "48_1282016526.02169" - capture_lex $P799 - .const 'Sub' $P771 = "47_1282016526.02169" - capture_lex $P771 - .const 'Sub' $P753 = "46_1282016526.02169" - capture_lex $P753 - .const 'Sub' $P743 = "45_1282016526.02169" - capture_lex $P743 - .const 'Sub' $P725 = "44_1282016526.02169" - capture_lex $P725 - .const 'Sub' $P652 = "42_1282016526.02169" - capture_lex $P652 - .const 'Sub' $P635 = "41_1282016526.02169" - capture_lex $P635 - .const 'Sub' $P620 = "40_1282016526.02169" - capture_lex $P620 - .const 'Sub' $P605 = "39_1282016526.02169" - capture_lex $P605 - .const 'Sub' $P579 = "38_1282016526.02169" - capture_lex $P579 - .const 'Sub' $P528 = "36_1282016526.02169" - capture_lex $P528 - .const 'Sub' $P460 = "34_1282016526.02169" + .const 'Sub' $P1648 = "92_1282323999.42098" + capture_lex $P1648 + .const 'Sub' $P1628 = "91_1282323999.42098" + capture_lex $P1628 + .const 'Sub' $P1596 = "90_1282323999.42098" + capture_lex $P1596 + .const 'Sub' $P1527 = "86_1282323999.42098" + capture_lex $P1527 + .const 'Sub' $P1459 = "84_1282323999.42098" + capture_lex $P1459 + .const 'Sub' $P1387 = "81_1282323999.42098" + capture_lex $P1387 + .const 'Sub' $P1373 = "80_1282323999.42098" + capture_lex $P1373 + .const 'Sub' $P1349 = "79_1282323999.42098" + capture_lex $P1349 + .const 'Sub' $P1331 = "78_1282323999.42098" + capture_lex $P1331 + .const 'Sub' $P1317 = "77_1282323999.42098" + capture_lex $P1317 + .const 'Sub' $P1304 = "76_1282323999.42098" + capture_lex $P1304 + .const 'Sub' $P1273 = "75_1282323999.42098" + capture_lex $P1273 + .const 'Sub' $P1242 = "74_1282323999.42098" + capture_lex $P1242 + .const 'Sub' $P1226 = "73_1282323999.42098" + capture_lex $P1226 + .const 'Sub' $P1210 = "72_1282323999.42098" + capture_lex $P1210 + .const 'Sub' $P1194 = "71_1282323999.42098" + capture_lex $P1194 + .const 'Sub' $P1178 = "70_1282323999.42098" + capture_lex $P1178 + .const 'Sub' $P1162 = "69_1282323999.42098" + capture_lex $P1162 + .const 'Sub' $P1146 = "68_1282323999.42098" + capture_lex $P1146 + .const 'Sub' $P1130 = "67_1282323999.42098" + capture_lex $P1130 + .const 'Sub' $P1106 = "66_1282323999.42098" + capture_lex $P1106 + .const 'Sub' $P1091 = "65_1282323999.42098" + capture_lex $P1091 + .const 'Sub' $P1033 = "64_1282323999.42098" + capture_lex $P1033 + .const 'Sub' $P1012 = "63_1282323999.42098" + capture_lex $P1012 + .const 'Sub' $P990 = "62_1282323999.42098" + capture_lex $P990 + .const 'Sub' $P980 = "61_1282323999.42098" + capture_lex $P980 + .const 'Sub' $P970 = "60_1282323999.42098" + capture_lex $P970 + .const 'Sub' $P960 = "59_1282323999.42098" + capture_lex $P960 + .const 'Sub' $P948 = "58_1282323999.42098" + capture_lex $P948 + .const 'Sub' $P936 = "57_1282323999.42098" + capture_lex $P936 + .const 'Sub' $P924 = "56_1282323999.42098" + capture_lex $P924 + .const 'Sub' $P912 = "55_1282323999.42098" + capture_lex $P912 + .const 'Sub' $P900 = "54_1282323999.42098" + capture_lex $P900 + .const 'Sub' $P888 = "53_1282323999.42098" + capture_lex $P888 + .const 'Sub' $P876 = "52_1282323999.42098" + capture_lex $P876 + .const 'Sub' $P864 = "51_1282323999.42098" + capture_lex $P864 + .const 'Sub' $P836 = "50_1282323999.42098" + capture_lex $P836 + .const 'Sub' $P808 = "49_1282323999.42098" + capture_lex $P808 + .const 'Sub' $P790 = "48_1282323999.42098" + capture_lex $P790 + .const 'Sub' $P780 = "47_1282323999.42098" + capture_lex $P780 + .const 'Sub' $P762 = "46_1282323999.42098" + capture_lex $P762 + .const 'Sub' $P689 = "44_1282323999.42098" + capture_lex $P689 + .const 'Sub' $P672 = "43_1282323999.42098" + capture_lex $P672 + .const 'Sub' $P657 = "42_1282323999.42098" + capture_lex $P657 + .const 'Sub' $P642 = "41_1282323999.42098" + capture_lex $P642 + .const 'Sub' $P616 = "40_1282323999.42098" + capture_lex $P616 + .const 'Sub' $P565 = "38_1282323999.42098" + capture_lex $P565 + .const 'Sub' $P497 = "36_1282323999.42098" + capture_lex $P497 + .const 'Sub' $P460 = "34_1282323999.42098" capture_lex $P460 - .const 'Sub' $P404 = "31_1282016526.02169" + .const 'Sub' $P404 = "31_1282323999.42098" capture_lex $P404 - .const 'Sub' $P389 = "30_1282016526.02169" + .const 'Sub' $P389 = "30_1282323999.42098" capture_lex $P389 - .const 'Sub' $P363 = "28_1282016526.02169" + .const 'Sub' $P363 = "28_1282323999.42098" capture_lex $P363 - .const 'Sub' $P346 = "27_1282016526.02169" + .const 'Sub' $P346 = "27_1282323999.42098" capture_lex $P346 - .const 'Sub' $P312 = "26_1282016526.02169" + .const 'Sub' $P312 = "26_1282323999.42098" capture_lex $P312 - .const 'Sub' $P57 = "13_1282016526.02169" + .const 'Sub' $P57 = "13_1282323999.42098" capture_lex $P57 - .const 'Sub' $P16 = "12_1282016526.02169" + .const 'Sub' $P16 = "12_1282323999.42098" capture_lex $P16 get_global $P15, "@MODIFIERS" - unless_null $P15, vivify_95 + unless_null $P15, vivify_97 $P15 = root_new ['parrot';'ResizablePMCArray'] set_global "@MODIFIERS", $P15 - vivify_95: -.annotate 'line', 492 - .const 'Sub' $P16 = "12_1282016526.02169" + vivify_97: +.annotate 'line', 506 + .const 'Sub' $P16 = "12_1282323999.42098" newclosure $P56, $P16 .lex "buildsub", $P56 -.annotate 'line', 510 - .const 'Sub' $P57 = "13_1282016526.02169" +.annotate 'line', 524 + .const 'Sub' $P57 = "13_1282323999.42098" newclosure $P311, $P57 .lex "capnames", $P311 -.annotate 'line', 576 - .const 'Sub' $P312 = "26_1282016526.02169" +.annotate 'line', 590 + .const 'Sub' $P312 = "26_1282323999.42098" newclosure $P344, $P312 .lex "backmod", $P344 .annotate 'line', 4 @@ -8596,90 +8730,90 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes $P0."ctxsave"() ctxsave_done: get_global $P345, "@MODIFIERS" -.annotate 'line', 485 - find_lex $P1588, "buildsub" - find_lex $P1589, "capnames" - find_lex $P1590, "backmod" -.annotate 'line', 589 - .const 'Sub' $P1611 = "90_1282016526.02169" - newclosure $P1628, $P1611 +.annotate 'line', 499 + find_lex $P1625, "buildsub" + find_lex $P1626, "capnames" + find_lex $P1627, "backmod" +.annotate 'line', 603 + .const 'Sub' $P1648 = "92_1282323999.42098" + newclosure $P1665, $P1648 .annotate 'line', 4 - .return ($P1628) - .const 'Sub' $P1630 = "91_1282016526.02169" - .return ($P1630) + .return ($P1665) + .const 'Sub' $P1667 = "93_1282323999.42098" + .return ($P1667) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "" :load :init :subid("post94") :outer("11_1282016526.02169") +.sub "" :load :init :subid("post96") :outer("11_1282323999.42098") .annotate 'line', 4 get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" .local pmc block set block, $P14 .annotate 'line', 7 - $P1633 = new ['ResizablePMCArray'] + $P1670 = new ['ResizablePMCArray'] $P0 = new ['Hash'] - push $P1633, $P0 + push $P1670, $P0 - set_global "@MODIFIERS", $P1633 + set_global "@MODIFIERS", $P1670 .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "buildsub" :subid("12_1282016526.02169") :outer("11_1282016526.02169") +.sub "buildsub" :subid("12_1282323999.42098") :outer("11_1282323999.42098") .param pmc param_19 .param pmc param_20 :optional .param int has_param_20 :opt_flag -.annotate 'line', 492 +.annotate 'line', 506 new $P18, 'ExceptionHandler' set_addr $P18, control_17 $P18."handle_types"(.CONTROL_RETURN) push_eh $P18 .lex "$rpast", param_19 - if has_param_20, optparam_96 + if has_param_20, optparam_98 get_hll_global $P21, ["PAST"], "Block" $P22 = $P21."new"() set param_20, $P22 - optparam_96: + optparam_98: .lex "$block", param_20 -.annotate 'line', 493 +.annotate 'line', 507 $P23 = root_new ['parrot';'Hash'] .lex "%capnames", $P23 find_lex $P24, "$rpast" $P25 = "capnames"($P24, 0) store_lex "%capnames", $P25 -.annotate 'line', 494 +.annotate 'line', 508 new $P26, "Integer" assign $P26, 0 find_lex $P27, "%capnames" - unless_null $P27, vivify_97 + unless_null $P27, vivify_99 $P27 = root_new ['parrot';'Hash'] store_lex "%capnames", $P27 - vivify_97: + vivify_99: set $P27[""], $P26 -.annotate 'line', 495 +.annotate 'line', 509 get_hll_global $P28, ["PAST"], "Regex" -.annotate 'line', 496 +.annotate 'line', 510 get_hll_global $P29, ["PAST"], "Regex" $P30 = $P29."new"("scan" :named("pasttype")) find_lex $P31, "$rpast" -.annotate 'line', 498 +.annotate 'line', 512 get_hll_global $P32, ["PAST"], "Regex" -.annotate 'line', 499 +.annotate 'line', 513 get_global $P35, "@MODIFIERS" - unless_null $P35, vivify_98 + unless_null $P35, vivify_100 $P35 = root_new ['parrot';'ResizablePMCArray'] - vivify_98: + vivify_100: set $P36, $P35[0] - unless_null $P36, vivify_99 + unless_null $P36, vivify_101 $P36 = root_new ['parrot';'Hash'] - vivify_99: + vivify_101: set $P37, $P36["r"] - unless_null $P37, vivify_100 + unless_null $P37, vivify_102 new $P37, "Undef" - vivify_100: + vivify_102: if $P37, if_34 new $P39, "String" assign $P39, "g" @@ -8691,34 +8825,34 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes set $P33, $P38 if_34_end: $P40 = $P32."new"("pass" :named("pasttype"), $P33 :named("backtrack")) -.annotate 'line', 498 +.annotate 'line', 512 find_lex $P41, "%capnames" $P42 = $P28."new"($P30, $P31, $P40, "concat" :named("pasttype"), $P41 :named("capnames")) -.annotate 'line', 495 +.annotate 'line', 509 store_lex "$rpast", $P42 -.annotate 'line', 503 +.annotate 'line', 517 find_lex $P44, "$block" $P45 = $P44."symbol"(unicode:"$\x{a2}") if $P45, unless_43_end find_lex $P46, "$block" $P46."symbol"(unicode:"$\x{a2}", "lexical" :named("scope")) unless_43_end: -.annotate 'line', 504 +.annotate 'line', 518 find_lex $P48, "$block" $P49 = $P48."symbol"("$/") if $P49, unless_47_end find_lex $P50, "$block" $P50."symbol"("$/", "lexical" :named("scope")) unless_47_end: -.annotate 'line', 505 +.annotate 'line', 519 find_lex $P51, "$block" find_lex $P52, "$rpast" $P51."push"($P52) -.annotate 'line', 506 +.annotate 'line', 520 find_lex $P53, "$block" $P53."blocktype"("method") find_lex $P54, "$block" -.annotate 'line', 492 +.annotate 'line', 506 .return ($P54) control_17: .local pmc exception @@ -8730,19 +8864,19 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "capnames" :subid("13_1282016526.02169") :outer("11_1282016526.02169") +.sub "capnames" :subid("13_1282323999.42098") :outer("11_1282323999.42098") .param pmc param_60 .param pmc param_61 -.annotate 'line', 510 - .const 'Sub' $P286 = "24_1282016526.02169" +.annotate 'line', 524 + .const 'Sub' $P286 = "24_1282323999.42098" capture_lex $P286 - .const 'Sub' $P223 = "21_1282016526.02169" + .const 'Sub' $P223 = "21_1282323999.42098" capture_lex $P223 - .const 'Sub' $P181 = "19_1282016526.02169" + .const 'Sub' $P181 = "19_1282323999.42098" capture_lex $P181 - .const 'Sub' $P139 = "17_1282016526.02169" + .const 'Sub' $P139 = "17_1282323999.42098" capture_lex $P139 - .const 'Sub' $P72 = "14_1282016526.02169" + .const 'Sub' $P72 = "14_1282323999.42098" capture_lex $P72 new $P59, 'ExceptionHandler' set_addr $P59, control_58 @@ -8750,29 +8884,29 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes push_eh $P59 .lex "$ast", param_60 .lex "$count", param_61 -.annotate 'line', 511 +.annotate 'line', 525 $P62 = root_new ['parrot';'Hash'] .lex "%capnames", $P62 -.annotate 'line', 512 +.annotate 'line', 526 new $P63, "Undef" .lex "$pasttype", $P63 -.annotate 'line', 510 +.annotate 'line', 524 find_lex $P64, "%capnames" -.annotate 'line', 512 +.annotate 'line', 526 find_lex $P65, "$ast" $P66 = $P65."pasttype"() store_lex "$pasttype", $P66 -.annotate 'line', 513 +.annotate 'line', 527 find_lex $P68, "$pasttype" set $S69, $P68 iseq $I70, $S69, "alt" if $I70, if_67 -.annotate 'line', 526 +.annotate 'line', 540 find_lex $P130, "$pasttype" set $S131, $P130 iseq $I132, $S131, "concat" if $I132, if_129 -.annotate 'line', 535 +.annotate 'line', 549 find_lex $P174, "$pasttype" set $S175, $P174 iseq $I176, $S175, "subrule" @@ -8788,41 +8922,41 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes set $P172, $I179 if_173_end: if $P172, if_171 -.annotate 'line', 548 +.annotate 'line', 562 find_lex $P219, "$pasttype" set $S220, $P219 iseq $I221, $S220, "subcapture" if $I221, if_218 -.annotate 'line', 565 +.annotate 'line', 579 find_lex $P282, "$pasttype" set $S283, $P282 iseq $I284, $S283, "quant" unless $I284, if_281_end - .const 'Sub' $P286 = "24_1282016526.02169" + .const 'Sub' $P286 = "24_1282323999.42098" capture_lex $P286 $P286() if_281_end: goto if_218_end if_218: -.annotate 'line', 548 - .const 'Sub' $P223 = "21_1282016526.02169" +.annotate 'line', 562 + .const 'Sub' $P223 = "21_1282323999.42098" capture_lex $P223 $P223() if_218_end: goto if_171_end if_171: -.annotate 'line', 535 - .const 'Sub' $P181 = "19_1282016526.02169" +.annotate 'line', 549 + .const 'Sub' $P181 = "19_1282323999.42098" capture_lex $P181 $P181() if_171_end: goto if_129_end if_129: -.annotate 'line', 527 +.annotate 'line', 541 find_lex $P134, "$ast" $P135 = $P134."list"() defined $I136, $P135 - unless $I136, for_undef_121 + unless $I136, for_undef_123 iter $P133, $P135 new $P169, 'ExceptionHandler' set_addr $P169, loop168_handler @@ -8832,7 +8966,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P133, loop168_done shift $P137, $P133 loop168_redo: - .const 'Sub' $P139 = "17_1282016526.02169" + .const 'Sub' $P139 = "17_1282323999.42098" capture_lex $P139 $P139($P137) loop168_next: @@ -8845,26 +8979,26 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P170, .CONTROL_LOOP_REDO, loop168_redo loop168_done: pop_eh - for_undef_121: + for_undef_123: if_129_end: -.annotate 'line', 526 +.annotate 'line', 540 goto if_67_end if_67: -.annotate 'line', 513 - .const 'Sub' $P72 = "14_1282016526.02169" +.annotate 'line', 527 + .const 'Sub' $P72 = "14_1282323999.42098" capture_lex $P72 $P72() if_67_end: -.annotate 'line', 572 +.annotate 'line', 586 find_lex $P307, "$count" find_lex $P308, "%capnames" - unless_null $P308, vivify_141 + unless_null $P308, vivify_143 $P308 = root_new ['parrot';'Hash'] store_lex "%capnames", $P308 - vivify_141: + vivify_143: set $P308[""], $P307 find_lex $P309, "%capnames" -.annotate 'line', 510 +.annotate 'line', 524 .return ($P309) control_58: .local pmc exception @@ -8876,28 +9010,28 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block285" :anon :subid("24_1282016526.02169") :outer("13_1282016526.02169") -.annotate 'line', 565 - .const 'Sub' $P297 = "25_1282016526.02169" +.sub "_block285" :anon :subid("24_1282323999.42098") :outer("13_1282323999.42098") +.annotate 'line', 579 + .const 'Sub' $P297 = "25_1282323999.42098" capture_lex $P297 -.annotate 'line', 566 +.annotate 'line', 580 $P287 = root_new ['parrot';'Hash'] .lex "%astcap", $P287 find_lex $P288, "$ast" - unless_null $P288, vivify_101 + unless_null $P288, vivify_103 $P288 = root_new ['parrot';'ResizablePMCArray'] - vivify_101: + vivify_103: set $P289, $P288[0] - unless_null $P289, vivify_102 + unless_null $P289, vivify_104 new $P289, "Undef" - vivify_102: + vivify_104: find_lex $P290, "$count" $P291 = "capnames"($P289, $P290) store_lex "%astcap", $P291 -.annotate 'line', 567 +.annotate 'line', 581 find_lex $P293, "%astcap" defined $I294, $P293 - unless $I294, for_undef_103 + unless $I294, for_undef_105 iter $P292, $P293 new $P303, 'ExceptionHandler' set_addr $P303, loop302_handler @@ -8907,7 +9041,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P292, loop302_done shift $P295, $P292 loop302_redo: - .const 'Sub' $P297 = "25_1282016526.02169" + .const 'Sub' $P297 = "25_1282323999.42098" capture_lex $P297 $P297($P295) loop302_next: @@ -8920,74 +9054,74 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P304, .CONTROL_LOOP_REDO, loop302_redo loop302_done: pop_eh - for_undef_103: -.annotate 'line', 570 + for_undef_105: +.annotate 'line', 584 find_lex $P305, "%astcap" - unless_null $P305, vivify_105 + unless_null $P305, vivify_107 $P305 = root_new ['parrot';'Hash'] - vivify_105: + vivify_107: set $P306, $P305[""] - unless_null $P306, vivify_106 + unless_null $P306, vivify_108 new $P306, "Undef" - vivify_106: + vivify_108: store_lex "$count", $P306 -.annotate 'line', 565 +.annotate 'line', 579 .return ($P306) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block296" :anon :subid("25_1282016526.02169") :outer("24_1282016526.02169") +.sub "_block296" :anon :subid("25_1282323999.42098") :outer("24_1282323999.42098") .param pmc param_298 -.annotate 'line', 567 +.annotate 'line', 581 .lex "$_", param_298 -.annotate 'line', 568 +.annotate 'line', 582 new $P299, "Integer" assign $P299, 2 find_lex $P300, "$_" find_lex $P301, "%capnames" - unless_null $P301, vivify_104 + unless_null $P301, vivify_106 $P301 = root_new ['parrot';'Hash'] store_lex "%capnames", $P301 - vivify_104: + vivify_106: set $P301[$P300], $P299 -.annotate 'line', 567 +.annotate 'line', 581 .return ($P299) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block222" :anon :subid("21_1282016526.02169") :outer("13_1282016526.02169") -.annotate 'line', 548 - .const 'Sub' $P263 = "23_1282016526.02169" +.sub "_block222" :anon :subid("21_1282323999.42098") :outer("13_1282323999.42098") +.annotate 'line', 562 + .const 'Sub' $P263 = "23_1282323999.42098" capture_lex $P263 - .const 'Sub' $P235 = "22_1282016526.02169" + .const 'Sub' $P235 = "22_1282323999.42098" capture_lex $P235 -.annotate 'line', 549 +.annotate 'line', 563 new $P224, "Undef" .lex "$name", $P224 -.annotate 'line', 550 +.annotate 'line', 564 $P225 = root_new ['parrot';'ResizablePMCArray'] .lex "@names", $P225 -.annotate 'line', 559 +.annotate 'line', 573 $P226 = root_new ['parrot';'Hash'] .lex "%x", $P226 -.annotate 'line', 549 +.annotate 'line', 563 find_lex $P227, "$ast" $P228 = $P227."name"() store_lex "$name", $P228 -.annotate 'line', 550 +.annotate 'line', 564 $P0 = find_lex '$name' $S0 = $P0 $P229 = split '=', $S0 store_lex "@names", $P229 -.annotate 'line', 555 +.annotate 'line', 569 find_lex $P231, "@names" defined $I232, $P231 - unless $I232, for_undef_107 + unless $I232, for_undef_109 iter $P230, $P231 new $P252, 'ExceptionHandler' set_addr $P252, loop251_handler @@ -8997,7 +9131,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P230, loop251_done shift $P233, $P230 loop251_redo: - .const 'Sub' $P235 = "22_1282016526.02169" + .const 'Sub' $P235 = "22_1282323999.42098" capture_lex $P235 $P235($P233) loop251_next: @@ -9010,23 +9144,23 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P253, .CONTROL_LOOP_REDO, loop251_redo loop251_done: pop_eh - for_undef_107: -.annotate 'line', 559 + for_undef_109: +.annotate 'line', 573 find_lex $P254, "$ast" - unless_null $P254, vivify_109 + unless_null $P254, vivify_111 $P254 = root_new ['parrot';'ResizablePMCArray'] - vivify_109: + vivify_111: set $P255, $P254[0] - unless_null $P255, vivify_110 + unless_null $P255, vivify_112 new $P255, "Undef" - vivify_110: + vivify_112: find_lex $P256, "$count" $P257 = "capnames"($P255, $P256) store_lex "%x", $P257 -.annotate 'line', 560 +.annotate 'line', 574 find_lex $P259, "%x" defined $I260, $P259 - unless $I260, for_undef_111 + unless $I260, for_undef_113 iter $P258, $P259 new $P277, 'ExceptionHandler' set_addr $P277, loop276_handler @@ -9036,7 +9170,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P258, loop276_done shift $P261, $P258 loop276_redo: - .const 'Sub' $P263 = "23_1282016526.02169" + .const 'Sub' $P263 = "23_1282323999.42098" capture_lex $P263 $P263($P261) loop276_next: @@ -9049,28 +9183,28 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P278, .CONTROL_LOOP_REDO, loop276_redo loop276_done: pop_eh - for_undef_111: -.annotate 'line', 563 + for_undef_113: +.annotate 'line', 577 find_lex $P279, "%x" - unless_null $P279, vivify_117 + unless_null $P279, vivify_119 $P279 = root_new ['parrot';'Hash'] - vivify_117: + vivify_119: set $P280, $P279[""] - unless_null $P280, vivify_118 + unless_null $P280, vivify_120 new $P280, "Undef" - vivify_118: + vivify_120: store_lex "$count", $P280 -.annotate 'line', 548 +.annotate 'line', 562 .return ($P280) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block234" :anon :subid("22_1282016526.02169") :outer("21_1282016526.02169") +.sub "_block234" :anon :subid("22_1282323999.42098") :outer("21_1282323999.42098") .param pmc param_236 -.annotate 'line', 555 +.annotate 'line', 569 .lex "$_", param_236 -.annotate 'line', 556 +.annotate 'line', 570 find_lex $P240, "$_" set $S241, $P240 iseq $I242, $S241, "0" @@ -9090,78 +9224,78 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $P247, $P246, 1 store_lex "$count", $P247 if_237_end: -.annotate 'line', 557 +.annotate 'line', 571 new $P248, "Integer" assign $P248, 1 find_lex $P249, "$_" find_lex $P250, "%capnames" - unless_null $P250, vivify_108 + unless_null $P250, vivify_110 $P250 = root_new ['parrot';'Hash'] store_lex "%capnames", $P250 - vivify_108: + vivify_110: set $P250[$P249], $P248 -.annotate 'line', 555 +.annotate 'line', 569 .return ($P248) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block262" :anon :subid("23_1282016526.02169") :outer("21_1282016526.02169") +.sub "_block262" :anon :subid("23_1282323999.42098") :outer("21_1282323999.42098") .param pmc param_264 -.annotate 'line', 560 +.annotate 'line', 574 .lex "$_", param_264 -.annotate 'line', 561 +.annotate 'line', 575 find_lex $P265, "$_" find_lex $P266, "%capnames" - unless_null $P266, vivify_112 + unless_null $P266, vivify_114 $P266 = root_new ['parrot';'Hash'] - vivify_112: + vivify_114: set $P267, $P266[$P265] - unless_null $P267, vivify_113 + unless_null $P267, vivify_115 new $P267, "Undef" - vivify_113: + vivify_115: set $N268, $P267 new $P269, 'Float' set $P269, $N268 find_lex $P270, "$_" find_lex $P271, "%x" - unless_null $P271, vivify_114 + unless_null $P271, vivify_116 $P271 = root_new ['parrot';'Hash'] - vivify_114: + vivify_116: set $P272, $P271[$P270] - unless_null $P272, vivify_115 + unless_null $P272, vivify_117 new $P272, "Undef" - vivify_115: + vivify_117: add $P273, $P269, $P272 find_lex $P274, "$_" find_lex $P275, "%capnames" - unless_null $P275, vivify_116 + unless_null $P275, vivify_118 $P275 = root_new ['parrot';'Hash'] store_lex "%capnames", $P275 - vivify_116: + vivify_118: set $P275[$P274], $P273 -.annotate 'line', 560 +.annotate 'line', 574 .return ($P273) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block180" :anon :subid("19_1282016526.02169") :outer("13_1282016526.02169") -.annotate 'line', 535 - .const 'Sub' $P199 = "20_1282016526.02169" +.sub "_block180" :anon :subid("19_1282323999.42098") :outer("13_1282323999.42098") +.annotate 'line', 549 + .const 'Sub' $P199 = "20_1282323999.42098" capture_lex $P199 -.annotate 'line', 536 +.annotate 'line', 550 new $P182, "Undef" .lex "$name", $P182 -.annotate 'line', 538 +.annotate 'line', 552 $P183 = root_new ['parrot';'ResizablePMCArray'] .lex "@names", $P183 -.annotate 'line', 536 +.annotate 'line', 550 find_lex $P184, "$ast" $P185 = $P184."name"() store_lex "$name", $P185 -.annotate 'line', 537 +.annotate 'line', 551 find_lex $P187, "$name" set $S188, $P187 iseq $I189, $S188, "" @@ -9172,17 +9306,17 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes find_lex $P192, "$name" $P191."name"($P192) if_186_end: -.annotate 'line', 538 +.annotate 'line', 552 $P0 = find_lex '$name' $S0 = $P0 $P193 = split '=', $S0 store_lex "@names", $P193 -.annotate 'line', 543 +.annotate 'line', 557 find_lex $P195, "@names" defined $I196, $P195 - unless $I196, for_undef_119 + unless $I196, for_undef_121 iter $P194, $P195 new $P216, 'ExceptionHandler' set_addr $P216, loop215_handler @@ -9192,7 +9326,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P194, loop215_done shift $P197, $P194 loop215_redo: - .const 'Sub' $P199 = "20_1282016526.02169" + .const 'Sub' $P199 = "20_1282323999.42098" capture_lex $P199 $P199($P197) loop215_next: @@ -9205,18 +9339,18 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P217, .CONTROL_LOOP_REDO, loop215_redo loop215_done: pop_eh - for_undef_119: -.annotate 'line', 535 + for_undef_121: +.annotate 'line', 549 .return ($P194) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block198" :anon :subid("20_1282016526.02169") :outer("19_1282016526.02169") +.sub "_block198" :anon :subid("20_1282323999.42098") :outer("19_1282323999.42098") .param pmc param_200 -.annotate 'line', 543 +.annotate 'line', 557 .lex "$_", param_200 -.annotate 'line', 544 +.annotate 'line', 558 find_lex $P204, "$_" set $S205, $P204 iseq $I206, $S205, "0" @@ -9236,29 +9370,29 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $P211, $P210, 1 store_lex "$count", $P211 if_201_end: -.annotate 'line', 545 +.annotate 'line', 559 new $P212, "Integer" assign $P212, 1 find_lex $P213, "$_" find_lex $P214, "%capnames" - unless_null $P214, vivify_120 + unless_null $P214, vivify_122 $P214 = root_new ['parrot';'Hash'] store_lex "%capnames", $P214 - vivify_120: + vivify_122: set $P214[$P213], $P212 -.annotate 'line', 543 +.annotate 'line', 557 .return ($P212) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block138" :anon :subid("17_1282016526.02169") :outer("13_1282016526.02169") +.sub "_block138" :anon :subid("17_1282323999.42098") :outer("13_1282323999.42098") .param pmc param_141 -.annotate 'line', 527 - .const 'Sub' $P150 = "18_1282016526.02169" +.annotate 'line', 541 + .const 'Sub' $P150 = "18_1282323999.42098" capture_lex $P150 -.annotate 'line', 528 +.annotate 'line', 542 $P140 = root_new ['parrot';'Hash'] .lex "%x", $P140 .lex "$_", param_141 @@ -9266,10 +9400,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes find_lex $P143, "$count" $P144 = "capnames"($P142, $P143) store_lex "%x", $P144 -.annotate 'line', 529 +.annotate 'line', 543 find_lex $P146, "%x" defined $I147, $P146 - unless $I147, for_undef_122 + unless $I147, for_undef_124 iter $P145, $P146 new $P164, 'ExceptionHandler' set_addr $P164, loop163_handler @@ -9279,7 +9413,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P145, loop163_done shift $P148, $P145 loop163_redo: - .const 'Sub' $P150 = "18_1282016526.02169" + .const 'Sub' $P150 = "18_1282323999.42098" capture_lex $P150 $P150($P148) loop163_next: @@ -9292,78 +9426,78 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P165, .CONTROL_LOOP_REDO, loop163_redo loop163_done: pop_eh - for_undef_122: -.annotate 'line', 532 + for_undef_124: +.annotate 'line', 546 find_lex $P166, "%x" - unless_null $P166, vivify_128 + unless_null $P166, vivify_130 $P166 = root_new ['parrot';'Hash'] - vivify_128: + vivify_130: set $P167, $P166[""] - unless_null $P167, vivify_129 + unless_null $P167, vivify_131 new $P167, "Undef" - vivify_129: + vivify_131: store_lex "$count", $P167 -.annotate 'line', 527 +.annotate 'line', 541 .return ($P167) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block149" :anon :subid("18_1282016526.02169") :outer("17_1282016526.02169") +.sub "_block149" :anon :subid("18_1282323999.42098") :outer("17_1282323999.42098") .param pmc param_151 -.annotate 'line', 529 +.annotate 'line', 543 .lex "$_", param_151 -.annotate 'line', 530 +.annotate 'line', 544 find_lex $P152, "$_" find_lex $P153, "%capnames" - unless_null $P153, vivify_123 + unless_null $P153, vivify_125 $P153 = root_new ['parrot';'Hash'] - vivify_123: + vivify_125: set $P154, $P153[$P152] - unless_null $P154, vivify_124 + unless_null $P154, vivify_126 new $P154, "Undef" - vivify_124: + vivify_126: set $N155, $P154 new $P156, 'Float' set $P156, $N155 find_lex $P157, "$_" find_lex $P158, "%x" - unless_null $P158, vivify_125 + unless_null $P158, vivify_127 $P158 = root_new ['parrot';'Hash'] - vivify_125: + vivify_127: set $P159, $P158[$P157] - unless_null $P159, vivify_126 + unless_null $P159, vivify_128 new $P159, "Undef" - vivify_126: + vivify_128: add $P160, $P156, $P159 find_lex $P161, "$_" find_lex $P162, "%capnames" - unless_null $P162, vivify_127 + unless_null $P162, vivify_129 $P162 = root_new ['parrot';'Hash'] store_lex "%capnames", $P162 - vivify_127: + vivify_129: set $P162[$P161], $P160 -.annotate 'line', 529 +.annotate 'line', 543 .return ($P160) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block71" :anon :subid("14_1282016526.02169") :outer("13_1282016526.02169") -.annotate 'line', 513 - .const 'Sub' $P81 = "15_1282016526.02169" +.sub "_block71" :anon :subid("14_1282323999.42098") :outer("13_1282323999.42098") +.annotate 'line', 527 + .const 'Sub' $P81 = "15_1282323999.42098" capture_lex $P81 -.annotate 'line', 514 +.annotate 'line', 528 new $P73, "Undef" .lex "$max", $P73 find_lex $P74, "$count" store_lex "$max", $P74 -.annotate 'line', 515 +.annotate 'line', 529 find_lex $P76, "$ast" $P77 = $P76."list"() defined $I78, $P77 - unless $I78, for_undef_130 + unless $I78, for_undef_132 iter $P75, $P77 new $P126, 'ExceptionHandler' set_addr $P126, loop125_handler @@ -9373,7 +9507,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P75, loop125_done shift $P79, $P75 loop125_redo: - .const 'Sub' $P81 = "15_1282016526.02169" + .const 'Sub' $P81 = "15_1282323999.42098" capture_lex $P81 $P81($P79) loop125_next: @@ -9386,23 +9520,23 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P127, .CONTROL_LOOP_REDO, loop125_redo loop125_done: pop_eh - for_undef_130: -.annotate 'line', 524 + for_undef_132: +.annotate 'line', 538 find_lex $P128, "$max" store_lex "$count", $P128 -.annotate 'line', 513 +.annotate 'line', 527 .return ($P128) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block80" :anon :subid("15_1282016526.02169") :outer("14_1282016526.02169") +.sub "_block80" :anon :subid("15_1282323999.42098") :outer("14_1282323999.42098") .param pmc param_83 -.annotate 'line', 515 - .const 'Sub' $P92 = "16_1282016526.02169" +.annotate 'line', 529 + .const 'Sub' $P92 = "16_1282323999.42098" capture_lex $P92 -.annotate 'line', 516 +.annotate 'line', 530 $P82 = root_new ['parrot';'Hash'] .lex "%x", $P82 .lex "$_", param_83 @@ -9410,10 +9544,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes find_lex $P85, "$count" $P86 = "capnames"($P84, $P85) store_lex "%x", $P86 -.annotate 'line', 517 +.annotate 'line', 531 find_lex $P88, "%x" defined $I89, $P88 - unless $I89, for_undef_131 + unless $I89, for_undef_133 iter $P87, $P88 new $P113, 'ExceptionHandler' set_addr $P113, loop112_handler @@ -9423,7 +9557,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P87, loop112_done shift $P90, $P87 loop112_redo: - .const 'Sub' $P92 = "16_1282016526.02169" + .const 'Sub' $P92 = "16_1282323999.42098" capture_lex $P92 $P92($P90) loop112_next: @@ -9436,16 +9570,16 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P114, .CONTROL_LOOP_REDO, loop112_redo loop112_done: pop_eh - for_undef_131: -.annotate 'line', 522 + for_undef_133: +.annotate 'line', 536 find_lex $P117, "%x" - unless_null $P117, vivify_137 + unless_null $P117, vivify_139 $P117 = root_new ['parrot';'Hash'] - vivify_137: + vivify_139: set $P118, $P117[""] - unless_null $P118, vivify_138 + unless_null $P118, vivify_140 new $P118, "Undef" - vivify_138: + vivify_140: set $N119, $P118 find_lex $P120, "$max" set $N121, $P120 @@ -9456,36 +9590,36 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes goto if_116_end if_116: find_lex $P123, "%x" - unless_null $P123, vivify_139 + unless_null $P123, vivify_141 $P123 = root_new ['parrot';'Hash'] - vivify_139: + vivify_141: set $P124, $P123[""] - unless_null $P124, vivify_140 + unless_null $P124, vivify_142 new $P124, "Undef" - vivify_140: + vivify_142: store_lex "$max", $P124 set $P115, $P124 if_116_end: -.annotate 'line', 515 +.annotate 'line', 529 .return ($P115) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block91" :anon :subid("16_1282016526.02169") :outer("15_1282016526.02169") +.sub "_block91" :anon :subid("16_1282323999.42098") :outer("15_1282323999.42098") .param pmc param_93 -.annotate 'line', 517 +.annotate 'line', 531 .lex "$_", param_93 -.annotate 'line', 518 +.annotate 'line', 532 find_lex $P98, "$_" find_lex $P99, "%capnames" - unless_null $P99, vivify_132 + unless_null $P99, vivify_134 $P99 = root_new ['parrot';'Hash'] - vivify_132: + vivify_134: set $P100, $P99[$P98] - unless_null $P100, vivify_133 + unless_null $P100, vivify_135 new $P100, "Undef" - vivify_133: + vivify_135: set $N101, $P100 islt $I102, $N101, 2.0 if $I102, if_97 @@ -9495,13 +9629,13 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes if_97: find_lex $P103, "$_" find_lex $P104, "%x" - unless_null $P104, vivify_134 + unless_null $P104, vivify_136 $P104 = root_new ['parrot';'Hash'] - vivify_134: + vivify_136: set $P105, $P104[$P103] - unless_null $P105, vivify_135 + unless_null $P105, vivify_137 new $P105, "Undef" - vivify_135: + vivify_137: set $N106, $P105 iseq $I107, $N106, 1.0 new $P96, 'Integer' @@ -9517,37 +9651,37 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes assign $P108, 1 set $P94, $P108 if_95_end: -.annotate 'line', 519 +.annotate 'line', 533 find_lex $P110, "$_" find_lex $P111, "%capnames" - unless_null $P111, vivify_136 + unless_null $P111, vivify_138 $P111 = root_new ['parrot';'Hash'] store_lex "%capnames", $P111 - vivify_136: + vivify_138: set $P111[$P110], $P94 -.annotate 'line', 517 +.annotate 'line', 531 .return ($P94) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backmod" :subid("26_1282016526.02169") :outer("11_1282016526.02169") +.sub "backmod" :subid("26_1282323999.42098") :outer("11_1282323999.42098") .param pmc param_315 .param pmc param_316 -.annotate 'line', 576 +.annotate 'line', 590 new $P314, 'ExceptionHandler' set_addr $P314, control_313 $P314."handle_types"(.CONTROL_RETURN) push_eh $P314 .lex "$ast", param_315 .lex "$backmod", param_316 -.annotate 'line', 577 +.annotate 'line', 591 find_lex $P318, "$backmod" set $S319, $P318 iseq $I320, $S319, ":" if $I320, if_317 -.annotate 'line', 578 +.annotate 'line', 592 find_lex $P325, "$backmod" set $S326, $P325 iseq $I327, $S326, ":?" @@ -9563,7 +9697,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes set $P323, $I330 unless_324_end: if $P323, if_322 -.annotate 'line', 579 +.annotate 'line', 593 find_lex $P335, "$backmod" set $S336, $P335 iseq $I337, $S336, ":!" @@ -9584,18 +9718,18 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes if_332_end: goto if_322_end if_322: -.annotate 'line', 578 +.annotate 'line', 592 find_lex $P331, "$ast" $P331."backtrack"("f") if_322_end: goto if_317_end if_317: -.annotate 'line', 577 +.annotate 'line', 591 find_lex $P321, "$ast" $P321."backtrack"("r") if_317_end: find_lex $P342, "$ast" -.annotate 'line', 576 +.annotate 'line', 590 .return ($P342) control_313: .local pmc exception @@ -9607,7 +9741,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "arg" :subid("27_1282016526.02169") :method :outer("11_1282016526.02169") +.sub "arg" :subid("27_1282323999.42098") :method :outer("11_1282323999.42098") .param pmc param_349 .annotate 'line', 14 new $P348, 'ExceptionHandler' @@ -9619,35 +9753,35 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 15 find_lex $P350, "$/" find_lex $P353, "$/" - unless_null $P353, vivify_142 + unless_null $P353, vivify_144 $P353 = root_new ['parrot';'Hash'] - vivify_142: + vivify_144: set $P354, $P353["quote_EXPR"] - unless_null $P354, vivify_143 + unless_null $P354, vivify_145 new $P354, "Undef" - vivify_143: + vivify_145: if $P354, if_352 find_lex $P358, "$/" - unless_null $P358, vivify_144 + unless_null $P358, vivify_146 $P358 = root_new ['parrot';'Hash'] - vivify_144: + vivify_146: set $P359, $P358["val"] - unless_null $P359, vivify_145 + unless_null $P359, vivify_147 new $P359, "Undef" - vivify_145: + vivify_147: set $N360, $P359 new $P351, 'Float' set $P351, $N360 goto if_352_end if_352: find_lex $P355, "$/" - unless_null $P355, vivify_146 + unless_null $P355, vivify_148 $P355 = root_new ['parrot';'Hash'] - vivify_146: + vivify_148: set $P356, $P355["quote_EXPR"] - unless_null $P356, vivify_147 + unless_null $P356, vivify_149 new $P356, "Undef" - vivify_147: + vivify_149: $P357 = $P356."ast"() set $P351, $P357 if_352_end: @@ -9664,10 +9798,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "arglist" :subid("28_1282016526.02169") :method :outer("11_1282016526.02169") +.sub "arglist" :subid("28_1282323999.42098") :method :outer("11_1282323999.42098") .param pmc param_366 .annotate 'line', 18 - .const 'Sub' $P376 = "29_1282016526.02169" + .const 'Sub' $P376 = "29_1282323999.42098" capture_lex $P376 new $P365, 'ExceptionHandler' set_addr $P365, control_364 @@ -9683,15 +9817,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes store_lex "$past", $P369 .annotate 'line', 20 find_lex $P371, "$/" - unless_null $P371, vivify_148 + unless_null $P371, vivify_150 $P371 = root_new ['parrot';'Hash'] - vivify_148: + vivify_150: set $P372, $P371["arg"] - unless_null $P372, vivify_149 + unless_null $P372, vivify_151 new $P372, "Undef" - vivify_149: + vivify_151: defined $I373, $P372 - unless $I373, for_undef_150 + unless $I373, for_undef_152 iter $P370, $P372 new $P383, 'ExceptionHandler' set_addr $P383, loop382_handler @@ -9701,7 +9835,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P370, loop382_done shift $P374, $P370 loop382_redo: - .const 'Sub' $P376 = "29_1282016526.02169" + .const 'Sub' $P376 = "29_1282323999.42098" capture_lex $P376 $P376($P374) loop382_next: @@ -9714,7 +9848,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P384, .CONTROL_LOOP_REDO, loop382_redo loop382_done: pop_eh - for_undef_150: + for_undef_152: .annotate 'line', 21 find_lex $P385, "$/" find_lex $P386, "$past" @@ -9730,7 +9864,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block375" :anon :subid("29_1282016526.02169") :outer("28_1282016526.02169") +.sub "_block375" :anon :subid("29_1282323999.42098") :outer("28_1282323999.42098") .param pmc param_377 .annotate 'line', 20 .lex "$_", param_377 @@ -9744,7 +9878,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "TOP" :subid("30_1282016526.02169") :method :outer("11_1282016526.02169") +.sub "TOP" :subid("30_1282323999.42098") :method :outer("11_1282323999.42098") .param pmc param_392 .annotate 'line', 24 new $P391, 'ExceptionHandler' @@ -9757,13 +9891,13 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes new $P393, "Undef" .lex "$past", $P393 find_lex $P394, "$/" - unless_null $P394, vivify_151 + unless_null $P394, vivify_153 $P394 = root_new ['parrot';'Hash'] - vivify_151: + vivify_153: set $P395, $P394["nibbler"] - unless_null $P395, vivify_152 + unless_null $P395, vivify_154 new $P395, "Undef" - vivify_152: + vivify_154: $P396 = $P395."ast"() $P397 = "buildsub"($P396) store_lex "$past", $P397 @@ -9787,14 +9921,14 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "nibbler" :subid("31_1282016526.02169") :method :outer("11_1282016526.02169") +.sub "nibbler" :subid("31_1282323999.42098") :method :outer("11_1282323999.42098") .param pmc param_407 .param pmc param_408 :optional .param int has_param_408 :opt_flag .annotate 'line', 30 - .const 'Sub' $P443 = "33_1282016526.02169" + .const 'Sub' $P443 = "33_1282323999.42098" capture_lex $P443 - .const 'Sub' $P416 = "32_1282016526.02169" + .const 'Sub' $P416 = "32_1282323999.42098" capture_lex $P416 new $P406, 'ExceptionHandler' set_addr $P406, control_405 @@ -9802,10 +9936,10 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes push_eh $P406 .lex "self", self .lex "$/", param_407 - if has_param_408, optparam_153 + if has_param_408, optparam_155 new $P409, "Undef" set param_408, $P409 - optparam_153: + optparam_155: .lex "$key", param_408 .annotate 'line', 39 new $P410, "Undef" @@ -9815,7 +9949,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes set $S413, $P412 iseq $I414, $S413, "open" unless $I414, if_411_end - .const 'Sub' $P416 = "32_1282016526.02169" + .const 'Sub' $P416 = "32_1282323999.42098" capture_lex $P416 $P416() if_411_end: @@ -9825,29 +9959,29 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes find_lex $P428, "$past" .annotate 'line', 40 find_lex $P430, "$/" - unless_null $P430, vivify_156 + unless_null $P430, vivify_158 $P430 = root_new ['parrot';'Hash'] - vivify_156: - set $P431, $P430["termish"] - unless_null $P431, vivify_157 + vivify_158: + set $P431, $P430["termconj"] + unless_null $P431, vivify_159 new $P431, "Undef" - vivify_157: + vivify_159: set $N432, $P431 isgt $I433, $N432, 1.0 if $I433, if_429 .annotate 'line', 47 find_lex $P452, "$/" - unless_null $P452, vivify_158 + unless_null $P452, vivify_160 $P452 = root_new ['parrot';'Hash'] - vivify_158: - set $P453, $P452["termish"] - unless_null $P453, vivify_159 + vivify_160: + set $P453, $P452["termconj"] + unless_null $P453, vivify_161 $P453 = root_new ['parrot';'ResizablePMCArray'] - vivify_159: + vivify_161: set $P454, $P453[0] - unless_null $P454, vivify_160 + unless_null $P454, vivify_162 new $P454, "Undef" - vivify_160: + vivify_162: $P455 = $P454."ast"() store_lex "$past", $P455 .annotate 'line', 46 @@ -9860,15 +9994,15 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes store_lex "$past", $P436 .annotate 'line', 42 find_lex $P438, "$/" - unless_null $P438, vivify_161 + unless_null $P438, vivify_163 $P438 = root_new ['parrot';'Hash'] - vivify_161: - set $P439, $P438["termish"] - unless_null $P439, vivify_162 + vivify_163: + set $P439, $P438["termconj"] + unless_null $P439, vivify_164 new $P439, "Undef" - vivify_162: + vivify_164: defined $I440, $P439 - unless $I440, for_undef_163 + unless $I440, for_undef_165 iter $P437, $P439 new $P450, 'ExceptionHandler' set_addr $P450, loop449_handler @@ -9878,7 +10012,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes unless $P437, loop449_done shift $P441, $P437 loop449_redo: - .const 'Sub' $P443 = "33_1282016526.02169" + .const 'Sub' $P443 = "33_1282323999.42098" capture_lex $P443 $P443($P441) loop449_next: @@ -9891,7 +10025,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes eq $P451, .CONTROL_LOOP_REDO, loop449_redo loop449_done: pop_eh - for_undef_163: + for_undef_165: if_429_end: .annotate 'line', 49 find_lex $P456, "$/" @@ -9909,7 +10043,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "_block415" :anon :subid("32_1282016526.02169") :outer("31_1282016526.02169") +.sub "_block415" :anon :subid("32_1282323999.42098") :outer("31_1282323999.42098") .annotate 'line', 32 $P417 = root_new ['parrot';'Hash'] .lex "%old", $P417 @@ -9918,13 +10052,13 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .lex "%new", $P418 .annotate 'line', 32 get_global $P419, "@MODIFIERS" - unless_null $P419, vivify_154 + unless_null $P419, vivify_156 $P419 = root_new ['parrot';'ResizablePMCArray'] - vivify_154: + vivify_156: set $P420, $P419[0] - unless_null $P420, vivify_155 + unless_null $P420, vivify_157 new $P420, "Undef" - vivify_155: + vivify_157: store_lex "%old", $P420 .annotate 'line', 33 find_lex $P421, "%old" @@ -9947,7 +10081,7 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block442" :anon :subid("33_1282016526.02169") :outer("31_1282016526.02169") +.sub "_block442" :anon :subid("33_1282323999.42098") :outer("31_1282323999.42098") .param pmc param_444 .annotate 'line', 42 .lex "$_", param_444 @@ -9963,11 +10097,11 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "termish" :subid("34_1282016526.02169") :method :outer("11_1282016526.02169") +.sub "termconj" :subid("34_1282323999.42098") :method :outer("11_1282323999.42098") .param pmc param_463 .annotate 'line', 52 - .const 'Sub' $P476 = "35_1282016526.02169" - capture_lex $P476 + .const 'Sub' $P480 = "35_1282323999.42098" + capture_lex $P480 new $P462, 'ExceptionHandler' set_addr $P462, control_461 $P462."handle_types"(.CONTROL_RETURN) @@ -9977,2724 +10111,2841 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes .annotate 'line', 53 new $P464, "Undef" .lex "$past", $P464 +.annotate 'line', 52 + find_lex $P465, "$past" .annotate 'line', 54 - new $P465, "Undef" - .lex "$lastlit", $P465 -.annotate 'line', 53 - get_hll_global $P466, ["PAST"], "Regex" find_lex $P467, "$/" - $P468 = $P466."new"("concat" :named("pasttype"), $P467 :named("node")) - store_lex "$past", $P468 -.annotate 'line', 54 - new $P469, "Integer" - assign $P469, 0 - store_lex "$lastlit", $P469 + unless_null $P467, vivify_166 + $P467 = root_new ['parrot';'Hash'] + vivify_166: + set $P468, $P467["termish"] + unless_null $P468, vivify_167 + new $P468, "Undef" + vivify_167: + set $N469, $P468 + isgt $I470, $N469, 1.0 + if $I470, if_466 +.annotate 'line', 61 + find_lex $P489, "$/" + unless_null $P489, vivify_168 + $P489 = root_new ['parrot';'Hash'] + vivify_168: + set $P490, $P489["termish"] + unless_null $P490, vivify_169 + $P490 = root_new ['parrot';'ResizablePMCArray'] + vivify_169: + set $P491, $P490[0] + unless_null $P491, vivify_170 + new $P491, "Undef" + vivify_170: + $P492 = $P491."ast"() + store_lex "$past", $P492 +.annotate 'line', 60 + goto if_466_end + if_466: .annotate 'line', 55 - find_lex $P471, "$/" - unless_null $P471, vivify_164 - $P471 = root_new ['parrot';'Hash'] - vivify_164: - set $P472, $P471["noun"] - unless_null $P472, vivify_165 - new $P472, "Undef" - vivify_165: - defined $I473, $P472 - unless $I473, for_undef_166 - iter $P470, $P472 - new $P522, 'ExceptionHandler' - set_addr $P522, loop521_handler - $P522."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST) - push_eh $P522 - loop521_test: - unless $P470, loop521_done - shift $P474, $P470 - loop521_redo: - .const 'Sub' $P476 = "35_1282016526.02169" - capture_lex $P476 - $P476($P474) - loop521_next: - goto loop521_test - loop521_handler: + get_hll_global $P471, ["PAST"], "Regex" + find_lex $P472, "$/" + $P473 = $P471."new"("conj" :named("pasttype"), $P472 :named("node")) + store_lex "$past", $P473 +.annotate 'line', 56 + find_lex $P475, "$/" + unless_null $P475, vivify_171 + $P475 = root_new ['parrot';'Hash'] + vivify_171: + set $P476, $P475["termish"] + unless_null $P476, vivify_172 + new $P476, "Undef" + vivify_172: + defined $I477, $P476 + unless $I477, for_undef_173 + iter $P474, $P476 + new $P487, 'ExceptionHandler' + set_addr $P487, loop486_handler + $P487."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST) + push_eh $P487 + loop486_test: + unless $P474, loop486_done + shift $P478, $P474 + loop486_redo: + .const 'Sub' $P480 = "35_1282323999.42098" + capture_lex $P480 + $P480($P478) + loop486_next: + goto loop486_test + loop486_handler: .local pmc exception .get_results (exception) - getattribute $P523, exception, 'type' - eq $P523, .CONTROL_LOOP_NEXT, loop521_next - eq $P523, .CONTROL_LOOP_REDO, loop521_redo - loop521_done: + getattribute $P488, exception, 'type' + eq $P488, .CONTROL_LOOP_NEXT, loop486_next + eq $P488, .CONTROL_LOOP_REDO, loop486_redo + loop486_done: pop_eh - for_undef_166: -.annotate 'line', 70 - find_lex $P524, "$/" - find_lex $P525, "$past" - $P526 = $P524."!make"($P525) + for_undef_173: + if_466_end: +.annotate 'line', 63 + find_lex $P493, "$/" + find_lex $P494, "$past" + $P495 = $P493."!make"($P494) .annotate 'line', 52 - .return ($P526) + .return ($P495) control_461: .local pmc exception .get_results (exception) - getattribute $P527, exception, "payload" - .return ($P527) + getattribute $P496, exception, "payload" + .return ($P496) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block475" :anon :subid("35_1282016526.02169") :outer("34_1282016526.02169") - .param pmc param_478 +.sub "_block479" :anon :subid("35_1282323999.42098") :outer("34_1282323999.42098") + .param pmc param_481 .annotate 'line', 56 - new $P477, "Undef" - .lex "$ast", $P477 - .lex "$_", param_478 - find_lex $P479, "$_" - $P480 = $P479."ast"() - store_lex "$ast", $P480 + .lex "$_", param_481 .annotate 'line', 57 - find_lex $P483, "$ast" - if $P483, if_482 - set $P481, $P483 - goto if_482_end - if_482: -.annotate 'line', 58 - find_lex $P490, "$lastlit" - if $P490, if_489 - set $P488, $P490 - goto if_489_end - if_489: - find_lex $P491, "$ast" - $S492 = $P491."pasttype"() - iseq $I493, $S492, "literal" - new $P488, 'Integer' - set $P488, $I493 - if_489_end: - if $P488, if_487 - set $P486, $P488 - goto if_487_end - if_487: -.annotate 'line', 59 - get_hll_global $P494, ["PAST"], "Node" - find_lex $P495, "$ast" - unless_null $P495, vivify_167 - $P495 = root_new ['parrot';'ResizablePMCArray'] - vivify_167: - set $P496, $P495[0] - unless_null $P496, vivify_168 - new $P496, "Undef" - vivify_168: - $P497 = $P494."ACCEPTS"($P496) - isfalse $I498, $P497 - new $P486, 'Integer' - set $P486, $I498 - if_487_end: - if $P486, if_485 -.annotate 'line', 63 - find_lex $P505, "$past" - find_lex $P506, "$ast" - $P505."push"($P506) -.annotate 'line', 64 - find_lex $P511, "$ast" - $S512 = $P511."pasttype"() - iseq $I513, $S512, "literal" - if $I513, if_510 - new $P509, 'Integer' - set $P509, $I513 - goto if_510_end - if_510: -.annotate 'line', 65 - get_hll_global $P514, ["PAST"], "Node" - find_lex $P515, "$ast" - unless_null $P515, vivify_169 - $P515 = root_new ['parrot';'ResizablePMCArray'] - vivify_169: - set $P516, $P515[0] - unless_null $P516, vivify_170 - new $P516, "Undef" - vivify_170: - $P517 = $P514."ACCEPTS"($P516) - isfalse $I518, $P517 - new $P509, 'Integer' - set $P509, $I518 - if_510_end: - if $P509, if_508 - new $P520, "Integer" - assign $P520, 0 - set $P507, $P520 - goto if_508_end - if_508: - find_lex $P519, "$ast" - set $P507, $P519 - if_508_end: + find_lex $P482, "$past" + find_lex $P483, "$_" + $P484 = $P483."ast"() + $P485 = $P482."push"($P484) +.annotate 'line', 56 + .return ($P485) +.end + + +.namespace ["Regex";"P6Regex";"Actions"] +.include "except_types.pasm" +.sub "termish" :subid("36_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_500 .annotate 'line', 66 - store_lex "$lastlit", $P507 -.annotate 'line', 62 - set $P484, $P507 -.annotate 'line', 59 - goto if_485_end - if_485: -.annotate 'line', 60 - find_lex $P499, "$lastlit" - unless_null $P499, vivify_171 - $P499 = root_new ['parrot';'ResizablePMCArray'] - vivify_171: - set $P500, $P499[0] - unless_null $P500, vivify_172 - new $P500, "Undef" - vivify_172: - find_lex $P501, "$ast" - unless_null $P501, vivify_173 - $P501 = root_new ['parrot';'ResizablePMCArray'] - vivify_173: - set $P502, $P501[0] - unless_null $P502, vivify_174 + .const 'Sub' $P513 = "37_1282323999.42098" + capture_lex $P513 + new $P499, 'ExceptionHandler' + set_addr $P499, control_498 + $P499."handle_types"(.CONTROL_RETURN) + push_eh $P499 + .lex "self", self + .lex "$/", param_500 +.annotate 'line', 67 + new $P501, "Undef" + .lex "$past", $P501 +.annotate 'line', 68 new $P502, "Undef" + .lex "$lastlit", $P502 +.annotate 'line', 67 + get_hll_global $P503, ["PAST"], "Regex" + find_lex $P504, "$/" + $P505 = $P503."new"("concat" :named("pasttype"), $P504 :named("node")) + store_lex "$past", $P505 +.annotate 'line', 68 + new $P506, "Integer" + assign $P506, 0 + store_lex "$lastlit", $P506 +.annotate 'line', 69 + find_lex $P508, "$/" + unless_null $P508, vivify_174 + $P508 = root_new ['parrot';'Hash'] vivify_174: - concat $P503, $P500, $P502 - find_lex $P504, "$lastlit" - unless_null $P504, vivify_175 - $P504 = root_new ['parrot';'ResizablePMCArray'] - store_lex "$lastlit", $P504 + set $P509, $P508["noun"] + unless_null $P509, vivify_175 + new $P509, "Undef" vivify_175: - set $P504[0], $P503 -.annotate 'line', 59 - set $P484, $P503 - if_485_end: -.annotate 'line', 57 - set $P481, $P484 - if_482_end: -.annotate 'line', 55 - .return ($P481) + defined $I510, $P509 + unless $I510, for_undef_176 + iter $P507, $P509 + new $P559, 'ExceptionHandler' + set_addr $P559, loop558_handler + $P559."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST) + push_eh $P559 + loop558_test: + unless $P507, loop558_done + shift $P511, $P507 + loop558_redo: + .const 'Sub' $P513 = "37_1282323999.42098" + capture_lex $P513 + $P513($P511) + loop558_next: + goto loop558_test + loop558_handler: + .local pmc exception + .get_results (exception) + getattribute $P560, exception, 'type' + eq $P560, .CONTROL_LOOP_NEXT, loop558_next + eq $P560, .CONTROL_LOOP_REDO, loop558_redo + loop558_done: + pop_eh + for_undef_176: +.annotate 'line', 84 + find_lex $P561, "$/" + find_lex $P562, "$past" + $P563 = $P561."!make"($P562) +.annotate 'line', 66 + .return ($P563) + control_498: + .local pmc exception + .get_results (exception) + getattribute $P564, exception, "payload" + .return ($P564) .end .namespace ["Regex";"P6Regex";"Actions"] -.include "except_types.pasm" -.sub "quantified_atom" :subid("36_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_531 +.sub "_block512" :anon :subid("37_1282323999.42098") :outer("36_1282323999.42098") + .param pmc param_515 +.annotate 'line', 70 + new $P514, "Undef" + .lex "$ast", $P514 + .lex "$_", param_515 + find_lex $P516, "$_" + $P517 = $P516."ast"() + store_lex "$ast", $P517 +.annotate 'line', 71 + find_lex $P520, "$ast" + if $P520, if_519 + set $P518, $P520 + goto if_519_end + if_519: +.annotate 'line', 72 + find_lex $P527, "$lastlit" + if $P527, if_526 + set $P525, $P527 + goto if_526_end + if_526: + find_lex $P528, "$ast" + $S529 = $P528."pasttype"() + iseq $I530, $S529, "literal" + new $P525, 'Integer' + set $P525, $I530 + if_526_end: + if $P525, if_524 + set $P523, $P525 + goto if_524_end + if_524: .annotate 'line', 73 - .const 'Sub' $P540 = "37_1282016526.02169" - capture_lex $P540 - new $P530, 'ExceptionHandler' - set_addr $P530, control_529 - $P530."handle_types"(.CONTROL_RETURN) - push_eh $P530 - .lex "self", self - .lex "$/", param_531 -.annotate 'line', 74 - new $P532, "Undef" - .lex "$past", $P532 - find_lex $P533, "$/" - unless_null $P533, vivify_176 - $P533 = root_new ['parrot';'Hash'] - vivify_176: - set $P534, $P533["atom"] - unless_null $P534, vivify_177 - new $P534, "Undef" + get_hll_global $P531, ["PAST"], "Node" + find_lex $P532, "$ast" + unless_null $P532, vivify_177 + $P532 = root_new ['parrot';'ResizablePMCArray'] vivify_177: - $P535 = $P534."ast"() - store_lex "$past", $P535 -.annotate 'line', 75 - find_lex $P537, "$/" - unless_null $P537, vivify_178 - $P537 = root_new ['parrot';'Hash'] + set $P533, $P532[0] + unless_null $P533, vivify_178 + new $P533, "Undef" vivify_178: - set $P538, $P537["quantifier"] - unless_null $P538, vivify_179 - new $P538, "Undef" + $P534 = $P531."ACCEPTS"($P533) + isfalse $I535, $P534 + new $P523, 'Integer' + set $P523, $I535 + if_524_end: + if $P523, if_522 +.annotate 'line', 77 + find_lex $P542, "$past" + find_lex $P543, "$ast" + $P542."push"($P543) +.annotate 'line', 78 + find_lex $P548, "$ast" + $S549 = $P548."pasttype"() + iseq $I550, $S549, "literal" + if $I550, if_547 + new $P546, 'Integer' + set $P546, $I550 + goto if_547_end + if_547: +.annotate 'line', 79 + get_hll_global $P551, ["PAST"], "Node" + find_lex $P552, "$ast" + unless_null $P552, vivify_179 + $P552 = root_new ['parrot';'ResizablePMCArray'] vivify_179: - if $P538, if_536 -.annotate 'line', 81 - find_lex $P555, "$/" - unless_null $P555, vivify_180 - $P555 = root_new ['parrot';'Hash'] + set $P553, $P552[0] + unless_null $P553, vivify_180 + new $P553, "Undef" vivify_180: - set $P556, $P555["backmod"] - unless_null $P556, vivify_181 - $P556 = root_new ['parrot';'ResizablePMCArray'] + $P554 = $P551."ACCEPTS"($P553) + isfalse $I555, $P554 + new $P546, 'Integer' + set $P546, $I555 + if_547_end: + if $P546, if_545 + new $P557, "Integer" + assign $P557, 0 + set $P544, $P557 + goto if_545_end + if_545: + find_lex $P556, "$ast" + set $P544, $P556 + if_545_end: +.annotate 'line', 80 + store_lex "$lastlit", $P544 +.annotate 'line', 76 + set $P521, $P544 +.annotate 'line', 73 + goto if_522_end + if_522: +.annotate 'line', 74 + find_lex $P536, "$lastlit" + unless_null $P536, vivify_181 + $P536 = root_new ['parrot';'ResizablePMCArray'] vivify_181: - set $P557, $P556[0] - unless_null $P557, vivify_182 - new $P557, "Undef" + set $P537, $P536[0] + unless_null $P537, vivify_182 + new $P537, "Undef" vivify_182: - unless $P557, if_554_end - find_lex $P558, "$past" - find_lex $P559, "$/" - unless_null $P559, vivify_183 - $P559 = root_new ['parrot';'Hash'] + find_lex $P538, "$ast" + unless_null $P538, vivify_183 + $P538 = root_new ['parrot';'ResizablePMCArray'] vivify_183: - set $P560, $P559["backmod"] - unless_null $P560, vivify_184 - $P560 = root_new ['parrot';'ResizablePMCArray'] + set $P539, $P538[0] + unless_null $P539, vivify_184 + new $P539, "Undef" vivify_184: - set $P561, $P560[0] - unless_null $P561, vivify_185 - new $P561, "Undef" + concat $P540, $P537, $P539 + find_lex $P541, "$lastlit" + unless_null $P541, vivify_185 + $P541 = root_new ['parrot';'ResizablePMCArray'] + store_lex "$lastlit", $P541 vivify_185: - "backmod"($P558, $P561) - if_554_end: - goto if_536_end - if_536: -.annotate 'line', 75 - .const 'Sub' $P540 = "37_1282016526.02169" - capture_lex $P540 - $P540() - if_536_end: -.annotate 'line', 82 - find_lex $P567, "$past" - if $P567, if_566 - set $P565, $P567 - goto if_566_end - if_566: - find_lex $P568, "$past" - $P569 = $P568."backtrack"() - isfalse $I570, $P569 - new $P565, 'Integer' - set $P565, $I570 - if_566_end: - if $P565, if_564 - set $P563, $P565 - goto if_564_end - if_564: - get_global $P571, "@MODIFIERS" - unless_null $P571, vivify_189 - $P571 = root_new ['parrot';'ResizablePMCArray'] - vivify_189: - set $P572, $P571[0] - unless_null $P572, vivify_190 - $P572 = root_new ['parrot';'Hash'] - vivify_190: - set $P573, $P572["r"] - unless_null $P573, vivify_191 - new $P573, "Undef" - vivify_191: - set $P563, $P573 - if_564_end: - unless $P563, if_562_end -.annotate 'line', 83 - find_lex $P574, "$past" - $P574."backtrack"("r") - if_562_end: -.annotate 'line', 85 - find_lex $P575, "$/" - find_lex $P576, "$past" - $P577 = $P575."!make"($P576) + set $P541[0], $P540 .annotate 'line', 73 - .return ($P577) - control_529: - .local pmc exception - .get_results (exception) - getattribute $P578, exception, "payload" - .return ($P578) -.end - - -.namespace ["Regex";"P6Regex";"Actions"] -.sub "_block539" :anon :subid("37_1282016526.02169") :outer("36_1282016526.02169") -.annotate 'line', 77 - new $P541, "Undef" - .lex "$qast", $P541 -.annotate 'line', 76 - find_lex $P543, "$past" - isfalse $I544, $P543 - unless $I544, if_542_end - find_lex $P545, "$/" - $P546 = $P545."CURSOR"() - $P546."panic"("Quantifier follows nothing") - if_542_end: -.annotate 'line', 77 - find_lex $P547, "$/" - unless_null $P547, vivify_186 - $P547 = root_new ['parrot';'Hash'] - vivify_186: - set $P548, $P547["quantifier"] - unless_null $P548, vivify_187 - $P548 = root_new ['parrot';'ResizablePMCArray'] - vivify_187: - set $P549, $P548[0] - unless_null $P549, vivify_188 - new $P549, "Undef" - vivify_188: - $P550 = $P549."ast"() - store_lex "$qast", $P550 -.annotate 'line', 78 - find_lex $P551, "$qast" - find_lex $P552, "$past" - $P551."unshift"($P552) -.annotate 'line', 79 - find_lex $P553, "$qast" - store_lex "$past", $P553 -.annotate 'line', 75 - .return ($P553) + set $P521, $P540 + if_522_end: +.annotate 'line', 71 + set $P518, $P521 + if_519_end: +.annotate 'line', 69 + .return ($P518) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "atom" :subid("38_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_582 -.annotate 'line', 88 - new $P581, 'ExceptionHandler' - set_addr $P581, control_580 - $P581."handle_types"(.CONTROL_RETURN) - push_eh $P581 +.sub "quantified_atom" :subid("38_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_568 +.annotate 'line', 87 + .const 'Sub' $P577 = "39_1282323999.42098" + capture_lex $P577 + new $P567, 'ExceptionHandler' + set_addr $P567, control_566 + $P567."handle_types"(.CONTROL_RETURN) + push_eh $P567 .lex "self", self - .lex "$/", param_582 -.annotate 'line', 89 - new $P583, "Undef" - .lex "$past", $P583 + .lex "$/", param_568 .annotate 'line', 88 - find_lex $P584, "$past" -.annotate 'line', 90 - find_lex $P586, "$/" - unless_null $P586, vivify_192 - $P586 = root_new ['parrot';'Hash'] + new $P569, "Undef" + .lex "$past", $P569 + find_lex $P570, "$/" + unless_null $P570, vivify_186 + $P570 = root_new ['parrot';'Hash'] + vivify_186: + set $P571, $P570["atom"] + unless_null $P571, vivify_187 + new $P571, "Undef" + vivify_187: + $P572 = $P571."ast"() + store_lex "$past", $P572 +.annotate 'line', 89 + find_lex $P574, "$/" + unless_null $P574, vivify_188 + $P574 = root_new ['parrot';'Hash'] + vivify_188: + set $P575, $P574["quantifier"] + unless_null $P575, vivify_189 + new $P575, "Undef" + vivify_189: + if $P575, if_573 +.annotate 'line', 95 + find_lex $P592, "$/" + unless_null $P592, vivify_190 + $P592 = root_new ['parrot';'Hash'] + vivify_190: + set $P593, $P592["backmod"] + unless_null $P593, vivify_191 + $P593 = root_new ['parrot';'ResizablePMCArray'] + vivify_191: + set $P594, $P593[0] + unless_null $P594, vivify_192 + new $P594, "Undef" vivify_192: - set $P587, $P586["metachar"] - unless_null $P587, vivify_193 - new $P587, "Undef" + unless $P594, if_591_end + find_lex $P595, "$past" + find_lex $P596, "$/" + unless_null $P596, vivify_193 + $P596 = root_new ['parrot';'Hash'] vivify_193: - if $P587, if_585 -.annotate 'line', 92 - get_hll_global $P591, ["PAST"], "Regex" - find_lex $P592, "$/" - set $S593, $P592 - find_lex $P594, "$/" - $P595 = $P591."new"($S593, "literal" :named("pasttype"), $P594 :named("node")) - store_lex "$past", $P595 -.annotate 'line', 93 - get_global $P597, "@MODIFIERS" + set $P597, $P596["backmod"] unless_null $P597, vivify_194 $P597 = root_new ['parrot';'ResizablePMCArray'] vivify_194: set $P598, $P597[0] unless_null $P598, vivify_195 - $P598 = root_new ['parrot';'Hash'] + new $P598, "Undef" vivify_195: - set $P599, $P598["i"] - unless_null $P599, vivify_196 - new $P599, "Undef" - vivify_196: - unless $P599, if_596_end - find_lex $P600, "$past" - $P600."subtype"("ignorecase") - if_596_end: -.annotate 'line', 91 - goto if_585_end - if_585: -.annotate 'line', 90 - find_lex $P588, "$/" - unless_null $P588, vivify_197 - $P588 = root_new ['parrot';'Hash'] - vivify_197: - set $P589, $P588["metachar"] - unless_null $P589, vivify_198 - new $P589, "Undef" - vivify_198: - $P590 = $P589."ast"() - store_lex "$past", $P590 - if_585_end: -.annotate 'line', 95 - find_lex $P601, "$/" - find_lex $P602, "$past" - $P603 = $P601."!make"($P602) -.annotate 'line', 88 - .return ($P603) - control_580: + "backmod"($P595, $P598) + if_591_end: + goto if_573_end + if_573: +.annotate 'line', 89 + .const 'Sub' $P577 = "39_1282323999.42098" + capture_lex $P577 + $P577() + if_573_end: +.annotate 'line', 96 + find_lex $P604, "$past" + if $P604, if_603 + set $P602, $P604 + goto if_603_end + if_603: + find_lex $P605, "$past" + $P606 = $P605."backtrack"() + isfalse $I607, $P606 + new $P602, 'Integer' + set $P602, $I607 + if_603_end: + if $P602, if_601 + set $P600, $P602 + goto if_601_end + if_601: + get_global $P608, "@MODIFIERS" + unless_null $P608, vivify_199 + $P608 = root_new ['parrot';'ResizablePMCArray'] + vivify_199: + set $P609, $P608[0] + unless_null $P609, vivify_200 + $P609 = root_new ['parrot';'Hash'] + vivify_200: + set $P610, $P609["r"] + unless_null $P610, vivify_201 + new $P610, "Undef" + vivify_201: + set $P600, $P610 + if_601_end: + unless $P600, if_599_end +.annotate 'line', 97 + find_lex $P611, "$past" + $P611."backtrack"("r") + if_599_end: +.annotate 'line', 99 + find_lex $P612, "$/" + find_lex $P613, "$past" + $P614 = $P612."!make"($P613) +.annotate 'line', 87 + .return ($P614) + control_566: .local pmc exception .get_results (exception) - getattribute $P604, exception, "payload" - .return ($P604) + getattribute $P615, exception, "payload" + .return ($P615) .end .namespace ["Regex";"P6Regex";"Actions"] -.include "except_types.pasm" -.sub "quantifier:sym<*>" :subid("39_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_608 -.annotate 'line', 98 - new $P607, 'ExceptionHandler' - set_addr $P607, control_606 - $P607."handle_types"(.CONTROL_RETURN) - push_eh $P607 - .lex "self", self - .lex "$/", param_608 -.annotate 'line', 99 - new $P609, "Undef" - .lex "$past", $P609 - get_hll_global $P610, ["PAST"], "Regex" - find_lex $P611, "$/" - $P612 = $P610."new"("quant" :named("pasttype"), $P611 :named("node")) - store_lex "$past", $P612 -.annotate 'line', 100 - find_lex $P613, "$/" - find_lex $P614, "$past" - find_lex $P615, "$/" - unless_null $P615, vivify_199 - $P615 = root_new ['parrot';'Hash'] - vivify_199: - set $P616, $P615["backmod"] - unless_null $P616, vivify_200 - new $P616, "Undef" - vivify_200: - $P617 = "backmod"($P614, $P616) - $P618 = $P613."!make"($P617) -.annotate 'line', 98 - .return ($P618) - control_606: - .local pmc exception - .get_results (exception) - getattribute $P619, exception, "payload" - .return ($P619) +.sub "_block576" :anon :subid("39_1282323999.42098") :outer("38_1282323999.42098") +.annotate 'line', 91 + new $P578, "Undef" + .lex "$qast", $P578 +.annotate 'line', 90 + find_lex $P580, "$past" + isfalse $I581, $P580 + unless $I581, if_579_end + find_lex $P582, "$/" + $P583 = $P582."CURSOR"() + $P583."panic"("Quantifier follows nothing") + if_579_end: +.annotate 'line', 91 + find_lex $P584, "$/" + unless_null $P584, vivify_196 + $P584 = root_new ['parrot';'Hash'] + vivify_196: + set $P585, $P584["quantifier"] + unless_null $P585, vivify_197 + $P585 = root_new ['parrot';'ResizablePMCArray'] + vivify_197: + set $P586, $P585[0] + unless_null $P586, vivify_198 + new $P586, "Undef" + vivify_198: + $P587 = $P586."ast"() + store_lex "$qast", $P587 +.annotate 'line', 92 + find_lex $P588, "$qast" + find_lex $P589, "$past" + $P588."unshift"($P589) +.annotate 'line', 93 + find_lex $P590, "$qast" + store_lex "$past", $P590 +.annotate 'line', 89 + .return ($P590) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "quantifier:sym<+>" :subid("40_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_623 -.annotate 'line', 103 - new $P622, 'ExceptionHandler' - set_addr $P622, control_621 - $P622."handle_types"(.CONTROL_RETURN) - push_eh $P622 +.sub "atom" :subid("40_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_619 +.annotate 'line', 102 + new $P618, 'ExceptionHandler' + set_addr $P618, control_617 + $P618."handle_types"(.CONTROL_RETURN) + push_eh $P618 .lex "self", self - .lex "$/", param_623 + .lex "$/", param_619 +.annotate 'line', 103 + new $P620, "Undef" + .lex "$past", $P620 +.annotate 'line', 102 + find_lex $P621, "$past" .annotate 'line', 104 + find_lex $P623, "$/" + unless_null $P623, vivify_202 + $P623 = root_new ['parrot';'Hash'] + vivify_202: + set $P624, $P623["metachar"] + unless_null $P624, vivify_203 new $P624, "Undef" - .lex "$past", $P624 - get_hll_global $P625, ["PAST"], "Regex" - find_lex $P626, "$/" - $P627 = $P625."new"("quant" :named("pasttype"), 1 :named("min"), $P626 :named("node")) - store_lex "$past", $P627 + vivify_203: + if $P624, if_622 +.annotate 'line', 106 + get_hll_global $P628, ["PAST"], "Regex" + find_lex $P629, "$/" + set $S630, $P629 + find_lex $P631, "$/" + $P632 = $P628."new"($S630, "literal" :named("pasttype"), $P631 :named("node")) + store_lex "$past", $P632 +.annotate 'line', 107 + get_global $P634, "@MODIFIERS" + unless_null $P634, vivify_204 + $P634 = root_new ['parrot';'ResizablePMCArray'] + vivify_204: + set $P635, $P634[0] + unless_null $P635, vivify_205 + $P635 = root_new ['parrot';'Hash'] + vivify_205: + set $P636, $P635["i"] + unless_null $P636, vivify_206 + new $P636, "Undef" + vivify_206: + unless $P636, if_633_end + find_lex $P637, "$past" + $P637."subtype"("ignorecase") + if_633_end: .annotate 'line', 105 - find_lex $P628, "$/" - find_lex $P629, "$past" - find_lex $P630, "$/" - unless_null $P630, vivify_201 - $P630 = root_new ['parrot';'Hash'] - vivify_201: - set $P631, $P630["backmod"] - unless_null $P631, vivify_202 - new $P631, "Undef" - vivify_202: - $P632 = "backmod"($P629, $P631) - $P633 = $P628."!make"($P632) -.annotate 'line', 103 - .return ($P633) - control_621: + goto if_622_end + if_622: +.annotate 'line', 104 + find_lex $P625, "$/" + unless_null $P625, vivify_207 + $P625 = root_new ['parrot';'Hash'] + vivify_207: + set $P626, $P625["metachar"] + unless_null $P626, vivify_208 + new $P626, "Undef" + vivify_208: + $P627 = $P626."ast"() + store_lex "$past", $P627 + if_622_end: +.annotate 'line', 109 + find_lex $P638, "$/" + find_lex $P639, "$past" + $P640 = $P638."!make"($P639) +.annotate 'line', 102 + .return ($P640) + control_617: .local pmc exception .get_results (exception) - getattribute $P634, exception, "payload" - .return ($P634) + getattribute $P641, exception, "payload" + .return ($P641) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "quantifier:sym" :subid("41_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_638 -.annotate 'line', 108 - new $P637, 'ExceptionHandler' - set_addr $P637, control_636 - $P637."handle_types"(.CONTROL_RETURN) - push_eh $P637 +.sub "quantifier:sym<*>" :subid("41_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_645 +.annotate 'line', 112 + new $P644, 'ExceptionHandler' + set_addr $P644, control_643 + $P644."handle_types"(.CONTROL_RETURN) + push_eh $P644 .lex "self", self - .lex "$/", param_638 -.annotate 'line', 109 - new $P639, "Undef" - .lex "$past", $P639 - get_hll_global $P640, ["PAST"], "Regex" - find_lex $P641, "$/" - $P642 = $P640."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P641 :named("node")) - store_lex "$past", $P642 -.annotate 'line', 110 - find_lex $P643, "$/" - find_lex $P644, "$past" - find_lex $P645, "$/" - unless_null $P645, vivify_203 - $P645 = root_new ['parrot';'Hash'] - vivify_203: - set $P646, $P645["backmod"] - unless_null $P646, vivify_204 + .lex "$/", param_645 +.annotate 'line', 113 new $P646, "Undef" - vivify_204: - $P647 = "backmod"($P644, $P646) - $P643."!make"($P647) -.annotate 'line', 111 + .lex "$past", $P646 + get_hll_global $P647, ["PAST"], "Regex" find_lex $P648, "$/" - find_lex $P649, "$past" - $P650 = $P648."!make"($P649) -.annotate 'line', 108 - .return ($P650) - control_636: + $P649 = $P647."new"("quant" :named("pasttype"), $P648 :named("node")) + store_lex "$past", $P649 +.annotate 'line', 114 + find_lex $P650, "$/" + find_lex $P651, "$past" + find_lex $P652, "$/" + unless_null $P652, vivify_209 + $P652 = root_new ['parrot';'Hash'] + vivify_209: + set $P653, $P652["backmod"] + unless_null $P653, vivify_210 + new $P653, "Undef" + vivify_210: + $P654 = "backmod"($P651, $P653) + $P655 = $P650."!make"($P654) +.annotate 'line', 112 + .return ($P655) + control_643: .local pmc exception .get_results (exception) - getattribute $P651, exception, "payload" - .return ($P651) + getattribute $P656, exception, "payload" + .return ($P656) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "quantifier:sym<**>" :subid("42_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_655 -.annotate 'line', 114 - .const 'Sub' $P670 = "43_1282016526.02169" - capture_lex $P670 - new $P654, 'ExceptionHandler' - set_addr $P654, control_653 - $P654."handle_types"(.CONTROL_RETURN) - push_eh $P654 - .lex "self", self - .lex "$/", param_655 -.annotate 'line', 115 - new $P656, "Undef" - .lex "$past", $P656 -.annotate 'line', 116 - new $P657, "Undef" - .lex "$ws", $P657 -.annotate 'line', 114 - find_lex $P658, "$past" -.annotate 'line', 116 - find_lex $P661, "$/" - unless_null $P661, vivify_205 - $P661 = root_new ['parrot';'Hash'] - vivify_205: - set $P662, $P661["normspace"] - unless_null $P662, vivify_206 - new $P662, "Undef" - vivify_206: - if $P662, if_660 - set $P659, $P662 - goto if_660_end - if_660: - get_global $P663, "@MODIFIERS" - unless_null $P663, vivify_207 - $P663 = root_new ['parrot';'ResizablePMCArray'] - vivify_207: - set $P664, $P663[0] - unless_null $P664, vivify_208 - $P664 = root_new ['parrot';'Hash'] - vivify_208: - set $P665, $P664["s"] - unless_null $P665, vivify_209 - new $P665, "Undef" - vivify_209: - set $P659, $P665 - if_660_end: - store_lex "$ws", $P659 +.sub "quantifier:sym<+>" :subid("42_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_660 .annotate 'line', 117 + new $P659, 'ExceptionHandler' + set_addr $P659, control_658 + $P659."handle_types"(.CONTROL_RETURN) + push_eh $P659 + .lex "self", self + .lex "$/", param_660 +.annotate 'line', 118 + new $P661, "Undef" + .lex "$past", $P661 + get_hll_global $P662, ["PAST"], "Regex" + find_lex $P663, "$/" + $P664 = $P662."new"("quant" :named("pasttype"), 1 :named("min"), $P663 :named("node")) + store_lex "$past", $P664 +.annotate 'line', 119 + find_lex $P665, "$/" + find_lex $P666, "$past" find_lex $P667, "$/" - unless_null $P667, vivify_210 + unless_null $P667, vivify_211 $P667 = root_new ['parrot';'Hash'] - vivify_210: - set $P668, $P667["quantified_atom"] - unless_null $P668, vivify_211 - new $P668, "Undef" vivify_211: - if $P668, if_666 -.annotate 'line', 133 - get_hll_global $P688, ["PAST"], "Regex" - find_lex $P689, "$/" - unless_null $P689, vivify_212 - $P689 = root_new ['parrot';'Hash'] + set $P668, $P667["backmod"] + unless_null $P668, vivify_212 + new $P668, "Undef" vivify_212: - set $P690, $P689["min"] - unless_null $P690, vivify_213 - new $P690, "Undef" - vivify_213: - set $N691, $P690 - find_lex $P692, "$/" - $P693 = $P688."new"("quant" :named("pasttype"), $N691 :named("min"), $P692 :named("node")) - store_lex "$past", $P693 -.annotate 'line', 134 - find_lex $P695, "$/" - unless_null $P695, vivify_214 - $P695 = root_new ['parrot';'Hash'] - vivify_214: - set $P696, $P695["max"] - unless_null $P696, vivify_215 - new $P696, "Undef" - vivify_215: - isfalse $I697, $P696 - if $I697, if_694 -.annotate 'line', 135 - find_lex $P703, "$/" - unless_null $P703, vivify_216 - $P703 = root_new ['parrot';'Hash'] - vivify_216: - set $P704, $P703["max"] - unless_null $P704, vivify_217 - $P704 = root_new ['parrot';'ResizablePMCArray'] - vivify_217: - set $P705, $P704[0] - unless_null $P705, vivify_218 - new $P705, "Undef" - vivify_218: - set $S706, $P705 - isne $I707, $S706, "*" - unless $I707, if_702_end - find_lex $P708, "$past" - find_lex $P709, "$/" - unless_null $P709, vivify_219 - $P709 = root_new ['parrot';'Hash'] - vivify_219: - set $P710, $P709["max"] - unless_null $P710, vivify_220 - $P710 = root_new ['parrot';'ResizablePMCArray'] - vivify_220: - set $P711, $P710[0] - unless_null $P711, vivify_221 - new $P711, "Undef" - vivify_221: - set $N712, $P711 - $P708."max"($N712) - if_702_end: - goto if_694_end - if_694: -.annotate 'line', 134 - find_lex $P698, "$past" - find_lex $P699, "$/" - unless_null $P699, vivify_222 - $P699 = root_new ['parrot';'Hash'] - vivify_222: - set $P700, $P699["min"] - unless_null $P700, vivify_223 - new $P700, "Undef" - vivify_223: - set $N701, $P700 - $P698."max"($N701) - if_694_end: -.annotate 'line', 136 - find_lex $P714, "$ws" - unless $P714, if_713_end - find_lex $P715, "$past" - get_hll_global $P716, ["PAST"], "Regex" - $P717 = $P716."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype")) - $P715."sep"($P717) - if_713_end: -.annotate 'line', 132 - goto if_666_end - if_666: + $P669 = "backmod"($P666, $P668) + $P670 = $P665."!make"($P669) .annotate 'line', 117 - .const 'Sub' $P670 = "43_1282016526.02169" - capture_lex $P670 - $P670() - if_666_end: -.annotate 'line', 140 - find_lex $P718, "$/" - find_lex $P719, "$past" - find_lex $P720, "$/" - unless_null $P720, vivify_226 - $P720 = root_new ['parrot';'Hash'] - vivify_226: - set $P721, $P720["backmod"] - unless_null $P721, vivify_227 - new $P721, "Undef" - vivify_227: - $P722 = "backmod"($P719, $P721) - $P723 = $P718."!make"($P722) -.annotate 'line', 114 - .return ($P723) - control_653: + .return ($P670) + control_658: .local pmc exception .get_results (exception) - getattribute $P724, exception, "payload" - .return ($P724) + getattribute $P671, exception, "payload" + .return ($P671) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block669" :anon :subid("43_1282016526.02169") :outer("42_1282016526.02169") -.annotate 'line', 118 - new $P671, "Undef" - .lex "$ast", $P671 - find_lex $P672, "$/" - unless_null $P672, vivify_224 - $P672 = root_new ['parrot';'Hash'] - vivify_224: - set $P673, $P672["quantified_atom"] - unless_null $P673, vivify_225 - new $P673, "Undef" - vivify_225: - $P674 = $P673."ast"() - store_lex "$ast", $P674 -.annotate 'line', 119 - find_lex $P676, "$ws" - unless $P676, if_675_end -.annotate 'line', 120 - get_hll_global $P677, ["PAST"], "Regex" +.include "except_types.pasm" +.sub "quantifier:sym" :subid("43_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_675 .annotate 'line', 122 - get_hll_global $P678, ["PAST"], "Regex" - $P679 = $P678."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype")) - find_lex $P680, "$ast" + new $P674, 'ExceptionHandler' + set_addr $P674, control_673 + $P674."handle_types"(.CONTROL_RETURN) + push_eh $P674 + .lex "self", self + .lex "$/", param_675 +.annotate 'line', 123 + new $P676, "Undef" + .lex "$past", $P676 + get_hll_global $P677, ["PAST"], "Regex" + find_lex $P678, "$/" + $P679 = $P677."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P678 :named("node")) + store_lex "$past", $P679 +.annotate 'line', 124 + find_lex $P680, "$/" + find_lex $P681, "$past" + find_lex $P682, "$/" + unless_null $P682, vivify_213 + $P682 = root_new ['parrot';'Hash'] + vivify_213: + set $P683, $P682["backmod"] + unless_null $P683, vivify_214 + new $P683, "Undef" + vivify_214: + $P684 = "backmod"($P681, $P683) + $P680."!make"($P684) .annotate 'line', 125 - get_hll_global $P681, ["PAST"], "Regex" - $P682 = $P681."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype")) - $P683 = $P677."new"($P679, $P680, $P682, "concat" :named("pasttype")) -.annotate 'line', 120 - store_lex "$ast", $P683 - if_675_end: -.annotate 'line', 129 - get_hll_global $P684, ["PAST"], "Regex" - find_lex $P685, "$ast" - find_lex $P686, "$/" - $P687 = $P684."new"("quant" :named("pasttype"), 1 :named("min"), $P685 :named("sep"), $P686 :named("node")) - store_lex "$past", $P687 -.annotate 'line', 117 + find_lex $P685, "$/" + find_lex $P686, "$past" + $P687 = $P685."!make"($P686) +.annotate 'line', 122 .return ($P687) + control_673: + .local pmc exception + .get_results (exception) + getattribute $P688, exception, "payload" + .return ($P688) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("44_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_728 -.annotate 'line', 143 - new $P727, 'ExceptionHandler' - set_addr $P727, control_726 - $P727."handle_types"(.CONTROL_RETURN) - push_eh $P727 +.sub "quantifier:sym<**>" :subid("44_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_692 +.annotate 'line', 128 + .const 'Sub' $P707 = "45_1282323999.42098" + capture_lex $P707 + new $P691, 'ExceptionHandler' + set_addr $P691, control_690 + $P691."handle_types"(.CONTROL_RETURN) + push_eh $P691 .lex "self", self - .lex "$/", param_728 -.annotate 'line', 144 - new $P729, "Undef" - .lex "$past", $P729 -.annotate 'line', 145 - get_global $P732, "@MODIFIERS" - unless_null $P732, vivify_228 - $P732 = root_new ['parrot';'ResizablePMCArray'] + .lex "$/", param_692 +.annotate 'line', 129 + new $P693, "Undef" + .lex "$past", $P693 +.annotate 'line', 130 + new $P694, "Undef" + .lex "$ws", $P694 +.annotate 'line', 128 + find_lex $P695, "$past" +.annotate 'line', 130 + find_lex $P698, "$/" + unless_null $P698, vivify_215 + $P698 = root_new ['parrot';'Hash'] + vivify_215: + set $P699, $P698["normspace"] + unless_null $P699, vivify_216 + new $P699, "Undef" + vivify_216: + if $P699, if_697 + set $P696, $P699 + goto if_697_end + if_697: + get_global $P700, "@MODIFIERS" + unless_null $P700, vivify_217 + $P700 = root_new ['parrot';'ResizablePMCArray'] + vivify_217: + set $P701, $P700[0] + unless_null $P701, vivify_218 + $P701 = root_new ['parrot';'Hash'] + vivify_218: + set $P702, $P701["s"] + unless_null $P702, vivify_219 + new $P702, "Undef" + vivify_219: + set $P696, $P702 + if_697_end: + store_lex "$ws", $P696 +.annotate 'line', 131 + find_lex $P704, "$/" + unless_null $P704, vivify_220 + $P704 = root_new ['parrot';'Hash'] + vivify_220: + set $P705, $P704["quantified_atom"] + unless_null $P705, vivify_221 + new $P705, "Undef" + vivify_221: + if $P705, if_703 +.annotate 'line', 147 + get_hll_global $P725, ["PAST"], "Regex" + find_lex $P726, "$/" + unless_null $P726, vivify_222 + $P726 = root_new ['parrot';'Hash'] + vivify_222: + set $P727, $P726["min"] + unless_null $P727, vivify_223 + new $P727, "Undef" + vivify_223: + set $N728, $P727 + find_lex $P729, "$/" + $P730 = $P725."new"("quant" :named("pasttype"), $N728 :named("min"), $P729 :named("node")) + store_lex "$past", $P730 +.annotate 'line', 148 + find_lex $P732, "$/" + unless_null $P732, vivify_224 + $P732 = root_new ['parrot';'Hash'] + vivify_224: + set $P733, $P732["max"] + unless_null $P733, vivify_225 + new $P733, "Undef" + vivify_225: + isfalse $I734, $P733 + if $I734, if_731 +.annotate 'line', 149 + find_lex $P740, "$/" + unless_null $P740, vivify_226 + $P740 = root_new ['parrot';'Hash'] + vivify_226: + set $P741, $P740["max"] + unless_null $P741, vivify_227 + $P741 = root_new ['parrot';'ResizablePMCArray'] + vivify_227: + set $P742, $P741[0] + unless_null $P742, vivify_228 + new $P742, "Undef" vivify_228: - set $P733, $P732[0] - unless_null $P733, vivify_229 - $P733 = root_new ['parrot';'Hash'] + set $S743, $P742 + isne $I744, $S743, "*" + unless $I744, if_739_end + find_lex $P745, "$past" + find_lex $P746, "$/" + unless_null $P746, vivify_229 + $P746 = root_new ['parrot';'Hash'] vivify_229: - set $P734, $P733["s"] - unless_null $P734, vivify_230 - new $P734, "Undef" + set $P747, $P746["max"] + unless_null $P747, vivify_230 + $P747 = root_new ['parrot';'ResizablePMCArray'] vivify_230: - if $P734, if_731 - new $P738, "Integer" - assign $P738, 0 - set $P730, $P738 + set $P748, $P747[0] + unless_null $P748, vivify_231 + new $P748, "Undef" + vivify_231: + set $N749, $P748 + $P745."max"($N749) + if_739_end: goto if_731_end if_731: - get_hll_global $P735, ["PAST"], "Regex" +.annotate 'line', 148 + find_lex $P735, "$past" find_lex $P736, "$/" - $P737 = $P735."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P736 :named("node")) - set $P730, $P737 + unless_null $P736, vivify_232 + $P736 = root_new ['parrot';'Hash'] + vivify_232: + set $P737, $P736["min"] + unless_null $P737, vivify_233 + new $P737, "Undef" + vivify_233: + set $N738, $P737 + $P735."max"($N738) if_731_end: - store_lex "$past", $P730 -.annotate 'line', 148 - find_lex $P739, "$/" - find_lex $P740, "$past" - $P741 = $P739."!make"($P740) -.annotate 'line', 143 - .return ($P741) - control_726: +.annotate 'line', 150 + find_lex $P751, "$ws" + unless $P751, if_750_end + find_lex $P752, "$past" + get_hll_global $P753, ["PAST"], "Regex" + $P754 = $P753."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype")) + $P752."sep"($P754) + if_750_end: +.annotate 'line', 146 + goto if_703_end + if_703: +.annotate 'line', 131 + .const 'Sub' $P707 = "45_1282323999.42098" + capture_lex $P707 + $P707() + if_703_end: +.annotate 'line', 154 + find_lex $P755, "$/" + find_lex $P756, "$past" + find_lex $P757, "$/" + unless_null $P757, vivify_236 + $P757 = root_new ['parrot';'Hash'] + vivify_236: + set $P758, $P757["backmod"] + unless_null $P758, vivify_237 + new $P758, "Undef" + vivify_237: + $P759 = "backmod"($P756, $P758) + $P760 = $P755."!make"($P759) +.annotate 'line', 128 + .return ($P760) + control_690: .local pmc exception .get_results (exception) - getattribute $P742, exception, "payload" - .return ($P742) + getattribute $P761, exception, "payload" + .return ($P761) .end .namespace ["Regex";"P6Regex";"Actions"] -.include "except_types.pasm" -.sub "metachar:sym<[ ]>" :subid("45_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_746 -.annotate 'line', 152 - new $P745, 'ExceptionHandler' - set_addr $P745, control_744 - $P745."handle_types"(.CONTROL_RETURN) - push_eh $P745 - .lex "self", self - .lex "$/", param_746 -.annotate 'line', 153 - find_lex $P747, "$/" - find_lex $P748, "$/" - unless_null $P748, vivify_231 - $P748 = root_new ['parrot';'Hash'] - vivify_231: - set $P749, $P748["nibbler"] - unless_null $P749, vivify_232 - new $P749, "Undef" - vivify_232: - $P750 = $P749."ast"() - $P751 = $P747."!make"($P750) -.annotate 'line', 152 - .return ($P751) - control_744: - .local pmc exception - .get_results (exception) - getattribute $P752, exception, "payload" - .return ($P752) +.sub "_block706" :anon :subid("45_1282323999.42098") :outer("44_1282323999.42098") +.annotate 'line', 132 + new $P708, "Undef" + .lex "$ast", $P708 + find_lex $P709, "$/" + unless_null $P709, vivify_234 + $P709 = root_new ['parrot';'Hash'] + vivify_234: + set $P710, $P709["quantified_atom"] + unless_null $P710, vivify_235 + new $P710, "Undef" + vivify_235: + $P711 = $P710."ast"() + store_lex "$ast", $P711 +.annotate 'line', 133 + find_lex $P713, "$ws" + unless $P713, if_712_end +.annotate 'line', 134 + get_hll_global $P714, ["PAST"], "Regex" +.annotate 'line', 136 + get_hll_global $P715, ["PAST"], "Regex" + $P716 = $P715."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype")) + find_lex $P717, "$ast" +.annotate 'line', 139 + get_hll_global $P718, ["PAST"], "Regex" + $P719 = $P718."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype")) + $P720 = $P714."new"($P716, $P717, $P719, "concat" :named("pasttype")) +.annotate 'line', 134 + store_lex "$ast", $P720 + if_712_end: +.annotate 'line', 143 + get_hll_global $P721, ["PAST"], "Regex" + find_lex $P722, "$ast" + find_lex $P723, "$/" + $P724 = $P721."new"("quant" :named("pasttype"), 1 :named("min"), $P722 :named("sep"), $P723 :named("node")) + store_lex "$past", $P724 +.annotate 'line', 131 + .return ($P724) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<( )>" :subid("46_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_756 -.annotate 'line', 156 - new $P755, 'ExceptionHandler' - set_addr $P755, control_754 - $P755."handle_types"(.CONTROL_RETURN) - push_eh $P755 - .lex "self", self - .lex "$/", param_756 +.sub "metachar:sym" :subid("46_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_765 .annotate 'line', 157 - new $P757, "Undef" - .lex "$subpast", $P757 + new $P764, 'ExceptionHandler' + set_addr $P764, control_763 + $P764."handle_types"(.CONTROL_RETURN) + push_eh $P764 + .lex "self", self + .lex "$/", param_765 .annotate 'line', 158 - new $P758, "Undef" - .lex "$past", $P758 + new $P766, "Undef" + .lex "$past", $P766 +.annotate 'line', 159 + get_global $P769, "@MODIFIERS" + unless_null $P769, vivify_238 + $P769 = root_new ['parrot';'ResizablePMCArray'] + vivify_238: + set $P770, $P769[0] + unless_null $P770, vivify_239 + $P770 = root_new ['parrot';'Hash'] + vivify_239: + set $P771, $P770["s"] + unless_null $P771, vivify_240 + new $P771, "Undef" + vivify_240: + if $P771, if_768 + new $P775, "Integer" + assign $P775, 0 + set $P767, $P775 + goto if_768_end + if_768: + get_hll_global $P772, ["PAST"], "Regex" + find_lex $P773, "$/" + $P774 = $P772."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P773 :named("node")) + set $P767, $P774 + if_768_end: + store_lex "$past", $P767 +.annotate 'line', 162 + find_lex $P776, "$/" + find_lex $P777, "$past" + $P778 = $P776."!make"($P777) .annotate 'line', 157 - find_lex $P759, "$/" - unless_null $P759, vivify_233 - $P759 = root_new ['parrot';'Hash'] - vivify_233: - set $P760, $P759["nibbler"] - unless_null $P760, vivify_234 - new $P760, "Undef" - vivify_234: - $P761 = $P760."ast"() - $P762 = "buildsub"($P761) - store_lex "$subpast", $P762 -.annotate 'line', 158 - get_hll_global $P763, ["PAST"], "Regex" - find_lex $P764, "$subpast" - find_lex $P765, "$/" - $P766 = $P763."new"($P764, "subrule" :named("pasttype"), "capture" :named("subtype"), $P765 :named("node")) - store_lex "$past", $P766 -.annotate 'line', 160 - find_lex $P767, "$/" - find_lex $P768, "$past" - $P769 = $P767."!make"($P768) -.annotate 'line', 156 - .return ($P769) - control_754: + .return ($P778) + control_763: .local pmc exception .get_results (exception) - getattribute $P770, exception, "payload" - .return ($P770) + getattribute $P779, exception, "payload" + .return ($P779) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<'>" :subid("47_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_774 -.annotate 'line', 163 - new $P773, 'ExceptionHandler' - set_addr $P773, control_772 - $P773."handle_types"(.CONTROL_RETURN) - push_eh $P773 - .lex "self", self - .lex "$/", param_774 -.annotate 'line', 164 - new $P775, "Undef" - .lex "$quote", $P775 +.sub "metachar:sym<[ ]>" :subid("47_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_783 .annotate 'line', 166 - new $P776, "Undef" - .lex "$past", $P776 -.annotate 'line', 164 - find_lex $P777, "$/" - unless_null $P777, vivify_235 - $P777 = root_new ['parrot';'Hash'] - vivify_235: - set $P778, $P777["quote_EXPR"] - unless_null $P778, vivify_236 - new $P778, "Undef" - vivify_236: - $P779 = $P778."ast"() - store_lex "$quote", $P779 -.annotate 'line', 165 - get_hll_global $P781, ["PAST"], "Val" - find_lex $P782, "$quote" - $P783 = $P781."ACCEPTS"($P782) - unless $P783, if_780_end - find_lex $P784, "$quote" - $P785 = $P784."value"() - store_lex "$quote", $P785 - if_780_end: -.annotate 'line', 166 - get_hll_global $P786, ["PAST"], "Regex" - find_lex $P787, "$quote" - find_lex $P788, "$/" - $P789 = $P786."new"($P787, "literal" :named("pasttype"), $P788 :named("node")) - store_lex "$past", $P789 + new $P782, 'ExceptionHandler' + set_addr $P782, control_781 + $P782."handle_types"(.CONTROL_RETURN) + push_eh $P782 + .lex "self", self + .lex "$/", param_783 .annotate 'line', 167 - get_global $P791, "@MODIFIERS" - unless_null $P791, vivify_237 - $P791 = root_new ['parrot';'ResizablePMCArray'] - vivify_237: - set $P792, $P791[0] - unless_null $P792, vivify_238 - $P792 = root_new ['parrot';'Hash'] - vivify_238: - set $P793, $P792["i"] - unless_null $P793, vivify_239 - new $P793, "Undef" - vivify_239: - unless $P793, if_790_end - find_lex $P794, "$past" - $P794."subtype"("ignorecase") - if_790_end: -.annotate 'line', 168 - find_lex $P795, "$/" - find_lex $P796, "$past" - $P797 = $P795."!make"($P796) -.annotate 'line', 163 - .return ($P797) - control_772: + find_lex $P784, "$/" + find_lex $P785, "$/" + unless_null $P785, vivify_241 + $P785 = root_new ['parrot';'Hash'] + vivify_241: + set $P786, $P785["nibbler"] + unless_null $P786, vivify_242 + new $P786, "Undef" + vivify_242: + $P787 = $P786."ast"() + $P788 = $P784."!make"($P787) +.annotate 'line', 166 + .return ($P788) + control_781: .local pmc exception .get_results (exception) - getattribute $P798, exception, "payload" - .return ($P798) + getattribute $P789, exception, "payload" + .return ($P789) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<\">" :subid("48_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_802 -.annotate 'line', 171 - new $P801, 'ExceptionHandler' - set_addr $P801, control_800 - $P801."handle_types"(.CONTROL_RETURN) - push_eh $P801 +.sub "metachar:sym<( )>" :subid("48_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_793 +.annotate 'line', 170 + new $P792, 'ExceptionHandler' + set_addr $P792, control_791 + $P792."handle_types"(.CONTROL_RETURN) + push_eh $P792 .lex "self", self - .lex "$/", param_802 -.annotate 'line', 172 - new $P803, "Undef" - .lex "$quote", $P803 -.annotate 'line', 174 - new $P804, "Undef" - .lex "$past", $P804 + .lex "$/", param_793 +.annotate 'line', 171 + new $P794, "Undef" + .lex "$subpast", $P794 .annotate 'line', 172 - find_lex $P805, "$/" - unless_null $P805, vivify_240 - $P805 = root_new ['parrot';'Hash'] - vivify_240: - set $P806, $P805["quote_EXPR"] - unless_null $P806, vivify_241 - new $P806, "Undef" - vivify_241: - $P807 = $P806."ast"() - store_lex "$quote", $P807 -.annotate 'line', 173 - get_hll_global $P809, ["PAST"], "Val" - find_lex $P810, "$quote" - $P811 = $P809."ACCEPTS"($P810) - unless $P811, if_808_end - find_lex $P812, "$quote" - $P813 = $P812."value"() - store_lex "$quote", $P813 - if_808_end: -.annotate 'line', 174 - get_hll_global $P814, ["PAST"], "Regex" - find_lex $P815, "$quote" - find_lex $P816, "$/" - $P817 = $P814."new"($P815, "literal" :named("pasttype"), $P816 :named("node")) - store_lex "$past", $P817 -.annotate 'line', 175 - get_global $P819, "@MODIFIERS" - unless_null $P819, vivify_242 - $P819 = root_new ['parrot';'ResizablePMCArray'] - vivify_242: - set $P820, $P819[0] - unless_null $P820, vivify_243 - $P820 = root_new ['parrot';'Hash'] + new $P795, "Undef" + .lex "$past", $P795 +.annotate 'line', 171 + find_lex $P796, "$/" + unless_null $P796, vivify_243 + $P796 = root_new ['parrot';'Hash'] vivify_243: - set $P821, $P820["i"] - unless_null $P821, vivify_244 - new $P821, "Undef" + set $P797, $P796["nibbler"] + unless_null $P797, vivify_244 + new $P797, "Undef" vivify_244: - unless $P821, if_818_end - find_lex $P822, "$past" - $P822."subtype"("ignorecase") - if_818_end: -.annotate 'line', 176 - find_lex $P823, "$/" - find_lex $P824, "$past" - $P825 = $P823."!make"($P824) -.annotate 'line', 171 - .return ($P825) - control_800: + $P798 = $P797."ast"() + $P799 = "buildsub"($P798) + store_lex "$subpast", $P799 +.annotate 'line', 172 + get_hll_global $P800, ["PAST"], "Regex" + find_lex $P801, "$subpast" + find_lex $P802, "$/" + $P803 = $P800."new"($P801, "subrule" :named("pasttype"), "capture" :named("subtype"), $P802 :named("node")) + store_lex "$past", $P803 +.annotate 'line', 174 + find_lex $P804, "$/" + find_lex $P805, "$past" + $P806 = $P804."!make"($P805) +.annotate 'line', 170 + .return ($P806) + control_791: .local pmc exception .get_results (exception) - getattribute $P826, exception, "payload" - .return ($P826) + getattribute $P807, exception, "payload" + .return ($P807) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<.>" :subid("49_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_830 -.annotate 'line', 179 - new $P829, 'ExceptionHandler' - set_addr $P829, control_828 - $P829."handle_types"(.CONTROL_RETURN) - push_eh $P829 +.sub "metachar:sym<'>" :subid("49_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_811 +.annotate 'line', 177 + new $P810, 'ExceptionHandler' + set_addr $P810, control_809 + $P810."handle_types"(.CONTROL_RETURN) + push_eh $P810 .lex "self", self - .lex "$/", param_830 + .lex "$/", param_811 +.annotate 'line', 178 + new $P812, "Undef" + .lex "$quote", $P812 .annotate 'line', 180 - new $P831, "Undef" - .lex "$past", $P831 - get_hll_global $P832, ["PAST"], "Regex" - find_lex $P833, "$/" - $P834 = $P832."new"("charclass" :named("pasttype"), "." :named("subtype"), $P833 :named("node")) - store_lex "$past", $P834 -.annotate 'line', 181 - find_lex $P835, "$/" - find_lex $P836, "$past" - $P837 = $P835."!make"($P836) + new $P813, "Undef" + .lex "$past", $P813 +.annotate 'line', 178 + find_lex $P814, "$/" + unless_null $P814, vivify_245 + $P814 = root_new ['parrot';'Hash'] + vivify_245: + set $P815, $P814["quote_EXPR"] + unless_null $P815, vivify_246 + new $P815, "Undef" + vivify_246: + $P816 = $P815."ast"() + store_lex "$quote", $P816 .annotate 'line', 179 - .return ($P837) - control_828: + get_hll_global $P818, ["PAST"], "Val" + find_lex $P819, "$quote" + $P820 = $P818."ACCEPTS"($P819) + unless $P820, if_817_end + find_lex $P821, "$quote" + $P822 = $P821."value"() + store_lex "$quote", $P822 + if_817_end: +.annotate 'line', 180 + get_hll_global $P823, ["PAST"], "Regex" + find_lex $P824, "$quote" + find_lex $P825, "$/" + $P826 = $P823."new"($P824, "literal" :named("pasttype"), $P825 :named("node")) + store_lex "$past", $P826 +.annotate 'line', 181 + get_global $P828, "@MODIFIERS" + unless_null $P828, vivify_247 + $P828 = root_new ['parrot';'ResizablePMCArray'] + vivify_247: + set $P829, $P828[0] + unless_null $P829, vivify_248 + $P829 = root_new ['parrot';'Hash'] + vivify_248: + set $P830, $P829["i"] + unless_null $P830, vivify_249 + new $P830, "Undef" + vivify_249: + unless $P830, if_827_end + find_lex $P831, "$past" + $P831."subtype"("ignorecase") + if_827_end: +.annotate 'line', 182 + find_lex $P832, "$/" + find_lex $P833, "$past" + $P834 = $P832."!make"($P833) +.annotate 'line', 177 + .return ($P834) + control_809: .local pmc exception .get_results (exception) - getattribute $P838, exception, "payload" - .return ($P838) + getattribute $P835, exception, "payload" + .return ($P835) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<^>" :subid("50_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_842 -.annotate 'line', 184 - new $P841, 'ExceptionHandler' - set_addr $P841, control_840 - $P841."handle_types"(.CONTROL_RETURN) - push_eh $P841 - .lex "self", self - .lex "$/", param_842 +.sub "metachar:sym<\">" :subid("50_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_839 .annotate 'line', 185 - new $P843, "Undef" - .lex "$past", $P843 - get_hll_global $P844, ["PAST"], "Regex" - find_lex $P845, "$/" - $P846 = $P844."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P845 :named("node")) - store_lex "$past", $P846 + new $P838, 'ExceptionHandler' + set_addr $P838, control_837 + $P838."handle_types"(.CONTROL_RETURN) + push_eh $P838 + .lex "self", self + .lex "$/", param_839 .annotate 'line', 186 - find_lex $P847, "$/" - find_lex $P848, "$past" - $P849 = $P847."!make"($P848) -.annotate 'line', 184 - .return ($P849) - control_840: - .local pmc exception - .get_results (exception) - getattribute $P850, exception, "payload" - .return ($P850) -.end - - -.namespace ["Regex";"P6Regex";"Actions"] -.include "except_types.pasm" -.sub "metachar:sym<^^>" :subid("51_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_854 + new $P840, "Undef" + .lex "$quote", $P840 +.annotate 'line', 188 + new $P841, "Undef" + .lex "$past", $P841 +.annotate 'line', 186 + find_lex $P842, "$/" + unless_null $P842, vivify_250 + $P842 = root_new ['parrot';'Hash'] + vivify_250: + set $P843, $P842["quote_EXPR"] + unless_null $P843, vivify_251 + new $P843, "Undef" + vivify_251: + $P844 = $P843."ast"() + store_lex "$quote", $P844 +.annotate 'line', 187 + get_hll_global $P846, ["PAST"], "Val" + find_lex $P847, "$quote" + $P848 = $P846."ACCEPTS"($P847) + unless $P848, if_845_end + find_lex $P849, "$quote" + $P850 = $P849."value"() + store_lex "$quote", $P850 + if_845_end: +.annotate 'line', 188 + get_hll_global $P851, ["PAST"], "Regex" + find_lex $P852, "$quote" + find_lex $P853, "$/" + $P854 = $P851."new"($P852, "literal" :named("pasttype"), $P853 :named("node")) + store_lex "$past", $P854 .annotate 'line', 189 - new $P853, 'ExceptionHandler' - set_addr $P853, control_852 - $P853."handle_types"(.CONTROL_RETURN) - push_eh $P853 - .lex "self", self - .lex "$/", param_854 + get_global $P856, "@MODIFIERS" + unless_null $P856, vivify_252 + $P856 = root_new ['parrot';'ResizablePMCArray'] + vivify_252: + set $P857, $P856[0] + unless_null $P857, vivify_253 + $P857 = root_new ['parrot';'Hash'] + vivify_253: + set $P858, $P857["i"] + unless_null $P858, vivify_254 + new $P858, "Undef" + vivify_254: + unless $P858, if_855_end + find_lex $P859, "$past" + $P859."subtype"("ignorecase") + if_855_end: .annotate 'line', 190 - new $P855, "Undef" - .lex "$past", $P855 - get_hll_global $P856, ["PAST"], "Regex" - find_lex $P857, "$/" - $P858 = $P856."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P857 :named("node")) - store_lex "$past", $P858 -.annotate 'line', 191 - find_lex $P859, "$/" - find_lex $P860, "$past" - $P861 = $P859."!make"($P860) -.annotate 'line', 189 - .return ($P861) - control_852: + find_lex $P860, "$/" + find_lex $P861, "$past" + $P862 = $P860."!make"($P861) +.annotate 'line', 185 + .return ($P862) + control_837: .local pmc exception .get_results (exception) - getattribute $P862, exception, "payload" - .return ($P862) + getattribute $P863, exception, "payload" + .return ($P863) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<$>" :subid("52_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_866 -.annotate 'line', 194 - new $P865, 'ExceptionHandler' - set_addr $P865, control_864 - $P865."handle_types"(.CONTROL_RETURN) - push_eh $P865 +.sub "metachar:sym<.>" :subid("51_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_867 +.annotate 'line', 193 + new $P866, 'ExceptionHandler' + set_addr $P866, control_865 + $P866."handle_types"(.CONTROL_RETURN) + push_eh $P866 .lex "self", self - .lex "$/", param_866 -.annotate 'line', 195 - new $P867, "Undef" - .lex "$past", $P867 - get_hll_global $P868, ["PAST"], "Regex" - find_lex $P869, "$/" - $P870 = $P868."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P869 :named("node")) - store_lex "$past", $P870 -.annotate 'line', 196 - find_lex $P871, "$/" - find_lex $P872, "$past" - $P873 = $P871."!make"($P872) + .lex "$/", param_867 .annotate 'line', 194 - .return ($P873) - control_864: + new $P868, "Undef" + .lex "$past", $P868 + get_hll_global $P869, ["PAST"], "Regex" + find_lex $P870, "$/" + $P871 = $P869."new"("charclass" :named("pasttype"), "." :named("subtype"), $P870 :named("node")) + store_lex "$past", $P871 +.annotate 'line', 195 + find_lex $P872, "$/" + find_lex $P873, "$past" + $P874 = $P872."!make"($P873) +.annotate 'line', 193 + .return ($P874) + control_865: .local pmc exception .get_results (exception) - getattribute $P874, exception, "payload" - .return ($P874) + getattribute $P875, exception, "payload" + .return ($P875) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<$$>" :subid("53_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_878 -.annotate 'line', 199 - new $P877, 'ExceptionHandler' - set_addr $P877, control_876 - $P877."handle_types"(.CONTROL_RETURN) - push_eh $P877 +.sub "metachar:sym<^>" :subid("52_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_879 +.annotate 'line', 198 + new $P878, 'ExceptionHandler' + set_addr $P878, control_877 + $P878."handle_types"(.CONTROL_RETURN) + push_eh $P878 .lex "self", self - .lex "$/", param_878 -.annotate 'line', 200 - new $P879, "Undef" - .lex "$past", $P879 - get_hll_global $P880, ["PAST"], "Regex" - find_lex $P881, "$/" - $P882 = $P880."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P881 :named("node")) - store_lex "$past", $P882 -.annotate 'line', 201 - find_lex $P883, "$/" - find_lex $P884, "$past" - $P885 = $P883."!make"($P884) + .lex "$/", param_879 .annotate 'line', 199 - .return ($P885) - control_876: + new $P880, "Undef" + .lex "$past", $P880 + get_hll_global $P881, ["PAST"], "Regex" + find_lex $P882, "$/" + $P883 = $P881."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P882 :named("node")) + store_lex "$past", $P883 +.annotate 'line', 200 + find_lex $P884, "$/" + find_lex $P885, "$past" + $P886 = $P884."!make"($P885) +.annotate 'line', 198 + .return ($P886) + control_877: .local pmc exception .get_results (exception) - getattribute $P886, exception, "payload" - .return ($P886) + getattribute $P887, exception, "payload" + .return ($P887) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<:::>" :subid("54_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_890 -.annotate 'line', 204 - new $P889, 'ExceptionHandler' - set_addr $P889, control_888 - $P889."handle_types"(.CONTROL_RETURN) - push_eh $P889 +.sub "metachar:sym<^^>" :subid("53_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_891 +.annotate 'line', 203 + new $P890, 'ExceptionHandler' + set_addr $P890, control_889 + $P890."handle_types"(.CONTROL_RETURN) + push_eh $P890 .lex "self", self - .lex "$/", param_890 -.annotate 'line', 205 - new $P891, "Undef" - .lex "$past", $P891 - get_hll_global $P892, ["PAST"], "Regex" - find_lex $P893, "$/" - $P894 = $P892."new"("cut" :named("pasttype"), $P893 :named("node")) - store_lex "$past", $P894 -.annotate 'line', 206 - find_lex $P895, "$/" - find_lex $P896, "$past" - $P897 = $P895."!make"($P896) + .lex "$/", param_891 .annotate 'line', 204 - .return ($P897) - control_888: + new $P892, "Undef" + .lex "$past", $P892 + get_hll_global $P893, ["PAST"], "Regex" + find_lex $P894, "$/" + $P895 = $P893."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P894 :named("node")) + store_lex "$past", $P895 +.annotate 'line', 205 + find_lex $P896, "$/" + find_lex $P897, "$past" + $P898 = $P896."!make"($P897) +.annotate 'line', 203 + .return ($P898) + control_889: .local pmc exception .get_results (exception) - getattribute $P898, exception, "payload" - .return ($P898) + getattribute $P899, exception, "payload" + .return ($P899) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("55_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_902 -.annotate 'line', 209 - new $P901, 'ExceptionHandler' - set_addr $P901, control_900 - $P901."handle_types"(.CONTROL_RETURN) - push_eh $P901 +.sub "metachar:sym<$>" :subid("54_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_903 +.annotate 'line', 208 + new $P902, 'ExceptionHandler' + set_addr $P902, control_901 + $P902."handle_types"(.CONTROL_RETURN) + push_eh $P902 .lex "self", self - .lex "$/", param_902 -.annotate 'line', 210 - new $P903, "Undef" - .lex "$past", $P903 - get_hll_global $P904, ["PAST"], "Regex" - find_lex $P905, "$/" - $P906 = $P904."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P905 :named("node")) - store_lex "$past", $P906 -.annotate 'line', 211 - find_lex $P907, "$/" - find_lex $P908, "$past" - $P909 = $P907."!make"($P908) + .lex "$/", param_903 .annotate 'line', 209 - .return ($P909) - control_900: + new $P904, "Undef" + .lex "$past", $P904 + get_hll_global $P905, ["PAST"], "Regex" + find_lex $P906, "$/" + $P907 = $P905."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P906 :named("node")) + store_lex "$past", $P907 +.annotate 'line', 210 + find_lex $P908, "$/" + find_lex $P909, "$past" + $P910 = $P908."!make"($P909) +.annotate 'line', 208 + .return ($P910) + control_901: .local pmc exception .get_results (exception) - getattribute $P910, exception, "payload" - .return ($P910) + getattribute $P911, exception, "payload" + .return ($P911) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("56_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_914 -.annotate 'line', 214 - new $P913, 'ExceptionHandler' - set_addr $P913, control_912 - $P913."handle_types"(.CONTROL_RETURN) - push_eh $P913 +.sub "metachar:sym<$$>" :subid("55_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_915 +.annotate 'line', 213 + new $P914, 'ExceptionHandler' + set_addr $P914, control_913 + $P914."handle_types"(.CONTROL_RETURN) + push_eh $P914 .lex "self", self - .lex "$/", param_914 -.annotate 'line', 215 - new $P915, "Undef" - .lex "$past", $P915 - get_hll_global $P916, ["PAST"], "Regex" - find_lex $P917, "$/" - $P918 = $P916."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P917 :named("node")) - store_lex "$past", $P918 -.annotate 'line', 216 - find_lex $P919, "$/" - find_lex $P920, "$past" - $P921 = $P919."!make"($P920) + .lex "$/", param_915 .annotate 'line', 214 - .return ($P921) - control_912: + new $P916, "Undef" + .lex "$past", $P916 + get_hll_global $P917, ["PAST"], "Regex" + find_lex $P918, "$/" + $P919 = $P917."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P918 :named("node")) + store_lex "$past", $P919 +.annotate 'line', 215 + find_lex $P920, "$/" + find_lex $P921, "$past" + $P922 = $P920."!make"($P921) +.annotate 'line', 213 + .return ($P922) + control_913: .local pmc exception .get_results (exception) - getattribute $P922, exception, "payload" - .return ($P922) + getattribute $P923, exception, "payload" + .return ($P923) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("57_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_926 -.annotate 'line', 219 - new $P925, 'ExceptionHandler' - set_addr $P925, control_924 - $P925."handle_types"(.CONTROL_RETURN) - push_eh $P925 +.sub "metachar:sym<:::>" :subid("56_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_927 +.annotate 'line', 218 + new $P926, 'ExceptionHandler' + set_addr $P926, control_925 + $P926."handle_types"(.CONTROL_RETURN) + push_eh $P926 .lex "self", self - .lex "$/", param_926 -.annotate 'line', 220 - find_lex $P927, "$/" - find_lex $P928, "$/" - unless_null $P928, vivify_245 - $P928 = root_new ['parrot';'Hash'] - vivify_245: - set $P929, $P928["backslash"] - unless_null $P929, vivify_246 - new $P929, "Undef" - vivify_246: - $P930 = $P929."ast"() - $P931 = $P927."!make"($P930) + .lex "$/", param_927 .annotate 'line', 219 - .return ($P931) - control_924: + new $P928, "Undef" + .lex "$past", $P928 + get_hll_global $P929, ["PAST"], "Regex" + find_lex $P930, "$/" + $P931 = $P929."new"("cut" :named("pasttype"), $P930 :named("node")) + store_lex "$past", $P931 +.annotate 'line', 220 + find_lex $P932, "$/" + find_lex $P933, "$past" + $P934 = $P932."!make"($P933) +.annotate 'line', 218 + .return ($P934) + control_925: .local pmc exception .get_results (exception) - getattribute $P932, exception, "payload" - .return ($P932) + getattribute $P935, exception, "payload" + .return ($P935) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("58_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_936 +.sub "metachar:sym" :subid("57_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_939 .annotate 'line', 223 - new $P935, 'ExceptionHandler' - set_addr $P935, control_934 - $P935."handle_types"(.CONTROL_RETURN) - push_eh $P935 + new $P938, 'ExceptionHandler' + set_addr $P938, control_937 + $P938."handle_types"(.CONTROL_RETURN) + push_eh $P938 .lex "self", self - .lex "$/", param_936 + .lex "$/", param_939 .annotate 'line', 224 - find_lex $P937, "$/" - find_lex $P938, "$/" - unless_null $P938, vivify_247 - $P938 = root_new ['parrot';'Hash'] - vivify_247: - set $P939, $P938["mod_internal"] - unless_null $P939, vivify_248 - new $P939, "Undef" - vivify_248: - $P940 = $P939."ast"() - $P941 = $P937."!make"($P940) + new $P940, "Undef" + .lex "$past", $P940 + get_hll_global $P941, ["PAST"], "Regex" + find_lex $P942, "$/" + $P943 = $P941."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P942 :named("node")) + store_lex "$past", $P943 +.annotate 'line', 225 + find_lex $P944, "$/" + find_lex $P945, "$past" + $P946 = $P944."!make"($P945) .annotate 'line', 223 - .return ($P941) - control_934: + .return ($P946) + control_937: .local pmc exception .get_results (exception) - getattribute $P942, exception, "payload" - .return ($P942) + getattribute $P947, exception, "payload" + .return ($P947) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("59_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_946 -.annotate 'line', 227 - new $P945, 'ExceptionHandler' - set_addr $P945, control_944 - $P945."handle_types"(.CONTROL_RETURN) - push_eh $P945 +.sub "metachar:sym" :subid("58_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_951 +.annotate 'line', 228 + new $P950, 'ExceptionHandler' + set_addr $P950, control_949 + $P950."handle_types"(.CONTROL_RETURN) + push_eh $P950 .lex "self", self - .lex "$/", param_946 + .lex "$/", param_951 +.annotate 'line', 229 + new $P952, "Undef" + .lex "$past", $P952 + get_hll_global $P953, ["PAST"], "Regex" + find_lex $P954, "$/" + $P955 = $P953."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P954 :named("node")) + store_lex "$past", $P955 +.annotate 'line', 230 + find_lex $P956, "$/" + find_lex $P957, "$past" + $P958 = $P956."!make"($P957) .annotate 'line', 228 - find_lex $P947, "$/" - find_lex $P948, "$/" - unless_null $P948, vivify_249 - $P948 = root_new ['parrot';'Hash'] - vivify_249: - set $P949, $P948["assertion"] - unless_null $P949, vivify_250 - new $P949, "Undef" - vivify_250: - $P950 = $P949."ast"() - $P951 = $P947."!make"($P950) -.annotate 'line', 227 - .return ($P951) - control_944: + .return ($P958) + control_949: .local pmc exception .get_results (exception) - getattribute $P952, exception, "payload" - .return ($P952) + getattribute $P959, exception, "payload" + .return ($P959) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<~>" :subid("60_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_956 -.annotate 'line', 231 - new $P955, 'ExceptionHandler' - set_addr $P955, control_954 - $P955."handle_types"(.CONTROL_RETURN) - push_eh $P955 - .lex "self", self - .lex "$/", param_956 -.annotate 'line', 232 - find_lex $P957, "$/" - get_hll_global $P958, ["PAST"], "Regex" +.sub "metachar:sym" :subid("59_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_963 .annotate 'line', 233 - find_lex $P959, "$/" - unless_null $P959, vivify_251 - $P959 = root_new ['parrot';'Hash'] - vivify_251: - set $P960, $P959["EXPR"] - unless_null $P960, vivify_252 - new $P960, "Undef" - vivify_252: - $P961 = $P960."ast"() + new $P962, 'ExceptionHandler' + set_addr $P962, control_961 + $P962."handle_types"(.CONTROL_RETURN) + push_eh $P962 + .lex "self", self + .lex "$/", param_963 .annotate 'line', 234 - get_hll_global $P962, ["PAST"], "Regex" -.annotate 'line', 235 - find_lex $P963, "$/" - unless_null $P963, vivify_253 - $P963 = root_new ['parrot';'Hash'] - vivify_253: - set $P964, $P963["GOAL"] - unless_null $P964, vivify_254 - new $P964, "Undef" - vivify_254: - $P965 = $P964."ast"() -.annotate 'line', 236 - get_hll_global $P966, ["PAST"], "Regex" - find_lex $P967, "$/" - unless_null $P967, vivify_255 - $P967 = root_new ['parrot';'Hash'] + find_lex $P964, "$/" + find_lex $P965, "$/" + unless_null $P965, vivify_255 + $P965 = root_new ['parrot';'Hash'] vivify_255: - set $P968, $P967["GOAL"] - unless_null $P968, vivify_256 - new $P968, "Undef" + set $P966, $P965["backslash"] + unless_null $P966, vivify_256 + new $P966, "Undef" vivify_256: - set $S969, $P968 - $P970 = $P966."new"("FAILGOAL", $S969, "subrule" :named("pasttype"), "method" :named("subtype")) - $P971 = $P962."new"($P965, $P970, "alt" :named("pasttype")) -.annotate 'line', 234 - $P972 = $P958."new"($P961, $P971, "concat" :named("pasttype")) -.annotate 'line', 232 - $P973 = $P957."!make"($P972) -.annotate 'line', 231 - .return ($P973) - control_954: + $P967 = $P966."ast"() + $P968 = $P964."!make"($P967) +.annotate 'line', 233 + .return ($P968) + control_961: .local pmc exception .get_results (exception) - getattribute $P974, exception, "payload" - .return ($P974) + getattribute $P969, exception, "payload" + .return ($P969) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym<{*}>" :subid("61_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_978 -.annotate 'line', 244 - new $P977, 'ExceptionHandler' - set_addr $P977, control_976 - $P977."handle_types"(.CONTROL_RETURN) - push_eh $P977 +.sub "metachar:sym" :subid("60_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_973 +.annotate 'line', 237 + new $P972, 'ExceptionHandler' + set_addr $P972, control_971 + $P972."handle_types"(.CONTROL_RETURN) + push_eh $P972 .lex "self", self - .lex "$/", param_978 -.annotate 'line', 245 - new $P979, "Undef" - .lex "$past", $P979 -.annotate 'line', 246 - find_lex $P982, "$/" - unless_null $P982, vivify_257 - $P982 = root_new ['parrot';'Hash'] + .lex "$/", param_973 +.annotate 'line', 238 + find_lex $P974, "$/" + find_lex $P975, "$/" + unless_null $P975, vivify_257 + $P975 = root_new ['parrot';'Hash'] vivify_257: - set $P983, $P982["key"] - unless_null $P983, vivify_258 - new $P983, "Undef" + set $P976, $P975["mod_internal"] + unless_null $P976, vivify_258 + new $P976, "Undef" vivify_258: - if $P983, if_981 - new $P991, "Integer" - assign $P991, 0 - set $P980, $P991 - goto if_981_end - if_981: - get_hll_global $P984, ["PAST"], "Regex" + $P977 = $P976."ast"() + $P978 = $P974."!make"($P977) +.annotate 'line', 237 + .return ($P978) + control_971: + .local pmc exception + .get_results (exception) + getattribute $P979, exception, "payload" + .return ($P979) +.end + + +.namespace ["Regex";"P6Regex";"Actions"] +.include "except_types.pasm" +.sub "metachar:sym" :subid("61_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_983 +.annotate 'line', 241 + new $P982, 'ExceptionHandler' + set_addr $P982, control_981 + $P982."handle_types"(.CONTROL_RETURN) + push_eh $P982 + .lex "self", self + .lex "$/", param_983 +.annotate 'line', 242 + find_lex $P984, "$/" find_lex $P985, "$/" unless_null $P985, vivify_259 $P985 = root_new ['parrot';'Hash'] vivify_259: - set $P986, $P985["key"] + set $P986, $P985["assertion"] unless_null $P986, vivify_260 - $P986 = root_new ['parrot';'ResizablePMCArray'] + new $P986, "Undef" vivify_260: - set $P987, $P986[0] - unless_null $P987, vivify_261 - new $P987, "Undef" - vivify_261: - set $S988, $P987 - find_lex $P989, "$/" - $P990 = $P984."new"($S988, "reduce" :named("pasttype"), $P989 :named("node")) - set $P980, $P990 - if_981_end: - store_lex "$past", $P980 -.annotate 'line', 248 - find_lex $P992, "$/" - find_lex $P993, "$past" - $P994 = $P992."!make"($P993) -.annotate 'line', 244 - .return ($P994) - control_976: + $P987 = $P986."ast"() + $P988 = $P984."!make"($P987) +.annotate 'line', 241 + .return ($P988) + control_981: .local pmc exception .get_results (exception) - getattribute $P995, exception, "payload" - .return ($P995) + getattribute $P989, exception, "payload" + .return ($P989) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("62_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_999 -.annotate 'line', 251 - new $P998, 'ExceptionHandler' - set_addr $P998, control_997 - $P998."handle_types"(.CONTROL_RETURN) - push_eh $P998 +.sub "metachar:sym<~>" :subid("62_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_993 +.annotate 'line', 245 + new $P992, 'ExceptionHandler' + set_addr $P992, control_991 + $P992."handle_types"(.CONTROL_RETURN) + push_eh $P992 .lex "self", self - .lex "$/", param_999 -.annotate 'line', 252 - new $P1000, "Undef" - .lex "$past", $P1000 -.annotate 'line', 253 - new $P1001, "Undef" - .lex "$name", $P1001 -.annotate 'line', 251 - find_lex $P1002, "$past" -.annotate 'line', 253 - find_lex $P1005, "$/" - unless_null $P1005, vivify_262 - $P1005 = root_new ['parrot';'Hash'] + .lex "$/", param_993 +.annotate 'line', 246 + find_lex $P994, "$/" + get_hll_global $P995, ["PAST"], "Regex" +.annotate 'line', 247 + find_lex $P996, "$/" + unless_null $P996, vivify_261 + $P996 = root_new ['parrot';'Hash'] + vivify_261: + set $P997, $P996["EXPR"] + unless_null $P997, vivify_262 + new $P997, "Undef" vivify_262: - set $P1006, $P1005["pos"] - unless_null $P1006, vivify_263 - new $P1006, "Undef" + $P998 = $P997."ast"() +.annotate 'line', 248 + get_hll_global $P999, ["PAST"], "Regex" +.annotate 'line', 249 + find_lex $P1000, "$/" + unless_null $P1000, vivify_263 + $P1000 = root_new ['parrot';'Hash'] vivify_263: - if $P1006, if_1004 - find_lex $P1010, "$/" - unless_null $P1010, vivify_264 - $P1010 = root_new ['parrot';'Hash'] + set $P1001, $P1000["GOAL"] + unless_null $P1001, vivify_264 + new $P1001, "Undef" vivify_264: - set $P1011, $P1010["name"] - unless_null $P1011, vivify_265 - new $P1011, "Undef" + $P1002 = $P1001."ast"() +.annotate 'line', 250 + get_hll_global $P1003, ["PAST"], "Regex" + find_lex $P1004, "$/" + unless_null $P1004, vivify_265 + $P1004 = root_new ['parrot';'Hash'] vivify_265: - set $S1012, $P1011 - new $P1003, 'String' - set $P1003, $S1012 - goto if_1004_end - if_1004: - find_lex $P1007, "$/" - unless_null $P1007, vivify_266 - $P1007 = root_new ['parrot';'Hash'] + set $P1005, $P1004["GOAL"] + unless_null $P1005, vivify_266 + new $P1005, "Undef" vivify_266: - set $P1008, $P1007["pos"] - unless_null $P1008, vivify_267 - new $P1008, "Undef" - vivify_267: - set $N1009, $P1008 - new $P1003, 'Float' - set $P1003, $N1009 - if_1004_end: - store_lex "$name", $P1003 -.annotate 'line', 254 - find_lex $P1014, "$/" - unless_null $P1014, vivify_268 - $P1014 = root_new ['parrot';'Hash'] - vivify_268: - set $P1015, $P1014["quantified_atom"] - unless_null $P1015, vivify_269 - new $P1015, "Undef" - vivify_269: - if $P1015, if_1013 -.annotate 'line', 265 - get_hll_global $P1046, ["PAST"], "Regex" - find_lex $P1047, "$name" - find_lex $P1048, "$/" - $P1049 = $P1046."new"("!BACKREF", $P1047, "subrule" :named("pasttype"), "method" :named("subtype"), $P1048 :named("node")) - store_lex "$past", $P1049 -.annotate 'line', 264 - goto if_1013_end - if_1013: -.annotate 'line', 255 - find_lex $P1016, "$/" - unless_null $P1016, vivify_270 - $P1016 = root_new ['parrot';'Hash'] - vivify_270: - set $P1017, $P1016["quantified_atom"] - unless_null $P1017, vivify_271 - $P1017 = root_new ['parrot';'ResizablePMCArray'] - vivify_271: - set $P1018, $P1017[0] - unless_null $P1018, vivify_272 - new $P1018, "Undef" - vivify_272: - $P1019 = $P1018."ast"() - store_lex "$past", $P1019 -.annotate 'line', 256 - find_lex $P1023, "$past" - $S1024 = $P1023."pasttype"() - iseq $I1025, $S1024, "quant" - if $I1025, if_1022 - new $P1021, 'Integer' - set $P1021, $I1025 - goto if_1022_end - if_1022: - find_lex $P1026, "$past" - unless_null $P1026, vivify_273 - $P1026 = root_new ['parrot';'ResizablePMCArray'] - vivify_273: - set $P1027, $P1026[0] - unless_null $P1027, vivify_274 - new $P1027, "Undef" - vivify_274: - $S1028 = $P1027."pasttype"() - iseq $I1029, $S1028, "subrule" - new $P1021, 'Integer' - set $P1021, $I1029 - if_1022_end: - if $P1021, if_1020 -.annotate 'line', 259 - find_lex $P1035, "$past" - $S1036 = $P1035."pasttype"() - iseq $I1037, $S1036, "subrule" - if $I1037, if_1034 -.annotate 'line', 261 - get_hll_global $P1041, ["PAST"], "Regex" - find_lex $P1042, "$past" - find_lex $P1043, "$name" - find_lex $P1044, "$/" - $P1045 = $P1041."new"($P1042, $P1043 :named("name"), "subcapture" :named("pasttype"), $P1044 :named("node")) - store_lex "$past", $P1045 -.annotate 'line', 260 - goto if_1034_end - if_1034: -.annotate 'line', 259 - find_lex $P1038, "self" - find_lex $P1039, "$past" - find_lex $P1040, "$name" - $P1038."subrule_alias"($P1039, $P1040) - if_1034_end: - goto if_1020_end - if_1020: -.annotate 'line', 257 - find_lex $P1030, "self" - find_lex $P1031, "$past" - unless_null $P1031, vivify_275 - $P1031 = root_new ['parrot';'ResizablePMCArray'] - vivify_275: - set $P1032, $P1031[0] - unless_null $P1032, vivify_276 - new $P1032, "Undef" - vivify_276: - find_lex $P1033, "$name" - $P1030."subrule_alias"($P1032, $P1033) - if_1020_end: - if_1013_end: -.annotate 'line', 268 - find_lex $P1050, "$/" - find_lex $P1051, "$past" - $P1052 = $P1050."!make"($P1051) -.annotate 'line', 251 - .return ($P1052) - control_997: + set $S1006, $P1005 + $P1007 = $P1003."new"("FAILGOAL", $S1006, "subrule" :named("pasttype"), "method" :named("subtype")) + $P1008 = $P999."new"($P1002, $P1007, "alt" :named("pasttype")) +.annotate 'line', 248 + $P1009 = $P995."new"($P998, $P1008, "concat" :named("pasttype")) +.annotate 'line', 246 + $P1010 = $P994."!make"($P1009) +.annotate 'line', 245 + .return ($P1010) + control_991: .local pmc exception .get_results (exception) - getattribute $P1053, exception, "payload" - .return ($P1053) + getattribute $P1011, exception, "payload" + .return ($P1011) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "metachar:sym" :subid("63_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1057 -.annotate 'line', 271 - new $P1056, 'ExceptionHandler' - set_addr $P1056, control_1055 - $P1056."handle_types"(.CONTROL_RETURN) - push_eh $P1056 +.sub "metachar:sym<{*}>" :subid("63_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1015 +.annotate 'line', 258 + new $P1014, 'ExceptionHandler' + set_addr $P1014, control_1013 + $P1014."handle_types"(.CONTROL_RETURN) + push_eh $P1014 .lex "self", self - .lex "$/", param_1057 -.annotate 'line', 272 - find_lex $P1058, "$/" - get_hll_global $P1059, ["PAST"], "Regex" -.annotate 'line', 273 - get_hll_global $P1060, ["PAST"], "Op" - find_lex $P1061, "$/" - unless_null $P1061, vivify_277 - $P1061 = root_new ['parrot';'Hash'] - vivify_277: - set $P1062, $P1061["pir"] - unless_null $P1062, vivify_278 - new $P1062, "Undef" - vivify_278: - set $S1063, $P1062 - $P1064 = $P1060."new"($S1063 :named("inline"), "inline" :named("pasttype")) - find_lex $P1065, "$/" - $P1066 = $P1059."new"($P1064, "pastnode" :named("pasttype"), $P1065 :named("node")) -.annotate 'line', 272 - $P1067 = $P1058."!make"($P1066) -.annotate 'line', 271 - .return ($P1067) - control_1055: + .lex "$/", param_1015 +.annotate 'line', 259 + new $P1016, "Undef" + .lex "$past", $P1016 +.annotate 'line', 260 + find_lex $P1019, "$/" + unless_null $P1019, vivify_267 + $P1019 = root_new ['parrot';'Hash'] + vivify_267: + set $P1020, $P1019["key"] + unless_null $P1020, vivify_268 + new $P1020, "Undef" + vivify_268: + if $P1020, if_1018 + new $P1028, "Integer" + assign $P1028, 0 + set $P1017, $P1028 + goto if_1018_end + if_1018: + get_hll_global $P1021, ["PAST"], "Regex" + find_lex $P1022, "$/" + unless_null $P1022, vivify_269 + $P1022 = root_new ['parrot';'Hash'] + vivify_269: + set $P1023, $P1022["key"] + unless_null $P1023, vivify_270 + $P1023 = root_new ['parrot';'ResizablePMCArray'] + vivify_270: + set $P1024, $P1023[0] + unless_null $P1024, vivify_271 + new $P1024, "Undef" + vivify_271: + set $S1025, $P1024 + find_lex $P1026, "$/" + $P1027 = $P1021."new"($S1025, "reduce" :named("pasttype"), $P1026 :named("node")) + set $P1017, $P1027 + if_1018_end: + store_lex "$past", $P1017 +.annotate 'line', 262 + find_lex $P1029, "$/" + find_lex $P1030, "$past" + $P1031 = $P1029."!make"($P1030) +.annotate 'line', 258 + .return ($P1031) + control_1013: .local pmc exception .get_results (exception) - getattribute $P1068, exception, "payload" - .return ($P1068) + getattribute $P1032, exception, "payload" + .return ($P1032) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("64_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1072 -.annotate 'line', 279 - new $P1071, 'ExceptionHandler' - set_addr $P1071, control_1070 - $P1071."handle_types"(.CONTROL_RETURN) - push_eh $P1071 +.sub "metachar:sym" :subid("64_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1036 +.annotate 'line', 265 + new $P1035, 'ExceptionHandler' + set_addr $P1035, control_1034 + $P1035."handle_types"(.CONTROL_RETURN) + push_eh $P1035 .lex "self", self - .lex "$/", param_1072 -.annotate 'line', 280 - new $P1073, "Undef" - .lex "$subtype", $P1073 -.annotate 'line', 281 - new $P1074, "Undef" - .lex "$past", $P1074 -.annotate 'line', 280 - find_lex $P1077, "$/" - unless_null $P1077, vivify_279 - $P1077 = root_new ['parrot';'Hash'] + .lex "$/", param_1036 +.annotate 'line', 266 + new $P1037, "Undef" + .lex "$past", $P1037 +.annotate 'line', 267 + new $P1038, "Undef" + .lex "$name", $P1038 +.annotate 'line', 265 + find_lex $P1039, "$past" +.annotate 'line', 267 + find_lex $P1042, "$/" + unless_null $P1042, vivify_272 + $P1042 = root_new ['parrot';'Hash'] + vivify_272: + set $P1043, $P1042["pos"] + unless_null $P1043, vivify_273 + new $P1043, "Undef" + vivify_273: + if $P1043, if_1041 + find_lex $P1047, "$/" + unless_null $P1047, vivify_274 + $P1047 = root_new ['parrot';'Hash'] + vivify_274: + set $P1048, $P1047["name"] + unless_null $P1048, vivify_275 + new $P1048, "Undef" + vivify_275: + set $S1049, $P1048 + new $P1040, 'String' + set $P1040, $S1049 + goto if_1041_end + if_1041: + find_lex $P1044, "$/" + unless_null $P1044, vivify_276 + $P1044 = root_new ['parrot';'Hash'] + vivify_276: + set $P1045, $P1044["pos"] + unless_null $P1045, vivify_277 + new $P1045, "Undef" + vivify_277: + set $N1046, $P1045 + new $P1040, 'Float' + set $P1040, $N1046 + if_1041_end: + store_lex "$name", $P1040 +.annotate 'line', 268 + find_lex $P1051, "$/" + unless_null $P1051, vivify_278 + $P1051 = root_new ['parrot';'Hash'] + vivify_278: + set $P1052, $P1051["quantified_atom"] + unless_null $P1052, vivify_279 + new $P1052, "Undef" vivify_279: - set $P1078, $P1077["sym"] - unless_null $P1078, vivify_280 - new $P1078, "Undef" + if $P1052, if_1050 +.annotate 'line', 279 + get_hll_global $P1083, ["PAST"], "Regex" + find_lex $P1084, "$name" + find_lex $P1085, "$/" + $P1086 = $P1083."new"("!BACKREF", $P1084, "subrule" :named("pasttype"), "method" :named("subtype"), $P1085 :named("node")) + store_lex "$past", $P1086 +.annotate 'line', 278 + goto if_1050_end + if_1050: +.annotate 'line', 269 + find_lex $P1053, "$/" + unless_null $P1053, vivify_280 + $P1053 = root_new ['parrot';'Hash'] vivify_280: - set $S1079, $P1078 - iseq $I1080, $S1079, "n" - if $I1080, if_1076 - find_lex $P1082, "$/" - unless_null $P1082, vivify_281 - $P1082 = root_new ['parrot';'Hash'] + set $P1054, $P1053["quantified_atom"] + unless_null $P1054, vivify_281 + $P1054 = root_new ['parrot';'ResizablePMCArray'] vivify_281: - set $P1083, $P1082["sym"] - unless_null $P1083, vivify_282 - new $P1083, "Undef" + set $P1055, $P1054[0] + unless_null $P1055, vivify_282 + new $P1055, "Undef" vivify_282: - set $S1084, $P1083 - new $P1075, 'String' - set $P1075, $S1084 - goto if_1076_end - if_1076: - new $P1081, "String" - assign $P1081, "nl" - set $P1075, $P1081 - if_1076_end: - store_lex "$subtype", $P1075 -.annotate 'line', 281 - get_hll_global $P1085, ["PAST"], "Regex" - find_lex $P1086, "$subtype" - find_lex $P1087, "$/" - $P1088 = $P1085."new"("charclass" :named("pasttype"), $P1086 :named("subtype"), $P1087 :named("node")) - store_lex "$past", $P1088 + $P1056 = $P1055."ast"() + store_lex "$past", $P1056 +.annotate 'line', 270 + find_lex $P1060, "$past" + $S1061 = $P1060."pasttype"() + iseq $I1062, $S1061, "quant" + if $I1062, if_1059 + new $P1058, 'Integer' + set $P1058, $I1062 + goto if_1059_end + if_1059: + find_lex $P1063, "$past" + unless_null $P1063, vivify_283 + $P1063 = root_new ['parrot';'ResizablePMCArray'] + vivify_283: + set $P1064, $P1063[0] + unless_null $P1064, vivify_284 + new $P1064, "Undef" + vivify_284: + $S1065 = $P1064."pasttype"() + iseq $I1066, $S1065, "subrule" + new $P1058, 'Integer' + set $P1058, $I1066 + if_1059_end: + if $P1058, if_1057 +.annotate 'line', 273 + find_lex $P1072, "$past" + $S1073 = $P1072."pasttype"() + iseq $I1074, $S1073, "subrule" + if $I1074, if_1071 +.annotate 'line', 275 + get_hll_global $P1078, ["PAST"], "Regex" + find_lex $P1079, "$past" + find_lex $P1080, "$name" + find_lex $P1081, "$/" + $P1082 = $P1078."new"($P1079, $P1080 :named("name"), "subcapture" :named("pasttype"), $P1081 :named("node")) + store_lex "$past", $P1082 +.annotate 'line', 274 + goto if_1071_end + if_1071: +.annotate 'line', 273 + find_lex $P1075, "self" + find_lex $P1076, "$past" + find_lex $P1077, "$name" + $P1075."subrule_alias"($P1076, $P1077) + if_1071_end: + goto if_1057_end + if_1057: +.annotate 'line', 271 + find_lex $P1067, "self" + find_lex $P1068, "$past" + unless_null $P1068, vivify_285 + $P1068 = root_new ['parrot';'ResizablePMCArray'] + vivify_285: + set $P1069, $P1068[0] + unless_null $P1069, vivify_286 + new $P1069, "Undef" + vivify_286: + find_lex $P1070, "$name" + $P1067."subrule_alias"($P1069, $P1070) + if_1057_end: + if_1050_end: .annotate 'line', 282 - find_lex $P1089, "$/" - find_lex $P1090, "$past" - $P1091 = $P1089."!make"($P1090) -.annotate 'line', 279 - .return ($P1091) - control_1070: + find_lex $P1087, "$/" + find_lex $P1088, "$past" + $P1089 = $P1087."!make"($P1088) +.annotate 'line', 265 + .return ($P1089) + control_1034: .local pmc exception .get_results (exception) - getattribute $P1092, exception, "payload" - .return ($P1092) + getattribute $P1090, exception, "payload" + .return ($P1090) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("65_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1096 +.sub "metachar:sym" :subid("65_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1094 .annotate 'line', 285 - new $P1095, 'ExceptionHandler' - set_addr $P1095, control_1094 - $P1095."handle_types"(.CONTROL_RETURN) - push_eh $P1095 + new $P1093, 'ExceptionHandler' + set_addr $P1093, control_1092 + $P1093."handle_types"(.CONTROL_RETURN) + push_eh $P1093 .lex "self", self - .lex "$/", param_1096 + .lex "$/", param_1094 .annotate 'line', 286 - new $P1097, "Undef" - .lex "$past", $P1097 - get_hll_global $P1098, ["PAST"], "Regex" + find_lex $P1095, "$/" + get_hll_global $P1096, ["PAST"], "Regex" .annotate 'line', 287 - find_lex $P1099, "$/" - unless_null $P1099, vivify_283 - $P1099 = root_new ['parrot';'Hash'] - vivify_283: - set $P1100, $P1099["sym"] - unless_null $P1100, vivify_284 - new $P1100, "Undef" - vivify_284: - set $S1101, $P1100 - iseq $I1102, $S1101, "B" - find_lex $P1103, "$/" - $P1104 = $P1098."new"("\b", "enumcharlist" :named("pasttype"), $I1102 :named("negate"), $P1103 :named("node")) + get_hll_global $P1097, ["PAST"], "Op" + find_lex $P1098, "$/" + unless_null $P1098, vivify_287 + $P1098 = root_new ['parrot';'Hash'] + vivify_287: + set $P1099, $P1098["pir"] + unless_null $P1099, vivify_288 + new $P1099, "Undef" + vivify_288: + set $S1100, $P1099 + $P1101 = $P1097."new"($S1100 :named("inline"), "inline" :named("pasttype")) + find_lex $P1102, "$/" + $P1103 = $P1096."new"($P1101, "pastnode" :named("pasttype"), $P1102 :named("node")) .annotate 'line', 286 - store_lex "$past", $P1104 -.annotate 'line', 288 - find_lex $P1105, "$/" - find_lex $P1106, "$past" - $P1107 = $P1105."!make"($P1106) + $P1104 = $P1095."!make"($P1103) .annotate 'line', 285 - .return ($P1107) - control_1094: + .return ($P1104) + control_1092: .local pmc exception .get_results (exception) - getattribute $P1108, exception, "payload" - .return ($P1108) + getattribute $P1105, exception, "payload" + .return ($P1105) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("66_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1112 -.annotate 'line', 291 - new $P1111, 'ExceptionHandler' - set_addr $P1111, control_1110 - $P1111."handle_types"(.CONTROL_RETURN) - push_eh $P1111 - .lex "self", self - .lex "$/", param_1112 -.annotate 'line', 292 - new $P1113, "Undef" - .lex "$past", $P1113 - get_hll_global $P1114, ["PAST"], "Regex" +.sub "backslash:sym" :subid("66_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1109 .annotate 'line', 293 - find_lex $P1115, "$/" - unless_null $P1115, vivify_285 - $P1115 = root_new ['parrot';'Hash'] - vivify_285: - set $P1116, $P1115["sym"] - unless_null $P1116, vivify_286 - new $P1116, "Undef" - vivify_286: - set $S1117, $P1116 - iseq $I1118, $S1117, "E" - find_lex $P1119, "$/" - $P1120 = $P1114."new"("\e", "enumcharlist" :named("pasttype"), $I1118 :named("negate"), $P1119 :named("node")) -.annotate 'line', 292 - store_lex "$past", $P1120 + new $P1108, 'ExceptionHandler' + set_addr $P1108, control_1107 + $P1108."handle_types"(.CONTROL_RETURN) + push_eh $P1108 + .lex "self", self + .lex "$/", param_1109 .annotate 'line', 294 - find_lex $P1121, "$/" - find_lex $P1122, "$past" - $P1123 = $P1121."!make"($P1122) -.annotate 'line', 291 - .return ($P1123) - control_1110: + new $P1110, "Undef" + .lex "$subtype", $P1110 +.annotate 'line', 295 + new $P1111, "Undef" + .lex "$past", $P1111 +.annotate 'line', 294 + find_lex $P1114, "$/" + unless_null $P1114, vivify_289 + $P1114 = root_new ['parrot';'Hash'] + vivify_289: + set $P1115, $P1114["sym"] + unless_null $P1115, vivify_290 + new $P1115, "Undef" + vivify_290: + set $S1116, $P1115 + iseq $I1117, $S1116, "n" + if $I1117, if_1113 + find_lex $P1119, "$/" + unless_null $P1119, vivify_291 + $P1119 = root_new ['parrot';'Hash'] + vivify_291: + set $P1120, $P1119["sym"] + unless_null $P1120, vivify_292 + new $P1120, "Undef" + vivify_292: + set $S1121, $P1120 + new $P1112, 'String' + set $P1112, $S1121 + goto if_1113_end + if_1113: + new $P1118, "String" + assign $P1118, "nl" + set $P1112, $P1118 + if_1113_end: + store_lex "$subtype", $P1112 +.annotate 'line', 295 + get_hll_global $P1122, ["PAST"], "Regex" + find_lex $P1123, "$subtype" + find_lex $P1124, "$/" + $P1125 = $P1122."new"("charclass" :named("pasttype"), $P1123 :named("subtype"), $P1124 :named("node")) + store_lex "$past", $P1125 +.annotate 'line', 296 + find_lex $P1126, "$/" + find_lex $P1127, "$past" + $P1128 = $P1126."!make"($P1127) +.annotate 'line', 293 + .return ($P1128) + control_1107: .local pmc exception .get_results (exception) - getattribute $P1124, exception, "payload" - .return ($P1124) + getattribute $P1129, exception, "payload" + .return ($P1129) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("67_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1128 -.annotate 'line', 297 - new $P1127, 'ExceptionHandler' - set_addr $P1127, control_1126 - $P1127."handle_types"(.CONTROL_RETURN) - push_eh $P1127 - .lex "self", self - .lex "$/", param_1128 -.annotate 'line', 298 - new $P1129, "Undef" - .lex "$past", $P1129 - get_hll_global $P1130, ["PAST"], "Regex" +.sub "backslash:sym" :subid("67_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1133 .annotate 'line', 299 - find_lex $P1131, "$/" - unless_null $P1131, vivify_287 - $P1131 = root_new ['parrot';'Hash'] - vivify_287: - set $P1132, $P1131["sym"] - unless_null $P1132, vivify_288 - new $P1132, "Undef" - vivify_288: - set $S1133, $P1132 - iseq $I1134, $S1133, "F" - find_lex $P1135, "$/" - $P1136 = $P1130."new"("\f", "enumcharlist" :named("pasttype"), $I1134 :named("negate"), $P1135 :named("node")) -.annotate 'line', 298 - store_lex "$past", $P1136 + new $P1132, 'ExceptionHandler' + set_addr $P1132, control_1131 + $P1132."handle_types"(.CONTROL_RETURN) + push_eh $P1132 + .lex "self", self + .lex "$/", param_1133 +.annotate 'line', 300 + new $P1134, "Undef" + .lex "$past", $P1134 + get_hll_global $P1135, ["PAST"], "Regex" +.annotate 'line', 301 + find_lex $P1136, "$/" + unless_null $P1136, vivify_293 + $P1136 = root_new ['parrot';'Hash'] + vivify_293: + set $P1137, $P1136["sym"] + unless_null $P1137, vivify_294 + new $P1137, "Undef" + vivify_294: + set $S1138, $P1137 + iseq $I1139, $S1138, "B" + find_lex $P1140, "$/" + $P1141 = $P1135."new"("\b", "enumcharlist" :named("pasttype"), $I1139 :named("negate"), $P1140 :named("node")) .annotate 'line', 300 - find_lex $P1137, "$/" - find_lex $P1138, "$past" - $P1139 = $P1137."!make"($P1138) -.annotate 'line', 297 - .return ($P1139) - control_1126: + store_lex "$past", $P1141 +.annotate 'line', 302 + find_lex $P1142, "$/" + find_lex $P1143, "$past" + $P1144 = $P1142."!make"($P1143) +.annotate 'line', 299 + .return ($P1144) + control_1131: .local pmc exception .get_results (exception) - getattribute $P1140, exception, "payload" - .return ($P1140) + getattribute $P1145, exception, "payload" + .return ($P1145) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("68_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1144 -.annotate 'line', 303 - new $P1143, 'ExceptionHandler' - set_addr $P1143, control_1142 - $P1143."handle_types"(.CONTROL_RETURN) - push_eh $P1143 - .lex "self", self - .lex "$/", param_1144 -.annotate 'line', 304 - new $P1145, "Undef" - .lex "$past", $P1145 - get_hll_global $P1146, ["PAST"], "Regex" +.sub "backslash:sym" :subid("68_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1149 .annotate 'line', 305 - find_lex $P1147, "$/" - unless_null $P1147, vivify_289 - $P1147 = root_new ['parrot';'Hash'] - vivify_289: - set $P1148, $P1147["sym"] - unless_null $P1148, vivify_290 - new $P1148, "Undef" - vivify_290: - set $S1149, $P1148 - iseq $I1150, $S1149, "H" - find_lex $P1151, "$/" - $P1152 = $P1146."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1150 :named("negate"), $P1151 :named("node")) -.annotate 'line', 304 - store_lex "$past", $P1152 + new $P1148, 'ExceptionHandler' + set_addr $P1148, control_1147 + $P1148."handle_types"(.CONTROL_RETURN) + push_eh $P1148 + .lex "self", self + .lex "$/", param_1149 +.annotate 'line', 306 + new $P1150, "Undef" + .lex "$past", $P1150 + get_hll_global $P1151, ["PAST"], "Regex" +.annotate 'line', 307 + find_lex $P1152, "$/" + unless_null $P1152, vivify_295 + $P1152 = root_new ['parrot';'Hash'] + vivify_295: + set $P1153, $P1152["sym"] + unless_null $P1153, vivify_296 + new $P1153, "Undef" + vivify_296: + set $S1154, $P1153 + iseq $I1155, $S1154, "E" + find_lex $P1156, "$/" + $P1157 = $P1151."new"("\e", "enumcharlist" :named("pasttype"), $I1155 :named("negate"), $P1156 :named("node")) .annotate 'line', 306 - find_lex $P1153, "$/" - find_lex $P1154, "$past" - $P1155 = $P1153."!make"($P1154) -.annotate 'line', 303 - .return ($P1155) - control_1142: + store_lex "$past", $P1157 +.annotate 'line', 308 + find_lex $P1158, "$/" + find_lex $P1159, "$past" + $P1160 = $P1158."!make"($P1159) +.annotate 'line', 305 + .return ($P1160) + control_1147: .local pmc exception .get_results (exception) - getattribute $P1156, exception, "payload" - .return ($P1156) + getattribute $P1161, exception, "payload" + .return ($P1161) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("69_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1160 -.annotate 'line', 309 - new $P1159, 'ExceptionHandler' - set_addr $P1159, control_1158 - $P1159."handle_types"(.CONTROL_RETURN) - push_eh $P1159 - .lex "self", self - .lex "$/", param_1160 -.annotate 'line', 310 - new $P1161, "Undef" - .lex "$past", $P1161 - get_hll_global $P1162, ["PAST"], "Regex" +.sub "backslash:sym" :subid("69_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1165 .annotate 'line', 311 - find_lex $P1163, "$/" - unless_null $P1163, vivify_291 - $P1163 = root_new ['parrot';'Hash'] - vivify_291: - set $P1164, $P1163["sym"] - unless_null $P1164, vivify_292 - new $P1164, "Undef" - vivify_292: - set $S1165, $P1164 - iseq $I1166, $S1165, "R" - find_lex $P1167, "$/" - $P1168 = $P1162."new"("\r", "enumcharlist" :named("pasttype"), $I1166 :named("negate"), $P1167 :named("node")) -.annotate 'line', 310 - store_lex "$past", $P1168 + new $P1164, 'ExceptionHandler' + set_addr $P1164, control_1163 + $P1164."handle_types"(.CONTROL_RETURN) + push_eh $P1164 + .lex "self", self + .lex "$/", param_1165 +.annotate 'line', 312 + new $P1166, "Undef" + .lex "$past", $P1166 + get_hll_global $P1167, ["PAST"], "Regex" +.annotate 'line', 313 + find_lex $P1168, "$/" + unless_null $P1168, vivify_297 + $P1168 = root_new ['parrot';'Hash'] + vivify_297: + set $P1169, $P1168["sym"] + unless_null $P1169, vivify_298 + new $P1169, "Undef" + vivify_298: + set $S1170, $P1169 + iseq $I1171, $S1170, "F" + find_lex $P1172, "$/" + $P1173 = $P1167."new"("\f", "enumcharlist" :named("pasttype"), $I1171 :named("negate"), $P1172 :named("node")) .annotate 'line', 312 - find_lex $P1169, "$/" - find_lex $P1170, "$past" - $P1171 = $P1169."!make"($P1170) -.annotate 'line', 309 - .return ($P1171) - control_1158: + store_lex "$past", $P1173 +.annotate 'line', 314 + find_lex $P1174, "$/" + find_lex $P1175, "$past" + $P1176 = $P1174."!make"($P1175) +.annotate 'line', 311 + .return ($P1176) + control_1163: .local pmc exception .get_results (exception) - getattribute $P1172, exception, "payload" - .return ($P1172) + getattribute $P1177, exception, "payload" + .return ($P1177) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("70_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1176 -.annotate 'line', 315 - new $P1175, 'ExceptionHandler' - set_addr $P1175, control_1174 - $P1175."handle_types"(.CONTROL_RETURN) - push_eh $P1175 - .lex "self", self - .lex "$/", param_1176 -.annotate 'line', 316 - new $P1177, "Undef" - .lex "$past", $P1177 - get_hll_global $P1178, ["PAST"], "Regex" +.sub "backslash:sym" :subid("70_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1181 .annotate 'line', 317 - find_lex $P1179, "$/" - unless_null $P1179, vivify_293 - $P1179 = root_new ['parrot';'Hash'] - vivify_293: - set $P1180, $P1179["sym"] - unless_null $P1180, vivify_294 - new $P1180, "Undef" - vivify_294: - set $S1181, $P1180 - iseq $I1182, $S1181, "T" - find_lex $P1183, "$/" - $P1184 = $P1178."new"("\t", "enumcharlist" :named("pasttype"), $I1182 :named("negate"), $P1183 :named("node")) -.annotate 'line', 316 - store_lex "$past", $P1184 + new $P1180, 'ExceptionHandler' + set_addr $P1180, control_1179 + $P1180."handle_types"(.CONTROL_RETURN) + push_eh $P1180 + .lex "self", self + .lex "$/", param_1181 .annotate 'line', 318 - find_lex $P1185, "$/" - find_lex $P1186, "$past" - $P1187 = $P1185."!make"($P1186) -.annotate 'line', 315 - .return ($P1187) - control_1174: + new $P1182, "Undef" + .lex "$past", $P1182 + get_hll_global $P1183, ["PAST"], "Regex" +.annotate 'line', 319 + find_lex $P1184, "$/" + unless_null $P1184, vivify_299 + $P1184 = root_new ['parrot';'Hash'] + vivify_299: + set $P1185, $P1184["sym"] + unless_null $P1185, vivify_300 + new $P1185, "Undef" + vivify_300: + set $S1186, $P1185 + iseq $I1187, $S1186, "H" + find_lex $P1188, "$/" + $P1189 = $P1183."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1187 :named("negate"), $P1188 :named("node")) +.annotate 'line', 318 + store_lex "$past", $P1189 +.annotate 'line', 320 + find_lex $P1190, "$/" + find_lex $P1191, "$past" + $P1192 = $P1190."!make"($P1191) +.annotate 'line', 317 + .return ($P1192) + control_1179: .local pmc exception .get_results (exception) - getattribute $P1188, exception, "payload" - .return ($P1188) + getattribute $P1193, exception, "payload" + .return ($P1193) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("71_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1192 -.annotate 'line', 321 - new $P1191, 'ExceptionHandler' - set_addr $P1191, control_1190 - $P1191."handle_types"(.CONTROL_RETURN) - push_eh $P1191 +.sub "backslash:sym" :subid("71_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1197 +.annotate 'line', 323 + new $P1196, 'ExceptionHandler' + set_addr $P1196, control_1195 + $P1196."handle_types"(.CONTROL_RETURN) + push_eh $P1196 .lex "self", self - .lex "$/", param_1192 -.annotate 'line', 322 - new $P1193, "Undef" - .lex "$past", $P1193 - get_hll_global $P1194, ["PAST"], "Regex" + .lex "$/", param_1197 .annotate 'line', 324 - find_lex $P1195, "$/" - unless_null $P1195, vivify_295 - $P1195 = root_new ['parrot';'Hash'] - vivify_295: - set $P1196, $P1195["sym"] - unless_null $P1196, vivify_296 - new $P1196, "Undef" - vivify_296: - set $S1197, $P1196 - iseq $I1198, $S1197, "V" - find_lex $P1199, "$/" - $P1200 = $P1194."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1198 :named("negate"), $P1199 :named("node")) -.annotate 'line', 322 - store_lex "$past", $P1200 + new $P1198, "Undef" + .lex "$past", $P1198 + get_hll_global $P1199, ["PAST"], "Regex" .annotate 'line', 325 - find_lex $P1201, "$/" - find_lex $P1202, "$past" - $P1203 = $P1201."!make"($P1202) -.annotate 'line', 321 - .return ($P1203) - control_1190: + find_lex $P1200, "$/" + unless_null $P1200, vivify_301 + $P1200 = root_new ['parrot';'Hash'] + vivify_301: + set $P1201, $P1200["sym"] + unless_null $P1201, vivify_302 + new $P1201, "Undef" + vivify_302: + set $S1202, $P1201 + iseq $I1203, $S1202, "R" + find_lex $P1204, "$/" + $P1205 = $P1199."new"("\r", "enumcharlist" :named("pasttype"), $I1203 :named("negate"), $P1204 :named("node")) +.annotate 'line', 324 + store_lex "$past", $P1205 +.annotate 'line', 326 + find_lex $P1206, "$/" + find_lex $P1207, "$past" + $P1208 = $P1206."!make"($P1207) +.annotate 'line', 323 + .return ($P1208) + control_1195: .local pmc exception .get_results (exception) - getattribute $P1204, exception, "payload" - .return ($P1204) + getattribute $P1209, exception, "payload" + .return ($P1209) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("72_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1208 -.annotate 'line', 328 - new $P1207, 'ExceptionHandler' - set_addr $P1207, control_1206 - $P1207."handle_types"(.CONTROL_RETURN) - push_eh $P1207 - .lex "self", self - .lex "$/", param_1208 +.sub "backslash:sym" :subid("72_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1213 .annotate 'line', 329 - new $P1209, "Undef" - .lex "$octlit", $P1209 + new $P1212, 'ExceptionHandler' + set_addr $P1212, control_1211 + $P1212."handle_types"(.CONTROL_RETURN) + push_eh $P1212 + .lex "self", self + .lex "$/", param_1213 .annotate 'line', 330 - get_hll_global $P1210, ["HLL";"Actions"], "ints_to_string" - find_lex $P1213, "$/" - unless_null $P1213, vivify_297 - $P1213 = root_new ['parrot';'Hash'] - vivify_297: - set $P1214, $P1213["octint"] - unless_null $P1214, vivify_298 new $P1214, "Undef" - vivify_298: - unless $P1214, unless_1212 - set $P1211, $P1214 - goto unless_1212_end - unless_1212: - find_lex $P1215, "$/" - unless_null $P1215, vivify_299 - $P1215 = root_new ['parrot';'Hash'] - vivify_299: - set $P1216, $P1215["octints"] - unless_null $P1216, vivify_300 - $P1216 = root_new ['parrot';'Hash'] - vivify_300: - set $P1217, $P1216["octint"] - unless_null $P1217, vivify_301 - new $P1217, "Undef" - vivify_301: - set $P1211, $P1217 - unless_1212_end: - $P1218 = $P1210($P1211) - store_lex "$octlit", $P1218 + .lex "$past", $P1214 + get_hll_global $P1215, ["PAST"], "Regex" .annotate 'line', 331 - find_lex $P1219, "$/" - find_lex $P1222, "$/" - unless_null $P1222, vivify_302 - $P1222 = root_new ['parrot';'Hash'] - vivify_302: - set $P1223, $P1222["sym"] - unless_null $P1223, vivify_303 - new $P1223, "Undef" + find_lex $P1216, "$/" + unless_null $P1216, vivify_303 + $P1216 = root_new ['parrot';'Hash'] vivify_303: - set $S1224, $P1223 - iseq $I1225, $S1224, "O" - if $I1225, if_1221 -.annotate 'line', 334 - get_hll_global $P1230, ["PAST"], "Regex" - find_lex $P1231, "$octlit" - find_lex $P1232, "$/" - $P1233 = $P1230."new"($P1231, "literal" :named("pasttype"), $P1232 :named("node")) - set $P1220, $P1233 -.annotate 'line', 331 - goto if_1221_end - if_1221: + set $P1217, $P1216["sym"] + unless_null $P1217, vivify_304 + new $P1217, "Undef" + vivify_304: + set $S1218, $P1217 + iseq $I1219, $S1218, "T" + find_lex $P1220, "$/" + $P1221 = $P1215."new"("\t", "enumcharlist" :named("pasttype"), $I1219 :named("negate"), $P1220 :named("node")) +.annotate 'line', 330 + store_lex "$past", $P1221 .annotate 'line', 332 - get_hll_global $P1226, ["PAST"], "Regex" - find_lex $P1227, "$octlit" - find_lex $P1228, "$/" - $P1229 = $P1226."new"($P1227, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1228 :named("node")) - set $P1220, $P1229 - if_1221_end: - $P1234 = $P1219."!make"($P1220) -.annotate 'line', 328 - .return ($P1234) - control_1206: + find_lex $P1222, "$/" + find_lex $P1223, "$past" + $P1224 = $P1222."!make"($P1223) +.annotate 'line', 329 + .return ($P1224) + control_1211: .local pmc exception .get_results (exception) - getattribute $P1235, exception, "payload" - .return ($P1235) + getattribute $P1225, exception, "payload" + .return ($P1225) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("73_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1239 -.annotate 'line', 337 - new $P1238, 'ExceptionHandler' - set_addr $P1238, control_1237 - $P1238."handle_types"(.CONTROL_RETURN) - push_eh $P1238 +.sub "backslash:sym" :subid("73_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1229 +.annotate 'line', 335 + new $P1228, 'ExceptionHandler' + set_addr $P1228, control_1227 + $P1228."handle_types"(.CONTROL_RETURN) + push_eh $P1228 .lex "self", self - .lex "$/", param_1239 + .lex "$/", param_1229 +.annotate 'line', 336 + new $P1230, "Undef" + .lex "$past", $P1230 + get_hll_global $P1231, ["PAST"], "Regex" .annotate 'line', 338 - new $P1240, "Undef" - .lex "$hexlit", $P1240 -.annotate 'line', 339 - get_hll_global $P1241, ["HLL";"Actions"], "ints_to_string" - find_lex $P1244, "$/" - unless_null $P1244, vivify_304 - $P1244 = root_new ['parrot';'Hash'] - vivify_304: - set $P1245, $P1244["hexint"] - unless_null $P1245, vivify_305 - new $P1245, "Undef" + find_lex $P1232, "$/" + unless_null $P1232, vivify_305 + $P1232 = root_new ['parrot';'Hash'] vivify_305: - unless $P1245, unless_1243 - set $P1242, $P1245 - goto unless_1243_end - unless_1243: - find_lex $P1246, "$/" - unless_null $P1246, vivify_306 - $P1246 = root_new ['parrot';'Hash'] + set $P1233, $P1232["sym"] + unless_null $P1233, vivify_306 + new $P1233, "Undef" vivify_306: - set $P1247, $P1246["hexints"] - unless_null $P1247, vivify_307 - $P1247 = root_new ['parrot';'Hash'] - vivify_307: - set $P1248, $P1247["hexint"] - unless_null $P1248, vivify_308 - new $P1248, "Undef" - vivify_308: - set $P1242, $P1248 - unless_1243_end: - $P1249 = $P1241($P1242) - store_lex "$hexlit", $P1249 -.annotate 'line', 340 - find_lex $P1250, "$/" - find_lex $P1253, "$/" - unless_null $P1253, vivify_309 - $P1253 = root_new ['parrot';'Hash'] - vivify_309: - set $P1254, $P1253["sym"] - unless_null $P1254, vivify_310 - new $P1254, "Undef" - vivify_310: - set $S1255, $P1254 - iseq $I1256, $S1255, "X" - if $I1256, if_1252 -.annotate 'line', 343 - get_hll_global $P1261, ["PAST"], "Regex" - find_lex $P1262, "$hexlit" - find_lex $P1263, "$/" - $P1264 = $P1261."new"($P1262, "literal" :named("pasttype"), $P1263 :named("node")) - set $P1251, $P1264 -.annotate 'line', 340 - goto if_1252_end - if_1252: -.annotate 'line', 341 - get_hll_global $P1257, ["PAST"], "Regex" - find_lex $P1258, "$hexlit" - find_lex $P1259, "$/" - $P1260 = $P1257."new"($P1258, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1259 :named("node")) - set $P1251, $P1260 - if_1252_end: - $P1265 = $P1250."!make"($P1251) -.annotate 'line', 337 - .return ($P1265) - control_1237: + set $S1234, $P1233 + iseq $I1235, $S1234, "V" + find_lex $P1236, "$/" + $P1237 = $P1231."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1235 :named("negate"), $P1236 :named("node")) +.annotate 'line', 336 + store_lex "$past", $P1237 +.annotate 'line', 339 + find_lex $P1238, "$/" + find_lex $P1239, "$past" + $P1240 = $P1238."!make"($P1239) +.annotate 'line', 335 + .return ($P1240) + control_1227: .local pmc exception .get_results (exception) - getattribute $P1266, exception, "payload" - .return ($P1266) + getattribute $P1241, exception, "payload" + .return ($P1241) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("74_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1270 -.annotate 'line', 346 - new $P1269, 'ExceptionHandler' - set_addr $P1269, control_1268 - $P1269."handle_types"(.CONTROL_RETURN) - push_eh $P1269 +.sub "backslash:sym" :subid("74_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1245 +.annotate 'line', 342 + new $P1244, 'ExceptionHandler' + set_addr $P1244, control_1243 + $P1244."handle_types"(.CONTROL_RETURN) + push_eh $P1244 .lex "self", self - .lex "$/", param_1270 -.annotate 'line', 347 - find_lex $P1271, "$/" - get_hll_global $P1272, ["PAST"], "Regex" - find_lex $P1273, "$/" - unless_null $P1273, vivify_311 - $P1273 = root_new ['parrot';'Hash'] + .lex "$/", param_1245 +.annotate 'line', 343 + new $P1246, "Undef" + .lex "$octlit", $P1246 +.annotate 'line', 344 + get_hll_global $P1247, ["HLL";"Actions"], "ints_to_string" + find_lex $P1250, "$/" + unless_null $P1250, vivify_307 + $P1250 = root_new ['parrot';'Hash'] + vivify_307: + set $P1251, $P1250["octint"] + unless_null $P1251, vivify_308 + new $P1251, "Undef" + vivify_308: + unless $P1251, unless_1249 + set $P1248, $P1251 + goto unless_1249_end + unless_1249: + find_lex $P1252, "$/" + unless_null $P1252, vivify_309 + $P1252 = root_new ['parrot';'Hash'] + vivify_309: + set $P1253, $P1252["octints"] + unless_null $P1253, vivify_310 + $P1253 = root_new ['parrot';'Hash'] + vivify_310: + set $P1254, $P1253["octint"] + unless_null $P1254, vivify_311 + new $P1254, "Undef" vivify_311: - set $P1274, $P1273["charspec"] - unless_null $P1274, vivify_312 - new $P1274, "Undef" + set $P1248, $P1254 + unless_1249_end: + $P1255 = $P1247($P1248) + store_lex "$octlit", $P1255 +.annotate 'line', 345 + find_lex $P1256, "$/" + find_lex $P1259, "$/" + unless_null $P1259, vivify_312 + $P1259 = root_new ['parrot';'Hash'] vivify_312: - $P1275 = $P1274."ast"() - find_lex $P1276, "$/" - $P1277 = $P1272."new"($P1275, "literal" :named("pasttype"), $P1276 :named("node")) - $P1278 = $P1271."!make"($P1277) + set $P1260, $P1259["sym"] + unless_null $P1260, vivify_313 + new $P1260, "Undef" + vivify_313: + set $S1261, $P1260 + iseq $I1262, $S1261, "O" + if $I1262, if_1258 +.annotate 'line', 348 + get_hll_global $P1267, ["PAST"], "Regex" + find_lex $P1268, "$octlit" + find_lex $P1269, "$/" + $P1270 = $P1267."new"($P1268, "literal" :named("pasttype"), $P1269 :named("node")) + set $P1257, $P1270 +.annotate 'line', 345 + goto if_1258_end + if_1258: .annotate 'line', 346 - .return ($P1278) - control_1268: + get_hll_global $P1263, ["PAST"], "Regex" + find_lex $P1264, "$octlit" + find_lex $P1265, "$/" + $P1266 = $P1263."new"($P1264, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1265 :named("node")) + set $P1257, $P1266 + if_1258_end: + $P1271 = $P1256."!make"($P1257) +.annotate 'line', 342 + .return ($P1271) + control_1243: .local pmc exception .get_results (exception) - getattribute $P1279, exception, "payload" - .return ($P1279) + getattribute $P1272, exception, "payload" + .return ($P1272) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "backslash:sym" :subid("75_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1283 -.annotate 'line', 350 - new $P1282, 'ExceptionHandler' - set_addr $P1282, control_1281 - $P1282."handle_types"(.CONTROL_RETURN) - push_eh $P1282 - .lex "self", self - .lex "$/", param_1283 +.sub "backslash:sym" :subid("75_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1276 .annotate 'line', 351 - new $P1284, "Undef" - .lex "$past", $P1284 - get_hll_global $P1285, ["PAST"], "Regex" - find_lex $P1286, "$/" - set $S1287, $P1286 - find_lex $P1288, "$/" - $P1289 = $P1285."new"($S1287, "literal" :named("pasttype"), $P1288 :named("node")) - store_lex "$past", $P1289 + new $P1275, 'ExceptionHandler' + set_addr $P1275, control_1274 + $P1275."handle_types"(.CONTROL_RETURN) + push_eh $P1275 + .lex "self", self + .lex "$/", param_1276 .annotate 'line', 352 + new $P1277, "Undef" + .lex "$hexlit", $P1277 +.annotate 'line', 353 + get_hll_global $P1278, ["HLL";"Actions"], "ints_to_string" + find_lex $P1281, "$/" + unless_null $P1281, vivify_314 + $P1281 = root_new ['parrot';'Hash'] + vivify_314: + set $P1282, $P1281["hexint"] + unless_null $P1282, vivify_315 + new $P1282, "Undef" + vivify_315: + unless $P1282, unless_1280 + set $P1279, $P1282 + goto unless_1280_end + unless_1280: + find_lex $P1283, "$/" + unless_null $P1283, vivify_316 + $P1283 = root_new ['parrot';'Hash'] + vivify_316: + set $P1284, $P1283["hexints"] + unless_null $P1284, vivify_317 + $P1284 = root_new ['parrot';'Hash'] + vivify_317: + set $P1285, $P1284["hexint"] + unless_null $P1285, vivify_318 + new $P1285, "Undef" + vivify_318: + set $P1279, $P1285 + unless_1280_end: + $P1286 = $P1278($P1279) + store_lex "$hexlit", $P1286 +.annotate 'line', 354 + find_lex $P1287, "$/" find_lex $P1290, "$/" - find_lex $P1291, "$past" - $P1292 = $P1290."!make"($P1291) -.annotate 'line', 350 - .return ($P1292) - control_1281: + unless_null $P1290, vivify_319 + $P1290 = root_new ['parrot';'Hash'] + vivify_319: + set $P1291, $P1290["sym"] + unless_null $P1291, vivify_320 + new $P1291, "Undef" + vivify_320: + set $S1292, $P1291 + iseq $I1293, $S1292, "X" + if $I1293, if_1289 +.annotate 'line', 357 + get_hll_global $P1298, ["PAST"], "Regex" + find_lex $P1299, "$hexlit" + find_lex $P1300, "$/" + $P1301 = $P1298."new"($P1299, "literal" :named("pasttype"), $P1300 :named("node")) + set $P1288, $P1301 +.annotate 'line', 354 + goto if_1289_end + if_1289: +.annotate 'line', 355 + get_hll_global $P1294, ["PAST"], "Regex" + find_lex $P1295, "$hexlit" + find_lex $P1296, "$/" + $P1297 = $P1294."new"($P1295, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1296 :named("node")) + set $P1288, $P1297 + if_1289_end: + $P1302 = $P1287."!make"($P1288) +.annotate 'line', 351 + .return ($P1302) + control_1274: .local pmc exception .get_results (exception) - getattribute $P1293, exception, "payload" - .return ($P1293) + getattribute $P1303, exception, "payload" + .return ($P1303) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("76_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1297 -.annotate 'line', 356 - new $P1296, 'ExceptionHandler' - set_addr $P1296, control_1295 - $P1296."handle_types"(.CONTROL_RETURN) - push_eh $P1296 - .lex "self", self - .lex "$/", param_1297 -.annotate 'line', 357 - new $P1298, "Undef" - .lex "$past", $P1298 -.annotate 'line', 356 - find_lex $P1299, "$past" -.annotate 'line', 358 - find_lex $P1301, "$/" - unless_null $P1301, vivify_313 - $P1301 = root_new ['parrot';'Hash'] - vivify_313: - set $P1302, $P1301["assertion"] - unless_null $P1302, vivify_314 - new $P1302, "Undef" - vivify_314: - if $P1302, if_1300 -.annotate 'line', 362 - new $P1307, "Integer" - assign $P1307, 0 - store_lex "$past", $P1307 - goto if_1300_end - if_1300: -.annotate 'line', 359 - find_lex $P1303, "$/" - unless_null $P1303, vivify_315 - $P1303 = root_new ['parrot';'Hash'] - vivify_315: - set $P1304, $P1303["assertion"] - unless_null $P1304, vivify_316 - new $P1304, "Undef" - vivify_316: - $P1305 = $P1304."ast"() - store_lex "$past", $P1305 +.sub "backslash:sym" :subid("76_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1307 .annotate 'line', 360 - find_lex $P1306, "$past" - $P1306."subtype"("zerowidth") - if_1300_end: -.annotate 'line', 363 + new $P1306, 'ExceptionHandler' + set_addr $P1306, control_1305 + $P1306."handle_types"(.CONTROL_RETURN) + push_eh $P1306 + .lex "self", self + .lex "$/", param_1307 +.annotate 'line', 361 find_lex $P1308, "$/" - find_lex $P1309, "$past" - $P1310 = $P1308."!make"($P1309) -.annotate 'line', 356 - .return ($P1310) - control_1295: + get_hll_global $P1309, ["PAST"], "Regex" + find_lex $P1310, "$/" + unless_null $P1310, vivify_321 + $P1310 = root_new ['parrot';'Hash'] + vivify_321: + set $P1311, $P1310["charspec"] + unless_null $P1311, vivify_322 + new $P1311, "Undef" + vivify_322: + $P1312 = $P1311."ast"() + find_lex $P1313, "$/" + $P1314 = $P1309."new"($P1312, "literal" :named("pasttype"), $P1313 :named("node")) + $P1315 = $P1308."!make"($P1314) +.annotate 'line', 360 + .return ($P1315) + control_1305: .local pmc exception .get_results (exception) - getattribute $P1311, exception, "payload" - .return ($P1311) + getattribute $P1316, exception, "payload" + .return ($P1316) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("77_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1315 -.annotate 'line', 366 - new $P1314, 'ExceptionHandler' - set_addr $P1314, control_1313 - $P1314."handle_types"(.CONTROL_RETURN) - push_eh $P1314 +.sub "backslash:sym" :subid("77_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1320 +.annotate 'line', 364 + new $P1319, 'ExceptionHandler' + set_addr $P1319, control_1318 + $P1319."handle_types"(.CONTROL_RETURN) + push_eh $P1319 .lex "self", self - .lex "$/", param_1315 -.annotate 'line', 367 - new $P1316, "Undef" - .lex "$past", $P1316 + .lex "$/", param_1320 +.annotate 'line', 365 + new $P1321, "Undef" + .lex "$past", $P1321 + get_hll_global $P1322, ["PAST"], "Regex" + find_lex $P1323, "$/" + set $S1324, $P1323 + find_lex $P1325, "$/" + $P1326 = $P1322."new"($S1324, "literal" :named("pasttype"), $P1325 :named("node")) + store_lex "$past", $P1326 .annotate 'line', 366 - find_lex $P1317, "$past" -.annotate 'line', 368 - find_lex $P1319, "$/" - unless_null $P1319, vivify_317 - $P1319 = root_new ['parrot';'Hash'] - vivify_317: - set $P1320, $P1319["assertion"] - unless_null $P1320, vivify_318 - new $P1320, "Undef" - vivify_318: - if $P1320, if_1318 -.annotate 'line', 374 - get_hll_global $P1329, ["PAST"], "Regex" - find_lex $P1330, "$/" - $P1331 = $P1329."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1330 :named("node")) - store_lex "$past", $P1331 -.annotate 'line', 373 - goto if_1318_end - if_1318: -.annotate 'line', 369 - find_lex $P1321, "$/" - unless_null $P1321, vivify_319 - $P1321 = root_new ['parrot';'Hash'] - vivify_319: - set $P1322, $P1321["assertion"] - unless_null $P1322, vivify_320 - new $P1322, "Undef" - vivify_320: - $P1323 = $P1322."ast"() - store_lex "$past", $P1323 -.annotate 'line', 370 - find_lex $P1324, "$past" - find_lex $P1325, "$past" - $P1326 = $P1325."negate"() - isfalse $I1327, $P1326 - $P1324."negate"($I1327) -.annotate 'line', 371 + find_lex $P1327, "$/" find_lex $P1328, "$past" - $P1328."subtype"("zerowidth") - if_1318_end: -.annotate 'line', 376 - find_lex $P1332, "$/" - find_lex $P1333, "$past" - $P1334 = $P1332."!make"($P1333) -.annotate 'line', 366 - .return ($P1334) - control_1313: + $P1329 = $P1327."!make"($P1328) +.annotate 'line', 364 + .return ($P1329) + control_1318: .local pmc exception .get_results (exception) - getattribute $P1335, exception, "payload" - .return ($P1335) + getattribute $P1330, exception, "payload" + .return ($P1330) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("78_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1339 -.annotate 'line', 379 - new $P1338, 'ExceptionHandler' - set_addr $P1338, control_1337 - $P1338."handle_types"(.CONTROL_RETURN) - push_eh $P1338 +.sub "assertion:sym" :subid("78_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1334 +.annotate 'line', 370 + new $P1333, 'ExceptionHandler' + set_addr $P1333, control_1332 + $P1333."handle_types"(.CONTROL_RETURN) + push_eh $P1333 .lex "self", self - .lex "$/", param_1339 -.annotate 'line', 380 - new $P1340, "Undef" - .lex "$past", $P1340 - find_lex $P1341, "$/" - unless_null $P1341, vivify_321 - $P1341 = root_new ['parrot';'Hash'] - vivify_321: - set $P1342, $P1341["assertion"] - unless_null $P1342, vivify_322 - new $P1342, "Undef" - vivify_322: - $P1343 = $P1342."ast"() - store_lex "$past", $P1343 -.annotate 'line', 381 - find_lex $P1344, "$past" - $P1344."subtype"("method") -.annotate 'line', 382 - find_lex $P1345, "$past" - $P1345."name"("") -.annotate 'line', 383 - find_lex $P1346, "$/" - find_lex $P1347, "$past" - $P1348 = $P1346."!make"($P1347) -.annotate 'line', 379 - .return ($P1348) - control_1337: + .lex "$/", param_1334 +.annotate 'line', 371 + new $P1335, "Undef" + .lex "$past", $P1335 +.annotate 'line', 370 + find_lex $P1336, "$past" +.annotate 'line', 372 + find_lex $P1338, "$/" + unless_null $P1338, vivify_323 + $P1338 = root_new ['parrot';'Hash'] + vivify_323: + set $P1339, $P1338["assertion"] + unless_null $P1339, vivify_324 + new $P1339, "Undef" + vivify_324: + if $P1339, if_1337 +.annotate 'line', 376 + new $P1344, "Integer" + assign $P1344, 0 + store_lex "$past", $P1344 + goto if_1337_end + if_1337: +.annotate 'line', 373 + find_lex $P1340, "$/" + unless_null $P1340, vivify_325 + $P1340 = root_new ['parrot';'Hash'] + vivify_325: + set $P1341, $P1340["assertion"] + unless_null $P1341, vivify_326 + new $P1341, "Undef" + vivify_326: + $P1342 = $P1341."ast"() + store_lex "$past", $P1342 +.annotate 'line', 374 + find_lex $P1343, "$past" + $P1343."subtype"("zerowidth") + if_1337_end: +.annotate 'line', 377 + find_lex $P1345, "$/" + find_lex $P1346, "$past" + $P1347 = $P1345."!make"($P1346) +.annotate 'line', 370 + .return ($P1347) + control_1332: .local pmc exception .get_results (exception) - getattribute $P1349, exception, "payload" - .return ($P1349) + getattribute $P1348, exception, "payload" + .return ($P1348) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym" :subid("79_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1353 -.annotate 'line', 386 - .const 'Sub' $P1410 = "81_1282016526.02169" - capture_lex $P1410 - .const 'Sub' $P1376 = "80_1282016526.02169" - capture_lex $P1376 - new $P1352, 'ExceptionHandler' - set_addr $P1352, control_1351 - $P1352."handle_types"(.CONTROL_RETURN) - push_eh $P1352 +.sub "assertion:sym" :subid("79_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1352 +.annotate 'line', 380 + new $P1351, 'ExceptionHandler' + set_addr $P1351, control_1350 + $P1351."handle_types"(.CONTROL_RETURN) + push_eh $P1351 .lex "self", self - .lex "$/", param_1353 -.annotate 'line', 387 - new $P1354, "Undef" - .lex "$name", $P1354 -.annotate 'line', 388 - new $P1355, "Undef" - .lex "$past", $P1355 -.annotate 'line', 387 + .lex "$/", param_1352 +.annotate 'line', 381 + new $P1353, "Undef" + .lex "$past", $P1353 +.annotate 'line', 380 + find_lex $P1354, "$past" +.annotate 'line', 382 find_lex $P1356, "$/" - unless_null $P1356, vivify_323 + unless_null $P1356, vivify_327 $P1356 = root_new ['parrot';'Hash'] - vivify_323: - set $P1357, $P1356["longname"] - unless_null $P1357, vivify_324 - new $P1357, "Undef" - vivify_324: - set $S1358, $P1357 - new $P1359, 'String' - set $P1359, $S1358 - store_lex "$name", $P1359 - find_lex $P1360, "$past" -.annotate 'line', 389 - find_lex $P1362, "$/" - unless_null $P1362, vivify_325 - $P1362 = root_new ['parrot';'Hash'] - vivify_325: - set $P1363, $P1362["assertion"] - unless_null $P1363, vivify_326 - new $P1363, "Undef" - vivify_326: - if $P1363, if_1361 -.annotate 'line', 393 - find_lex $P1372, "$name" - set $S1373, $P1372 - iseq $I1374, $S1373, "sym" - if $I1374, if_1371 -.annotate 'line', 409 - find_lex $P1386, "self" - find_lex $P1387, "$/" - $P1388 = $P1386."named_assertion"($P1387) - store_lex "$past", $P1388 -.annotate 'line', 410 - find_lex $P1390, "$/" - unless_null $P1390, vivify_327 - $P1390 = root_new ['parrot';'Hash'] vivify_327: - set $P1391, $P1390["nibbler"] - unless_null $P1391, vivify_328 - new $P1391, "Undef" + set $P1357, $P1356["assertion"] + unless_null $P1357, vivify_328 + new $P1357, "Undef" vivify_328: - if $P1391, if_1389 -.annotate 'line', 413 - find_lex $P1399, "$/" - unless_null $P1399, vivify_329 - $P1399 = root_new ['parrot';'Hash'] + if $P1357, if_1355 +.annotate 'line', 388 + get_hll_global $P1366, ["PAST"], "Regex" + find_lex $P1367, "$/" + $P1368 = $P1366."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1367 :named("node")) + store_lex "$past", $P1368 +.annotate 'line', 387 + goto if_1355_end + if_1355: +.annotate 'line', 383 + find_lex $P1358, "$/" + unless_null $P1358, vivify_329 + $P1358 = root_new ['parrot';'Hash'] vivify_329: - set $P1400, $P1399["arglist"] - unless_null $P1400, vivify_330 - new $P1400, "Undef" + set $P1359, $P1358["assertion"] + unless_null $P1359, vivify_330 + new $P1359, "Undef" vivify_330: - unless $P1400, if_1398_end -.annotate 'line', 414 - find_lex $P1402, "$/" - unless_null $P1402, vivify_331 - $P1402 = root_new ['parrot';'Hash'] + $P1360 = $P1359."ast"() + store_lex "$past", $P1360 +.annotate 'line', 384 + find_lex $P1361, "$past" + find_lex $P1362, "$past" + $P1363 = $P1362."negate"() + isfalse $I1364, $P1363 + $P1361."negate"($I1364) +.annotate 'line', 385 + find_lex $P1365, "$past" + $P1365."subtype"("zerowidth") + if_1355_end: +.annotate 'line', 390 + find_lex $P1369, "$/" + find_lex $P1370, "$past" + $P1371 = $P1369."!make"($P1370) +.annotate 'line', 380 + .return ($P1371) + control_1350: + .local pmc exception + .get_results (exception) + getattribute $P1372, exception, "payload" + .return ($P1372) +.end + + +.namespace ["Regex";"P6Regex";"Actions"] +.include "except_types.pasm" +.sub "assertion:sym" :subid("80_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1376 +.annotate 'line', 393 + new $P1375, 'ExceptionHandler' + set_addr $P1375, control_1374 + $P1375."handle_types"(.CONTROL_RETURN) + push_eh $P1375 + .lex "self", self + .lex "$/", param_1376 +.annotate 'line', 394 + new $P1377, "Undef" + .lex "$past", $P1377 + find_lex $P1378, "$/" + unless_null $P1378, vivify_331 + $P1378 = root_new ['parrot';'Hash'] vivify_331: - set $P1403, $P1402["arglist"] - unless_null $P1403, vivify_332 - $P1403 = root_new ['parrot';'ResizablePMCArray'] + set $P1379, $P1378["assertion"] + unless_null $P1379, vivify_332 + new $P1379, "Undef" vivify_332: - set $P1404, $P1403[0] - unless_null $P1404, vivify_333 - new $P1404, "Undef" - vivify_333: - $P1405 = $P1404."ast"() - $P1406 = $P1405."list"() - defined $I1407, $P1406 - unless $I1407, for_undef_334 - iter $P1401, $P1406 - new $P1416, 'ExceptionHandler' - set_addr $P1416, loop1415_handler - $P1416."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST) - push_eh $P1416 - loop1415_test: - unless $P1401, loop1415_done - shift $P1408, $P1401 - loop1415_redo: - .const 'Sub' $P1410 = "81_1282016526.02169" - capture_lex $P1410 - $P1410($P1408) - loop1415_next: - goto loop1415_test - loop1415_handler: + $P1380 = $P1379."ast"() + store_lex "$past", $P1380 +.annotate 'line', 395 + find_lex $P1381, "$past" + $P1381."subtype"("method") +.annotate 'line', 396 + find_lex $P1382, "$past" + $P1382."name"("") +.annotate 'line', 397 + find_lex $P1383, "$/" + find_lex $P1384, "$past" + $P1385 = $P1383."!make"($P1384) +.annotate 'line', 393 + .return ($P1385) + control_1374: .local pmc exception .get_results (exception) - getattribute $P1417, exception, 'type' - eq $P1417, .CONTROL_LOOP_NEXT, loop1415_next - eq $P1417, .CONTROL_LOOP_REDO, loop1415_redo - loop1415_done: - pop_eh - for_undef_334: - if_1398_end: -.annotate 'line', 413 - goto if_1389_end - if_1389: -.annotate 'line', 411 - find_lex $P1392, "$past" + getattribute $P1386, exception, "payload" + .return ($P1386) +.end + + +.namespace ["Regex";"P6Regex";"Actions"] +.include "except_types.pasm" +.sub "assertion:sym" :subid("81_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1390 +.annotate 'line', 400 + .const 'Sub' $P1447 = "83_1282323999.42098" + capture_lex $P1447 + .const 'Sub' $P1413 = "82_1282323999.42098" + capture_lex $P1413 + new $P1389, 'ExceptionHandler' + set_addr $P1389, control_1388 + $P1389."handle_types"(.CONTROL_RETURN) + push_eh $P1389 + .lex "self", self + .lex "$/", param_1390 +.annotate 'line', 401 + new $P1391, "Undef" + .lex "$name", $P1391 +.annotate 'line', 402 + new $P1392, "Undef" + .lex "$past", $P1392 +.annotate 'line', 401 find_lex $P1393, "$/" - unless_null $P1393, vivify_335 + unless_null $P1393, vivify_333 $P1393 = root_new ['parrot';'Hash'] + vivify_333: + set $P1394, $P1393["longname"] + unless_null $P1394, vivify_334 + new $P1394, "Undef" + vivify_334: + set $S1395, $P1394 + new $P1396, 'String' + set $P1396, $S1395 + store_lex "$name", $P1396 + find_lex $P1397, "$past" +.annotate 'line', 403 + find_lex $P1399, "$/" + unless_null $P1399, vivify_335 + $P1399 = root_new ['parrot';'Hash'] vivify_335: - set $P1394, $P1393["nibbler"] - unless_null $P1394, vivify_336 - $P1394 = root_new ['parrot';'ResizablePMCArray'] + set $P1400, $P1399["assertion"] + unless_null $P1400, vivify_336 + new $P1400, "Undef" vivify_336: - set $P1395, $P1394[0] - unless_null $P1395, vivify_337 - new $P1395, "Undef" + if $P1400, if_1398 +.annotate 'line', 407 + find_lex $P1409, "$name" + set $S1410, $P1409 + iseq $I1411, $S1410, "sym" + if $I1411, if_1408 +.annotate 'line', 423 + find_lex $P1423, "self" + find_lex $P1424, "$/" + $P1425 = $P1423."named_assertion"($P1424) + store_lex "$past", $P1425 +.annotate 'line', 424 + find_lex $P1427, "$/" + unless_null $P1427, vivify_337 + $P1427 = root_new ['parrot';'Hash'] vivify_337: - $P1396 = $P1395."ast"() - $P1397 = "buildsub"($P1396) - $P1392."push"($P1397) - if_1389_end: -.annotate 'line', 408 - goto if_1371_end - if_1371: -.annotate 'line', 393 - .const 'Sub' $P1376 = "80_1282016526.02169" - capture_lex $P1376 - $P1376() - if_1371_end: - goto if_1361_end - if_1361: -.annotate 'line', 390 - find_lex $P1364, "$/" - unless_null $P1364, vivify_338 - $P1364 = root_new ['parrot';'Hash'] + set $P1428, $P1427["nibbler"] + unless_null $P1428, vivify_338 + new $P1428, "Undef" vivify_338: - set $P1365, $P1364["assertion"] - unless_null $P1365, vivify_339 - $P1365 = root_new ['parrot';'ResizablePMCArray'] + if $P1428, if_1426 +.annotate 'line', 427 + find_lex $P1436, "$/" + unless_null $P1436, vivify_339 + $P1436 = root_new ['parrot';'Hash'] vivify_339: - set $P1366, $P1365[0] - unless_null $P1366, vivify_340 - new $P1366, "Undef" + set $P1437, $P1436["arglist"] + unless_null $P1437, vivify_340 + new $P1437, "Undef" vivify_340: - $P1367 = $P1366."ast"() - store_lex "$past", $P1367 -.annotate 'line', 391 - find_lex $P1368, "self" - find_lex $P1369, "$past" - find_lex $P1370, "$name" - $P1368."subrule_alias"($P1369, $P1370) - if_1361_end: -.annotate 'line', 417 - find_lex $P1418, "$/" - find_lex $P1419, "$past" - $P1420 = $P1418."!make"($P1419) -.annotate 'line', 386 - .return ($P1420) - control_1351: + unless $P1437, if_1435_end +.annotate 'line', 428 + find_lex $P1439, "$/" + unless_null $P1439, vivify_341 + $P1439 = root_new ['parrot';'Hash'] + vivify_341: + set $P1440, $P1439["arglist"] + unless_null $P1440, vivify_342 + $P1440 = root_new ['parrot';'ResizablePMCArray'] + vivify_342: + set $P1441, $P1440[0] + unless_null $P1441, vivify_343 + new $P1441, "Undef" + vivify_343: + $P1442 = $P1441."ast"() + $P1443 = $P1442."list"() + defined $I1444, $P1443 + unless $I1444, for_undef_344 + iter $P1438, $P1443 + new $P1453, 'ExceptionHandler' + set_addr $P1453, loop1452_handler + $P1453."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST) + push_eh $P1453 + loop1452_test: + unless $P1438, loop1452_done + shift $P1445, $P1438 + loop1452_redo: + .const 'Sub' $P1447 = "83_1282323999.42098" + capture_lex $P1447 + $P1447($P1445) + loop1452_next: + goto loop1452_test + loop1452_handler: + .local pmc exception + .get_results (exception) + getattribute $P1454, exception, 'type' + eq $P1454, .CONTROL_LOOP_NEXT, loop1452_next + eq $P1454, .CONTROL_LOOP_REDO, loop1452_redo + loop1452_done: + pop_eh + for_undef_344: + if_1435_end: +.annotate 'line', 427 + goto if_1426_end + if_1426: +.annotate 'line', 425 + find_lex $P1429, "$past" + find_lex $P1430, "$/" + unless_null $P1430, vivify_345 + $P1430 = root_new ['parrot';'Hash'] + vivify_345: + set $P1431, $P1430["nibbler"] + unless_null $P1431, vivify_346 + $P1431 = root_new ['parrot';'ResizablePMCArray'] + vivify_346: + set $P1432, $P1431[0] + unless_null $P1432, vivify_347 + new $P1432, "Undef" + vivify_347: + $P1433 = $P1432."ast"() + $P1434 = "buildsub"($P1433) + $P1429."push"($P1434) + if_1426_end: +.annotate 'line', 422 + goto if_1408_end + if_1408: +.annotate 'line', 407 + .const 'Sub' $P1413 = "82_1282323999.42098" + capture_lex $P1413 + $P1413() + if_1408_end: + goto if_1398_end + if_1398: +.annotate 'line', 404 + find_lex $P1401, "$/" + unless_null $P1401, vivify_348 + $P1401 = root_new ['parrot';'Hash'] + vivify_348: + set $P1402, $P1401["assertion"] + unless_null $P1402, vivify_349 + $P1402 = root_new ['parrot';'ResizablePMCArray'] + vivify_349: + set $P1403, $P1402[0] + unless_null $P1403, vivify_350 + new $P1403, "Undef" + vivify_350: + $P1404 = $P1403."ast"() + store_lex "$past", $P1404 +.annotate 'line', 405 + find_lex $P1405, "self" + find_lex $P1406, "$past" + find_lex $P1407, "$name" + $P1405."subrule_alias"($P1406, $P1407) + if_1398_end: +.annotate 'line', 431 + find_lex $P1455, "$/" + find_lex $P1456, "$past" + $P1457 = $P1455."!make"($P1456) +.annotate 'line', 400 + .return ($P1457) + control_1388: .local pmc exception .get_results (exception) - getattribute $P1421, exception, "payload" - .return ($P1421) + getattribute $P1458, exception, "payload" + .return ($P1458) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1409" :anon :subid("81_1282016526.02169") :outer("79_1282016526.02169") - .param pmc param_1411 -.annotate 'line', 414 - .lex "$_", param_1411 - find_lex $P1412, "$past" - find_lex $P1413, "$_" - $P1414 = $P1412."push"($P1413) - .return ($P1414) +.sub "_block1446" :anon :subid("83_1282323999.42098") :outer("81_1282323999.42098") + .param pmc param_1448 +.annotate 'line', 428 + .lex "$_", param_1448 + find_lex $P1449, "$past" + find_lex $P1450, "$_" + $P1451 = $P1449."push"($P1450) + .return ($P1451) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1375" :anon :subid("80_1282016526.02169") :outer("79_1282016526.02169") -.annotate 'line', 394 - new $P1377, "Undef" - .lex "$regexsym", $P1377 +.sub "_block1412" :anon :subid("82_1282323999.42098") :outer("81_1282323999.42098") +.annotate 'line', 408 + new $P1414, "Undef" + .lex "$regexsym", $P1414 $P0 = get_global '$REGEXNAME' $S0 = $P0 @@ -12702,390 +12953,390 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes add $I0, 5 $S0 = substr $S0, $I0 $S0 = chopn $S0, 1 - $P1378 = box $S0 + $P1415 = box $S0 - store_lex "$regexsym", $P1378 -.annotate 'line', 403 - get_hll_global $P1379, ["PAST"], "Regex" -.annotate 'line', 404 - get_hll_global $P1380, ["PAST"], "Regex" - find_lex $P1381, "$regexsym" - $P1382 = $P1380."new"($P1381, "literal" :named("pasttype")) - find_lex $P1383, "$name" - find_lex $P1384, "$/" - $P1385 = $P1379."new"($P1382, $P1383 :named("name"), "subcapture" :named("pasttype"), $P1384 :named("node")) -.annotate 'line', 403 - store_lex "$past", $P1385 -.annotate 'line', 393 - .return ($P1385) + store_lex "$regexsym", $P1415 +.annotate 'line', 417 + get_hll_global $P1416, ["PAST"], "Regex" +.annotate 'line', 418 + get_hll_global $P1417, ["PAST"], "Regex" + find_lex $P1418, "$regexsym" + $P1419 = $P1417."new"($P1418, "literal" :named("pasttype")) + find_lex $P1420, "$name" + find_lex $P1421, "$/" + $P1422 = $P1416."new"($P1419, $P1420 :named("name"), "subcapture" :named("pasttype"), $P1421 :named("node")) +.annotate 'line', 417 + store_lex "$past", $P1422 +.annotate 'line', 407 + .return ($P1422) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "assertion:sym<[>" :subid("82_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1425 -.annotate 'line', 420 - .const 'Sub' $P1460 = "83_1282016526.02169" - capture_lex $P1460 - new $P1424, 'ExceptionHandler' - set_addr $P1424, control_1423 - $P1424."handle_types"(.CONTROL_RETURN) - push_eh $P1424 +.sub "assertion:sym<[>" :subid("84_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1462 +.annotate 'line', 434 + .const 'Sub' $P1497 = "85_1282323999.42098" + capture_lex $P1497 + new $P1461, 'ExceptionHandler' + set_addr $P1461, control_1460 + $P1461."handle_types"(.CONTROL_RETURN) + push_eh $P1461 .lex "self", self - .lex "$/", param_1425 -.annotate 'line', 421 - new $P1426, "Undef" - .lex "$clist", $P1426 -.annotate 'line', 422 - new $P1427, "Undef" - .lex "$past", $P1427 -.annotate 'line', 431 - new $P1428, "Undef" - .lex "$i", $P1428 -.annotate 'line', 432 - new $P1429, "Undef" - .lex "$n", $P1429 -.annotate 'line', 421 - find_lex $P1430, "$/" - unless_null $P1430, vivify_341 - $P1430 = root_new ['parrot';'Hash'] - vivify_341: - set $P1431, $P1430["cclass_elem"] - unless_null $P1431, vivify_342 - new $P1431, "Undef" - vivify_342: - store_lex "$clist", $P1431 -.annotate 'line', 422 - find_lex $P1432, "$clist" - unless_null $P1432, vivify_343 - $P1432 = root_new ['parrot';'ResizablePMCArray'] - vivify_343: - set $P1433, $P1432[0] - unless_null $P1433, vivify_344 - new $P1433, "Undef" - vivify_344: - $P1434 = $P1433."ast"() - store_lex "$past", $P1434 -.annotate 'line', 423 - find_lex $P1438, "$past" - $P1439 = $P1438."negate"() - if $P1439, if_1437 - set $P1436, $P1439 - goto if_1437_end - if_1437: - find_lex $P1440, "$past" - $S1441 = $P1440."pasttype"() - iseq $I1442, $S1441, "subrule" - new $P1436, 'Integer' - set $P1436, $I1442 - if_1437_end: - unless $P1436, if_1435_end -.annotate 'line', 424 - find_lex $P1443, "$past" - $P1443."subtype"("zerowidth") -.annotate 'line', 425 - get_hll_global $P1444, ["PAST"], "Regex" - find_lex $P1445, "$past" -.annotate 'line', 427 - get_hll_global $P1446, ["PAST"], "Regex" - $P1447 = $P1446."new"("charclass" :named("pasttype"), "." :named("subtype")) - find_lex $P1448, "$/" - $P1449 = $P1444."new"($P1445, $P1447, $P1448 :named("node")) -.annotate 'line', 425 - store_lex "$past", $P1449 - if_1435_end: -.annotate 'line', 431 - new $P1450, "Integer" - assign $P1450, 1 - store_lex "$i", $P1450 -.annotate 'line', 432 - find_lex $P1451, "$clist" - set $N1452, $P1451 - new $P1453, 'Float' - set $P1453, $N1452 - store_lex "$n", $P1453 -.annotate 'line', 433 - new $P1484, 'ExceptionHandler' - set_addr $P1484, loop1483_handler - $P1484."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST) - push_eh $P1484 - loop1483_test: - find_lex $P1454, "$i" - set $N1455, $P1454 - find_lex $P1456, "$n" - set $N1457, $P1456 - islt $I1458, $N1455, $N1457 - unless $I1458, loop1483_done - loop1483_redo: - .const 'Sub' $P1460 = "83_1282016526.02169" - capture_lex $P1460 - $P1460() - loop1483_next: - goto loop1483_test - loop1483_handler: + .lex "$/", param_1462 +.annotate 'line', 435 + new $P1463, "Undef" + .lex "$clist", $P1463 +.annotate 'line', 436 + new $P1464, "Undef" + .lex "$past", $P1464 +.annotate 'line', 445 + new $P1465, "Undef" + .lex "$i", $P1465 +.annotate 'line', 446 + new $P1466, "Undef" + .lex "$n", $P1466 +.annotate 'line', 435 + find_lex $P1467, "$/" + unless_null $P1467, vivify_351 + $P1467 = root_new ['parrot';'Hash'] + vivify_351: + set $P1468, $P1467["cclass_elem"] + unless_null $P1468, vivify_352 + new $P1468, "Undef" + vivify_352: + store_lex "$clist", $P1468 +.annotate 'line', 436 + find_lex $P1469, "$clist" + unless_null $P1469, vivify_353 + $P1469 = root_new ['parrot';'ResizablePMCArray'] + vivify_353: + set $P1470, $P1469[0] + unless_null $P1470, vivify_354 + new $P1470, "Undef" + vivify_354: + $P1471 = $P1470."ast"() + store_lex "$past", $P1471 +.annotate 'line', 437 + find_lex $P1475, "$past" + $P1476 = $P1475."negate"() + if $P1476, if_1474 + set $P1473, $P1476 + goto if_1474_end + if_1474: + find_lex $P1477, "$past" + $S1478 = $P1477."pasttype"() + iseq $I1479, $S1478, "subrule" + new $P1473, 'Integer' + set $P1473, $I1479 + if_1474_end: + unless $P1473, if_1472_end +.annotate 'line', 438 + find_lex $P1480, "$past" + $P1480."subtype"("zerowidth") +.annotate 'line', 439 + get_hll_global $P1481, ["PAST"], "Regex" + find_lex $P1482, "$past" +.annotate 'line', 441 + get_hll_global $P1483, ["PAST"], "Regex" + $P1484 = $P1483."new"("charclass" :named("pasttype"), "." :named("subtype")) + find_lex $P1485, "$/" + $P1486 = $P1481."new"($P1482, $P1484, $P1485 :named("node")) +.annotate 'line', 439 + store_lex "$past", $P1486 + if_1472_end: +.annotate 'line', 445 + new $P1487, "Integer" + assign $P1487, 1 + store_lex "$i", $P1487 +.annotate 'line', 446 + find_lex $P1488, "$clist" + set $N1489, $P1488 + new $P1490, 'Float' + set $P1490, $N1489 + store_lex "$n", $P1490 +.annotate 'line', 447 + new $P1521, 'ExceptionHandler' + set_addr $P1521, loop1520_handler + $P1521."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST) + push_eh $P1521 + loop1520_test: + find_lex $P1491, "$i" + set $N1492, $P1491 + find_lex $P1493, "$n" + set $N1494, $P1493 + islt $I1495, $N1492, $N1494 + unless $I1495, loop1520_done + loop1520_redo: + .const 'Sub' $P1497 = "85_1282323999.42098" + capture_lex $P1497 + $P1497() + loop1520_next: + goto loop1520_test + loop1520_handler: .local pmc exception .get_results (exception) - getattribute $P1485, exception, 'type' - eq $P1485, .CONTROL_LOOP_NEXT, loop1483_next - eq $P1485, .CONTROL_LOOP_REDO, loop1483_redo - loop1483_done: + getattribute $P1522, exception, 'type' + eq $P1522, .CONTROL_LOOP_NEXT, loop1520_next + eq $P1522, .CONTROL_LOOP_REDO, loop1520_redo + loop1520_done: pop_eh -.annotate 'line', 444 - find_lex $P1486, "$/" - find_lex $P1487, "$past" - $P1488 = $P1486."!make"($P1487) -.annotate 'line', 420 - .return ($P1488) - control_1423: +.annotate 'line', 458 + find_lex $P1523, "$/" + find_lex $P1524, "$past" + $P1525 = $P1523."!make"($P1524) +.annotate 'line', 434 + .return ($P1525) + control_1460: .local pmc exception .get_results (exception) - getattribute $P1489, exception, "payload" - .return ($P1489) + getattribute $P1526, exception, "payload" + .return ($P1526) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1459" :anon :subid("83_1282016526.02169") :outer("82_1282016526.02169") -.annotate 'line', 434 - new $P1461, "Undef" - .lex "$ast", $P1461 - find_lex $P1462, "$i" - set $I1463, $P1462 - find_lex $P1464, "$clist" - unless_null $P1464, vivify_345 - $P1464 = root_new ['parrot';'ResizablePMCArray'] - vivify_345: - set $P1465, $P1464[$I1463] - unless_null $P1465, vivify_346 - new $P1465, "Undef" - vivify_346: - $P1466 = $P1465."ast"() - store_lex "$ast", $P1466 -.annotate 'line', 435 - find_lex $P1468, "$ast" - $P1469 = $P1468."negate"() - if $P1469, if_1467 -.annotate 'line', 440 - get_hll_global $P1476, ["PAST"], "Regex" - find_lex $P1477, "$past" - find_lex $P1478, "$ast" - find_lex $P1479, "$/" - $P1480 = $P1476."new"($P1477, $P1478, "alt" :named("pasttype"), $P1479 :named("node")) - store_lex "$past", $P1480 -.annotate 'line', 439 - goto if_1467_end - if_1467: -.annotate 'line', 436 - find_lex $P1470, "$ast" - $P1470."subtype"("zerowidth") -.annotate 'line', 437 - get_hll_global $P1471, ["PAST"], "Regex" - find_lex $P1472, "$ast" - find_lex $P1473, "$past" - find_lex $P1474, "$/" - $P1475 = $P1471."new"($P1472, $P1473, "concat" :named("pasttype"), $P1474 :named("node")) - store_lex "$past", $P1475 - if_1467_end: -.annotate 'line', 442 - find_lex $P1481, "$i" - add $P1482, $P1481, 1 - store_lex "$i", $P1482 -.annotate 'line', 433 - .return ($P1482) +.sub "_block1496" :anon :subid("85_1282323999.42098") :outer("84_1282323999.42098") +.annotate 'line', 448 + new $P1498, "Undef" + .lex "$ast", $P1498 + find_lex $P1499, "$i" + set $I1500, $P1499 + find_lex $P1501, "$clist" + unless_null $P1501, vivify_355 + $P1501 = root_new ['parrot';'ResizablePMCArray'] + vivify_355: + set $P1502, $P1501[$I1500] + unless_null $P1502, vivify_356 + new $P1502, "Undef" + vivify_356: + $P1503 = $P1502."ast"() + store_lex "$ast", $P1503 +.annotate 'line', 449 + find_lex $P1505, "$ast" + $P1506 = $P1505."negate"() + if $P1506, if_1504 +.annotate 'line', 454 + get_hll_global $P1513, ["PAST"], "Regex" + find_lex $P1514, "$past" + find_lex $P1515, "$ast" + find_lex $P1516, "$/" + $P1517 = $P1513."new"($P1514, $P1515, "alt" :named("pasttype"), $P1516 :named("node")) + store_lex "$past", $P1517 +.annotate 'line', 453 + goto if_1504_end + if_1504: +.annotate 'line', 450 + find_lex $P1507, "$ast" + $P1507."subtype"("zerowidth") +.annotate 'line', 451 + get_hll_global $P1508, ["PAST"], "Regex" + find_lex $P1509, "$ast" + find_lex $P1510, "$past" + find_lex $P1511, "$/" + $P1512 = $P1508."new"($P1509, $P1510, "concat" :named("pasttype"), $P1511 :named("node")) + store_lex "$past", $P1512 + if_1504_end: +.annotate 'line', 456 + find_lex $P1518, "$i" + add $P1519, $P1518, 1 + store_lex "$i", $P1519 +.annotate 'line', 447 + .return ($P1519) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "cclass_elem" :subid("84_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1493 -.annotate 'line', 447 - .const 'Sub' $P1518 = "86_1282016526.02169" - capture_lex $P1518 - .const 'Sub' $P1502 = "85_1282016526.02169" - capture_lex $P1502 - new $P1492, 'ExceptionHandler' - set_addr $P1492, control_1491 - $P1492."handle_types"(.CONTROL_RETURN) - push_eh $P1492 +.sub "cclass_elem" :subid("86_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1530 +.annotate 'line', 461 + .const 'Sub' $P1555 = "88_1282323999.42098" + capture_lex $P1555 + .const 'Sub' $P1539 = "87_1282323999.42098" + capture_lex $P1539 + new $P1529, 'ExceptionHandler' + set_addr $P1529, control_1528 + $P1529."handle_types"(.CONTROL_RETURN) + push_eh $P1529 .lex "self", self - .lex "$/", param_1493 -.annotate 'line', 448 - new $P1494, "Undef" - .lex "$str", $P1494 -.annotate 'line', 449 - new $P1495, "Undef" - .lex "$past", $P1495 -.annotate 'line', 448 - new $P1496, "String" - assign $P1496, "" - store_lex "$str", $P1496 - find_lex $P1497, "$past" -.annotate 'line', 450 - find_lex $P1499, "$/" - unless_null $P1499, vivify_347 - $P1499 = root_new ['parrot';'Hash'] - vivify_347: - set $P1500, $P1499["name"] - unless_null $P1500, vivify_348 - new $P1500, "Undef" - vivify_348: - if $P1500, if_1498 -.annotate 'line', 454 - find_lex $P1513, "$/" - unless_null $P1513, vivify_349 - $P1513 = root_new ['parrot';'Hash'] - vivify_349: - set $P1514, $P1513["charspec"] - unless_null $P1514, vivify_350 - new $P1514, "Undef" - vivify_350: - defined $I1515, $P1514 - unless $I1515, for_undef_351 - iter $P1512, $P1514 - new $P1544, 'ExceptionHandler' - set_addr $P1544, loop1543_handler - $P1544."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST) - push_eh $P1544 - loop1543_test: - unless $P1512, loop1543_done - shift $P1516, $P1512 - loop1543_redo: - .const 'Sub' $P1518 = "86_1282016526.02169" - capture_lex $P1518 - $P1518($P1516) - loop1543_next: - goto loop1543_test - loop1543_handler: + .lex "$/", param_1530 +.annotate 'line', 462 + new $P1531, "Undef" + .lex "$str", $P1531 +.annotate 'line', 463 + new $P1532, "Undef" + .lex "$past", $P1532 +.annotate 'line', 462 + new $P1533, "String" + assign $P1533, "" + store_lex "$str", $P1533 + find_lex $P1534, "$past" +.annotate 'line', 464 + find_lex $P1536, "$/" + unless_null $P1536, vivify_357 + $P1536 = root_new ['parrot';'Hash'] + vivify_357: + set $P1537, $P1536["name"] + unless_null $P1537, vivify_358 + new $P1537, "Undef" + vivify_358: + if $P1537, if_1535 +.annotate 'line', 468 + find_lex $P1550, "$/" + unless_null $P1550, vivify_359 + $P1550 = root_new ['parrot';'Hash'] + vivify_359: + set $P1551, $P1550["charspec"] + unless_null $P1551, vivify_360 + new $P1551, "Undef" + vivify_360: + defined $I1552, $P1551 + unless $I1552, for_undef_361 + iter $P1549, $P1551 + new $P1581, 'ExceptionHandler' + set_addr $P1581, loop1580_handler + $P1581."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST) + push_eh $P1581 + loop1580_test: + unless $P1549, loop1580_done + shift $P1553, $P1549 + loop1580_redo: + .const 'Sub' $P1555 = "88_1282323999.42098" + capture_lex $P1555 + $P1555($P1553) + loop1580_next: + goto loop1580_test + loop1580_handler: .local pmc exception .get_results (exception) - getattribute $P1545, exception, 'type' - eq $P1545, .CONTROL_LOOP_NEXT, loop1543_next - eq $P1545, .CONTROL_LOOP_REDO, loop1543_redo - loop1543_done: + getattribute $P1582, exception, 'type' + eq $P1582, .CONTROL_LOOP_NEXT, loop1580_next + eq $P1582, .CONTROL_LOOP_REDO, loop1580_redo + loop1580_done: pop_eh - for_undef_351: -.annotate 'line', 479 - get_hll_global $P1546, ["PAST"], "Regex" - find_lex $P1547, "$str" - find_lex $P1548, "$/" - $P1549 = $P1546."new"($P1547, "enumcharlist" :named("pasttype"), $P1548 :named("node")) - store_lex "$past", $P1549 -.annotate 'line', 453 - goto if_1498_end - if_1498: -.annotate 'line', 450 - .const 'Sub' $P1502 = "85_1282016526.02169" - capture_lex $P1502 - $P1502() - if_1498_end: -.annotate 'line', 481 - find_lex $P1550, "$past" - find_lex $P1551, "$/" - unless_null $P1551, vivify_363 - $P1551 = root_new ['parrot';'Hash'] - vivify_363: - set $P1552, $P1551["sign"] - unless_null $P1552, vivify_364 - new $P1552, "Undef" - vivify_364: - set $S1553, $P1552 - iseq $I1554, $S1553, "-" - $P1550."negate"($I1554) -.annotate 'line', 482 - find_lex $P1555, "$/" - find_lex $P1556, "$past" - $P1557 = $P1555."!make"($P1556) -.annotate 'line', 447 - .return ($P1557) - control_1491: + for_undef_361: +.annotate 'line', 493 + get_hll_global $P1583, ["PAST"], "Regex" + find_lex $P1584, "$str" + find_lex $P1585, "$/" + $P1586 = $P1583."new"($P1584, "enumcharlist" :named("pasttype"), $P1585 :named("node")) + store_lex "$past", $P1586 +.annotate 'line', 467 + goto if_1535_end + if_1535: +.annotate 'line', 464 + .const 'Sub' $P1539 = "87_1282323999.42098" + capture_lex $P1539 + $P1539() + if_1535_end: +.annotate 'line', 495 + find_lex $P1587, "$past" + find_lex $P1588, "$/" + unless_null $P1588, vivify_373 + $P1588 = root_new ['parrot';'Hash'] + vivify_373: + set $P1589, $P1588["sign"] + unless_null $P1589, vivify_374 + new $P1589, "Undef" + vivify_374: + set $S1590, $P1589 + iseq $I1591, $S1590, "-" + $P1587."negate"($I1591) +.annotate 'line', 496 + find_lex $P1592, "$/" + find_lex $P1593, "$past" + $P1594 = $P1592."!make"($P1593) +.annotate 'line', 461 + .return ($P1594) + control_1528: .local pmc exception .get_results (exception) - getattribute $P1558, exception, "payload" - .return ($P1558) + getattribute $P1595, exception, "payload" + .return ($P1595) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1517" :anon :subid("86_1282016526.02169") :outer("84_1282016526.02169") - .param pmc param_1519 -.annotate 'line', 454 - .const 'Sub' $P1525 = "87_1282016526.02169" - capture_lex $P1525 - .lex "$_", param_1519 -.annotate 'line', 455 - find_lex $P1522, "$_" - unless_null $P1522, vivify_352 - $P1522 = root_new ['parrot';'ResizablePMCArray'] - vivify_352: - set $P1523, $P1522[1] - unless_null $P1523, vivify_353 - new $P1523, "Undef" - vivify_353: - if $P1523, if_1521 -.annotate 'line', 477 - find_lex $P1539, "$str" - find_lex $P1540, "$_" - unless_null $P1540, vivify_354 - $P1540 = root_new ['parrot';'ResizablePMCArray'] - vivify_354: - set $P1541, $P1540[0] - unless_null $P1541, vivify_355 - new $P1541, "Undef" - vivify_355: - concat $P1542, $P1539, $P1541 - store_lex "$str", $P1542 - set $P1520, $P1542 -.annotate 'line', 455 - goto if_1521_end - if_1521: - .const 'Sub' $P1525 = "87_1282016526.02169" - capture_lex $P1525 - $P1538 = $P1525() - set $P1520, $P1538 - if_1521_end: -.annotate 'line', 454 - .return ($P1520) +.sub "_block1554" :anon :subid("88_1282323999.42098") :outer("86_1282323999.42098") + .param pmc param_1556 +.annotate 'line', 468 + .const 'Sub' $P1562 = "89_1282323999.42098" + capture_lex $P1562 + .lex "$_", param_1556 +.annotate 'line', 469 + find_lex $P1559, "$_" + unless_null $P1559, vivify_362 + $P1559 = root_new ['parrot';'ResizablePMCArray'] + vivify_362: + set $P1560, $P1559[1] + unless_null $P1560, vivify_363 + new $P1560, "Undef" + vivify_363: + if $P1560, if_1558 +.annotate 'line', 491 + find_lex $P1576, "$str" + find_lex $P1577, "$_" + unless_null $P1577, vivify_364 + $P1577 = root_new ['parrot';'ResizablePMCArray'] + vivify_364: + set $P1578, $P1577[0] + unless_null $P1578, vivify_365 + new $P1578, "Undef" + vivify_365: + concat $P1579, $P1576, $P1578 + store_lex "$str", $P1579 + set $P1557, $P1579 +.annotate 'line', 469 + goto if_1558_end + if_1558: + .const 'Sub' $P1562 = "89_1282323999.42098" + capture_lex $P1562 + $P1575 = $P1562() + set $P1557, $P1575 + if_1558_end: +.annotate 'line', 468 + .return ($P1557) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1524" :anon :subid("87_1282016526.02169") :outer("86_1282016526.02169") -.annotate 'line', 456 - new $P1526, "Undef" - .lex "$a", $P1526 -.annotate 'line', 457 - new $P1527, "Undef" - .lex "$b", $P1527 -.annotate 'line', 458 - new $P1528, "Undef" - .lex "$c", $P1528 -.annotate 'line', 456 - find_lex $P1529, "$_" - unless_null $P1529, vivify_356 - $P1529 = root_new ['parrot';'ResizablePMCArray'] - vivify_356: - set $P1530, $P1529[0] - unless_null $P1530, vivify_357 - new $P1530, "Undef" - vivify_357: - store_lex "$a", $P1530 -.annotate 'line', 457 - find_lex $P1531, "$_" - unless_null $P1531, vivify_358 - $P1531 = root_new ['parrot';'ResizablePMCArray'] - vivify_358: - set $P1532, $P1531[1] - unless_null $P1532, vivify_359 - $P1532 = root_new ['parrot';'ResizablePMCArray'] - vivify_359: - set $P1533, $P1532[0] - unless_null $P1533, vivify_360 - new $P1533, "Undef" - vivify_360: - store_lex "$b", $P1533 -.annotate 'line', 458 +.sub "_block1561" :anon :subid("89_1282323999.42098") :outer("88_1282323999.42098") +.annotate 'line', 470 + new $P1563, "Undef" + .lex "$a", $P1563 +.annotate 'line', 471 + new $P1564, "Undef" + .lex "$b", $P1564 +.annotate 'line', 472 + new $P1565, "Undef" + .lex "$c", $P1565 +.annotate 'line', 470 + find_lex $P1566, "$_" + unless_null $P1566, vivify_366 + $P1566 = root_new ['parrot';'ResizablePMCArray'] + vivify_366: + set $P1567, $P1566[0] + unless_null $P1567, vivify_367 + new $P1567, "Undef" + vivify_367: + store_lex "$a", $P1567 +.annotate 'line', 471 + find_lex $P1568, "$_" + unless_null $P1568, vivify_368 + $P1568 = root_new ['parrot';'ResizablePMCArray'] + vivify_368: + set $P1569, $P1568[1] + unless_null $P1569, vivify_369 + $P1569 = root_new ['parrot';'ResizablePMCArray'] + vivify_369: + set $P1570, $P1569[0] + unless_null $P1570, vivify_370 + new $P1570, "Undef" + vivify_370: + store_lex "$b", $P1570 +.annotate 'line', 472 $P0 = find_lex '$a' $S0 = $P0 @@ -13101,255 +13352,255 @@ Regex::P6Regex - Parser/compiler for Perl 6 regexes inc $I0 goto cclass_loop cclass_done: - $P1534 = box $S2 + $P1571 = box $S2 - store_lex "$c", $P1534 -.annotate 'line', 475 - find_lex $P1535, "$str" - find_lex $P1536, "$c" - concat $P1537, $P1535, $P1536 - store_lex "$str", $P1537 -.annotate 'line', 455 - .return ($P1537) + store_lex "$c", $P1571 +.annotate 'line', 489 + find_lex $P1572, "$str" + find_lex $P1573, "$c" + concat $P1574, $P1572, $P1573 + store_lex "$str", $P1574 +.annotate 'line', 469 + .return ($P1574) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1501" :anon :subid("85_1282016526.02169") :outer("84_1282016526.02169") -.annotate 'line', 451 - new $P1503, "Undef" - .lex "$name", $P1503 - find_lex $P1504, "$/" - unless_null $P1504, vivify_361 - $P1504 = root_new ['parrot';'Hash'] - vivify_361: - set $P1505, $P1504["name"] - unless_null $P1505, vivify_362 - new $P1505, "Undef" - vivify_362: - set $S1506, $P1505 - new $P1507, 'String' - set $P1507, $S1506 - store_lex "$name", $P1507 -.annotate 'line', 452 - get_hll_global $P1508, ["PAST"], "Regex" - find_lex $P1509, "$name" - find_lex $P1510, "$/" - $P1511 = $P1508."new"($P1509, "subrule" :named("pasttype"), "method" :named("subtype"), $P1510 :named("node")) - store_lex "$past", $P1511 -.annotate 'line', 450 - .return ($P1511) +.sub "_block1538" :anon :subid("87_1282323999.42098") :outer("86_1282323999.42098") +.annotate 'line', 465 + new $P1540, "Undef" + .lex "$name", $P1540 + find_lex $P1541, "$/" + unless_null $P1541, vivify_371 + $P1541 = root_new ['parrot';'Hash'] + vivify_371: + set $P1542, $P1541["name"] + unless_null $P1542, vivify_372 + new $P1542, "Undef" + vivify_372: + set $S1543, $P1542 + new $P1544, 'String' + set $P1544, $S1543 + store_lex "$name", $P1544 +.annotate 'line', 466 + get_hll_global $P1545, ["PAST"], "Regex" + find_lex $P1546, "$name" + find_lex $P1547, "$/" + $P1548 = $P1545."new"($P1546, "subrule" :named("pasttype"), "method" :named("subtype"), $P1547 :named("node")) + store_lex "$past", $P1548 +.annotate 'line', 464 + .return ($P1548) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "mod_internal" :subid("88_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1562 -.annotate 'line', 485 - new $P1561, 'ExceptionHandler' - set_addr $P1561, control_1560 - $P1561."handle_types"(.CONTROL_RETURN) - push_eh $P1561 +.sub "mod_internal" :subid("90_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1599 +.annotate 'line', 499 + new $P1598, 'ExceptionHandler' + set_addr $P1598, control_1597 + $P1598."handle_types"(.CONTROL_RETURN) + push_eh $P1598 .lex "self", self - .lex "$/", param_1562 -.annotate 'line', 486 - $P1563 = root_new ['parrot';'Hash'] - .lex "%mods", $P1563 -.annotate 'line', 487 - new $P1564, "Undef" - .lex "$n", $P1564 -.annotate 'line', 486 - get_global $P1565, "@MODIFIERS" - unless_null $P1565, vivify_365 - $P1565 = root_new ['parrot';'ResizablePMCArray'] - vivify_365: - set $P1566, $P1565[0] - unless_null $P1566, vivify_366 - new $P1566, "Undef" - vivify_366: - store_lex "%mods", $P1566 -.annotate 'line', 487 - find_lex $P1569, "$/" - unless_null $P1569, vivify_367 - $P1569 = root_new ['parrot';'Hash'] - vivify_367: - set $P1570, $P1569["n"] - unless_null $P1570, vivify_368 - $P1570 = root_new ['parrot';'ResizablePMCArray'] - vivify_368: - set $P1571, $P1570[0] - unless_null $P1571, vivify_369 - new $P1571, "Undef" - vivify_369: - set $S1572, $P1571 - isgt $I1573, $S1572, "" - if $I1573, if_1568 - new $P1578, "Integer" - assign $P1578, 1 - set $P1567, $P1578 - goto if_1568_end - if_1568: - find_lex $P1574, "$/" - unless_null $P1574, vivify_370 - $P1574 = root_new ['parrot';'Hash'] - vivify_370: - set $P1575, $P1574["n"] - unless_null $P1575, vivify_371 - $P1575 = root_new ['parrot';'ResizablePMCArray'] - vivify_371: - set $P1576, $P1575[0] - unless_null $P1576, vivify_372 - new $P1576, "Undef" - vivify_372: - set $N1577, $P1576 - new $P1567, 'Float' - set $P1567, $N1577 - if_1568_end: - store_lex "$n", $P1567 -.annotate 'line', 488 - find_lex $P1579, "$n" - find_lex $P1580, "$/" - unless_null $P1580, vivify_373 - $P1580 = root_new ['parrot';'Hash'] - vivify_373: - set $P1581, $P1580["mod_ident"] - unless_null $P1581, vivify_374 - $P1581 = root_new ['parrot';'Hash'] - vivify_374: - set $P1582, $P1581["sym"] - unless_null $P1582, vivify_375 - new $P1582, "Undef" + .lex "$/", param_1599 +.annotate 'line', 500 + $P1600 = root_new ['parrot';'Hash'] + .lex "%mods", $P1600 +.annotate 'line', 501 + new $P1601, "Undef" + .lex "$n", $P1601 +.annotate 'line', 500 + get_global $P1602, "@MODIFIERS" + unless_null $P1602, vivify_375 + $P1602 = root_new ['parrot';'ResizablePMCArray'] vivify_375: - set $S1583, $P1582 - find_lex $P1584, "%mods" - unless_null $P1584, vivify_376 - $P1584 = root_new ['parrot';'Hash'] - store_lex "%mods", $P1584 + set $P1603, $P1602[0] + unless_null $P1603, vivify_376 + new $P1603, "Undef" vivify_376: - set $P1584[$S1583], $P1579 -.annotate 'line', 489 - find_lex $P1585, "$/" - $P1586 = $P1585."!make"(0) -.annotate 'line', 485 - .return ($P1586) - control_1560: + store_lex "%mods", $P1603 +.annotate 'line', 501 + find_lex $P1606, "$/" + unless_null $P1606, vivify_377 + $P1606 = root_new ['parrot';'Hash'] + vivify_377: + set $P1607, $P1606["n"] + unless_null $P1607, vivify_378 + $P1607 = root_new ['parrot';'ResizablePMCArray'] + vivify_378: + set $P1608, $P1607[0] + unless_null $P1608, vivify_379 + new $P1608, "Undef" + vivify_379: + set $S1609, $P1608 + isgt $I1610, $S1609, "" + if $I1610, if_1605 + new $P1615, "Integer" + assign $P1615, 1 + set $P1604, $P1615 + goto if_1605_end + if_1605: + find_lex $P1611, "$/" + unless_null $P1611, vivify_380 + $P1611 = root_new ['parrot';'Hash'] + vivify_380: + set $P1612, $P1611["n"] + unless_null $P1612, vivify_381 + $P1612 = root_new ['parrot';'ResizablePMCArray'] + vivify_381: + set $P1613, $P1612[0] + unless_null $P1613, vivify_382 + new $P1613, "Undef" + vivify_382: + set $N1614, $P1613 + new $P1604, 'Float' + set $P1604, $N1614 + if_1605_end: + store_lex "$n", $P1604 +.annotate 'line', 502 + find_lex $P1616, "$n" + find_lex $P1617, "$/" + unless_null $P1617, vivify_383 + $P1617 = root_new ['parrot';'Hash'] + vivify_383: + set $P1618, $P1617["mod_ident"] + unless_null $P1618, vivify_384 + $P1618 = root_new ['parrot';'Hash'] + vivify_384: + set $P1619, $P1618["sym"] + unless_null $P1619, vivify_385 + new $P1619, "Undef" + vivify_385: + set $S1620, $P1619 + find_lex $P1621, "%mods" + unless_null $P1621, vivify_386 + $P1621 = root_new ['parrot';'Hash'] + store_lex "%mods", $P1621 + vivify_386: + set $P1621[$S1620], $P1616 +.annotate 'line', 503 + find_lex $P1622, "$/" + $P1623 = $P1622."!make"(0) +.annotate 'line', 499 + .return ($P1623) + control_1597: .local pmc exception .get_results (exception) - getattribute $P1587, exception, "payload" - .return ($P1587) + getattribute $P1624, exception, "payload" + .return ($P1624) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "subrule_alias" :subid("89_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1594 - .param pmc param_1595 -.annotate 'line', 583 - new $P1593, 'ExceptionHandler' - set_addr $P1593, control_1592 - $P1593."handle_types"(.CONTROL_RETURN) - push_eh $P1593 +.sub "subrule_alias" :subid("91_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1631 + .param pmc param_1632 +.annotate 'line', 597 + new $P1630, 'ExceptionHandler' + set_addr $P1630, control_1629 + $P1630."handle_types"(.CONTROL_RETURN) + push_eh $P1630 .lex "self", self - .lex "$past", param_1594 - .lex "$name", param_1595 -.annotate 'line', 584 - find_lex $P1597, "$past" - $S1598 = $P1597."name"() - isgt $I1599, $S1598, "" - if $I1599, if_1596 -.annotate 'line', 585 - find_lex $P1606, "$past" - find_lex $P1607, "$name" - $P1606."name"($P1607) - goto if_1596_end - if_1596: -.annotate 'line', 584 - find_lex $P1600, "$past" - find_lex $P1601, "$name" - concat $P1602, $P1601, "=" - find_lex $P1603, "$past" - $S1604 = $P1603."name"() - concat $P1605, $P1602, $S1604 - $P1600."name"($P1605) - if_1596_end: -.annotate 'line', 586 - find_lex $P1608, "$past" - $P1609 = $P1608."subtype"("capture") -.annotate 'line', 583 - .return ($P1609) - control_1592: + .lex "$past", param_1631 + .lex "$name", param_1632 +.annotate 'line', 598 + find_lex $P1634, "$past" + $S1635 = $P1634."name"() + isgt $I1636, $S1635, "" + if $I1636, if_1633 +.annotate 'line', 599 + find_lex $P1643, "$past" + find_lex $P1644, "$name" + $P1643."name"($P1644) + goto if_1633_end + if_1633: +.annotate 'line', 598 + find_lex $P1637, "$past" + find_lex $P1638, "$name" + concat $P1639, $P1638, "=" + find_lex $P1640, "$past" + $S1641 = $P1640."name"() + concat $P1642, $P1639, $S1641 + $P1637."name"($P1642) + if_1633_end: +.annotate 'line', 600 + find_lex $P1645, "$past" + $P1646 = $P1645."subtype"("capture") +.annotate 'line', 597 + .return ($P1646) + control_1629: .local pmc exception .get_results (exception) - getattribute $P1610, exception, "payload" - .return ($P1610) + getattribute $P1647, exception, "payload" + .return ($P1647) .end .namespace ["Regex";"P6Regex";"Actions"] .include "except_types.pasm" -.sub "named_assertion" :subid("90_1282016526.02169") :method :outer("11_1282016526.02169") - .param pmc param_1614 -.annotate 'line', 589 - new $P1613, 'ExceptionHandler' - set_addr $P1613, control_1612 - $P1613."handle_types"(.CONTROL_RETURN) - push_eh $P1613 +.sub "named_assertion" :subid("92_1282323999.42098") :method :outer("11_1282323999.42098") + .param pmc param_1651 +.annotate 'line', 603 + new $P1650, 'ExceptionHandler' + set_addr $P1650, control_1649 + $P1650."handle_types"(.CONTROL_RETURN) + push_eh $P1650 .lex "self", self - .lex "$/", param_1614 -.annotate 'line', 590 - new $P1615, "Undef" - .lex "$name", $P1615 -.annotate 'line', 591 - new $P1616, "Undef" - .lex "$past", $P1616 -.annotate 'line', 590 - find_lex $P1617, "$/" - unless_null $P1617, vivify_377 - $P1617 = root_new ['parrot';'Hash'] - vivify_377: - set $P1618, $P1617["longname"] - unless_null $P1618, vivify_378 - new $P1618, "Undef" - vivify_378: - set $S1619, $P1618 - new $P1620, 'String' - set $P1620, $S1619 - store_lex "$name", $P1620 -.annotate 'line', 591 - get_hll_global $P1621, ["PAST"], "Regex" - find_lex $P1622, "$name" - find_lex $P1623, "$name" - find_lex $P1624, "$/" - $P1625 = $P1621."new"($P1622, $P1623 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1624 :named("node")) - store_lex "$past", $P1625 - find_lex $P1626, "$past" -.annotate 'line', 589 - .return ($P1626) - control_1612: + .lex "$/", param_1651 +.annotate 'line', 604 + new $P1652, "Undef" + .lex "$name", $P1652 +.annotate 'line', 605 + new $P1653, "Undef" + .lex "$past", $P1653 +.annotate 'line', 604 + find_lex $P1654, "$/" + unless_null $P1654, vivify_387 + $P1654 = root_new ['parrot';'Hash'] + vivify_387: + set $P1655, $P1654["longname"] + unless_null $P1655, vivify_388 + new $P1655, "Undef" + vivify_388: + set $S1656, $P1655 + new $P1657, 'String' + set $P1657, $S1656 + store_lex "$name", $P1657 +.annotate 'line', 605 + get_hll_global $P1658, ["PAST"], "Regex" + find_lex $P1659, "$name" + find_lex $P1660, "$name" + find_lex $P1661, "$/" + $P1662 = $P1658."new"($P1659, $P1660 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1661 :named("node")) + store_lex "$past", $P1662 + find_lex $P1663, "$past" +.annotate 'line', 603 + .return ($P1663) + control_1649: .local pmc exception .get_results (exception) - getattribute $P1627, exception, "payload" - .return ($P1627) + getattribute $P1664, exception, "payload" + .return ($P1664) .end .namespace ["Regex";"P6Regex";"Actions"] -.sub "_block1629" :load :anon :subid("91_1282016526.02169") +.sub "_block1666" :load :anon :subid("93_1282323999.42098") .annotate 'line', 4 - .const 'Sub' $P1631 = "11_1282016526.02169" - $P1632 = $P1631() - .return ($P1632) + .const 'Sub' $P1668 = "11_1282323999.42098" + $P1669 = $P1668() + .return ($P1669) .end .namespace [] -.sub "_block1635" :load :anon :subid("92_1282016526.02169") +.sub "_block1672" :load :anon :subid("94_1282323999.42098") .annotate 'line', 1 - .const 'Sub' $P1637 = "10_1282016526.02169" - $P1638 = $P1637() - .return ($P1638) + .const 'Sub' $P1674 = "10_1282323999.42098" + $P1675 = $P1674() + .return ($P1675) .end # .include 'src/cheats/p6regex-grammar.pir' diff --git a/ext/nqp-rx/src/stage0/Regex-s0.pir b/ext/nqp-rx/src/stage0/Regex-s0.pir index ff0e8087f2..e5877b84bd 100644 --- a/ext/nqp-rx/src/stage0/Regex-s0.pir +++ b/ext/nqp-rx/src/stage0/Regex-s0.pir @@ -493,22 +493,27 @@ Log a debug message. =cut .sub '!cursor_debug' :method + .param string tag .param pmc args :slurpy $P0 = getattribute self, '$!debug' if null $P0 goto done unless $P0 goto done - .local pmc from, pos, orig - .local int line + .local pmc fmt, from, pos, orig, line + fmt = new ['ResizablePMCArray'] from = getattribute self, '$!from' orig = getattribute self, '$!target' line = orig.'lineof'(from) - inc line + $P0 = getinterp $P1 = $P0.'stdhandle'(2) - print $P1, from - print $P1, '/' - print $P1, line - print $P1, ': ' + + $N0 = time + push fmt, $N0 + push fmt, from + push fmt, line + push fmt, tag + $S0 = sprintf "%.6f %d/%d %-8s ", fmt + print $P1, $S0 $S0 = join '', args print $P1, $S0 print $P1, "\n" @@ -1015,6 +1020,11 @@ Regex::Cursor-builtins - builtin regexes for Cursor objects .local int pos, eos .local string tgt (cur, pos, tgt) = self.'!cursor_start'() + .local pmc debug + debug = getattribute cur, '$!debug' + if null debug goto debug_1 + cur.'!cursor_debug'('START', 'ww') + debug_1: if pos == 0 goto fail eos = length tgt if pos == eos goto fail @@ -1025,7 +1035,13 @@ Regex::Cursor-builtins - builtin regexes for Cursor objects unless $I0 goto fail pass: cur.'!cursor_pass'(pos, 'ww') + if null debug goto done + cur.'!cursor_debug'('PASS', 'ww') + goto done fail: + if null debug goto done + cur.'!cursor_debug'('FAIL', 'ww') + done: .return (cur) .end @@ -1209,7 +1225,7 @@ Perform a match for protoregex C. have_tokrx: if null debug goto debug_skip_1 - self.'!cursor_debug'('PROTO ', name) + self.'!cursor_debug'('PROTO', name) debug_skip_1: # If there are no entries at all for this protoregex, we fail outright. @@ -1232,7 +1248,7 @@ Perform a match for protoregex C. if null debug goto debug_skip_2 $S0 = escape token $S1 = escape token1 - self.'!cursor_debug'(' token1="', $S1, '", token="', $S0, '"') + self.'!cursor_debug'('NOTE', 'token1="', $S1, '", token="', $S0, '"') debug_skip_2: # Create a hash to keep track of the methods we've already called, @@ -1281,14 +1297,14 @@ Perform a match for protoregex C. pos = result.'pos'() if null debug goto debug_skip_3 - self.'!cursor_debug'('PASS ', name, ' at pos=', pos) + self.'!cursor_debug'('PASS', name, ' at pos=', pos) debug_skip_3: .return (result) fail: if null debug goto debug_skip_4 - self.'!cursor_debug'('FAIL ', name) + self.'!cursor_debug'('FAIL', name) debug_skip_4: unless null result goto fail_1 result = self.'!cursor_start'() @@ -1353,7 +1369,7 @@ create a new one and return it. toklen = prototable[$S0] unless null tokrx goto tokrx_done - self.'!cursor_debug'('Generating protoregex table for ', name) + self.'!cursor_debug'('NOTE','Generating protoregex table for ', name) .local pmc toklen, tokrx toklen = new ['Hash'] @@ -2613,12 +2629,12 @@ Return the POST representation of the regex AST rooted by C. ops.'push_pirop'('substr', tgt, tgt, off, 'result'=>tgt) ops.'push'(startlabel) ops.'push_pirop'('eq', '$I10', 1, restartlabel) - self.'!cursorop'(ops, '!cursor_debug', 0, '"START "', regexname_esc) + self.'!cursorop'(ops, '!cursor_debug', 0, '"START"', regexname_esc) $P0 = self.'post_regex'(node) ops.'push'($P0) ops.'push'(restartlabel) - self.'!cursorop'(ops, '!cursor_debug', 0, '"NEXT "', regexname_esc) + self.'!cursorop'(ops, '!cursor_debug', 0, '"NEXT"', regexname_esc) ops.'push'(faillabel) self.'!cursorop'(ops, '!mark_fail', 4, rep, pos, '$I10', '$P10', 0) ops.'push_pirop'('lt', pos, CURSOR_FAIL, donelabel) @@ -2626,7 +2642,7 @@ Return the POST representation of the regex AST rooted by C. ops.'push_pirop'('jump', '$I10') ops.'push'(donelabel) self.'!cursorop'(ops, '!cursor_fail', 0) - self.'!cursorop'(ops, '!cursor_debug', 0, '"FAIL "', regexname_esc) + self.'!cursorop'(ops, '!cursor_debug', 0, '"FAIL"', regexname_esc) ops.'push_pirop'('return', cur) .return (ops) .end @@ -3101,6 +3117,70 @@ Handle a concatenation of regexes. .end +=item conj(PAST::Regex node) + +=cut + +.sub 'conj' :method :multi(_, ['PAST';'Regex']) + .param pmc node + + .local pmc cur, pos, fail + (cur, pos, fail) = self.'!rxregs'('cur pos fail') + + .local string name + name = self.'unique'('conj') + concat name, '_' + + .local pmc ops, iter + ops = self.'post_new'('Ops', 'node'=>node, 'result'=>cur) + iter = node.'iterator'() + unless iter goto done + + .local pmc clabel + $S0 = concat name, 'mark' + clabel = self.'post_new'('Label', 'result'=>$S0) + + .local int acount + .local pmc alabel, apast, apost + acount = 0 + $S0 = acount + $S0 = concat name, $S0 + alabel = self.'post_new'('Label', 'result'=>$S0) + + ops.'push_pirop'('inline', name, 'inline'=>' # rx %0') + ops.'push_pirop'('set_addr', '$I10', clabel) + self.'!cursorop'(ops, '!mark_push', 0, pos, CURSOR_FAIL, '$I10') + ops.'push_pirop'('goto', alabel) + ops.'push'(clabel) + ops.'push_pirop'('goto', fail) + ops.'push'(alabel) + apast = shift iter + apost = self.'post_regex'(apast, cur) + ops.'push'(apost) + ops.'push_pirop'('set_addr', '$I10', clabel) + self.'!cursorop'(ops, '!mark_peek', 1, '$I11', '$I10') + self.'!cursorop'(ops, '!mark_push', 0, '$I11', pos, '$I10') + + iter_loop: + inc acount + $S0 = acount + $S0 = concat name, $S0 + alabel = self.'post_new'('Label', 'result'=>$S0) + ops.'push'(alabel) + ops.'push_pirop'('set', pos, '$I11') + apast = shift iter + apost = self.'post_regex'(apast, cur) + ops.'push'(apost) + ops.'push_pirop'('set_addr', '$I10', clabel) + self.'!cursorop'(ops, '!mark_peek', 2, '$I11', '$I12', '$I10') + ops.'push_pirop'('ne', pos, '$I12', fail) + if iter goto iter_loop + iter_done: + done: + .return (ops) +.end + + =item cut(PAST::Regex node) Generate POST for the cut-group and cut-rule operators. @@ -3157,6 +3237,69 @@ character list. .return (ops) .end +.sub 'enumcharlist_q' :method :multi(_, ['PAST';'Regex']) + .param pmc node + .param string backtrack + .param int min + .param int max + .param pmc sep + + if backtrack != 'r' goto pessimistic + if sep goto pessimistic + + .local pmc cur, tgt, pos, off, eos, fail, rep, ops + (cur, tgt, pos, off, eos, fail, rep) = self.'!rxregs'('cur tgt pos off eos fail rep') + ops = self.'post_new'('Ops', 'node'=>node, 'result'=>cur) + + .local string charlist + charlist = node[0] + charlist = self.'escape'(charlist) + .local pmc negate, testop + negate = node.'negate'() + testop = self.'??!!'(negate, 'ge', 'lt') + .local string subtype + subtype = node.'subtype'() + if subtype == 'zerowidth' goto pessimistic + + .local pmc looplabel, donelabel + .local string name + name = self.'unique'('rxenumcharlistq') + $S1 = concat name, '_loop' + looplabel = self.'post_new'('Label', 'result'=>$S1) + $S1 = concat name, '_done' + donelabel = self.'post_new'('Label', 'result'=>$S1) + + ops.'push_pirop'('inline', negate, subtype, backtrack, min, max, 'inline'=>' # rx enumcharlist_q negate=%0 %1 %2 %3..%4') + ops.'push_pirop'('sub', '$I10', pos, off) + ops.'push_pirop'('set', rep, 0) + ops.'push_pirop'('sub', '$I12', eos, pos) + unless max > 0 goto max1_done + ops.'push_pirop'('le', '$I12', max, looplabel) + ops.'push_pirop'('set', '$I12', max) + max1_done: + ops.'push'(looplabel) + ops.'push_pirop'('le', '$I12', 0, donelabel) + ops.'push_pirop'('substr', '$S10', tgt, '$I10', 1) + ops.'push_pirop'('index', '$I11', charlist, '$S10') + ops.'push_pirop'(testop, '$I11', 0, donelabel) + ops.'push_pirop'('inc', rep) + if max == 1 goto max2_done + ops.'push_pirop'('inc', '$I10') + ops.'push_pirop'('dec', '$I12') + ops.'push_pirop'('goto', looplabel) + max2_done: + ops.'push'(donelabel) + unless min > 0 goto min2_done + ops.'push_pirop'('lt', rep, min, fail) + min2_done: + ops.'push_pirop'('add', pos, pos, rep) + .return (ops) + + pessimistic: + null ops + .return (ops) +.end + =item literal(PAST::Regex node) @@ -3294,7 +3437,7 @@ second child of this node. ops.'push_pirop'('inline', 'inline'=>' # rx pass') self.'!cursorop'(ops, '!cursor_pass', 0, pos, regexname) - self.'!cursorop'(ops, '!cursor_debug', 0, '"PASS "', regexname, '" at pos="', pos) + self.'!cursorop'(ops, '!cursor_debug', 0, '"PASS"', regexname, '" at pos="', pos) .local string backtrack backtrack = node.'backtrack'() From ca9a28f8bc664149ffa7862b583ba6f036124b69 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sat, 21 Aug 2010 20:45:11 +0000 Subject: [PATCH 053/165] Simplify documentation per http://trac.parrot.org/parrot/ticket/1725. git-svn-id: https://svn.parrot.org/parrot/trunk@48588 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/build/headerizer.pl | 97 +++++++++++++-------------------------- 1 file changed, 32 insertions(+), 65 deletions(-) diff --git a/tools/build/headerizer.pl b/tools/build/headerizer.pl index 9bf47fc92e..49f398134d 100644 --- a/tools/build/headerizer.pl +++ b/tools/build/headerizer.pl @@ -9,46 +9,51 @@ =head1 NAME =head1 SYNOPSIS - % perl tools/build/headerizer.pl OBJFILES + $ perl tools/build/headerizer.pl [object files] -=head1 DESCRIPTION +Generates C function declarations based on the function definitions in +the C source code. -Update the headers in F with the function declarations in -the F<*.pmc> or F<*.c> files that correspond to the F<*.o> files passed -on the command line. +=head1 DESCRIPTION -=head1 TODO +The headerizer works off of directives in the source and header files. -* Generate docs from funcs +One source file's public declarations can only go into one header file. +However, one header file can have declarations from multiple source files. +In other words, headers-to-source is one-to-many. -* Somehow handle static functions in the source file +=over 4 -=head1 NOTES +=item C F / C F -* the .c files MUST have a /* HEADERIZER HFILE: foo/bar.h */ directive in them +Marks the beginning and end of a block of declarations in a header file. -* Support for multiple .c files pointing at the same .h file + # In file foo.h + /* HEADERIZER BEGIN: src/foo.c */ + /* HEADERIZER END: src/foo.c */ -* Does NOT remove all blocks in the .h file, so if a .c file -disappears, its block is "orphaned" and will remain there. + /* HEADERIZER BEGIN: src/bar.c */ + /* HEADERIZER END: src/bar.c */ -=head1 COMMAND-LINE OPTIONS +=item C F -=over 4 +Tells the headerizer where the declarations for the functions should go -=item C<--macro=X> + # In file foo.c + /* HEADERIZER HFILE: foo.h */ -Print a list of all functions that have macro X. For example, --macro=PARROT_EXPORT. + # In file bar.c + /* HEADERIZER HFILE: foo.h */ =back -=head1 COMMAND-LINE ARGUMENTS +=head1 COMMAND-LINE OPTIONS =over 4 -=item C +=item C<--macro=X> -One or more object file names. +Print a list of all functions that have macro X. For example, --macro=PARROT_EXPORT. =back @@ -443,51 +448,13 @@ sub main { return; } -=head1 NAME - -headerizer.pl - -=head1 SYNOPSIS - - $ tools/build/headerizer.pl [object files] - -Generates C function declarations based on the function definitions in -the C source code. - -=head1 DIRECTIVES - -The headerizer works off of directives in the source and header files. - -One source file's public declarations can only go into one header file. -However, one header file can have declarations from multiple source files. -In other words, headers-to-source is one-to-many. - -=over 4 - -=item HEADERIZER BEGIN: F / HEADERIZER END: F - -Marks the beginning and end of a block of declarations in a header file. - - # In file foo.h - /* HEADERIZER BEGIN: src/foo.c */ - /* HEADERIZER END: src/foo.c */ - - /* HEADERIZER BEGIN: src/bar.c */ - /* HEADERIZER END: src/bar.c */ - -=item HEADERIZER HFILE: F - -Tells the headerizer where the declarations for the functions should go - - # In file foo.c - /* HEADERIZER HFILE: foo.h */ - - # In file bar.c - /* HEADERIZER HFILE: foo.h */ - -=back - -=cut +# From earlier documentation: +# * Generate docs from funcs +# * Somehow handle static functions in the source file +# * the .c files MUST have a /* HEADERIZER HFILE: foo/bar.h */ directive in them +# * Support for multiple .c files pointing at the same .h file +# * Does NOT remove all blocks in the .h file, so if a .c file +# disappears, its block is "orphaned" and will remain there. # Local Variables: # mode: cperl From 0b8518aebf249af586deb6fa182ef2bed9343184 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sat, 21 Aug 2010 21:10:29 +0000 Subject: [PATCH 054/165] Add references to documentation. git-svn-id: https://svn.parrot.org/parrot/trunk@48591 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/as2c.pl | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/tools/dev/as2c.pl b/tools/dev/as2c.pl index 63dc87df5a..55bba31bf3 100755 --- a/tools/dev/as2c.pl +++ b/tools/dev/as2c.pl @@ -6,16 +6,16 @@ =head1 NAME -as2c.pl - convert gas assembler listing to i386 code array +as2c.pl - convert GNU Assembler listing to i386 code array =head1 DESCRIPTION -The plan behind of as2c.pl is to create compiler independent -machine code for an architecture. Code in e.g. masm, gas, nasm syntax -doesn't fit all compilers. Therefore as2c.pl translates gas syntax to a +The plan behind of F is to create compiler independent +machine code for an architecture. Code in, I MASM, GAS, NASM syntax +doesn't fit all compilers. Therefore F translates GAS syntax to a bytestring, which is then used as the asm code. -as2c.pl is used very rarely. Once the code is generated and +F is used very rarely. Once the code is generated and checked in, there's usually no need to change it later. =cut @@ -125,6 +125,14 @@ sub add_glue { close $IN; } +=head1 REFERENCES + +GNU Assembler: (GAS) L + +Microsoft Macro Assembler (MASM): L + +Netwide Assembler (NASM) L + # Local Variables: # mode: cperl # cperl-indent-level: 4 From e90008e73c7ee4f1a139dca85fec7ffdf311ef93 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sat, 21 Aug 2010 21:13:22 +0000 Subject: [PATCH 055/165] Program should not be executable in repository. Delete svn:executable. git-svn-id: https://svn.parrot.org/parrot/trunk@48592 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/as2c.pl | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 tools/dev/as2c.pl diff --git a/tools/dev/as2c.pl b/tools/dev/as2c.pl old mode 100755 new mode 100644 From 10285d235bea994ae22d744f5fd7fd949e18f86d Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sat, 21 Aug 2010 21:22:59 +0000 Subject: [PATCH 056/165] Place documentation in a more formal POD format. git-svn-id: https://svn.parrot.org/parrot/trunk@48593 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/faces.pl | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tools/dev/faces.pl b/tools/dev/faces.pl index 4c113486fd..1c54dbc7d0 100644 --- a/tools/dev/faces.pl +++ b/tools/dev/faces.pl @@ -7,9 +7,21 @@ use Gravatar::URL; -=for usage +=head1 NAME -use to generate source for http://trac.parrot.org/parrot/wiki/ParrotFaces +faces.pl - Generate source for Parrot wiki ParrotFaces page + +=head1 SYNOPSIS + + perl tools/dev/faces.pl + +=head1 DESCRIPTION + +Used to create L + +=head1 PREREQUISITE + +Gravatar::URL (L). =cut From da151a43c05cf548dbcad1619e3a3f65d11d6ed8 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sat, 21 Aug 2010 21:32:42 +0000 Subject: [PATCH 057/165] Correct typo and improve description in 'NAME' in POD. git-svn-id: https://svn.parrot.org/parrot/trunk@48594 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/fetch_languages.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/dev/fetch_languages.pl b/tools/dev/fetch_languages.pl index 2eb1d5620f..52e1325e28 100644 --- a/tools/dev/fetch_languages.pl +++ b/tools/dev/fetch_languages.pl @@ -3,7 +3,8 @@ =head1 NAME -fetch_languages.pl - A helper to fetch language implementations from the SCM repoistories +fetch_languages.pl - Fetch language implementations from their source code +management repositories =head1 SYNOPSIS From bc293c3589e23356838cfeac7f66d91b35551b59 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sun, 22 Aug 2010 14:38:55 +0000 Subject: [PATCH 058/165] Clean up some internal subroutines used to generate the list of currently active PMCs. git-svn-id: https://svn.parrot.org/parrot/trunk@48595 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/auto/pmc.pm | 26 ++++++++++++++------------ t/steps/auto/pmc-01.t | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/config/auto/pmc.pm b/config/auto/pmc.pm index 59d2df8134..831e4f7f40 100644 --- a/config/auto/pmc.pm +++ b/config/auto/pmc.pm @@ -36,9 +36,12 @@ sub _init { sub runstep { my ( $self, $conf ) = @_; - my @pmc = sort_pmcs( @{ $self->{srcpmc} } ); - - my $pmc_list = join( ' ', grep { defined $_ } @pmc ); + # $pmc_list is a string holding a space-delimited, asciibetically-sorted + # list of currently active PMCs. + # (By 'current', we take into account the fact that there are PMCs listed + # in src/pmc/pmc.num that no longer exist but whose index numbers are + # never deleted.) + my $pmc_list = get_sorted_pmc_str( @{ $self->{srcpmc} } ); # names of class files for src/pmc/Makefile ( my $TEMP_pmc_o = $pmc_list ) =~ s/\.pmc/\$(O)/g; @@ -216,23 +219,20 @@ sub pmc_parents { return @parents; } +# Internal sub get_pmc_order parses src/pmc/pmc.num. The hash it builds +# includes both active and deactivated PMCs. sub get_pmc_order { open my $IN, '<', 'src/pmc/pmc.num' or die "Can't read src/pmc/pmc.num"; my %order; while (<$IN>) { - next if /^#/; - - if (/(\w+\.\w+)\s+(\d+)/) { - $order{$1} = $2; - } + next unless (/^(\w+\.\w+)\s+(\d+)$/); + $order{$1} = $2; } - close $IN; - return \%order; } -sub sort_pmcs { +sub get_sorted_pmc_str { my @pmcs = @_; my $pmc_order = get_pmc_order(); my $n = keys %$pmc_order; @@ -247,7 +247,9 @@ sub sort_pmcs { } } - return @sorted_pmcs; + # With the test for definedness below, we account for PMCs which have been + # deactivated but whose index numbers remain in src/pmc/pmc.num. + return join(' ' => grep { defined $_ } @sorted_pmcs); } sub contains_pccmethod { diff --git a/t/steps/auto/pmc-01.t b/t/steps/auto/pmc-01.t index c5061101a1..298788885b 100644 --- a/t/steps/auto/pmc-01.t +++ b/t/steps/auto/pmc-01.t @@ -114,7 +114,7 @@ my $cwd = cwd(); ); my @pmcs = qw| env.pmc default.pmc null.pmc other.pmc |; - my @sorted_pmcs = auto::pmc::sort_pmcs(@pmcs); + my @sorted_pmcs = split / /, auto::pmc::get_sorted_pmc_str(@pmcs); is_deeply( \@sorted_pmcs, [ qw| default.pmc null.pmc env.pmc other.pmc | ], From 4ecdfc3216ac2d35c512211ca1ea7a79ca180941 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sun, 22 Aug 2010 14:58:51 +0000 Subject: [PATCH 059/165] Correct inline comment; sort is not asciibetical. git-svn-id: https://svn.parrot.org/parrot/trunk@48596 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/auto/pmc.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/auto/pmc.pm b/config/auto/pmc.pm index 831e4f7f40..6772aa9672 100644 --- a/config/auto/pmc.pm +++ b/config/auto/pmc.pm @@ -36,8 +36,8 @@ sub _init { sub runstep { my ( $self, $conf ) = @_; - # $pmc_list is a string holding a space-delimited, asciibetically-sorted - # list of currently active PMCs. + # $pmc_list is a string holding a space-delimited list of currently active + # PMCs, sorted (largely) on the basis of src/pmc/pmc.num. # (By 'current', we take into account the fact that there are PMCs listed # in src/pmc/pmc.num that no longer exist but whose index numbers are # never deleted.) From 14d62520245bbf1f0b8aef6665ee361ba8e4c7c9 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Sun, 22 Aug 2010 22:03:03 +0000 Subject: [PATCH 060/165] initial implementation of Exception clone, TT #1446 git-svn-id: https://svn.parrot.org/parrot/trunk@48597 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/exception.pmc | 40 ++++++++++++++++++++++++++++++++++++++++ t/pmc/exception.t | 4 ++-- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/pmc/exception.pmc b/src/pmc/exception.pmc index 6a1bcf973b..52a60f16ea 100644 --- a/src/pmc/exception.pmc +++ b/src/pmc/exception.pmc @@ -166,6 +166,46 @@ Initializes the exception with supplied values. /* +=item C + +Create a copy of the Exception. + +Copy only the user supplied values, not the throwing and handling +information. + +=cut + +*/ + + VTABLE PMC *clone() { + PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type); + INTVAL id; + STRING *message; + PMC *payload; + INTVAL severity; + INTVAL type; + INTVAL exit_code; + GET_ATTR_id(INTERP, SELF, id); + SET_ATTR_id(INTERP, dest, id); + GET_ATTR_message(INTERP, SELF, message); + SET_ATTR_message(INTERP, dest, message); + GET_ATTR_severity(INTERP, SELF, severity); + SET_ATTR_severity(INTERP, dest, severity); + GET_ATTR_type(INTERP, SELF, type); + SET_ATTR_type(INTERP, dest, type); + GET_ATTR_exit_code(INTERP, SELF, exit_code); + SET_ATTR_exit_code(INTERP, dest, exit_code); + + GET_ATTR_payload(INTERP, SELF, payload); + if (!PMC_IS_NULL(payload)) { + payload = VTABLE_clone(INTERP, payload); + SET_ATTR_payload(INTERP, dest, payload); + } + return dest; + } + +/* + =item C Mark any active exception data as live. diff --git a/t/pmc/exception.t b/t/pmc/exception.t index 2f8ea03d5c..5377d904be 100644 --- a/t/pmc/exception.t +++ b/t/pmc/exception.t @@ -194,8 +194,8 @@ _handler: catch: result = 1 catchall: - # TT #1446 - todo(result, 1, 'caught a cloned Exception') + # TT #1446 - need more tests + is(result, 1, 'caught a cloned Exception') .end # Local Variables: From 4bf19c257a785cabf433ec8b5bb3097f60e6282f Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sun, 22 Aug 2010 23:49:08 +0000 Subject: [PATCH 061/165] [configure] Provide for warnings where .pmc files are present in src/pmc/ but are not listed in MANIFEST. Add tests for this functionality. Cf. http://trac.parrot.org/parrot/ticket/865. git-svn-id: https://svn.parrot.org/parrot/trunk@48598 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/auto/pmc.pm | 36 ++++++++++++++++++- t/steps/auto/pmc-01.t | 84 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 109 insertions(+), 11 deletions(-) diff --git a/config/auto/pmc.pm b/config/auto/pmc.pm index 6772aa9672..8e89a21817 100644 --- a/config/auto/pmc.pm +++ b/config/auto/pmc.pm @@ -249,7 +249,41 @@ sub get_sorted_pmc_str { # With the test for definedness below, we account for PMCs which have been # deactivated but whose index numbers remain in src/pmc/pmc.num. - return join(' ' => grep { defined $_ } @sorted_pmcs); +# return join(' ' => grep { defined $_ } @sorted_pmcs); + my $active_pmcs = [ grep { defined $_ } @sorted_pmcs ]; + + # At this point we check to see whether any active_pmcs are missing from + # the MANIFEST. We warn about any such missing PMCs but (for the time + # being at least) we proceed to compose $pmc_str. + my $seen_manifest = pmcs_in_manifest(); + check_pmcs_against_manifest( $active_pmcs, $seen_manifest ); + return join(' ' => @{ $active_pmcs }); +} + +sub pmcs_in_manifest { + my $manifest = shift || 'MANIFEST'; + my %seen_manifest = (); + open my $MAN, '<', $manifest + or die "Unable to open MANIFEST: $!"; + while (my $f = <$MAN>) { + chomp $f; + if ($f =~ m{^src/pmc/(.*\.pmc)}) { + my $pmc = $1; + $seen_manifest{$pmc}++; + } + } + close $MAN or die "Unable to close MANIFEST: $!"; + return \%seen_manifest; +} + +# check_pmcs_against_manifest( $active_pmcs, $seen_manifest ); +sub check_pmcs_against_manifest { + my ($active_pmcs, $seen_manifest) = @_; + my @missing_from_manifest = grep { ! exists $seen_manifest->{$_} } + @{ $active_pmcs }; + if (@missing_from_manifest) { + warn "PMCs found in /src/pmc not found in MANIFEST: @missing_from_manifest"; + } } sub contains_pccmethod { diff --git a/t/steps/auto/pmc-01.t b/t/steps/auto/pmc-01.t index 298788885b..6c7ab4bb6c 100644 --- a/t/steps/auto/pmc-01.t +++ b/t/steps/auto/pmc-01.t @@ -5,7 +5,7 @@ use strict; use warnings; -use Test::More tests => 23; +use Test::More tests => 30; use Carp; use Cwd; use File::Path qw| mkpath |; @@ -17,6 +17,7 @@ use Parrot::Configure::Step::Test; use Parrot::Configure::Test qw( test_step_constructor_and_description ); +use IO::CaptureOutput qw( capture ); ########## regular ########## @@ -94,14 +95,14 @@ my $cwd = cwd(); my $pmcdir = qq{$tdir/src/pmc}; ok(mkpath($pmcdir, { mode => 0755 }), "Able to make directory for testing"); my $num = qq{$pmcdir/pmc.num}; - open my $IN3, ">", $num or croak "Unable to open file for writing: $!"; - print $IN3 "# comment line\n"; - print $IN3 "\n"; - print $IN3 "default.pmc\t0\n"; - print $IN3 "null.pmc 1\n"; - print $IN3 "env.pmc 2\n"; - print $IN3 "notapmc 3\n"; - close $IN3 or croak "Unable to close file after writing: $!"; + open my $OUT3, ">", $num or croak "Unable to open file for writing: $!"; + print $OUT3 "# comment line\n"; + print $OUT3 "\n"; + print $OUT3 "default.pmc\t0\n"; + print $OUT3 "null.pmc 1\n"; + print $OUT3 "env.pmc 2\n"; + print $OUT3 "notapmc 3\n"; + close $OUT3 or croak "Unable to close file after writing: $!"; my $order_ref = auto::pmc::get_pmc_order(); is_deeply( $order_ref, @@ -114,7 +115,12 @@ my $cwd = cwd(); ); my @pmcs = qw| env.pmc default.pmc null.pmc other.pmc |; - my @sorted_pmcs = split / /, auto::pmc::get_sorted_pmc_str(@pmcs); + my $pseudoman = 'MANIFEST'; + open my $MAN, '>', $pseudoman or croak "Unable to open $pseudoman"; + print $MAN "src/pmc/$_\n" for @pmcs; + close $MAN or croak; + my @sorted_pmcs = + split / /, auto::pmc::get_sorted_pmc_str(@pmcs); is_deeply( \@sorted_pmcs, [ qw| default.pmc null.pmc env.pmc other.pmc | ], @@ -124,6 +130,61 @@ my $cwd = cwd(); ok( chdir $cwd, 'changed back to original directory after testing' ); } +{ + my $tdir = tempdir( CLEANUP => 1 ); + ok( chdir $tdir, 'changed to temp directory for testing' ); + + my $pmcdir = qq{$tdir/src/pmc}; + ok(mkpath($pmcdir, { mode => 0755 }), "Able to make directory for testing"); + my $num = qq{$pmcdir/pmc.num}; + open my $OUT4, ">", $num or croak "Unable to open file for writing: $!"; + print $OUT4 "# comment line\n"; + print $OUT4 "\n"; + print $OUT4 "default.pmc\t0\n"; + print $OUT4 "null.pmc 1\n"; + print $OUT4 "env.pmc 2\n"; + print $OUT4 "notapmc 3\n"; + close $OUT4 or croak "Unable to close file after writing: $!"; + my $order_ref = auto::pmc::get_pmc_order(); + is_deeply( + $order_ref, + { + 'default.pmc' => 0, + 'null.pmc' => 1, + 'env.pmc' => 2, + }, + "Able to read src/pmc/pmc.num correctly" + ); + + my @pmcs = qw| env.pmc default.pmc null.pmc other.pmc |; + my $pseudoman = 'MANIFEST'; + open my $MAN, '>', $pseudoman or croak "Unable to open $pseudoman"; + print $MAN "src/pmc/$_\n" for @pmcs[0..2]; + close $MAN or croak; + { + my ($stdout, $stderr); + my @sorted_pmcs; + capture( sub { + @sorted_pmcs = split / /, + auto::pmc::get_sorted_pmc_str(@pmcs); + }, + \$stdout, + \$stderr, + ); + like( $stderr, + qr/PMCs found in \/src\/pmc not found in MANIFEST: $pmcs[3]/, + "Got expected warning", + ); + is_deeply( + \@sorted_pmcs, + [ qw| default.pmc null.pmc env.pmc other.pmc | ], + "PMCs sorted correctly" + ); + } + + ok( chdir $cwd, 'changed back to original directory after testing' ); +} + { my $tdir = tempdir( CLEANUP => 1 ); ok( chdir $tdir, 'changed to temp directory for testing' ); @@ -138,6 +199,9 @@ my $cwd = cwd(); ok( chdir $cwd, 'changed back to original directory after testing' ); } +my $seen_man = auto::pmc::pmcs_in_manifest(); +ok( keys %{$seen_man}, 'src/pmc/*.pmc files were seen in MANIFEST' ); + pass("Completed all tests in $0"); ################### DOCUMENTATION ################### From d915bb674540e21f5062dc69d7bc86152e87051d Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 00:14:40 +0000 Subject: [PATCH 062/165] Delete commented-out code. git-svn-id: https://svn.parrot.org/parrot/trunk@48599 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/auto/pmc.pm | 2 -- 1 file changed, 2 deletions(-) diff --git a/config/auto/pmc.pm b/config/auto/pmc.pm index 8e89a21817..baaa667c92 100644 --- a/config/auto/pmc.pm +++ b/config/auto/pmc.pm @@ -249,7 +249,6 @@ sub get_sorted_pmc_str { # With the test for definedness below, we account for PMCs which have been # deactivated but whose index numbers remain in src/pmc/pmc.num. -# return join(' ' => grep { defined $_ } @sorted_pmcs); my $active_pmcs = [ grep { defined $_ } @sorted_pmcs ]; # At this point we check to see whether any active_pmcs are missing from @@ -276,7 +275,6 @@ sub pmcs_in_manifest { return \%seen_manifest; } -# check_pmcs_against_manifest( $active_pmcs, $seen_manifest ); sub check_pmcs_against_manifest { my ($active_pmcs, $seen_manifest) = @_; my @missing_from_manifest = grep { ! exists $seen_manifest->{$_} } From 52cad9684ff2664c358e314de6d79d247b907308 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 00:15:13 +0000 Subject: [PATCH 063/165] Test previously uncovered condition. git-svn-id: https://svn.parrot.org/parrot/trunk@48600 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/steps/auto/pmc-01.t | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/t/steps/auto/pmc-01.t b/t/steps/auto/pmc-01.t index 6c7ab4bb6c..0ca0f20188 100644 --- a/t/steps/auto/pmc-01.t +++ b/t/steps/auto/pmc-01.t @@ -5,7 +5,7 @@ use strict; use warnings; -use Test::More tests => 30; +use Test::More tests => 33; use Carp; use Cwd; use File::Path qw| mkpath |; @@ -202,6 +202,25 @@ my $cwd = cwd(); my $seen_man = auto::pmc::pmcs_in_manifest(); ok( keys %{$seen_man}, 'src/pmc/*.pmc files were seen in MANIFEST' ); +{ + my $tdir = tempdir( CLEANUP => 1 ); + ok( chdir $tdir, 'changed to temp directory for testing' ); + + my @pmcs = qw| env.pmc default.pmc null.pmc other.pmc |; + my $pseudoman = 'foobar'; + open my $MAN, '>', $pseudoman or croak "Unable to open $pseudoman"; + print $MAN "src/pmc/$_\n" for @pmcs; + close $MAN or croak; + + my $seen_manifest = auto::pmc::pmcs_in_manifest($pseudoman); + is_deeply( + $seen_manifest, + { map { $_ => 1} @pmcs }, + "Got expected files in differently named MANIFEST", + ); + ok( chdir $cwd, 'changed back to original directory after testing' ); +} + pass("Completed all tests in $0"); ################### DOCUMENTATION ################### From 881ae0316d1fff8a11e46328d7e6bfb0077fc982 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 00:26:58 +0000 Subject: [PATCH 064/165] [codingstd] Correct excessive linelength. git-svn-id: https://svn.parrot.org/parrot/trunk@48601 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- examples/languages/squaak/doc/tutorial_episode_1.pod | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/languages/squaak/doc/tutorial_episode_1.pod b/examples/languages/squaak/doc/tutorial_episode_1.pod index a6d749aac3..3d4e0ffd68 100644 --- a/examples/languages/squaak/doc/tutorial_episode_1.pod +++ b/examples/languages/squaak/doc/tutorial_episode_1.pod @@ -219,8 +219,9 @@ appreciated. The exercises are provided at the end of each episode of this tutorial. In order to keep the length of this tutorial somewhat acceptable, not everything -can be discussed in full detail. With episode 3 the answers and/or solutions to these exercises are at the end of each episode. The answer of the exercise from -episode 1 is at the end of episode 2. +can be discussed in full detail. With episode 3 the answers and/or solutions +to these exercises are at the end of each episode. The answer of the exercise +from episode 1 is at the end of episode 2. =head3 Advanced interactive mode. From 9a5c3cda88829bf8e4fe7c6c5bc81d79eca9600a Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 00:32:02 +0000 Subject: [PATCH 065/165] [codingstd] Eliminate trailing whitespace. git-svn-id: https://svn.parrot.org/parrot/trunk@48602 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/auto/pmc.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/auto/pmc.pm b/config/auto/pmc.pm index baaa667c92..d468a5bc81 100644 --- a/config/auto/pmc.pm +++ b/config/auto/pmc.pm @@ -250,7 +250,7 @@ sub get_sorted_pmc_str { # With the test for definedness below, we account for PMCs which have been # deactivated but whose index numbers remain in src/pmc/pmc.num. my $active_pmcs = [ grep { defined $_ } @sorted_pmcs ]; - + # At this point we check to see whether any active_pmcs are missing from # the MANIFEST. We warn about any such missing PMCs but (for the time # being at least) we proceed to compose $pmc_str. From fc965fb05d07e1b7e876e03622d2c0c9176cf716 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 00:35:23 +0000 Subject: [PATCH 066/165] Set file metadata properties. git-svn-id: https://svn.parrot.org/parrot/trunk@48603 d31e2699-5ff4-0310-a27c-f18f2fbe73fe From 5524fc8b8349d489418ab304e83a793587249ade Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 00:44:40 +0000 Subject: [PATCH 067/165] [codingstd] Enforce c_parens rule. git-svn-id: https://svn.parrot.org/parrot/trunk@48604 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/hash.c | 18 ++++++------------ src/packfile.c | 3 +-- src/pmc/callcontext.pmc | 12 ++++-------- src/pmc/lexinfo.pmc | 3 +-- 4 files changed, 12 insertions(+), 24 deletions(-) diff --git a/src/hash.c b/src/hash.c index a59b739c8b..64a6148e98 100644 --- a/src/hash.c +++ b/src/hash.c @@ -514,8 +514,7 @@ parrot_mark_hash_keys(PARROT_INTERP, ARGIN(Hash *hash)) ASSERT_ARGS(parrot_mark_hash_keys) parrot_hash_iterate(hash, PARROT_ASSERT(_bucket->key); - Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->key); - ); + Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->key);); } @@ -535,8 +534,7 @@ parrot_mark_hash_values(PARROT_INTERP, ARGIN(Hash *hash)) ASSERT_ARGS(parrot_mark_hash_values) parrot_hash_iterate(hash, PARROT_ASSERT(_bucket->value); - Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->value); - ); + Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->value);); } @@ -558,8 +556,7 @@ parrot_mark_hash_both(PARROT_INTERP, ARGIN(Hash *hash)) PARROT_ASSERT(_bucket->key); Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->key); PARROT_ASSERT(_bucket->value); - Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->value); - ); + Parrot_gc_mark_PObj_alive(interp, (PObj *)_bucket->value);); } /* @@ -709,8 +706,7 @@ hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info)) Parrot_ex_throw_from_c_args(interp, NULL, 1, "unimplemented value type"); break; - } - ); + }); } @@ -1085,8 +1081,7 @@ parrot_chash_destroy(PARROT_INTERP, ARGMOD(Hash *hash)) ASSERT_ARGS(parrot_chash_destroy) parrot_hash_iterate(hash, mem_gc_free(interp, _bucket->key); - mem_gc_free(interp, _bucket->value); - ); + mem_gc_free(interp, _bucket->value);); parrot_hash_destroy(interp, hash); } @@ -1459,8 +1454,7 @@ parrot_hash_clone_prunable(PARROT_INTERP, ARGIN(const Hash *hash), "hash corruption: type = %d\n", hash->entry_type); }; if (key) - parrot_hash_put(interp, dest, key, valtmp); - ); + parrot_hash_put(interp, dest, key, valtmp);); } /* diff --git a/src/packfile.c b/src/packfile.c index 4e5dc7cc82..20e6dc9a4e 100644 --- a/src/packfile.c +++ b/src/packfile.c @@ -3475,8 +3475,7 @@ Parrot_destroy_constants(PARROT_INTERP) PackFile_ConstTable * const table = (PackFile_ConstTable *)_bucket->key; PackFile_Constant * const orig_consts = table->constants; PackFile_Constant * const consts = (PackFile_Constant *) _bucket->value; - mem_gc_free(interp, consts); - ); + mem_gc_free(interp, consts);); parrot_hash_destroy(interp, hash); } diff --git a/src/pmc/callcontext.pmc b/src/pmc/callcontext.pmc index be2e4bca08..24e6f5c4e5 100644 --- a/src/pmc/callcontext.pmc +++ b/src/pmc/callcontext.pmc @@ -470,8 +470,7 @@ mark_hash(PARROT_INTERP, ARGIN(Hash *h)) ASSERT_ARGS(mark_hash) parrot_hash_iterate(h, Parrot_gc_mark_STRING_alive(interp, (STRING *)_bucket->key); - mark_cell(interp, (Pcc_cell *)_bucket->value); - ); + mark_cell(interp, (Pcc_cell *)_bucket->value);); } /* @@ -496,8 +495,7 @@ get_named_names(PARROT_INTERP, ARGIN(PMC *SELF)) UINTVAL j = 0; PMC *result = Parrot_pmc_new_init_int(interp, enum_class_FixedStringArray, hash->entries); parrot_hash_iterate(hash, - VTABLE_set_string_keyed_int(interp, result, j++, (STRING *)_bucket->key); - ); + VTABLE_set_string_keyed_int(interp, result, j++, (STRING *)_bucket->key);); return result; } @@ -688,8 +686,7 @@ stored.) if (hash) { parrot_hash_iterate(hash, - FREE_CELL(INTERP, (Pcc_cell *)_bucket->value); - ); + FREE_CELL(INTERP, (Pcc_cell *)_bucket->value);); parrot_hash_destroy(INTERP, hash); SET_ATTR_hash(INTERP, SELF, NULL); } @@ -718,8 +715,7 @@ stored.) if (hash) { parrot_hash_iterate(hash, - FREE_CELL(INTERP, (Pcc_cell *)_bucket->value); - ); + FREE_CELL(INTERP, (Pcc_cell *)_bucket->value);); parrot_hash_destroy(INTERP, hash); } diff --git a/src/pmc/lexinfo.pmc b/src/pmc/lexinfo.pmc index 1caf6ec359..8f131c943b 100644 --- a/src/pmc/lexinfo.pmc +++ b/src/pmc/lexinfo.pmc @@ -102,8 +102,7 @@ C, which gets an array of the names of the symbols in this lexpad. parrot_hash_iterate(hash, PARROT_ASSERT(_bucket->key); - VTABLE_push_string(INTERP, result, (STRING *)_bucket->key); - ); + VTABLE_push_string(INTERP, result, (STRING *)_bucket->key);); return result; } From bc30de62ded5df5ee96c16373e06df83b9afef85 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 00:52:05 +0000 Subject: [PATCH 068/165] Correct POD formatting error detected by t/codingstd/perlcritic.t. git-svn-id: https://svn.parrot.org/parrot/trunk@48605 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/as2c.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/dev/as2c.pl b/tools/dev/as2c.pl index 55bba31bf3..b5241eb64e 100644 --- a/tools/dev/as2c.pl +++ b/tools/dev/as2c.pl @@ -133,6 +133,8 @@ =head1 REFERENCES Netwide Assembler (NASM) L +=cut + # Local Variables: # mode: cperl # cperl-indent-level: 4 From 627a372720c911c8e01f97dbd9c484548dcab78e Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 01:21:13 +0000 Subject: [PATCH 069/165] Correct spelling error in inline comment. git-svn-id: https://svn.parrot.org/parrot/trunk@48606 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/hash.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/parrot/hash.h b/include/parrot/hash.h index 624d045a3b..d5c066bd69 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -78,7 +78,7 @@ struct _hash { hash_hash_key_fn hash_val; }; -/* Utility macros - use them, do not reinvent the weel */ +/* Utility macros - use them, do not reinvent the wheel */ #define parrot_hash_iterate parrot_hash_iterate_linear #define parrot_hash_iterate_linear(_hash, _code) \ From f22674d2cdc3e1d70ce1af43218bf8f1e868c8f6 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 01:25:03 +0000 Subject: [PATCH 070/165] [codingstd] Make test output more useful by indicating line in file at which standard was violated. git-svn-id: https://svn.parrot.org/parrot/trunk@48607 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/codingstd/c_operator.t | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/t/codingstd/c_operator.t b/t/codingstd/c_operator.t index 5a81f1ada8..935c2d4b46 100644 --- a/t/codingstd/c_operator.t +++ b/t/codingstd/c_operator.t @@ -84,16 +84,27 @@ sub check_operators { }{defined $1 ? "$1$2" : defined $3 ? "$3$4" : "$5$6"}egsx; my @lines = split( /\n/, $buf ); - for my $line (@lines) { + $comma_space{$path} = []; + for (my $i=0; $i <= $#lines; $i++) { # after a comma there should be one space or a newline - if ( $line =~ m{ ( (?:,) (?! \s ) (?= .+) ) }gx ) { - $comma_space{$path} = undef; + if ( $lines[$i] =~ m{ ( (?:,) (?! \s ) (?= .+) ) }gx ) { + push @{ $comma_space{$path} }, $i; } } } ## L/ - is( join("\n", keys %comma_space), "", "there should be one space or a newline after a comma" ); + my $files_with_errors = 0; + for my $path ( sort keys %comma_space ) { + $files_with_errors++ if scalar @{ $comma_space{$path} }; + } + is( $files_with_errors, 0, "there should be one space or a newline after a comma" ) + or diag( do { + for my $k (sort keys %comma_space) { + my @lines_failed = @{$comma_space{$k}}; + print "$k: line(s): @lines_failed\n" if scalar(@lines_failed); + } + } ); } # Local Variables: From 686904ad5a2f387ff718b5dffdc85b5a5526df5e Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Mon, 23 Aug 2010 06:46:52 +0000 Subject: [PATCH 071/165] test Exception is_equal git-svn-id: https://svn.parrot.org/parrot/trunk@48608 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/exception.t | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/t/pmc/exception.t b/t/pmc/exception.t index 5377d904be..aa5bb3a638 100644 --- a/t/pmc/exception.t +++ b/t/pmc/exception.t @@ -20,7 +20,7 @@ Tests C and C PMCs. .sub main :main .include 'test_more.pir' - plan(21) + plan(22) test_bool() test_int() test_attrs() @@ -182,6 +182,10 @@ _handler: ex = new ['Exception'] ex['type'] = .EXCEPTION_SYNTAX_ERROR exclone = clone ex + + result = iseq ex, exclone + is(result, 1, 'cloned Exception is equal to original') + ehguard = new ['ExceptionHandler'] set_label ehguard, catchall push_eh ehguard From d0d2bf95112f843ba88d5ca4917fc0584491e84b Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Mon, 23 Aug 2010 07:13:45 +0000 Subject: [PATCH 072/165] update run instructions in packfile test files, TT #1750 TT #1712 git-svn-id: https://svn.parrot.org/parrot/trunk@48609 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/packfile.t | 3 +-- t/pmc/packfileannotations.t | 1 + t/pmc/packfileconstanttable.t | 1 + t/pmc/packfiledirectory.t | 1 + t/pmc/packfilefixupentry.t | 1 + t/pmc/packfilefixuptable.t | 1 + t/pmc/packfilerawsegment.t | 1 + 7 files changed, 7 insertions(+), 2 deletions(-) diff --git a/t/pmc/packfile.t b/t/pmc/packfile.t index e3de8afdef..126c0cd716 100644 --- a/t/pmc/packfile.t +++ b/t/pmc/packfile.t @@ -9,14 +9,13 @@ t/pmc/packfile.t - test the Packfile PMC =head1 SYNOPSIS + % make test_prep % prove t/pmc/packfile.t =head1 DESCRIPTION Tests the Packfile PMC. -If you see this tests failing after bumping PBC_COMPAT rerun tools/dev/mk_packfile_pbc. - =cut .include 't/pmc/testlib/packfile_common.pir' diff --git a/t/pmc/packfileannotations.t b/t/pmc/packfileannotations.t index 5374796633..202ab644df 100644 --- a/t/pmc/packfileannotations.t +++ b/t/pmc/packfileannotations.t @@ -9,6 +9,7 @@ t/pmc/packfileannotations.t - test the PackfileAnnotations PMC =head1 SYNOPSIS + % make test_prep % prove t/pmc/packfileannotations.t =head1 DESCRIPTION diff --git a/t/pmc/packfileconstanttable.t b/t/pmc/packfileconstanttable.t index 175fdb489b..ab801e4d65 100644 --- a/t/pmc/packfileconstanttable.t +++ b/t/pmc/packfileconstanttable.t @@ -8,6 +8,7 @@ t/pmc/packfileconstanttable.t - test the PackfileConstantTable PMC =head1 SYNOPSIS + % make test_prep % prove t/pmc/packfileconstanttable.t =head1 DESCRIPTION diff --git a/t/pmc/packfiledirectory.t b/t/pmc/packfiledirectory.t index 245f0ceee7..fcd2cbf04d 100644 --- a/t/pmc/packfiledirectory.t +++ b/t/pmc/packfiledirectory.t @@ -9,6 +9,7 @@ t/pmc/packfiledirectory.t - test the PackfileDirectory PMC =head1 SYNOPSIS + % make test_prep % prove t/pmc/packfiledirectory.t =head1 DESCRIPTION diff --git a/t/pmc/packfilefixupentry.t b/t/pmc/packfilefixupentry.t index 492262f65f..727ae93f3d 100644 --- a/t/pmc/packfilefixupentry.t +++ b/t/pmc/packfilefixupentry.t @@ -8,6 +8,7 @@ t/pmc/packfilefixupentry.t - test the PackfileFixupEntry PMC =head1 SYNOPSIS + % make test_prep % prove t/pmc/packfilefixupentry.t =head1 DESCRIPTION diff --git a/t/pmc/packfilefixuptable.t b/t/pmc/packfilefixuptable.t index 1b7071612f..33cb5c7d7d 100644 --- a/t/pmc/packfilefixuptable.t +++ b/t/pmc/packfilefixuptable.t @@ -9,6 +9,7 @@ t/pmc/packfilefixuptable.t - test the PackfileFixupTable PMC =head1 SYNOPSIS + % make test_prep % prove t/pmc/packfilefixuptable.t =head1 DESCRIPTION diff --git a/t/pmc/packfilerawsegment.t b/t/pmc/packfilerawsegment.t index 4eca2e2dc4..e902f48706 100644 --- a/t/pmc/packfilerawsegment.t +++ b/t/pmc/packfilerawsegment.t @@ -9,6 +9,7 @@ t/pmc/packfilerawsegment.t - test the PackfileRawSegment PMC =head1 SYNOPSIS + % make test_prep % prove t/pmc/packfilerawsegment.t =head1 DESCRIPTION From 5554f830be69d48658fc8511b63ab31874b2064f Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Mon, 23 Aug 2010 08:22:45 +0000 Subject: [PATCH 073/165] fix codetest failures - unwrapped macro arguments and there should be one space or a newline after a comma git-svn-id: https://svn.parrot.org/parrot/trunk@48610 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/hash.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/parrot/hash.h b/include/parrot/hash.h index d5c066bd69..4559e364ae 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -85,11 +85,11 @@ struct _hash { { \ HashBucket *_bucket = (_hash)->buckets; \ UINTVAL _found = 0; \ - while (_found < _hash->entries){ \ + while (_found < (_hash)->entries){ \ if (_bucket->key){ \ _found++; \ { \ - _code \ + (_code) \ } \ } \ _bucket++; \ @@ -102,14 +102,14 @@ struct _hash { for (_loc = (_hash)->mask; _loc >= 0; --_loc) { \ HashBucket *_bucket = (_hash)->index[_loc]; \ while (_bucket) { \ - _code \ + (_code) \ _bucket = _bucket->next; \ } \ } \ } -#define parrot_hash_iterator_advance(_hash,_bucket,_loc) \ +#define parrot_hash_iterator_advance(_hash, _bucket, _loc) \ { \ /* Try to advance current bucket */ \ if ((_bucket)) \ @@ -118,7 +118,7 @@ struct _hash { /* If there is no more buckets */ \ if ((_loc) == (INTVAL)(_hash)->mask+1) \ break; \ - (_bucket) = (_hash)->index[_loc++]; \ + (_bucket) = (_hash)->index[(_loc)++]; \ } \ } From 542f63effc3caecb96c4716167f53dcffc0ea426 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Mon, 23 Aug 2010 08:35:34 +0000 Subject: [PATCH 074/165] does not seem to like wrapping _code git-svn-id: https://svn.parrot.org/parrot/trunk@48611 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/hash.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/parrot/hash.h b/include/parrot/hash.h index 4559e364ae..c9839ea6f1 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -89,7 +89,7 @@ struct _hash { if (_bucket->key){ \ _found++; \ { \ - (_code) \ + _code \ } \ } \ _bucket++; \ @@ -102,7 +102,7 @@ struct _hash { for (_loc = (_hash)->mask; _loc >= 0; --_loc) { \ HashBucket *_bucket = (_hash)->index[_loc]; \ while (_bucket) { \ - (_code) \ + _code \ _bucket = _bucket->next; \ } \ } \ From 5f0899070efad6493c370575da276f8882104b32 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Mon, 23 Aug 2010 13:21:42 +0000 Subject: [PATCH 075/165] Use hash iteration macro in dissect_aggregate_arg This was the only user of parrot_hash_get_idx, so it can go away, too. git-svn-id: https://svn.parrot.org/parrot/trunk@48612 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/hash.h | 16 ----------- src/call/args.c | 21 ++++---------- src/hash.c | 66 ------------------------------------------- 3 files changed, 6 insertions(+), 97 deletions(-) diff --git a/include/parrot/hash.h b/include/parrot/hash.h index c9839ea6f1..dd48720ca4 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -21,7 +21,6 @@ typedef enum { /* A BucketIndex is an index into the pool of available buckets. */ typedef UINTVAL BucketIndex; -#define INITBucketIndex ((BucketIndex)-2) #define N_BUCKETS(n) ((n)) #define HASH_ALLOC_SIZE(n) (N_BUCKETS(n) * sizeof (HashBucket) + \ @@ -190,17 +189,6 @@ HashBucket * parrot_hash_get_bucket(PARROT_INTERP, __attribute__nonnull__(1) __attribute__nonnull__(2); -PARROT_EXPORT -PARROT_WARN_UNUSED_RESULT -PARROT_CAN_RETURN_NULL -void * parrot_hash_get_idx(PARROT_INTERP, - ARGIN(const Hash *hash), - ARGMOD(PMC *key)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*key); - PARROT_EXPORT PARROT_IGNORABLE_RESULT PARROT_CANNOT_RETURN_NULL @@ -469,10 +457,6 @@ int STRING_compare_distinct_cs_enc(PARROT_INTERP, #define ASSERT_ARGS_parrot_hash_get_bucket __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash)) -#define ASSERT_ARGS_parrot_hash_get_idx __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(hash) \ - , PARROT_ASSERT_ARG(key)) #define ASSERT_ARGS_parrot_hash_put __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash)) diff --git a/src/call/args.c b/src/call/args.c index d432caab20..9c42fbf663 100644 --- a/src/call/args.c +++ b/src/call/args.c @@ -488,22 +488,13 @@ dissect_aggregate_arg(PARROT_INTERP, ARGMOD(PMC *call_object), ARGIN(PMC *aggreg } } else if (VTABLE_does(interp, aggregate, CONST_STRING(interp, "hash"))) { - const INTVAL elements = VTABLE_elements(interp, aggregate); - INTVAL index; - PMC * const key = Parrot_pmc_new(interp, enum_class_Key); - VTABLE_set_integer_native(interp, key, 0); - SETATTR_Key_next_key(interp, key, (PMC *)INITBucketIndex); + Hash *hash = (Hash *)VTABLE_get_pointer(interp, aggregate); - /* Low-level hash iteration. */ - for (index = 0; index < elements; ++index) { - if (!PMC_IS_NULL(key)) { - STRING * const name = (STRING *)parrot_hash_get_idx(interp, - (Hash *)VTABLE_get_pointer(interp, aggregate), key); - PARROT_ASSERT(name); - VTABLE_set_pmc_keyed_str(interp, call_object, name, - VTABLE_get_pmc_keyed_str(interp, aggregate, name)); - } - } + parrot_hash_iterate(hash, + VTABLE_set_pmc_keyed_str(interp, call_object, + (STRING *)_bucket->key, + hash_value_to_pmc(interp, hash, _bucket->value)); + ) } else { Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION, diff --git a/src/hash.c b/src/hash.c index 64a6148e98..5a85717ecc 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1142,72 +1142,6 @@ parrot_hash_size(SHIM_INTERP, ARGIN(const Hash *hash)) } -/* - -=item C - -Finds the next index into the hash's internal storage for the given Key. Used -by iterators. Ugly. - -=cut - -*/ - -PARROT_EXPORT -PARROT_WARN_UNUSED_RESULT -PARROT_CAN_RETURN_NULL -void * -parrot_hash_get_idx(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *key)) -{ - ASSERT_ARGS(parrot_hash_get_idx) - HashBucket *b; - void *res; - INTVAL i = VTABLE_get_integer(interp, key); - PMC *fake_bi; - BucketIndex bi; - - /* idx directly in the bucket store, which is at negative - * address from the data pointer */ - /* locate initial */ - const INTVAL size = (INTVAL)N_BUCKETS(hash->mask + 1); - - GETATTR_Key_next_key(interp, key, fake_bi); - bi = (BucketIndex)fake_bi; - - if (bi == INITBucketIndex) { - i = 0; - SETATTR_Key_next_key(interp, key, NULL); - } - else if (i >= size || i < 0) { - /* NOTE: These instances of SETATTR_Key_int_key can't be VTABLE - * functions because of the "special" way hash iterators work. */ - SETATTR_Key_int_key(interp, key, -1); - return NULL; - } - - res = NULL; - - for (b = hash->buckets + i; i < size ; ++i, ++b) { - /* XXX int keys may be zero - use different iterator */ - if (b->key) { - if (!res) - res = b->key; - - /* found next key - FIXME hash iter does auto next */ - else - break; - } - } - - if (i >= size) - i = -1; - - SETATTR_Key_int_key(interp, key, i); - - return res; -} - - /* =item C Date: Mon, 23 Aug 2010 14:54:49 +0000 Subject: [PATCH 076/165] Fast path for hash get/put with string keys Inline get_hash_val and STRING_compare in hash_get_bucket and hash_put. Also remove the COW test from STRING_compare. It was wrong (should have used strstart instead of bufstart) and didn't give a speedup. git-svn-id: https://svn.parrot.org/parrot/trunk@48613 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/hash.c | 131 +++++++++++++++++++++++++++-------------------------- 1 file changed, 68 insertions(+), 63 deletions(-) diff --git a/src/hash.c b/src/hash.c index 5a85717ecc..129a538605 100644 --- a/src/hash.c +++ b/src/hash.c @@ -49,12 +49,6 @@ static void expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) __attribute__nonnull__(2) FUNC_MODIFIES(*hash); -static UINTVAL get_hash_val(PARROT_INTERP, - ARGIN(const Hash *hash), - ARGIN_NULLOK(const void *key)) - __attribute__nonnull__(1) - __attribute__nonnull__(2); - static void hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info)) @@ -108,9 +102,6 @@ static int pointer_compare(SHIM_INTERP, #define ASSERT_ARGS_expand_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash)) -#define ASSERT_ARGS_get_hash_val __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(hash)) #define ASSERT_ARGS_hash_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash) \ @@ -162,36 +153,6 @@ key_hash_STRING(PARROT_INTERP, ARGMOD(STRING *s), SHIM(size_t seed)) } -/* - -=item C - -An inlinable helper function to avoid the overhead of calling key_hash_STRING() -when there's already a calculated hash value for the STRING key. - -=cut - -*/ - -static UINTVAL -get_hash_val(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(const void *key)) -{ - ASSERT_ARGS(get_hash_val) - if (hash->hash_val == (hash_hash_key_fn)key_hash_STRING) { - /* Must be non-const because str_to_hashval caches the result - * in the STRING struct */ - DECL_CONST_CAST; - STRING * const s = (STRING *)PARROT_const_cast(void *, key); - if (s->hashval) - return s->hashval; - return Parrot_str_to_hashval(interp, s); - } - - return (hash->hash_val)(interp, key, hash->seed); -} - - /* =item Chashval != s2->hashval) return 1; - /* COWed strings */ - if (Buffer_bufstart(s1) == Buffer_bufstart(s2) - && s1->bufused == s2->bufused) - return 0; - return CHARSET_COMPARE(interp, s1, s2); } @@ -863,7 +816,7 @@ expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) while ((b = *next_p) != NULL) { /* rehash the bucket */ const size_t new_loc = - get_hash_val(interp, hash, b->key) & (new_size - 1); + (hash->hash_val)(interp, b->key, hash->seed) & (new_size - 1); if (i != new_loc) { *next_p = b->next; @@ -1160,15 +1113,39 @@ HashBucket * parrot_hash_get_bucket(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(const void *key)) { ASSERT_ARGS(parrot_hash_get_bucket) + UINTVAL hashval; + HashBucket *bucket; + const hash_hash_key_fn hash_val = hash->hash_val; + const hash_comp_fn compare = hash->compare; if (hash->entries <= 0) return NULL; - /* if the fast search didn't work, try the normal hashing search */ - { - const UINTVAL hashval = get_hash_val(interp, hash, key); - HashBucket *bucket = hash->index[hashval & hash->mask]; - const hash_comp_fn compare = hash->compare; + if (hash_val == key_hash_STRING && compare == STRING_compare) { + /* fast path for string keys */ + const STRING *s = (const STRING *)key; + + if (s->hashval) + hashval = s->hashval; + else + hashval = Parrot_str_to_hashval(interp, s); + + bucket = hash->index[hashval & hash->mask]; + + while (bucket) { + const STRING *s2 = (const STRING *)bucket->key; + + if (s == s2 + || (s->hashval == s2->hashval + && CHARSET_COMPARE(interp, s, s2) == 0)) + return bucket; + + bucket = bucket->next; + } + } + else { + hashval = hash_val(interp, key, hash->seed); + bucket = hash->index[hashval & hash->mask]; while (bucket) { /* key equality is always a match, so it's worth checking */ @@ -1248,16 +1225,44 @@ parrot_hash_put(PARROT_INTERP, ARGMOD(Hash *hash), ARGIN_NULLOK(void *key), ARGIN_NULLOK(void *value)) { ASSERT_ARGS(parrot_hash_put) - const UINTVAL hashval = get_hash_val(interp, hash, key); - HashBucket *bucket = hash->index[hashval & hash->mask]; - const hash_comp_fn compare = hash->compare; - - /* See if we have an existing value for this key */ - while (bucket) { - /* store hash_val or not */ - if ((compare)(interp, key, bucket->key) == 0) - break; - bucket = bucket->next; + UINTVAL hashval; + HashBucket *bucket; + const hash_hash_key_fn hash_val = hash->hash_val; + const hash_comp_fn compare = hash->compare; + + if (hash_val == key_hash_STRING && compare == STRING_compare) { + /* fast path for string keys */ + const STRING *s = (const STRING *)key; + + if (s->hashval) + hashval = s->hashval; + else + hashval = Parrot_str_to_hashval(interp, s); + + bucket = hash->index[hashval & hash->mask]; + + while (bucket) { + const STRING *s2 = (const STRING *)bucket->key; + + if (s == s2 + || (s->hashval == s2->hashval + && CHARSET_COMPARE(interp, s, s2) == 0)) + break; + + bucket = bucket->next; + } + } + else { + hashval = hash_val(interp, key, hash->seed); + bucket = hash->index[hashval & hash->mask]; + + /* See if we have an existing value for this key */ + while (bucket) { + /* store hash_val or not */ + if (compare(interp, key, bucket->key) == 0) + break; + bucket = bucket->next; + } } /* If we have a bucket already, put the value in it. Otherwise, we need From 04bf0707c30b629c033f9e7116133284b9361625 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Mon, 23 Aug 2010 18:14:57 +0000 Subject: [PATCH 077/165] Optimize expand_hash Merge pointer relocation and rehashing into a single loop. Optimize update of free list. Also don't assume that new_size = 2 * old_size. git-svn-id: https://svn.parrot.org/parrot/trunk@48614 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/hash.c | 51 ++++++++++++++++++++------------------------------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/src/hash.c b/src/hash.c index 129a538605..dbb3a07905 100644 --- a/src/hash.c +++ b/src/hash.c @@ -739,6 +739,7 @@ expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) const UINTVAL old_size = hash->mask + 1; const UINTVAL new_size = old_size << 1; /* Double. Right-shift is 2x */ const UINTVAL old_nb = N_BUCKETS(old_size); + const UINTVAL new_nb = N_BUCKETS(new_size); size_t offset, i; /* @@ -775,7 +776,7 @@ expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) bs = new_mem; old_bi = (HashBucket **)(bs + old_nb); - new_bi = (HashBucket **)(bs + N_BUCKETS(new_size)); + new_bi = (HashBucket **)(bs + new_nb); /* things can have moved by this offset */ offset = (char *)new_mem - (char *)old_mem; @@ -789,52 +790,40 @@ expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) hash->mask = new_size - 1; /* clear freshly allocated bucket index */ - memset(new_bi + old_size, 0, sizeof (HashBucket *) * old_size); + memset(new_bi + old_size, 0, sizeof (HashBucket *) * (new_size - old_size)); - /* - * reloc pointers - this part would be also needed, if we - * allocate hash memory from GC movable memory, and then - * also the free_list needs updating (this is empty now, - * as expand_hash is only called for that case). - */ - if (offset) { - size_t j; - for (j = 0; j < old_size; ++j) { - HashBucket **next_p = new_bi + j; - while (*next_p) { - *next_p = (HashBucket *)((char *)*next_p + offset); - b = *next_p; - next_p = &b->next; - } - } - } - - /* recalc bucket index */ + /* reloc pointers and recalc bucket indices */ for (i = 0; i < old_size; ++i) { HashBucket **next_p = new_bi + i; - while ((b = *next_p) != NULL) { + while (*next_p != NULL) { + size_t new_loc; + + b = (HashBucket *)((char *)*next_p + offset); /* rehash the bucket */ - const size_t new_loc = - (hash->hash_val)(interp, b->key, hash->seed) & (new_size - 1); + new_loc = (hash->hash_val)(interp, b->key, hash->seed) & (new_size - 1); if (i != new_loc) { *next_p = b->next; b->next = new_bi[new_loc]; new_bi[new_loc] = b; } - else - next_p = &b->next; + else { + *next_p = b; + next_p = &b->next; + } } } - /* add new buckets to free_list in reverse order + /* add new buckets to free_list * lowest bucket is top on free list and will be used first */ - for (i = 0, b = (HashBucket *)new_bi - 1; i < old_nb; ++i, --b) { - b->next = hash->free_list; - b->key = b->value = NULL; - hash->free_list = b; + for (b = bs + old_nb; b < bs + new_nb - 1; ++b) { + b->next = b + 1; + b->key = b->value = NULL; } + + b->next = hash->free_list; + hash->free_list = bs + old_nb; } From 5801702ab66f5c7e5b03d1a002728a723df48c63 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Mon, 23 Aug 2010 18:15:18 +0000 Subject: [PATCH 078/165] Don't recompute hash value of strings in expand_hash Fix some warnings from the previous commit git-svn-id: https://svn.parrot.org/parrot/trunk@48615 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/hash.c | 30 +++++++++++++++++++++++------- src/string/api.c | 16 +++++++++------- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/hash.c b/src/hash.c index dbb3a07905..aecf3da54e 100644 --- a/src/hash.c +++ b/src/hash.c @@ -742,6 +742,9 @@ expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) const UINTVAL new_nb = N_BUCKETS(new_size); size_t offset, i; + const hash_hash_key_fn hash_val_func = hash->hash_val; + const int is_string_key = (hash_val_func == (hash_hash_key_fn)key_hash_STRING); + /* allocate some less buckets e.g. 3 buckets, 4 pointers: @@ -798,10 +801,20 @@ expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) while (*next_p != NULL) { size_t new_loc; + size_t hashval; b = (HashBucket *)((char *)*next_p + offset); + /* rehash the bucket */ - new_loc = (hash->hash_val)(interp, b->key, hash->seed) & (new_size - 1); + if (is_string_key) { + STRING *s = (STRING *)b->key; + hashval = s->hashval; + } + else { + hashval = hash_val_func(interp, b->key, hash->seed); + } + + new_loc = hashval & (new_size - 1); if (i != new_loc) { *next_p = b->next; @@ -1110,9 +1123,11 @@ parrot_hash_get_bucket(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(cons if (hash->entries <= 0) return NULL; - if (hash_val == key_hash_STRING && compare == STRING_compare) { + if (hash_val == (hash_hash_key_fn)key_hash_STRING + && compare == STRING_compare) { /* fast path for string keys */ - const STRING *s = (const STRING *)key; + DECL_CONST_CAST; + STRING * const s = (STRING *)PARROT_const_cast(void *, key); if (s->hashval) hashval = s->hashval; @@ -1125,7 +1140,7 @@ parrot_hash_get_bucket(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(cons const STRING *s2 = (const STRING *)bucket->key; if (s == s2 - || (s->hashval == s2->hashval + || (hashval == s2->hashval && CHARSET_COMPARE(interp, s, s2) == 0)) return bucket; @@ -1219,9 +1234,10 @@ parrot_hash_put(PARROT_INTERP, ARGMOD(Hash *hash), const hash_hash_key_fn hash_val = hash->hash_val; const hash_comp_fn compare = hash->compare; - if (hash_val == key_hash_STRING && compare == STRING_compare) { + if (hash_val == (hash_hash_key_fn)key_hash_STRING + && compare == STRING_compare) { /* fast path for string keys */ - const STRING *s = (const STRING *)key; + STRING *s = (STRING *)key; if (s->hashval) hashval = s->hashval; @@ -1234,7 +1250,7 @@ parrot_hash_put(PARROT_INTERP, ARGMOD(Hash *hash), const STRING *s2 = (const STRING *)bucket->key; if (s == s2 - || (s->hashval == s2->hashval + || (hashval == s2->hashval && CHARSET_COMPARE(interp, s, s2) == 0)) break; diff --git a/src/string/api.c b/src/string/api.c index 19098108b8..9cba082ebf 100644 --- a/src/string/api.c +++ b/src/string/api.c @@ -2428,13 +2428,15 @@ Parrot_str_to_hashval(PARROT_INTERP, ARGMOD_NULLOK(STRING *s)) size_t hashval = interp->hash_seed; - if ((!STRING_IS_NULL(s)) && s->strlen) { - if (s->encoding->hash) - hashval = ENCODING_HASH(interp, s, hashval); - else if (s->charset->compute_hash) - hashval = CHARSET_COMPUTE_HASH(interp, s, hashval); - else { - exit_fatal(1, "String subsystem not properly initialized"); + if (!STRING_IS_NULL(s)) { + if (s->strlen) { + if (s->encoding->hash) + hashval = ENCODING_HASH(interp, s, hashval); + else if (s->charset->compute_hash) + hashval = CHARSET_COMPUTE_HASH(interp, s, hashval); + else { + exit_fatal(1, "String subsystem not properly initialized"); + } } s->hashval = hashval; From fd8594cdd906cb31bf5f833ddf55a9ae6a4c4b8c Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Mon, 23 Aug 2010 23:01:33 +0000 Subject: [PATCH 079/165] Improve documentation. git-svn-id: https://svn.parrot.org/parrot/trunk@48616 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/util/ncidef2pasm.pl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/util/ncidef2pasm.pl b/tools/util/ncidef2pasm.pl index b72264bf19..a4af651f8d 100644 --- a/tools/util/ncidef2pasm.pl +++ b/tools/util/ncidef2pasm.pl @@ -5,11 +5,15 @@ =head1 NAME -F +tools/util/ncidef2asm.pl - Turn an NCI library definition file into PASM + +=head1 SYNOPSIS + + perl tools/util/ncidef2asm.pl path/to/from_file [ path/to/to_file ] =head1 DESCRIPTION -Take an NCI library definition file and turn it into PASM. +This program takes an NCI library definition file and turns it into PASM. An NCI library definition file provides the information needed to generate a parrot wrapper for the named library (or libraries). Its From f6c83ee188f83959f20e1464faa10ccd1814eff0 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Tue, 24 Aug 2010 07:35:55 +0000 Subject: [PATCH 080/165] fix silly mistake with the escape code git-svn-id: https://svn.parrot.org/parrot/trunk@48617 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/string/api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/string/api.c b/src/string/api.c index 9cba082ebf..28e36f8de4 100644 --- a/src/string/api.c +++ b/src/string/api.c @@ -2677,7 +2677,7 @@ Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src), case 'v': next = '\v'; break; case 'f': next = '\f'; break; case 'r': next = '\r'; break; - case 'e': next = '\x27'; break; + case 'e': next = '\x1B'; break; /* Escape character */ case 'c': c = STRING_ITER_GET_AND_ADVANCE(interp, src, &itersrc); From cb12f4d4f01d63b63db114c3729b595ea3fccbb6 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Tue, 24 Aug 2010 11:37:10 +0000 Subject: [PATCH 081/165] fix codetest failure - parentheses should not have space immediately after the opening parenthesis nor immediately before the closing parenthesis git-svn-id: https://svn.parrot.org/parrot/trunk@48618 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/call/args.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/call/args.c b/src/call/args.c index 9c42fbf663..36e5fbbc8a 100644 --- a/src/call/args.c +++ b/src/call/args.c @@ -493,8 +493,7 @@ dissect_aggregate_arg(PARROT_INTERP, ARGMOD(PMC *call_object), ARGIN(PMC *aggreg parrot_hash_iterate(hash, VTABLE_set_pmc_keyed_str(interp, call_object, (STRING *)_bucket->key, - hash_value_to_pmc(interp, hash, _bucket->value)); - ) + hash_value_to_pmc(interp, hash, _bucket->value));) } else { Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION, From 99816c7f35286597be55e4f83c0e78da95f60ee3 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Tue, 24 Aug 2010 12:02:37 +0000 Subject: [PATCH 082/165] add svn:ignore for *.pbc in t/pmc/testlib git-svn-id: https://svn.parrot.org/parrot/trunk@48619 d31e2699-5ff4-0310-a27c-f18f2fbe73fe From f02eade5a38c1c95eae25cd23489c79fd7d904ed Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Tue, 24 Aug 2010 12:07:06 +0000 Subject: [PATCH 083/165] re-generate MANIFEST.SKIP git-svn-id: https://svn.parrot.org/parrot/trunk@48620 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST.SKIP | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP index 79af5c3efa..3c3899e5ac 100644 --- a/MANIFEST.SKIP +++ b/MANIFEST.SKIP @@ -1,6 +1,6 @@ # ex: set ro: # $Id$ -# generated by tools/dev/mk_manifest_and_skip.pl Thu Jun 24 14:06:33 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 12:05:18 2010 UT # # This file should contain a transcript of the svn:ignore properties # of the directories in the Parrot subversion repository. (Needed for @@ -1046,6 +1046,9 @@ ^t/pmc/.*\.pir/ ^t/pmc/.*_pbcexe.*$ ^t/pmc/.*_pbcexe.*/ +# generated from svn:ignore of 't/pmc/testlib/' +^t/pmc/testlib/.*\.pbc$ +^t/pmc/testlib/.*\.pbc/ # generated from svn:ignore of 't/src/' ^t/src/.*_.*$ ^t/src/.*_.*/ From e10f502c9900d89ff81850f0dd0b41f5748c7af0 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Tue, 24 Aug 2010 12:40:53 +0000 Subject: [PATCH 084/165] more tests for Exception clone git-svn-id: https://svn.parrot.org/parrot/trunk@48621 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/exception.t | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/t/pmc/exception.t b/t/pmc/exception.t index aa5bb3a638..a676775d2e 100644 --- a/t/pmc/exception.t +++ b/t/pmc/exception.t @@ -20,7 +20,7 @@ Tests C and C PMCs. .sub main :main .include 'test_more.pir' - plan(22) + plan(24) test_bool() test_int() test_attrs() @@ -176,6 +176,8 @@ _handler: ok(1,'caught exception object thrown') .end +# Test clone vtable function +# TT #1446 - need more tests .sub test_throw_clone .local pmc ex, exclone, eh, ehguard .local int result @@ -195,11 +197,37 @@ _handler: result = 0 push_eh eh throw exclone + goto catchall catch: result = 1 catchall: - # TT #1446 - need more tests + finalize eh + finalize ehguard is(result, 1, 'caught a cloned Exception') + + null exclone + result = 0 + .local pmc pay, getpay, exc + set_label ehguard, catchall2 + set_label eh, catch2 + + pay = new ['Integer'], 9875 + ex['payload'] = pay + exclone = clone ex + result = iseq ex, exclone + is(result, 1, 'cloned Exception with payload is equal to original') + + result = 0 + throw exclone + goto catchall2 + catch2: + .get_results(exc) + getpay = exc['payload'] + $I0 = getpay + if $I0 != 9875 goto catchall2 + result = 1 + catchall2: + is(result, 1, 'caught a cloned Exception with payload') .end # Local Variables: From 063ac74e05e4440d5c5c57811c36d64f188ab4ab Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Tue, 24 Aug 2010 13:32:23 +0000 Subject: [PATCH 085/165] Clear the live flag on copied strings This was another cause of strings not getting collected early enough. I think the handling of flags in str_copy and str_clone still needs some auditing. Also fix a glaring, but probably harmless error in PObj_gc_CLEAR. git-svn-id: https://svn.parrot.org/parrot/trunk@48622 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/pobj.h | 4 ++-- src/string/api.c | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/parrot/pobj.h b/include/parrot/pobj.h index a8ada098e3..f826c623ff 100644 --- a/include/parrot/pobj.h +++ b/include/parrot/pobj.h @@ -328,8 +328,8 @@ typedef enum PObj_enum { #define PObj_gc_CLEAR(o) (PObj_get_FLAGS(o) \ &= ~PObj_custom_destroy_FLAG \ - | ~PObj_custom_mark_FLAG \ - | ~PObj_live_FLAG) + & ~PObj_custom_mark_FLAG \ + & ~PObj_live_FLAG) #endif /* PARROT_POBJ_H_GUARD */ diff --git a/src/string/api.c b/src/string/api.c index 28e36f8de4..0b457614f8 100644 --- a/src/string/api.c +++ b/src/string/api.c @@ -389,8 +389,12 @@ Parrot_str_copy(PARROT_INTERP, ARGIN(const STRING *s)) d = Parrot_gc_new_string_header(interp, PObj_get_FLAGS(s) & ~PObj_constant_FLAG); + /* This overwrites the constant flag again. Not sure if this is OK */ STRUCT_COPY(d, s); + /* Clear live flag. It might be set on constant strings */ + PObj_live_CLEAR(d); + /* Now check that buffer allocated from pool and affected by compacting */ if (is_movable && Buffer_bufstart(s)) { /* If so, mark it as shared */ From 10ff3ece8038296324ce53b9c4793f2744080a0e Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Tue, 24 Aug 2010 13:39:59 +0000 Subject: [PATCH 086/165] Add test case for TT#1603 git-svn-id: https://svn.parrot.org/parrot/trunk@48623 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 3 +- t/op/gc-active-buffers.t | 62 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 t/op/gc-active-buffers.t diff --git a/MANIFEST b/MANIFEST index 285601e671..191e3c836e 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,8 +1,6 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Fri Aug 20 12:55:40 2010 UT -# # See below for documentation on the format of this file. # # See docs/submissions.pod and the documentation in @@ -1804,6 +1802,7 @@ t/op/errorson.t [test] t/op/exceptions.t [test] t/op/exit.t [test] t/op/fetch.t [test] +t/op/gc-active-buffers.t [test] t/op/gc-leaky-box.t [test] t/op/gc-leaky-call.t [test] t/op/gc.t [test] diff --git a/t/op/gc-active-buffers.t b/t/op/gc-active-buffers.t new file mode 100644 index 0000000000..f4cba6c83c --- /dev/null +++ b/t/op/gc-active-buffers.t @@ -0,0 +1,62 @@ +#!./parrot +# Copyright (C) 2010, Parrot Foundation. +# $Id$ + +=head1 NAME + +t/op/gc-active-buffers.t - Test that buffers are freed as soon as possible + +=head1 SYNOPSIS + + % prove t/op/gc-active-buffers.t + +=head1 DESCRIPTION + +Tests that unused buffers (strings) are freed in the first GC run. See +TT1603 - http://trac.parrot.org/parrot/ticket/1603 + +=cut + +.include 'interpinfo.pasm' + +.sub _main :main + .include 'test_more.pir' + + plan(1) + + sweep 1 + $I0 = interpinfo .INTERPINFO_ACTIVE_BUFFERS + + .local int count + count= 1000 + loop: + unless count goto done + + # original test form TT1603 + $P0 = new 'CodeString' + $P0.'emit'("a") + $S0 = $P0 + + # another way to trigger the problem + $S1 = "abc" + $S2 = substr $S1, 0, 1 + + dec count + goto loop + done: + + sweep 1 + $I1 = interpinfo .INTERPINFO_ACTIVE_BUFFERS + + $I2 = $I1 - $I0 + $S0 = $I2 + $S0 .= " additional active buffers (which should be <= 100)" + $I3 = isle $I2, 100 + ok($I3, $S0) + .end + +# Local Variables: +# mode: pir +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4 ft=pir: From 2ca335a8dec1673c6988770028e01d52510d1330 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Tue, 24 Aug 2010 13:54:55 +0000 Subject: [PATCH 087/165] Don't complain about unwrapped args that are code blocks git-svn-id: https://svn.parrot.org/parrot/trunk@48624 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/codingstd/c_macro_args.t | 3 +++ 1 file changed, 3 insertions(+) diff --git a/t/codingstd/c_macro_args.t b/t/codingstd/c_macro_args.t index 47e303d2e9..8b3d3b9745 100644 --- a/t/codingstd/c_macro_args.t +++ b/t/codingstd/c_macro_args.t @@ -60,6 +60,9 @@ sub check_macro_args { if ($definition ne "") { foreach my $arg (split /\s*,\s*/, $args) { + # skip args that are code blocks + next if $arg eq '_code'; + # eliminate any properly formed usage of the macro arg $definition =~ s/\Q($arg)//g; $definition =~ s/\Q[$arg]//g; From b55c12e695a6549f50768dc7d202a6d9df7f29b1 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Tue, 24 Aug 2010 14:30:24 +0000 Subject: [PATCH 088/165] add svn properties git-svn-id: https://svn.parrot.org/parrot/trunk@48625 d31e2699-5ff4-0310-a27c-f18f2fbe73fe From 6d11ab0b91dcae6e6cd7d9ccbfee6aadea30329b Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Tue, 24 Aug 2010 15:28:49 +0000 Subject: [PATCH 089/165] inline byteorder functions in pf_items.c improves rakudo startup by 1.65% git-svn-id: https://svn.parrot.org/parrot/trunk@48626 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 4 +- config/gen/makefiles/root.in | 3 - include/parrot/packfile.h | 132 ---------------------- src/{byteorder.c => packfile/byteorder.h} | 74 +++++++----- src/packfile/pf_items.c | 1 + 5 files changed, 48 insertions(+), 166 deletions(-) rename src/{byteorder.c => packfile/byteorder.h} (86%) diff --git a/MANIFEST b/MANIFEST index 191e3c836e..6bfa28fcdb 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,6 +1,8 @@ # ex: set ro: # $Id$ # +# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 15:05:33 2010 UT +# # See below for documentation on the format of this file. # # See docs/submissions.pod and the documentation in @@ -1243,7 +1245,6 @@ runtime/parrot/library/uuid.pir [library] runtime/parrot/library/yaml_dumper.pir [library] src/atomic/gcc_x86.c [] src/atomic/sparc_v9.s [] -src/byteorder.c [] src/call/args.c [] src/call/context.c [] src/call/context_accessors.c [] @@ -1341,6 +1342,7 @@ src/ops/sys.ops [] src/ops/var.ops [] src/packdump.c [] src/packfile.c [] +src/packfile/byteorder.h [] src/packfile/pf_items.c [] src/packout.c [] src/parrot_debugger.c [] diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index 8793a2f1b7..044b02a6ab 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -434,7 +434,6 @@ INTERP_O_FILES = \ src/string/api$(O) \ src/ops/core_ops$(O) \ #IF(i386_has_gcc_cmpxchg): src/atomic/gcc_x86$(O) \ - src/byteorder$(O) \ src/string/charset$(O) \ src/core_pmcs$(O) \ src/datatypes$(O) \ @@ -1236,8 +1235,6 @@ examples/pasm/hello$(EXE): examples/pasm/hello.pbc $(PBC_TO_EXE) # ############################################################################### -src/byteorder$(O) : $(PARROT_H_HEADERS) src/byteorder.c - src/datatypes$(O) : $(PARROT_H_HEADERS) src/datatypes.c src/extend_vtable$(O) : $(PARROT_H_HEADERS) \ diff --git a/include/parrot/packfile.h b/include/parrot/packfile.h index ab96063ba7..02f758bac5 100644 --- a/include/parrot/packfile.h +++ b/include/parrot/packfile.h @@ -1213,138 +1213,6 @@ opcode_t* PF_store_string(ARGOUT(opcode_t *cursor), ARGIN(const STRING *s)) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: src/packfile/pf_items.c */ - - -/* -** Byte Ordering Functions (byteorder.c) -*/ - -/* HEADERIZER BEGIN: src/byteorder.c */ -/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ - -void fetch_buf_be_12( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -void fetch_buf_be_16( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -void fetch_buf_be_32( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -void fetch_buf_be_4( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -void fetch_buf_be_8( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -void fetch_buf_le_12( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -void fetch_buf_le_16( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -void fetch_buf_le_32( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -void fetch_buf_le_4( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -void fetch_buf_le_8( - ARGOUT(unsigned char *rb), - ARGIN(const unsigned char *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*rb); - -PARROT_WARN_UNUSED_RESULT -PARROT_CONST_FUNCTION -INTVAL fetch_iv_be(INTVAL w); - -PARROT_WARN_UNUSED_RESULT -PARROT_CONST_FUNCTION -INTVAL fetch_iv_le(INTVAL w); - -PARROT_WARN_UNUSED_RESULT -PARROT_CONST_FUNCTION -opcode_t fetch_op_be(opcode_t w); - -PARROT_WARN_UNUSED_RESULT -PARROT_CONST_FUNCTION -opcode_t fetch_op_le(opcode_t w); - -#define ASSERT_ARGS_fetch_buf_be_12 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_buf_be_16 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_buf_be_32 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_buf_be_4 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_buf_be_8 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_buf_le_12 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_buf_le_16 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_buf_le_32 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_buf_le_4 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_buf_le_8 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(rb) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_fetch_iv_be __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) -#define ASSERT_ARGS_fetch_iv_le __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) -#define ASSERT_ARGS_fetch_op_be __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) -#define ASSERT_ARGS_fetch_op_le __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) -/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ -/* HEADERIZER END: src/byteorder.c */ - #endif /* PARROT_PACKFILE_H_GUARD */ /* diff --git a/src/byteorder.c b/src/packfile/byteorder.h similarity index 86% rename from src/byteorder.c rename to src/packfile/byteorder.h index eac1982043..d10f441fb0 100644 --- a/src/byteorder.c +++ b/src/packfile/byteorder.h @@ -1,6 +1,6 @@ /* Copyright (C) 2001-2009, Parrot Foundation. -$Id$ +$Id: byteorder.c 45297 2010-03-30 01:33:45Z coke $ =head1 NAME @@ -27,11 +27,11 @@ Configure will have checked for supported word sizes. #include "parrot/parrot.h" -/* HEADERIZER HFILE: include/parrot/packfile.h */ +/* HEADERIZER HFILE: none */ /* -=item C +=item C This function converts a 4 or 8 byte C into little endian format. If the native format is already little endian, then no @@ -41,9 +41,10 @@ conversion is done. */ +PARROT_INLINE PARROT_WARN_UNUSED_RESULT PARROT_CONST_FUNCTION -INTVAL +static INTVAL fetch_iv_le(INTVAL w) { ASSERT_ARGS(fetch_iv_le) @@ -75,7 +76,7 @@ fetch_iv_le(INTVAL w) /* -=item C +=item C This function converts a 4 or 8 byte C into big endian format. If the native format is already big endian, then no conversion is done. @@ -84,9 +85,10 @@ If the native format is already big endian, then no conversion is done. */ +PARROT_INLINE PARROT_WARN_UNUSED_RESULT PARROT_CONST_FUNCTION -INTVAL +static INTVAL fetch_iv_be(INTVAL w) { ASSERT_ARGS(fetch_iv_be) @@ -117,7 +119,7 @@ fetch_iv_be(INTVAL w) /* -=item C +=item C Same as C for opcode_t @@ -125,9 +127,10 @@ Same as C for opcode_t */ +PARROT_INLINE PARROT_WARN_UNUSED_RESULT PARROT_CONST_FUNCTION -opcode_t +static opcode_t fetch_op_be(opcode_t w) { ASSERT_ARGS(fetch_op_be) @@ -155,7 +158,7 @@ fetch_op_be(opcode_t w) /* -=item C +=item C Same as C for opcode_t @@ -163,9 +166,10 @@ Same as C for opcode_t */ +PARROT_INLINE PARROT_WARN_UNUSED_RESULT PARROT_CONST_FUNCTION -opcode_t +static opcode_t fetch_op_le(opcode_t w) { ASSERT_ARGS(fetch_op_le) @@ -205,7 +209,7 @@ out of a padded buffer. /* -=item C +=item C Converts a 4-byte big-endian buffer C into a little-endian C. @@ -213,7 +217,8 @@ Converts a 4-byte big-endian buffer C into a little-endian C. */ -void +PARROT_INLINE +static void fetch_buf_be_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_be_4) @@ -229,7 +234,7 @@ fetch_buf_be_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) /* -=item C +=item C Converts a 4-byte little-endian buffer C into a big-endian buffer C. @@ -237,7 +242,8 @@ Converts a 4-byte little-endian buffer C into a big-endian buffer C. */ -void +PARROT_INLINE +static void fetch_buf_le_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_le_4) @@ -253,7 +259,7 @@ fetch_buf_le_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) /* -=item C +=item C Converts an 8-byte big-endian buffer C into a little-endian buffer C @@ -261,7 +267,8 @@ Converts an 8-byte big-endian buffer C into a little-endian buffer C */ -void +PARROT_INLINE +static void fetch_buf_be_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_be_8) @@ -281,7 +288,7 @@ fetch_buf_be_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) /* -=item C +=item C Converts an 8-byte little-endian buffer C into a big-endian buffer C. @@ -289,7 +296,8 @@ Converts an 8-byte little-endian buffer C into a big-endian buffer C. */ -void +PARROT_INLINE +static void fetch_buf_le_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_le_8) @@ -309,7 +317,7 @@ fetch_buf_le_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) /* -=item C +=item C Converts a 12-byte little-endian buffer C into a big-endian buffer C. @@ -317,7 +325,8 @@ Converts a 12-byte little-endian buffer C into a big-endian buffer C. */ -void +PARROT_INLINE +static void fetch_buf_le_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_le_12) @@ -341,7 +350,7 @@ fetch_buf_le_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) /* -=item C +=item C Converts a 12-byte big-endian buffer C into a little-endian buffer C. @@ -349,7 +358,8 @@ Converts a 12-byte big-endian buffer C into a little-endian buffer C. */ -void +PARROT_INLINE +static void fetch_buf_be_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_be_12) @@ -373,7 +383,7 @@ fetch_buf_be_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) /* -=item C +=item C Converts a 16-byte little-endian buffer C into a big-endian buffer C. @@ -381,7 +391,8 @@ Converts a 16-byte little-endian buffer C into a big-endian buffer C. */ -void +PARROT_INLINE +static void fetch_buf_le_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_le_16) @@ -409,7 +420,7 @@ fetch_buf_le_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) /* -=item C +=item C Converts a 16-byte big-endian buffer C into a little-endian buffer C. @@ -417,7 +428,8 @@ Converts a 16-byte big-endian buffer C into a little-endian buffer C. */ -void +PARROT_INLINE +static void fetch_buf_be_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_be_16) @@ -445,7 +457,7 @@ fetch_buf_be_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) /* -=item C +=item C Converts a 32-byte little-endian buffer C into a big-endian buffer C. @@ -453,7 +465,8 @@ Converts a 32-byte little-endian buffer C into a big-endian buffer C. */ -void +PARROT_INLINE +static void fetch_buf_le_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_le_32) @@ -497,7 +510,7 @@ fetch_buf_le_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) /* -=item C +=item C Converts a 32-byte big-endian buffer C into a little-endian buffer C. @@ -505,7 +518,8 @@ Converts a 32-byte big-endian buffer C into a little-endian buffer C. */ -void +PARROT_INLINE +static void fetch_buf_be_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { ASSERT_ARGS(fetch_buf_be_32) diff --git a/src/packfile/pf_items.c b/src/packfile/pf_items.c index e7a76c4d2b..b1b196f3c4 100644 --- a/src/packfile/pf_items.c +++ b/src/packfile/pf_items.c @@ -33,6 +33,7 @@ for "little endian". */ #include "parrot/parrot.h" +#include "byteorder.h" /* HEADERIZER HFILE: include/parrot/packfile.h */ From 77ec74ce2bac1a0780c5d8a332c766fbc043f6ed Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Tue, 24 Aug 2010 15:33:12 +0000 Subject: [PATCH 090/165] remove now-redundant i386-specific inlining git-svn-id: https://svn.parrot.org/parrot/trunk@48627 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/packfile/pf_items.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/packfile/pf_items.c b/src/packfile/pf_items.c index b1b196f3c4..8e43f09727 100644 --- a/src/packfile/pf_items.c +++ b/src/packfile/pf_items.c @@ -893,16 +893,14 @@ fetch_op_le_4(ARGIN(const unsigned char *b)) unsigned char buf[4]; opcode_t o; } u; -#if PARROT_BIGENDIAN fetch_buf_le_4(u.buf, b); +#if PARROT_BIGENDIAN # if OPCODE_T_SIZE == 8 return (Parrot_Int4)(u.o >> 32); # else return (opcode_t) fetch_iv_be((INTVAL)u.o); # endif #else - /* inlining the effects of the fetch_buf_le_4() call is worth it */ - memcpy(u.buf, b, 4); # if OPCODE_T_SIZE == 8 /* without the cast we would not get a negative int, the vtable indices */ return (Parrot_Int4)(u.o & 0xffffffff); From 29121ec1fa9223d4d43c8977f7b91eb3d9e3b7b9 Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Tue, 24 Aug 2010 15:39:42 +0000 Subject: [PATCH 091/165] fix unoptimized build git-svn-id: https://svn.parrot.org/parrot/trunk@48628 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/packfile/byteorder.h | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/packfile/byteorder.h b/src/packfile/byteorder.h index d10f441fb0..c92c9fb094 100644 --- a/src/packfile/byteorder.h +++ b/src/packfile/byteorder.h @@ -47,7 +47,6 @@ PARROT_CONST_FUNCTION static INTVAL fetch_iv_le(INTVAL w) { - ASSERT_ARGS(fetch_iv_le) #if !PARROT_BIGENDIAN return w; #else @@ -91,7 +90,6 @@ PARROT_CONST_FUNCTION static INTVAL fetch_iv_be(INTVAL w) { - ASSERT_ARGS(fetch_iv_be) #if PARROT_BIGENDIAN return w; #else @@ -133,7 +131,6 @@ PARROT_CONST_FUNCTION static opcode_t fetch_op_be(opcode_t w) { - ASSERT_ARGS(fetch_op_be) #if PARROT_BIGENDIAN return w; #else @@ -172,7 +169,6 @@ PARROT_CONST_FUNCTION static opcode_t fetch_op_le(opcode_t w) { - ASSERT_ARGS(fetch_op_le) #if !PARROT_BIGENDIAN return w; #else @@ -221,7 +217,6 @@ PARROT_INLINE static void fetch_buf_be_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_be_4) #if PARROT_BIGENDIAN memcpy(rb, b, 4); #else @@ -246,7 +241,6 @@ PARROT_INLINE static void fetch_buf_le_4(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_le_4) #if !PARROT_BIGENDIAN memcpy(rb, b, 4); #else @@ -271,7 +265,6 @@ PARROT_INLINE static void fetch_buf_be_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_be_8) #if PARROT_BIGENDIAN memcpy(rb, b, 8); #else @@ -300,7 +293,6 @@ PARROT_INLINE static void fetch_buf_le_8(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_le_8) #if !PARROT_BIGENDIAN memcpy(rb, b, 8); #else @@ -329,7 +321,6 @@ PARROT_INLINE static void fetch_buf_le_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_le_12) #if !PARROT_BIGENDIAN memcpy(rb, b, 12); #else @@ -362,7 +353,6 @@ PARROT_INLINE static void fetch_buf_be_12(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_be_12) #if PARROT_BIGENDIAN memcpy(rb, b, 12); #else @@ -395,7 +385,6 @@ PARROT_INLINE static void fetch_buf_le_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_le_16) #if !PARROT_BIGENDIAN memcpy(rb, b, 16); #else @@ -432,7 +421,6 @@ PARROT_INLINE static void fetch_buf_be_16(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_be_16) #if PARROT_BIGENDIAN memcpy(rb, b, 16); #else @@ -469,7 +457,6 @@ PARROT_INLINE static void fetch_buf_le_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_le_32) #if !PARROT_BIGENDIAN memcpy(rb, b, 32); #else @@ -522,7 +509,6 @@ PARROT_INLINE static void fetch_buf_be_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) { - ASSERT_ARGS(fetch_buf_be_32) #if PARROT_BIGENDIAN memcpy(rb, b, 32); #else From 1e1a3e44ee355aed67f20808f4dd44f00e26ab10 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Tue, 24 Aug 2010 15:51:44 +0000 Subject: [PATCH 092/165] add svn properties git-svn-id: https://svn.parrot.org/parrot/trunk@48629 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/packfile/byteorder.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packfile/byteorder.h b/src/packfile/byteorder.h index c92c9fb094..673d20aa58 100644 --- a/src/packfile/byteorder.h +++ b/src/packfile/byteorder.h @@ -1,6 +1,6 @@ /* Copyright (C) 2001-2009, Parrot Foundation. -$Id: byteorder.c 45297 2010-03-30 01:33:45Z coke $ +$Id$ =head1 NAME From a90f64d50efb1823950b8441482f022b2ae947e4 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Tue, 24 Aug 2010 16:13:32 +0000 Subject: [PATCH 093/165] add PARROT_BYTEORDER_H_GUARD git-svn-id: https://svn.parrot.org/parrot/trunk@48630 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/packfile/byteorder.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/packfile/byteorder.h b/src/packfile/byteorder.h index 673d20aa58..b8c141f6be 100644 --- a/src/packfile/byteorder.h +++ b/src/packfile/byteorder.h @@ -25,6 +25,9 @@ Configure will have checked for supported word sizes. */ +#ifndef PARROT_BYTEORDER_H_GUARD +#define PARROT_BYTEORDER_H_GUARD + #include "parrot/parrot.h" /* HEADERIZER HFILE: none */ @@ -547,6 +550,8 @@ fetch_buf_be_32(ARGOUT(unsigned char *rb), ARGIN(const unsigned char *b)) #endif } +#endif /* PARROT_BYTEORDER_H_GUARD */ + /* =back From 70da3992f6c0352ff75a9d62ffdc0bb5856dfb35 Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Tue, 24 Aug 2010 16:22:28 +0000 Subject: [PATCH 094/165] remove less than sane "sanity" check from LexInfo check breaks encapsulation on Hash and prevents improvements to Hash freeze/thaw git-svn-id: https://svn.parrot.org/parrot/trunk@48631 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/lexinfo.pmc | 38 +------------------------------------- t/pmc/lexinfo.t | 14 +------------- 2 files changed, 2 insertions(+), 50 deletions(-) diff --git a/src/pmc/lexinfo.pmc b/src/pmc/lexinfo.pmc index 8f131c943b..2e3cc09426 100644 --- a/src/pmc/lexinfo.pmc +++ b/src/pmc/lexinfo.pmc @@ -56,8 +56,7 @@ subroutine. } VTABLE void init() { - Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION, - "Cannot create a LexInfo PMC without an initializer"); + SELF.init_pmc(PMCNULL); } VTABLE void init_pmc(PMC *sub) { @@ -110,41 +109,6 @@ C, which gets an array of the names of the symbols in this lexpad. Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION, "Unknown introspection value '%S'", what); } - -/* - -=item C - -=item C - -=item C - -Freeze/thaw interface used during freeze/thaw of the Sub PMC. -The implementation of the Hash PMC is called. - -=cut - -*/ - - - VTABLE void thaw(PMC *info) { - const INTVAL elems = VTABLE_shift_integer(INTERP, info); - const INTVAL k_type = VTABLE_shift_integer(INTERP, info); - const INTVAL v_type = VTABLE_shift_integer(INTERP, info); - Hash *hash; - - UNUSED(k_type); - UNUSED(v_type); - - PARROT_ASSERT(v_type == enum_hash_int); - /* TODO make a better interface for hash creation - * TODO create hash with needed types in the first place - */ - - SELF.init_pmc(NULL); - hash = (Hash *)SELF.get_pointer(); - hash->entries = elems; - } } diff --git a/t/pmc/lexinfo.t b/t/pmc/lexinfo.t index a715b3a9f1..4b7fdfce6e 100644 --- a/t/pmc/lexinfo.t +++ b/t/pmc/lexinfo.t @@ -19,23 +19,11 @@ Tests the LexInfo PMC. .sub main :main .include 'test_more.pir' - plan(4) + plan(3) - new_test() inspect_test() .end -.sub new_test - push_eh eh - $P0 = new ['LexInfo'] - pop_eh - ok(0, "shouldn't be able to create a LexInfo without an initializer") - goto end -eh: - ok(1, "can't create a LexInfo without an initializer") -end: -.end - .sub inspect_test .lex "$a", $P0 .lex "$b", $P1 From ec7b1ac9b1e71ce8928388ca1e5cee55ea940259 Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Tue, 24 Aug 2010 16:33:45 +0000 Subject: [PATCH 095/165] remove unneeded visit vtable from Hash git-svn-id: https://svn.parrot.org/parrot/trunk@48632 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/hash.h | 37 +++++++++++++-------- src/hash.c | 75 +++++-------------------------------------- src/pmc/hash.pmc | 19 +++-------- 3 files changed, 35 insertions(+), 96 deletions(-) diff --git a/include/parrot/hash.h b/include/parrot/hash.h index dd48720ca4..30661b1aa1 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -206,16 +206,6 @@ PARROT_PURE_FUNCTION INTVAL parrot_hash_size(SHIM_INTERP, ARGIN(const Hash *hash)) __attribute__nonnull__(2); -PARROT_EXPORT -void parrot_hash_visit(PARROT_INTERP, - ARGMOD(Hash *hash), - ARGMOD(void *pinfo)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*hash) - FUNC_MODIFIES(*pinfo); - PARROT_EXPORT void parrot_mark_hash(PARROT_INTERP, ARGMOD(Hash *hash)) __attribute__nonnull__(1) @@ -412,6 +402,21 @@ void parrot_hash_clone_prunable(PARROT_INTERP, __attribute__nonnull__(3) FUNC_MODIFIES(*dest); +void Parrot_hash_freeze(PARROT_INTERP, + ARGIN(const Hash *hash), + ARGMOD(PMC *info)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*info); + +void Parrot_hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*hash) + FUNC_MODIFIES(*info); + PARROT_WARN_UNUSED_RESULT PARROT_PURE_FUNCTION int PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b)) @@ -462,10 +467,6 @@ int STRING_compare_distinct_cs_enc(PARROT_INTERP, , PARROT_ASSERT_ARG(hash)) #define ASSERT_ARGS_parrot_hash_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(hash)) -#define ASSERT_ARGS_parrot_hash_visit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(hash) \ - , PARROT_ASSERT_ARG(pinfo)) #define ASSERT_ARGS_parrot_mark_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash)) @@ -552,6 +553,14 @@ int STRING_compare_distinct_cs_enc(PARROT_INTERP, PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash) \ , PARROT_ASSERT_ARG(dest)) +#define ASSERT_ARGS_Parrot_hash_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(hash) \ + , PARROT_ASSERT_ARG(info)) +#define ASSERT_ARGS_Parrot_hash_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(hash) \ + , PARROT_ASSERT_ARG(info)) #define ASSERT_ARGS_PMC_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(a) \ diff --git a/src/hash.c b/src/hash.c index aecf3da54e..495e752de7 100644 --- a/src/hash.c +++ b/src/hash.c @@ -49,21 +49,6 @@ static void expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) __attribute__nonnull__(2) FUNC_MODIFIES(*hash); -static void hash_freeze(PARROT_INTERP, - ARGIN(const Hash *hash), - ARGMOD(PMC *info)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*info); - -static void hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*hash) - FUNC_MODIFIES(*info); - PARROT_WARN_UNUSED_RESULT PARROT_PURE_FUNCTION static size_t key_hash_cstring(SHIM_INTERP, @@ -102,14 +87,6 @@ static int pointer_compare(SHIM_INTERP, #define ASSERT_ARGS_expand_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash)) -#define ASSERT_ARGS_hash_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(hash) \ - , PARROT_ASSERT_ARG(info)) -#define ASSERT_ARGS_hash_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(hash) \ - , PARROT_ASSERT_ARG(info)) #define ASSERT_ARGS_key_hash_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(value)) #define ASSERT_ARGS_key_hash_pointer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -514,7 +491,7 @@ parrot_mark_hash_both(PARROT_INTERP, ARGIN(Hash *hash)) /* -=item C +=item C Visits the contents of a hash during freeze/thaw. @@ -524,12 +501,11 @@ C is the visit info, (see include/parrot/pmc_freeze.h>). */ -static void -hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info)) +void +Parrot_hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info)) { - ASSERT_ARGS(hash_thaw) + ASSERT_ARGS(Parrot_hash_thaw) - /* during thaw, info->extra is the key/value count */ const size_t num_entries = (size_t) hash->entries; const Hash_key_type key_type = hash->key_type; const PARROT_DATA_TYPE entry_type = hash->entry_type; @@ -607,23 +583,21 @@ hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info)) /* -=item C +=item C Freezes hash into a string. Takes an interpreter, a pointer to the hash, and a pointer to the structure containing the string start location. -Use by parrot_hash_visit. - =cut */ -static void -hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info)) +void +Parrot_hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info)) { - ASSERT_ARGS(hash_freeze) + ASSERT_ARGS(Parrot_hash_freeze) const Hash_key_type key_type = hash->key_type; const PARROT_DATA_TYPE entry_type = hash->entry_type; const size_t entries = hash->entries; @@ -663,39 +637,6 @@ hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info)) } -/* - -=item C - -Freezes or thaws a hash as specified. Takes an interpreter, a pointer to the -hash, and a pointer to the structure identifying what to do and the location of -the string. - -=cut - -*/ - -PARROT_EXPORT -void -parrot_hash_visit(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(void *pinfo)) -{ - ASSERT_ARGS(parrot_hash_visit) - PMC* const info = (PMC*) pinfo; - - switch (VTABLE_get_integer(interp, info)) { - case VISIT_THAW_NORMAL: - hash_thaw(interp, hash, info); - break; - case VISIT_FREEZE_NORMAL: - hash_freeze(interp, hash, info); - break; - default: - Parrot_ex_throw_from_c_args(interp, NULL, 1, - "unimplemented visit mode"); - } -} - - /* =item C diff --git a/src/pmc/hash.pmc b/src/pmc/hash.pmc index 05d57c68f9..63862a7e38 100644 --- a/src/pmc/hash.pmc +++ b/src/pmc/hash.pmc @@ -1154,21 +1154,6 @@ Check if two hashes hold the same keys and values. /* -=item C - -Used during archiving to visit the elements in the hash. - -=cut - -*/ - - VTABLE void visit(PMC *info) { - parrot_hash_visit(INTERP, (Hash *)SELF.get_pointer(), info); - SUPER(info); - } - -/* - =item C Used to archive the hash. @@ -1184,6 +1169,8 @@ Used to archive the hash. VTABLE_push_integer(INTERP, info, VTABLE_elements(INTERP, SELF)); VTABLE_push_integer(INTERP, info, (INTVAL)hash->key_type); VTABLE_push_integer(INTERP, info, hash->entry_type); + + Parrot_hash_freeze(INTERP, hash, info); } /* @@ -1238,6 +1225,8 @@ Used to unarchive the hash. PARROT_ASSERT(hash->entry_type == v_type); hash->entries = elems; + + Parrot_hash_thaw(INTERP, hash, info); } } } From bd2fbeaf00b237d7688599ad8642dec9dc1203bd Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Tue, 24 Aug 2010 16:52:18 +0000 Subject: [PATCH 096/165] consolidate hash freeze/thaw in src/hash.c git-svn-id: https://svn.parrot.org/parrot/trunk@48633 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/hash.h | 8 +++---- src/hash.c | 53 +++++++++++++++++++++++++++++++++++-------- src/pmc/hash.pmc | 52 ++---------------------------------------- 3 files changed, 50 insertions(+), 63 deletions(-) diff --git a/include/parrot/hash.h b/include/parrot/hash.h index 30661b1aa1..90a4f03463 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -410,11 +410,12 @@ void Parrot_hash_freeze(PARROT_INTERP, __attribute__nonnull__(3) FUNC_MODIFIES(*info); -void Parrot_hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info)) +PARROT_CANNOT_RETURN_NULL +PARROT_WARN_UNUSED_RESULT +PARROT_MALLOC +Hash * Parrot_hash_thaw(PARROT_INTERP, ARGMOD(PMC *info)) __attribute__nonnull__(1) __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*hash) FUNC_MODIFIES(*info); PARROT_WARN_UNUSED_RESULT @@ -559,7 +560,6 @@ int STRING_compare_distinct_cs_enc(PARROT_INTERP, , PARROT_ASSERT_ARG(info)) #define ASSERT_ARGS_Parrot_hash_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(hash) \ , PARROT_ASSERT_ARG(info)) #define ASSERT_ARGS_PMC_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ diff --git a/src/hash.c b/src/hash.c index 495e752de7..e72536d13c 100644 --- a/src/hash.c +++ b/src/hash.c @@ -491,7 +491,7 @@ parrot_mark_hash_both(PARROT_INTERP, ARGIN(Hash *hash)) /* -=item C +=item C Visits the contents of a hash during freeze/thaw. @@ -501,17 +501,46 @@ C is the visit info, (see include/parrot/pmc_freeze.h>). */ -void -Parrot_hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info)) +PARROT_CANNOT_RETURN_NULL +PARROT_WARN_UNUSED_RESULT +PARROT_MALLOC +Hash * +Parrot_hash_thaw(PARROT_INTERP, ARGMOD(PMC *info)) { ASSERT_ARGS(Parrot_hash_thaw) - const size_t num_entries = (size_t) hash->entries; - const Hash_key_type key_type = hash->key_type; - const PARROT_DATA_TYPE entry_type = hash->entry_type; - size_t entry_index; + const size_t num_entries = VTABLE_shift_integer(interp, info); + const Hash_key_type key_type = VTABLE_shift_integer(interp, info); + const PARROT_DATA_TYPE entry_type = VTABLE_shift_integer(interp, info); + size_t entry_index; + Hash *hash; + + { + hash_comp_fn cmp_fn; + hash_hash_key_fn key_fn; + + switch (key_type) { + case Hash_key_type_int: + key_fn = (hash_hash_key_fn)key_hash_int; + cmp_fn = (hash_comp_fn)int_compare; + break; + case Hash_key_type_STRING: + key_fn = (hash_hash_key_fn)key_hash_STRING; + cmp_fn = (hash_comp_fn)STRING_compare; + break; + case Hash_key_type_PMC: + key_fn = (hash_hash_key_fn)key_hash_PMC; + cmp_fn = (hash_comp_fn)PMC_compare; + break; + default: + Parrot_ex_throw_from_c_args(interp, NULL, 1, + "unimplemented key type"); + break; + } + + hash = parrot_create_hash(interp, entry_type, key_type, cmp_fn, key_fn); - hash->entries = 0; + } /* special case for great speed */ if (key_type == Hash_key_type_STRING @@ -522,7 +551,7 @@ Parrot_hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info)) parrot_hash_put(interp, hash, (void *)key, (void *)i); } - return; + return hash; } for (entry_index = 0; entry_index < num_entries; ++entry_index) { @@ -578,6 +607,8 @@ Parrot_hash_thaw(PARROT_INTERP, ARGMOD(Hash *hash), ARGMOD(PMC *info)) break; } } + + return hash; } @@ -603,6 +634,10 @@ Parrot_hash_freeze(PARROT_INTERP, ARGIN(const Hash *hash), ARGMOD(PMC *info)) const size_t entries = hash->entries; size_t i; + VTABLE_push_integer(interp, info, entries); + VTABLE_push_integer(interp, info, key_type); + VTABLE_push_integer(interp, info, entry_type); + parrot_hash_iterate(hash, switch (key_type) { case Hash_key_type_int: diff --git a/src/pmc/hash.pmc b/src/pmc/hash.pmc index 63862a7e38..bfdb4f076d 100644 --- a/src/pmc/hash.pmc +++ b/src/pmc/hash.pmc @@ -1163,14 +1163,8 @@ Used to archive the hash. */ VTABLE void freeze(PMC *info) { - Hash * const hash = (Hash *)SELF.get_pointer(); - SUPER(info); - VTABLE_push_integer(INTERP, info, VTABLE_elements(INTERP, SELF)); - VTABLE_push_integer(INTERP, info, (INTVAL)hash->key_type); - VTABLE_push_integer(INTERP, info, hash->entry_type); - - Parrot_hash_freeze(INTERP, hash, info); + Parrot_hash_freeze(INTERP, SELF.get_pointer(), info); } /* @@ -1185,49 +1179,7 @@ Used to unarchive the hash. VTABLE void thaw(PMC *info) { SUPER(info); - - { - const INTVAL elems = VTABLE_shift_integer(INTERP, info); - const INTVAL k_type = VTABLE_shift_integer(INTERP, info); - const INTVAL v_type = VTABLE_shift_integer(INTERP, info); - Hash *hash; - - if (k_type != Hash_key_type_STRING || v_type != enum_hash_pmc) { - hash_comp_fn cmp_fn; - hash_hash_key_fn key_fn; - - switch (k_type) { - case Hash_key_type_int: - key_fn = (hash_hash_key_fn)key_hash_int; - cmp_fn = (hash_comp_fn)int_compare; - break; - case Hash_key_type_STRING: - key_fn = (hash_hash_key_fn)key_hash_STRING; - cmp_fn = (hash_comp_fn)STRING_compare; - break; - case Hash_key_type_PMC: - key_fn = (hash_hash_key_fn)key_hash_PMC; - cmp_fn = (hash_comp_fn)PMC_compare; - break; - default: - Parrot_ex_throw_from_c_args(INTERP, NULL, 1, - "unimplemented key type"); - break; - } - - SELF.set_pointer(parrot_create_hash(INTERP, (PARROT_DATA_TYPE)v_type, - (Hash_key_type)k_type, cmp_fn, key_fn)); - } - - hash = (Hash *)SELF.get_pointer(); - - PARROT_ASSERT((INTVAL)hash->key_type == k_type); - PARROT_ASSERT(hash->entry_type == v_type); - - hash->entries = elems; - - Parrot_hash_thaw(INTERP, hash, info); - } + SELF.set_pointer(Parrot_hash_thaw(INTERP, info)); } } From d691e01599c056007f2cbec245c90f4ddb1ebf87 Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Tue, 24 Aug 2010 17:14:54 +0000 Subject: [PATCH 097/165] inline undocumented, used-once static functions git-svn-id: https://svn.parrot.org/parrot/trunk@48634 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- compilers/imcc/imcparser.c | 630 +++++++++++++++++++------------------ compilers/imcc/imcparser.h | 13 +- src/pmc/imageio.pmc | 228 +++++--------- src/pmc/imageiosize.pmc | 83 ++--- 4 files changed, 433 insertions(+), 521 deletions(-) diff --git a/compilers/imcc/imcparser.c b/compilers/imcc/imcparser.c index 0becea86a3..a256d3d0b8 100644 --- a/compilers/imcc/imcparser.c +++ b/compilers/imcc/imcparser.c @@ -9,13 +9,12 @@ */ /* HEADERIZER HFILE: none */ /* HEADERIZER STOP */ - -/* A Bison parser, made by GNU Bison 2.4.1. */ +/* A Bison parser, made by GNU Bison 2.4.2. */ /* Skeleton implementation for Bison's Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software + Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -57,7 +56,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.4.1" +#define YYBISON_VERSION "2.4.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -1151,7 +1150,7 @@ do_loadlib(PARROT_INTERP, ARGIN(const char *lib)) /* Line 189 of yacc.c */ -#line 1144 "compilers/imcc/imcparser.c" +#line 1143 "compilers/imcc/imcparser.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -1435,7 +1434,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 1428 "compilers/imcc/imcparser.c" +#line 1427 "compilers/imcc/imcparser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -1447,7 +1446,7 @@ typedef union YYSTYPE /* Line 264 of yacc.c */ -#line 1440 "compilers/imcc/imcparser.c" +#line 1439 "compilers/imcc/imcparser.c" #ifdef short # undef short @@ -1497,7 +1496,7 @@ typedef short int yytype_int16; #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ -# if YYENABLE_NLS +# if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) @@ -2444,9 +2443,18 @@ static const yytype_uint16 yystos[] = /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ #define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif #define YYRECOVERING() (!!yyerrstatus) @@ -2503,7 +2511,7 @@ while (YYID (0)) we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT -# if YYLTYPE_IS_TRIVIAL +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ @@ -3254,28 +3262,28 @@ YYSTYPE yylval; { case 2: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1166 "compilers/imcc/imcc.y" { if (yynerrs) YYABORT; (yyval.i) = 0; } break; case 5: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1175 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(1) - (1)].i); } break; case 6: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1176 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(1) - (1)].i); } break; case 7: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1178 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(1) - (1)].i); @@ -3286,7 +3294,7 @@ YYSTYPE yylval; case 8: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1184 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(1) - (1)].i); @@ -3297,42 +3305,42 @@ YYSTYPE yylval; case 9: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1189 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 10: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1190 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 11: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1191 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 12: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1192 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 13: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1196 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 14: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1198 "compilers/imcc/imcc.y" { (yyval.i) = 0; @@ -3343,7 +3351,7 @@ YYSTYPE yylval; case 15: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1207 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s)); @@ -3354,7 +3362,7 @@ YYSTYPE yylval; case 16: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1213 "compilers/imcc/imcc.y" { /* set_filename() frees the STRINGC */ @@ -3364,7 +3372,7 @@ YYSTYPE yylval; case 17: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1221 "compilers/imcc/imcc.y" { /* We'll want to store an entry while emitting instructions, so just @@ -3377,7 +3385,7 @@ YYSTYPE yylval; case 18: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1233 "compilers/imcc/imcc.y" { STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL); @@ -3392,14 +3400,14 @@ YYSTYPE yylval; case 19: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1245 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->is_def = 1; } break; case 20: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1246 "compilers/imcc/imcc.y" { mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1); @@ -3410,14 +3418,14 @@ YYSTYPE yylval; case 21: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1254 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->is_def = 1; } break; case 22: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1255 "compilers/imcc/imcc.y" { (yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s)); @@ -3428,14 +3436,14 @@ YYSTYPE yylval; case 23: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1261 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->is_def = 1; } break; case 24: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1262 "compilers/imcc/imcc.y" { (yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s)); @@ -3447,49 +3455,49 @@ YYSTYPE yylval; case 29: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1280 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 30: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1281 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 31: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1282 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 32: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1283 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 33: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1284 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(1) - (1)].i); } break; case 36: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1289 "compilers/imcc/imcc.y" { clear_state(interp); } break; case 37: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1291 "compilers/imcc/imcc.y" { (yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit, @@ -3501,7 +3509,7 @@ YYSTYPE yylval; case 38: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1298 "compilers/imcc/imcc.y" { imc_close_unit(interp, IMCC_INFO(interp)->cur_unit); @@ -3511,7 +3519,7 @@ YYSTYPE yylval; case 39: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1303 "compilers/imcc/imcc.y" { (yyval.i) = iSUBROUTINE(interp, @@ -3524,7 +3532,7 @@ YYSTYPE yylval; case 40: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1311 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); @@ -3533,7 +3541,7 @@ YYSTYPE yylval; case 41: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1315 "compilers/imcc/imcc.y" { char *name = mem_sys_strdup((yyvsp[(2) - (4)].s) + 1); @@ -3551,21 +3559,21 @@ YYSTYPE yylval; case 42: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1327 "compilers/imcc/imcc.y" { (yyval.i) = 0;} break; case 44: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1335 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); } break; case 45: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1338 "compilers/imcc/imcc.y" { /* if (optimizer_level & OPT_PASM) @@ -3578,7 +3586,7 @@ YYSTYPE yylval; case 48: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1354 "compilers/imcc/imcc.y" { int re_open = 0; @@ -3595,21 +3603,21 @@ YYSTYPE yylval; case 49: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1368 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(2) - (3)].sr); } break; case 50: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1369 "compilers/imcc/imcc.y" { (yyval.sr) = NULL; } break; case 51: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1373 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->nkeys = 0; @@ -3618,7 +3626,7 @@ YYSTYPE yylval; case 52: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1377 "compilers/imcc/imcc.y" { (yyval.sr) = link_keys(interp, @@ -3629,14 +3637,14 @@ YYSTYPE yylval; case 53: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1385 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); } break; case 54: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1387 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr); @@ -3646,7 +3654,7 @@ YYSTYPE yylval; case 55: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1395 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB); @@ -3655,7 +3663,7 @@ YYSTYPE yylval; case 56: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1399 "compilers/imcc/imcc.y" { iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr)); @@ -3664,7 +3672,7 @@ YYSTYPE yylval; case 57: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1403 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t); @@ -3677,28 +3685,28 @@ YYSTYPE yylval; case 58: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1411 "compilers/imcc/imcc.y" { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; } break; case 59: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1415 "compilers/imcc/imcc.y" { (yyval.sr) = 0; } break; case 60: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1416 "compilers/imcc/imcc.y" { (yyval.sr) = 0; } break; case 61: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1418 "compilers/imcc/imcc.y" { if (IMCC_INFO(interp)->adv_named_id) { @@ -3713,21 +3721,21 @@ YYSTYPE yylval; case 62: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1430 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->is_def = 1; } break; case 63: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1430 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; } break; case 64: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1435 "compilers/imcc/imcc.y" { if ((yyvsp[(3) - (3)].t) & VT_OPT_FLAG && (yyvsp[(1) - (3)].t) != 'I') { @@ -3752,14 +3760,14 @@ YYSTYPE yylval; case 65: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1459 "compilers/imcc/imcc.y" { (yyval.t) = 0; } break; case 66: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1464 "compilers/imcc/imcc.y" { (yyval.t) = 0; @@ -3770,7 +3778,7 @@ YYSTYPE yylval; case 67: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1470 "compilers/imcc/imcc.y" { (yyval.t) = 0; @@ -3781,7 +3789,7 @@ YYSTYPE yylval; case 68: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1479 "compilers/imcc/imcc.y" { (yyval.t) = P_VTABLE; @@ -3792,7 +3800,7 @@ YYSTYPE yylval; case 69: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1485 "compilers/imcc/imcc.y" { (yyval.t) = P_VTABLE; @@ -3803,7 +3811,7 @@ YYSTYPE yylval; case 70: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1494 "compilers/imcc/imcc.y" { (yyval.t) = P_METHOD; @@ -3814,7 +3822,7 @@ YYSTYPE yylval; case 71: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1500 "compilers/imcc/imcc.y" { (yyval.t) = P_METHOD; @@ -3825,7 +3833,7 @@ YYSTYPE yylval; case 72: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1509 "compilers/imcc/imcc.y" { (yyval.t) = P_NSENTRY; @@ -3836,7 +3844,7 @@ YYSTYPE yylval; case 73: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1515 "compilers/imcc/imcc.y" { (yyval.t) = P_NSENTRY; @@ -3847,7 +3855,7 @@ YYSTYPE yylval; case 74: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1524 "compilers/imcc/imcc.y" { (yyval.t) = 0; @@ -3857,7 +3865,7 @@ YYSTYPE yylval; case 75: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1532 "compilers/imcc/imcc.y" { (yyval.t) = 0; @@ -3867,7 +3875,7 @@ YYSTYPE yylval; case 76: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1537 "compilers/imcc/imcc.y" { (yyval.t) = 0; @@ -3879,7 +3887,7 @@ YYSTYPE yylval; case 77: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1547 "compilers/imcc/imcc.y" { add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL); @@ -3888,7 +3896,7 @@ YYSTYPE yylval; case 78: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1551 "compilers/imcc/imcc.y" { (yyval.t) = 0; @@ -3898,7 +3906,7 @@ YYSTYPE yylval; case 79: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1556 "compilers/imcc/imcc.y" { (yyval.t) = 0; @@ -3908,35 +3916,35 @@ YYSTYPE yylval; case 80: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1563 "compilers/imcc/imcc.y" { (yyval.sr) = mk_const(interp, "INTVAL", 'S'); } break; case 81: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1564 "compilers/imcc/imcc.y" { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); } break; case 82: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1565 "compilers/imcc/imcc.y" { (yyval.sr) = mk_const(interp, "PMC", 'S'); } break; case 83: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1566 "compilers/imcc/imcc.y" { (yyval.sr) = mk_const(interp, "STRING", 'S'); } break; case 84: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1568 "compilers/imcc/imcc.y" { SymReg *r; @@ -3952,7 +3960,7 @@ YYSTYPE yylval; case 85: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1579 "compilers/imcc/imcc.y" { SymReg *r; @@ -3968,14 +3976,14 @@ YYSTYPE yylval; case 86: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1589 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(2) - (3)].sr); } break; case 89: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1599 "compilers/imcc/imcc.y" { char name[128]; @@ -4002,112 +4010,112 @@ YYSTYPE yylval; case 90: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1625 "compilers/imcc/imcc.y" { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; } break; case 91: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1629 "compilers/imcc/imcc.y" { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; } break; case 92: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1630 "compilers/imcc/imcc.y" { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; } break; case 93: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1634 "compilers/imcc/imcc.y" { (yyval.i) = NULL; } break; case 94: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1635 "compilers/imcc/imcc.y" { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); } break; case 95: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1639 "compilers/imcc/imcc.y" { (yyval.t) = 0; } break; case 97: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1644 "compilers/imcc/imcc.y" { (yyval.t) = (yyvsp[(1) - (1)].t); } break; case 98: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1645 "compilers/imcc/imcc.y" { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); } break; case 99: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1649 "compilers/imcc/imcc.y" { (yyval.t) = P_LOAD; } break; case 100: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1650 "compilers/imcc/imcc.y" { (yyval.t) = P_INIT; } break; case 101: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1651 "compilers/imcc/imcc.y" { (yyval.t) = P_MAIN; } break; case 102: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1652 "compilers/imcc/imcc.y" { (yyval.t) = P_IMMEDIATE; } break; case 103: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1653 "compilers/imcc/imcc.y" { (yyval.t) = P_POSTCOMP; } break; case 104: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1654 "compilers/imcc/imcc.y" { (yyval.t) = P_ANON; } break; case 105: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1655 "compilers/imcc/imcc.y" { (yyval.t) = P_NEED_LEX; } break; case 113: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1667 "compilers/imcc/imcc.y" { add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr)); @@ -4117,7 +4125,7 @@ YYSTYPE yylval; case 114: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1672 "compilers/imcc/imcc.y" { add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); @@ -4126,7 +4134,7 @@ YYSTYPE yylval; case 115: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1676 "compilers/imcc/imcc.y" { add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); @@ -4135,7 +4143,7 @@ YYSTYPE yylval; case 116: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1680 "compilers/imcc/imcc.y" { add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); @@ -4144,7 +4152,7 @@ YYSTYPE yylval; case 117: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1684 "compilers/imcc/imcc.y" { add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S')); @@ -4153,7 +4161,7 @@ YYSTYPE yylval; case 118: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1688 "compilers/imcc/imcc.y" { add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr)); @@ -4163,7 +4171,7 @@ YYSTYPE yylval; case 119: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1693 "compilers/imcc/imcc.y" { add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S')); @@ -4173,14 +4181,14 @@ YYSTYPE yylval; case 120: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1701 "compilers/imcc/imcc.y" { (yyval.sr) = 0; } break; case 121: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1702 "compilers/imcc/imcc.y" { if (IMCC_INFO(interp)->adv_named_id) { @@ -4195,21 +4203,21 @@ YYSTYPE yylval; case 122: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1714 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(2) - (2)].sr); } break; case 123: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1719 "compilers/imcc/imcc.y" { (yyval.sr) = 0; } break; case 124: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1721 "compilers/imcc/imcc.y" { if ((yyvsp[(2) - (3)].sr)) @@ -4219,21 +4227,21 @@ YYSTYPE yylval; case 125: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1728 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); } break; case 126: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1729 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->is_def = 1; } break; case 127: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1730 "compilers/imcc/imcc.y" { IdList * const l = (yyvsp[(4) - (4)].idlist); @@ -4247,91 +4255,91 @@ YYSTYPE yylval; case 128: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1741 "compilers/imcc/imcc.y" { (yyval.t) = 0; } break; case 129: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1742 "compilers/imcc/imcc.y" { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); } break; case 130: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1746 "compilers/imcc/imcc.y" { (yyval.t) = VT_FLAT; } break; case 131: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1747 "compilers/imcc/imcc.y" { (yyval.t) = VT_OPTIONAL; } break; case 132: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1748 "compilers/imcc/imcc.y" { (yyval.t) = VT_OPT_FLAG; } break; case 133: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1749 "compilers/imcc/imcc.y" { (yyval.t) = VT_NAMED; } break; case 134: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1750 "compilers/imcc/imcc.y" { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = VT_NAMED; mem_sys_free((yyvsp[(3) - (4)].s)); } break; case 135: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1751 "compilers/imcc/imcc.y" { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = VT_NAMED; mem_sys_free((yyvsp[(3) - (4)].s)); } break; case 136: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1752 "compilers/imcc/imcc.y" { (yyval.t) = 0; } break; case 137: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1753 "compilers/imcc/imcc.y" { (yyval.t) = VT_CALL_SIG; } break; case 138: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1758 "compilers/imcc/imcc.y" { begin_return_or_yield(interp, 0); } break; case 139: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1760 "compilers/imcc/imcc.y" { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; } break; case 140: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1762 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->asm_state = AsmDefault; @@ -4341,28 +4349,28 @@ YYSTYPE yylval; case 141: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1769 "compilers/imcc/imcc.y" { begin_return_or_yield(interp, 1); } break; case 142: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1771 "compilers/imcc/imcc.y" { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; } break; case 143: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1775 "compilers/imcc/imcc.y" { (yyval.sr) = 0; } break; case 144: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1777 "compilers/imcc/imcc.y" { if ((yyvsp[(1) - (2)].sr)) @@ -4372,7 +4380,7 @@ YYSTYPE yylval; case 145: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1782 "compilers/imcc/imcc.y" { if ((yyvsp[(2) - (3)].sr)) @@ -4382,14 +4390,14 @@ YYSTYPE yylval; case 146: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1789 "compilers/imcc/imcc.y" { (yyval.sr) = 0; } break; case 147: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1791 "compilers/imcc/imcc.y" { if ((yyvsp[(1) - (2)].sr)) @@ -4399,7 +4407,7 @@ YYSTYPE yylval; case 148: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1796 "compilers/imcc/imcc.y" { if ((yyvsp[(2) - (3)].sr)) @@ -4409,21 +4417,21 @@ YYSTYPE yylval; case 149: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1803 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); } break; case 150: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1807 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); } break; case 151: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1812 "compilers/imcc/imcc.y" { if (IMCC_INFO(interp)->asm_state == AsmDefault) @@ -4433,7 +4441,7 @@ YYSTYPE yylval; case 152: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1817 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->asm_state = AsmDefault; @@ -4443,28 +4451,28 @@ YYSTYPE yylval; case 153: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1824 "compilers/imcc/imcc.y" { (yyval.t) = 0; } break; case 154: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1825 "compilers/imcc/imcc.y" { (yyval.t) = 1; } break; case 155: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1829 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 156: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1831 "compilers/imcc/imcc.y" { if (IMCC_INFO(interp)->adv_named_id) { @@ -4479,7 +4487,7 @@ YYSTYPE yylval; case 157: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1841 "compilers/imcc/imcc.y" { SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S'); @@ -4489,7 +4497,7 @@ YYSTYPE yylval; case 158: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1846 "compilers/imcc/imcc.y" { if (IMCC_INFO(interp)->adv_named_id) { @@ -4504,7 +4512,7 @@ YYSTYPE yylval; case 159: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1856 "compilers/imcc/imcc.y" { SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S'); @@ -4514,63 +4522,63 @@ YYSTYPE yylval; case 162: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1877 "compilers/imcc/imcc.y" { clear_state(interp); } break; case 163: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1882 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(2) - (2)].i); } break; case 164: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1883 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 165: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1884 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 166: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1885 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 167: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1886 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 168: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1887 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(1) - (1)].i); } break; case 169: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1891 "compilers/imcc/imcc.y" { (yyval.i) = NULL; } break; case 173: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1902 "compilers/imcc/imcc.y" { Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s))); @@ -4581,14 +4589,14 @@ YYSTYPE yylval; case 174: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1912 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(2) - (3)].i); } break; case 175: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1914 "compilers/imcc/imcc.y" { if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) { @@ -4601,7 +4609,7 @@ YYSTYPE yylval; case 176: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1925 "compilers/imcc/imcc.y" { IdList* const l = (yyvsp[(1) - (1)].idlist); @@ -4612,7 +4620,7 @@ YYSTYPE yylval; case 177: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1932 "compilers/imcc/imcc.y" { IdList* const l = (yyvsp[(3) - (3)].idlist); @@ -4623,7 +4631,7 @@ YYSTYPE yylval; case 178: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1941 "compilers/imcc/imcc.y" { IdList* const l = mem_gc_allocate_n_zeroed_typed(interp, 1, IdList); @@ -4634,14 +4642,14 @@ YYSTYPE yylval; case 183: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1957 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->is_def = 1; } break; case 184: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1958 "compilers/imcc/imcc.y" { IdList *l = (yyvsp[(4) - (4)].idlist); @@ -4659,7 +4667,7 @@ YYSTYPE yylval; case 185: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1971 "compilers/imcc/imcc.y" { if ((yyvsp[(4) - (4)].sr)->set != 'P') { @@ -4681,7 +4689,7 @@ YYSTYPE yylval; case 186: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 1988 "compilers/imcc/imcc.y" { if ((yyvsp[(4) - (4)].sr)->set != 'P') { @@ -4699,14 +4707,14 @@ YYSTYPE yylval; case 187: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2000 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->is_def = 1; } break; case 188: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2001 "compilers/imcc/imcc.y" { mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0); @@ -4717,14 +4725,14 @@ YYSTYPE yylval; case 190: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2008 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->is_def = 1; } break; case 191: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2009 "compilers/imcc/imcc.y" { mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1); @@ -4735,7 +4743,7 @@ YYSTYPE yylval; case 192: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2015 "compilers/imcc/imcc.y" { (yyval.i) = NULL; @@ -4746,7 +4754,7 @@ YYSTYPE yylval; case 193: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2021 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr)); @@ -4755,7 +4763,7 @@ YYSTYPE yylval; case 194: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2025 "compilers/imcc/imcc.y" { (yyval.i) = INS(interp, @@ -4772,98 +4780,98 @@ YYSTYPE yylval; case 195: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2036 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); } break; case 196: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2037 "compilers/imcc/imcc.y" { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; } break; case 197: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2038 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 200: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2041 "compilers/imcc/imcc.y" { (yyval.i) = 0;} break; case 201: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2045 "compilers/imcc/imcc.y" { (yyval.t) = 'I'; } break; case 202: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2046 "compilers/imcc/imcc.y" { (yyval.t) = 'N'; } break; case 203: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2047 "compilers/imcc/imcc.y" { (yyval.t) = 'S'; } break; case 204: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2048 "compilers/imcc/imcc.y" { (yyval.t) = 'P'; } break; case 205: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2053 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); } break; case 206: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2055 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); } break; case 207: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2057 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); } break; case 208: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2059 "compilers/imcc/imcc.y" { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); } break; case 209: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2061 "compilers/imcc/imcc.y" { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); } break; case 210: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2064 "compilers/imcc/imcc.y" { add_pcc_result(interp, (yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr)); @@ -4874,7 +4882,7 @@ YYSTYPE yylval; case 211: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2070 "compilers/imcc/imcc.y" { (yyval.i) = IMCC_create_itcall_label(interp); @@ -4883,7 +4891,7 @@ YYSTYPE yylval; case 212: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2074 "compilers/imcc/imcc.y" { IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr)); @@ -4893,7 +4901,7 @@ YYSTYPE yylval; case 216: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2082 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr)); @@ -4902,189 +4910,189 @@ YYSTYPE yylval; case 217: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2089 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"not"; } break; case 218: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2090 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"bnot"; } break; case 219: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2091 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"neg"; } break; case 220: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2095 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"sub"; } break; case 221: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2096 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"add"; } break; case 222: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2097 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"mul"; } break; case 223: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2098 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"div"; } break; case 224: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2099 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"mod"; } break; case 225: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2100 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"fdiv"; } break; case 226: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2101 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"pow"; } break; case 227: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2102 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"concat"; } break; case 228: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2103 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"iseq"; } break; case 229: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2104 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"isne"; } break; case 230: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2105 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"isgt"; } break; case 231: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2106 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"isge"; } break; case 232: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2107 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"islt"; } break; case 233: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2108 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"isle"; } break; case 234: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2109 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"shl"; } break; case 235: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2110 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"shr"; } break; case 236: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2111 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"lsr"; } break; case 237: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2112 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"and"; } break; case 238: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2113 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"or"; } break; case 239: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2114 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"xor"; } break; case 240: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2115 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"band"; } break; case 241: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2116 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"bor"; } break; case 242: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2117 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"bxor"; } break; case 243: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2123 "compilers/imcc/imcc.y" { (yyval.i) = IMCC_create_itcall_label(interp); @@ -5095,112 +5103,112 @@ YYSTYPE yylval; case 244: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2128 "compilers/imcc/imcc.y" { (yyval.i) = 0; } break; case 245: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2135 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); } break; case 246: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2139 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"add"; } break; case 247: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2140 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"sub"; } break; case 248: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2141 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"mul"; } break; case 249: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2142 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"div"; } break; case 250: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2143 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"mod"; } break; case 251: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2144 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"fdiv"; } break; case 252: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2145 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"concat"; } break; case 253: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2146 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"band"; } break; case 254: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2147 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"bor"; } break; case 255: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2148 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"bxor"; } break; case 256: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2149 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"shr"; } break; case 257: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2150 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"shl"; } break; case 258: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2151 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"lsr"; } break; case 259: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2157 "compilers/imcc/imcc.y" { (yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s), @@ -5213,28 +5221,28 @@ YYSTYPE yylval; case 260: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2167 "compilers/imcc/imcc.y" { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 261: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2168 "compilers/imcc/imcc.y" { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 262: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2169 "compilers/imcc/imcc.y" { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 263: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2171 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(1) - (1)].sr); @@ -5245,7 +5253,7 @@ YYSTYPE yylval; case 264: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2177 "compilers/imcc/imcc.y" { /* disallow bareword method names; SREG name constants are fine */ @@ -5264,7 +5272,7 @@ YYSTYPE yylval; case 265: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2191 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); @@ -5275,7 +5283,7 @@ YYSTYPE yylval; case 266: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2197 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); @@ -5286,14 +5294,14 @@ YYSTYPE yylval; case 267: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2202 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); } break; case 268: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2208 "compilers/imcc/imcc.y" { (yyval.i) = IMCC_create_itcall_label(interp); @@ -5303,21 +5311,21 @@ YYSTYPE yylval; case 269: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2212 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(2) - (5)].i); } break; case 270: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2216 "compilers/imcc/imcc.y" { (yyval.sr) = 0; } break; case 271: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2218 "compilers/imcc/imcc.y" { (yyval.sr) = 0; @@ -5332,7 +5340,7 @@ YYSTYPE yylval; case 272: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2228 "compilers/imcc/imcc.y" { (yyval.sr) = 0; @@ -5347,7 +5355,7 @@ YYSTYPE yylval; case 273: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2238 "compilers/imcc/imcc.y" { (yyval.sr) = 0; @@ -5359,7 +5367,7 @@ YYSTYPE yylval; case 274: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2245 "compilers/imcc/imcc.y" { (yyval.sr) = 0; @@ -5369,7 +5377,7 @@ YYSTYPE yylval; case 275: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2250 "compilers/imcc/imcc.y" { (yyval.sr) = 0; @@ -5381,70 +5389,70 @@ YYSTYPE yylval; case 276: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2259 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); } break; case 277: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2263 "compilers/imcc/imcc.y" { (yyval.t) = 0; } break; case 278: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2264 "compilers/imcc/imcc.y" { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); } break; case 279: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2268 "compilers/imcc/imcc.y" { (yyval.t) = VT_FLAT; } break; case 280: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2269 "compilers/imcc/imcc.y" { (yyval.t) = VT_NAMED; } break; case 281: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2270 "compilers/imcc/imcc.y" { (yyval.t) = VT_CALL_SIG; } break; case 282: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2273 "compilers/imcc/imcc.y" { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; } break; case 283: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2274 "compilers/imcc/imcc.y" { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; } break; case 284: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2278 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); } break; case 285: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2283 "compilers/imcc/imcc.y" { (yyval.sr) = 0; @@ -5459,7 +5467,7 @@ YYSTYPE yylval; case 286: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2293 "compilers/imcc/imcc.y" { add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, @@ -5470,7 +5478,7 @@ YYSTYPE yylval; case 287: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2299 "compilers/imcc/imcc.y" { (yyval.sr) = 0; @@ -5485,7 +5493,7 @@ YYSTYPE yylval; case 288: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2309 "compilers/imcc/imcc.y" { add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr)); @@ -5495,28 +5503,28 @@ YYSTYPE yylval; case 289: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2313 "compilers/imcc/imcc.y" { (yyval.sr) = 0; } break; case 290: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2317 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(1) - (1)].i); } break; case 291: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2318 "compilers/imcc/imcc.y" { (yyval.i) = (yyvsp[(1) - (1)].i); } break; case 292: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2323 "compilers/imcc/imcc.y" { (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); @@ -5525,7 +5533,7 @@ YYSTYPE yylval; case 293: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2327 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); @@ -5534,7 +5542,7 @@ YYSTYPE yylval; case 294: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2331 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr)); @@ -5543,7 +5551,7 @@ YYSTYPE yylval; case 295: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2338 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr)); @@ -5552,7 +5560,7 @@ YYSTYPE yylval; case 296: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2342 "compilers/imcc/imcc.y" { (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); @@ -5561,7 +5569,7 @@ YYSTYPE yylval; case 297: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2346 "compilers/imcc/imcc.y" { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); @@ -5570,91 +5578,91 @@ YYSTYPE yylval; case 298: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2352 "compilers/imcc/imcc.y" { (yyval.t) = 0; } break; case 299: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2353 "compilers/imcc/imcc.y" { (yyval.t) = 0; } break; case 300: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2357 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"eq"; } break; case 301: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2358 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"ne"; } break; case 302: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2359 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"gt"; } break; case 303: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2360 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"ge"; } break; case 304: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2361 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"lt"; } break; case 305: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2362 "compilers/imcc/imcc.y" { (yyval.s) = (char *)"le"; } break; case 308: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2371 "compilers/imcc/imcc.y" { (yyval.sr) = NULL; } break; case 309: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2372 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(1) - (1)].sr); } break; case 310: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2376 "compilers/imcc/imcc.y" { (yyval.sr) = IMCC_INFO(interp)->regs[0]; } break; case 312: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2381 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); } break; case 313: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2383 "compilers/imcc/imcc.y" { IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr); @@ -5666,7 +5674,7 @@ YYSTYPE yylval; case 314: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2390 "compilers/imcc/imcc.y" { IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr); @@ -5676,49 +5684,49 @@ YYSTYPE yylval; case 316: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2397 "compilers/imcc/imcc.y" { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 317: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2398 "compilers/imcc/imcc.y" { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 318: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2402 "compilers/imcc/imcc.y" { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 319: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2403 "compilers/imcc/imcc.y" { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 320: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2407 "compilers/imcc/imcc.y" { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 321: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2408 "compilers/imcc/imcc.y" { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 326: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2422 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->nkeys = 0; @@ -5727,7 +5735,7 @@ YYSTYPE yylval; case 327: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2426 "compilers/imcc/imcc.y" { (yyval.sr) = link_keys(interp, @@ -5738,7 +5746,7 @@ YYSTYPE yylval; case 328: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2434 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->nkeys = 0; @@ -5747,7 +5755,7 @@ YYSTYPE yylval; case 329: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2438 "compilers/imcc/imcc.y" { (yyval.sr) = link_keys(interp, @@ -5758,14 +5766,14 @@ YYSTYPE yylval; case 330: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2446 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); } break; case 331: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2448 "compilers/imcc/imcc.y" { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr); @@ -5775,7 +5783,7 @@ YYSTYPE yylval; case 332: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2456 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(1) - (1)].sr); @@ -5784,78 +5792,78 @@ YYSTYPE yylval; case 333: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2462 "compilers/imcc/imcc.y" { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); } break; case 334: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2463 "compilers/imcc/imcc.y" { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); } break; case 335: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2464 "compilers/imcc/imcc.y" { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); } break; case 336: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2465 "compilers/imcc/imcc.y" { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); } break; case 337: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2466 "compilers/imcc/imcc.y" { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 338: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2470 "compilers/imcc/imcc.y" { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 339: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2471 "compilers/imcc/imcc.y" { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 340: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2475 "compilers/imcc/imcc.y" { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 341: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2476 "compilers/imcc/imcc.y" { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); } break; case 342: -/* Line 1455 of yacc.c */ +/* Line 1464 of yacc.c */ #line 2477 "compilers/imcc/imcc.y" { (yyval.sr) = (yyvsp[(1) - (1)].sr); } break; -/* Line 1455 of yacc.c */ -#line 5848 "compilers/imcc/imcparser.c" +/* Line 1464 of yacc.c */ +#line 5856 "compilers/imcc/imcparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -6066,7 +6074,7 @@ YYSTYPE yylval; -/* Line 1675 of yacc.c */ +/* Line 1684 of yacc.c */ #line 2483 "compilers/imcc/imcc.y" diff --git a/compilers/imcc/imcparser.h b/compilers/imcc/imcparser.h index 4aa84413c6..b2fbcdc343 100644 --- a/compilers/imcc/imcparser.h +++ b/compilers/imcc/imcparser.h @@ -9,13 +9,12 @@ */ /* HEADERIZER HFILE: none */ /* HEADERIZER STOP */ - -/* A Bison parser, made by GNU Bison 2.4.1. */ +/* A Bison parser, made by GNU Bison 2.4.2. */ /* Skeleton interface for Bison's Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software + Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -295,7 +294,7 @@ typedef union YYSTYPE { -/* Line 1676 of yacc.c */ +/* Line 1685 of yacc.c */ #line 1071 "compilers/imcc/imcc.y" IdList * idlist; @@ -306,8 +305,8 @@ typedef union YYSTYPE -/* Line 1676 of yacc.c */ -#line 300 "compilers/imcc/imcparser.h" +/* Line 1685 of yacc.c */ +#line 299 "compilers/imcc/imcparser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/src/pmc/imageio.pmc b/src/pmc/imageio.pmc index 6ebe15c380..755932c30c 100644 --- a/src/pmc/imageio.pmc +++ b/src/pmc/imageio.pmc @@ -82,20 +82,6 @@ static void SET_VISIT_CURSOR(ARGMOD(PMC *pmc), ARGIN(const char *cursor)) __attribute__nonnull__(2) FUNC_MODIFIES(*pmc); -static void visit_todo_list_freeze(PARROT_INTERP, - ARGIN_NULLOK(PMC* pmc), - ARGMOD(PMC* info)) - __attribute__nonnull__(1) - __attribute__nonnull__(3) - FUNC_MODIFIES(* info); - -PARROT_WARN_UNUSED_RESULT -PARROT_CAN_RETURN_NULL -PARROT_INLINE -static PMC * visit_todo_list_thaw(PARROT_INTERP, ARGIN(PMC* info)) - __attribute__nonnull__(1) - __attribute__nonnull__(2); - #define ASSERT_ARGS_create_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(info)) @@ -114,12 +100,6 @@ static PMC * visit_todo_list_thaw(PARROT_INTERP, ARGIN(PMC* info)) #define ASSERT_ARGS_SET_VISIT_CURSOR __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(pmc) \ , PARROT_ASSERT_ARG(cursor)) -#define ASSERT_ARGS_visit_todo_list_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(info)) -#define ASSERT_ARGS_visit_todo_list_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(info)) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ @@ -295,127 +275,6 @@ id_list_get(PARROT_INTERP, ARGIN(const PMC *io), UINTVAL id) return VTABLE_get_pmc_keyed_int(interp, PARROT_IMAGEIO(io)->todo, id - 1); } -/* - -=item C - -=cut - -*/ - - -PARROT_WARN_UNUSED_RESULT -PARROT_CAN_RETURN_NULL -PARROT_INLINE -static PMC * -visit_todo_list_thaw(PARROT_INTERP, ARGIN(PMC* info)) -{ - ASSERT_ARGS(visit_todo_list_thaw) - - const UINTVAL n = VTABLE_shift_integer(interp, info); - const INTVAL id = PackID_get_PMCID(n); - const int packid_flags = PackID_get_FLAGS(n); - PMC *pmc = PMCNULL; - - PARROT_ASSERT(PARROT_IMAGEIO(info)->what == VISIT_THAW_NORMAL); - - switch (packid_flags) { - case enum_PackID_seen: - if (id) /* got a non-NULL PMC */ - pmc = id_list_get(interp, info, id); - break; - case enum_PackID_normal: - { - PMC * const todo = PARROT_IMAGEIO(info)->todo; - const INTVAL type = VTABLE_shift_integer(interp, info); - - PARROT_ASSERT(id - 1 - == VTABLE_elements(interp, PARROT_IMAGEIO(info)->todo)); - - if (type <= 0 || type > interp->n_vtable_max) - Parrot_ex_throw_from_c_args(interp, NULL, 1, - "Unknown PMC type to thaw %d", type); - - /* workaround to keep ParrotInterpreter PBC hack working */ - if (type == enum_class_ParrotInterpreter) - PObj_flag_CLEAR(private1, info); - - pmc = Parrot_pmc_new_noinit(interp, type); - - VTABLE_set_pmc_keyed_int(interp, todo, id - 1, pmc); - } - break; - default: - Parrot_ex_throw_from_c_args(interp, NULL, 1, - "Unknown PMC id args thaw %d", packid_flags); - break; - } - - return pmc; -} - -/* - -=item C - -=cut - -*/ - - -static void -visit_todo_list_freeze(PARROT_INTERP, ARGIN_NULLOK(PMC* pmc), ARGMOD(PMC* info)) -{ - ASSERT_ARGS(visit_todo_list_freeze) - - UINTVAL id; - int packid_type; - - PARROT_ASSERT(PARROT_IMAGEIO(info)->what == VISIT_FREEZE_NORMAL); - - if (PMC_IS_NULL(pmc)) { - id = 0; - packid_type = enum_PackID_seen; - } - else { - Hash * const hash = (Hash *)VTABLE_get_pointer(interp, - PARROT_IMAGEIO(info)->seen); - HashBucket * const b = parrot_hash_get_bucket(interp, hash, pmc); - - if (b) { - id = (UINTVAL)b->value; - packid_type = enum_PackID_seen; - } - else { - ++PARROT_IMAGEIO(info)->id; /* next id to freeze */ - id = PARROT_IMAGEIO(info)->id; - packid_type = enum_PackID_normal; - } - } - - VTABLE_push_integer(interp, info, PackID_new(id, packid_type)); - - if (packid_type == enum_PackID_normal) { - Hash * const hash = (Hash *)VTABLE_get_pointer(interp, - PARROT_IMAGEIO(info)->seen); - - PARROT_ASSERT(pmc); - - /* workaround to keep ParrotInterpreter PBC hack working */ - if (pmc->vtable->base_type == enum_class_ParrotInterpreter) - PObj_flag_CLEAR(private1, info); - - VTABLE_push_integer(interp, info, - PObj_is_object_TEST(pmc) - ? (INTVAL) enum_class_Object - : pmc->vtable->base_type); - - parrot_hash_put(interp, hash, pmc, (void *)id); - VTABLE_push_pmc(interp, PARROT_IMAGEIO(info)->todo, pmc); - } -} - - pmclass ImageIO auto_attrs { ATTR Buffer *buffer; /* buffer to store the image */ ATTR size_t pos; /* current read/write buf position */ @@ -644,7 +503,51 @@ hasn't been seen yet, it is also pushed onto the todo list. */ VTABLE void push_pmc(PMC *v) { - visit_todo_list_freeze(INTERP, v, SELF); + UINTVAL id; + int packid_type; + + PARROT_ASSERT(PARROT_IMAGEIO(SELF)->what == VISIT_FREEZE_NORMAL); + + if (PMC_IS_NULL(v)) { + id = 0; + packid_type = enum_PackID_seen; + } + else { + Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP, + PARROT_IMAGEIO(SELF)->seen); + HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, v); + + if (b) { + id = (UINTVAL)b->value; + packid_type = enum_PackID_seen; + } + else { + ++PARROT_IMAGEIO(SELF)->id; /* next id to freeze */ + id = PARROT_IMAGEIO(SELF)->id; + packid_type = enum_PackID_normal; + } + } + + SELF.push_integer(PackID_new(id, packid_type)); + + if (packid_type == enum_PackID_normal) { + Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP, + PARROT_IMAGEIO(SELF)->seen); + + PARROT_ASSERT(v); + + /* workaround to keep ParrotInterpreter PBC hack working */ + if (v->vtable->base_type == enum_class_ParrotInterpreter) + PObj_flag_CLEAR(private1, SELF); + + SELF.push_integer( + PObj_is_object_TEST(v) + ? (INTVAL) enum_class_Object + : v->vtable->base_type); + + parrot_hash_put(INTERP, hash, v, (void *)id); + VTABLE_push_pmc(INTERP, PARROT_IMAGEIO(SELF)->todo, v); + } } @@ -758,7 +661,46 @@ Removes and returns a reference to a pmc from the start of the image. */ VTABLE PMC *shift_pmc() { - return visit_todo_list_thaw(INTERP, SELF); + const UINTVAL n = SELF.shift_integer(); + const INTVAL id = PackID_get_PMCID(n); + const int packid_flags = PackID_get_FLAGS(n); + PMC *pmc = PMCNULL; + + PARROT_ASSERT(PARROT_IMAGEIO(SELF)->what == VISIT_THAW_NORMAL); + + switch (packid_flags) { + case enum_PackID_seen: + if (id) /* got a non-NULL PMC */ + pmc = id_list_get(INTERP, SELF, id); + break; + case enum_PackID_normal: + { + PMC * const todo = PARROT_IMAGEIO(SELF)->todo; + const INTVAL type = VTABLE_shift_integer(INTERP, SELF); + + PARROT_ASSERT(id - 1 + == VTABLE_elements(INTERP, PARROT_IMAGEIO(SELF)->todo)); + + if (type <= 0 || type > INTERP->n_vtable_max) + Parrot_ex_throw_from_c_args(INTERP, NULL, 1, + "Unknown PMC type to thaw %d", type); + + /* workaround to keep ParrotInterpreter PBC hack working */ + if (type == enum_class_ParrotInterpreter) + PObj_flag_CLEAR(private1, SELF); + + pmc = Parrot_pmc_new_noinit(INTERP, type); + + VTABLE_set_pmc_keyed_int(INTERP, todo, id - 1, pmc); + } + break; + default: + Parrot_ex_throw_from_c_args(INTERP, NULL, 1, + "Unknown PMC id args thaw %d", packid_flags); + break; + } + + return pmc; } VTABLE void set_pmc(PMC *p) diff --git a/src/pmc/imageiosize.pmc b/src/pmc/imageiosize.pmc index d55780ef0c..11b02f6516 100644 --- a/src/pmc/imageiosize.pmc +++ b/src/pmc/imageiosize.pmc @@ -17,64 +17,6 @@ Gets the size of an ImageIO image without the allocation costs. #define GROW_TO_16_BYTE_BOUNDARY(size) ((size) + ((size) % 16 ? 16 - (size) % 16 : 0)) /* HEADERIZER HFILE: none */ -/* HEADERIZER BEGIN: static */ -/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ - -static void visit_todo_list_freeze(PARROT_INTERP, - ARGIN(PMC* pmc), - ARGMOD(PMC* info)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(* info); - -#define ASSERT_ARGS_visit_todo_list_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(pmc) \ - , PARROT_ASSERT_ARG(info)) -/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ -/* HEADERIZER END: static */ - -/* - -=head1 METHODS - -=over 4 - -=item C - -=back - -=cut - - */ - -static void -visit_todo_list_freeze(PARROT_INTERP, ARGIN(PMC* pmc), ARGMOD(PMC* info)) -{ - int is_new = 0; - - if (!PMC_IS_NULL(pmc)) { - Hash * const hash = (Hash *)VTABLE_get_pointer(interp, PARROT_IMAGEIOSIZE(info)->seen); - HashBucket * const b = parrot_hash_get_bucket(interp, hash, pmc); - is_new = !b; - } - - VTABLE_push_integer(interp, info, 0); - - if (is_new) { - Hash * const hash = (Hash *)VTABLE_get_pointer(interp, PARROT_IMAGEIOSIZE(info)->seen); - - parrot_hash_put(interp, hash, pmc, pmc); - - /* workaround to keep ParrotInterpreter PBC hack working */ - if (pmc->vtable->base_type == enum_class_ParrotInterpreter) - PObj_flag_CLEAR(private1, info); - - VTABLE_push_integer(interp, info, pmc->vtable->base_type); - VTABLE_push_pmc(interp, PARROT_IMAGEIOSIZE(info)->todo, pmc); - } -} pmclass ImageIOSize auto_attrs { ATTR PMC *seen; /* seen hash */ @@ -298,7 +240,28 @@ hasn't been seen yet, it is also pushed onto the todo list. */ VTABLE void push_pmc(PMC *v) { - visit_todo_list_freeze(INTERP, v, SELF); + int is_new = 0; + + if (!PMC_IS_NULL(v)) { + Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP, PARROT_IMAGEIOSIZE(SELF)->seen); + HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, v); + is_new = !b; + } + + SELF.push_integer(0); + + if (is_new) { + Hash * const hash = (Hash *)VTABLE_get_pointer(INTERP, PARROT_IMAGEIOSIZE(SELF)->seen); + + parrot_hash_put(INTERP, hash, v, v); + + /* workaround to keep ParrotInterpreter PBC hack working */ + if (v->vtable->base_type == enum_class_ParrotInterpreter) + PObj_flag_CLEAR(private1, SELF); + + VTABLE_push_integer(INTERP, SELF, v->vtable->base_type); + VTABLE_push_pmc(INTERP, PARROT_IMAGEIOSIZE(SELF)->todo, v); + } } VTABLE void set_pmc(PMC *p) @@ -308,7 +271,7 @@ hasn't been seen yet, it is also pushed onto the todo list. PARROT_IMAGEIOSIZE(SELF)->size += header_length; } - visit_todo_list_freeze(INTERP, p, SELF); + STATICSELF.push_pmc(p); Parrot_visit_loop_visit(INTERP, SELF); } From e49394eb713c622080fadbd64ffdbadf014afe1e Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Tue, 24 Aug 2010 17:19:45 +0000 Subject: [PATCH 098/165] Clarify handling of flags in str_copy git-svn-id: https://svn.parrot.org/parrot/trunk@48635 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/string/api.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/string/api.c b/src/string/api.c index 0b457614f8..51c0b29fab 100644 --- a/src/string/api.c +++ b/src/string/api.c @@ -382,18 +382,21 @@ STRING * Parrot_str_copy(PARROT_INTERP, ARGIN(const STRING *s)) { ASSERT_ARGS(Parrot_str_copy) - STRING *d; + STRING * const d = Parrot_gc_new_string_header(interp, 0); const int is_movable = PObj_is_movable_TESTALL(s); - /* We set COW flag to avoid cloning buffer in compact_pool */ - - d = Parrot_gc_new_string_header(interp, - PObj_get_FLAGS(s) & ~PObj_constant_FLAG); - /* This overwrites the constant flag again. Not sure if this is OK */ + /* Copy encoding/charset/etc */ STRUCT_COPY(d, s); - /* Clear live flag. It might be set on constant strings */ - PObj_live_CLEAR(d); + /* Only copy is_COWable, constant, and external flags. + * Note that it's important (and safe) to copy the constant flag + * although the copied string header is not allocated from the constant + * string header pool. */ + PObj_get_FLAGS(d) = PObj_is_string_FLAG + | (PObj_get_FLAGS(s) + & (PObj_is_COWable_FLAG + | PObj_constant_FLAG + | PObj_external_FLAG)); /* Now check that buffer allocated from pool and affected by compacting */ if (is_movable && Buffer_bufstart(s)) { From 874e67abdd01ebf154e7a5dda452bad6dc162588 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Tue, 24 Aug 2010 17:35:24 +0000 Subject: [PATCH 099/165] Undo my last commit and fix a comment git-svn-id: https://svn.parrot.org/parrot/trunk@48636 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/string/api.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/string/api.c b/src/string/api.c index 51c0b29fab..0828150fa3 100644 --- a/src/string/api.c +++ b/src/string/api.c @@ -382,21 +382,17 @@ STRING * Parrot_str_copy(PARROT_INTERP, ARGIN(const STRING *s)) { ASSERT_ARGS(Parrot_str_copy) - STRING * const d = Parrot_gc_new_string_header(interp, 0); + STRING *d; const int is_movable = PObj_is_movable_TESTALL(s); - /* Copy encoding/charset/etc */ + d = Parrot_gc_new_string_header(interp, + PObj_get_FLAGS(s) & ~PObj_constant_FLAG); + /* This might set the constant flag again but it is the right thing + * to do */ STRUCT_COPY(d, s); - /* Only copy is_COWable, constant, and external flags. - * Note that it's important (and safe) to copy the constant flag - * although the copied string header is not allocated from the constant - * string header pool. */ - PObj_get_FLAGS(d) = PObj_is_string_FLAG - | (PObj_get_FLAGS(s) - & (PObj_is_COWable_FLAG - | PObj_constant_FLAG - | PObj_external_FLAG)); + /* Clear live flag. It might be set on constant strings */ + PObj_live_CLEAR(d); /* Now check that buffer allocated from pool and affected by compacting */ if (is_movable && Buffer_bufstart(s)) { From 2d16f81c4255811e9d0ae5e7c20a19b2a8962c38 Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Tue, 24 Aug 2010 17:52:39 +0000 Subject: [PATCH 100/165] pre-allocate buckets when thawing hashes improves rakudo startup by 2.86% git-svn-id: https://svn.parrot.org/parrot/trunk@48637 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/hash.h | 17 ++++++++++++ src/hash.c | 60 ++++++++++++++++++++++++++++++++++++++----- t/pmc/hash.t | 4 +++ 3 files changed, 75 insertions(+), 6 deletions(-) diff --git a/include/parrot/hash.h b/include/parrot/hash.h index 90a4f03463..32faba7ed2 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -393,6 +393,19 @@ Hash * parrot_create_hash(PARROT_INTERP, __attribute__nonnull__(4) __attribute__nonnull__(5); +PARROT_CANNOT_RETURN_NULL +PARROT_WARN_UNUSED_RESULT +PARROT_MALLOC +Hash * parrot_create_hash_sized(PARROT_INTERP, + PARROT_DATA_TYPE val_type, + Hash_key_type hkey_type, + NOTNULL(hash_comp_fn compare), + NOTNULL(hash_hash_key_fn keyhash), + UINTVAL size) + __attribute__nonnull__(1) + __attribute__nonnull__(4) + __attribute__nonnull__(5); + void parrot_hash_clone_prunable(PARROT_INTERP, ARGIN(const Hash *hash), ARGOUT(Hash *dest), @@ -550,6 +563,10 @@ int STRING_compare_distinct_cs_enc(PARROT_INTERP, PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(compare) \ , PARROT_ASSERT_ARG(keyhash)) +#define ASSERT_ARGS_parrot_create_hash_sized __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(compare) \ + , PARROT_ASSERT_ARG(keyhash)) #define ASSERT_ARGS_parrot_hash_clone_prunable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash) \ diff --git a/src/hash.c b/src/hash.c index e72536d13c..cd0410019f 100644 --- a/src/hash.c +++ b/src/hash.c @@ -538,7 +538,7 @@ Parrot_hash_thaw(PARROT_INTERP, ARGMOD(PMC *info)) break; } - hash = parrot_create_hash(interp, entry_type, key_type, cmp_fn, key_fn); + hash = parrot_create_hash_sized(interp, entry_type, key_type, cmp_fn, key_fn, num_entries); } @@ -935,20 +935,68 @@ parrot_create_hash(PARROT_INTERP, PARROT_DATA_TYPE val_type, Hash_key_type hkey_ NOTNULL(hash_comp_fn compare), NOTNULL(hash_hash_key_fn keyhash)) { ASSERT_ARGS(parrot_create_hash) + return parrot_create_hash_sized(interp, val_type, hkey_type, compare, keyhash, + INITIAL_BUCKETS); +} + + +/* + +=item C + +Round a value up to the nearest power of 2. + +=cut + +*/ + +PARROT_INLINE +static UINTVAL +round_up_pow2(UINTVAL x) { + UINTVAL y = 1; + while (y < x) + y <<= 1; + return y; +} + + +/* + +=item C + +Creates and initializes a hash, similar to C. + +Preallocates at least C buckets. + +=cut + +*/ + +PARROT_CANNOT_RETURN_NULL +PARROT_WARN_UNUSED_RESULT +PARROT_MALLOC +Hash * +parrot_create_hash_sized(PARROT_INTERP, PARROT_DATA_TYPE val_type, Hash_key_type hkey_type, + NOTNULL(hash_comp_fn compare), NOTNULL(hash_hash_key_fn keyhash), UINTVAL size) +{ + ASSERT_ARGS(parrot_create_hash_sized) + UINTVAL initial_buckets = round_up_pow2(size); HashBucket *bp; void *alloc = Parrot_gc_allocate_memory_chunk_with_interior_pointers( - interp, sizeof (Hash) + HASH_ALLOC_SIZE(INITIAL_BUCKETS)); + interp, sizeof (Hash) + HASH_ALLOC_SIZE(initial_buckets)); Hash * const hash = (Hash*)alloc; size_t i; - PARROT_ASSERT(INITIAL_BUCKETS % 4 == 0); + PARROT_ASSERT(initial_buckets % 4 == 0); hash->compare = compare; hash->hash_val = keyhash; hash->entry_type = val_type; hash->key_type = hkey_type; hash->seed = interp->hash_seed; - hash->mask = INITIAL_BUCKETS - 1; + hash->mask = initial_buckets - 1; hash->entries = 0; bp = (HashBucket *)((char *)alloc + sizeof (Hash)); @@ -959,10 +1007,10 @@ parrot_create_hash(PARROT_INTERP, PARROT_DATA_TYPE val_type, Hash_key_type hkey_ * was deleted */ hash->buckets = bp; - bp += N_BUCKETS(INITIAL_BUCKETS); + bp += N_BUCKETS(initial_buckets); hash->index = (HashBucket **)bp; - for (i = 0, --bp; i < N_BUCKETS(INITIAL_BUCKETS); ++i, --bp) { + for (i = 0, --bp; i < N_BUCKETS(initial_buckets); ++i, --bp) { bp->next = hash->free_list; hash->free_list = bp; } diff --git a/t/pmc/hash.t b/t/pmc/hash.t index e42fd00b1a..0258d8f73a 100644 --- a/t/pmc/hash.t +++ b/t/pmc/hash.t @@ -718,6 +718,10 @@ end: .end .sub freeze_thaw_preserves_order + # is internal order important somehow? + todo("freeze/thaw preserves hash internal order") + .return () + .local pmc h, cloned .local string s1, s2 .local int all_ok From 7cacbdb65ca8e639a75e7c513615dfae19e3f293 Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Tue, 24 Aug 2010 19:42:06 +0000 Subject: [PATCH 101/165] fix C++ build and unoptimized build git-svn-id: https://svn.parrot.org/parrot/trunk@48638 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/hash.c | 6 +++--- src/pmc/hash.pmc | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/hash.c b/src/hash.c index cd0410019f..849b7917e1 100644 --- a/src/hash.c +++ b/src/hash.c @@ -510,8 +510,8 @@ Parrot_hash_thaw(PARROT_INTERP, ARGMOD(PMC *info)) ASSERT_ARGS(Parrot_hash_thaw) const size_t num_entries = VTABLE_shift_integer(interp, info); - const Hash_key_type key_type = VTABLE_shift_integer(interp, info); - const PARROT_DATA_TYPE entry_type = VTABLE_shift_integer(interp, info); + const Hash_key_type key_type = (Hash_key_type)VTABLE_shift_integer(interp, info); + const PARROT_DATA_TYPE entry_type = (PARROT_DATA_TYPE)VTABLE_shift_integer(interp, info); size_t entry_index; Hash *hash; @@ -982,7 +982,7 @@ parrot_create_hash_sized(PARROT_INTERP, PARROT_DATA_TYPE val_type, Hash_key_type NOTNULL(hash_comp_fn compare), NOTNULL(hash_hash_key_fn keyhash), UINTVAL size) { ASSERT_ARGS(parrot_create_hash_sized) - UINTVAL initial_buckets = round_up_pow2(size); + UINTVAL initial_buckets = size > INITIAL_BUCKETS ? round_up_pow2(size) : INITIAL_BUCKETS; HashBucket *bp; void *alloc = Parrot_gc_allocate_memory_chunk_with_interior_pointers( interp, sizeof (Hash) + HASH_ALLOC_SIZE(initial_buckets)); diff --git a/src/pmc/hash.pmc b/src/pmc/hash.pmc index bfdb4f076d..664e440237 100644 --- a/src/pmc/hash.pmc +++ b/src/pmc/hash.pmc @@ -1164,7 +1164,7 @@ Used to archive the hash. VTABLE void freeze(PMC *info) { SUPER(info); - Parrot_hash_freeze(INTERP, SELF.get_pointer(), info); + Parrot_hash_freeze(INTERP, (Hash *)SELF.get_pointer(), info); } /* @@ -1179,7 +1179,7 @@ Used to unarchive the hash. VTABLE void thaw(PMC *info) { SUPER(info); - SELF.set_pointer(Parrot_hash_thaw(INTERP, info)); + SELF.set_pointer((void *)Parrot_hash_thaw(INTERP, info)); } } From cfe14ec56c8a8c43c7df3e8da5565049f0cd5fe5 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 24 Aug 2010 22:35:27 +0000 Subject: [PATCH 102/165] Creating branch to work on http://trac.parrot.org/parrot/ticket/677. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48639 d31e2699-5ff4-0310-a27c-f18f2fbe73fe From 943328436f6232bb7f7c98e0da07eb23050b1fcc Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 24 Aug 2010 22:38:17 +0000 Subject: [PATCH 103/165] Add new directory to hold programs, templates and configuration files useful during the release process. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48640 d31e2699-5ff4-0310-a27c-f18f2fbe73fe From e3f02179c69b2da1d81bb9075df5a6e7e4c13559 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 24 Aug 2010 22:45:00 +0000 Subject: [PATCH 104/165] Initial commit of README for tools/release/. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48641 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/release/README | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tools/release/README diff --git a/tools/release/README b/tools/release/README new file mode 100644 index 0000000000..a997af3d52 --- /dev/null +++ b/tools/release/README @@ -0,0 +1,5 @@ +# $Id$ +README for tools/release/ + +This directory is intended to hold programs, templates and configuration files +useful during the release process. From e41d432f2fc0d156d49103a22d9c75744bed4130 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 24 Aug 2010 22:52:21 +0000 Subject: [PATCH 105/165] Per plan outlined in TT #677, move addoptags.pl and headerizer.pl from tools/build/ to tools/dev/. Move 7 files from tools/util/ to new directory tools/release/. Add two READMEs. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48642 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/build/README | 13 +++++++++++++ tools/{build => dev}/addopstags.pl | 0 tools/{build => dev}/headerizer.pl | 0 tools/{util => dev}/ncidef2pasm.pl | 0 tools/{util => dev}/parrot-config.pir | 0 tools/{util => dev}/perlcritic-cage.conf | 0 tools/{util => dev}/perlcritic.conf | 0 tools/{util => dev}/perltidy.conf | 0 tools/{util => dev}/pgegrep | 0 tools/{util => dev}/update_copyright.pl | 0 10 files changed, 13 insertions(+) create mode 100644 tools/build/README rename tools/{build => dev}/addopstags.pl (100%) rename tools/{build => dev}/headerizer.pl (100%) rename tools/{util => dev}/ncidef2pasm.pl (100%) rename tools/{util => dev}/parrot-config.pir (100%) rename tools/{util => dev}/perlcritic-cage.conf (100%) rename tools/{util => dev}/perlcritic.conf (100%) rename tools/{util => dev}/perltidy.conf (100%) rename tools/{util => dev}/pgegrep (100%) rename tools/{util => dev}/update_copyright.pl (100%) diff --git a/tools/build/README b/tools/build/README new file mode 100644 index 0000000000..4674571e17 --- /dev/null +++ b/tools/build/README @@ -0,0 +1,13 @@ +# $Id$ +README for tools/build/ + +This directory is intended to hold programs, templates and configuration files +invoked by the default 'make' target ('make all'), with or without +command-line options, during the Parrot build process. + +Programs, templates and configuration files invoked by 'make install' or +'make install-dev' should be placed in tools/release/. + +Other things being equal, programs, templates and configuration files invoked +by all other 'make' targets (e.g., 'make headerizer') should be placed in +tools/dev/. diff --git a/tools/build/addopstags.pl b/tools/dev/addopstags.pl similarity index 100% rename from tools/build/addopstags.pl rename to tools/dev/addopstags.pl diff --git a/tools/build/headerizer.pl b/tools/dev/headerizer.pl similarity index 100% rename from tools/build/headerizer.pl rename to tools/dev/headerizer.pl diff --git a/tools/util/ncidef2pasm.pl b/tools/dev/ncidef2pasm.pl similarity index 100% rename from tools/util/ncidef2pasm.pl rename to tools/dev/ncidef2pasm.pl diff --git a/tools/util/parrot-config.pir b/tools/dev/parrot-config.pir similarity index 100% rename from tools/util/parrot-config.pir rename to tools/dev/parrot-config.pir diff --git a/tools/util/perlcritic-cage.conf b/tools/dev/perlcritic-cage.conf similarity index 100% rename from tools/util/perlcritic-cage.conf rename to tools/dev/perlcritic-cage.conf diff --git a/tools/util/perlcritic.conf b/tools/dev/perlcritic.conf similarity index 100% rename from tools/util/perlcritic.conf rename to tools/dev/perlcritic.conf diff --git a/tools/util/perltidy.conf b/tools/dev/perltidy.conf similarity index 100% rename from tools/util/perltidy.conf rename to tools/dev/perltidy.conf diff --git a/tools/util/pgegrep b/tools/dev/pgegrep similarity index 100% rename from tools/util/pgegrep rename to tools/dev/pgegrep diff --git a/tools/util/update_copyright.pl b/tools/dev/update_copyright.pl similarity index 100% rename from tools/util/update_copyright.pl rename to tools/dev/update_copyright.pl From 2f609db1f9f48261d8e8abf95eca560a20dd157c Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 24 Aug 2010 22:55:26 +0000 Subject: [PATCH 106/165] Add one more README. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48643 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/README | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 tools/dev/README diff --git a/tools/dev/README b/tools/dev/README new file mode 100644 index 0000000000..e337faa3f2 --- /dev/null +++ b/tools/dev/README @@ -0,0 +1,7 @@ +# $Id$ +README for tools/dev/ + +This directory is intended to hold programs, templates and configuration files +found useful by Parrot developed other than those (a) invoked by the default +'make' target ('make all'), with or without command-line options, during the +Parrot build process; or (b) invoked by 'make install' or 'make install-dev'. From 73f61fa88925bf8394e2543b5942950bb211b879 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 24 Aug 2010 22:56:35 +0000 Subject: [PATCH 107/165] Update MANIFEST. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48644 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/MANIFEST b/MANIFEST index 6bfa28fcdb..e5b18bed29 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 15:05:33 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 22:55:55 2010 UT # # See below for documentation on the format of this file. # @@ -2090,11 +2090,10 @@ t/tools/pmc2cutils/05-gen_c.t [test] t/tools/pmc2cutils/08-pmc-pm.t [test] t/tools/pmc2cutils/README []doc t/tools/testdata [test] -tools/build/addopstags.pl [] +tools/build/README []doc tools/build/c2str.pl [] tools/build/fixup_gen_file.pl [] tools/build/h2inc.pl [] -tools/build/headerizer.pl [] tools/build/ops2c.pl [devel] tools/build/parrot_config_c.pl [] tools/build/pbcversion_h.pl [] @@ -2102,6 +2101,8 @@ tools/build/pmc2c.pl [devel] tools/build/vtable_extend.pl [] tools/build/vtable_h.pl [] tools/dev/.gdbinit [] +tools/dev/README []doc +tools/dev/addopstags.pl [] tools/dev/as2c.pl [] tools/dev/bench_op.pir [] tools/dev/branch_status.pl [] @@ -2114,6 +2115,7 @@ tools/dev/gen_charset_tables.pl [] tools/dev/gen_class.pl [] tools/dev/gen_makefile.pl [devel] tools/dev/gen_valgrind_suppressions.pl [] +tools/dev/headerizer.pl [] tools/dev/install_dev_files.pl [] tools/dev/install_doc_files.pl [] tools/dev/install_files.pl [] @@ -2131,9 +2133,11 @@ tools/dev/mk_packfile_pbc [] tools/dev/mk_rpm_manifests.pl [] tools/dev/nci_test_gen.pl [] tools/dev/nci_thunk_gen.pir [] +tools/dev/ncidef2pasm.pl [] tools/dev/nm.pl [] tools/dev/nopaste.pl [] tools/dev/ops_not_tested.pl [] +tools/dev/parrot-config.pir [] tools/dev/parrot-fuzzer [] tools/dev/parrot.supp [] tools/dev/parrot_api.pl [] @@ -2142,6 +2146,10 @@ tools/dev/parrot_shell.pl [] tools/dev/parrotbench.pl [] tools/dev/pbc_header.pl [] tools/dev/pbc_to_exe.pir [devel] +tools/dev/perlcritic-cage.conf [] +tools/dev/perlcritic.conf [] +tools/dev/perltidy.conf [] +tools/dev/pgegrep [] tools/dev/pmcrenumber.pl [] tools/dev/pmctree.pl [] tools/dev/pprof2cg.pl [devel] @@ -2149,6 +2157,7 @@ tools/dev/reconfigure.pl [devel] tools/dev/search-ops.pl [] tools/dev/svnclobber.pl [] tools/dev/symlink.pl [] +tools/dev/update_copyright.pl [] tools/dev/vgp [] tools/dev/vgp_darwin [] tools/dev/vms-patch [] @@ -2159,19 +2168,13 @@ tools/docs/ops_summary.pl [] tools/docs/write_docs.pl [] tools/install/smoke.pl [] tools/install/smoke_languages.pl [] +tools/release/README []doc tools/util/crow.pir [] tools/util/dump_pbc.pl [] tools/util/gen_release_info.pl [] tools/util/inc_ver.pir [] -tools/util/ncidef2pasm.pl [] -tools/util/parrot-config.pir [] -tools/util/perlcritic-cage.conf [] -tools/util/perlcritic.conf [] -tools/util/perltidy.conf [] -tools/util/pgegrep [] tools/util/release.json [] tools/util/templates.json [] -tools/util/update_copyright.pl [] # Local variables: # mode: text # buffer-read-only: t From 4a7cc8110f9f4d3927210d548ad47e3d940fb13b Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 24 Aug 2010 22:58:05 +0000 Subject: [PATCH 108/165] Move remaining files from tools/util/ to tools/release/ and update MANIFEST. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48645 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 14 +++++++------- tools/{util => release}/crow.pir | 0 tools/{util => release}/dump_pbc.pl | 0 tools/{util => release}/gen_release_info.pl | 0 tools/{util => release}/inc_ver.pir | 0 tools/{util => release}/release.json | 0 tools/{util => release}/templates.json | 0 7 files changed, 7 insertions(+), 7 deletions(-) rename tools/{util => release}/crow.pir (100%) rename tools/{util => release}/dump_pbc.pl (100%) rename tools/{util => release}/gen_release_info.pl (100%) rename tools/{util => release}/inc_ver.pir (100%) rename tools/{util => release}/release.json (100%) rename tools/{util => release}/templates.json (100%) diff --git a/MANIFEST b/MANIFEST index e5b18bed29..3c25262998 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 22:55:55 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 22:57:38 2010 UT # # See below for documentation on the format of this file. # @@ -2169,12 +2169,12 @@ tools/docs/write_docs.pl [] tools/install/smoke.pl [] tools/install/smoke_languages.pl [] tools/release/README []doc -tools/util/crow.pir [] -tools/util/dump_pbc.pl [] -tools/util/gen_release_info.pl [] -tools/util/inc_ver.pir [] -tools/util/release.json [] -tools/util/templates.json [] +tools/release/crow.pir [] +tools/release/dump_pbc.pl [] +tools/release/gen_release_info.pl [] +tools/release/inc_ver.pir [] +tools/release/release.json [] +tools/release/templates.json [] # Local variables: # mode: text # buffer-read-only: t diff --git a/tools/util/crow.pir b/tools/release/crow.pir similarity index 100% rename from tools/util/crow.pir rename to tools/release/crow.pir diff --git a/tools/util/dump_pbc.pl b/tools/release/dump_pbc.pl similarity index 100% rename from tools/util/dump_pbc.pl rename to tools/release/dump_pbc.pl diff --git a/tools/util/gen_release_info.pl b/tools/release/gen_release_info.pl similarity index 100% rename from tools/util/gen_release_info.pl rename to tools/release/gen_release_info.pl diff --git a/tools/util/inc_ver.pir b/tools/release/inc_ver.pir similarity index 100% rename from tools/util/inc_ver.pir rename to tools/release/inc_ver.pir diff --git a/tools/util/release.json b/tools/release/release.json similarity index 100% rename from tools/util/release.json rename to tools/release/release.json diff --git a/tools/util/templates.json b/tools/release/templates.json similarity index 100% rename from tools/util/templates.json rename to tools/release/templates.json From 1782dae55cb057a00236a698632c8c8b322e7943 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Tue, 24 Aug 2010 23:32:32 +0000 Subject: [PATCH 109/165] Correct re-placement of dump_pbc.pl; update MANIFEST. Inside files, update mentions of paths under tools/. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48646 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 4 ++-- config/gen/makefiles/root.in | 21 +++++++++++++-------- docs/project/release_manager_guide.pod | 8 ++++---- lib/Parrot/Docs/Section/Tools.pm | 2 +- ports/debian/rules | 2 +- tools/dev/addopstags.pl | 4 ++-- tools/{release => dev}/dump_pbc.pl | 4 ++-- tools/dev/headerizer.pl | 4 ++-- tools/dev/ncidef2pasm.pl | 4 ++-- tools/dev/perlcritic.conf | 2 +- tools/dev/update_copyright.pl | 2 +- tools/release/crow.pir | 6 +++--- tools/release/gen_release_info.pl | 2 +- 13 files changed, 35 insertions(+), 30 deletions(-) rename tools/{release => dev}/dump_pbc.pl (96%) diff --git a/MANIFEST b/MANIFEST index 3c25262998..7bd984c60a 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 22:57:38 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 23:10:21 2010 UT # # See below for documentation on the format of this file. # @@ -2109,6 +2109,7 @@ tools/dev/branch_status.pl [] tools/dev/checkdepend.pl [] tools/dev/create_language.pl [devel] tools/dev/debian_docs.sh [] +tools/dev/dump_pbc.pl [] tools/dev/faces.pl [] tools/dev/fetch_languages.pl [] tools/dev/gen_charset_tables.pl [] @@ -2170,7 +2171,6 @@ tools/install/smoke.pl [] tools/install/smoke_languages.pl [] tools/release/README []doc tools/release/crow.pir [] -tools/release/dump_pbc.pl [] tools/release/gen_release_info.pl [] tools/release/inc_ver.pir [] tools/release/release.json [] diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index 044b02a6ab..71cd16f234 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -47,8 +47,13 @@ VERSION_DIR = @versiondir@ # where we're building parrot from (needed for pbc_to_exe) BUILD_DIR = @build_dir@ -# directory for build tools +# directory for build tools: +# programs, templates, configuration files invoked by 'make all' +# (with or without command-line options) BUILD_TOOLS_DIR = tools/build +# directory for developers' tools +# programs, templates, configuration files NOT invoked by 'make all' +DEV_TOOLS_DIR = tools/dev # directory for header files INC_DIR = @inc@ @@ -116,7 +121,7 @@ LINKARGS = $(LDFLAGS) $(LD_LOAD_FLAGS) @libparrot_ldflags@ @icu_shared@ NONGEN_HEADERS = @TEMP_nongen_headers@ # The headerizer -HEADERIZER = $(PERL) $(BUILD_TOOLS_DIR)/headerizer.pl +HEADERIZER = $(PERL) $(DEV_TOOLS_DIR)/headerizer.pl include src/dynpmc/Defines.mak include src/dynoplibs/Defines.mak @@ -857,8 +862,8 @@ parrot-prove.pbc : runtime/parrot/bin/prove.pir $(PARROT) $(PROVE) : parrot-prove.pbc $(PARROT) $(PBC_TO_EXE) $(PBC_TO_EXE) parrot-prove.pbc -$(PARROT_CONFIG) : tools/util/parrot-config.pir $(PARROT) $(PBC_TO_EXE) - $(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir +$(PARROT_CONFIG) : tools/dev/parrot-config.pir $(PARROT) $(PBC_TO_EXE) + $(PARROT) -o parrot_config.pbc tools/dev/parrot-config.pir $(PARROT) pbc_to_exe.pbc parrot_config.pbc $(MINIPARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \ @@ -968,7 +973,7 @@ $(LIBPARROT_SHARED) : $(O_FILES) $(INSTALLABLECONFIG) : src/install_config$(O) $(PARROT_CONFIG) $(PBC_TO_EXE) - $(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir + $(PARROT) -o parrot_config.pbc tools/dev/parrot-config.pir $(PBC_TO_EXE) parrot_config.pbc --install $(INSTALLABLEPBCTOEXE) : $(PBC_TO_EXE) src/install_config$(O) @@ -2512,7 +2517,7 @@ tags-vi: tags.vi.dummy --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \ -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \ . - $(PERL) $(BUILD_TOOLS_DIR)/addopstags.pl $(OPS_FILES) + $(PERL) $(DEV_TOOLS_DIR)/addopstags.pl $(OPS_FILES) tags.vi.dummy: @@ -2524,12 +2529,12 @@ tags.dummy: CRITIC_FILES = 'lib/Parrot' perlcritic: - perlcritic --profile tools/util/perlcritic.conf $(CRITIC_FILES) + perlcritic --profile tools/dev/perlcritic.conf $(CRITIC_FILES) # Andy's extra-cranky Perl::Critic checking for cage cleaners cagecritic: @perl -MPerl::Critic::Bangs -e'$$min=q{1.04};die qq{You need Bangs $$min} unless $$Perl::Critic::Bangs::VERSION ge $$min' - perlcritic -1 --profile tools/util/perlcritic-cage.conf $(CRITIC_FILES) + perlcritic -1 --profile tools/dev/perlcritic-cage.conf $(CRITIC_FILES) # This target will eventually create all the headers automatically. If you # are having problems with linkage in Win32 (or elsewhere), because something diff --git a/docs/project/release_manager_guide.pod b/docs/project/release_manager_guide.pod index 110809c7b4..96dc42784e 100644 --- a/docs/project/release_manager_guide.pod +++ b/docs/project/release_manager_guide.pod @@ -84,7 +84,7 @@ monthly release. =item c -Update release-related information in F. This will be +Update release-related information in F. This will be used later when making release announcements. There are a few essential fields that must be updated at each release: @@ -251,11 +251,11 @@ only take a few minutes for the mirrors to sync. =item 9. -Compose the release announcement. Use F to make +Compose the release announcement. Use F to make this part easier. You can specify the format of your announcements like so: - $ ./parrot tools/util/crow.pir --type=text - $ ./parrot tools/util/crow.pir --type=html + $ ./parrot tools/release/crow.pir --type=text + $ ./parrot tools/release/crow.pir --type=html Take the screen output and paste it into the application you need. HTML works well for use Perl and PerlMonks, and text for the rest. It is not a diff --git a/lib/Parrot/Docs/Section/Tools.pm b/lib/Parrot/Docs/Section/Tools.pm index e282058d66..50808b2066 100644 --- a/lib/Parrot/Docs/Section/Tools.pm +++ b/lib/Parrot/Docs/Section/Tools.pm @@ -85,7 +85,7 @@ sub new { $self->new_item( '', 'tools/dev/list_unjitted.pl' ), $self->new_item( '', 'tools/dev/gen_class.pl' ), $self->new_item( '', 'tools/dev/nm.pl' ), - $self->new_item( '', 'tools/util/ncidef2pasm.pl' ), + $self->new_item( '', 'tools/dev/ncidef2pasm.pl' ), $self->new_item( '', 'tools/dev/pbc_header.pl' ), ), $self->new_group( diff --git a/ports/debian/rules b/ports/debian/rules index 5bd7603472..5b6bd1e625 100755 --- a/ports/debian/rules +++ b/ports/debian/rules @@ -42,7 +42,7 @@ build-stamp: configure-stamp dh_testdir $(MAKE) installable LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}`pwd`/blib/lib pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" docs/running.pod debian/parrot.1 - pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" tools/util/parrot-config.pir debian/parrot_config.1 + pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" tools/dev/parrot-config.pir debian/parrot_config.1 pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" src/pbc_dump.c debian/pbc_dump.1 pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" src/pbc_disassemble.c debian/pbc_disassemble.1 pod2man --section=1 --release="Debian Project" --center="Debian GNU/Linux manual" src/parrot_debugger.c debian/parrot_debugger.1 diff --git a/tools/dev/addopstags.pl b/tools/dev/addopstags.pl index 96aea8583e..8ef3e88b81 100644 --- a/tools/dev/addopstags.pl +++ b/tools/dev/addopstags.pl @@ -8,11 +8,11 @@ =head1 NAME -tools/build/addopstags.pl - add src/ops/*.ops to tags +tools/dev/addopstags.pl - add src/ops/*.ops to tags =head1 SYNOPSIS - perl tools/build/addopstags.pl src/ops/*.ops + perl tools/dev/addopstags.pl src/ops/*.ops =head1 DESCRIPTION diff --git a/tools/release/dump_pbc.pl b/tools/dev/dump_pbc.pl similarity index 96% rename from tools/release/dump_pbc.pl rename to tools/dev/dump_pbc.pl index aaaecfea1f..3dc90aa739 100755 --- a/tools/release/dump_pbc.pl +++ b/tools/dev/dump_pbc.pl @@ -5,11 +5,11 @@ =head1 NAME -tools/util/dump_pbc.pl - Weave together PBC disassembly with PIR source +tools/dev/dump_pbc.pl - Weave together PBC disassembly with PIR source =head1 SYNOPSIS - perl tools/util/dump_pbc.pl foo.pbc + perl tools/dev/dump_pbc.pl foo.pbc =head1 DESCRIPTION diff --git a/tools/dev/headerizer.pl b/tools/dev/headerizer.pl index 49f398134d..10bec01115 100644 --- a/tools/dev/headerizer.pl +++ b/tools/dev/headerizer.pl @@ -4,12 +4,12 @@ =head1 NAME -tools/build/headerizer.pl - Generates the function header parts of .h +tools/dev/headerizer.pl - Generates the function header parts of .h files from .c files =head1 SYNOPSIS - $ perl tools/build/headerizer.pl [object files] + $ perl tools/dev/headerizer.pl [object files] Generates C function declarations based on the function definitions in the C source code. diff --git a/tools/dev/ncidef2pasm.pl b/tools/dev/ncidef2pasm.pl index a4af651f8d..148fcd7c54 100644 --- a/tools/dev/ncidef2pasm.pl +++ b/tools/dev/ncidef2pasm.pl @@ -5,11 +5,11 @@ =head1 NAME -tools/util/ncidef2asm.pl - Turn an NCI library definition file into PASM +tools/dev/ncidef2asm.pl - Turn an NCI library definition file into PASM =head1 SYNOPSIS - perl tools/util/ncidef2asm.pl path/to/from_file [ path/to/to_file ] + perl tools/dev/ncidef2asm.pl path/to/from_file [ path/to/to_file ] =head1 DESCRIPTION diff --git a/tools/dev/perlcritic.conf b/tools/dev/perlcritic.conf index 6a6a8e11ec..82812585ed 100644 --- a/tools/dev/perlcritic.conf +++ b/tools/dev/perlcritic.conf @@ -18,7 +18,7 @@ add_themes = parrot add_themes = parrot [CodeLayout::RequireTidyCode] -perltidyrc = tools/util/perltidy.conf +perltidyrc = tools/dev/perltidy.conf add_themes = extra [CodeLayout::UseParrotCoda] diff --git a/tools/dev/update_copyright.pl b/tools/dev/update_copyright.pl index 5e1a73d145..65c0457040 100644 --- a/tools/dev/update_copyright.pl +++ b/tools/dev/update_copyright.pl @@ -9,7 +9,7 @@ =head1 NAME -F +F =head1 DESCRIPTION diff --git a/tools/release/crow.pir b/tools/release/crow.pir index e4b8e374f1..d676a37a2c 100644 --- a/tools/release/crow.pir +++ b/tools/release/crow.pir @@ -15,7 +15,7 @@ module, L. =head1 SYNOPSIS # see - % parrot tools/util/crow.pir --help + % parrot tools/release/crow.pir --help =cut @@ -39,7 +39,7 @@ module, L. got_opts: .local pmc templates - templates = 'get_json'('tools/util/templates.json') + templates = 'get_json'('tools/release/templates.json') .local string template, type type = opts['type'] @@ -50,7 +50,7 @@ got_type: template = 'get_template'(templates, type) .local pmc data - data = 'get_json'('tools/util/release.json') + data = 'get_json'('tools/release/release.json') .local string version version = data['release.version'] diff --git a/tools/release/gen_release_info.pl b/tools/release/gen_release_info.pl index 1bcfd50931..59e4b9c78e 100644 --- a/tools/release/gen_release_info.pl +++ b/tools/release/gen_release_info.pl @@ -7,7 +7,7 @@ =head1 NAME -tools/util/gen_release_info.pl - generate release info for graphs and charts +tools/release/gen_release_info.pl - generate release info for graphs and charts =head1 DESCRIPTION From d65c118b39b73041a0f1c8fd4b7e0403732355aa Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Wed, 25 Aug 2010 00:02:29 +0000 Subject: [PATCH 110/165] Correct construction of paths to programs inside corresponding test files. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48647 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/codingstd/perlcritic.t | 4 ++-- t/tools/dump_pbc.t | 4 ++-- t/tools/pgegrep.t | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/t/codingstd/perlcritic.t b/t/codingstd/perlcritic.t index 94a2ae6752..65bf79b6c2 100644 --- a/t/codingstd/perlcritic.t +++ b/t/codingstd/perlcritic.t @@ -22,7 +22,7 @@ By default, tests all perl source files for some very specific perl coding violations. This test uses a standard perlcriticrc file, located in -F +F If you wish to run a specific policy, the easiest way to do so is to temporarily add a custom theme to the configuration file and then specify @@ -62,7 +62,7 @@ GetOptions( 'theme=s' => \$theme ); -my $config = File::Spec->catfile( $PConfig{build_dir}, qw{tools util perlcritic.conf} ); +my $config = File::Spec->catfile( $PConfig{build_dir}, qw{tools dev perlcritic.conf} ); Test::Perl::Critic->import( -profile => $config, diff --git a/t/tools/dump_pbc.t b/t/tools/dump_pbc.t index b1e6c2b04d..42e8744f5e 100644 --- a/t/tools/dump_pbc.t +++ b/t/tools/dump_pbc.t @@ -4,7 +4,7 @@ =head1 NAME -t/tools/dumb_pbc.t - test the script tools/utils/dump_pbc.pl +t/tools/dumb_pbc.t - test the script tools/dev/dump_pbc.pl =head1 SYNOPSIS @@ -34,7 +34,7 @@ sub dump_pbc_output_like { my $PARROT = ".$PConfig{slash}$PConfig{test_prog}"; system( "$PARROT --output $pbc_fn $pir_fn" ); - my $cmd = File::Spec->catfile( qw{. tools util dump_pbc.pl} ); + my $cmd = File::Spec->catfile( qw{. tools dev dump_pbc.pl} ); my $out = `$PConfig{perl} $cmd $pbc_fn`; like( $out, $snippet, $desc ); diff --git a/t/tools/pgegrep.t b/t/tools/pgegrep.t index 46f865ad2a..61692cf695 100644 --- a/t/tools/pgegrep.t +++ b/t/tools/pgegrep.t @@ -4,7 +4,7 @@ =head1 NAME -t/tools/pgegrep.t - test the script tools/utils/pgegrep +t/tools/pgegrep.t - test the script tools/dev/pgegrep =head1 SYNOPSIS @@ -34,7 +34,7 @@ sub pgegrep_output_like { my ($options, $snippet, $desc) = @_; my $PARROT = ".$PConfig{slash}$PConfig{test_prog}"; - my $pgegrep = File::Spec->catfile( qw{. tools util pgegrep} ); + my $pgegrep = File::Spec->catfile( qw{. tools dev pgegrep} ); my $out = `$PARROT $pgegrep $options`; like( $out, $snippet, $desc ); From 58bfabbe3c7207b5a1b318d84111cbd5ff1ac55e Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Wed, 25 Aug 2010 00:24:36 +0000 Subject: [PATCH 111/165] Use 'make' variable $DEV_TOOLS_DIR throughout in place of tools/dev. git-svn-id: https://svn.parrot.org/parrot/branches/tt677_toolsdirs@48648 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/gen/makefiles/root.in | 38 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index 71cd16f234..d41e45b33f 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -846,12 +846,12 @@ $(PARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \ @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC) #IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 -$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT) - $(PARROT) -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir +$(PBC_TO_EXE) : $(DEV_TOOLS_DIR)/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT) + $(PARROT) -o pbc_to_exe.pbc $(DEV_TOOLS_DIR)/pbc_to_exe.pir $(PARROT) pbc_to_exe.pbc pbc_to_exe.pbc -parrot_nci_thunk_gen.pbc : tools/dev/nci_thunk_gen.pir $(DATA_JSON_LIB_PBCS) $(PARROT) - $(PARROT) -o parrot_nci_thunk_gen.pbc tools/dev/nci_thunk_gen.pir +parrot_nci_thunk_gen.pbc : $(DEV_TOOLS_DIR)/nci_thunk_gen.pir $(DATA_JSON_LIB_PBCS) $(PARROT) + $(PARROT) -o parrot_nci_thunk_gen.pbc $(DEV_TOOLS_DIR)/nci_thunk_gen.pir $(NCI_THUNK_GEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE) $(PBC_TO_EXE) parrot_nci_thunk_gen.pbc @@ -862,8 +862,8 @@ parrot-prove.pbc : runtime/parrot/bin/prove.pir $(PARROT) $(PROVE) : parrot-prove.pbc $(PARROT) $(PBC_TO_EXE) $(PBC_TO_EXE) parrot-prove.pbc -$(PARROT_CONFIG) : tools/dev/parrot-config.pir $(PARROT) $(PBC_TO_EXE) - $(PARROT) -o parrot_config.pbc tools/dev/parrot-config.pir +$(PARROT_CONFIG) : $(DEV_TOOLS_DIR)/parrot-config.pir $(PARROT) $(PBC_TO_EXE) + $(PARROT) -o parrot_config.pbc $(DEV_TOOLS_DIR)/parrot-config.pir $(PARROT) pbc_to_exe.pbc parrot_config.pbc $(MINIPARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \ @@ -940,10 +940,10 @@ O_FILES = \ $(IMCC_O_FILES) lib_deps_object : $(O_FILES) - $(PERL) tools/dev/lib_deps.pl object $(O_FILES) + $(PERL) $(DEV_TOOLS_DIR)/lib_deps.pl object $(O_FILES) lib_deps_source : $(GENERAL_H_FILES) - $(PERL) tools/dev/lib_deps.pl source all_source + $(PERL) $(DEV_TOOLS_DIR)/lib_deps.pl source all_source lib_deps : lib_deps_object lib_deps_source @@ -973,7 +973,7 @@ $(LIBPARROT_SHARED) : $(O_FILES) $(INSTALLABLECONFIG) : src/install_config$(O) $(PARROT_CONFIG) $(PBC_TO_EXE) - $(PARROT) -o parrot_config.pbc tools/dev/parrot-config.pir + $(PARROT) -o parrot_config.pbc $(DEV_TOOLS_DIR)/parrot-config.pir $(PBC_TO_EXE) parrot_config.pbc --install $(INSTALLABLEPBCTOEXE) : $(PBC_TO_EXE) src/install_config$(O) @@ -2001,19 +2001,19 @@ distclean : realclean # Require .svn to exist first # Otherwise it'll remove every last file svnclobber : .svn - $(PERL) tools/dev/svnclobber.pl + $(PERL) $(DEV_TOOLS_DIR)/svnclobber.pl reconfig : realclean $(PERL) Configure.pl $(CONFIG_ARGS) manitest : - $(PERL) tools/dev/manicheck.pl + $(PERL) $(DEV_TOOLS_DIR)/manicheck.pl opsrenumber : - $(PERL) tools/dev/opsrenumber.pl $(OPS_FILES) + $(PERL) $(DEV_TOOLS_DIR)/opsrenumber.pl $(OPS_FILES) pmcrenumber : - $(PERL) tools/dev/pmcrenumber.pl src/pmc/pmc.num + $(PERL) $(DEV_TOOLS_DIR)/pmcrenumber.pl src/pmc/pmc.num ############################################################################### # @@ -2365,7 +2365,7 @@ install: install-bin install-dev-only install-dev: install install-bin: installable - $(PERL) tools/dev/install_files.pl \ + $(PERL) $(DEV_TOOLS_DIR)/install_files.pl \ --buildprefix=$(BUILDPREFIX) \ --prefix=$(PREFIX) \ --exec-prefix=$(EXEC_PREFIX) \ @@ -2379,7 +2379,7 @@ install-bin: installable MANIFEST MANIFEST.generated install-dev-only: installable - $(PERL) tools/dev/install_dev_files.pl \ + $(PERL) $(DEV_TOOLS_DIR)/install_dev_files.pl \ --buildprefix=$(BUILDPREFIX) \ --prefix=$(PREFIX) \ --exec-prefix=$(EXEC_PREFIX) \ @@ -2394,7 +2394,7 @@ install-dev-only: installable MANIFEST MANIFEST.generated install-doc: - $(PERL) tools/dev/install_doc_files.pl \ + $(PERL) $(DEV_TOOLS_DIR)/install_doc_files.pl \ --buildprefix=$(BUILDPREFIX) \ --prefix=$(PREFIX) \ --docdir=$(DOC_DIR) \ @@ -2423,7 +2423,7 @@ release : MANIFEST MANIFEST.generated rm parrot-$(VERSION) win32-inno-installer : world installable - $(PERL) tools/dev/mk_inno.pl + $(PERL) $(DEV_TOOLS_DIR)/mk_inno.pl $(INNO_SETUP) parrot.iss ############################################################################### @@ -2529,12 +2529,12 @@ tags.dummy: CRITIC_FILES = 'lib/Parrot' perlcritic: - perlcritic --profile tools/dev/perlcritic.conf $(CRITIC_FILES) + perlcritic --profile $(DEV_TOOLS_DIR)/perlcritic.conf $(CRITIC_FILES) # Andy's extra-cranky Perl::Critic checking for cage cleaners cagecritic: @perl -MPerl::Critic::Bangs -e'$$min=q{1.04};die qq{You need Bangs $$min} unless $$Perl::Critic::Bangs::VERSION ge $$min' - perlcritic -1 --profile tools/dev/perlcritic-cage.conf $(CRITIC_FILES) + perlcritic -1 --profile $(DEV_TOOLS_DIR)/perlcritic-cage.conf $(CRITIC_FILES) # This target will eventually create all the headers automatically. If you # are having problems with linkage in Win32 (or elsewhere), because something From a575f3b575b1b9bddec78ed86c7f78d7f4b7ef0e Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Wed, 25 Aug 2010 04:40:54 +0000 Subject: [PATCH 112/165] convert pbc_to_exe over to Getopt;Obj to facilitate adding new options possibly assists with TT #1398 and TT #1653 git-svn-id: https://svn.parrot.org/parrot/trunk@48649 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/gen/makefiles/root.in | 2 +- tools/dev/pbc_to_exe.pir | 54 ++++++++++++------------------------ 2 files changed, 18 insertions(+), 38 deletions(-) diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index 044b02a6ab..a6d040fafe 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -841,7 +841,7 @@ $(PARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \ @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC) #IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 -$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT) +$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT) $(LIBRARY_DIR)/Getopt/Obj.pbc $(PARROT) -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir $(PARROT) pbc_to_exe.pbc pbc_to_exe.pbc diff --git a/tools/dev/pbc_to_exe.pir b/tools/dev/pbc_to_exe.pir index 5c640aeec8..83d2ce6ce5 100644 --- a/tools/dev/pbc_to_exe.pir +++ b/tools/dev/pbc_to_exe.pir @@ -143,49 +143,29 @@ MAIN obj = $P0['o'] exe = $P0['exe'] - .local pmc args - args = argv - - .local int argc - argc = args - - if argc == 2 goto proper_args - if argc == 3 goto check_install - .return () - - check_install: - .local string infile, install - - $P0 = shift args - infile = shift args - install = shift args - if install == '--install' goto proper_install - .return () + load_bytecode 'Getopt/Obj.pbc' + .local pmc getopt + getopt = new ['Getopt';'Obj'] + push getopt, 'install|i' + + $P0 = shift argv # ignore program name + .local pmc opts + opts = getopt.'get_options'(argv) + .local string infile + infile = shift argv - proper_install: + # substitute .c for .pbc + # remove .c for executable .local string cfile, objfile, exefile - - cfile = 'replace_pbc_extension'(infile, '.c') - objfile = 'replace_pbc_extension'(infile, obj) - $S0 = 'replace_pbc_extension'(infile, exe) - exefile = 'prepend_installable'($S0) - - .return(infile, cfile, objfile, exefile) - - proper_args: - - $P0 = shift args - infile = shift args - cfile = 'replace_pbc_extension'(infile, '.c') objfile = 'replace_pbc_extension'(infile, obj) exefile = 'replace_pbc_extension'(infile, exe) + $I0 = opts['install'] + unless $I0 goto end_installable + exefile = 'prepend_installable'(exefile) + end_installable: - # substitute .c for .pbc - # remove .c for executable - - # TODO this should complain about results/returns mismatch - .return(infile, cfile, objfile, exefile) + .return (infile, cfile, objfile, exefile) .end .sub 'determine_code_type' From e89390b7da62137172b06b4e9dc2d1c5131ff52d Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Wed, 25 Aug 2010 08:31:02 +0000 Subject: [PATCH 113/165] delete referece to closed ticket TT #1446 git-svn-id: https://svn.parrot.org/parrot/trunk@48650 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/exception.t | 1 - 1 file changed, 1 deletion(-) diff --git a/t/pmc/exception.t b/t/pmc/exception.t index a676775d2e..9388a99cb6 100644 --- a/t/pmc/exception.t +++ b/t/pmc/exception.t @@ -177,7 +177,6 @@ _handler: .end # Test clone vtable function -# TT #1446 - need more tests .sub test_throw_clone .local pmc ex, exclone, eh, ehguard .local int result From c5f63e69272ce3b593068067b2e20d62b57417a2 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Wed, 25 Aug 2010 09:11:12 +0000 Subject: [PATCH 114/165] some improvement in exception/exceptionhandler tests git-svn-id: https://svn.parrot.org/parrot/trunk@48651 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/exception.t | 18 ++++-------------- t/pmc/exceptionhandler.t | 25 ++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/t/pmc/exception.t b/t/pmc/exception.t index 9388a99cb6..af050c16ce 100644 --- a/t/pmc/exception.t +++ b/t/pmc/exception.t @@ -20,7 +20,7 @@ Tests C and C PMCs. .sub main :main .include 'test_more.pir' - plan(24) + plan(23) test_bool() test_int() test_attrs() @@ -34,25 +34,15 @@ Tests C and C PMCs. .end .sub test_bool - $P0 = new 'ExceptionHandler' - set_addr $P0, _handler - ok($P0,'ExceptionHandler object return true') $P1 = new 'Exception' ok($P1,'Exception object return true') - .return() - _handler: - say "howdy bool!" .end .sub test_int - $P0 = new 'ExceptionHandler' - set_addr $P0, _handler - push_eh $P0 + $P0 = new 'Exception' + $P0 = 42 $I0 = $P0 - ok(1,'get_integer on ExceptionHandler ') - .return() - _handler: - say "howdy int!" + is($I0, 42, 'set/get integer on Exception') .end .sub test_attrs diff --git a/t/pmc/exceptionhandler.t b/t/pmc/exceptionhandler.t index 1a25d623e9..598e267a0a 100644 --- a/t/pmc/exceptionhandler.t +++ b/t/pmc/exceptionhandler.t @@ -23,7 +23,10 @@ Tests the ExceptionHandler PMC. .include 'test_more.pir' # If test exited with "bad plan" MyHandlerCan.can_handle wasn't invoked. - plan(15) + plan(18) + + test_bool() + test_int() .local pmc eh, eh2 eh = new ['ExceptionHandler'] @@ -136,6 +139,26 @@ Tests the ExceptionHandler PMC. ok($I0, 'Exception Handler subclass catch exception') .end +.sub test_bool + $P0 = new 'ExceptionHandler' + nok($P0,'ExceptionHandler without address is false') + set_addr $P0, _handler + ok($P0,'ExceptionHandler with address is true') + _handler: +.end + +.sub test_int + $P0 = new 'ExceptionHandler' + set_addr $P0, _handler + push_eh $P0 + $I0 = $P0 + ok(1,'get_integer on ExceptionHandler ') + .return() + _handler: + say "howdy int!" +.end + + .sub subclass_exception_handler .local pmc myhandler myhandler = subclass 'ExceptionHandler', [ 'MyHandler' ] From fa6fef9a77f15250ec1432c4a40db63b7ee04272 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Wed, 25 Aug 2010 12:05:24 +0000 Subject: [PATCH 115/165] Make sure custom_mark flag of captures gets set in pmc_set git-svn-id: https://svn.parrot.org/parrot/trunk@48652 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/capture.pmc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pmc/capture.pmc b/src/pmc/capture.pmc index aa017d7d42..7acb15979f 100644 --- a/src/pmc/capture.pmc +++ b/src/pmc/capture.pmc @@ -731,6 +731,8 @@ erase the contents of the array and hash components. GET_ATTR_hash(INTERP, capture, hash); SET_ATTR_array(INTERP, SELF, array); SET_ATTR_hash(INTERP, SELF, hash); + if (!PMC_IS_NULL(array) || !PMC_IS_NULL(hash)) + PObj_custom_mark_SET(SELF); } else Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION, From b583793d150b9185ec9e3c11ed4eada006871b93 Mon Sep 17 00:00:00 2001 From: Gerd Pokorra Date: Wed, 25 Aug 2010 16:34:20 +0000 Subject: [PATCH 116/165] add a method to replace entries like "@key@" only for shebang at the first line of a file git-svn-id: https://svn.parrot.org/parrot/trunk@48653 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- lib/Parrot/Configure/Compiler.pm | 51 ++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/lib/Parrot/Configure/Compiler.pm b/lib/Parrot/Configure/Compiler.pm index 8609775d0c..6becbeaea0 100644 --- a/lib/Parrot/Configure/Compiler.pm +++ b/lib/Parrot/Configure/Compiler.pm @@ -1,15 +1,17 @@ -# Copyright (C) 2001-2008, Parrot Foundation. +# Copyright (C) 2001-2010, Parrot Foundation. # $Id$ =head1 NAME -Parrot::Configure::Compiler - C-Related methods for configuration +Parrot::Configure::Compiler - C-Related methods for configuration and more =head1 DESCRIPTION The Parrot::Configure::Compiler module provides methods inherited by Parrot::Configure which prepare and/or run C programs during -compilation. +compilation. Also other files like makefiles will be generated with methods +from this module by replacing entries like C<@key@> with C's value from +the configuration system's data. =head2 Methods @@ -193,6 +195,49 @@ sub cc_clean { ## no critic Subroutines::RequireFinalReturn qw( .exe.manifest .ilk .pdb ); } +=item C + + $conf->shebang_mod($source, $target); + +Takes the specified source file, replacing entries like C<@key@> with +C's value from the configuration system's data, and writes the results +to specified target file. The replacement is only done in the first line of +the file normally to set the shebang value accordingly. + +=cut + +sub shebang_mod { + my $conf = shift; + my ( $source, $target ) = @_; + + open my $in, '<', $source or die "Can't open $source: $!"; + open my $out, '>', "$target.tmp" or die "Can't open $target.tmp: $!"; + + my $line = <$in>; + + # interpolate @foo@ values + $line =~ s{ \@ (\w+) \@ }{ + if(defined(my $val=$conf->data->get($1))) { + $val; + } + else { + warn "value for '\@$1\@' in $source is undef"; + ''; + } + }egx; + + print $out $line; + + while ( my $line = <$in> ) { + print $out $line; + } + + close($in) or die "Can't close $source: $!"; + close($out) or die "Can't close $target: $!"; + + move_if_diff( "$target.tmp", $target ); +} + =item C $conf->genfile($source, $target, %options); From 16f490e0795e14bbff3e92c66501fb324c198c92 Mon Sep 17 00:00:00 2001 From: Gerd Pokorra Date: Wed, 25 Aug 2010 16:59:36 +0000 Subject: [PATCH 117/165] set the "@key@" shebang value in the "tools/dev/mk_language_shell.pl.in" git-svn-id: https://svn.parrot.org/parrot/trunk@48654 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 6 +++--- MANIFEST.generated | 1 + config/gen/makefiles.pm | 3 +++ tools/dev/{mk_language_shell.pl => mk_language_shell.pl.in} | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) rename tools/dev/{mk_language_shell.pl => mk_language_shell.pl.in} (99%) diff --git a/MANIFEST b/MANIFEST index 6bfa28fcdb..c92ce9dae5 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,12 +1,12 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 15:05:33 2010 UT +# generated by ./tools/dev/mk_manifest_and_skip.pl Wed Aug 25 16:45:51 2010 UT # # See below for documentation on the format of this file. # # See docs/submissions.pod and the documentation in -# tools/dev/mk_manifest_and_skip.pl on how to recreate this file after SVN +# ./tools/dev/mk_manifest_and_skip.pl on how to recreate this file after SVN # has been told about new or deleted files. .gitignore [] CREDITS [main]doc @@ -2123,7 +2123,7 @@ tools/dev/manicheck.pl [] tools/dev/mk_gitignore.pl [] tools/dev/mk_inno.pl [] tools/dev/mk_inno_language.pl [] -tools/dev/mk_language_shell.pl [devel] +tools/dev/mk_language_shell.pl.in [] tools/dev/mk_manifest_and_skip.pl [] tools/dev/mk_native_pbc [] tools/dev/mk_nci_thunks.pl [] diff --git a/MANIFEST.generated b/MANIFEST.generated index 0b4213026b..63f0e96738 100644 --- a/MANIFEST.generated +++ b/MANIFEST.generated @@ -419,4 +419,5 @@ src/pmc/undef.dump [devel]src src/pmc/unmanagedstruct.dump [devel]src src/string_private_cstring.h [] tools/build/dynpmc.pl [] +tools/dev/mk_language_shell.pl [devel] vtable.dump [devel]src diff --git a/config/gen/makefiles.pm b/config/gen/makefiles.pm index 6d8f21944c..e1e385a3f9 100644 --- a/config/gen/makefiles.pm +++ b/config/gen/makefiles.pm @@ -68,6 +68,9 @@ sub runstep { $self->makefiles($conf); + $conf->shebang_mod( 'tools/dev/mk_language_shell.pl.in' + => 'tools/dev/mk_language_shell.pl', ); + return 1; } diff --git a/tools/dev/mk_language_shell.pl b/tools/dev/mk_language_shell.pl.in similarity index 99% rename from tools/dev/mk_language_shell.pl rename to tools/dev/mk_language_shell.pl.in index c855fa2013..a0eaef08df 100644 --- a/tools/dev/mk_language_shell.pl +++ b/tools/dev/mk_language_shell.pl.in @@ -1,4 +1,4 @@ -#! perl +#!@perl@ # Copyright (C) 2007-2010, Parrot Foundation. # $Id$ From 8285e84e30d8509e3a86b27ea43f78d1dbf29337 Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Wed, 25 Aug 2010 17:00:53 +0000 Subject: [PATCH 118/165] add --runcore option to pbc_to_exe in order to optionally use the slow core fixes TT #1653 git-svn-id: https://svn.parrot.org/parrot/trunk@48655 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/pbc_to_exe.pir | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/tools/dev/pbc_to_exe.pir b/tools/dev/pbc_to_exe.pir index 83d2ce6ce5..a487fa413f 100644 --- a/tools/dev/pbc_to_exe.pir +++ b/tools/dev/pbc_to_exe.pir @@ -22,6 +22,8 @@ Warning! With --install there must be no directory prefix in the first arg yet. =cut +.include 'interpcores.pasm' + .sub 'main' :main .param pmc argv @@ -31,8 +33,9 @@ Warning! With --install there must be no directory prefix in the first arg yet. .local string cfile .local string objfile .local string exefile + .local int runcore - (infile :optional, cfile :optional, objfile :optional, exefile :optional) = 'handle_args'(argv) + (infile, cfile, objfile, exefile, runcore) = 'handle_args'(argv) unless infile > '' goto err_infile .local string code_type @@ -66,6 +69,10 @@ HEADER print outfh, codestring + print outfh, '#define RUNCORE ' + print outfh, runcore + print outfh, "\n" + print outfh, <<'MAIN' int main(int argc, const char *argv[]) { @@ -86,6 +93,7 @@ HEADER Parrot_init_stacktop(interp, &interp); Parrot_set_executable_name(interp, Parrot_str_new(interp, argv[0], 0)); + Parrot_set_run_core(interp, RUNCORE); Parrot_set_flag(interp, PARROT_DESTROY_FLAG); pf = PackFile_new(interp, 0); @@ -147,6 +155,7 @@ MAIN .local pmc getopt getopt = new ['Getopt';'Obj'] push getopt, 'install|i' + push getopt, 'runcore|R:s' $P0 = shift argv # ignore program name .local pmc opts @@ -165,7 +174,27 @@ MAIN exefile = 'prepend_installable'(exefile) end_installable: - .return (infile, cfile, objfile, exefile) + .local int runcore + $S0 = opts['runcore'] + unless $S0 == 'slow' goto end_slow_core + runcore = .PARROT_SLOW_CORE + goto done_runcore + end_slow_core: + unless $S0 == 'fast' goto end_fast_core + runcore = .PARROT_FAST_CORE + goto done_runcore + end_fast_core: + unless $S0 == '' goto end_unspecified_core + runcore = .PARROT_FAST_CORE + goto done_runcore + end_unspecified_core: + # invalid runcore name + $S0 = "Unsupported runcore: `" . $S0 + $S0 = $S0 . "'" + die $S0 + done_runcore: + + .return (infile, cfile, objfile, exefile, runcore) .end .sub 'determine_code_type' From 9e41e9df86638de82bf59f54ec8c6cc4f53a234f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Perrad?= Date: Wed, 25 Aug 2010 19:51:57 +0000 Subject: [PATCH 119/165] [distutils] fix TT #1756 git-svn-id: https://svn.parrot.org/parrot/trunk@48656 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- runtime/parrot/library/distutils.pir | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/parrot/library/distutils.pir b/runtime/parrot/library/distutils.pir index afbb35e7e0..4d87316188 100644 --- a/runtime/parrot/library/distutils.pir +++ b/runtime/parrot/library/distutils.pir @@ -2333,11 +2333,11 @@ array of pathname or a single pathname if $I0 goto L1 $S0 = array $S3 = $S0 - $S2 = $S1 . $S3 $I0 = index $S0, "build/" unless $I0 == 0 goto L0 $S3 = substr $S0, 6 L0: + $S2 = $S1 . $S3 files[$S2] = $S0 goto L2 L1: From 318c538b9b12dd2a1858ac220d6e33c963abb162 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Wed, 25 Aug 2010 20:13:44 +0000 Subject: [PATCH 120/165] add a cast to pbc_to_exe generated code for c++ builds git-svn-id: https://svn.parrot.org/parrot/trunk@48657 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/pbc_to_exe.pir | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/dev/pbc_to_exe.pir b/tools/dev/pbc_to_exe.pir index a487fa413f..39f280bb78 100644 --- a/tools/dev/pbc_to_exe.pir +++ b/tools/dev/pbc_to_exe.pir @@ -93,7 +93,7 @@ HEADER Parrot_init_stacktop(interp, &interp); Parrot_set_executable_name(interp, Parrot_str_new(interp, argv[0], 0)); - Parrot_set_run_core(interp, RUNCORE); + Parrot_set_run_core(interp, (Parrot_Run_core_t)RUNCORE); Parrot_set_flag(interp, PARROT_DESTROY_FLAG); pf = PackFile_new(interp, 0); From 29726d3c01e9792ecd00882c352496ed01011709 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Wed, 25 Aug 2010 22:54:04 +0000 Subject: [PATCH 121/165] (Once again ...) Run tools/dev/mk_packfile_pbc to update t/native_pbc files for Darwin/PPC. git-svn-id: https://svn.parrot.org/parrot/trunk@48658 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/native_pbc/integer.pbc | Bin 752 -> 752 bytes t/native_pbc/number.pbc | Bin 2272 -> 2272 bytes t/native_pbc/string.pbc | Bin 1104 -> 1104 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/t/native_pbc/integer.pbc b/t/native_pbc/integer.pbc index af8d39a1d3f713f5f7cc5ad63842892b2a55008c..bd0e06a0b2184138653ac11977c0d8e9f4937f57 100644 GIT binary patch delta 30 mcmeys`hiv8Ux1S{FP9V-3nK#)I|B#PM1kv!>>FQjFaZF37Y9TD delta 30 mcmeys`hiv8Ux1S{FP9V-3nK#)8v_U9M1kv!Y#U#2FaZF2`v*Y) diff --git a/t/native_pbc/number.pbc b/t/native_pbc/number.pbc index 11306633e9097bdd69a978a9a69e3759bd4ef604..40a326f34b2c8131802d66b36986394adbf920e5 100644 GIT binary patch delta 32 ncmaDL_&`wLUx1S{FP9V-3nK#)I|B#PMgeseM)u7XEGt+5fx-r; delta 32 ncmaDL_&`wLUx1S{FP9V-3nK#)8v_U9MgeseMz+lsEGt+5fuRPa diff --git a/t/native_pbc/string.pbc b/t/native_pbc/string.pbc index 2b750d668e0905cbf440e54ac98a305ec6dc9779..52ee982b3fb205561df48fa77006e26b325925c4 100644 GIT binary patch delta 32 ocmcb>ae+hNUx1S{FP9V-3nK#)I|B#PMuFvwjO?3tFwS5C0D=PtUH||9 delta 32 ocmcb>ae+hNUx1S{FP9V-3nK#)8v_U9MuFvwjBJ~CFwS5C0D Date: Wed, 25 Aug 2010 23:16:08 +0000 Subject: [PATCH 122/165] changed filename so that it pass the coding standards test "t/codingstd/filenames.t" (not more than one dot "."); Thanks to Jim for the advice. git-svn-id: https://svn.parrot.org/parrot/trunk@48659 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 6 +++--- config/gen/makefiles.pm | 4 ++-- tools/dev/{mk_language_shell.pl.in => mk_language_shell.in} | 0 3 files changed, 5 insertions(+), 5 deletions(-) rename tools/dev/{mk_language_shell.pl.in => mk_language_shell.in} (100%) diff --git a/MANIFEST b/MANIFEST index c92ce9dae5..6b383aa162 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,12 +1,12 @@ # ex: set ro: # $Id$ # -# generated by ./tools/dev/mk_manifest_and_skip.pl Wed Aug 25 16:45:51 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Wed Aug 25 22:58:44 2010 UT # # See below for documentation on the format of this file. # # See docs/submissions.pod and the documentation in -# ./tools/dev/mk_manifest_and_skip.pl on how to recreate this file after SVN +# tools/dev/mk_manifest_and_skip.pl on how to recreate this file after SVN # has been told about new or deleted files. .gitignore [] CREDITS [main]doc @@ -2123,7 +2123,7 @@ tools/dev/manicheck.pl [] tools/dev/mk_gitignore.pl [] tools/dev/mk_inno.pl [] tools/dev/mk_inno_language.pl [] -tools/dev/mk_language_shell.pl.in [] +tools/dev/mk_language_shell.in [] tools/dev/mk_manifest_and_skip.pl [] tools/dev/mk_native_pbc [] tools/dev/mk_nci_thunks.pl [] diff --git a/config/gen/makefiles.pm b/config/gen/makefiles.pm index e1e385a3f9..cd22b5ff00 100644 --- a/config/gen/makefiles.pm +++ b/config/gen/makefiles.pm @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2009, Parrot Foundation. +# Copyright (C) 2001-2010, Parrot Foundation. # $Id$ =head1 NAME @@ -68,7 +68,7 @@ sub runstep { $self->makefiles($conf); - $conf->shebang_mod( 'tools/dev/mk_language_shell.pl.in' + $conf->shebang_mod( 'tools/dev/mk_language_shell.in' => 'tools/dev/mk_language_shell.pl', ); return 1; diff --git a/tools/dev/mk_language_shell.pl.in b/tools/dev/mk_language_shell.in similarity index 100% rename from tools/dev/mk_language_shell.pl.in rename to tools/dev/mk_language_shell.in From b3ca2ac586851d61fa80bb248a73e77af40ab6df Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Thu, 26 Aug 2010 01:21:22 +0000 Subject: [PATCH 123/165] add --output option to pbc_to_exe addresses TT #1398 git-svn-id: https://svn.parrot.org/parrot/trunk@48660 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/pbc_to_exe.pir | 85 ++++++++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 26 deletions(-) diff --git a/tools/dev/pbc_to_exe.pir b/tools/dev/pbc_to_exe.pir index 39f280bb78..9a4e0a4db3 100644 --- a/tools/dev/pbc_to_exe.pir +++ b/tools/dev/pbc_to_exe.pir @@ -34,8 +34,9 @@ Warning! With --install there must be no directory prefix in the first arg yet. .local string objfile .local string exefile .local int runcore + .local int install - (infile, cfile, objfile, exefile, runcore) = 'handle_args'(argv) + (infile, cfile, objfile, exefile, runcore, install) = 'handle_args'(argv) unless infile > '' goto err_infile .local string code_type @@ -130,8 +131,8 @@ MAIN no_extra: - 'compile_file'(cfile, objfile) - 'link_file'(objfile, exefile, extra_obj) + 'compile_file'(cfile, objfile, install) + 'link_file'(objfile, exefile, extra_obj, install) .return () err_infile: @@ -156,6 +157,7 @@ MAIN getopt = new ['Getopt';'Obj'] push getopt, 'install|i' push getopt, 'runcore|R:s' + push getopt, 'output|o:s' $P0 = shift argv # ignore program name .local pmc opts @@ -163,38 +165,69 @@ MAIN .local string infile infile = shift argv - # substitute .c for .pbc - # remove .c for executable + .local int install + .local string runcore + .local string outfile + install = opts['install'] + runcore = opts['runcore'] + outfile = opts['output'] + + $S0 = substr infile, -4, 4 + $S0 = downcase $S0 + unless $S0 != '.pbc' goto done_pbc_extn_check + die "input pbc file name does not end in '.pbc'" + done_pbc_extn_check: + .local string cfile, objfile, exefile - cfile = 'replace_pbc_extension'(infile, '.c') - objfile = 'replace_pbc_extension'(infile, obj) - exefile = 'replace_pbc_extension'(infile, exe) - $I0 = opts['install'] - unless $I0 goto end_installable - exefile = 'prepend_installable'(exefile) - end_installable: - - .local int runcore - $S0 = opts['runcore'] - unless $S0 == 'slow' goto end_slow_core - runcore = .PARROT_SLOW_CORE + if outfile == '' goto no_outfile + $I0 = length exe + $I1 = - $I0 + $S0 = substr outfile, $I1, $I0 + $S0 = downcase $S0 + $S1 = downcase exe + unless $S0 != $S1 goto done_exe_extn_check + $S0 = "output executable name does not end in `" . exe + $S0 = $S0 . "'" + die $S0 + done_exe_extn_check: + outfile = replace outfile, $I1, $I0, '' + + cfile = outfile . '.c' + objfile = outfile . obj + exefile = outfile . exe + goto end_outfile + no_outfile: + # substitute .c for .pbc + # remove .c for executable + outfile = replace infile, -4, 4, '' # remove .pbc extension + cfile = outfile . '.c' + objfile = outfile . obj + exefile = outfile . exe + unless install goto end_installable + exefile = 'prepend_installable'(exefile) + end_installable: + end_outfile: + + .local int runcore_code + unless runcore == 'slow' goto end_slow_core + runcore_code = .PARROT_SLOW_CORE goto done_runcore end_slow_core: - unless $S0 == 'fast' goto end_fast_core - runcore = .PARROT_FAST_CORE + unless runcore == 'fast' goto end_fast_core + runcore_code = .PARROT_FAST_CORE goto done_runcore end_fast_core: - unless $S0 == '' goto end_unspecified_core - runcore = .PARROT_FAST_CORE + unless runcore == '' goto end_unspecified_core + runcore_code = .PARROT_FAST_CORE goto done_runcore end_unspecified_core: # invalid runcore name - $S0 = "Unsupported runcore: `" . $S0 + $S0 = "Unsupported runcore: `" . runcore $S0 = $S0 . "'" die $S0 done_runcore: - .return (infile, cfile, objfile, exefile, runcore) + .return (infile, cfile, objfile, exefile, runcore_code, install) .end .sub 'determine_code_type' @@ -527,7 +560,7 @@ END_OF_FUNCTION .sub 'compile_file' .param string cfile .param string objfile - .param int install :optional + .param int install $P0 = '_config'() .local string cc, ccflags, cc_o_out, osname, build_dir, slash @@ -587,7 +620,7 @@ END_OF_FUNCTION .param string objfile .param string exefile .param string extra_obj - .param int install :optional + .param int install $P0 = '_config'() .local string cc, link, link_dynamic, linkflags, ld_out, libparrot, libs, o @@ -616,7 +649,7 @@ END_OF_FUNCTION config = concat build_dir, slash config .= 'src' config .= slash - if exeprefix == 'installable_' goto config_to_install + if install goto config_to_install config .= 'parrot_config' goto config_cont config_to_install: From 773893b87ea9c073c1d95cd90da8a4d71a07fcd4 Mon Sep 17 00:00:00 2001 From: Peter Lobsinger Date: Thu, 26 Aug 2010 01:31:20 +0000 Subject: [PATCH 124/165] add --help option to pbc_to_exe git-svn-id: https://svn.parrot.org/parrot/trunk@48661 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- tools/dev/pbc_to_exe.pir | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/tools/dev/pbc_to_exe.pir b/tools/dev/pbc_to_exe.pir index 9a4e0a4db3..804ea65a7c 100644 --- a/tools/dev/pbc_to_exe.pir +++ b/tools/dev/pbc_to_exe.pir @@ -18,8 +18,6 @@ Compile bytecode to executable. pbc_to_exe my.pbc --install => installable_my.exe -Warning! With --install there must be no directory prefix in the first arg yet. - =cut .include 'interpcores.pasm' @@ -158,20 +156,37 @@ MAIN push getopt, 'install|i' push getopt, 'runcore|R:s' push getopt, 'output|o:s' + push getopt, 'help|h' $P0 = shift argv # ignore program name .local pmc opts opts = getopt.'get_options'(argv) - .local string infile - infile = shift argv + .local int help .local int install .local string runcore .local string outfile + help = opts['help'] install = opts['install'] runcore = opts['runcore'] outfile = opts['output'] + unless help goto end_help + $P0 = getstderr + print $P0, <<'HELP' +pbc_to_exe [options] + Options: + -h --help + -i --install + -R --runcore=slow|fast + -o --output=FILE +HELP + exit 0 + end_help: + + .local string infile + infile = shift argv + $S0 = substr infile, -4, 4 $S0 = downcase $S0 unless $S0 != '.pbc' goto done_pbc_extn_check From ee57334d13f5a48d3e4824bfeca4c3a26d12cc91 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Thu, 26 Aug 2010 10:12:24 +0000 Subject: [PATCH 125/165] add tools/dev/mk_language_shell.pl to files in realclean target git-svn-id: https://svn.parrot.org/parrot/trunk@48662 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/gen/makefiles/root.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index a6d040fafe..354a017a7d 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -220,7 +220,8 @@ CONFIGURE_GENERATED_FILES = \ .parrot_current_rev \ #IF(has_opengl): runtime/parrot/include/opengl_defines.pasm \ #IF(has_opengl): runtime/parrot/library/OpenGL_funcs.pir \ - runtime/parrot/include/signal.pasm + runtime/parrot/include/signal.pasm \ + tools/dev/mk_language_shell.pl ############################################################################### From d50b59c1da68266a29c3b2c3860e06da8a4f8fb0 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Thu, 26 Aug 2010 10:19:23 +0000 Subject: [PATCH 126/165] set svn:ignore git-svn-id: https://svn.parrot.org/parrot/trunk@48663 d31e2699-5ff4-0310-a27c-f18f2fbe73fe From 78de63abfde2a4b46aff7f3a78afe6dc410d1de2 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Thu, 26 Aug 2010 10:22:58 +0000 Subject: [PATCH 127/165] re-generate MANIFEST.SKIP git-svn-id: https://svn.parrot.org/parrot/trunk@48664 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST.SKIP | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP index 3c3899e5ac..1ffa6e6572 100644 --- a/MANIFEST.SKIP +++ b/MANIFEST.SKIP @@ -1,6 +1,6 @@ # ex: set ro: # $Id$ -# generated by tools/dev/mk_manifest_and_skip.pl Tue Aug 24 12:05:18 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Thu Aug 26 10:22:02 2010 UT # # This file should contain a transcript of the svn:ignore properties # of the directories in the Parrot subversion repository. (Needed for @@ -1080,6 +1080,9 @@ ^t/tools/pmc2c\..*\.h/ ^t/tools/pmc2c\..*\.pmc$ ^t/tools/pmc2c\..*\.pmc/ +# generated from svn:ignore of 'tools/dev/' +^tools/dev/mk_language_shell\.pl$ +^tools/dev/mk_language_shell\.pl/ # Local variables: # mode: text # buffer-read-only: t From e0da4f71cf1af7476aae9f8f90ab6918a22423c7 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Thu, 26 Aug 2010 12:42:06 +0000 Subject: [PATCH 128/165] Fix gcdebug runcore Fix GC flags. Store 0xdeadbeef in data pointer because vtable is used as free list now. git-svn-id: https://svn.parrot.org/parrot/trunk@48666 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc.c | 2 +- src/runcore/cores.c | 4 ++-- src/runcore/trace.c | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/pmc.c b/src/pmc.c index bc7b9a8a32..aabab0f6f7 100644 --- a/src/pmc.c +++ b/src/pmc.c @@ -127,7 +127,7 @@ Parrot_pmc_destroy(PARROT_INTERP, ARGMOD(PMC *pmc)) #ifndef NDEBUG - pmc->vtable = (VTABLE *)0xdeadbeef; + pmc->data = (DPOINTER *)0xdeadbeef; #endif diff --git a/src/runcore/cores.c b/src/runcore/cores.c index 2f66c95413..04a2404741 100644 --- a/src/runcore/cores.c +++ b/src/runcore/cores.c @@ -675,7 +675,7 @@ runops_gc_debug_core(PARROT_INTERP, SHIM(Parrot_runcore_t *runcore), ARGIN(opcod Parrot_ex_throw_from_c_args(interp, NULL, 1, "attempt to access code outside of current code segment"); - Parrot_gc_mark_and_sweep(interp, GC_TRACE_FULL); + Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG); Parrot_pcc_set_pc(interp, CURRENT_CONTEXT(interp), pc); DO_OP(pc, interp); @@ -717,7 +717,7 @@ runops_debugger_core(PARROT_INTERP, SHIM(Parrot_runcore_t *runcore), ARGIN(opcod "attempt to access code outside of current code segment"); if (interp->pdb->state & PDB_GCDEBUG) - Parrot_gc_mark_and_sweep(interp, 0); + Parrot_gc_mark_and_sweep(interp, GC_trace_stack_FLAG); if (interp->pdb->state & PDB_TRACING) { trace_op(interp, diff --git a/src/runcore/trace.c b/src/runcore/trace.c index a30a8c7e57..cfdc7601d1 100644 --- a/src/runcore/trace.c +++ b/src/runcore/trace.c @@ -127,15 +127,15 @@ trace_pmc_dump(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc)) return; } - if (!pmc->vtable || (UINTVAL)pmc->vtable == 0xdeadbeef) { - Parrot_io_eprintf(debugger, ""); - return; - } - if (PObj_on_free_list_TEST(pmc)) Parrot_io_eprintf(debugger, "**************** PMC is on free list *****\n"); + if (!pmc->vtable) { + Parrot_io_eprintf(debugger, ""); + return; + } + if (pmc->vtable->pmc_class == pmc) { STRING * const name = trace_class_name(interp, pmc); Parrot_io_eprintf(debugger, "Class=%Ss:PMC(%#p)", name, pmc); From 50cfaeb8258bf3bf037453e3ce570c489d0b4ba7 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Thu, 26 Aug 2010 13:09:12 +0000 Subject: [PATCH 129/165] Small fix to append_format in StringBuilder PMC Handle empty arg list for "%," format correctly git-svn-id: https://svn.parrot.org/parrot/trunk@48667 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/stringbuilder.pmc | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/pmc/stringbuilder.pmc b/src/pmc/stringbuilder.pmc index a34def69a5..579fc99e99 100644 --- a/src/pmc/stringbuilder.pmc +++ b/src/pmc/stringbuilder.pmc @@ -353,16 +353,13 @@ key receives the value of the hash element. } else if (Parrot_str_equal(INTERP, key, comma)) { INTVAL num_args = VTABLE_elements(INTERP, args); - INTVAL pos_args = 1; + INTVAL pos_args; - VTABLE_push_string(INTERP, stringbuilder, - VTABLE_get_string_keyed_int(INTERP, args, 0)); - - while (pos_args < num_args) { - VTABLE_push_string(INTERP, stringbuilder, comma_space); + for (pos_args = 0; pos_args < num_args; ++pos_args) { + if (pos_args > 0) + VTABLE_push_string(INTERP, stringbuilder, comma_space); VTABLE_push_string(INTERP, stringbuilder, VTABLE_get_string_keyed_int(INTERP, args, pos_args)); - pos_args++; } } else if (Parrot_str_equal(INTERP, key, percent)) { From 96098aded47b6bc4a87e431f2847e125b4c7fece Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Thu, 26 Aug 2010 13:10:45 +0000 Subject: [PATCH 130/165] some more Exception tests git-svn-id: https://svn.parrot.org/parrot/trunk@48668 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/exception.t | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/t/pmc/exception.t b/t/pmc/exception.t index af050c16ce..30e443a55c 100644 --- a/t/pmc/exception.t +++ b/t/pmc/exception.t @@ -20,9 +20,10 @@ Tests C and C PMCs. .sub main :main .include 'test_more.pir' - plan(23) + plan(27) test_bool() test_int() + test_get_integer_keyed() test_attrs() test_attributes() test_push_pop_eh() @@ -45,6 +46,30 @@ Tests C and C PMCs. is($I0, 42, 'set/get integer on Exception') .end +.sub test_get_integer_keyed + .local pmc ex, eh + .local int value + ex = new ['Exception'] + value = ex['type'] + is(value, 0, 'get type default value') + value = ex['exit_code'] + is(value, 0, 'get exit_code default value') + value = ex['handled'] + is(value, 0, 'get handled default is false') + + eh = new ['ExceptionHandler'] + eh.'handle_types'(.EXCEPTION_ATTRIB_NOT_FOUND) + set_label eh, catch + push_eh eh + value = 1 + value = ex['the droids you are looking for'] + value = 0 + catch: + finalize eh + pop_eh + is(value, 1, 'invalid key throws') +.end + .sub test_attrs $P0 = new 'ExceptionHandler' set_addr $P0, _handler From 2a7916ffdd9a30c99564806401c535d50bbac8ee Mon Sep 17 00:00:00 2001 From: chromatic Date: Thu, 26 Aug 2010 19:54:27 +0000 Subject: [PATCH 131/165] [PMC] Added init_int VTABLE to BigInt. git-svn-id: https://svn.parrot.org/parrot/trunk@48673 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/bigint.pmc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/pmc/bigint.pmc b/src/pmc/bigint.pmc index cffbb5ffe8..b1bd042c70 100644 --- a/src/pmc/bigint.pmc +++ b/src/pmc/bigint.pmc @@ -1258,6 +1258,12 @@ Return GMP version string "x.y.z". PObj_custom_destroy_SET(SELF); } + VTABLE void init_int(INTVAL iv) { + bigint_init(INTERP, SELF); + bigint_set_long(INTERP, SELF, (long)iv); + PObj_custom_destroy_SET(SELF); + } + VTABLE PMC *clone() { PMC *res = Parrot_pmc_new(INTERP, SELF->vtable->base_type); bigint_set(INTERP, res, SELF); From b184c09023f0450fbb6a8a08c7dbc4f33ae09012 Mon Sep 17 00:00:00 2001 From: chromatic Date: Thu, 26 Aug 2010 19:54:32 +0000 Subject: [PATCH 132/165] [PMC] Used more init_int() in Integer PMC. git-svn-id: https://svn.parrot.org/parrot/trunk@48674 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/integer.pmc | 169 ++++++++++++++++---------------------------- 1 file changed, 59 insertions(+), 110 deletions(-) diff --git a/src/pmc/integer.pmc b/src/pmc/integer.pmc index 9c76cc4de0..306785713e 100644 --- a/src/pmc/integer.pmc +++ b/src/pmc/integer.pmc @@ -141,9 +141,8 @@ Creates an exact duplicate of this PMC. */ VTABLE PMC *clone() { - PMC * const clone = Parrot_pmc_new(INTERP, SELF->vtable->base_type); - VTABLE_set_integer_native(INTERP, clone, SELF.get_integer()); - return clone; + return Parrot_pmc_new_init_int(INTERP, SELF->vtable->base_type, + SELF.get_integer()); } /* @@ -321,18 +320,13 @@ Adds C to the integer and returns the result in C<*dest>. const INTVAL b = VTABLE_get_integer(INTERP, value); const INTVAL c = a + b; - if ((c^a) >= 0 || (c^b) >= 0) { - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - /* need this for e.g. Undef PMC */ - VTABLE_set_integer_native(INTERP, dest, c); - return dest; - } + if ((c^a) >= 0 || (c^b) >= 0) + return Parrot_pmc_new_init_int(INTERP, + VTABLE_type(INTERP, SELF), c); else { - PMC * temp; + PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, a); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a); return VTABLE_add(INTERP, temp, value, dest); } } @@ -340,10 +334,9 @@ Adds C to the integer and returns the result in C<*dest>. MULTI PMC *add(Complex value, PMC *dest) { const INTVAL a = SELF.get_integer(); - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, value)); - - VTABLE_set_number_native(INTERP, dest, - a + VTABLE_get_number_keyed_int(INTERP, value, 0)); + dest = Parrot_pmc_new_init_int(INTERP, + VTABLE_type(INTERP, value), + a + VTABLE_get_number_keyed_int(INTERP, value, 0)); VTABLE_set_number_keyed_int(INTERP, dest, 1, VTABLE_get_number_keyed_int(INTERP, value, 1)); @@ -354,17 +347,16 @@ Adds C to the integer and returns the result in C<*dest>. MULTI PMC *add(BigInt value, PMC *dest) { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, SELF.get_integer()); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, + SELF.get_integer()); return VTABLE_add(INTERP, temp, value, dest); } MULTI PMC *add(DEFAULT value, PMC *dest) { dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, value)); - VTABLE_set_number_native(INTERP, dest, - SELF.get_integer() + VTABLE_get_number(INTERP, value)); + SELF.get_integer() + VTABLE_get_number(interp, value)); return dest; } @@ -373,17 +365,13 @@ Adds C to the integer and returns the result in C<*dest>. const INTVAL a = VTABLE_get_integer(INTERP, SELF); const INTVAL c = a + b; - if ((c^a) >= 0 || (c^b) >= 0) { - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_integer_native(INTERP, dest, c); - return dest; - } + if ((c^a) >= 0 || (c^b) >= 0) + return Parrot_pmc_new_init_int(INTERP, + VTABLE_type(INTERP, SELF), c); else { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, a); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt,a ); return VTABLE_add_int(INTERP, temp, b, dest); } } @@ -463,17 +451,13 @@ C and C always. const INTVAL b = VTABLE_get_integer(INTERP, value); const INTVAL c = a - b; - if ((c^a) >= 0 || (c^~b) >= 0) { - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_integer_native(INTERP, dest, c); - return dest; - } + if ((c^a) >= 0 || (c^~b) >= 0) + return Parrot_pmc_new_init_int(INTERP, + VTABLE_type(INTERP, SELF), c); else { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, a); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a); return VTABLE_subtract(INTERP, temp, value, dest); } } @@ -495,8 +479,8 @@ C and C always. MULTI PMC *subtract(BigInt value, PMC *dest) { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, SELF.get_integer()); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, + SELF.get_integer()); return VTABLE_subtract(INTERP, temp, value, dest); } @@ -524,17 +508,13 @@ Subtracts C from the integer and returns the result in C<*dest>. const INTVAL a = SELF.get_integer(); const INTVAL c = a - b; - if ((c^a) >= 0 || (c^~b) >= 0) { - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_integer_native(INTERP, dest, c); - return dest; - } + if ((c^a) >= 0 || (c^~b) >= 0) + return Parrot_pmc_new_init_int(INTERP, + VTABLE_type(INTERP, SELF), c); else { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, a); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a); return VTABLE_subtract_int(INTERP, temp, b, dest); } } @@ -624,17 +604,13 @@ Multiplies the integer by C<*value> and returns the result in C<*dest>. const INTVAL c = a * b; const double cf = (double)a * (double)b; - if ((double) c == cf) { - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_integer_native(INTERP, dest, c); - return dest; - } + if ((double) c == cf) + return Parrot_pmc_new_init_int(INTERP, + VTABLE_type(INTERP, SELF), c); else { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, a); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a); return VTABLE_multiply(INTERP, temp, value, dest); } } @@ -657,10 +633,8 @@ Multiplies the integer by C<*value> and returns the result in C<*dest>. MULTI PMC *multiply(DEFAULT value, PMC *dest) { const FLOATVAL valf = VTABLE_get_number(INTERP, value); - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_number_native(INTERP, dest, SELF.get_number() * valf); - return dest; + return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF), + SELF.get_number() * valf); } @@ -669,17 +643,13 @@ Multiplies the integer by C<*value> and returns the result in C<*dest>. const INTVAL c = a * b; const double cf = (double)a * (double)b; - if ((double) c == cf) { - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_integer_native(INTERP, dest, c); - return dest; - } + if ((double) c == cf) + return Parrot_pmc_new_init_int(INTERP, + VTABLE_type(INTERP, SELF), c); else { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, a); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a); return VTABLE_multiply_int(INTERP, temp, b, dest); } } @@ -765,8 +735,8 @@ Divides C by C inplace. MULTI PMC *divide(BigInt value, PMC *dest) { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, SELF.get_integer()); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, + SELF.get_integer()); return VTABLE_divide(INTERP, temp, value, dest); } @@ -777,9 +747,8 @@ Divides C by C inplace. Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO, "float division by zero"); - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - VTABLE_set_number_native(INTERP, dest, SELF.get_number() / d); - return dest; + return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF), + SELF.get_number() / d); } @@ -826,8 +795,8 @@ Divides C by C inplace. MULTI PMC *floor_divide(BigInt value, PMC *dest) { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, SELF.get_integer()); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, + SELF.get_integer()); return VTABLE_floor_divide(INTERP, temp, value, dest); } @@ -840,11 +809,9 @@ Divides C by C inplace. Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO, "float division by zero"); - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - f = floor(SELF.get_number() / d); - VTABLE_set_integer_native(INTERP, dest, (INTVAL)f); - return dest; + return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF), + (INTVAL)f); } @@ -855,12 +822,9 @@ Divides C by C inplace. Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO, "float division by zero"); - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - f = floor(SELF.get_number() / value); - VTABLE_set_integer_native(INTERP, dest, (INTVAL)f); - - return dest; + return Parrot_pmc_new_init_int(INTERP, + VTABLE_type(INTERP, SELF), (INTVAL)f); } VTABLE PMC *floor_divide_float(FLOATVAL value, PMC *dest) { @@ -870,12 +834,9 @@ Divides C by C inplace. Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO, "float division by zero"); - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - f = floor(SELF.get_number() / value); - VTABLE_set_integer_native(INTERP, dest, (INTVAL)f); - - return dest; + return Parrot_pmc_new_init_int(INTERP, + VTABLE_type(INTERP, SELF), (INTVAL)f); } MULTI void i_floor_divide(BigInt value) { @@ -948,8 +909,8 @@ Calculates modulus in place. MULTI PMC *modulus(BigInt value, PMC *dest) { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, SELF.get_integer()); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, + SELF.get_integer()); return VTABLE_modulus(INTERP, temp, value, dest); } @@ -961,11 +922,8 @@ Calculates modulus in place. Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO, "int modulus by zero"); - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_integer_native(INTERP, dest, + return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF), intval_mod(SELF.get_integer(), d)); - return dest; } @@ -974,11 +932,8 @@ Calculates modulus in place. Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO, "int modulus by zero"); - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_integer_native(INTERP, dest, + return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF), intval_mod(SELF.get_integer(), value)); - return dest; } @@ -987,11 +942,8 @@ Calculates modulus in place. Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_DIV_BY_ZERO, "int modulus by zero"); - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_integer_native(INTERP, dest, + return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF), intval_mod(SELF.get_integer(), (INTVAL)value)); - return dest; } @@ -1045,15 +997,16 @@ The C<==> operation. VTABLE INTVAL is_equal(PMC *value) { INTVAL retval; - PMC *temp; switch (value->vtable->base_type) { case enum_class_BigInt: - temp = Parrot_pmc_new(INTERP, enum_class_BigInt); - VTABLE_set_integer_native(INTERP, temp, SELF.get_integer()); + { + PMC const *temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, + SELF.get_integer()); Parrot_mmd_multi_dispatch_from_c_args(INTERP, "is_equal", "PP->I", temp, value, &retval); return retval; + } break; default: return (VTABLE_get_integer(INTERP, SELF) @@ -1210,11 +1163,7 @@ Sets C to the absolute value of SELF. const INTVAL a = abs(SELF.get_integer()); /* TT # 1245 overflow for -maxint */ - dest = Parrot_pmc_new(INTERP, VTABLE_type(INTERP, SELF)); - - VTABLE_set_integer_native(INTERP, dest, a); - return dest; - + return Parrot_pmc_new_init_int(INTERP, VTABLE_type(INTERP, SELF), a); } From 22f41270583f7da961377ae3d5ffcded4387cf03 Mon Sep 17 00:00:00 2001 From: chromatic Date: Thu, 26 Aug 2010 19:54:37 +0000 Subject: [PATCH 133/165] [dynops] Made cmod use init_int VTABLE. git-svn-id: https://svn.parrot.org/parrot/trunk@48675 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/dynoplibs/math.ops | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/dynoplibs/math.ops b/src/dynoplibs/math.ops index 0d66913761..8f4717ddfe 100644 --- a/src/dynoplibs/math.ops +++ b/src/dynoplibs/math.ops @@ -95,8 +95,7 @@ inline op cmod(invar PMC, invar PMC, in INT) :base_core { result = VTABLE_get_integer(interp, $2) % $3; - $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2)); - VTABLE_set_integer_native(interp, $1, result); + $1 = Parrot_pmc_new_init_int(interp, VTABLE_type(interp, $2), result); } inline op cmod(invar PMC, invar PMC, invar PMC) :base_core { @@ -112,8 +111,7 @@ inline op cmod(invar PMC, invar PMC, invar PMC) :base_core { result = VTABLE_get_integer(interp, $2) % value; - $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2)); - VTABLE_set_integer_native(interp, $1, result); + $1 = Parrot_pmc_new_init_int(interp, VTABLE_type(interp, $2), result); } ######################################## @@ -173,8 +171,8 @@ inline op cmod(invar PMC, invar PMC, in NUM) :base_core { result = fmod(VTABLE_get_integer(interp, $2), value); - $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2)); - VTABLE_set_integer_native(interp, $1, (INTVAL) result); + $1 = Parrot_pmc_new_init_int(interp, + VTABLE_type(interp, $2), (INTVAL)result); } =back From e61ed29022f30cfbdd1c84a74378b175c30da828 Mon Sep 17 00:00:00 2001 From: chromatic Date: Thu, 26 Aug 2010 19:54:42 +0000 Subject: [PATCH 134/165] [PMC] Optimized Integer cmp() VTABLE. git-svn-id: https://svn.parrot.org/parrot/trunk@48676 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/integer.pmc | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/pmc/integer.pmc b/src/pmc/integer.pmc index 306785713e..ec658122b8 100644 --- a/src/pmc/integer.pmc +++ b/src/pmc/integer.pmc @@ -1027,15 +1027,20 @@ Returns the result of comparing the integer with C<*value>. */ MULTI INTVAL cmp(String value) { - const FLOATVAL fdiff = SELF.get_number() - VTABLE_get_number(INTERP, value); + INTVAL iv; + GET_ATTR_iv(INTERP, SELF, iv); + { + const FLOATVAL fdiff = + (FLOATVAL)iv - VTABLE_get_number(INTERP, value); - if (FLOAT_IS_ZERO(fdiff)) { - const INTVAL idiff = - SELF.get_integer() - VTABLE_get_integer(INTERP, value); - return idiff > 0 ? 1 : idiff < 0 ? -1 : 0; - } + if (FLOAT_IS_ZERO(fdiff)) { + const INTVAL idiff = + SELF.get_integer() - VTABLE_get_integer(INTERP, value); + return idiff > 0 ? 1 : idiff < 0 ? -1 : 0; + } - return fdiff > 0 ? 1 : -1; + return fdiff > 0 ? 1 : -1; + } } From 68d07717842c024d2f6f3d045c8ff442855705f5 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Thu, 26 Aug 2010 20:05:11 +0000 Subject: [PATCH 135/165] Fix a potentially nasty bug in the CallContext PMC git-svn-id: https://svn.parrot.org/parrot/trunk@48677 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/callcontext.pmc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pmc/callcontext.pmc b/src/pmc/callcontext.pmc index 24e6f5c4e5..5bfba95456 100644 --- a/src/pmc/callcontext.pmc +++ b/src/pmc/callcontext.pmc @@ -208,7 +208,7 @@ ensure_positionals_storage_ap(PARROT_INTERP, GETATTR_CallContext_num_positionals(interp, self, num_positionals); memcpy(new_array, array, num_positionals * sizeof (Pcc_cell)); - if (num_positionals > 8) + if (allocated_positionals > 8) Parrot_gc_free_memory_chunk(interp, array); else Parrot_gc_free_fixed_size_storage(interp, From 44fe1052bee0d4e6b449553554a66b845459094f Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Thu, 26 Aug 2010 23:00:30 +0000 Subject: [PATCH 136/165] Add some debugging assertions for fixed size pools Only enabled if DEBUG_FREE_LIST is set in src/gc/gc_ms.c git-svn-id: https://svn.parrot.org/parrot/trunk@48679 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/gc/gc_ms.c | 51 ++++++++++++++++++++++++++++++++++++++++++++ t/op/gc-leaky-box.t | 2 +- t/op/gc-leaky-call.t | 2 +- 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/gc/gc_ms.c b/src/gc/gc_ms.c index 1c76951ce1..c9efb66786 100644 --- a/src/gc/gc_ms.c +++ b/src/gc/gc_ms.c @@ -17,6 +17,8 @@ This code implements the default mark and sweep garbage collector. #include "parrot/parrot.h" #include "gc_private.h" +#define DEBUG_FREE_LIST 0 + PARROT_DOES_NOT_RETURN static void failed_allocation(unsigned int line, unsigned long size) /* HEADERIZER SKIP */ { @@ -31,6 +33,13 @@ static void failed_allocation(unsigned int line, unsigned long size) /* HEADERIZ /* HEADERIZER BEGIN: static */ /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ +PARROT_WARN_UNUSED_RESULT +static INTVAL contained_in_attr_pool( + ARGIN(const PMC_Attribute_Pool *pool), + ARGIN(const void *ptr)) + __attribute__nonnull__(1) + __attribute__nonnull__(2); + static int gc_ms_active_sized_buffers(ARGIN(const Memory_Pools *mem_pools)) __attribute__nonnull__(1); @@ -253,6 +262,9 @@ static void Parrot_gc_initialize_fixed_size_pools(SHIM_INTERP, __attribute__nonnull__(2) FUNC_MODIFIES(*mem_pools); +#define ASSERT_ARGS_contained_in_attr_pool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(pool) \ + , PARROT_ASSERT_ARG(ptr)) #define ASSERT_ARGS_gc_ms_active_sized_buffers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(mem_pools)) #define ASSERT_ARGS_gc_ms_add_free_object __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -984,6 +996,37 @@ gc_ms_allocate_pmc_attributes(PARROT_INTERP, ARGMOD(PMC *pmc)) /* +=item C + +Returns whether the given C<*ptr> points to a location in C. + +=cut + +*/ + +PARROT_WARN_UNUSED_RESULT +static INTVAL +contained_in_attr_pool(ARGIN(const PMC_Attribute_Pool *pool), ARGIN(const void *ptr)) +{ + ASSERT_ARGS(contained_in_attr_pool) + const PMC_Attribute_Arena *arena; + const ptrdiff_t item_space = pool->objects_per_alloc * pool->attr_size; + + for (arena = pool->top_arena; arena; arena = arena->next) { + const ptrdiff_t ptr_diff = (const char *)ptr - (const char *)(arena + 1); + + if (ptr_diff >= 0 + && ptr_diff < item_space + && ptr_diff % pool->attr_size == 0) + return 1; + } + + return 0; +} + +/* + =item C Deallocates an attibutes structure from a PMC if it has the auto_attrs @@ -1022,6 +1065,10 @@ gc_ms_free_attributes_from_pool(ARGMOD(PMC_Attribute_Pool *pool), ARGMOD(void *d ASSERT_ARGS(gc_ms_free_attributes_from_pool) PMC_Attribute_Free_List * const item = (PMC_Attribute_Free_List *)data; +#if DEBUG_FREE_LIST + PARROT_ASSERT(contained_in_attr_pool(pool, data)); +#endif + item->next = pool->free_list; pool->free_list = item; @@ -1540,6 +1587,10 @@ gc_ms_add_free_object(SHIM_INTERP, ASSERT_ARGS(gc_ms_add_free_object) GC_MS_PObj_Wrapper *object = (GC_MS_PObj_Wrapper *)to_add; +#if DEBUG_FREE_LIST + PARROT_ASSERT(contained_in_pool(pool, to_add)); +#endif + PObj_flags_SETTO(object, PObj_on_free_list_FLAG); object->next_ptr = pool->free_list; diff --git a/t/op/gc-leaky-box.t b/t/op/gc-leaky-box.t index 3c7ee594c2..2be626f2d1 100644 --- a/t/op/gc-leaky-box.t +++ b/t/op/gc-leaky-box.t @@ -47,7 +47,7 @@ TT1465 - http://trac.parrot.org/parrot/ticket/1465 . loop: $P0 = box 0 inc counter - if counter < 10e6 goto loop + if counter < 2e6 goto loop $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS diff --git a/t/op/gc-leaky-call.t b/t/op/gc-leaky-call.t index 13bb87b516..3840fb4694 100644 --- a/t/op/gc-leaky-call.t +++ b/t/op/gc-leaky-call.t @@ -44,7 +44,7 @@ function calls. loop: consume() inc counter - if counter < 10e6 goto loop + if counter < 1e6 goto loop $I1 = interpinfo.INTERPINFO_GC_COLLECT_RUNS $I2 = interpinfo.INTERPINFO_GC_MARK_RUNS From 3f49fde1235964f1175c44ce3cc5d7dddb00d0a6 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Fri, 27 Aug 2010 00:16:04 +0000 Subject: [PATCH 137/165] [codingstd] Space needed after comma. Reported by GeJ++. git-svn-id: https://svn.parrot.org/parrot/trunk@48681 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/integer.pmc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pmc/integer.pmc b/src/pmc/integer.pmc index ec658122b8..b08500f2ca 100644 --- a/src/pmc/integer.pmc +++ b/src/pmc/integer.pmc @@ -371,7 +371,7 @@ Adds C to the integer and returns the result in C<*dest>. else { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt,a ); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a ); return VTABLE_add_int(INTERP, temp, b, dest); } } From a07a310fab8f7f881e765e5127f4c53e6b3da3bf Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Fri, 27 Aug 2010 00:28:37 +0000 Subject: [PATCH 138/165] fix codetest failure - parentheses should not have space immediately after the opening parenthesis nor immediately before the closing parenthesis git-svn-id: https://svn.parrot.org/parrot/trunk@48682 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/integer.pmc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pmc/integer.pmc b/src/pmc/integer.pmc index b08500f2ca..e0b95c066f 100644 --- a/src/pmc/integer.pmc +++ b/src/pmc/integer.pmc @@ -371,7 +371,7 @@ Adds C to the integer and returns the result in C<*dest>. else { PMC *temp; maybe_throw_overflow_error(INTERP); - temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a ); + temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt, a); return VTABLE_add_int(INTERP, temp, b, dest); } } From cb3cf58ceea6657bd5883cd823f18f55c87710bb Mon Sep 17 00:00:00 2001 From: Christoph Otto Date: Fri, 27 Aug 2010 04:04:00 +0000 Subject: [PATCH 139/165] add a test for TT #809 to ensure that isa works with an rsa git-svn-id: https://svn.parrot.org/parrot/trunk@48683 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/oo/isa.t | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/t/oo/isa.t b/t/oo/isa.t index 8b60afe04a..6cd7fd1c60 100644 --- a/t/oo/isa.t +++ b/t/oo/isa.t @@ -20,7 +20,7 @@ composition. .sub main :main .include 'test_more.pir' - plan(29) + plan(30) isa_by_string_name() isa_by_class_object() @@ -28,6 +28,7 @@ composition. subclass_isa_by_class_object() string_isa_and_pmc_isa_have_same_result() string_register_and_string_pmc_isa_have_same_result() + isa_accepts_rsa() .end @@ -181,6 +182,14 @@ composition. ok( $I0, '... and false when it is not' ) .end +.sub isa_accepts_rsa + $P0 = newclass ['Foo';'Buz'] + $P1 = new $P0 + $P0 = split "::", "Foo::Buz" + $I0 = isa $P1, $P0 + ok($I0, "isa accepts a ResizablePMCArray") + .end + .HLL 'foo' .namespace ['XYZ'] From 66b8a59f0eb564e637d9723b3166a5c5663d0f82 Mon Sep 17 00:00:00 2001 From: "Will \"Coke\" Coleda" Date: Fri, 27 Aug 2010 04:20:11 +0000 Subject: [PATCH 140/165] Update docs to reflect those of the function this op wraps. Resolves TT #1752, moritz++ git-svn-id: https://svn.parrot.org/parrot/trunk@48684 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/ops/var.ops | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ops/var.ops b/src/ops/var.ops index 08a174a217..3539f92c9d 100644 --- a/src/ops/var.ops +++ b/src/ops/var.ops @@ -455,9 +455,10 @@ Operations to modify global variables =item B(out PMC, in STR) -Find the name $2 in lexical, current, global, or builtin namespace and -store it in $1. If the name doesn't exist -either throws an exception or sets $1 to PMCNULL, depending on current +Find the name C<$2> in lexicals, then the current namespace, then the HLL +root namespace, and finally Parrot builtins. These are checked in order +and the first match is returned in C<$1>. If no matches are found, +either throws an exception or sets C<$1> to PMCNULL, depending on current errors settings. See B. =cut From 064a616c9dda73da4be2399c300d613dd7fea4a1 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 27 Aug 2010 06:27:11 +0000 Subject: [PATCH 141/165] more Exception tests git-svn-id: https://svn.parrot.org/parrot/trunk@48685 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/exception.t | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/t/pmc/exception.t b/t/pmc/exception.t index 30e443a55c..326ea95118 100644 --- a/t/pmc/exception.t +++ b/t/pmc/exception.t @@ -20,10 +20,10 @@ Tests C and C PMCs. .sub main :main .include 'test_more.pir' - plan(27) + plan(31) test_bool() test_int() - test_get_integer_keyed() + test_integer_keyed() test_attrs() test_attributes() test_push_pop_eh() @@ -46,28 +46,47 @@ Tests C and C PMCs. is($I0, 42, 'set/get integer on Exception') .end -.sub test_get_integer_keyed +.sub test_integer_keyed .local pmc ex, eh .local int value ex = new ['Exception'] + value = ex['type'] is(value, 0, 'get type default value') + ex['type'] = .EXCEPTION_SYNTAX_ERROR + value = ex['type'] + is(value, .EXCEPTION_SYNTAX_ERROR, 'get type value changed') + value = ex['exit_code'] is(value, 0, 'get exit_code default value') + ex['exit_code'] = 127 + value = ex['exit_code'] + is(value, 127, 'get exit_code value changed') + value = ex['handled'] is(value, 0, 'get handled default is false') + ex['handled'] = 1 + value = ex['handled'] + is(value, 1, 'get handled value changed') eh = new ['ExceptionHandler'] eh.'handle_types'(.EXCEPTION_ATTRIB_NOT_FOUND) set_label eh, catch push_eh eh value = 1 - value = ex['the droids you are looking for'] + ex['the droids you are looking for'] = 42 value = 0 catch: finalize eh - pop_eh - is(value, 1, 'invalid key throws') + is(value, 1, 'set invalid key throws') + + set_label eh, catch2 + value = 1 + value = ex['the droids you are looking for'] + value = 0 + catch2: + finalize eh + is(value, 1, 'get invalid key throws') .end .sub test_attrs From 3644e94eadfa9593e11ec97f80d0706d5a5e5a7a Mon Sep 17 00:00:00 2001 From: Christoph Otto Date: Fri, 27 Aug 2010 06:35:53 +0000 Subject: [PATCH 142/165] remove key_pmc from hash.c's includes and makefile dependencies patch courtesy of luben++ git-svn-id: https://svn.parrot.org/parrot/trunk@48686 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- config/gen/makefiles/root.in | 2 +- src/hash.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index 354a017a7d..a7f45dd25b 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -1251,7 +1251,7 @@ src/pmc$(O) : include/pmc/pmc_class.h src/pmc.c \ src/pmc_freeze$(O) : $(PARROT_H_HEADERS) src/pmc_freeze.str src/pmc_freeze.c -src/hash$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h src/hash.c +src/hash$(O) : $(PARROT_H_HEADERS) src/hash.c src/library$(O) : $(PARROT_H_HEADERS) src/library.str src/library.c\ $(INC_DIR)/dynext.h diff --git a/src/hash.c b/src/hash.c index 849b7917e1..22e0152d53 100644 --- a/src/hash.c +++ b/src/hash.c @@ -25,7 +25,6 @@ C<< hash->buckets >> bucket store points to this region. */ #include "parrot/parrot.h" -#include "pmc/pmc_key.h" /* the number of entries above which it's faster to hash the hashval instead of * looping over the used HashBuckets directly */ From 38fbac2b51d9efe35fb412bfdf8829cc2b08b6ef Mon Sep 17 00:00:00 2001 From: Christoph Otto Date: Fri, 27 Aug 2010 06:43:39 +0000 Subject: [PATCH 143/165] use hash iteration macro in destroy function, patch courtesy of luben++ git-svn-id: https://svn.parrot.org/parrot/trunk@48687 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/hash.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/hash.c b/src/hash.c index 22e0152d53..e82762216e 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1085,14 +1085,9 @@ parrot_chash_destroy_values(PARROT_INTERP, ARGMOD(Hash *hash), NOTNULL(value_fre ASSERT_ARGS(parrot_chash_destroy_values) UINTVAL i; - for (i = 0; i <= hash->mask; ++i) { - HashBucket *bucket = hash->index[i]; - while (bucket) { - mem_gc_free(interp, bucket->key); - func(bucket->value); - bucket = bucket->next; - } - } + parrot_hash_iterate(hash, + mem_gc_free(interp, _bucket->key); + ); parrot_hash_destroy(interp, hash); } From 7542bbc641fb2129e32e7baa5cc7cca6ad3556de Mon Sep 17 00:00:00 2001 From: Christoph Otto Date: Fri, 27 Aug 2010 06:51:45 +0000 Subject: [PATCH 144/165] rename INITIAL_BUCKETS to INITIAL_SIZE, patch courtesy of luben++ git-svn-id: https://svn.parrot.org/parrot/trunk@48688 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/hash.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hash.c b/src/hash.c index e82762216e..55144fe4fb 100644 --- a/src/hash.c +++ b/src/hash.c @@ -28,7 +28,7 @@ C<< hash->buckets >> bucket store points to this region. /* the number of entries above which it's faster to hash the hashval instead of * looping over the used HashBuckets directly */ -#define INITIAL_BUCKETS 8 +#define INITIAL_SIZE 8 /* HEADERIZER HFILE: include/parrot/hash.h */ @@ -935,7 +935,7 @@ parrot_create_hash(PARROT_INTERP, PARROT_DATA_TYPE val_type, Hash_key_type hkey_ { ASSERT_ARGS(parrot_create_hash) return parrot_create_hash_sized(interp, val_type, hkey_type, compare, keyhash, - INITIAL_BUCKETS); + INITIAL_SIZE); } @@ -981,7 +981,7 @@ parrot_create_hash_sized(PARROT_INTERP, PARROT_DATA_TYPE val_type, Hash_key_type NOTNULL(hash_comp_fn compare), NOTNULL(hash_hash_key_fn keyhash), UINTVAL size) { ASSERT_ARGS(parrot_create_hash_sized) - UINTVAL initial_buckets = size > INITIAL_BUCKETS ? round_up_pow2(size) : INITIAL_BUCKETS; + UINTVAL initial_buckets = size > INITIAL_SIZE ? round_up_pow2(size) : INITIAL_SIZE; HashBucket *bp; void *alloc = Parrot_gc_allocate_memory_chunk_with_interior_pointers( interp, sizeof (Hash) + HASH_ALLOC_SIZE(initial_buckets)); From 35df060eafb4cb094943cf6a122e36ac04ce0410 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 27 Aug 2010 07:09:35 +0000 Subject: [PATCH 145/165] avoid duplicated code in Exception vtable functions git-svn-id: https://svn.parrot.org/parrot/trunk@48689 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/exception.pmc | 72 ++++++++++--------------------------------- 1 file changed, 17 insertions(+), 55 deletions(-) diff --git a/src/pmc/exception.pmc b/src/pmc/exception.pmc index 52a60f16ea..48e52abb5b 100644 --- a/src/pmc/exception.pmc +++ b/src/pmc/exception.pmc @@ -301,7 +301,7 @@ C is "message". /* -=item C +=item C Returns the integer value for C<*key>. @@ -309,11 +309,9 @@ Returns the integer value for C<*key>. */ - VTABLE INTVAL get_integer_keyed(PMC *key) { - STRING * const name = VTABLE_get_string(INTERP, key); - INTVAL result = 0; - - switch (getAttrEnum(INTERP, name)) { + VTABLE INTVAL get_integer_keyed_str(STRING *key) { + INTVAL result = 0; + switch (getAttrEnum(INTERP, key)) { case attr_type: GET_ATTR_type(INTERP, SELF, result); break; @@ -329,7 +327,7 @@ Returns the integer value for C<*key>. default: /* If unknown attribute name, throw an exception. */ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND, - "No such integer attribute '%S'", name); + "No such integer attribute '%S'", key); } return result; @@ -337,7 +335,7 @@ Returns the integer value for C<*key>. /* -=item C +=item C Returns the integer value for C<*key>. @@ -345,28 +343,9 @@ Returns the integer value for C<*key>. */ - VTABLE INTVAL get_integer_keyed_str(STRING *key) { - INTVAL result = 0; - switch (getAttrEnum(INTERP, key)) { - case attr_type: - GET_ATTR_type(INTERP, SELF, result); - break; - case attr_severity: - GET_ATTR_severity(INTERP, SELF, result); - break; - case attr_exit_code: - GET_ATTR_exit_code(INTERP, SELF, result); - break; - case attr_handled: - GET_ATTR_handled(INTERP, SELF, result); - break; - default: - /* If unknown attribute name, throw an exception. */ - Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND, - "No such integer attribute '%S'", key); - } - - return result; + VTABLE INTVAL get_integer_keyed(PMC *key) { + STRING * const name = VTABLE_get_string(INTERP, key); + return SELF.get_integer_keyed_str(name); } /* @@ -454,7 +433,7 @@ Sets the Parrot string value for C<*key>. /* -=item C +=item C Sets the integer value for C<*key>. @@ -462,9 +441,8 @@ Sets the integer value for C<*key>. */ - VTABLE void set_integer_keyed(PMC *key, INTVAL value) { - STRING * const name = VTABLE_get_string(INTERP, key); - switch (getAttrEnum(INTERP, name)) { + VTABLE void set_integer_keyed_str(STRING *key, INTVAL value) { + switch (getAttrEnum(INTERP, key)) { case attr_type: SET_ATTR_type(INTERP, SELF, value); break; @@ -480,13 +458,13 @@ Sets the integer value for C<*key>. default: /* If unknown attribute name, throw an exception. */ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND, - "No such integer attribute '%S'", name); + "No such integer attribute '%S'", key); } } /* -=item C +=item C Sets the integer value for C<*key>. @@ -494,25 +472,9 @@ Sets the integer value for C<*key>. */ - VTABLE void set_integer_keyed_str(STRING *key, INTVAL value) { - switch (getAttrEnum(INTERP, key)) { - case attr_type: - SET_ATTR_type(INTERP, SELF, value); - break; - case attr_severity: - SET_ATTR_severity(INTERP, SELF, value); - break; - case attr_exit_code: - SET_ATTR_exit_code(INTERP, SELF, value); - break; - case attr_handled: - SET_ATTR_handled(INTERP, SELF, value); - break; - default: - /* If unknown attribute name, throw an exception. */ - Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND, - "No such integer attribute '%S'", key); - } + VTABLE void set_integer_keyed(PMC *key, INTVAL value) { + STRING * const name = VTABLE_get_string(INTERP, key); + SELF.set_integer_keyed_str(name, value); } /* From 0a3dba8f18682fea8bb78d131da0081a88195faf Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Fri, 27 Aug 2010 07:47:36 +0000 Subject: [PATCH 146/165] fix codetest failure - parentheses should not have space immediately after the opening parenthesis nor immediately before the closing parenthesis git-svn-id: https://svn.parrot.org/parrot/trunk@48690 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/hash.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/hash.c b/src/hash.c index 55144fe4fb..87d13cb319 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1086,8 +1086,7 @@ parrot_chash_destroy_values(PARROT_INTERP, ARGMOD(Hash *hash), NOTNULL(value_fre UINTVAL i; parrot_hash_iterate(hash, - mem_gc_free(interp, _bucket->key); - ); + mem_gc_free(interp, _bucket->key);); parrot_hash_destroy(interp, hash); } From bd12ca61f5f5f97a3d015e2fe5faab2364995cf4 Mon Sep 17 00:00:00 2001 From: Christoph Otto Date: Fri, 27 Aug 2010 08:34:24 +0000 Subject: [PATCH 147/165] make opsc read version information from VERSION, update release guide accordingly git-svn-id: https://svn.parrot.org/parrot/trunk@48691 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- compilers/opsc/src/Ops/File.pm | 3 +-- docs/project/release_manager_guide.pod | 13 +++---------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/compilers/opsc/src/Ops/File.pm b/compilers/opsc/src/Ops/File.pm index f8885075b4..cb836504c5 100644 --- a/compilers/opsc/src/Ops/File.pm +++ b/compilers/opsc/src/Ops/File.pm @@ -295,8 +295,7 @@ method _calculate_op_codes() { } method _set_version() { - my $config := _config(); - my $version := $config; + my $version := pir::chopn__ssi(slurp('VERSION'), 1); #say("# $version"); my @bits := split('.', $version); self := @bits[0]; diff --git a/docs/project/release_manager_guide.pod b/docs/project/release_manager_guide.pod index 110809c7b4..3831c98a6a 100644 --- a/docs/project/release_manager_guide.pod +++ b/docs/project/release_manager_guide.pod @@ -118,16 +118,9 @@ Give yourself credit for the release in F. =item f -In the two files F and F -is the function C, which has a name that includes -the version number. a_b_c is the version number. You have to update this -version number on two places in the file F. -In the file F you have to change this line: - - op_lib_t *Parrot_DynOp_core_a_b_c(PARROT_INTERP, long init); - -Ignore the warning to not edit this files. It is necessary to edit this files, -so that "make" builds with the increased version number. +Run C<./ops2c --core> (or C, ignoring errors) followed by +C and C to update the names of version-specific internal +functions. =item g From 80f67b6a0ae7d46a8b42c6214b1ffd52f33cb481 Mon Sep 17 00:00:00 2001 From: Christoph Otto Date: Fri, 27 Aug 2010 08:46:45 +0000 Subject: [PATCH 148/165] use installed VERSION instead of assuming there's one in the cwd git-svn-id: https://svn.parrot.org/parrot/trunk@48692 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- compilers/opsc/src/Ops/File.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compilers/opsc/src/Ops/File.pm b/compilers/opsc/src/Ops/File.pm index cb836504c5..4dce81f3b8 100644 --- a/compilers/opsc/src/Ops/File.pm +++ b/compilers/opsc/src/Ops/File.pm @@ -295,7 +295,9 @@ method _calculate_op_codes() { } method _set_version() { - my $version := pir::chopn__ssi(slurp('VERSION'), 1); + my $config := _config(); + my $version_filename := $config ~ $config ~ 'VERSION'; + my $version := pir::chopn__ssi(slurp($version_filename), 1); #say("# $version"); my @bits := split('.', $version); self := @bits[0]; From f7e46e7b28d486b336f133edade2a3f6038af945 Mon Sep 17 00:00:00 2001 From: Julian Albo Date: Fri, 27 Aug 2010 12:20:44 +0000 Subject: [PATCH 149/165] test get and set value type in Hash PMC git-svn-id: https://svn.parrot.org/parrot/trunk@48693 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- t/pmc/hash.t | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/t/pmc/hash.t b/t/pmc/hash.t index 0258d8f73a..2723cbb726 100644 --- a/t/pmc/hash.t +++ b/t/pmc/hash.t @@ -25,11 +25,12 @@ well. .sub main :main .include 'test_more.pir' - plan(172) + plan(174) initial_hash_tests() more_than_one_hash() hash_key_type() + hash_value_type() null_key() hash_keys_with_nulls_in_them() nearly_the_same_hash_keys() @@ -156,6 +157,26 @@ invalid_type: end: .end +.sub hash_value_type + .local pmc h, eh + .local int r + h = new ['Hash'] + + h.'set_value_type'(.DATATYPE_INTVAL) + r = h.'get_value_type'() + is(r, .DATATYPE_INTVAL, 'get/set _value_type') + + r = 1 + eh = new ['ExceptionHandler'] + eh.'handle_types'(.EXCEPTION_UNIMPLEMENTED) + set_label eh, catch + push_eh eh + h.'set_value_type'(999999) + r = 0 + catch: + is(r, 1, 'set_value_type with invalid type throws') +.end + .sub null_key new $P0, ['Hash'] $P0['yum'] = 5 From 6ee1cd8f074634cb759082f9672ca2552991ef07 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 27 Aug 2010 14:34:16 +0000 Subject: [PATCH 150/165] Avoid recursive calls of Parrot_cx_handle_tasks Fixes TT #484 git-svn-id: https://svn.parrot.org/parrot/trunk@48694 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/scheduler.pmc | 1 + src/scheduler.c | 12 ++++++++++-- t/pmc/timer.t | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/src/pmc/scheduler.pmc b/src/pmc/scheduler.pmc index 14b7c0ef0b..70236b3e5c 100644 --- a/src/pmc/scheduler.pmc +++ b/src/pmc/scheduler.pmc @@ -30,6 +30,7 @@ pmclass Scheduler auto_attrs { ATTR INTVAL max_tid; /* The highest assigned task ID. */ ATTR INTVAL pending; /* A count of pending tasks (cached for fast lookup). */ + ATTR INTVAL in_handler; /* Set during execution of a handler. */ ATTR PMC *task_list; /* The current list of tasks. */ ATTR PMC *task_index; /* An index into the current list of tasks, ordered by priority. */ diff --git a/src/scheduler.c b/src/scheduler.c index ff981dfc10..282da0902f 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -111,8 +111,7 @@ Parrot_cx_check_tasks(PARROT_INTERP, ARGMOD(PMC *scheduler)) =item C Handle the pending tasks in the scheduler's task list. Returns when there are -no more pending tasks. Returns 0 to terminate the scheduler runloop, or 1 to -continue the runloop. +no more pending tasks. =cut @@ -123,6 +122,13 @@ void Parrot_cx_handle_tasks(PARROT_INTERP, ARGMOD(PMC *scheduler)) { ASSERT_ARGS(Parrot_cx_handle_tasks) + Parrot_Scheduler_attributes * sched_struct = PARROT_SCHEDULER(scheduler); + + /* avoid recursive calls */ + if (sched_struct->in_handler) + return; + sched_struct->in_handler = 1; + SCHEDULER_wake_requested_CLEAR(scheduler); Parrot_cx_refresh_task_list(interp, scheduler); @@ -159,6 +165,8 @@ Parrot_cx_handle_tasks(PARROT_INTERP, ARGMOD(PMC *scheduler)) Parrot_cx_refresh_task_list(interp, scheduler); } /* end of pending tasks */ + + sched_struct->in_handler = 0; } /* diff --git a/t/pmc/timer.t b/t/pmc/timer.t index 2d7badb42c..c4e06bd478 100644 --- a/t/pmc/timer.t +++ b/t/pmc/timer.t @@ -6,7 +6,7 @@ use strict; use warnings; use lib qw( . lib ../lib ../../lib ); use Test::More; -use Parrot::Test tests => 6; +use Parrot::Test tests => 7; use Parrot::Config; =head1 NAME @@ -200,6 +200,38 @@ CODE 0 OUTPUT +pir_output_is( << 'CODE', << 'OUTPUT', "Timer - many repetitions" ); + +.include 'timer.pasm' + +.sub expired + $P0 = get_global "expired_count" + inc $P0 +.end + +.sub main :main + $P2 = new 'Integer' + set_global "expired_count", $P2 + + $P0 = new 'Timer' + $P1 = get_global "expired" + + $P0[.PARROT_TIMER_HANDLER] = $P1 + $P0[.PARROT_TIMER_SEC] = 0 + $P0[.PARROT_TIMER_REPEAT] = 9999 + $P0[.PARROT_TIMER_RUNNING] = 1 + +loop: + sleep 0 + if $P2 < 10000 goto loop + + sleep 0.5 + say $P2 +.end +CODE +10000 +OUTPUT + # Local Variables: # mode: cperl # cperl-indent-level: 4 From ff4a0413149c9bc479adb136ce2a957b0e028709 Mon Sep 17 00:00:00 2001 From: Christoph Otto Date: Fri, 27 Aug 2010 16:15:54 +0000 Subject: [PATCH 151/165] make ops2c smarter about finding VERSION with an installed vs non-installed Parrot This allows Rakudo to build again, fixing TT #1757. git-svn-id: https://svn.parrot.org/parrot/trunk@48695 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- compilers/opsc/src/Ops/File.pm | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/compilers/opsc/src/Ops/File.pm b/compilers/opsc/src/Ops/File.pm index 4dce81f3b8..339779855f 100644 --- a/compilers/opsc/src/Ops/File.pm +++ b/compilers/opsc/src/Ops/File.pm @@ -295,9 +295,23 @@ method _calculate_op_codes() { } method _set_version() { - my $config := _config(); - my $version_filename := $config ~ $config ~ 'VERSION'; - my $version := pir::chopn__ssi(slurp($version_filename), 1); + my $config := _config(); + my $version_filename; + if $config { + $version_filename := + $config ~ + $config ~ + $config ~ + 'VERSION'; + } + else { + $version_filename := + $config ~ + $config ~ + 'VERSION'; + } + + my $version := pir::chopn__ssi(slurp($version_filename), 1); #say("# $version"); my @bits := split('.', $version); self := @bits[0]; From f9a6cc7f65b20582f5a2fddf6c9addb52c838317 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 27 Aug 2010 17:12:46 +0000 Subject: [PATCH 152/165] Use flag instead of INTVAL in Scheduler PMC git-svn-id: https://svn.parrot.org/parrot/trunk@48696 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- include/parrot/scheduler_private.h | 8 +++++++- src/pmc/scheduler.pmc | 1 - src/scheduler.c | 7 +++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/include/parrot/scheduler_private.h b/include/parrot/scheduler_private.h index baadffa66a..70b7aaccfd 100644 --- a/include/parrot/scheduler_private.h +++ b/include/parrot/scheduler_private.h @@ -19,7 +19,8 @@ typedef enum { SCHEDULER_cache_valid_FLAG = PObj_private0_FLAG, SCHEDULER_wake_requested_FLAG = PObj_private1_FLAG, - SCHEDULER_terminate_requested_FLAG = PObj_private2_FLAG + SCHEDULER_terminate_requested_FLAG = PObj_private2_FLAG, + SCHEDULER_in_handler_FLAG = PObj_private3_FLAG } scheduler_flags_enum; #define SCHEDULER_get_FLAGS(o) (PObj_get_FLAGS(o)) @@ -42,6 +43,11 @@ typedef enum { #define SCHEDULER_terminate_requested_SET(o) SCHEDULER_flag_SET(terminate_requested, o) #define SCHEDULER_terminate_requested_CLEAR(o) SCHEDULER_flag_CLEAR(terminate_requested, o) +/* Mark if the scheduler is inside a handler */ +#define SCHEDULER_in_handler_TEST(o) SCHEDULER_flag_TEST(in_handler, o) +#define SCHEDULER_in_handler_SET(o) SCHEDULER_flag_SET(in_handler, o) +#define SCHEDULER_in_handler_CLEAR(o) SCHEDULER_flag_CLEAR(in_handler, o) + /* * Task private flags */ diff --git a/src/pmc/scheduler.pmc b/src/pmc/scheduler.pmc index 70236b3e5c..14b7c0ef0b 100644 --- a/src/pmc/scheduler.pmc +++ b/src/pmc/scheduler.pmc @@ -30,7 +30,6 @@ pmclass Scheduler auto_attrs { ATTR INTVAL max_tid; /* The highest assigned task ID. */ ATTR INTVAL pending; /* A count of pending tasks (cached for fast lookup). */ - ATTR INTVAL in_handler; /* Set during execution of a handler. */ ATTR PMC *task_list; /* The current list of tasks. */ ATTR PMC *task_index; /* An index into the current list of tasks, ordered by priority. */ diff --git a/src/scheduler.c b/src/scheduler.c index 282da0902f..02d437ee95 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -122,13 +122,12 @@ void Parrot_cx_handle_tasks(PARROT_INTERP, ARGMOD(PMC *scheduler)) { ASSERT_ARGS(Parrot_cx_handle_tasks) - Parrot_Scheduler_attributes * sched_struct = PARROT_SCHEDULER(scheduler); /* avoid recursive calls */ - if (sched_struct->in_handler) + if (SCHEDULER_in_handler_TEST(scheduler)) return; - sched_struct->in_handler = 1; + SCHEDULER_in_handler_SET(scheduler); SCHEDULER_wake_requested_CLEAR(scheduler); Parrot_cx_refresh_task_list(interp, scheduler); @@ -166,7 +165,7 @@ Parrot_cx_handle_tasks(PARROT_INTERP, ARGMOD(PMC *scheduler)) } /* end of pending tasks */ - sched_struct->in_handler = 0; + SCHEDULER_in_handler_CLEAR(scheduler); } /* From 786bef510a0f6eca4191bf1108b9648cd30274d2 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 27 Aug 2010 17:31:30 +0000 Subject: [PATCH 153/165] Set custom mark flag for ImageIOStrings PMC git-svn-id: https://svn.parrot.org/parrot/trunk@48697 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/imageiostrings.pmc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pmc/imageiostrings.pmc b/src/pmc/imageiostrings.pmc index 02370081ca..afe62f410c 100644 --- a/src/pmc/imageiostrings.pmc +++ b/src/pmc/imageiostrings.pmc @@ -50,6 +50,8 @@ Initializes the PMC. parrot_new_intval_hash(INTERP)); PARROT_IMAGEIOSTRINGS(SELF)->list = Parrot_pmc_new(INTERP, enum_class_ResizableStringArray); + + PObj_custom_mark_SET(SELF); } /* From 30dd61d94fa8e69d83d7e35e0bb8c415d4a18504 Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sat, 28 Aug 2010 00:16:15 +0000 Subject: [PATCH 154/165] Per discussion on list (also see TT #677), move pgegrep to examples/tools/ and move related test to t/examples/tools/. git-svn-id: https://svn.parrot.org/parrot/trunk@48698 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- MANIFEST | 6 +++--- {tools/util => examples/tools}/pgegrep | 0 t/{tools => examples}/pgegrep.t | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) rename {tools/util => examples/tools}/pgegrep (100%) rename t/{tools => examples}/pgegrep.t (91%) diff --git a/MANIFEST b/MANIFEST index 6b383aa162..5240157038 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,7 +1,7 @@ # ex: set ro: # $Id$ # -# generated by tools/dev/mk_manifest_and_skip.pl Wed Aug 25 22:58:44 2010 UT +# generated by tools/dev/mk_manifest_and_skip.pl Sat Aug 28 00:12:06 2010 UT # # See below for documentation on the format of this file. # @@ -824,6 +824,7 @@ examples/tge/branch/lib/Leaf.pir [examples] examples/tge/branch/transform.pir [examples] examples/tools/Makefile [examples] examples/tools/pbc_checker.cpp [examples] +examples/tools/pgegrep [examples] examples/tutorial/00_README.pod [examples] examples/tutorial/01_temp_var.pir [examples] examples/tutorial/02_local_var.pir [examples] @@ -1688,6 +1689,7 @@ t/examples/library.t [test] t/examples/namespace.t [test] t/examples/pasm.t [test] t/examples/past.t [test] +t/examples/pgegrep.t [test] t/examples/pir.t [test] t/examples/pod.t [test] t/examples/shootout.t [test] @@ -2081,7 +2083,6 @@ t/tools/parrot_debugger.t [test] t/tools/pbc_disassemble.t [test] t/tools/pbc_dump.t [test] t/tools/pbc_merge.t [test] -t/tools/pgegrep.t [test] t/tools/pmc2cutils/01-pmc2cutils.t [test] t/tools/pmc2cutils/02-find_file.t [test] t/tools/pmc2cutils/03-dump_vtable.t [test] @@ -2168,7 +2169,6 @@ tools/util/parrot-config.pir [] tools/util/perlcritic-cage.conf [] tools/util/perlcritic.conf [] tools/util/perltidy.conf [] -tools/util/pgegrep [] tools/util/release.json [] tools/util/templates.json [] tools/util/update_copyright.pl [] diff --git a/tools/util/pgegrep b/examples/tools/pgegrep similarity index 100% rename from tools/util/pgegrep rename to examples/tools/pgegrep diff --git a/t/tools/pgegrep.t b/t/examples/pgegrep.t similarity index 91% rename from t/tools/pgegrep.t rename to t/examples/pgegrep.t index 46f865ad2a..678ffbc5ca 100644 --- a/t/tools/pgegrep.t +++ b/t/examples/pgegrep.t @@ -8,11 +8,11 @@ t/tools/pgegrep.t - test the script tools/utils/pgegrep =head1 SYNOPSIS - % prove t/tools/pgegrep.t + % prove t/examples/tools/pgegrep.t =head1 DESCRIPTION -Tests the features of of the C utility. +Tests the features of of the C utility (see F). =cut @@ -34,7 +34,7 @@ sub pgegrep_output_like { my ($options, $snippet, $desc) = @_; my $PARROT = ".$PConfig{slash}$PConfig{test_prog}"; - my $pgegrep = File::Spec->catfile( qw{. tools util pgegrep} ); + my $pgegrep = File::Spec->catfile( qw{. examples tools pgegrep} ); my $out = `$PARROT $pgegrep $options`; like( $out, $snippet, $desc ); From 51fbb43e4cc60cb3dc586a2286a7261611bac622 Mon Sep 17 00:00:00 2001 From: chromatic Date: Sat, 28 Aug 2010 02:14:36 +0000 Subject: [PATCH 155/165] [PBC] Fixed a memory leak in PackFile op mapping. git-svn-id: https://svn.parrot.org/parrot/trunk@48700 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/packfile.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/packfile.c b/src/packfile.c index 20e6dc9a4e..a530ddb384 100644 --- a/src/packfile.c +++ b/src/packfile.c @@ -2632,8 +2632,17 @@ byte_code_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self)) mem_gc_free(interp, byte_code->op_func_table); if (byte_code->op_info_table) mem_gc_free(interp, byte_code->op_info_table); - if (byte_code->op_mapping.libs) + if (byte_code->op_mapping.libs) { + opcode_t n_libs = byte_code->op_mapping.n_libs; + opcode_t i; + + for (i = 0; i < n_libs; i++) { + mem_gc_free(interp, byte_code->op_mapping.libs[i].table_ops); + mem_gc_free(interp, byte_code->op_mapping.libs[i].lib_ops); + } + mem_gc_free(interp, byte_code->op_mapping.libs); + } byte_code->fixups = NULL; byte_code->const_table = NULL; From f6c03cdb93fc2c162e33625f5294d5d1a2620e6f Mon Sep 17 00:00:00 2001 From: chromatic Date: Sat, 28 Aug 2010 02:14:42 +0000 Subject: [PATCH 156/165] [PMC] Set destroy flag to plug Class memory leak. Calling Class's destroy() destroys the isa_hash allocated for every class. git-svn-id: https://svn.parrot.org/parrot/trunk@48701 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/class.pmc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pmc/class.pmc b/src/pmc/class.pmc index d3437805cd..e7ec64ace6 100644 --- a/src/pmc/class.pmc +++ b/src/pmc/class.pmc @@ -689,7 +689,7 @@ arguments. The class is attached to the current HLL namespace. (Parrot_Class_attributes *) PMC_data(SELF); /* Set flag for custom GC mark. */ - PObj_custom_mark_SET(SELF); + PObj_custom_mark_destroy_SETALL(SELF); /* Set up the object. */ _class->name = CONST_STRING(INTERP, ""); From 3d5b6b77654a881ac926b00d04e5dd2c4eae17b2 Mon Sep 17 00:00:00 2001 From: chromatic Date: Sat, 28 Aug 2010 02:14:46 +0000 Subject: [PATCH 157/165] [PBC] Plugged Annotations memory leak. git-svn-id: https://svn.parrot.org/parrot/trunk@48702 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/packfile.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/packfile.c b/src/packfile.c index a530ddb384..140c119657 100644 --- a/src/packfile.c +++ b/src/packfile.c @@ -2644,12 +2644,16 @@ byte_code_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self)) mem_gc_free(interp, byte_code->op_mapping.libs); } - byte_code->fixups = NULL; + if (byte_code->annotations) + PackFile_Annotations_destroy(interp, byte_code->annotations); + + byte_code->annotations = NULL; byte_code->const_table = NULL; byte_code->debugs = NULL; - byte_code->op_mapping.libs = NULL; + byte_code->fixups = NULL; byte_code->op_func_table = NULL; byte_code->op_info_table = NULL; + byte_code->op_mapping.libs = NULL; } @@ -4308,6 +4312,10 @@ PackFile_Annotations_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *seg)) /* Free any entries. */ if (self->entries) mem_gc_free(interp, self->entries); + + self->keys = NULL; + self->groups = NULL; + self->entries = NULL; } @@ -4450,6 +4458,7 @@ PackFile_Annotations_unpack(PARROT_INTERP, ARGMOD(PackFile_Segment *seg), self->num_entries = PF_fetch_opcode(seg->pf, &cursor); self->entries = mem_gc_allocate_n_zeroed_typed(interp, self->num_entries, PackFile_Annotations_Entry); + for (i = 0; i < self->num_entries; ++i) { PackFile_Annotations_Entry * const entry = self->entries + i; entry->bytecode_offset = PF_fetch_opcode(seg->pf, &cursor); @@ -4646,11 +4655,11 @@ PackFile_Annotations_add_entry(PARROT_INTERP, ARGMOD(PackFile_Annotations *self) /* Add annotations entry. */ if (self->entries) - self->entries = mem_gc_realloc_n_typed(interp, self->entries, - 1 + self->num_entries, PackFile_Annotations_Entry); - else - self->entries = mem_gc_allocate_n_typed(interp, - 1 + self->num_entries, PackFile_Annotations_Entry); + self->entries = mem_gc_realloc_n_typed(interp, self->entries, + 1 + self->num_entries, PackFile_Annotations_Entry); + else + self->entries = mem_gc_allocate_n_typed(interp, + 1 + self->num_entries, PackFile_Annotations_Entry); self->entries[self->num_entries].bytecode_offset = offset; self->entries[self->num_entries].key = key_id; From aa1a984fe04e49fc77cfc87e3e2c92831bf5febf Mon Sep 17 00:00:00 2001 From: chromatic Date: Sat, 28 Aug 2010 02:14:51 +0000 Subject: [PATCH 158/165] [runcore] Plugged op_libs memory leak. git-svn-id: https://svn.parrot.org/parrot/trunk@48703 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/runcore/main.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/runcore/main.c b/src/runcore/main.c index 594be690f3..d6427a152b 100644 --- a/src/runcore/main.c +++ b/src/runcore/main.c @@ -322,6 +322,11 @@ Parrot_runcore_destroy(PARROT_INTERP) interp->cores = NULL; interp->run_core = NULL; + if (interp->all_op_libs) + mem_gc_free(interp, interp->all_op_libs); + + interp->all_op_libs = NULL; + /* dynop libs */ if (interp->n_libs <= 0) return; From 07e7be9ac1239f0d699ee05d86db40584ecb82d2 Mon Sep 17 00:00:00 2001 From: chromatic Date: Sat, 28 Aug 2010 02:14:58 +0000 Subject: [PATCH 159/165] [PMC] Cleaned up ParrotLibrary destroy(). Also removed some unused POD sections. git-svn-id: https://svn.parrot.org/parrot/trunk@48704 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/parrotlibrary.pmc | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/src/pmc/parrotlibrary.pmc b/src/pmc/parrotlibrary.pmc index 8b76a72678..de8fbc3dac 100644 --- a/src/pmc/parrotlibrary.pmc +++ b/src/pmc/parrotlibrary.pmc @@ -1,5 +1,5 @@ /* -Copyright (C) 2001-2009, Parrot Foundation. +Copyright (C) 2001-2010, Parrot Foundation. $Id$ =head1 NAME @@ -49,9 +49,7 @@ Initializes the library with a C oplib init function. */ - VTABLE void init() { - PObj_custom_destroy_SET(SELF); - } + VTABLE void init() {} /* @@ -82,8 +80,14 @@ Creates and returns a clone of the library. VTABLE PMC *clone() { PMC * const dest = Parrot_pmc_new(INTERP, SELF->vtable->base_type); - PMC_oplib_init(dest) = PMC_oplib_init(SELF); - PMC_dlhandle(dest) = PMC_dlhandle(SELF); + + if (PMC_oplib_init(SELF)) + PMC_oplib_init(dest) = PMC_oplib_init(SELF); + + if (PMC_dlhandle(SELF)) { + PMC_dlhandle(dest) = PMC_dlhandle(SELF); + PObj_custom_destroy_SET(dest); + } if (PMC_metadata(SELF)) PMC_metadata(dest) = VTABLE_clone(INTERP, PMC_metadata(SELF)); @@ -126,7 +130,7 @@ Returns the name of the loaded library. =item C -Get the pointer to the shared library handle. +Gets the pointer to the shared library handle. =cut @@ -140,7 +144,7 @@ Get the pointer to the shared library handle. =item C -Set the pointer to the shared library handle. +Sets the pointer to the shared library handle. =cut @@ -148,6 +152,7 @@ Set the pointer to the shared library handle. VTABLE void set_pointer(void *handle) { PMC_dlhandle(SELF) = handle; + PObj_custom_destroy_SET(SELF); } } @@ -155,16 +160,6 @@ Set the pointer to the shared library handle. =back -=head1 SEE ALSO - - Date: Mon, 29 Sep 2003 14:37:11 -0400 (EDT) - Subject: Library loading and initialization sequence - From: Dan Sugalski - -=head1 HISTORY - -Initial version by leo 2003.10.12. - =cut */ From 1297341f3f7e892b3ae2b8c5c3e902e3f39f139e Mon Sep 17 00:00:00 2001 From: chromatic Date: Sat, 28 Aug 2010 02:15:03 +0000 Subject: [PATCH 160/165] [dynext] Tidied code; no functional changes. git-svn-id: https://svn.parrot.org/parrot/trunk@48705 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/dynext.c | 186 +++++++++++++++++++++++++++------------------------ 1 file changed, 98 insertions(+), 88 deletions(-) diff --git a/src/dynext.c b/src/dynext.c index 3064885ec8..3698c2ecb8 100644 --- a/src/dynext.c +++ b/src/dynext.c @@ -1,5 +1,5 @@ /* -Copyright (C) 2001-2008, Parrot Foundation. +Copyright (C) 2001-2010, Parrot Foundation. $Id$ =head1 NAME @@ -145,8 +145,7 @@ static void store_lib_pmc(PARROT_INTERP, =item C -Set a property C with value C on the C -C. +Sets a property C with value C on the C C. =cut @@ -164,12 +163,13 @@ set_cstring_prop(PARROT_INTERP, ARGMOD(PMC *lib_pmc), ARGIN(const char *what), VTABLE_setprop(interp, lib_pmc, key, prop); } + /* =item C -Store a C PMC in the interpreter's C. +Stores a C PMC in the interpreter's C. =cut @@ -194,12 +194,13 @@ store_lib_pmc(PARROT_INTERP, ARGIN(PMC *lib_pmc), ARGIN(STRING *path), VTABLE_set_pmc_keyed_str(interp, dyn_libs, path, lib_pmc); } + /* =item C -Check if a C PMC with the filename path exists. -If it does, return it. Otherwise, return NULL. +Returns a C PMC with the given filename path, if it exists. +Otherwise returns PMCNULL. =cut @@ -214,17 +215,16 @@ is_loaded(PARROT_INTERP, ARGIN(STRING *path)) PMC * const iglobals = interp->iglobals; PMC * const dyn_libs = VTABLE_get_pmc_keyed_int(interp, iglobals, IGLOBALS_DYN_LIBS); - if (!VTABLE_exists_keyed_str(interp, dyn_libs, path)) - return PMCNULL; return VTABLE_get_pmc_keyed_str(interp, dyn_libs, path); } + /* =item C -Call Parrot_dlopen with the Parrot String argument converted to C string. The +Calls C with the path argument converted to a C string. The flags argument will be converted into native form and used if applicable. =cut @@ -244,12 +244,13 @@ dlopen_string(PARROT_INTERP, Parrot_dlopen_flags flags, ARGIN(STRING *path)) return handle; } + /* =item C -Return path and handle of a dynamic lib, setting lib_name to just the filestem +Returns path and handle of a dynamic lib, setting lib_name to just the filestem (i.e. without path or extension) as a freshly-allocated C string. =cut @@ -264,75 +265,76 @@ get_path(PARROT_INTERP, ARGMOD_NULLOK(STRING *lib), Parrot_dlopen_flags flags, ARGIN_NULLOK(STRING *ext)) { ASSERT_ARGS(get_path) - STRING *path, *full_name; - const char *err = NULL; /* buffer returned from Parrot_dlerror */ - - PMC * const iglobals = interp->iglobals; + PMC * const iglobals = interp->iglobals; PMC * const lib_paths = VTABLE_get_pmc_keyed_int(interp, iglobals, IGLOBALS_LIB_PATHS); PMC * const share_ext = VTABLE_get_pmc_keyed_int(interp, lib_paths, PARROT_LIB_DYN_EXTS); - if (lib == NULL) { + STRING *path, *full_name; + + if (! lib) { *handle = Parrot_dlopen((char *)NULL, flags); - if (*handle) { + if (*handle) return CONST_STRING(interp, ""); + else { + const char *err = Parrot_dlerror(); + Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG, + "Couldn't dlopen(NULL): %s\n", + err ? err : "unknown reason"); + return NULL; } - err = Parrot_dlerror(); - Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG, - "Couldn't dlopen(NULL): %s\n", - err ? err : "unknown reason"); - return NULL; } - /* - * first, try to add an extension to the file if it has none. - */ + /* first, try to add an extension to the file if it has none */ if (! ext) { const INTVAL n = VTABLE_elements(interp, share_ext); - INTVAL i; + INTVAL i; for (i = 0; i < n; ++i) { - ext = VTABLE_get_string_keyed_int(interp, share_ext, i); + ext = VTABLE_get_string_keyed_int(interp, share_ext, i); full_name = Parrot_str_concat(interp, wo_ext, ext); - path = Parrot_locate_runtime_file_str(interp, full_name, - PARROT_RUNTIME_FT_DYNEXT); + path = Parrot_locate_runtime_file_str(interp, full_name, + PARROT_RUNTIME_FT_DYNEXT); + if (path) { *handle = dlopen_string(interp, flags, path); - if (*handle) { + + if (*handle) return path; + else { + const char *err = Parrot_dlerror(); + Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG, + "Couldn't load '%Ss': %s\n", + full_name, err ? err : "unknown reason"); + return NULL; } - err = Parrot_dlerror(); - Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG, - "Couldn't load '%Ss': %s\n", - full_name, err ? err : "unknown reason"); - return NULL; } - /* - * File with extension and prefix was not found, - * so try file.extension w/o prefix - */ + /* File not found with extension and prefix; try file.extension */ *handle = dlopen_string(interp, flags, full_name); - if (*handle) { + if (*handle) return full_name; - } } } + /* * finally, try the given file name as is. We still use * Parrot_locate_runtime_file so that (a) relative pathnames are searched in * the standard locations, and (b) the angle of the slashes are adjusted as * required for non-Unix systems. */ + full_name = Parrot_locate_runtime_file_str(interp, lib, - PARROT_RUNTIME_FT_DYNEXT); + PARROT_RUNTIME_FT_DYNEXT); + if (full_name) { *handle = dlopen_string(interp, flags, full_name); - if (*handle) { + + if (*handle) return full_name; - } } + /* * and on windows strip a leading "lib" * [shouldn't this happen in Parrot_locate_runtime_file instead?] @@ -340,10 +342,9 @@ get_path(PARROT_INTERP, ARGMOD_NULLOK(STRING *lib), Parrot_dlopen_flags flags, #ifdef WIN32 if (!STRING_IS_EMPTY(lib) && memcmp(lib->strstart, "lib", 3) == 0) { *handle = Parrot_dlopen((char *)lib->strstart + 3, 0); - if (*handle) { - path = Parrot_str_substr(interp, lib, 3, lib->strlen - 3); - return path; - } + + if (*handle) + return Parrot_str_substr(interp, lib, 3, lib->strlen - 3); } #endif @@ -360,20 +361,22 @@ get_path(PARROT_INTERP, ARGMOD_NULLOK(STRING *lib), Parrot_dlopen_flags flags, } #endif - /* And after-finally, let the OS use his own search */ - if (!STRING_IS_EMPTY(lib)) { + if (STRING_IS_EMPTY(lib)) { *handle = dlopen_string(interp, flags, lib); if (*handle) return lib; } - - err = Parrot_dlerror(); - Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG, - "Couldn't load '%Ss': %s\n", - lib, err ? err : "unknown reason"); - return NULL; + /* And after-finally, let the OS use his own search */ + { + const char *err = Parrot_dlerror(); + Parrot_warn(interp, PARROT_WARNINGS_DYNEXT_FLAG, + "Couldn't load '%Ss': %s\n", + lib, err ? err : "unknown reason"); + return NULL; + } } + /* =item C -Same as Parrot_dlsym but takes the symbol name from a Parrot String instead -of a C string. +Loads a symbol named C from the shared library represented by +C. =cut @@ -430,25 +434,26 @@ Parrot_dlsym_str(PARROT_INTERP, { ASSERT_ARGS(Parrot_dlsym_str) - void *ptr; if (STRING_IS_NULL(symbol)) - ptr = NULL; + return NULL; + else { char *const symbol_cs = Parrot_str_to_cstring(interp, symbol); - ptr = Parrot_dlsym(handle, symbol_cs); + void *ptr = Parrot_dlsym(handle, symbol_cs); Parrot_str_free_cstring(symbol_cs); + return ptr; } - return ptr; } + /* =item C -Loads and Initializes a new library and returns a ParrotLibrary PMC. -Takes the name of a library C, that is loaded with handle C. -Calls the necessary initialization routines, if any. +Loads and initializes a new library and returns a ParrotLibrary PMC. Takes the +name of a library C, that is loaded with handle C. Calls the +necessary initialization routines, if any. =cut @@ -520,6 +525,7 @@ run_init_lib(PARROT_INTERP, ARGIN(void *handle), return lib_pmc; } + /* =item C @@ -538,9 +544,9 @@ static STRING * clone_string_into(ARGMOD(Interp *d), ARGIN(Interp *s), ARGIN(PMC *value)) { ASSERT_ARGS(clone_string_into) - STRING * const orig = VTABLE_get_string(s, value); - char * const raw_str = Parrot_str_to_cstring(s, orig); - STRING * const ret = + STRING * const orig = VTABLE_get_string(s, value); + char * const raw_str = Parrot_str_to_cstring(s, orig); + STRING * const ret = Parrot_str_new_init(d, raw_str, strlen(raw_str), PARROT_DEFAULT_ENCODING, PARROT_DEFAULT_CHARSET, PObj_constant_FLAG); @@ -548,6 +554,7 @@ clone_string_into(ARGMOD(Interp *d), ARGIN(Interp *s), ARGIN(PMC *value)) return ret; } + /* =item C @@ -570,6 +577,7 @@ make_string_pmc(PARROT_INTERP, ARGIN(STRING *string)) return ret; } + /* =item C @@ -608,7 +616,8 @@ Parrot_clone_lib_into(ARGMOD(Interp *d), ARGMOD(Interp *s), ARGIN(PMC *lib_pmc)) * Anyways, if we hope to share bytecode at runtime, we need to have * them have identical opcodes anyways. */ - PMC * const new_lib_pmc = Parrot_pmc_new_constant(d, enum_class_ParrotLibrary); + PMC * const new_lib_pmc = Parrot_pmc_new_constant(d, + enum_class_ParrotLibrary); PMC_data(new_lib_pmc) = handle; VTABLE_setprop(d, new_lib_pmc, CONST_STRING(s, "_filename"), make_string_pmc(d, wo_ext)); @@ -619,11 +628,13 @@ Parrot_clone_lib_into(ARGMOD(Interp *d), ARGMOD(Interp *s), ARGIN(PMC *lib_pmc)) if (d->n_libs != s->n_libs) { INTVAL i; if (d->all_op_libs) - d->all_op_libs = (op_lib_t **)mem_internal_realloc(d->all_op_libs, - sizeof (op_lib_t *) * s->n_libs); + d->all_op_libs + = (op_lib_t **)mem_internal_realloc(d->all_op_libs, + sizeof (op_lib_t *) * s->n_libs); else - d->all_op_libs = (op_lib_t **)mem_internal_allocate(sizeof (op_lib_t *) * - s->n_libs); + d->all_op_libs + = (op_lib_t **)mem_internal_allocate(sizeof (op_lib_t *) * + s->n_libs); for (i = d->n_libs; i < s->n_libs; ++i) d->all_op_libs[i] = s->all_op_libs[i]; d->n_libs = s->n_libs; @@ -631,11 +642,11 @@ Parrot_clone_lib_into(ARGMOD(Interp *d), ARGMOD(Interp *s), ARGIN(PMC *lib_pmc)) return new_lib_pmc; } - else { - return run_init_lib(d, handle, lib_name, wo_ext); - } + + return run_init_lib(d, handle, lib_name, wo_ext); } + /* =item C @@ -682,9 +693,8 @@ Parrot_load_lib(PARROT_INTERP, ARGIN_NULLOK(STRING *lib), ARGIN_NULLOK(PMC *para * * LOCK() */ - if (lib) { + if (lib) lib_name = parrot_split_path_ext(interp, lib, &wo_ext, &ext); - } else { wo_ext = CONST_STRING(interp, ""); lib_name = NULL; @@ -692,27 +702,27 @@ Parrot_load_lib(PARROT_INTERP, ARGIN_NULLOK(STRING *lib), ARGIN_NULLOK(PMC *para } lib_pmc = is_loaded(interp, wo_ext); - if (!PMC_IS_NULL(lib_pmc)) { - /* UNLOCK() */ + + /* UNLOCK() */ + if (!PMC_IS_NULL(lib_pmc)) return lib_pmc; - } - if (!PMC_IS_NULL(parameters)) { + if (!PMC_IS_NULL(parameters)) flags = VTABLE_get_integer(interp, parameters); - } path = get_path(interp, lib, (Parrot_dlopen_flags)flags, &handle, wo_ext, ext); - if (!path || !handle) { - /* - * XXX Parrot_ex_throw_from_c_args? return PMCNULL? - * PMC Undef seems convenient, because it can be queried with get_bool() - */ + + /* + * XXX Parrot_ex_throw_from_c_args? return PMCNULL? + * PMC Undef seems convenient, because it can be queried with get_bool() + */ + if (!path || !handle) return Parrot_pmc_new(interp, enum_class_Undef); - } return run_init_lib(interp, handle, lib_name, wo_ext); } + /* =back From d2f135b153c9aa187ca9e7073cc4c0402c8e96cb Mon Sep 17 00:00:00 2001 From: "James E Keenan (Jim)" Date: Sat, 28 Aug 2010 02:46:54 +0000 Subject: [PATCH 161/165] tools/util/ is now empty; delete from repository. git-svn-id: https://svn.parrot.org/parrot/trunk@48708 d31e2699-5ff4-0310-a27c-f18f2fbe73fe From 46653bc77733d2a3f7ec2b2f9377299d136972e8 Mon Sep 17 00:00:00 2001 From: "Michael H. Hind" Date: Sat, 28 Aug 2010 09:40:23 +0000 Subject: [PATCH 162/165] add cast to get g++ to build git-svn-id: https://svn.parrot.org/parrot/trunk@48709 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/packfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packfile.c b/src/packfile.c index 140c119657..73d9feeab1 100644 --- a/src/packfile.c +++ b/src/packfile.c @@ -2645,7 +2645,7 @@ byte_code_destroy(PARROT_INTERP, ARGMOD(PackFile_Segment *self)) } if (byte_code->annotations) - PackFile_Annotations_destroy(interp, byte_code->annotations); + PackFile_Annotations_destroy(interp, (PackFile_Segment *)byte_code->annotations); byte_code->annotations = NULL; byte_code->const_table = NULL; From bbeb6c3c092e19ef332d863f94de6cbb0a299ad4 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Sat, 28 Aug 2010 11:44:33 +0000 Subject: [PATCH 163/165] Try to read whole file in FileHandle.readall. Closes #1749 git-svn-id: https://svn.parrot.org/parrot/trunk@48710 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/pmc/filehandle.pmc | 57 +++++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 18 deletions(-) diff --git a/src/pmc/filehandle.pmc b/src/pmc/filehandle.pmc index 602c2fbdc4..2a891d6159 100644 --- a/src/pmc/filehandle.pmc +++ b/src/pmc/filehandle.pmc @@ -438,46 +438,67 @@ filehandle when finished. */ METHOD readall(STRING *name :optional, INTVAL got_name :opt_flag) { - STRING *result; + PMC *filehandle; + STRING *result = STRINGNULL; + size_t size = 0; if (got_name) { /* called as class method - open, slurp, close file */ - PMC *filehandle; STRING *encoding; - size_t size; - - GET_ATTR_encoding(INTERP, SELF, encoding); if (!Parrot_io_is_closed_filehandle(INTERP, SELF)) Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_PIO_ERROR, "Cannot readall on a new file from an already open filehandle"); - filehandle = Parrot_io_open(INTERP, PMCNULL, name, NULL); + GET_ATTR_encoding(INTERP, SELF, encoding); + filehandle = Parrot_io_open(INTERP, PMCNULL, name, NULL); PARROT_ASSERT(filehandle->vtable->base_type == enum_class_FileHandle); SET_ATTR_encoding(INTERP, filehandle, encoding); size = (size_t)(Parrot_stat_info_intval(INTERP, name, STAT_FILESIZE)); - - result = Parrot_io_reads(INTERP, filehandle, size); - Parrot_io_close(INTERP, filehandle); } else { - /* slurp open file */ + /* Just get size of already opened file */ + STRING *filename; + Parrot_runloop jump_point; + if (Parrot_io_is_closed_filehandle(INTERP, SELF)) Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_PIO_ERROR, "Cannot readall without a file name or open filehandle"); - /* Do line buffering on the filehandle */ - if (!(PARROT_FILEHANDLE(SELF)->flags & PIO_F_LINEBUF)) - Parrot_io_setlinebuf(INTERP, SELF); + GET_ATTR_filename(INTERP, SELF, filename); + + /* stat_info ca throw exception. Switch to chunked loading */ + if (setjmp(jump_point.resume)) { + /* caught exception */ + Parrot_cx_delete_handler_local(interp, + Parrot_str_new_constant(interp, "exception")); - result = STRINGNULL; - do { - STRING * const part = Parrot_io_reads(INTERP, SELF, 0); - result = STRING_IS_NULL(result) ? part : + /* Do line buffering on the filehandle */ + if (!(PARROT_FILEHANDLE(SELF)->flags & PIO_F_LINEBUF)) + Parrot_io_setlinebuf(INTERP, SELF); + + do { + STRING * const part = Parrot_io_reads(INTERP, SELF, 0); + result = STRING_IS_NULL(result) ? part : Parrot_str_concat(INTERP, result, part); - } while (!Parrot_io_eof(INTERP, SELF)); + } while (!Parrot_io_eof(INTERP, SELF)); + } + else { + /* run normally */ + Parrot_ex_add_c_handler(interp, &jump_point); + + size = (size_t)(Parrot_stat_info_intval(INTERP, filename, STAT_FILESIZE)); + filehandle = SELF; + } + } + + if (size) + result = Parrot_io_reads(INTERP, filehandle, size); + + if (got_name) { + Parrot_io_close(INTERP, filehandle); } RETURN(STRING *result); From 978cb5909d7fed2786300aa79cc5b2e738c2245a Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Sat, 28 Aug 2010 13:14:03 +0000 Subject: [PATCH 164/165] Hash cleanup - Rename hash comparison functions to something less clash-prone - Make get_*_pmc static - Cleanup and fix [gs]et_*_keyed functions in Hash PMC - Fix other bugs in Hash PMC git-svn-id: https://svn.parrot.org/parrot/trunk@48711 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- compilers/imcc/pbc.c | 2 +- include/parrot/hash.h | 97 ++++++------ src/hash.c | 118 ++++++++------- src/pmc/addrregistry.pmc | 2 +- src/pmc/callcontext.pmc | 10 +- src/pmc/class.pmc | 23 +-- src/pmc/hash.pmc | 312 ++++++++++++++++++++++----------------- 7 files changed, 289 insertions(+), 275 deletions(-) diff --git a/compilers/imcc/pbc.c b/compilers/imcc/pbc.c index 50220ac145..6b0f0d3e3f 100644 --- a/compilers/imcc/pbc.c +++ b/compilers/imcc/pbc.c @@ -363,7 +363,7 @@ add_const_table(PARROT_INTERP) interp->code->const_table->string_hash = Parrot_pmc_new_init_int(interp, enum_class_Hash, enum_type_INTVAL); ((Hash *)VTABLE_get_pointer(interp, interp->code->const_table->string_hash))->compare = - (hash_comp_fn)STRING_compare_distinct_cs_enc; + (hash_comp_fn)hash_compare_string_distinct_enc; interp->code->const_table->constants = mem_gc_allocate_n_zeroed_typed(interp, newcount, PackFile_Constant); diff --git a/include/parrot/hash.h b/include/parrot/hash.h index 32faba7ed2..eb359d31f7 100644 --- a/include/parrot/hash.h +++ b/include/parrot/hash.h @@ -233,19 +233,40 @@ PARROT_CANNOT_RETURN_NULL Hash * parrot_new_pointer_hash(PARROT_INTERP) __attribute__nonnull__(1); -PARROT_CANNOT_RETURN_NULL -PMC* get_integer_pmc(PARROT_INTERP, INTVAL value) - __attribute__nonnull__(1); +PARROT_WARN_UNUSED_RESULT +PARROT_CONST_FUNCTION +int hash_compare_int(SHIM_INTERP, + ARGIN_NULLOK(const void *a), + ARGIN_NULLOK(const void *b)); -PARROT_CANNOT_RETURN_NULL -PMC* get_number_pmc(PARROT_INTERP, FLOATVAL value) - __attribute__nonnull__(1); +PARROT_WARN_UNUSED_RESULT +PARROT_PURE_FUNCTION +int hash_compare_pmc(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3); -PARROT_CANNOT_RETURN_NULL -PMC * get_string_pmc(PARROT_INTERP, ARGIN(STRING *value)) +PARROT_WARN_UNUSED_RESULT +PARROT_CONST_FUNCTION +int hash_compare_pointer(SHIM_INTERP, + ARGIN_NULLOK(const void *a), + ARGIN_NULLOK(const void *b)); + +PARROT_WARN_UNUSED_RESULT +int hash_compare_string(PARROT_INTERP, + ARGIN(const void *search_key), + ARGIN_NULLOK(const void *bucket_key)) __attribute__nonnull__(1) __attribute__nonnull__(2); +PARROT_WARN_UNUSED_RESULT +int hash_compare_string_distinct_enc(PARROT_INTERP, + ARGIN(const void *search_key), + ARGIN(const void *bucket_key)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3); + PARROT_CAN_RETURN_NULL void* hash_key_from_int(PARROT_INTERP, ARGIN(const Hash *hash), INTVAL key) __attribute__nonnull__(1) @@ -342,12 +363,6 @@ STRING* hash_value_to_string(PARROT_INTERP, __attribute__nonnull__(1) __attribute__nonnull__(2); -PARROT_WARN_UNUSED_RESULT -PARROT_CONST_FUNCTION -int int_compare(SHIM_INTERP, - ARGIN_NULLOK(const void *a), - ARGIN_NULLOK(const void *b)); - PARROT_WARN_UNUSED_RESULT PARROT_CONST_FUNCTION size_t key_hash_int(SHIM_INTERP, @@ -431,28 +446,6 @@ Hash * Parrot_hash_thaw(PARROT_INTERP, ARGMOD(PMC *info)) __attribute__nonnull__(2) FUNC_MODIFIES(*info); -PARROT_WARN_UNUSED_RESULT -PARROT_PURE_FUNCTION -int PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3); - -PARROT_WARN_UNUSED_RESULT -int STRING_compare(PARROT_INTERP, - ARGIN(const void *search_key), - ARGIN_NULLOK(const void *bucket_key)) - __attribute__nonnull__(1) - __attribute__nonnull__(2); - -PARROT_WARN_UNUSED_RESULT -int STRING_compare_distinct_cs_enc(PARROT_INTERP, - ARGIN(const void *search_key), - ARGIN(const void *bucket_key)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3); - #define ASSERT_ARGS_parrot_dump_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) #define ASSERT_ARGS_parrot_hash_clone __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ @@ -492,13 +485,20 @@ int STRING_compare_distinct_cs_enc(PARROT_INTERP, PARROT_ASSERT_ARG(interp)) #define ASSERT_ARGS_parrot_new_pointer_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp)) -#define ASSERT_ARGS_get_integer_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp)) -#define ASSERT_ARGS_get_number_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp)) -#define ASSERT_ARGS_get_string_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ +#define ASSERT_ARGS_hash_compare_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) +#define ASSERT_ARGS_hash_compare_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(value)) + , PARROT_ASSERT_ARG(a) \ + , PARROT_ASSERT_ARG(b)) +#define ASSERT_ARGS_hash_compare_pointer __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) +#define ASSERT_ARGS_hash_compare_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(search_key)) +#define ASSERT_ARGS_hash_compare_string_distinct_enc \ + __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(search_key) \ + , PARROT_ASSERT_ARG(bucket_key)) #define ASSERT_ARGS_hash_key_from_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash)) @@ -544,7 +544,6 @@ int STRING_compare_distinct_cs_enc(PARROT_INTERP, #define ASSERT_ARGS_hash_value_to_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash)) -#define ASSERT_ARGS_int_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) #define ASSERT_ARGS_key_hash_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) #define ASSERT_ARGS_key_hash_PMC __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ @@ -578,18 +577,6 @@ int STRING_compare_distinct_cs_enc(PARROT_INTERP, #define ASSERT_ARGS_Parrot_hash_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(info)) -#define ASSERT_ARGS_PMC_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(a) \ - , PARROT_ASSERT_ARG(b)) -#define ASSERT_ARGS_STRING_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(search_key)) -#define ASSERT_ARGS_STRING_compare_distinct_cs_enc \ - __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(search_key) \ - , PARROT_ASSERT_ARG(bucket_key)) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: src/hash.c */ diff --git a/src/hash.c b/src/hash.c index 87d13cb319..c9ddb8a8ad 100644 --- a/src/hash.c +++ b/src/hash.c @@ -35,19 +35,32 @@ C<< hash->buckets >> bucket store points to this region. /* HEADERIZER BEGIN: static */ /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ +static void expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + FUNC_MODIFIES(*hash); + +PARROT_CANNOT_RETURN_NULL +static PMC* get_integer_pmc(PARROT_INTERP, INTVAL value) + __attribute__nonnull__(1); + +PARROT_CANNOT_RETURN_NULL +static PMC* get_number_pmc(PARROT_INTERP, FLOATVAL value) + __attribute__nonnull__(1); + +PARROT_CANNOT_RETURN_NULL +static PMC * get_string_pmc(PARROT_INTERP, ARGIN(STRING *value)) + __attribute__nonnull__(1) + __attribute__nonnull__(2); + PARROT_WARN_UNUSED_RESULT PARROT_PURE_FUNCTION -static int cstring_compare(SHIM_INTERP, +static int hash_compare_cstring(SHIM_INTERP, ARGIN(const char *a), ARGIN(const char *b)) __attribute__nonnull__(2) __attribute__nonnull__(3); -static void expand_hash(PARROT_INTERP, ARGMOD(Hash *hash)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - FUNC_MODIFIES(*hash); - PARROT_WARN_UNUSED_RESULT PARROT_PURE_FUNCTION static size_t key_hash_cstring(SHIM_INTERP, @@ -74,18 +87,19 @@ static void parrot_mark_hash_values(PARROT_INTERP, ARGIN(Hash *hash)) __attribute__nonnull__(1) __attribute__nonnull__(2); -PARROT_WARN_UNUSED_RESULT -PARROT_CONST_FUNCTION -static int pointer_compare(SHIM_INTERP, - ARGIN_NULLOK(const void *a), - ARGIN_NULLOK(const void *b)); - -#define ASSERT_ARGS_cstring_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(a) \ - , PARROT_ASSERT_ARG(b)) #define ASSERT_ARGS_expand_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash)) +#define ASSERT_ARGS_get_integer_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) +#define ASSERT_ARGS_get_number_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) +#define ASSERT_ARGS_get_string_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(value)) +#define ASSERT_ARGS_hash_compare_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(a) \ + , PARROT_ASSERT_ARG(b)) #define ASSERT_ARGS_key_hash_cstring __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(value)) #define ASSERT_ARGS_key_hash_pointer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -99,7 +113,6 @@ static int pointer_compare(SHIM_INTERP, #define ASSERT_ARGS_parrot_mark_hash_values __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(hash)) -#define ASSERT_ARGS_pointer_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ @@ -131,8 +144,8 @@ key_hash_STRING(PARROT_INTERP, ARGMOD(STRING *s), SHIM(size_t seed)) /* -=item C +=item C Compares the two strings, returning 0 if they are identical. @@ -142,9 +155,9 @@ Compares the two strings, returning 0 if they are identical. PARROT_WARN_UNUSED_RESULT int -STRING_compare(PARROT_INTERP, ARGIN(const void *search_key), ARGIN_NULLOK(const void *bucket_key)) +hash_compare_string(PARROT_INTERP, ARGIN(const void *search_key), ARGIN_NULLOK(const void *bucket_key)) { - ASSERT_ARGS(STRING_compare) + ASSERT_ARGS(hash_compare_string) STRING const *s1 = (STRING const *)search_key; STRING const *s2 = (STRING const *)bucket_key; @@ -157,7 +170,7 @@ STRING_compare(PARROT_INTERP, ARGIN(const void *search_key), ARGIN_NULLOK(const /* -=item C Compare two strings. Returns 0 if they are identical. Considers differing @@ -167,10 +180,10 @@ charset or encoding to be distinct. PARROT_WARN_UNUSED_RESULT int -STRING_compare_distinct_cs_enc(PARROT_INTERP, ARGIN(const void *search_key), +hash_compare_string_distinct_enc(PARROT_INTERP, ARGIN(const void *search_key), ARGIN(const void *bucket_key)) { - ASSERT_ARGS(STRING_compare_distinct_cs_enc) + ASSERT_ARGS(hash_compare_string_distinct_enc) STRING const *s1 = (STRING const *)search_key; STRING const *s2 = (STRING const *)bucket_key; @@ -180,13 +193,13 @@ STRING_compare_distinct_cs_enc(PARROT_INTERP, ARGIN(const void *search_key), return 1; } - return STRING_compare(interp, search_key, bucket_key); + return hash_compare_string(interp, search_key, bucket_key); } /* -=item C +=item C Compares the two pointers, returning 0 if they are identical @@ -196,10 +209,10 @@ Compares the two pointers, returning 0 if they are identical PARROT_WARN_UNUSED_RESULT PARROT_CONST_FUNCTION -static int -pointer_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b)) +int +hash_compare_pointer(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b)) { - ASSERT_ARGS(pointer_compare) + ASSERT_ARGS(hash_compare_pointer) return a != b; } @@ -261,7 +274,8 @@ key_hash_cstring(SHIM_INTERP, ARGIN(const void *value), size_t seed) /* -=item C +=item C Compares two C strings for equality, returning -1, 0, and 1 if the first string is less than, equal to, or greater than the second, respectively. @@ -273,9 +287,9 @@ is less than, equal to, or greater than the second, respectively. PARROT_WARN_UNUSED_RESULT PARROT_PURE_FUNCTION static int -cstring_compare(SHIM_INTERP, ARGIN(const char *a), ARGIN(const char *b)) +hash_compare_cstring(SHIM_INTERP, ARGIN(const char *a), ARGIN(const char *b)) { - ASSERT_ARGS(cstring_compare) + ASSERT_ARGS(hash_compare_cstring) return strcmp(a, b); } @@ -301,7 +315,7 @@ key_hash_PMC(PARROT_INTERP, ARGIN(PMC *value), SHIM(size_t seed)) /* -=item C +=item C Compares two PMC for equality, returning 0 if the first is equal to second. Uses void pointers to store the PMC, sadly. @@ -313,9 +327,9 @@ Uses void pointers to store the PMC, sadly. PARROT_WARN_UNUSED_RESULT PARROT_PURE_FUNCTION int -PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b)) +hash_compare_pmc(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b)) { - ASSERT_ARGS(PMC_compare) + ASSERT_ARGS(hash_compare_pmc) /* If pointers are same - PMCs are same */ if (a == b) @@ -349,7 +363,7 @@ key_hash_int(SHIM_INTERP, ARGIN_NULLOK(const void *value), size_t seed) /* -=item C +=item C Compares two integers for equality, returning -1, 0, and 1 if the first is less than, equal to, or greater than the second, respectively. Uses void pointers @@ -362,9 +376,9 @@ to store the integers, sadly. PARROT_WARN_UNUSED_RESULT PARROT_CONST_FUNCTION int -int_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b)) +hash_compare_int(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b)) { - ASSERT_ARGS(int_compare) + ASSERT_ARGS(hash_compare_int) return a != b; } @@ -521,15 +535,15 @@ Parrot_hash_thaw(PARROT_INTERP, ARGMOD(PMC *info)) switch (key_type) { case Hash_key_type_int: key_fn = (hash_hash_key_fn)key_hash_int; - cmp_fn = (hash_comp_fn)int_compare; + cmp_fn = (hash_comp_fn)hash_compare_int; break; case Hash_key_type_STRING: key_fn = (hash_hash_key_fn)key_hash_STRING; - cmp_fn = (hash_comp_fn)STRING_compare; + cmp_fn = (hash_comp_fn)hash_compare_string; break; case Hash_key_type_PMC: key_fn = (hash_hash_key_fn)key_hash_PMC; - cmp_fn = (hash_comp_fn)PMC_compare; + cmp_fn = (hash_comp_fn)hash_compare_pmc; break; default: Parrot_ex_throw_from_c_args(interp, NULL, 1, @@ -834,7 +848,7 @@ parrot_new_hash(PARROT_INTERP) return parrot_create_hash(interp, enum_type_PMC, Hash_key_type_STRING, - STRING_compare, + hash_compare_string, (hash_hash_key_fn)key_hash_STRING); } @@ -858,7 +872,7 @@ parrot_new_cstring_hash(PARROT_INTERP) return parrot_create_hash(interp, enum_type_PMC, Hash_key_type_cstring, - (hash_comp_fn)cstring_compare, + (hash_comp_fn)hash_compare_cstring, (hash_hash_key_fn)key_hash_cstring); } @@ -882,7 +896,7 @@ parrot_new_pointer_hash(PARROT_INTERP) return parrot_create_hash(interp, enum_type_ptr, Hash_key_type_ptr, - pointer_compare, + hash_compare_pointer, key_hash_pointer); } @@ -909,7 +923,7 @@ parrot_new_intval_hash(PARROT_INTERP) return parrot_create_hash(interp, enum_type_INTVAL, Hash_key_type_int, - int_compare, + hash_compare_int, key_hash_int); } @@ -1141,7 +1155,7 @@ parrot_hash_get_bucket(PARROT_INTERP, ARGIN(const Hash *hash), ARGIN_NULLOK(cons return NULL; if (hash_val == (hash_hash_key_fn)key_hash_STRING - && compare == STRING_compare) { + && compare == hash_compare_string) { /* fast path for string keys */ DECL_CONST_CAST; STRING * const s = (STRING *)PARROT_const_cast(void *, key); @@ -1252,7 +1266,7 @@ parrot_hash_put(PARROT_INTERP, ARGMOD(Hash *hash), const hash_comp_fn compare = hash->compare; if (hash_val == (hash_hash_key_fn)key_hash_STRING - && compare == STRING_compare) { + && compare == hash_compare_string) { /* fast path for string keys */ STRING *s = (STRING *)key; @@ -1420,7 +1434,7 @@ parrot_hash_clone_prunable(PARROT_INTERP, ARGIN(const Hash *hash), /* -=item C +=item C Lookup the PMC type which is used for storing native integers. @@ -1429,7 +1443,7 @@ Lookup the PMC type which is used for storing native integers. */ PARROT_CANNOT_RETURN_NULL -PMC* +static PMC* get_integer_pmc(PARROT_INTERP, INTVAL value) { ASSERT_ARGS(get_integer_pmc) @@ -1441,7 +1455,7 @@ get_integer_pmc(PARROT_INTERP, INTVAL value) /* -=item C +=item C Lookup the PMC type which is used for floating point numbers. @@ -1450,7 +1464,7 @@ Lookup the PMC type which is used for floating point numbers. */ PARROT_CANNOT_RETURN_NULL -PMC* +static PMC* get_number_pmc(PARROT_INTERP, FLOATVAL value) { ASSERT_ARGS(get_number_pmc) @@ -1461,7 +1475,7 @@ get_number_pmc(PARROT_INTERP, FLOATVAL value) /* -=item C +=item C Lookup the PMC type which is used for storing strings. @@ -1470,7 +1484,7 @@ Lookup the PMC type which is used for storing strings. */ PARROT_CANNOT_RETURN_NULL -PMC * +static PMC * get_string_pmc(PARROT_INTERP, ARGIN(STRING *value)) { ASSERT_ARGS(get_string_pmc) diff --git a/src/pmc/addrregistry.pmc b/src/pmc/addrregistry.pmc index 542bb72f25..62de2381ec 100644 --- a/src/pmc/addrregistry.pmc +++ b/src/pmc/addrregistry.pmc @@ -47,7 +47,7 @@ Initializes the instance. Hash *registry = parrot_create_hash(INTERP, enum_type_int, Hash_key_type_PMC, - int_compare, + hash_compare_int, key_hash_int); SET_ATTR_hash(INTERP, SELF, registry); diff --git a/src/pmc/callcontext.pmc b/src/pmc/callcontext.pmc index 5bfba95456..6d720dc63a 100644 --- a/src/pmc/callcontext.pmc +++ b/src/pmc/callcontext.pmc @@ -391,7 +391,7 @@ get_hash(PARROT_INTERP, ARGIN(PMC *SELF)) hash = parrot_create_hash(interp, enum_type_ptr, Hash_key_type_STRING, - STRING_compare, + hash_compare_string, (hash_hash_key_fn)key_hash_STRING); SETATTR_CallContext_hash(interp, SELF, hash); @@ -989,14 +989,14 @@ return current Namespace else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "handlers"))) GET_ATTR_handlers(INTERP, SELF, value); else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "current_HLL"))) { - /* This function from src/hash.c. */ - /* We probably have to move it to more suitable place */ GET_ATTR_current_HLL(INTERP, SELF, hll); - value = get_integer_pmc(INTERP, hll); + value = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer)); + VTABLE_set_integer_native(interp, value, hll); } else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "current_hll"))) { GET_ATTR_current_HLL(INTERP, SELF, hll); - value = get_string_pmc(INTERP, Parrot_get_HLL_name(INTERP, hll)); + value = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String)); + VTABLE_set_string_native(interp, value, Parrot_get_HLL_name(INTERP, hll)); } else Parrot_ex_throw_from_c_args(INTERP, NULL, diff --git a/src/pmc/class.pmc b/src/pmc/class.pmc index e7ec64ace6..e2db6909db 100644 --- a/src/pmc/class.pmc +++ b/src/pmc/class.pmc @@ -151,10 +151,6 @@ static STRING * make_class_name(PARROT_INTERP, ARGIN(PMC *SELF)) __attribute__nonnull__(1) __attribute__nonnull__(2); -static int pointer_compare(SHIM_INTERP, - ARGIN_NULLOK(const void *a), - ARGIN_NULLOK(const void *b)); - #define ASSERT_ARGS_build_attrib_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(self)) @@ -183,28 +179,11 @@ static int pointer_compare(SHIM_INTERP, #define ASSERT_ARGS_make_class_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(SELF)) -#define ASSERT_ARGS_pointer_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ /* -=item C - -=cut - -*/ - -static int -pointer_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a), - ARGIN_NULLOK(const void *b)) -{ - ASSERT_ARGS(pointer_compare) - return a != b; -} - -/* - =item C @@ -708,7 +687,7 @@ arguments. The class is attached to the current HLL namespace. _class->parent_overrides = Parrot_pmc_new(INTERP, enum_class_Hash); _class->isa_cache = parrot_create_hash(INTERP, enum_type_INTVAL, Hash_key_type_PMC, - (hash_comp_fn)pointer_compare, (hash_hash_key_fn)key_hash_pointer); + (hash_comp_fn)hash_compare_pointer, (hash_hash_key_fn)key_hash_pointer); /* We put ourself on the all parents list. */ VTABLE_push_pmc(INTERP, _class->all_parents, SELF); diff --git a/src/pmc/hash.pmc b/src/pmc/hash.pmc index 664e440237..d92be6a25e 100644 --- a/src/pmc/hash.pmc +++ b/src/pmc/hash.pmc @@ -50,8 +50,61 @@ These are the vtable functions for the Hash PMC. /* HEADERIZER HFILE: none */ /* HEADERIZER BEGIN: static */ +/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ + +PARROT_CANNOT_RETURN_NULL +PARROT_WARN_UNUSED_RESULT +static PMC* get_next_hash(PARROT_INTERP, + ARGMOD(Hash *hash), + ARGIN(void *key)) + __attribute__nonnull__(1) + __attribute__nonnull__(2) + __attribute__nonnull__(3) + FUNC_MODIFIES(*hash); + +#define ASSERT_ARGS_get_next_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp) \ + , PARROT_ASSERT_ARG(hash) \ + , PARROT_ASSERT_ARG(key)) +/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: static */ +/* + +=item C + +Get the next hash for multipart keys. Autovivify a hash if it doesn't exist. + +=cut + +*/ + +PARROT_CANNOT_RETURN_NULL +PARROT_WARN_UNUSED_RESULT +static PMC* +get_next_hash(PARROT_INTERP, ARGMOD(Hash *hash), ARGIN(void *key)) +{ + PMC *next_hash; + HashBucket *bucket; + + if (hash->entry_type != enum_type_PMC) + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION, + "Hash entry type must be PMC for multipart keys."); + + bucket = parrot_hash_get_bucket(interp, hash, key); + + if (bucket) { + next_hash = (PMC *)bucket->value; + } + else { + /* autovivify a Hash */ + next_hash = Parrot_pmc_new(interp, enum_class_Hash); + parrot_hash_put(interp, hash, key, next_hash); + } + + return next_hash; +} + pmclass Hash provides hash auto_attrs { ATTR Hash *hash; @@ -88,7 +141,7 @@ Free hash structure. attr->hash = parrot_create_hash(INTERP, (PARROT_DATA_TYPE)value_type, Hash_key_type_STRING, - STRING_compare, + hash_compare_string, (hash_hash_key_fn)key_hash_STRING); PObj_custom_mark_destroy_SETALL(SELF); } @@ -98,6 +151,7 @@ Free hash structure. if (hash) parrot_hash_destroy(INTERP, hash); } + /* =item C @@ -179,21 +233,21 @@ NB: this method will destroy all old data! new_hash = parrot_create_hash(INTERP, entry_type, Hash_key_type_STRING, - STRING_compare, + hash_compare_string, (hash_hash_key_fn)key_hash_STRING); else if (type == Hash_key_type_int) /* new_int_hash set BOTH keys and values to INTVAL */ new_hash = parrot_create_hash(INTERP, entry_type, Hash_key_type_int, - int_compare, + hash_compare_int, key_hash_int); else if (type == Hash_key_type_PMC) /* new_int_hash set BOTH keys and values to INTVAL */ new_hash = parrot_create_hash(INTERP, entry_type, Hash_key_type_PMC, - (hash_comp_fn)PMC_compare, + (hash_comp_fn)hash_compare_pmc, (hash_hash_key_fn)key_hash_PMC); else /* We probably will not implement other types of keys. They are way @@ -243,9 +297,9 @@ NB: this method will destroy all old data! /* If someone called Hash.set_pointer with NULL pointer... - It will create STRING* keys hash. Because we can't use STRING_compare - directly - it declared static in F + It will create STRING* keys hash. */ + if (old_hash && old_hash->entry_type == type) return; @@ -256,7 +310,7 @@ NB: this method will destroy all old data! new_hash = parrot_create_hash(INTERP, (PARROT_DATA_TYPE)type, old_hash ? old_hash->key_type : Hash_key_type_STRING, - old_hash ? old_hash->compare : STRING_compare, + old_hash ? old_hash->compare : hash_compare_string, old_hash ? old_hash->hash_val : (hash_hash_key_fn)key_hash_STRING); break; default: @@ -416,24 +470,25 @@ Returns the integer value for the element at C<*key>. /* Handling Keys */ VTABLE INTVAL get_integer_keyed(PMC *key) { - const Hash * const hash = (Hash *)SELF.get_pointer(); - HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, - hash_key_from_pmc(INTERP, hash, key)); - PMC *valpmc; - PMC *nextkey; + const Hash * const hash = (Hash *)SELF.get_pointer(); + const void * const hash_key = hash_key_from_pmc(INTERP, hash, key); + HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, hash_key); if (!b) return 0; - nextkey = key_next(INTERP, key); - valpmc = hash_value_to_pmc(INTERP, hash, b->value); + key = key_next(INTERP, key); /* Stop recursion. This is last step */ - if (!nextkey) - return VTABLE_get_integer(INTERP, valpmc); + if (!key) + return hash_value_to_int(INTERP, hash, b->value); + + if (hash->entry_type != enum_type_PMC) + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION, + "Hash entry type must be PMC for multipart keys."); - /* Recusively call to enclosed aggregate */ - return VTABLE_get_integer_keyed(INTERP, valpmc, nextkey); + /* Recursively call to enclosed aggregate */ + return VTABLE_get_integer_keyed(INTERP, (PMC *)b->value, key); } /* @@ -445,11 +500,8 @@ Returns the integer value for the element at C<*key>. */ VTABLE void set_integer_keyed(PMC *key, INTVAL value) { - Hash * const hash = (Hash *)SELF.get_pointer(); - void * const keystr = hash_key_from_pmc(INTERP, hash, key); - PMC * const nextkey = key_next(INTERP, key); - PMC *box; - HashBucket *b; + Hash * const hash = (Hash *)SELF.get_pointer(); + void * const hash_key = hash_key_from_pmc(INTERP, hash, key); if (PObj_constant_TEST(SELF) && !PObj_constant_TEST((PObj *)key)) @@ -457,23 +509,16 @@ Returns the integer value for the element at C<*key>. EXCEPTION_INVALID_OPERATION, "Used non-constant PMC key in constant hash."); - if (!nextkey) { - parrot_hash_put(INTERP, hash, keystr, + key = key_next(INTERP, key); + + if (!key) { + parrot_hash_put(INTERP, hash, hash_key, hash_value_from_int(INTERP, hash, value)); - return; } - - b = parrot_hash_get_bucket(INTERP, hash, keystr); - if (b) - box = hash_value_to_pmc(INTERP, hash, b->value); else { - /* autovivify an Hash */ - box = Parrot_pmc_new(INTERP, SELF.type()); - parrot_hash_put(INTERP, hash, keystr, - hash_value_from_pmc(INTERP, hash, box)); + PMC * const next_hash = get_next_hash(INTERP, hash, hash_key); + VTABLE_set_integer_keyed(INTERP, next_hash, key, value); } - - VTABLE_set_integer_keyed(INTERP, box, nextkey, value); } VTABLE void set_integer_keyed_int(INTVAL key, INTVAL value) { @@ -547,22 +592,23 @@ Returns the floating-point value for the element at C<*key>. /* I can't migrate this function right now. Some problem with JITting */ VTABLE FLOATVAL get_number_keyed(PMC *key) { - PMC *nextkey; - PMC *valpmc; - const Hash * const hash = (Hash *)SELF.get_pointer(); - void * const keystr = hash_key_from_pmc(INTERP, hash, key); - HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, keystr); + const Hash * const hash = (Hash *)SELF.get_pointer(); + void * const hash_key = hash_key_from_pmc(INTERP, hash, key); + HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, hash_key); if (!b) return 0.0; - nextkey = key_next(INTERP, key); - valpmc = hash_value_to_pmc(INTERP, hash, b->value); + key = key_next(INTERP, key); + + if (!key) + return hash_value_to_number(INTERP, hash, b->value); - if (!nextkey) - return VTABLE_get_number(INTERP, valpmc); + if (hash->entry_type != enum_type_PMC) + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION, + "Hash entry type must be PMC for multipart keys."); - return VTABLE_get_number_keyed(INTERP, valpmc, nextkey); + return VTABLE_get_number_keyed(INTERP, (PMC *)b->value, key); } @@ -609,24 +655,25 @@ Returns the string value for the element at C<*key>. */ VTABLE STRING *get_string_keyed(PMC *key) { - const Hash * const hash = (Hash *)SELF.get_pointer(); - HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, - hash_key_from_pmc(INTERP, hash, key)); - PMC *valpmc; - PMC *nextkey; + const Hash * const hash = (Hash *)SELF.get_pointer(); + const void * const hash_key = hash_key_from_pmc(INTERP, hash, key); + HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, hash_key); if (!b) return Parrot_str_new_noinit(INTERP, enum_stringrep_one, 0); - nextkey = key_next(INTERP, key); - valpmc = hash_value_to_pmc(INTERP, hash, b->value); + key = key_next(INTERP, key); /* Stop recursion. This is last step */ - if (!nextkey) - return VTABLE_get_string(INTERP, valpmc); + if (!key) + return hash_value_to_string(INTERP, hash, b->value); + + if (hash->entry_type != enum_type_PMC) + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION, + "Hash entry type must be PMC for multipart keys."); - /* Recusively call to enclosed aggregate */ - return VTABLE_get_string_keyed(INTERP, valpmc, nextkey); + /* Recursively call to enclosed aggregate */ + return VTABLE_get_string_keyed(INTERP, (PMC *)b->value, key); } /* @@ -638,11 +685,8 @@ Returns the string value for the element at C<*key>. */ VTABLE void set_string_keyed(PMC *key, STRING *value) { - Hash * const hash = (Hash *)SELF.get_pointer(); - void * const keystr = hash_key_from_pmc(INTERP, hash, key); - PMC * const nextkey = key_next(INTERP, key); - PMC *box; - HashBucket *b; + Hash * const hash = (Hash *)SELF.get_pointer(); + void * const hash_key = hash_key_from_pmc(INTERP, hash, key); if (PObj_constant_TEST(SELF)){ if (!PObj_constant_TEST((PObj *)key)) @@ -655,23 +699,16 @@ Returns the string value for the element at C<*key>. "Used non-constant STRING value in constant hash."); } - if (!nextkey) { - parrot_hash_put(INTERP, hash, keystr, + key = key_next(INTERP, key); + + if (!key) { + parrot_hash_put(INTERP, hash, hash_key, hash_value_from_string(INTERP, hash, value)); - return; } - - b = parrot_hash_get_bucket(INTERP, hash, keystr); - if (b) - box = hash_value_to_pmc(INTERP, hash, b->value); else { - /* autovivify an Hash */ - box = Parrot_pmc_new(INTERP, SELF.type()); - parrot_hash_put(INTERP, hash, keystr, - hash_value_from_pmc(INTERP, hash, box)); + PMC * const next_hash = get_next_hash(INTERP, hash, hash_key); + VTABLE_set_string_keyed(INTERP, next_hash, key, value); } - - VTABLE_set_string_keyed(INTERP, box, nextkey, value); } /* @@ -696,8 +733,7 @@ Returns the string value for the element at C<*key>. "Used non-constant STRING value in constant hash."); } - parrot_hash_put(INTERP, hash, - hash_key_from_string(INTERP, hash, key), + parrot_hash_put(INTERP, hash, hash_key_from_string(INTERP, hash, key), hash_value_from_string(INTERP, hash, value)); } @@ -731,14 +767,13 @@ Returns the PMC value for the element at C<*key>. VTABLE PMC *get_pmc_keyed_str(STRING *key) { const Hash *hash; - HashBucket *b = NULL; + HashBucket *b; GET_ATTR_hash(INTERP, SELF, hash); /* special case the most likely key type, for speed */ - key = hash->key_type == Hash_key_type_STRING - ? key - : (STRING *)hash_key_from_string(INTERP, hash, key); + if (hash->key_type != Hash_key_type_STRING) + key = (STRING *)hash_key_from_string(INTERP, hash, key); b = parrot_hash_get_bucket(INTERP, hash, key); @@ -765,24 +800,25 @@ Returns the PMC value for the element at C<*key>. /* Compound Key */ VTABLE PMC *get_pmc_keyed(PMC *key) { - const Hash * const hash = (Hash *)SELF.get_pointer(); - HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, - hash_key_from_pmc(INTERP, hash, key)); - PMC *valpmc; - PMC *nextkey; + const Hash * const hash = (Hash *)SELF.get_pointer(); + const void * const hash_key = hash_key_from_pmc(INTERP, hash, key); + HashBucket * const b = parrot_hash_get_bucket(INTERP, hash, hash_key); if (!b) return PMCNULL; - nextkey = key_next(INTERP, key); - valpmc = hash_value_to_pmc(INTERP, hash, b->value); + key = key_next(INTERP, key); /* Stop recursion. This is last step */ - if (!nextkey) - return valpmc; + if (!key) + return hash_value_to_pmc(INTERP, hash, b->value); + + if (hash->entry_type != enum_type_PMC) + Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION, + "Hash entry type must be PMC for multipart keys."); - /* Recusively call to enclosed aggregate */ - return VTABLE_get_pmc_keyed(INTERP, valpmc, nextkey); + /* Recursively call to enclosed aggregate */ + return VTABLE_get_pmc_keyed(INTERP, (PMC *)b->value, key); } /* @@ -794,11 +830,8 @@ Returns the PMC value for the element at C<*key>. */ VTABLE void set_number_keyed(PMC *key, FLOATVAL value) { - Hash * const hash = (Hash *)SELF.get_pointer(); - void * const keystr = hash_key_from_pmc(INTERP, hash, key); - PMC * const nextkey = key_next(INTERP, key); - PMC *box = PMCNULL; - HashBucket *b; + Hash * const hash = (Hash *)SELF.get_pointer(); + void * const hash_key = hash_key_from_pmc(INTERP, hash, key); if (PObj_constant_TEST(SELF) && !PObj_constant_TEST((PObj *)key)) @@ -806,21 +839,16 @@ Returns the PMC value for the element at C<*key>. EXCEPTION_INVALID_OPERATION, "Used non-constant PMC key in constant hash."); - if (!nextkey) { - PMC * const val = get_number_pmc(INTERP, value); - parrot_hash_put(INTERP, hash, keystr, hash_value_from_pmc(INTERP, hash, val)); - return; - } - - b = parrot_hash_get_bucket(INTERP, (Hash *)SELF.get_pointer(), keystr); - if (b) - box = hash_value_to_pmc(INTERP, hash, b->value); - - /* autovivify an Hash */ - if (PMC_IS_NULL(box)) - box = Parrot_pmc_new(INTERP, SELF.type()); + key = key_next(INTERP, key); - VTABLE_set_number_keyed(INTERP, box, nextkey, value); + if (!key) { + parrot_hash_put(INTERP, hash, hash_key, + hash_value_from_number(INTERP, hash, value)); + } + else { + PMC * const next_hash = get_next_hash(INTERP, hash, hash_key); + VTABLE_set_number_keyed(INTERP, next_hash, key, value); + } } /* @@ -834,7 +862,7 @@ Sets C as the value for C<*key>. */ VTABLE void set_number_keyed_str(STRING *key, FLOATVAL value) { - PMC * const val = get_number_pmc(INTERP, value); + Hash * const hash = (Hash *)SELF.get_pointer(); if (PObj_constant_TEST(SELF) && !PObj_constant_TEST((PObj *)key)) @@ -842,7 +870,8 @@ Sets C as the value for C<*key>. EXCEPTION_INVALID_OPERATION, "Used non-constant STRING key in constant hash."); - parrot_hash_put(INTERP, (Hash *)SELF.get_pointer(), key, val); + parrot_hash_put(INTERP, hash, hash_key_from_string(INTERP, hash, key), + hash_value_from_number(INTERP, hash, value)); } /* @@ -854,11 +883,8 @@ Sets C as the value for C<*key>. */ VTABLE void set_pmc_keyed(PMC *key, PMC *value) { - Hash * const hash = (Hash *)SELF.get_pointer(); - void * const keystr = hash_key_from_pmc(INTERP, hash, key); - PMC * const nextkey = key_next(INTERP, key); - PMC *box; - HashBucket *b; + Hash * const hash = (Hash *)SELF.get_pointer(); + void * const hash_key = hash_key_from_pmc(INTERP, hash, key); if (PObj_constant_TEST(SELF)) { if (!PObj_constant_TEST((PObj *)key)) @@ -872,23 +898,15 @@ Sets C as the value for C<*key>. "Used non-constant PMC value in constant hash."); } - if (!nextkey) { - parrot_hash_put(INTERP, hash, keystr, value); - return; - } + key = key_next(INTERP, key); - b = parrot_hash_get_bucket(INTERP, hash, keystr); - if (b) - box = hash_value_to_pmc(INTERP, hash, b->value); + if (!key) { + parrot_hash_put(INTERP, hash, hash_key, value); + } else { - /* autovivify an Hash */ - box = Parrot_pmc_new(INTERP, SELF.type()); - parrot_hash_put(INTERP, hash, keystr, - hash_value_from_pmc(INTERP, hash, box)); + PMC * const next_hash = get_next_hash(INTERP, hash, hash_key); + VTABLE_set_pmc_keyed(INTERP, next_hash, key, value); } - - - VTABLE_set_pmc_keyed(INTERP, box, nextkey, value); } /* @@ -960,7 +978,12 @@ Returns whether a key C<*key> exists in the hash. if (!key) return 1; - return VTABLE_exists_keyed(INTERP, hash_value_to_pmc(INTERP, h, b->value), key); + if (h->entry_type != enum_type_PMC) + Parrot_ex_throw_from_c_args(INTERP, NULL, + EXCEPTION_INVALID_OPERATION, + "Hash entry type must be PMC for multipart keys."); + + return VTABLE_exists_keyed(INTERP, (PMC *)b->value, key); } /* @@ -1006,9 +1029,13 @@ Returns whether the value for C<*key> is defined. if (!key) return VTABLE_defined(INTERP, hash_value_to_pmc(INTERP, h, b->value)); - else - return VTABLE_defined_keyed(INTERP, - hash_value_to_pmc(INTERP, h, b->value), key); + + if (h->entry_type != enum_type_PMC) + Parrot_ex_throw_from_c_args(INTERP, NULL, + EXCEPTION_INVALID_OPERATION, + "Hash entry type must be PMC for multipart keys."); + + return VTABLE_defined_keyed(INTERP, (PMC *)b->value, key); } /* @@ -1045,10 +1072,17 @@ Deletes the element associated with C<*key>. key = key_next(INTERP, key); - if (!key) + if (!key) { parrot_hash_delete(INTERP, h, sx); - else - VTABLE_delete_keyed(INTERP, (PMC *)b->value, key); + return; + } + + if (h->entry_type != enum_type_PMC) + Parrot_ex_throw_from_c_args(INTERP, NULL, + EXCEPTION_INVALID_OPERATION, + "Hash entry type must be PMC for multipart keys."); + + VTABLE_delete_keyed(INTERP, (PMC *)b->value, key); } /* From 8639e5402f98896736b8bf5da19f0d6a37c8bd2e Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Sat, 28 Aug 2010 14:38:14 +0000 Subject: [PATCH 165/165] codetest fixes git-svn-id: https://svn.parrot.org/parrot/trunk@48712 d31e2699-5ff4-0310-a27c-f18f2fbe73fe --- src/hash.c | 3 ++- src/pmc/hash.pmc | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/hash.c b/src/hash.c index c9ddb8a8ad..44d50a0c75 100644 --- a/src/hash.c +++ b/src/hash.c @@ -155,7 +155,8 @@ Compares the two strings, returning 0 if they are identical. PARROT_WARN_UNUSED_RESULT int -hash_compare_string(PARROT_INTERP, ARGIN(const void *search_key), ARGIN_NULLOK(const void *bucket_key)) +hash_compare_string(PARROT_INTERP, ARGIN(const void *search_key), + ARGIN_NULLOK(const void *bucket_key)) { ASSERT_ARGS(hash_compare_string) STRING const *s1 = (STRING const *)search_key; diff --git a/src/pmc/hash.pmc b/src/pmc/hash.pmc index d92be6a25e..7b1cf01340 100644 --- a/src/pmc/hash.pmc +++ b/src/pmc/hash.pmc @@ -71,7 +71,7 @@ static PMC* get_next_hash(PARROT_INTERP, /* -=item C +=item C Get the next hash for multipart keys. Autovivify a hash if it doesn't exist. @@ -84,6 +84,7 @@ PARROT_WARN_UNUSED_RESULT static PMC* get_next_hash(PARROT_INTERP, ARGMOD(Hash *hash), ARGIN(void *key)) { + ASSERT_ARGS(get_next_hash) PMC *next_hash; HashBucket *bucket;