diff --git a/MANIFEST b/MANIFEST index 543f63784f586..ac2dd16c2fa14 100644 --- a/MANIFEST +++ b/MANIFEST @@ -6256,6 +6256,7 @@ t/op/aassign.t test list assign t/op/alarm.t See if alarm works t/op/anonconst.t See if :const works t/op/anonsub.t See if anonymous subroutines work +t/op/any_all.t See if feature 'any_all' works t/op/append.t See if . works t/op/args.t See if operations on @_ work t/op/arith2.t See if arithmetic works diff --git a/embed.fnc b/embed.fnc index 5b8bacf884eb8..c4f03070a60f4 100644 --- a/embed.fnc +++ b/embed.fnc @@ -5897,7 +5897,8 @@ S |int |intuit_method |NN char *s \ |NULLOK NOCHECK CV *cv S |int |intuit_more |NN char *s \ |NN char *e -S |I32 |lop |I32 f \ +S |I32 |lop |enum yytokentype t \ + |I32 f \ |U8 x \ |NN char *s Sr |void |missingterm |NULLOK char *s \ diff --git a/embed.h b/embed.h index 8b8b09b511a8f..1d51d2b48eca8 100644 --- a/embed.h +++ b/embed.h @@ -1700,7 +1700,7 @@ # define incline(a,b) S_incline(aTHX_ a,b) # define intuit_method(a,b,c) S_intuit_method(aTHX_ a,b,c) # define intuit_more(a,b) S_intuit_more(aTHX_ a,b) -# define lop(a,b,c) S_lop(aTHX_ a,b,c) +# define lop(a,b,c,d) S_lop(aTHX_ a,b,c,d) # define missingterm(a,b) S_missingterm(aTHX_ a,b) # define parse_ident(a,b,c,d,e,f) S_parse_ident(aTHX_ a,b,c,d,e,f) # define pending_ident() S_pending_ident(aTHX) diff --git a/ext/Opcode/Opcode.pm b/ext/Opcode/Opcode.pm index baacf3c677ea9..20495dc48c59b 100644 --- a/ext/Opcode/Opcode.pm +++ b/ext/Opcode/Opcode.pm @@ -1,4 +1,4 @@ -package Opcode 1.66; +package Opcode 1.67; use strict; @@ -377,6 +377,7 @@ used to implement a resource attack (e.g., consume all available CPU time). grepstart grepwhile mapstart mapwhile + anystart allstart anywhile enteriter iter enterloop leaveloop unstack last next redo diff --git a/gv.c b/gv.c index 6dc8dd5a2aaa6..81dca3d74ed28 100644 --- a/gv.c +++ b/gv.c @@ -610,7 +610,8 @@ S_maybe_add_coresub(pTHX_ HV * const stash, GV *gv, case KEY___DATA__: case KEY___END__ : case KEY_ADJUST : case KEY_AUTOLOAD: case KEY_BEGIN : case KEY_CHECK : case KEY_DESTROY : case KEY_END : case KEY_INIT : case KEY_UNITCHECK: - case KEY_and : case KEY_catch : case KEY_class : + case KEY_all : case KEY_and : case KEY_any : + case KEY_catch : case KEY_class : case KEY_continue: case KEY_cmp : case KEY_defer : case KEY_do : case KEY_dump : case KEY_else : case KEY_elsif : case KEY_eq : case KEY_eval : case KEY_field : diff --git a/lib/B/Deparse-core.t b/lib/B/Deparse-core.t index 539ad5361b775..74357e727738d 100644 --- a/lib/B/Deparse-core.t +++ b/lib/B/Deparse-core.t @@ -91,6 +91,7 @@ sub testit { else { package test; use subs (); + no warnings 'experimental::any_all'; import subs $keyword; $code = "no warnings 'syntax'; no strict 'vars'; sub { ${vars}() = $expr }"; $code = "use feature 'isa';\n$code" if $keyword eq "isa"; @@ -232,6 +233,9 @@ while () { # Special cases +testit any => 'CORE::any { $a } $b, $c', 'CORE::any({$a;} $b, $c);'; +testit all => 'CORE::all { $a } $b, $c', 'CORE::all({$a;} $b, $c);'; + testit dbmopen => 'CORE::dbmopen(%foo, $bar, $baz);'; testit dbmclose => 'CORE::dbmclose %foo;'; diff --git a/lib/B/Deparse.pm b/lib/B/Deparse.pm index 6e33893736958..d932e7d118dd3 100644 --- a/lib/B/Deparse.pm +++ b/lib/B/Deparse.pm @@ -7,7 +7,7 @@ # This is based on the module of the same name by Malcolm Beattie, # but essentially none of his code remains. -package B::Deparse 1.80; +package B::Deparse 1.81; use strict; use Carp; use B qw(class main_root main_start main_cv svref_2object opnumber perlstring @@ -2334,6 +2334,8 @@ my %feature_keywords = ( finally => 'try', defer => 'defer', signatures => 'signatures', + any => 'any_all', + all => 'any_all', ); # keywords that are strong and also have a prototype @@ -3637,9 +3639,10 @@ sub pp_sort { indirop(@_, "sort") } sub mapop { my $self = shift; - my($op, $cx, $name) = @_; + my($op, $cx) = @_; my($expr, @exprs); - my $kid = $op->first; # this is the (map|grep)start + my $kid = $op->first; # this is the (map|grep\any|all)start + my ( $name ) = $kid->name =~ m/(.*)start/; # anystart and allstart share anywhile $kid = $kid->first->sibling; # skip a pushmark my $code = $kid->first; # skip a null if (is_scope $code) { @@ -3657,8 +3660,9 @@ sub mapop { $code . join(", ", @exprs), $cx, 5); } -sub pp_mapwhile { mapop(@_, "map") } -sub pp_grepwhile { mapop(@_, "grep") } +sub pp_mapwhile { mapop(@_) } +sub pp_grepwhile { mapop(@_) } +sub pp_anywhile { mapop(@_) } sub pp_mapstart { baseop(@_, "map") } sub pp_grepstart { baseop(@_, "grep") } diff --git a/lib/B/Op_private.pm b/lib/B/Op_private.pm index 9270a1f3ee015..bd1a5ccd9f878 100644 --- a/lib/B/Op_private.pm +++ b/lib/B/Op_private.pm @@ -289,6 +289,7 @@ $bits{andassign}{0} = $bf[0]; $bits{anonconst}{0} = $bf[0]; @{$bits{anonhash}}{3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5]); @{$bits{anonlist}}{3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5]); +$bits{anywhile}{0} = $bf[0]; $bits{argcheck}{0} = $bf[0]; @{$bits{argdefelem}}{7,6,0} = ('OPpARG_IF_UNDEF', 'OPpARG_IF_FALSE', $bf[0]); @{$bits{argelem}}{2,1,0} = ($bf[8], $bf[8], $bf[0]); diff --git a/lib/warnings.pm b/lib/warnings.pm index 7edc55640b51d..f4edfe63595af 100644 --- a/lib/warnings.pm +++ b/lib/warnings.pm @@ -5,7 +5,7 @@ package warnings; -our $VERSION = "1.71"; +our $VERSION = "1.72"; # Verify that we're called correctly so that warnings will work. # Can't use Carp, since Carp uses us! @@ -132,6 +132,9 @@ our %Offsets = ( # Warnings Categories added in Perl 5.039008 'deprecated::subsequent_use_version'=> 156, + + # Warnings Categories added in Perl 5.041 + 'experimental::any_all' => 158, ); our %Bits = ( @@ -153,7 +156,8 @@ our %Bits = ( 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31] 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] - 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x05\x04\x55\x55\x40\x00", # [53,54,56,57,61,64..71,75] + 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x05\x04\x55\x55\x40\x40", # [53,54,56,57,61,64..71,75,79] + 'experimental::any_all' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [79] 'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [68] 'experimental::builtin' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [69] 'experimental::class' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [75] @@ -235,7 +239,8 @@ our %DeadBits = ( 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31] 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] - 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x0a\x08\xaa\xaa\x80\x00", # [53,54,56,57,61,64..71,75] + 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x0a\x08\xaa\xaa\x80\x80", # [53,54,56,57,61,64..71,75,79] + 'experimental::any_all' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [79] 'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [68] 'experimental::builtin' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [69] 'experimental::class' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [75] @@ -313,8 +318,8 @@ our %NoOp = ( # These are used by various things, including our own tests our $NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x05\x00\x15\x14\x55\x55\x54\x15"; # [2,4,22,23,25,48,49,56..58,61,62,64..71,73..78] -our $LAST_BIT = 158 ; +our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x05\x00\x15\x14\x55\x55\x54\x55"; # [2,4,22,23,25,48,49,56..58,61,62,64..71,73..79] +our $LAST_BIT = 160 ; our $BYTES = 20 ; sub Croaker @@ -937,6 +942,8 @@ The current hierarchy is: | +- experimental --+ | | + | +- experimental::any_all + | | | +- experimental::args_array_with_signatures | | | +- experimental::builtin diff --git a/op.c b/op.c index 94ccc3080c6bf..cdb3c6cdfe011 100644 --- a/op.c +++ b/op.c @@ -12060,8 +12060,16 @@ Constructs, checks, and returns a glob reference op. OP * Perl_newGVREF(pTHX_ I32 type, OP *o) { - if (type == OP_MAPSTART || type == OP_GREPSTART || type == OP_SORT) - return newUNOP(OP_NULL, 0, o); + switch(type) { + /* The thing that looks like a GVREF at the start of these operators + * isn't really */ + case OP_MAPSTART: + case OP_GREPSTART: + case OP_SORT: + case OP_ANYSTART: + case OP_ALLSTART: + return newUNOP(OP_NULL, 0, o); + } if (!FEATURE_BAREWORD_FILEHANDLES_IS_ENABLED && ((PL_opargs[type] >> OASHIFT) & 7) == OA_FILEREF && @@ -13202,7 +13210,10 @@ Perl_ck_grep(pTHX_ OP *o) { LOGOP *gwop; OP *kid; - const OPCODE type = o->op_type == OP_GREPSTART ? OP_GREPWHILE : OP_MAPWHILE; + const OPCODE type = + o->op_type == OP_GREPSTART ? OP_GREPWHILE : + o->op_type == OP_MAPSTART ? OP_MAPWHILE : + OP_ANYWHILE; /* any and all both share this */ PERL_ARGS_ASSERT_CK_GREP; diff --git a/opcode.h b/opcode.h index ab62fa16ccc63..d8d7fe67fc90d 100644 --- a/opcode.h +++ b/opcode.h @@ -44,6 +44,8 @@ #define Perl_pp_keys Perl_do_kv #define Perl_pp_rv2hv Perl_pp_rv2av #define Perl_pp_pop Perl_pp_shift +#define Perl_pp_anystart Perl_pp_grepstart +#define Perl_pp_allstart Perl_pp_grepstart #define Perl_pp_mapstart Perl_pp_grepstart #define Perl_pp_dor Perl_pp_defined #define Perl_pp_andassign Perl_pp_and @@ -319,6 +321,9 @@ EXTCONST char* const PL_op_name[] INIT({ "reverse", "grepstart", "grepwhile", + "anystart", + "allstart", + "anywhile", "mapstart", "mapwhile", "range", @@ -738,6 +743,9 @@ EXTCONST char* const PL_op_desc[] INIT({ "reverse", "grep", "grep iterator", + "any", + "all", + "any/all iterator", "map", "map iterator", "flipflop", @@ -1162,6 +1170,9 @@ INIT({ Perl_pp_reverse, Perl_pp_grepstart, Perl_pp_grepwhile, + Perl_pp_anystart, /* implemented by Perl_pp_grepstart */ + Perl_pp_allstart, /* implemented by Perl_pp_grepstart */ + Perl_pp_anywhile, Perl_pp_mapstart, /* implemented by Perl_pp_grepstart */ Perl_pp_mapwhile, Perl_pp_range, @@ -1581,6 +1592,9 @@ INIT({ Perl_ck_fun, /* reverse */ Perl_ck_grep, /* grepstart */ Perl_ck_null, /* grepwhile */ + Perl_ck_grep, /* anystart */ + Perl_ck_grep, /* allstart */ + Perl_ck_null, /* anywhile */ Perl_ck_grep, /* mapstart */ Perl_ck_null, /* mapwhile */ Perl_ck_null, /* range */ @@ -1999,6 +2013,9 @@ EXTCONST U32 PL_opargs[] INIT({ 0x00002409, /* reverse */ 0x00025401, /* grepstart */ 0x00000308, /* grepwhile */ + 0x00025401, /* anystart */ + 0x00025401, /* allstart */ + 0x00000308, /* anywhile */ 0x00025401, /* mapstart */ 0x00000308, /* mapwhile */ 0x00011300, /* range */ @@ -2719,6 +2736,9 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = { 173, /* reverse */ 0, /* grepstart */ 175, /* grepwhile */ + -1, /* anystart */ + -1, /* allstart */ + 0, /* anywhile */ 0, /* mapstart */ 0, /* mapwhile */ 0, /* range */ @@ -2979,7 +2999,7 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = { */ EXTCONST U16 PL_op_private_bitdefs[] = { - 0x0003, /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, not, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, pop, shift, grepstart, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst, cmpchain_and, cmpchain_dup, entertrycatch, catch, is_bool, is_weak, weaken, unweaken, is_tainted */ + 0x0003, /* scalar, prototype, refgen, srefgen, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, not, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, pop, shift, grepstart, anywhile, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, argcheck, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst, cmpchain_and, cmpchain_dup, entertrycatch, catch, is_bool, is_weak, weaken, unweaken, is_tainted */ 0x3cfc, 0x5379, /* pushmark */ 0x00bd, /* wantarray, runcv */ 0x077e, 0x0554, 0x1b70, 0x542c, 0x4fc8, 0x4225, /* const */ @@ -3242,6 +3262,9 @@ EXTCONST U8 PL_op_private_valid[] = { /* REVERSE */ (OPpARG1_MASK|OPpREVERSE_INPLACE), /* GREPSTART */ (OPpARG1_MASK), /* GREPWHILE */ (OPpARG1_MASK|OPpTRUEBOOL), + /* ANYSTART */ (0), + /* ALLSTART */ (0), + /* ANYWHILE */ (OPpARG1_MASK), /* MAPSTART */ (OPpARG1_MASK), /* MAPWHILE */ (OPpARG1_MASK), /* RANGE */ (OPpARG1_MASK), diff --git a/opnames.h b/opnames.h index 4fb9f5d12d7d4..79ff2b40ddad2 100644 --- a/opnames.h +++ b/opnames.h @@ -187,248 +187,251 @@ typedef enum opcode { OP_REVERSE = 170, OP_GREPSTART = 171, OP_GREPWHILE = 172, - OP_MAPSTART = 173, - OP_MAPWHILE = 174, - OP_RANGE = 175, - OP_FLIP = 176, - OP_FLOP = 177, - OP_AND = 178, - OP_OR = 179, - OP_XOR = 180, - OP_DOR = 181, - OP_COND_EXPR = 182, - OP_ANDASSIGN = 183, - OP_ORASSIGN = 184, - OP_DORASSIGN = 185, - OP_ENTERSUB = 186, - OP_LEAVESUB = 187, - OP_LEAVESUBLV = 188, - OP_ARGCHECK = 189, - OP_ARGELEM = 190, - OP_ARGDEFELEM = 191, - OP_CALLER = 192, - OP_WARN = 193, - OP_DIE = 194, - OP_RESET = 195, - OP_LINESEQ = 196, - OP_NEXTSTATE = 197, - OP_DBSTATE = 198, - OP_UNSTACK = 199, - OP_ENTER = 200, - OP_LEAVE = 201, - OP_SCOPE = 202, - OP_ENTERITER = 203, - OP_ITER = 204, - OP_ENTERLOOP = 205, - OP_LEAVELOOP = 206, - OP_RETURN = 207, - OP_LAST = 208, - OP_NEXT = 209, - OP_REDO = 210, - OP_DUMP = 211, - OP_GOTO = 212, - OP_EXIT = 213, - OP_METHOD = 214, - OP_METHOD_NAMED = 215, - OP_METHOD_SUPER = 216, - OP_METHOD_REDIR = 217, - OP_METHOD_REDIR_SUPER = 218, - OP_OPEN = 219, - OP_CLOSE = 220, - OP_PIPE_OP = 221, - OP_FILENO = 222, - OP_UMASK = 223, - OP_BINMODE = 224, - OP_TIE = 225, - OP_UNTIE = 226, - OP_TIED = 227, - OP_DBMOPEN = 228, - OP_DBMCLOSE = 229, - OP_SSELECT = 230, - OP_SELECT = 231, - OP_GETC = 232, - OP_READ = 233, - OP_ENTERWRITE = 234, - OP_LEAVEWRITE = 235, - OP_PRTF = 236, - OP_PRINT = 237, - OP_SAY = 238, - OP_SYSOPEN = 239, - OP_SYSSEEK = 240, - OP_SYSREAD = 241, - OP_SYSWRITE = 242, - OP_EOF = 243, - OP_TELL = 244, - OP_SEEK = 245, - OP_TRUNCATE = 246, - OP_FCNTL = 247, - OP_IOCTL = 248, - OP_FLOCK = 249, - OP_SEND = 250, - OP_RECV = 251, - OP_SOCKET = 252, - OP_SOCKPAIR = 253, - OP_BIND = 254, - OP_CONNECT = 255, - OP_LISTEN = 256, - OP_ACCEPT = 257, - OP_SHUTDOWN = 258, - OP_GSOCKOPT = 259, - OP_SSOCKOPT = 260, - OP_GETSOCKNAME = 261, - OP_GETPEERNAME = 262, - OP_LSTAT = 263, - OP_STAT = 264, - OP_FTRREAD = 265, - OP_FTRWRITE = 266, - OP_FTREXEC = 267, - OP_FTEREAD = 268, - OP_FTEWRITE = 269, - OP_FTEEXEC = 270, - OP_FTIS = 271, - OP_FTSIZE = 272, - OP_FTMTIME = 273, - OP_FTATIME = 274, - OP_FTCTIME = 275, - OP_FTROWNED = 276, - OP_FTEOWNED = 277, - OP_FTZERO = 278, - OP_FTSOCK = 279, - OP_FTCHR = 280, - OP_FTBLK = 281, - OP_FTFILE = 282, - OP_FTDIR = 283, - OP_FTPIPE = 284, - OP_FTSUID = 285, - OP_FTSGID = 286, - OP_FTSVTX = 287, - OP_FTLINK = 288, - OP_FTTTY = 289, - OP_FTTEXT = 290, - OP_FTBINARY = 291, - OP_CHDIR = 292, - OP_CHOWN = 293, - OP_CHROOT = 294, - OP_UNLINK = 295, - OP_CHMOD = 296, - OP_UTIME = 297, - OP_RENAME = 298, - OP_LINK = 299, - OP_SYMLINK = 300, - OP_READLINK = 301, - OP_MKDIR = 302, - OP_RMDIR = 303, - OP_OPEN_DIR = 304, - OP_READDIR = 305, - OP_TELLDIR = 306, - OP_SEEKDIR = 307, - OP_REWINDDIR = 308, - OP_CLOSEDIR = 309, - OP_FORK = 310, - OP_WAIT = 311, - OP_WAITPID = 312, - OP_SYSTEM = 313, - OP_EXEC = 314, - OP_KILL = 315, - OP_GETPPID = 316, - OP_GETPGRP = 317, - OP_SETPGRP = 318, - OP_GETPRIORITY = 319, - OP_SETPRIORITY = 320, - OP_TIME = 321, - OP_TMS = 322, - OP_LOCALTIME = 323, - OP_GMTIME = 324, - OP_ALARM = 325, - OP_SLEEP = 326, - OP_SHMGET = 327, - OP_SHMCTL = 328, - OP_SHMREAD = 329, - OP_SHMWRITE = 330, - OP_MSGGET = 331, - OP_MSGCTL = 332, - OP_MSGSND = 333, - OP_MSGRCV = 334, - OP_SEMOP = 335, - OP_SEMGET = 336, - OP_SEMCTL = 337, - OP_REQUIRE = 338, - OP_DOFILE = 339, - OP_HINTSEVAL = 340, - OP_ENTEREVAL = 341, - OP_LEAVEEVAL = 342, - OP_ENTERTRY = 343, - OP_LEAVETRY = 344, - OP_GHBYNAME = 345, - OP_GHBYADDR = 346, - OP_GHOSTENT = 347, - OP_GNBYNAME = 348, - OP_GNBYADDR = 349, - OP_GNETENT = 350, - OP_GPBYNAME = 351, - OP_GPBYNUMBER = 352, - OP_GPROTOENT = 353, - OP_GSBYNAME = 354, - OP_GSBYPORT = 355, - OP_GSERVENT = 356, - OP_SHOSTENT = 357, - OP_SNETENT = 358, - OP_SPROTOENT = 359, - OP_SSERVENT = 360, - OP_EHOSTENT = 361, - OP_ENETENT = 362, - OP_EPROTOENT = 363, - OP_ESERVENT = 364, - OP_GPWNAM = 365, - OP_GPWUID = 366, - OP_GPWENT = 367, - OP_SPWENT = 368, - OP_EPWENT = 369, - OP_GGRNAM = 370, - OP_GGRGID = 371, - OP_GGRENT = 372, - OP_SGRENT = 373, - OP_EGRENT = 374, - OP_GETLOGIN = 375, - OP_SYSCALL = 376, - OP_LOCK = 377, - OP_ONCE = 378, - OP_CUSTOM = 379, - OP_COREARGS = 380, - OP_AVHVSWITCH = 381, - OP_RUNCV = 382, - OP_FC = 383, - OP_PADCV = 384, - OP_INTROCV = 385, - OP_CLONECV = 386, - OP_PADRANGE = 387, - OP_REFASSIGN = 388, - OP_LVREF = 389, - OP_LVREFSLICE = 390, - OP_LVAVREF = 391, - OP_ANONCONST = 392, - OP_ISA = 393, - OP_CMPCHAIN_AND = 394, - OP_CMPCHAIN_DUP = 395, - OP_ENTERTRYCATCH = 396, - OP_LEAVETRYCATCH = 397, - OP_POPTRY = 398, - OP_CATCH = 399, - OP_PUSHDEFER = 400, - OP_IS_BOOL = 401, - OP_IS_WEAK = 402, - OP_WEAKEN = 403, - OP_UNWEAKEN = 404, - OP_BLESSED = 405, - OP_REFADDR = 406, - OP_REFTYPE = 407, - OP_CEIL = 408, - OP_FLOOR = 409, - OP_IS_TAINTED = 410, - OP_HELEMEXISTSOR = 411, - OP_METHSTART = 412, - OP_INITFIELD = 413, - OP_CLASSNAME = 414, + OP_ANYSTART = 173, + OP_ALLSTART = 174, + OP_ANYWHILE = 175, + OP_MAPSTART = 176, + OP_MAPWHILE = 177, + OP_RANGE = 178, + OP_FLIP = 179, + OP_FLOP = 180, + OP_AND = 181, + OP_OR = 182, + OP_XOR = 183, + OP_DOR = 184, + OP_COND_EXPR = 185, + OP_ANDASSIGN = 186, + OP_ORASSIGN = 187, + OP_DORASSIGN = 188, + OP_ENTERSUB = 189, + OP_LEAVESUB = 190, + OP_LEAVESUBLV = 191, + OP_ARGCHECK = 192, + OP_ARGELEM = 193, + OP_ARGDEFELEM = 194, + OP_CALLER = 195, + OP_WARN = 196, + OP_DIE = 197, + OP_RESET = 198, + OP_LINESEQ = 199, + OP_NEXTSTATE = 200, + OP_DBSTATE = 201, + OP_UNSTACK = 202, + OP_ENTER = 203, + OP_LEAVE = 204, + OP_SCOPE = 205, + OP_ENTERITER = 206, + OP_ITER = 207, + OP_ENTERLOOP = 208, + OP_LEAVELOOP = 209, + OP_RETURN = 210, + OP_LAST = 211, + OP_NEXT = 212, + OP_REDO = 213, + OP_DUMP = 214, + OP_GOTO = 215, + OP_EXIT = 216, + OP_METHOD = 217, + OP_METHOD_NAMED = 218, + OP_METHOD_SUPER = 219, + OP_METHOD_REDIR = 220, + OP_METHOD_REDIR_SUPER = 221, + OP_OPEN = 222, + OP_CLOSE = 223, + OP_PIPE_OP = 224, + OP_FILENO = 225, + OP_UMASK = 226, + OP_BINMODE = 227, + OP_TIE = 228, + OP_UNTIE = 229, + OP_TIED = 230, + OP_DBMOPEN = 231, + OP_DBMCLOSE = 232, + OP_SSELECT = 233, + OP_SELECT = 234, + OP_GETC = 235, + OP_READ = 236, + OP_ENTERWRITE = 237, + OP_LEAVEWRITE = 238, + OP_PRTF = 239, + OP_PRINT = 240, + OP_SAY = 241, + OP_SYSOPEN = 242, + OP_SYSSEEK = 243, + OP_SYSREAD = 244, + OP_SYSWRITE = 245, + OP_EOF = 246, + OP_TELL = 247, + OP_SEEK = 248, + OP_TRUNCATE = 249, + OP_FCNTL = 250, + OP_IOCTL = 251, + OP_FLOCK = 252, + OP_SEND = 253, + OP_RECV = 254, + OP_SOCKET = 255, + OP_SOCKPAIR = 256, + OP_BIND = 257, + OP_CONNECT = 258, + OP_LISTEN = 259, + OP_ACCEPT = 260, + OP_SHUTDOWN = 261, + OP_GSOCKOPT = 262, + OP_SSOCKOPT = 263, + OP_GETSOCKNAME = 264, + OP_GETPEERNAME = 265, + OP_LSTAT = 266, + OP_STAT = 267, + OP_FTRREAD = 268, + OP_FTRWRITE = 269, + OP_FTREXEC = 270, + OP_FTEREAD = 271, + OP_FTEWRITE = 272, + OP_FTEEXEC = 273, + OP_FTIS = 274, + OP_FTSIZE = 275, + OP_FTMTIME = 276, + OP_FTATIME = 277, + OP_FTCTIME = 278, + OP_FTROWNED = 279, + OP_FTEOWNED = 280, + OP_FTZERO = 281, + OP_FTSOCK = 282, + OP_FTCHR = 283, + OP_FTBLK = 284, + OP_FTFILE = 285, + OP_FTDIR = 286, + OP_FTPIPE = 287, + OP_FTSUID = 288, + OP_FTSGID = 289, + OP_FTSVTX = 290, + OP_FTLINK = 291, + OP_FTTTY = 292, + OP_FTTEXT = 293, + OP_FTBINARY = 294, + OP_CHDIR = 295, + OP_CHOWN = 296, + OP_CHROOT = 297, + OP_UNLINK = 298, + OP_CHMOD = 299, + OP_UTIME = 300, + OP_RENAME = 301, + OP_LINK = 302, + OP_SYMLINK = 303, + OP_READLINK = 304, + OP_MKDIR = 305, + OP_RMDIR = 306, + OP_OPEN_DIR = 307, + OP_READDIR = 308, + OP_TELLDIR = 309, + OP_SEEKDIR = 310, + OP_REWINDDIR = 311, + OP_CLOSEDIR = 312, + OP_FORK = 313, + OP_WAIT = 314, + OP_WAITPID = 315, + OP_SYSTEM = 316, + OP_EXEC = 317, + OP_KILL = 318, + OP_GETPPID = 319, + OP_GETPGRP = 320, + OP_SETPGRP = 321, + OP_GETPRIORITY = 322, + OP_SETPRIORITY = 323, + OP_TIME = 324, + OP_TMS = 325, + OP_LOCALTIME = 326, + OP_GMTIME = 327, + OP_ALARM = 328, + OP_SLEEP = 329, + OP_SHMGET = 330, + OP_SHMCTL = 331, + OP_SHMREAD = 332, + OP_SHMWRITE = 333, + OP_MSGGET = 334, + OP_MSGCTL = 335, + OP_MSGSND = 336, + OP_MSGRCV = 337, + OP_SEMOP = 338, + OP_SEMGET = 339, + OP_SEMCTL = 340, + OP_REQUIRE = 341, + OP_DOFILE = 342, + OP_HINTSEVAL = 343, + OP_ENTEREVAL = 344, + OP_LEAVEEVAL = 345, + OP_ENTERTRY = 346, + OP_LEAVETRY = 347, + OP_GHBYNAME = 348, + OP_GHBYADDR = 349, + OP_GHOSTENT = 350, + OP_GNBYNAME = 351, + OP_GNBYADDR = 352, + OP_GNETENT = 353, + OP_GPBYNAME = 354, + OP_GPBYNUMBER = 355, + OP_GPROTOENT = 356, + OP_GSBYNAME = 357, + OP_GSBYPORT = 358, + OP_GSERVENT = 359, + OP_SHOSTENT = 360, + OP_SNETENT = 361, + OP_SPROTOENT = 362, + OP_SSERVENT = 363, + OP_EHOSTENT = 364, + OP_ENETENT = 365, + OP_EPROTOENT = 366, + OP_ESERVENT = 367, + OP_GPWNAM = 368, + OP_GPWUID = 369, + OP_GPWENT = 370, + OP_SPWENT = 371, + OP_EPWENT = 372, + OP_GGRNAM = 373, + OP_GGRGID = 374, + OP_GGRENT = 375, + OP_SGRENT = 376, + OP_EGRENT = 377, + OP_GETLOGIN = 378, + OP_SYSCALL = 379, + OP_LOCK = 380, + OP_ONCE = 381, + OP_CUSTOM = 382, + OP_COREARGS = 383, + OP_AVHVSWITCH = 384, + OP_RUNCV = 385, + OP_FC = 386, + OP_PADCV = 387, + OP_INTROCV = 388, + OP_CLONECV = 389, + OP_PADRANGE = 390, + OP_REFASSIGN = 391, + OP_LVREF = 392, + OP_LVREFSLICE = 393, + OP_LVAVREF = 394, + OP_ANONCONST = 395, + OP_ISA = 396, + OP_CMPCHAIN_AND = 397, + OP_CMPCHAIN_DUP = 398, + OP_ENTERTRYCATCH = 399, + OP_LEAVETRYCATCH = 400, + OP_POPTRY = 401, + OP_CATCH = 402, + OP_PUSHDEFER = 403, + OP_IS_BOOL = 404, + OP_IS_WEAK = 405, + OP_WEAKEN = 406, + OP_UNWEAKEN = 407, + OP_BLESSED = 408, + OP_REFADDR = 409, + OP_REFTYPE = 410, + OP_CEIL = 411, + OP_FLOOR = 412, + OP_IS_TAINTED = 413, + OP_HELEMEXISTSOR = 414, + OP_METHSTART = 415, + OP_INITFIELD = 416, + OP_CLASSNAME = 417, OP_max } opcode; @@ -439,7 +442,7 @@ An enum of all the legal Perl opcodes, defined in F =cut */ -#define MAXO 415 +#define MAXO 418 #define OP_FREED MAXO /* the OP_IS_* macros are optimized to a simple range check because diff --git a/perly.act b/perly.act index 386cf3aefe16c..8a1ec84c054a9 100644 --- a/perly.act +++ b/perly.act @@ -1225,16 +1225,24 @@ case 2: /* @1: %empty */ break; - case 152: /* listop: FUNC PERLY_PAREN_OPEN indirob expr PERLY_PAREN_CLOSE */ + case 152: /* listop: BLKLSTOP block listexpr */ #line 1088 "perly.y" + { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, + op_prepend_elem(OP_LIST, newUNOP(OP_NULL, 0, op_scope((ps[-1].val.opval))), (ps[0].val.opval)) ); + } + + break; + + case 153: /* listop: FUNC PERLY_PAREN_OPEN indirob expr PERLY_PAREN_CLOSE */ +#line 1092 "perly.y" { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); } break; - case 153: /* listop: term ARROW methodname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1092 "perly.y" + case 154: /* listop: term ARROW methodname PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1096 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)), @@ -1243,8 +1251,8 @@ case 2: /* @1: %empty */ break; - case 154: /* listop: term ARROW methodname */ -#line 1098 "perly.y" + case 155: /* listop: term ARROW methodname */ +#line 1102 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar((ps[-2].val.opval)), newMETHOP(OP_METHOD, 0, (ps[0].val.opval)))); @@ -1252,8 +1260,8 @@ case 2: /* @1: %empty */ break; - case 155: /* listop: METHCALL0 indirob optlistexpr */ -#line 1103 "perly.y" + case 156: /* listop: METHCALL0 indirob optlistexpr */ +#line 1107 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), @@ -1262,8 +1270,8 @@ case 2: /* @1: %empty */ break; - case 156: /* listop: METHCALL indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1109 "perly.y" + case 157: /* listop: METHCALL indirob PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1113 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)), @@ -1272,26 +1280,26 @@ case 2: /* @1: %empty */ break; - case 157: /* listop: LSTOP optlistexpr */ -#line 1115 "perly.y" + case 158: /* listop: LSTOP optlistexpr */ +#line 1119 "perly.y" { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 158: /* listop: FUNC PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ -#line 1117 "perly.y" + case 159: /* listop: FUNC PERLY_PAREN_OPEN optexpr PERLY_PAREN_CLOSE */ +#line 1121 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 159: /* listop: FUNC SUBLEXSTART optexpr SUBLEXEND */ -#line 1119 "perly.y" + case 160: /* listop: FUNC SUBLEXSTART optexpr SUBLEXEND */ +#line 1123 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 160: /* @22: %empty */ -#line 1121 "perly.y" + case 161: /* @22: %empty */ +#line 1125 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); /* prevent double op_free() if the following fails to parse */ @@ -1300,8 +1308,8 @@ case 2: /* @1: %empty */ break; - case 161: /* listop: LSTOPSUB startanonsub block @22 optlistexpr */ -#line 1127 "perly.y" + case 162: /* listop: LSTOPSUB startanonsub block @22 optlistexpr */ +#line 1131 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval))); @@ -1309,21 +1317,21 @@ case 2: /* @1: %empty */ break; - case 164: /* subscripted: gelem PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1142 "perly.y" + case 165: /* subscripted: gelem PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1146 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } break; - case 165: /* subscripted: scalar PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1144 "perly.y" + case 166: /* subscripted: scalar PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1148 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); } break; - case 166: /* subscripted: term ARROW PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1147 "perly.y" + case 167: /* subscripted: term ARROW PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1151 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1331,8 +1339,8 @@ case 2: /* @1: %empty */ break; - case 167: /* subscripted: subscripted PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1152 "perly.y" + case 168: /* subscripted: subscripted PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1156 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1340,31 +1348,31 @@ case 2: /* @1: %empty */ break; - case 168: /* subscripted: scalar PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1157 "perly.y" + case 169: /* subscripted: scalar PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1161 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); } break; - case 169: /* subscripted: term ARROW PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1160 "perly.y" + case 170: /* subscripted: term ARROW PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1164 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 170: /* subscripted: subscripted PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1164 "perly.y" + case 171: /* subscripted: subscripted PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1168 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 171: /* subscripted: term ARROW PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1168 "perly.y" + case 172: /* subscripted: term ARROW PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1172 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-3].val.opval)))); if (parser->expect == XBLOCK) @@ -1373,8 +1381,8 @@ case 2: /* @1: %empty */ break; - case 172: /* subscripted: term ARROW PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1174 "perly.y" + case 173: /* subscripted: term ARROW PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1178 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-4].val.opval))))); @@ -1384,8 +1392,8 @@ case 2: /* @1: %empty */ break; - case 173: /* subscripted: subscripted PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1182 "perly.y" + case 174: /* subscripted: subscripted PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1186 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-3].val.opval))))); @@ -1395,8 +1403,8 @@ case 2: /* @1: %empty */ break; - case 174: /* subscripted: subscripted PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1189 "perly.y" + case 175: /* subscripted: subscripted PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1193 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-2].val.opval)))); if (parser->expect == XBLOCK) @@ -1405,56 +1413,56 @@ case 2: /* @1: %empty */ break; - case 175: /* subscripted: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1195 "perly.y" + case 176: /* subscripted: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1199 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } break; - case 176: /* subscripted: QWLIST PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1197 "perly.y" + case 177: /* subscripted: QWLIST PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1201 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } break; - case 177: /* subscripted: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1199 "perly.y" + case 178: /* subscripted: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1203 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } break; - case 178: /* termbinop: term PLUGIN_HIGH_OP term */ -#line 1204 "perly.y" + case 179: /* termbinop: term PLUGIN_HIGH_OP term */ +#line 1208 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 179: /* termbinop: term ASSIGNOP term */ -#line 1206 "perly.y" + case 180: /* termbinop: term ASSIGNOP term */ +#line 1210 "perly.y" { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } break; - case 180: /* termbinop: term PLUGIN_ASSIGN_OP term */ -#line 1208 "perly.y" + case 181: /* termbinop: term PLUGIN_ASSIGN_OP term */ +#line 1212 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 181: /* termbinop: term POWOP term */ -#line 1210 "perly.y" + case 182: /* termbinop: term POWOP term */ +#line 1214 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 182: /* termbinop: term PLUGIN_POW_OP term */ -#line 1212 "perly.y" + case 183: /* termbinop: term PLUGIN_POW_OP term */ +#line 1216 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 183: /* termbinop: term MULOP term */ -#line 1214 "perly.y" + case 184: /* termbinop: term MULOP term */ +#line 1218 "perly.y" { if ((ps[-1].val.ival) != OP_REPEAT) scalar((ps[-2].val.opval)); (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval))); @@ -1462,220 +1470,220 @@ case 2: /* @1: %empty */ break; - case 184: /* termbinop: term PLUGIN_MUL_OP term */ -#line 1219 "perly.y" + case 185: /* termbinop: term PLUGIN_MUL_OP term */ +#line 1223 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 185: /* termbinop: term ADDOP term */ -#line 1221 "perly.y" + case 186: /* termbinop: term ADDOP term */ +#line 1225 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 186: /* termbinop: term PLUGIN_ADD_OP term */ -#line 1223 "perly.y" + case 187: /* termbinop: term PLUGIN_ADD_OP term */ +#line 1227 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 187: /* termbinop: term SHIFTOP term */ -#line 1225 "perly.y" + case 188: /* termbinop: term SHIFTOP term */ +#line 1229 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 188: /* termbinop: termrelop */ -#line 1227 "perly.y" + case 189: /* termbinop: termrelop */ +#line 1231 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 189: /* termbinop: termeqop */ -#line 1229 "perly.y" + case 190: /* termbinop: termeqop */ +#line 1233 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 190: /* termbinop: term BITANDOP term */ -#line 1231 "perly.y" + case 191: /* termbinop: term BITANDOP term */ +#line 1235 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 191: /* termbinop: term BITOROP term */ -#line 1233 "perly.y" + case 192: /* termbinop: term BITOROP term */ +#line 1237 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 192: /* termbinop: term DOTDOT term */ -#line 1235 "perly.y" + case 193: /* termbinop: term DOTDOT term */ +#line 1239 "perly.y" { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 193: /* termbinop: term ANDAND term */ -#line 1237 "perly.y" + case 194: /* termbinop: term ANDAND term */ +#line 1241 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 194: /* termbinop: term PLUGIN_LOGICAL_AND_OP term */ -#line 1239 "perly.y" + case 195: /* termbinop: term PLUGIN_LOGICAL_AND_OP term */ +#line 1243 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 195: /* termbinop: term OROR term */ -#line 1241 "perly.y" + case 196: /* termbinop: term OROR term */ +#line 1245 "perly.y" { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 196: /* termbinop: term PLUGIN_LOGICAL_OR_OP term */ -#line 1243 "perly.y" + case 197: /* termbinop: term PLUGIN_LOGICAL_OR_OP term */ +#line 1247 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 197: /* termbinop: term DORDOR term */ -#line 1245 "perly.y" + case 198: /* termbinop: term DORDOR term */ +#line 1249 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 198: /* termbinop: term MATCHOP term */ -#line 1247 "perly.y" + case 199: /* termbinop: term MATCHOP term */ +#line 1251 "perly.y" { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 199: /* termbinop: term PLUGIN_LOW_OP term */ -#line 1249 "perly.y" + case 200: /* termbinop: term PLUGIN_LOW_OP term */ +#line 1253 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 200: /* termrelop: relopchain */ -#line 1253 "perly.y" + case 201: /* termrelop: relopchain */ +#line 1257 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; - case 201: /* termrelop: term NCRELOP term */ -#line 1255 "perly.y" + case 202: /* termrelop: term NCRELOP term */ +#line 1259 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 202: /* termrelop: termrelop NCRELOP */ -#line 1257 "perly.y" + case 203: /* termrelop: termrelop NCRELOP */ +#line 1261 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 203: /* termrelop: termrelop CHRELOP */ -#line 1259 "perly.y" + case 204: /* termrelop: termrelop CHRELOP */ +#line 1263 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 204: /* termrelop: term PLUGIN_REL_OP term */ -#line 1261 "perly.y" + case 205: /* termrelop: term PLUGIN_REL_OP term */ +#line 1265 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; - case 205: /* relopchain: term CHRELOP term */ -#line 1265 "perly.y" + case 206: /* relopchain: term CHRELOP term */ +#line 1269 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 206: /* relopchain: relopchain CHRELOP term */ -#line 1267 "perly.y" + case 207: /* relopchain: relopchain CHRELOP term */ +#line 1271 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 207: /* termeqop: eqopchain */ -#line 1271 "perly.y" + case 208: /* termeqop: eqopchain */ +#line 1275 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; - case 208: /* termeqop: term NCEQOP term */ -#line 1273 "perly.y" + case 209: /* termeqop: term NCEQOP term */ +#line 1277 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 209: /* termeqop: termeqop NCEQOP */ -#line 1275 "perly.y" + case 210: /* termeqop: termeqop NCEQOP */ +#line 1279 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 210: /* termeqop: termeqop CHEQOP */ -#line 1277 "perly.y" + case 211: /* termeqop: termeqop CHEQOP */ +#line 1281 "perly.y" { yyerror("syntax error"); YYERROR; } break; - case 211: /* eqopchain: term CHEQOP term */ -#line 1281 "perly.y" + case 212: /* eqopchain: term CHEQOP term */ +#line 1285 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 212: /* eqopchain: eqopchain CHEQOP term */ -#line 1283 "perly.y" + case 213: /* eqopchain: eqopchain CHEQOP term */ +#line 1287 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 213: /* termunop: PERLY_MINUS term */ -#line 1288 "perly.y" + case 214: /* termunop: PERLY_MINUS term */ +#line 1292 "perly.y" { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } break; - case 214: /* termunop: PERLY_PLUS term */ -#line 1290 "perly.y" + case 215: /* termunop: PERLY_PLUS term */ +#line 1294 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 215: /* termunop: PERLY_EXCLAMATION_MARK term */ -#line 1293 "perly.y" + case 216: /* termunop: PERLY_EXCLAMATION_MARK term */ +#line 1297 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 216: /* termunop: PERLY_TILDE term */ -#line 1295 "perly.y" + case 217: /* termunop: PERLY_TILDE term */ +#line 1299 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } break; - case 217: /* termunop: term POSTINC */ -#line 1297 "perly.y" + case 218: /* termunop: term POSTINC */ +#line 1301 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } break; - case 218: /* termunop: term POSTDEC */ -#line 1300 "perly.y" + case 219: /* termunop: term POSTDEC */ +#line 1304 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} break; - case 219: /* termunop: term POSTJOIN */ -#line 1303 "perly.y" + case 220: /* termunop: term POSTJOIN */ +#line 1307 "perly.y" { (yyval.opval) = op_convert_list(OP_JOIN, 0, op_append_elem( OP_LIST, @@ -1689,48 +1697,48 @@ case 2: /* @1: %empty */ break; - case 220: /* termunop: PREINC term */ -#line 1314 "perly.y" + case 221: /* termunop: PREINC term */ +#line 1318 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } break; - case 221: /* termunop: PREDEC term */ -#line 1317 "perly.y" + case 222: /* termunop: PREDEC term */ +#line 1321 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } break; - case 222: /* anonymous: PERLY_BRACKET_OPEN optexpr PERLY_BRACKET_CLOSE */ -#line 1325 "perly.y" + case 223: /* anonymous: PERLY_BRACKET_OPEN optexpr PERLY_BRACKET_CLOSE */ +#line 1329 "perly.y" { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } break; - case 223: /* anonymous: HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1327 "perly.y" + case 224: /* anonymous: HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1331 "perly.y" { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } break; - case 224: /* anonymous: KW_SUB_anon startanonsub proto subattrlist subbody */ -#line 1329 "perly.y" + case 225: /* anonymous: KW_SUB_anon startanonsub proto subattrlist subbody */ +#line 1333 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } break; - case 225: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist sigsubbody */ -#line 1332 "perly.y" + case 226: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist sigsubbody */ +#line 1336 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); } break; - case 226: /* anonymous: KW_METHOD_anon startanonmethod subattrlist sigsubbody */ -#line 1335 "perly.y" + case 227: /* anonymous: KW_METHOD_anon startanonmethod subattrlist sigsubbody */ +#line 1339 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); @@ -1738,98 +1746,98 @@ case 2: /* @1: %empty */ break; - case 227: /* termdo: KW_DO term */ -#line 1343 "perly.y" + case 228: /* termdo: KW_DO term */ +#line 1347 "perly.y" { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; - case 228: /* termdo: KW_DO block */ -#line 1345 "perly.y" + case 229: /* termdo: KW_DO block */ +#line 1349 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; - case 233: /* term: term PERLY_QUESTION_MARK term PERLY_COLON term */ -#line 1353 "perly.y" + case 234: /* term: term PERLY_QUESTION_MARK term PERLY_COLON term */ +#line 1357 "perly.y" { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 234: /* term: REFGEN term */ -#line 1355 "perly.y" + case 235: /* term: REFGEN term */ +#line 1359 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; - case 235: /* term: myattrterm */ -#line 1357 "perly.y" + case 236: /* term: myattrterm */ +#line 1361 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 236: /* term: KW_LOCAL term */ -#line 1359 "perly.y" + case 237: /* term: KW_LOCAL term */ +#line 1363 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),0); } break; - case 237: /* term: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1361 "perly.y" + case 238: /* term: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1365 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 238: /* term: QWLIST */ -#line 1363 "perly.y" + case 239: /* term: QWLIST */ +#line 1367 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 239: /* term: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1365 "perly.y" + case 240: /* term: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1369 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 240: /* term: scalar */ -#line 1367 "perly.y" + case 241: /* term: scalar */ +#line 1371 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 241: /* term: star */ -#line 1369 "perly.y" + case 242: /* term: star */ +#line 1373 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 242: /* term: hsh */ -#line 1371 "perly.y" + case 243: /* term: hsh */ +#line 1375 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 243: /* term: ary */ -#line 1373 "perly.y" + case 244: /* term: ary */ +#line 1377 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 244: /* term: arylen */ -#line 1375 "perly.y" + case 245: /* term: arylen */ +#line 1379 "perly.y" { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; - case 245: /* term: subscripted */ -#line 1377 "perly.y" + case 246: /* term: subscripted */ +#line 1381 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 246: /* term: sliceme PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1379 "perly.y" + case 247: /* term: sliceme PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1383 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1842,8 +1850,8 @@ case 2: /* @1: %empty */ break; - case 247: /* term: kvslice PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1389 "perly.y" + case 248: /* term: kvslice PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1393 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1856,8 +1864,8 @@ case 2: /* @1: %empty */ break; - case 248: /* term: sliceme PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1399 "perly.y" + case 249: /* term: sliceme PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1403 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1870,8 +1878,8 @@ case 2: /* @1: %empty */ break; - case 249: /* term: kvslice PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1409 "perly.y" + case 250: /* term: kvslice PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1413 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1884,27 +1892,27 @@ case 2: /* @1: %empty */ break; - case 250: /* term: THING */ -#line 1419 "perly.y" + case 251: /* term: THING */ +#line 1423 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 251: /* term: amper */ -#line 1421 "perly.y" + case 252: /* term: amper */ +#line 1425 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; - case 252: /* term: amper PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1423 "perly.y" + case 253: /* term: amper PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1427 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; - case 253: /* term: amper PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1426 "perly.y" + case 254: /* term: amper PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1430 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1912,153 +1920,153 @@ case 2: /* @1: %empty */ break; - case 254: /* term: NOAMP subname optlistexpr */ -#line 1431 "perly.y" + case 255: /* term: NOAMP subname optlistexpr */ +#line 1435 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 255: /* term: term ARROW PERLY_DOLLAR PERLY_STAR */ -#line 1435 "perly.y" + case 256: /* term: term ARROW PERLY_DOLLAR PERLY_STAR */ +#line 1439 "perly.y" { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; - case 256: /* term: term ARROW PERLY_SNAIL PERLY_STAR */ -#line 1437 "perly.y" + case 257: /* term: term ARROW PERLY_SNAIL PERLY_STAR */ +#line 1441 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 257: /* term: term ARROW PERLY_PERCENT_SIGN PERLY_STAR */ -#line 1439 "perly.y" + case 258: /* term: term ARROW PERLY_PERCENT_SIGN PERLY_STAR */ +#line 1443 "perly.y" { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; - case 258: /* term: term ARROW PERLY_AMPERSAND PERLY_STAR */ -#line 1441 "perly.y" + case 259: /* term: term ARROW PERLY_AMPERSAND PERLY_STAR */ +#line 1445 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; - case 259: /* term: term ARROW PERLY_STAR PERLY_STAR */ -#line 1444 "perly.y" + case 260: /* term: term ARROW PERLY_STAR PERLY_STAR */ +#line 1448 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; - case 260: /* term: LOOPEX */ -#line 1446 "perly.y" + case 261: /* term: LOOPEX */ +#line 1450 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; - case 261: /* term: LOOPEX term */ -#line 1449 "perly.y" + case 262: /* term: LOOPEX term */ +#line 1453 "perly.y" { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 262: /* term: NOTOP listexpr */ -#line 1451 "perly.y" + case 263: /* term: NOTOP listexpr */ +#line 1455 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 263: /* term: UNIOP */ -#line 1453 "perly.y" + case 264: /* term: UNIOP */ +#line 1457 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 264: /* term: UNIOP block */ -#line 1455 "perly.y" + case 265: /* term: UNIOP block */ +#line 1459 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 265: /* term: UNIOP term */ -#line 1457 "perly.y" + case 266: /* term: UNIOP term */ +#line 1461 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 266: /* term: KW_REQUIRE */ -#line 1459 "perly.y" + case 267: /* term: KW_REQUIRE */ +#line 1463 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; - case 267: /* term: KW_REQUIRE term */ -#line 1461 "perly.y" + case 268: /* term: KW_REQUIRE term */ +#line 1465 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; - case 268: /* term: UNIOPSUB */ -#line 1463 "perly.y" + case 269: /* term: UNIOPSUB */ +#line 1467 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 269: /* term: UNIOPSUB term */ -#line 1465 "perly.y" + case 270: /* term: UNIOPSUB term */ +#line 1469 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 270: /* term: FUNC0 */ -#line 1468 "perly.y" + case 271: /* term: FUNC0 */ +#line 1472 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 271: /* term: FUNC0 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1470 "perly.y" + case 272: /* term: FUNC0 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1474 "perly.y" { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; - case 272: /* term: FUNC0OP */ -#line 1472 "perly.y" + case 273: /* term: FUNC0OP */ +#line 1476 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 273: /* term: FUNC0OP PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1474 "perly.y" + case 274: /* term: FUNC0OP PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1478 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; - case 274: /* term: FUNC0SUB */ -#line 1476 "perly.y" + case 275: /* term: FUNC0SUB */ +#line 1480 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 275: /* term: FUNC1 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1478 "perly.y" + case 276: /* term: FUNC1 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1482 "perly.y" { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP((ps[-2].val.ival), OPf_SPECIAL); } break; - case 276: /* term: FUNC1 PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1482 "perly.y" + case 277: /* term: FUNC1 PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1486 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 277: /* @23: %empty */ -#line 1484 "perly.y" + case 278: /* @23: %empty */ +#line 1488 "perly.y" { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -2072,68 +2080,68 @@ case 2: /* @1: %empty */ break; - case 278: /* term: PMFUNC @23 SUBLEXSTART listexpr optrepl SUBLEXEND */ -#line 1495 "perly.y" + case 279: /* term: PMFUNC @23 SUBLEXSTART listexpr optrepl SUBLEXEND */ +#line 1499 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; - case 282: /* myattrterm: KW_MY myterm myattrlist */ -#line 1504 "perly.y" + case 283: /* myattrterm: KW_MY myterm myattrlist */ +#line 1508 "perly.y" { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; - case 283: /* myattrterm: KW_MY myterm */ -#line 1506 "perly.y" + case 284: /* myattrterm: KW_MY myterm */ +#line 1510 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),1); } break; - case 284: /* myattrterm: KW_MY REFGEN myterm myattrlist */ -#line 1508 "perly.y" + case 285: /* myattrterm: KW_MY REFGEN myterm myattrlist */ +#line 1512 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; - case 285: /* myattrterm: KW_MY REFGEN term */ -#line 1510 "perly.y" + case 286: /* myattrterm: KW_MY REFGEN term */ +#line 1514 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; - case 286: /* myterm: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1515 "perly.y" + case 287: /* myterm: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1519 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 287: /* myterm: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1517 "perly.y" + case 288: /* myterm: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1521 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 288: /* myterm: scalar */ -#line 1520 "perly.y" + case 289: /* myterm: scalar */ +#line 1524 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 289: /* myterm: hsh */ -#line 1522 "perly.y" + case 290: /* myterm: hsh */ +#line 1526 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 290: /* myterm: ary */ -#line 1524 "perly.y" + case 291: /* myterm: ary */ +#line 1528 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 291: /* fieldvar: scalar */ -#line 1529 "perly.y" + case 292: /* fieldvar: scalar */ +#line 1533 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2141,8 +2149,8 @@ case 2: /* @1: %empty */ break; - case 292: /* fieldvar: hsh */ -#line 1534 "perly.y" + case 293: /* fieldvar: hsh */ +#line 1538 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2150,8 +2158,8 @@ case 2: /* @1: %empty */ break; - case 293: /* fieldvar: ary */ -#line 1539 "perly.y" + case 294: /* fieldvar: ary */ +#line 1543 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2159,20 +2167,20 @@ case 2: /* @1: %empty */ break; - case 294: /* optfieldattrlist: COLONATTR THING */ -#line 1547 "perly.y" + case 295: /* optfieldattrlist: COLONATTR THING */ +#line 1551 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 295: /* optfieldattrlist: COLONATTR */ -#line 1549 "perly.y" + case 296: /* optfieldattrlist: COLONATTR */ +#line 1553 "perly.y" { (yyval.opval) = NULL; } break; - case 297: /* fielddecl: KW_FIELD fieldvar optfieldattrlist */ -#line 1555 "perly.y" + case 298: /* fielddecl: KW_FIELD fieldvar optfieldattrlist */ +#line 1559 "perly.y" { parser->in_my = 0; if((ps[0].val.opval)) @@ -2182,8 +2190,8 @@ case 2: /* @1: %empty */ break; - case 298: /* $@24: %empty */ -#line 1562 "perly.y" + case 299: /* $@24: %empty */ +#line 1566 "perly.y" { parser->in_my = 0; if((ps[-1].val.opval)) @@ -2194,8 +2202,8 @@ case 2: /* @1: %empty */ break; - case 299: /* fielddecl: KW_FIELD fieldvar optfieldattrlist ASSIGNOP $@24 term */ -#line 1570 "perly.y" + case 300: /* fielddecl: KW_FIELD fieldvar optfieldattrlist ASSIGNOP $@24 term */ +#line 1574 "perly.y" { class_set_field_defop((PADNAME *)(ps[-4].val.pval), (ps[-2].val.ival), (ps[0].val.opval)); LEAVE; @@ -2204,122 +2212,122 @@ case 2: /* @1: %empty */ break; - case 305: /* optrepl: PERLY_SLASH expr */ -#line 1590 "perly.y" + case 306: /* optrepl: PERLY_SLASH expr */ +#line 1594 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 306: /* my_scalar: scalar */ -#line 1596 "perly.y" + case 307: /* my_scalar: scalar */ +#line 1600 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; - case 307: /* list_of_scalars: list_of_scalars PERLY_COMMA */ -#line 1601 "perly.y" + case 308: /* list_of_scalars: list_of_scalars PERLY_COMMA */ +#line 1605 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 308: /* list_of_scalars: list_of_scalars PERLY_COMMA scalar */ -#line 1603 "perly.y" + case 309: /* list_of_scalars: list_of_scalars PERLY_COMMA scalar */ +#line 1607 "perly.y" { (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 310: /* my_list_of_scalars: list_of_scalars */ -#line 1610 "perly.y" + case 311: /* my_list_of_scalars: list_of_scalars */ +#line 1614 "perly.y" { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } break; - case 318: /* amper: PERLY_AMPERSAND indirob */ -#line 1627 "perly.y" + case 319: /* amper: PERLY_AMPERSAND indirob */ +#line 1631 "perly.y" { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 319: /* scalar: PERLY_DOLLAR indirob */ -#line 1631 "perly.y" + case 320: /* scalar: PERLY_DOLLAR indirob */ +#line 1635 "perly.y" { (yyval.opval) = newSVREF((ps[0].val.opval)); } break; - case 320: /* ary: PERLY_SNAIL indirob */ -#line 1635 "perly.y" + case 321: /* ary: PERLY_SNAIL indirob */ +#line 1639 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 321: /* hsh: PERLY_PERCENT_SIGN indirob */ -#line 1641 "perly.y" + case 322: /* hsh: PERLY_PERCENT_SIGN indirob */ +#line 1645 "perly.y" { (yyval.opval) = newHVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 322: /* arylen: DOLSHARP indirob */ -#line 1647 "perly.y" + case 323: /* arylen: DOLSHARP indirob */ +#line 1651 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); } break; - case 323: /* arylen: term ARROW DOLSHARP PERLY_STAR */ -#line 1649 "perly.y" + case 324: /* arylen: term ARROW DOLSHARP PERLY_STAR */ +#line 1653 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 324: /* star: PERLY_STAR indirob */ -#line 1653 "perly.y" + case 325: /* star: PERLY_STAR indirob */ +#line 1657 "perly.y" { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } break; - case 326: /* sliceme: term ARROW PERLY_SNAIL */ -#line 1658 "perly.y" + case 327: /* sliceme: term ARROW PERLY_SNAIL */ +#line 1662 "perly.y" { (yyval.opval) = newAVREF((ps[-2].val.opval)); } break; - case 328: /* kvslice: term ARROW PERLY_PERCENT_SIGN */ -#line 1663 "perly.y" + case 329: /* kvslice: term ARROW PERLY_PERCENT_SIGN */ +#line 1667 "perly.y" { (yyval.opval) = newHVREF((ps[-2].val.opval)); } break; - case 330: /* gelem: term ARROW PERLY_STAR */ -#line 1668 "perly.y" + case 331: /* gelem: term ARROW PERLY_STAR */ +#line 1672 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } break; - case 331: /* indirob: BAREWORD */ -#line 1673 "perly.y" + case 332: /* indirob: BAREWORD */ +#line 1677 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 332: /* indirob: scalar */ -#line 1675 "perly.y" + case 333: /* indirob: scalar */ +#line 1679 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 333: /* indirob: block */ -#line 1677 "perly.y" + case 334: /* indirob: block */ +#line 1681 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 334: /* indirob: PRIVATEREF */ -#line 1680 "perly.y" + case 335: /* indirob: PRIVATEREF */ +#line 1684 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2331,6 +2339,6 @@ case 2: /* @1: %empty */ /* Generated from: - * 9fc11f4af92f701d8d7909a9cd9dc52e01098c42c2504fb84c15e1d1e72f4803 perly.y + * cdef9ff44874bfb2f6175adcd920473f8c6601794f20f7977a13e1c2e2be5e26 perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.h b/perly.h index 49877e206ea2b..54e8f97508832 100644 --- a/perly.h +++ b/perly.h @@ -133,59 +133,60 @@ extern int yydebug; FUNC = 327, /* FUNC */ UNIOP = 328, /* UNIOP */ LSTOP = 329, /* LSTOP */ - POWOP = 330, /* POWOP */ - MULOP = 331, /* MULOP */ - ADDOP = 332, /* ADDOP */ - DOLSHARP = 333, /* DOLSHARP */ - HASHBRACK = 334, /* HASHBRACK */ - NOAMP = 335, /* NOAMP */ - COLONATTR = 336, /* COLONATTR */ - FORMLBRACK = 337, /* FORMLBRACK */ - FORMRBRACK = 338, /* FORMRBRACK */ - SUBLEXSTART = 339, /* SUBLEXSTART */ - SUBLEXEND = 340, /* SUBLEXEND */ - PHASER = 341, /* PHASER */ - PREC_LOW = 342, /* PREC_LOW */ - PLUGIN_LOW_OP = 343, /* PLUGIN_LOW_OP */ - OROP = 344, /* OROP */ - PLUGIN_LOGICAL_OR_LOW_OP = 345, /* PLUGIN_LOGICAL_OR_LOW_OP */ - ANDOP = 346, /* ANDOP */ - PLUGIN_LOGICAL_AND_LOW_OP = 347, /* PLUGIN_LOGICAL_AND_LOW_OP */ - NOTOP = 348, /* NOTOP */ - ASSIGNOP = 349, /* ASSIGNOP */ - PLUGIN_ASSIGN_OP = 350, /* PLUGIN_ASSIGN_OP */ - PERLY_QUESTION_MARK = 351, /* PERLY_QUESTION_MARK */ - PERLY_COLON = 352, /* PERLY_COLON */ - OROR = 353, /* OROR */ - DORDOR = 354, /* DORDOR */ - PLUGIN_LOGICAL_OR_OP = 355, /* PLUGIN_LOGICAL_OR_OP */ - ANDAND = 356, /* ANDAND */ - PLUGIN_LOGICAL_AND_OP = 357, /* PLUGIN_LOGICAL_AND_OP */ - BITOROP = 358, /* BITOROP */ - BITANDOP = 359, /* BITANDOP */ - CHEQOP = 360, /* CHEQOP */ - NCEQOP = 361, /* NCEQOP */ - CHRELOP = 362, /* CHRELOP */ - NCRELOP = 363, /* NCRELOP */ - PLUGIN_REL_OP = 364, /* PLUGIN_REL_OP */ - SHIFTOP = 365, /* SHIFTOP */ - PLUGIN_ADD_OP = 366, /* PLUGIN_ADD_OP */ - PLUGIN_MUL_OP = 367, /* PLUGIN_MUL_OP */ - MATCHOP = 368, /* MATCHOP */ - PERLY_EXCLAMATION_MARK = 369, /* PERLY_EXCLAMATION_MARK */ - PERLY_TILDE = 370, /* PERLY_TILDE */ - UMINUS = 371, /* UMINUS */ - REFGEN = 372, /* REFGEN */ - PLUGIN_POW_OP = 373, /* PLUGIN_POW_OP */ - PREINC = 374, /* PREINC */ - PREDEC = 375, /* PREDEC */ - POSTINC = 376, /* POSTINC */ - POSTDEC = 377, /* POSTDEC */ - POSTJOIN = 378, /* POSTJOIN */ - PLUGIN_HIGH_OP = 379, /* PLUGIN_HIGH_OP */ - ARROW = 380, /* ARROW */ - PERLY_PAREN_CLOSE = 381, /* PERLY_PAREN_CLOSE */ - PERLY_PAREN_OPEN = 382 /* PERLY_PAREN_OPEN */ + BLKLSTOP = 330, /* BLKLSTOP */ + POWOP = 331, /* POWOP */ + MULOP = 332, /* MULOP */ + ADDOP = 333, /* ADDOP */ + DOLSHARP = 334, /* DOLSHARP */ + HASHBRACK = 335, /* HASHBRACK */ + NOAMP = 336, /* NOAMP */ + COLONATTR = 337, /* COLONATTR */ + FORMLBRACK = 338, /* FORMLBRACK */ + FORMRBRACK = 339, /* FORMRBRACK */ + SUBLEXSTART = 340, /* SUBLEXSTART */ + SUBLEXEND = 341, /* SUBLEXEND */ + PHASER = 342, /* PHASER */ + PREC_LOW = 343, /* PREC_LOW */ + PLUGIN_LOW_OP = 344, /* PLUGIN_LOW_OP */ + OROP = 345, /* OROP */ + PLUGIN_LOGICAL_OR_LOW_OP = 346, /* PLUGIN_LOGICAL_OR_LOW_OP */ + ANDOP = 347, /* ANDOP */ + PLUGIN_LOGICAL_AND_LOW_OP = 348, /* PLUGIN_LOGICAL_AND_LOW_OP */ + NOTOP = 349, /* NOTOP */ + ASSIGNOP = 350, /* ASSIGNOP */ + PLUGIN_ASSIGN_OP = 351, /* PLUGIN_ASSIGN_OP */ + PERLY_QUESTION_MARK = 352, /* PERLY_QUESTION_MARK */ + PERLY_COLON = 353, /* PERLY_COLON */ + OROR = 354, /* OROR */ + DORDOR = 355, /* DORDOR */ + PLUGIN_LOGICAL_OR_OP = 356, /* PLUGIN_LOGICAL_OR_OP */ + ANDAND = 357, /* ANDAND */ + PLUGIN_LOGICAL_AND_OP = 358, /* PLUGIN_LOGICAL_AND_OP */ + BITOROP = 359, /* BITOROP */ + BITANDOP = 360, /* BITANDOP */ + CHEQOP = 361, /* CHEQOP */ + NCEQOP = 362, /* NCEQOP */ + CHRELOP = 363, /* CHRELOP */ + NCRELOP = 364, /* NCRELOP */ + PLUGIN_REL_OP = 365, /* PLUGIN_REL_OP */ + SHIFTOP = 366, /* SHIFTOP */ + PLUGIN_ADD_OP = 367, /* PLUGIN_ADD_OP */ + PLUGIN_MUL_OP = 368, /* PLUGIN_MUL_OP */ + MATCHOP = 369, /* MATCHOP */ + PERLY_EXCLAMATION_MARK = 370, /* PERLY_EXCLAMATION_MARK */ + PERLY_TILDE = 371, /* PERLY_TILDE */ + UMINUS = 372, /* UMINUS */ + REFGEN = 373, /* REFGEN */ + PLUGIN_POW_OP = 374, /* PLUGIN_POW_OP */ + PREINC = 375, /* PREINC */ + PREDEC = 376, /* PREDEC */ + POSTINC = 377, /* POSTINC */ + POSTDEC = 378, /* POSTDEC */ + POSTJOIN = 379, /* POSTJOIN */ + PLUGIN_HIGH_OP = 380, /* PLUGIN_HIGH_OP */ + ARROW = 381, /* ARROW */ + PERLY_PAREN_CLOSE = 382, /* PERLY_PAREN_CLOSE */ + PERLY_PAREN_OPEN = 383 /* PERLY_PAREN_OPEN */ }; typedef enum yytokentype yytoken_kind_t; #endif @@ -240,6 +241,6 @@ int yyparse (void); /* Generated from: - * 9fc11f4af92f701d8d7909a9cd9dc52e01098c42c2504fb84c15e1d1e72f4803 perly.y + * cdef9ff44874bfb2f6175adcd920473f8c6601794f20f7977a13e1c2e2be5e26 perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.tab b/perly.tab index 42292d0eb14b5..1ad0130de9d3b 100644 --- a/perly.tab +++ b/perly.tab @@ -83,173 +83,174 @@ enum yysymbol_kind_t YYSYMBOL_FUNC = 72, /* FUNC */ YYSYMBOL_UNIOP = 73, /* UNIOP */ YYSYMBOL_LSTOP = 74, /* LSTOP */ - YYSYMBOL_POWOP = 75, /* POWOP */ - YYSYMBOL_MULOP = 76, /* MULOP */ - YYSYMBOL_ADDOP = 77, /* ADDOP */ - YYSYMBOL_DOLSHARP = 78, /* DOLSHARP */ - YYSYMBOL_HASHBRACK = 79, /* HASHBRACK */ - YYSYMBOL_NOAMP = 80, /* NOAMP */ - YYSYMBOL_COLONATTR = 81, /* COLONATTR */ - YYSYMBOL_FORMLBRACK = 82, /* FORMLBRACK */ - YYSYMBOL_FORMRBRACK = 83, /* FORMRBRACK */ - YYSYMBOL_SUBLEXSTART = 84, /* SUBLEXSTART */ - YYSYMBOL_SUBLEXEND = 85, /* SUBLEXEND */ - YYSYMBOL_PHASER = 86, /* PHASER */ - YYSYMBOL_PREC_LOW = 87, /* PREC_LOW */ - YYSYMBOL_PLUGIN_LOW_OP = 88, /* PLUGIN_LOW_OP */ - YYSYMBOL_OROP = 89, /* OROP */ - YYSYMBOL_PLUGIN_LOGICAL_OR_LOW_OP = 90, /* PLUGIN_LOGICAL_OR_LOW_OP */ - YYSYMBOL_ANDOP = 91, /* ANDOP */ - YYSYMBOL_PLUGIN_LOGICAL_AND_LOW_OP = 92, /* PLUGIN_LOGICAL_AND_LOW_OP */ - YYSYMBOL_NOTOP = 93, /* NOTOP */ - YYSYMBOL_ASSIGNOP = 94, /* ASSIGNOP */ - YYSYMBOL_PLUGIN_ASSIGN_OP = 95, /* PLUGIN_ASSIGN_OP */ - YYSYMBOL_PERLY_QUESTION_MARK = 96, /* PERLY_QUESTION_MARK */ - YYSYMBOL_PERLY_COLON = 97, /* PERLY_COLON */ - YYSYMBOL_OROR = 98, /* OROR */ - YYSYMBOL_DORDOR = 99, /* DORDOR */ - YYSYMBOL_PLUGIN_LOGICAL_OR_OP = 100, /* PLUGIN_LOGICAL_OR_OP */ - YYSYMBOL_ANDAND = 101, /* ANDAND */ - YYSYMBOL_PLUGIN_LOGICAL_AND_OP = 102, /* PLUGIN_LOGICAL_AND_OP */ - YYSYMBOL_BITOROP = 103, /* BITOROP */ - YYSYMBOL_BITANDOP = 104, /* BITANDOP */ - YYSYMBOL_CHEQOP = 105, /* CHEQOP */ - YYSYMBOL_NCEQOP = 106, /* NCEQOP */ - YYSYMBOL_CHRELOP = 107, /* CHRELOP */ - YYSYMBOL_NCRELOP = 108, /* NCRELOP */ - YYSYMBOL_PLUGIN_REL_OP = 109, /* PLUGIN_REL_OP */ - YYSYMBOL_SHIFTOP = 110, /* SHIFTOP */ - YYSYMBOL_PLUGIN_ADD_OP = 111, /* PLUGIN_ADD_OP */ - YYSYMBOL_PLUGIN_MUL_OP = 112, /* PLUGIN_MUL_OP */ - YYSYMBOL_MATCHOP = 113, /* MATCHOP */ - YYSYMBOL_PERLY_EXCLAMATION_MARK = 114, /* PERLY_EXCLAMATION_MARK */ - YYSYMBOL_PERLY_TILDE = 115, /* PERLY_TILDE */ - YYSYMBOL_UMINUS = 116, /* UMINUS */ - YYSYMBOL_REFGEN = 117, /* REFGEN */ - YYSYMBOL_PLUGIN_POW_OP = 118, /* PLUGIN_POW_OP */ - YYSYMBOL_PREINC = 119, /* PREINC */ - YYSYMBOL_PREDEC = 120, /* PREDEC */ - YYSYMBOL_POSTINC = 121, /* POSTINC */ - YYSYMBOL_POSTDEC = 122, /* POSTDEC */ - YYSYMBOL_POSTJOIN = 123, /* POSTJOIN */ - YYSYMBOL_PLUGIN_HIGH_OP = 124, /* PLUGIN_HIGH_OP */ - YYSYMBOL_ARROW = 125, /* ARROW */ - YYSYMBOL_PERLY_PAREN_CLOSE = 126, /* PERLY_PAREN_CLOSE */ - YYSYMBOL_PERLY_PAREN_OPEN = 127, /* PERLY_PAREN_OPEN */ - YYSYMBOL_YYACCEPT = 128, /* $accept */ - YYSYMBOL_grammar = 129, /* grammar */ - YYSYMBOL_130_1 = 130, /* @1 */ - YYSYMBOL_131_2 = 131, /* @2 */ - YYSYMBOL_132_3 = 132, /* @3 */ - YYSYMBOL_133_4 = 133, /* @4 */ - YYSYMBOL_134_5 = 134, /* @5 */ - YYSYMBOL_135_6 = 135, /* @6 */ - YYSYMBOL_136_7 = 136, /* @7 */ - YYSYMBOL_sigsub_or_method_named = 137, /* sigsub_or_method_named */ - YYSYMBOL_block = 138, /* block */ - YYSYMBOL_empty = 139, /* empty */ - YYSYMBOL_formblock = 140, /* formblock */ - YYSYMBOL_remember = 141, /* remember */ - YYSYMBOL_mblock = 142, /* mblock */ - YYSYMBOL_mremember = 143, /* mremember */ - YYSYMBOL_catch_paren = 144, /* catch_paren */ - YYSYMBOL_145_8 = 145, /* $@8 */ - YYSYMBOL_146_9 = 146, /* $@9 */ - YYSYMBOL_stmtseq = 147, /* stmtseq */ - YYSYMBOL_formstmtseq = 148, /* formstmtseq */ - YYSYMBOL_fullstmt = 149, /* fullstmt */ - YYSYMBOL_labfullstmt = 150, /* labfullstmt */ - YYSYMBOL_barestmt = 151, /* barestmt */ - YYSYMBOL_152_10 = 152, /* $@10 */ - YYSYMBOL_153_11 = 153, /* $@11 */ - YYSYMBOL_154_12 = 154, /* $@12 */ - YYSYMBOL_155_13 = 155, /* $@13 */ - YYSYMBOL_156_14 = 156, /* $@14 */ - YYSYMBOL_157_15 = 157, /* $@15 */ - YYSYMBOL_158_16 = 158, /* @16 */ - YYSYMBOL_159_17 = 159, /* $@17 */ - YYSYMBOL_160_18 = 160, /* $@18 */ - YYSYMBOL_161_19 = 161, /* $@19 */ - YYSYMBOL_formline = 162, /* formline */ - YYSYMBOL_formarg = 163, /* formarg */ - YYSYMBOL_condition = 164, /* condition */ - YYSYMBOL_sideff = 165, /* sideff */ - YYSYMBOL_else = 166, /* else */ - YYSYMBOL_cont = 167, /* cont */ - YYSYMBOL_finally = 168, /* finally */ - YYSYMBOL_mintro = 169, /* mintro */ - YYSYMBOL_nexpr = 170, /* nexpr */ - YYSYMBOL_texpr = 171, /* texpr */ - YYSYMBOL_iexpr = 172, /* iexpr */ - YYSYMBOL_mexpr = 173, /* mexpr */ - YYSYMBOL_mnexpr = 174, /* mnexpr */ - YYSYMBOL_formname = 175, /* formname */ - YYSYMBOL_startsub = 176, /* startsub */ - YYSYMBOL_startanonsub = 177, /* startanonsub */ - YYSYMBOL_startanonmethod = 178, /* startanonmethod */ - YYSYMBOL_startformsub = 179, /* startformsub */ - YYSYMBOL_subname = 180, /* subname */ - YYSYMBOL_proto = 181, /* proto */ - YYSYMBOL_subattrlist = 182, /* subattrlist */ - YYSYMBOL_myattrlist = 183, /* myattrlist */ - YYSYMBOL_sigvarname = 184, /* sigvarname */ - YYSYMBOL_sigslurpsigil = 185, /* sigslurpsigil */ - YYSYMBOL_sigslurpelem = 186, /* sigslurpelem */ - YYSYMBOL_sigdefault = 187, /* sigdefault */ - YYSYMBOL_sigscalarelem = 188, /* sigscalarelem */ - YYSYMBOL_sigelem = 189, /* sigelem */ - YYSYMBOL_siglist = 190, /* siglist */ - YYSYMBOL_optsiglist = 191, /* optsiglist */ - YYSYMBOL_optsubsignature = 192, /* optsubsignature */ - YYSYMBOL_subsignature = 193, /* subsignature */ - YYSYMBOL_subsigguts = 194, /* subsigguts */ - YYSYMBOL_195_20 = 195, /* $@20 */ - YYSYMBOL_optsubbody = 196, /* optsubbody */ - YYSYMBOL_subbody = 197, /* subbody */ - YYSYMBOL_optsigsubbody = 198, /* optsigsubbody */ - YYSYMBOL_sigsubbody = 199, /* sigsubbody */ - YYSYMBOL_200_21 = 200, /* $@21 */ - YYSYMBOL_expr = 201, /* expr */ - YYSYMBOL_listexpr = 202, /* listexpr */ - YYSYMBOL_listop = 203, /* listop */ - YYSYMBOL_204_22 = 204, /* @22 */ - YYSYMBOL_methodname = 205, /* methodname */ - YYSYMBOL_subscripted = 206, /* subscripted */ - YYSYMBOL_termbinop = 207, /* termbinop */ - YYSYMBOL_termrelop = 208, /* termrelop */ - YYSYMBOL_relopchain = 209, /* relopchain */ - YYSYMBOL_termeqop = 210, /* termeqop */ - YYSYMBOL_eqopchain = 211, /* eqopchain */ - YYSYMBOL_termunop = 212, /* termunop */ - YYSYMBOL_anonymous = 213, /* anonymous */ - YYSYMBOL_termdo = 214, /* termdo */ - YYSYMBOL_term = 215, /* term */ - YYSYMBOL_216_23 = 216, /* @23 */ - YYSYMBOL_myattrterm = 217, /* myattrterm */ - YYSYMBOL_myterm = 218, /* myterm */ - YYSYMBOL_fieldvar = 219, /* fieldvar */ - YYSYMBOL_optfieldattrlist = 220, /* optfieldattrlist */ - YYSYMBOL_fielddecl = 221, /* fielddecl */ - YYSYMBOL_222_24 = 222, /* $@24 */ - YYSYMBOL_optlistexpr = 223, /* optlistexpr */ - YYSYMBOL_optexpr = 224, /* optexpr */ - YYSYMBOL_optrepl = 225, /* optrepl */ - YYSYMBOL_my_scalar = 226, /* my_scalar */ - YYSYMBOL_list_of_scalars = 227, /* list_of_scalars */ - YYSYMBOL_my_list_of_scalars = 228, /* my_list_of_scalars */ - YYSYMBOL_my_var = 229, /* my_var */ - YYSYMBOL_refgen_topic = 230, /* refgen_topic */ - YYSYMBOL_my_refgen = 231, /* my_refgen */ - YYSYMBOL_amper = 232, /* amper */ - YYSYMBOL_scalar = 233, /* scalar */ - YYSYMBOL_ary = 234, /* ary */ - YYSYMBOL_hsh = 235, /* hsh */ - YYSYMBOL_arylen = 236, /* arylen */ - YYSYMBOL_star = 237, /* star */ - YYSYMBOL_sliceme = 238, /* sliceme */ - YYSYMBOL_kvslice = 239, /* kvslice */ - YYSYMBOL_gelem = 240, /* gelem */ - YYSYMBOL_indirob = 241 /* indirob */ + YYSYMBOL_BLKLSTOP = 75, /* BLKLSTOP */ + YYSYMBOL_POWOP = 76, /* POWOP */ + YYSYMBOL_MULOP = 77, /* MULOP */ + YYSYMBOL_ADDOP = 78, /* ADDOP */ + YYSYMBOL_DOLSHARP = 79, /* DOLSHARP */ + YYSYMBOL_HASHBRACK = 80, /* HASHBRACK */ + YYSYMBOL_NOAMP = 81, /* NOAMP */ + YYSYMBOL_COLONATTR = 82, /* COLONATTR */ + YYSYMBOL_FORMLBRACK = 83, /* FORMLBRACK */ + YYSYMBOL_FORMRBRACK = 84, /* FORMRBRACK */ + YYSYMBOL_SUBLEXSTART = 85, /* SUBLEXSTART */ + YYSYMBOL_SUBLEXEND = 86, /* SUBLEXEND */ + YYSYMBOL_PHASER = 87, /* PHASER */ + YYSYMBOL_PREC_LOW = 88, /* PREC_LOW */ + YYSYMBOL_PLUGIN_LOW_OP = 89, /* PLUGIN_LOW_OP */ + YYSYMBOL_OROP = 90, /* OROP */ + YYSYMBOL_PLUGIN_LOGICAL_OR_LOW_OP = 91, /* PLUGIN_LOGICAL_OR_LOW_OP */ + YYSYMBOL_ANDOP = 92, /* ANDOP */ + YYSYMBOL_PLUGIN_LOGICAL_AND_LOW_OP = 93, /* PLUGIN_LOGICAL_AND_LOW_OP */ + YYSYMBOL_NOTOP = 94, /* NOTOP */ + YYSYMBOL_ASSIGNOP = 95, /* ASSIGNOP */ + YYSYMBOL_PLUGIN_ASSIGN_OP = 96, /* PLUGIN_ASSIGN_OP */ + YYSYMBOL_PERLY_QUESTION_MARK = 97, /* PERLY_QUESTION_MARK */ + YYSYMBOL_PERLY_COLON = 98, /* PERLY_COLON */ + YYSYMBOL_OROR = 99, /* OROR */ + YYSYMBOL_DORDOR = 100, /* DORDOR */ + YYSYMBOL_PLUGIN_LOGICAL_OR_OP = 101, /* PLUGIN_LOGICAL_OR_OP */ + YYSYMBOL_ANDAND = 102, /* ANDAND */ + YYSYMBOL_PLUGIN_LOGICAL_AND_OP = 103, /* PLUGIN_LOGICAL_AND_OP */ + YYSYMBOL_BITOROP = 104, /* BITOROP */ + YYSYMBOL_BITANDOP = 105, /* BITANDOP */ + YYSYMBOL_CHEQOP = 106, /* CHEQOP */ + YYSYMBOL_NCEQOP = 107, /* NCEQOP */ + YYSYMBOL_CHRELOP = 108, /* CHRELOP */ + YYSYMBOL_NCRELOP = 109, /* NCRELOP */ + YYSYMBOL_PLUGIN_REL_OP = 110, /* PLUGIN_REL_OP */ + YYSYMBOL_SHIFTOP = 111, /* SHIFTOP */ + YYSYMBOL_PLUGIN_ADD_OP = 112, /* PLUGIN_ADD_OP */ + YYSYMBOL_PLUGIN_MUL_OP = 113, /* PLUGIN_MUL_OP */ + YYSYMBOL_MATCHOP = 114, /* MATCHOP */ + YYSYMBOL_PERLY_EXCLAMATION_MARK = 115, /* PERLY_EXCLAMATION_MARK */ + YYSYMBOL_PERLY_TILDE = 116, /* PERLY_TILDE */ + YYSYMBOL_UMINUS = 117, /* UMINUS */ + YYSYMBOL_REFGEN = 118, /* REFGEN */ + YYSYMBOL_PLUGIN_POW_OP = 119, /* PLUGIN_POW_OP */ + YYSYMBOL_PREINC = 120, /* PREINC */ + YYSYMBOL_PREDEC = 121, /* PREDEC */ + YYSYMBOL_POSTINC = 122, /* POSTINC */ + YYSYMBOL_POSTDEC = 123, /* POSTDEC */ + YYSYMBOL_POSTJOIN = 124, /* POSTJOIN */ + YYSYMBOL_PLUGIN_HIGH_OP = 125, /* PLUGIN_HIGH_OP */ + YYSYMBOL_ARROW = 126, /* ARROW */ + YYSYMBOL_PERLY_PAREN_CLOSE = 127, /* PERLY_PAREN_CLOSE */ + YYSYMBOL_PERLY_PAREN_OPEN = 128, /* PERLY_PAREN_OPEN */ + YYSYMBOL_YYACCEPT = 129, /* $accept */ + YYSYMBOL_grammar = 130, /* grammar */ + YYSYMBOL_131_1 = 131, /* @1 */ + YYSYMBOL_132_2 = 132, /* @2 */ + YYSYMBOL_133_3 = 133, /* @3 */ + YYSYMBOL_134_4 = 134, /* @4 */ + YYSYMBOL_135_5 = 135, /* @5 */ + YYSYMBOL_136_6 = 136, /* @6 */ + YYSYMBOL_137_7 = 137, /* @7 */ + YYSYMBOL_sigsub_or_method_named = 138, /* sigsub_or_method_named */ + YYSYMBOL_block = 139, /* block */ + YYSYMBOL_empty = 140, /* empty */ + YYSYMBOL_formblock = 141, /* formblock */ + YYSYMBOL_remember = 142, /* remember */ + YYSYMBOL_mblock = 143, /* mblock */ + YYSYMBOL_mremember = 144, /* mremember */ + YYSYMBOL_catch_paren = 145, /* catch_paren */ + YYSYMBOL_146_8 = 146, /* $@8 */ + YYSYMBOL_147_9 = 147, /* $@9 */ + YYSYMBOL_stmtseq = 148, /* stmtseq */ + YYSYMBOL_formstmtseq = 149, /* formstmtseq */ + YYSYMBOL_fullstmt = 150, /* fullstmt */ + YYSYMBOL_labfullstmt = 151, /* labfullstmt */ + YYSYMBOL_barestmt = 152, /* barestmt */ + YYSYMBOL_153_10 = 153, /* $@10 */ + YYSYMBOL_154_11 = 154, /* $@11 */ + YYSYMBOL_155_12 = 155, /* $@12 */ + YYSYMBOL_156_13 = 156, /* $@13 */ + YYSYMBOL_157_14 = 157, /* $@14 */ + YYSYMBOL_158_15 = 158, /* $@15 */ + YYSYMBOL_159_16 = 159, /* @16 */ + YYSYMBOL_160_17 = 160, /* $@17 */ + YYSYMBOL_161_18 = 161, /* $@18 */ + YYSYMBOL_162_19 = 162, /* $@19 */ + YYSYMBOL_formline = 163, /* formline */ + YYSYMBOL_formarg = 164, /* formarg */ + YYSYMBOL_condition = 165, /* condition */ + YYSYMBOL_sideff = 166, /* sideff */ + YYSYMBOL_else = 167, /* else */ + YYSYMBOL_cont = 168, /* cont */ + YYSYMBOL_finally = 169, /* finally */ + YYSYMBOL_mintro = 170, /* mintro */ + YYSYMBOL_nexpr = 171, /* nexpr */ + YYSYMBOL_texpr = 172, /* texpr */ + YYSYMBOL_iexpr = 173, /* iexpr */ + YYSYMBOL_mexpr = 174, /* mexpr */ + YYSYMBOL_mnexpr = 175, /* mnexpr */ + YYSYMBOL_formname = 176, /* formname */ + YYSYMBOL_startsub = 177, /* startsub */ + YYSYMBOL_startanonsub = 178, /* startanonsub */ + YYSYMBOL_startanonmethod = 179, /* startanonmethod */ + YYSYMBOL_startformsub = 180, /* startformsub */ + YYSYMBOL_subname = 181, /* subname */ + YYSYMBOL_proto = 182, /* proto */ + YYSYMBOL_subattrlist = 183, /* subattrlist */ + YYSYMBOL_myattrlist = 184, /* myattrlist */ + YYSYMBOL_sigvarname = 185, /* sigvarname */ + YYSYMBOL_sigslurpsigil = 186, /* sigslurpsigil */ + YYSYMBOL_sigslurpelem = 187, /* sigslurpelem */ + YYSYMBOL_sigdefault = 188, /* sigdefault */ + YYSYMBOL_sigscalarelem = 189, /* sigscalarelem */ + YYSYMBOL_sigelem = 190, /* sigelem */ + YYSYMBOL_siglist = 191, /* siglist */ + YYSYMBOL_optsiglist = 192, /* optsiglist */ + YYSYMBOL_optsubsignature = 193, /* optsubsignature */ + YYSYMBOL_subsignature = 194, /* subsignature */ + YYSYMBOL_subsigguts = 195, /* subsigguts */ + YYSYMBOL_196_20 = 196, /* $@20 */ + YYSYMBOL_optsubbody = 197, /* optsubbody */ + YYSYMBOL_subbody = 198, /* subbody */ + YYSYMBOL_optsigsubbody = 199, /* optsigsubbody */ + YYSYMBOL_sigsubbody = 200, /* sigsubbody */ + YYSYMBOL_201_21 = 201, /* $@21 */ + YYSYMBOL_expr = 202, /* expr */ + YYSYMBOL_listexpr = 203, /* listexpr */ + YYSYMBOL_listop = 204, /* listop */ + YYSYMBOL_205_22 = 205, /* @22 */ + YYSYMBOL_methodname = 206, /* methodname */ + YYSYMBOL_subscripted = 207, /* subscripted */ + YYSYMBOL_termbinop = 208, /* termbinop */ + YYSYMBOL_termrelop = 209, /* termrelop */ + YYSYMBOL_relopchain = 210, /* relopchain */ + YYSYMBOL_termeqop = 211, /* termeqop */ + YYSYMBOL_eqopchain = 212, /* eqopchain */ + YYSYMBOL_termunop = 213, /* termunop */ + YYSYMBOL_anonymous = 214, /* anonymous */ + YYSYMBOL_termdo = 215, /* termdo */ + YYSYMBOL_term = 216, /* term */ + YYSYMBOL_217_23 = 217, /* @23 */ + YYSYMBOL_myattrterm = 218, /* myattrterm */ + YYSYMBOL_myterm = 219, /* myterm */ + YYSYMBOL_fieldvar = 220, /* fieldvar */ + YYSYMBOL_optfieldattrlist = 221, /* optfieldattrlist */ + YYSYMBOL_fielddecl = 222, /* fielddecl */ + YYSYMBOL_223_24 = 223, /* $@24 */ + YYSYMBOL_optlistexpr = 224, /* optlistexpr */ + YYSYMBOL_optexpr = 225, /* optexpr */ + YYSYMBOL_optrepl = 226, /* optrepl */ + YYSYMBOL_my_scalar = 227, /* my_scalar */ + YYSYMBOL_list_of_scalars = 228, /* list_of_scalars */ + YYSYMBOL_my_list_of_scalars = 229, /* my_list_of_scalars */ + YYSYMBOL_my_var = 230, /* my_var */ + YYSYMBOL_refgen_topic = 231, /* refgen_topic */ + YYSYMBOL_my_refgen = 232, /* my_refgen */ + YYSYMBOL_amper = 233, /* amper */ + YYSYMBOL_scalar = 234, /* scalar */ + YYSYMBOL_ary = 235, /* ary */ + YYSYMBOL_hsh = 236, /* hsh */ + YYSYMBOL_arylen = 237, /* arylen */ + YYSYMBOL_star = 238, /* star */ + YYSYMBOL_sliceme = 239, /* sliceme */ + YYSYMBOL_kvslice = 240, /* kvslice */ + YYSYMBOL_gelem = 241, /* gelem */ + YYSYMBOL_indirob = 242 /* indirob */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -258,19 +259,19 @@ typedef enum yysymbol_kind_t yysymbol_kind_t; #define YYFINAL 16 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3652 +#define YYLAST 3641 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 128 +#define YYNTOKENS 129 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 114 /* YYNRULES -- Number of rules. */ -#define YYNRULES 334 +#define YYNRULES 335 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 654 +#define YYNSTATES 657 /* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 382 +#define YYMAXUTOK 383 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -282,7 +283,7 @@ typedef enum yysymbol_kind_t yysymbol_kind_t; /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_int8 yytranslate[] = +static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -322,7 +323,7 @@ static const yytype_int8 yytranslate[] = 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127 + 125, 126, 127, 128 }; #if YYDEBUG @@ -344,25 +345,25 @@ static const yytype_int16 yyrline[] = 846, 847, 849, 862, 922, 924, 930, 932, 936, 942, 943, 948, 949, 953, 957, 957, 1024, 1025, 1030, 1042, 1043, 1048, 1047, 1060, 1062, 1064, 1066, 1068, 1072, 1074, - 1079, 1083, 1087, 1091, 1097, 1102, 1108, 1114, 1116, 1118, - 1121, 1120, 1134, 1135, 1139, 1143, 1146, 1151, 1156, 1159, - 1163, 1167, 1173, 1181, 1188, 1194, 1196, 1198, 1203, 1205, - 1207, 1209, 1211, 1213, 1218, 1220, 1222, 1224, 1226, 1228, - 1230, 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, - 1252, 1254, 1256, 1258, 1260, 1264, 1266, 1270, 1272, 1274, - 1276, 1280, 1282, 1287, 1289, 1292, 1294, 1296, 1299, 1302, - 1313, 1316, 1324, 1326, 1328, 1331, 1334, 1342, 1344, 1348, - 1349, 1350, 1351, 1352, 1354, 1356, 1358, 1360, 1362, 1364, - 1366, 1368, 1370, 1372, 1374, 1376, 1378, 1388, 1398, 1408, - 1418, 1420, 1422, 1425, 1430, 1434, 1436, 1438, 1440, 1443, - 1445, 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1462, 1464, - 1467, 1469, 1471, 1473, 1475, 1477, 1481, 1484, 1483, 1496, - 1497, 1498, 1503, 1505, 1507, 1509, 1514, 1516, 1519, 1521, - 1523, 1528, 1533, 1538, 1546, 1548, 1550, 1554, 1562, 1561, - 1579, 1580, 1584, 1585, 1589, 1590, 1595, 1600, 1602, 1606, - 1609, 1613, 1614, 1615, 1618, 1619, 1622, 1623, 1626, 1630, - 1634, 1640, 1646, 1648, 1652, 1656, 1657, 1661, 1662, 1666, - 1667, 1672, 1674, 1676, 1679 + 1079, 1083, 1087, 1091, 1095, 1101, 1106, 1112, 1118, 1120, + 1122, 1125, 1124, 1138, 1139, 1143, 1147, 1150, 1155, 1160, + 1163, 1167, 1171, 1177, 1185, 1192, 1198, 1200, 1202, 1207, + 1209, 1211, 1213, 1215, 1217, 1222, 1224, 1226, 1228, 1230, + 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, + 1252, 1256, 1258, 1260, 1262, 1264, 1268, 1270, 1274, 1276, + 1278, 1280, 1284, 1286, 1291, 1293, 1296, 1298, 1300, 1303, + 1306, 1317, 1320, 1328, 1330, 1332, 1335, 1338, 1346, 1348, + 1352, 1353, 1354, 1355, 1356, 1358, 1360, 1362, 1364, 1366, + 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1392, 1402, + 1412, 1422, 1424, 1426, 1429, 1434, 1438, 1440, 1442, 1444, + 1447, 1449, 1452, 1454, 1456, 1458, 1460, 1462, 1464, 1466, + 1468, 1471, 1473, 1475, 1477, 1479, 1481, 1485, 1488, 1487, + 1500, 1501, 1502, 1507, 1509, 1511, 1513, 1518, 1520, 1523, + 1525, 1527, 1532, 1537, 1542, 1550, 1552, 1554, 1558, 1566, + 1565, 1583, 1584, 1588, 1589, 1593, 1594, 1599, 1604, 1606, + 1610, 1613, 1617, 1618, 1619, 1622, 1623, 1626, 1627, 1630, + 1634, 1638, 1644, 1650, 1652, 1656, 1660, 1661, 1665, 1666, + 1670, 1671, 1676, 1678, 1680, 1683 }; #endif @@ -393,10 +394,10 @@ static const char *const yytname[] = "METHCALL0", "METHCALL", "THING", "PMFUNC", "PRIVATEREF", "QWLIST", "FUNC0OP", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT", "LABEL", "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", "FUNC1", "FUNC", - "UNIOP", "LSTOP", "POWOP", "MULOP", "ADDOP", "DOLSHARP", "HASHBRACK", - "NOAMP", "COLONATTR", "FORMLBRACK", "FORMRBRACK", "SUBLEXSTART", - "SUBLEXEND", "PHASER", "PREC_LOW", "PLUGIN_LOW_OP", "OROP", - "PLUGIN_LOGICAL_OR_LOW_OP", "ANDOP", "PLUGIN_LOGICAL_AND_LOW_OP", + "UNIOP", "LSTOP", "BLKLSTOP", "POWOP", "MULOP", "ADDOP", "DOLSHARP", + "HASHBRACK", "NOAMP", "COLONATTR", "FORMLBRACK", "FORMRBRACK", + "SUBLEXSTART", "SUBLEXEND", "PHASER", "PREC_LOW", "PLUGIN_LOW_OP", + "OROP", "PLUGIN_LOGICAL_OR_LOW_OP", "ANDOP", "PLUGIN_LOGICAL_AND_LOW_OP", "NOTOP", "ASSIGNOP", "PLUGIN_ASSIGN_OP", "PERLY_QUESTION_MARK", "PERLY_COLON", "OROR", "DORDOR", "PLUGIN_LOGICAL_OR_OP", "ANDAND", "PLUGIN_LOGICAL_AND_OP", "BITOROP", "BITANDOP", "CHEQOP", "NCEQOP", @@ -432,12 +433,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-540) +#define YYPACT_NINF (-535) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-333) +#define YYTABLE_NINF (-334) #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) @@ -446,72 +447,72 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 693, -540, -540, -540, -540, -540, -540, -540, 40, -540, - 2935, 37, 1904, 1792, -540, -540, -540, -540, 354, 2935, - 354, 2935, 354, 2935, 354, 354, 2935, 3, 2935, 2224, - -540, -540, -540, -540, 354, 354, -540, -540, 60, -45, - -540, 2935, -540, -540, 2935, -41, -34, 0, 2224, 2145, - 354, 2935, 71, 2935, 2935, 2935, 2935, 2935, 2935, 2303, - -540, 217, 82, -540, 15, -540, -1, -8, 79, 13, - -540, -540, -540, 3123, -540, -540, 11, 152, 190, 235, - -540, 114, 244, 280, 134, -540, -540, -540, -540, -540, - 113, 116, 343, 23, 81, 26, 88, 91, 208, 208, - -540, 71, -540, -540, -540, 202, -540, 71, 189, -540, - 215, 391, 218, 1792, -540, -540, -540, -540, 774, -540, - 429, 886, -540, -540, -540, -540, -540, 233, -540, 315, - -540, 315, -540, -540, 3527, 3014, 2382, 173, -540, -540, - -540, 3527, -540, 3527, 204, 200, 200, 2935, 161, 177, - 2935, 166, 3527, 37, 3123, 174, 2461, 2935, 2145, -540, - 3527, 3093, -540, 82, -540, 2540, 2935, -540, 277, -540, - -540, 2935, 82, 315, 315, 315, 256, 256, 302, 295, - 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2619, -540, -540, - 2935, -540, -540, 2935, 2935, 2935, 2935, 2935, 2935, 2935, - 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, - 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, -540, - -540, -540, 2935, 41, 2698, 2935, 2935, 2935, 2935, 2935, - 2935, 2935, -540, 263, 286, 287, 260, -540, -540, -540, - -540, -540, 225, 511, -540, -540, 221, -540, -540, -540, - 308, -540, -540, -540, -540, -540, -540, 37, -540, -540, - -540, 2935, 2935, 2935, 2935, 2935, -540, -540, -540, -540, - 292, -540, -540, -540, 292, -540, -540, -540, 337, -540, - -540, 2777, 315, 173, 42, 51, 70, -540, 309, 297, - -540, -540, -540, 200, 304, -540, -540, -540, -540, 2935, - 2935, 66, -540, -540, -540, -540, 420, 279, 240, 2935, - 82, 350, -540, 2935, 356, 97, 97, -540, -540, 3225, - 195, 86, -540, 424, 3488, 3468, 3327, 315, 349, 375, - 3174, 3225, 3225, 570, 3366, 3366, 3366, 3389, 3389, 3428, - 3449, 3468, 3468, 3488, 3488, 3507, 3294, 375, 349, 315, - 315, 80, 363, 2935, 2935, 318, 369, 370, 372, -540, - 380, 2856, 248, -540, -540, 496, 222, 90, 236, 101, - 241, 108, 246, 1008, -540, -540, 390, 47, 200, 353, - -540, 316, 2935, 2935, -540, 19, -540, -540, 289, -540, - -540, -540, -540, 1985, 343, -540, 2935, 2935, -540, -540, - 365, -540, 398, -540, -540, -540, 217, -540, -540, -540, - 217, -540, -540, 331, 331, 429, 24, 503, -540, -540, - -540, -540, -540, 303, -540, -540, 305, 53, -540, 2935, - -540, -540, -540, 559, -540, 180, 2935, 430, -540, -540, - 2935, -540, 255, 206, -540, -540, -540, -540, -540, -540, - 563, 2935, -540, 431, -540, 432, -540, 436, -540, 444, - -540, -540, -540, -540, -540, 56, -540, -540, 306, 217, - 332, 447, 338, -540, -540, -540, -540, -540, 352, 442, - 175, -540, 2935, 359, 366, 217, 1120, 342, 438, 204, - -540, 483, -540, -540, 200, 2935, -540, -540, -540, -540, - 50, -540, -540, -540, 484, -540, -540, 2935, -540, 419, - -540, -540, -540, 213, -540, 3276, 494, -540, -540, 381, - -540, -540, -540, -540, 497, -540, -540, -540, 2935, 208, - 208, 507, 392, -540, 2935, 2935, 208, -540, 396, 400, - -540, -540, -540, -540, -540, -540, 2935, 200, -540, 506, - 3123, 404, -540, 217, -540, -540, -540, -540, 450, -540, - -540, 3123, 162, 162, 447, 407, 413, 414, 189, 2935, - 2935, 208, 208, 208, 447, 208, 520, 398, 1232, -540, - -540, -540, -540, -540, -540, 1344, -540, 208, 418, -540, - -540, -540, -540, 2935, 208, 208, -540, 525, 423, 189, - 189, 189, -540, 509, -540, -540, -540, 1456, -540, 16, - -540, 1568, -540, 2935, 428, 189, 189, -540, 208, -540, - -540, -540, 433, 37, -540, -540, 538, 474, -540, -540, - 434, 208, -540, -540, -540, 189, -540, -540, -540, -540, - -540, -540, 208, 189, 2066, -540, 1680, 162, -540, 437, - -540, -540, 208, -540 + 393, -535, -535, -535, -535, -535, -535, -535, 28, -535, + 2956, 41, 1912, 1799, -535, -535, -535, -535, 94, 2956, + 94, 2956, 94, 2956, 94, 94, 2956, 54, 2956, 2236, + -535, -535, -535, -535, 94, 94, -535, -535, 24, -122, + -535, 2956, -535, -535, 2956, -67, -64, -34, 2236, 2156, + 41, 94, 2956, 1, 2956, 2956, 2956, 2956, 2956, 2956, + 2316, -535, 556, 62, -535, -1, -535, 105, -27, 120, + 2, -535, -535, -535, 3146, -535, -535, -28, 80, 147, + 176, -535, 103, 209, 230, 110, -535, -535, -535, -535, + -535, 75, 101, 199, 37, 48, 6, 66, 72, 148, + 148, -535, 1, -535, -535, -535, 151, -535, 1, 168, + -535, 195, 340, 218, 1799, -535, -535, -535, -535, 683, + -535, 336, 853, -535, -535, -535, -535, -535, 242, -535, + 347, -535, 347, -535, -535, 3515, 3036, 2396, 183, -535, + -535, -535, 3515, -535, 3515, 204, 198, 198, 2956, 169, + 173, 2956, 188, 3515, 41, 3146, 197, 2476, 2956, 2156, + -535, 3515, 3116, -535, 62, -535, 2556, 2956, 2956, -535, + 306, -535, -535, 2956, 62, 347, 347, 347, 178, 178, + 318, 291, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2636, + -535, -535, 2956, -535, -535, 2956, 2956, 2956, 2956, 2956, + 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, + 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, + 2956, -535, -535, -535, 2956, 47, 2716, 2956, 2956, 2956, + 2956, 2956, 2956, 2956, -535, 281, 282, 283, 259, -535, + -535, -535, -535, -535, 221, 542, -535, -535, 223, -535, + -535, -535, 312, -535, -535, -535, -535, -535, -535, 41, + -535, -535, -535, 2956, 2956, 2956, 2956, 2956, -535, -535, + -535, -535, 300, -535, -535, -535, 300, -535, -535, -535, + 344, -535, -535, 2796, 347, 183, 22, 84, 130, -535, + 403, 305, -535, -535, -535, 198, 307, -535, -535, -535, + -535, 2956, 2956, 88, -535, -535, -535, -535, 508, 278, + 243, 2956, 62, 62, 362, -535, 2956, 366, 181, 181, + -535, -535, 3250, -7, 93, -535, 512, 335, 3495, 3354, + 347, 400, 461, 3198, 3250, 3250, 1001, 3393, 3393, 3393, + 3416, 3416, 3455, 3476, 3495, 3495, 335, 335, 519, 315, + 461, 400, 347, 347, 163, 363, 2956, 2956, 452, 364, + 379, 380, -535, 384, 2876, 293, -535, -535, 574, 142, + 111, 202, 118, 226, 154, 257, 966, -535, -535, 369, + 51, 198, 354, -535, 324, 2956, 2956, -535, -5, -535, + -535, 296, -535, -535, -535, -535, 1994, 199, -535, 2956, + 2956, -535, -535, 372, -535, 420, -535, -535, -535, 556, + -535, -535, -535, 556, -535, -535, 355, 355, 336, 21, + 681, -535, -535, -535, -535, -535, 323, -535, -535, 357, + 73, -535, 2956, -535, -535, -535, 688, -535, 179, 2956, + 455, -535, -535, 2956, -535, 276, 185, -535, -535, -535, + -535, -535, -535, 692, 2956, -535, 462, -535, 474, -535, + 477, -535, 478, -535, -535, -535, -535, -535, 57, -535, + -535, 373, 556, 375, 475, 376, -535, -535, -535, -535, + -535, 381, 481, 160, -535, 2956, 382, 385, 556, 1121, + 378, 458, 204, -535, 504, -535, -535, 198, 2956, -535, + -535, -535, -535, 27, -535, -535, -535, 505, -535, -535, + 2956, -535, 431, -535, -535, -535, 191, -535, 3302, 515, + -535, -535, 401, -535, -535, -535, -535, 507, -535, -535, + -535, 2956, 148, 148, 516, 405, -535, 2956, 2956, 148, + -535, 406, 409, -535, -535, -535, -535, -535, -535, 2956, + 198, -535, 520, 3146, 414, -535, 556, -535, -535, -535, + -535, 464, -535, -535, 3146, 280, 280, 475, 417, 423, + 424, 168, 2956, 2956, 148, 148, 148, 475, 148, 531, + 420, 1234, -535, -535, -535, -535, -535, -535, 1347, -535, + 148, 426, -535, -535, -535, -535, 2956, 148, 148, -535, + 537, 436, 168, 168, 168, -535, 523, -535, -535, -535, + 1460, -535, 19, -535, 1573, -535, 2956, 440, 168, 168, + -535, 148, -535, -535, -535, 444, 41, -535, -535, 559, + 496, -535, -535, 454, 148, -535, -535, -535, 168, -535, + -535, -535, -535, -535, -535, 148, 168, 2076, -535, 1686, + 280, -535, 463, -535, -535, 148, -535 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -521,104 +522,104 @@ static const yytype_int16 yydefact[] = { 0, 2, 4, 6, 8, 10, 12, 14, 0, 21, 19, 0, 0, 0, 19, 134, 1, 19, 0, 19, - 0, 0, 0, 0, 0, 0, 0, 0, 266, 0, - 103, 103, 104, 279, 0, 0, 250, 277, 238, 272, - 274, 268, 103, 281, 260, 270, 0, 0, 263, 19, - 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, - 302, 303, 147, 280, 245, 229, 188, 200, 189, 207, - 230, 231, 232, 150, 235, 5, 251, 240, 243, 242, - 244, 241, 0, 0, 0, 21, 7, 78, 73, 105, + 0, 0, 0, 0, 0, 0, 0, 0, 267, 0, + 103, 103, 104, 280, 0, 0, 251, 278, 239, 273, + 275, 269, 103, 282, 261, 271, 0, 0, 264, 19, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, + 0, 303, 304, 147, 281, 246, 230, 189, 201, 190, + 208, 231, 232, 233, 150, 236, 5, 252, 241, 244, + 243, 245, 242, 0, 0, 0, 21, 7, 78, 73, + 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 102, 0, 16, 17, 36, 0, 102, 0, 19, + 9, 0, 79, 0, 0, 11, 33, 32, 28, 0, + 15, 19, 0, 332, 335, 334, 333, 319, 0, 320, + 214, 322, 215, 321, 325, 237, 0, 0, 284, 289, + 291, 290, 268, 229, 228, 19, 19, 19, 19, 0, + 0, 0, 0, 270, 0, 262, 0, 0, 19, 19, + 265, 266, 280, 301, 302, 158, 241, 0, 0, 323, + 0, 106, 107, 19, 263, 216, 217, 235, 221, 222, + 240, 0, 0, 0, 0, 0, 148, 0, 0, 0, + 204, 203, 0, 211, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 102, 0, 16, 17, 36, 0, 102, 0, 19, 9, - 0, 79, 0, 0, 11, 33, 32, 28, 0, 15, - 19, 0, 331, 334, 333, 332, 318, 0, 319, 213, - 321, 214, 320, 324, 236, 0, 0, 283, 288, 290, - 289, 267, 228, 227, 19, 19, 19, 19, 0, 0, - 0, 0, 269, 0, 261, 0, 0, 19, 19, 264, - 265, 279, 300, 301, 157, 240, 0, 322, 0, 106, - 107, 19, 262, 215, 216, 234, 220, 221, 239, 0, - 0, 0, 0, 0, 148, 0, 0, 0, 203, 202, - 0, 210, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, - 218, 219, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 19, 19, 0, 0, 19, 291, 293, 292, - 21, 21, 21, 0, 21, 21, 0, 21, 21, 23, - 0, 71, 46, 102, 72, 42, 102, 0, 88, 64, - 70, 0, 0, 0, 0, 0, 69, 35, 34, 29, - 115, 118, 117, 129, 115, 125, 124, 128, 130, 135, - 222, 0, 285, 0, 240, 243, 242, 287, 0, 114, - 282, 109, 108, 19, 112, 110, 21, 21, 155, 19, - 0, 0, 273, 160, 271, 275, 0, 0, 0, 0, - 151, 0, 254, 0, 237, 145, 146, 143, 144, 149, - 0, 0, 174, 0, 206, 212, 192, 181, 183, 185, - 199, 179, 180, 0, 195, 197, 196, 193, 194, 191, - 190, 211, 208, 205, 201, 204, 187, 186, 184, 198, - 182, 178, 0, 0, 0, 0, 328, 326, 330, 162, - 0, 0, 154, 163, 252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 100, 101, 0, 0, 19, 295, - 296, 297, 0, 0, 316, 0, 317, 314, 0, 315, - 311, 312, 313, 0, 0, 21, 0, 95, 19, 21, - 0, 38, 21, 40, 89, 80, 77, 81, 84, 83, - 97, 82, 116, 19, 19, 126, 239, 0, 284, 286, - 113, 21, 111, 19, 225, 226, 0, 19, 176, 19, - 276, 159, 158, 0, 223, 0, 0, 0, 167, 173, - 0, 258, 0, 0, 255, 257, 256, 259, 323, 171, - 0, 19, 253, 0, 165, 0, 246, 0, 247, 0, - 18, 21, 37, 21, 44, 0, 294, 298, 0, 98, - 0, 0, 0, 306, 21, 93, 94, 99, 0, 0, - 79, 58, 0, 0, 0, 96, 0, 19, 0, 19, - 137, 0, 43, 136, 19, 121, 120, 123, 119, 127, - 237, 224, 134, 131, 0, 132, 156, 0, 304, 0, - 161, 152, 177, 0, 170, 233, 0, 166, 172, 0, - 168, 248, 249, 164, 0, 65, 21, 45, 0, 0, - 0, 310, 0, 309, 0, 0, 0, 52, 0, 0, - 92, 92, 22, 25, 24, 62, 19, 19, 19, 21, - 122, 0, 141, 305, 278, 175, 169, 153, 0, 19, - 67, 299, 19, 19, 307, 0, 0, 0, 19, 95, - 0, 0, 0, 0, 0, 0, 0, 21, 0, 140, - 41, 139, 133, 19, 19, 0, 19, 0, 0, 85, - 48, 49, 308, 0, 0, 0, 61, 0, 0, 19, - 19, 19, 26, 90, 47, 39, 138, 0, 30, 0, - 66, 0, 86, 0, 0, 19, 19, 53, 0, 57, - 51, 50, 0, 0, 63, 142, 0, 19, 31, 68, - 0, 0, 55, 60, 92, 19, 27, 91, 20, 19, - 75, 74, 0, 19, 0, 59, 0, 19, 56, 0, - 76, 87, 0, 54 + 0, 218, 219, 220, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 19, 0, 0, 19, 292, + 294, 293, 21, 21, 21, 0, 21, 21, 0, 21, + 21, 23, 0, 71, 46, 102, 72, 42, 102, 0, + 88, 64, 70, 0, 0, 0, 0, 0, 69, 35, + 34, 29, 115, 118, 117, 129, 115, 125, 124, 128, + 130, 135, 223, 0, 286, 0, 241, 244, 243, 288, + 0, 114, 283, 109, 108, 19, 112, 110, 21, 21, + 156, 19, 0, 0, 274, 161, 272, 276, 0, 0, + 0, 0, 151, 152, 0, 255, 0, 238, 145, 146, + 143, 144, 149, 0, 0, 175, 0, 207, 213, 193, + 182, 184, 186, 200, 180, 181, 0, 196, 198, 197, + 194, 195, 192, 191, 212, 209, 206, 202, 205, 188, + 187, 185, 199, 183, 179, 0, 0, 0, 0, 329, + 327, 331, 163, 0, 0, 155, 164, 253, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 100, 101, 0, + 0, 19, 296, 297, 298, 0, 0, 317, 0, 318, + 315, 0, 316, 312, 313, 314, 0, 0, 21, 0, + 95, 19, 21, 0, 38, 21, 40, 89, 80, 77, + 81, 84, 83, 97, 82, 116, 19, 19, 126, 240, + 0, 285, 287, 113, 21, 111, 19, 226, 227, 0, + 19, 177, 19, 277, 160, 159, 0, 224, 0, 0, + 0, 168, 174, 0, 259, 0, 0, 256, 258, 257, + 260, 324, 172, 0, 19, 254, 0, 166, 0, 247, + 0, 248, 0, 18, 21, 37, 21, 44, 0, 295, + 299, 0, 98, 0, 0, 0, 307, 21, 93, 94, + 99, 0, 0, 79, 58, 0, 0, 0, 96, 0, + 19, 0, 19, 137, 0, 43, 136, 19, 121, 120, + 123, 119, 127, 238, 225, 134, 131, 0, 132, 157, + 0, 305, 0, 162, 153, 178, 0, 171, 234, 0, + 167, 173, 0, 169, 249, 250, 165, 0, 65, 21, + 45, 0, 0, 0, 311, 0, 310, 0, 0, 0, + 52, 0, 0, 92, 92, 22, 25, 24, 62, 19, + 19, 19, 21, 122, 0, 141, 306, 279, 176, 170, + 154, 0, 19, 67, 300, 19, 19, 308, 0, 0, + 0, 19, 95, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 140, 41, 139, 133, 19, 19, 0, 19, + 0, 0, 85, 48, 49, 309, 0, 0, 0, 61, + 0, 0, 19, 19, 19, 26, 90, 47, 39, 138, + 0, 30, 0, 66, 0, 86, 0, 0, 19, 19, + 53, 0, 57, 51, 50, 0, 0, 63, 142, 0, + 19, 31, 68, 0, 0, 55, 60, 92, 19, 27, + 91, 20, 19, 75, 74, 0, 19, 0, 59, 0, + 19, 56, 0, 76, 87, 0, 54 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -540, -540, -540, -540, -540, -540, -540, -540, -540, -540, - -4, -10, -540, -6, -70, -540, -540, -540, -540, -16, - -540, 544, 449, -2, -540, -540, -540, -540, -540, -540, - -540, -540, -540, -540, -540, -540, -32, -385, -539, -429, - -540, -508, -540, -5, 169, -361, -78, -540, -89, 46, - -540, -540, -11, 84, -133, 285, 323, -540, -540, 155, - -540, 164, -540, -540, -540, -540, 75, -540, 21, 159, - -540, -293, -540, 93, -38, -540, -540, -540, -540, -540, - -540, -540, -540, -540, -540, -540, -540, 555, -540, -540, - 466, -540, -540, -540, -540, -135, -17, -540, -540, -540, - -540, 210, -540, -540, 364, 67, -22, -21, -540, -540, - -540, -540, -540, 25 + -535, -535, -535, -535, -535, -535, -535, -535, -535, -535, + -4, -10, -535, 83, -77, -535, -535, -535, -535, -16, + -535, 569, 492, 26, -535, -535, -535, -535, -535, -535, + -535, -535, -535, -535, -535, -535, 150, -388, -534, -281, + -535, -531, -535, 16, 192, -367, -40, -535, -81, 45, + -535, -535, 43, 119, -142, 325, 337, -535, -535, 201, + -535, 196, -535, -535, -535, -535, 114, -535, 35, 200, + -535, -295, -535, 79, -6, -535, -535, -535, -535, -535, + -535, -535, -535, -535, -535, -535, -535, 632, -535, -535, + 485, -535, -535, -535, -535, -146, -2, -535, -535, -535, + -535, 228, -535, -535, 389, 95, -24, -3, -535, -535, + -535, -535, -535, 31 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - 0, 8, 9, 10, 11, 12, 13, 14, 15, 107, - 108, 117, 462, 423, 250, 398, 545, 574, 622, 118, - 609, 269, 115, 116, 489, 494, 402, 400, 569, 634, - 538, 575, 559, 586, 628, 641, 405, 110, 590, 259, - 624, 572, 477, 484, 409, 468, 479, 376, 252, 144, - 146, 233, 171, 293, 296, 290, 413, 274, 275, 497, - 276, 277, 278, 279, 504, 505, 119, 120, 492, 493, - 580, 424, 583, 111, 62, 63, 429, 362, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 149, 74, - 137, 236, 381, 112, 528, 164, 75, 509, 472, 531, - 532, 387, 388, 245, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 128 + 0, 8, 9, 10, 11, 12, 13, 14, 15, 108, + 109, 118, 465, 426, 252, 401, 548, 577, 625, 119, + 612, 271, 116, 117, 492, 497, 405, 403, 572, 637, + 541, 578, 562, 589, 631, 644, 408, 111, 593, 261, + 627, 575, 480, 487, 412, 471, 482, 379, 254, 145, + 147, 235, 173, 295, 298, 292, 416, 276, 277, 500, + 278, 279, 280, 281, 507, 508, 120, 121, 495, 496, + 583, 427, 586, 112, 63, 64, 432, 365, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 150, 75, + 138, 238, 384, 113, 531, 165, 76, 512, 475, 534, + 535, 390, 391, 247, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 129 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -626,853 +627,851 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 60, 121, 127, 17, 425, 139, 140, 86, 476, 60, - 109, 163, 298, 297, 124, 172, 124, 255, 124, 20, - 124, 124, 470, 22, 591, 142, 185, 24, 186, 251, - 124, 124, 478, 573, 168, 20, 312, 313, 626, 162, - 16, 60, 20, 126, 159, 124, 124, 130, 85, 132, - 133, 352, 353, 225, 354, 226, 242, 355, 463, 147, - 148, 356, -325, 436, -325, 357, 358, 526, 184, 464, - 238, 239, 627, 150, 166, 167, 507, 145, 527, 232, - 428, -327, 151, -327, 157, 125, 155, 125, 153, 125, - 253, 125, 125, 156, 138, 359, 256, 184, 258, 190, - 438, 125, 125, 61, 454, -287, 188, 189, 651, 163, - 273, 268, 61, 285, 286, 456, 165, 125, 193, 360, - 135, 539, 458, -288, 169, -329, 644, 158, 310, 170, - 136, -286, -290, 163, 292, 295, 295, 162, 224, 596, - 307, 308, 187, 243, 61, 231, 471, 60, 60, 303, - 240, -289, 179, 244, 124, 180, 181, 182, 183, 237, - 421, 162, 246, 225, 401, 226, 234, 403, 361, 235, - 619, 620, 621, 566, 567, 180, 181, 182, 183, 180, - 181, 182, 183, 309, 191, 192, 632, 633, 182, 183, - 180, 181, 182, 183, 512, 587, 588, 180, 181, 182, - 183, -325, 284, -325, -333, 223, 645, 261, 241, 598, - 262, 263, 264, 265, 648, 247, 373, 437, 248, 249, - 517, 391, 392, 375, 254, 165, 380, 555, 257, 288, - 407, 408, 614, 411, 382, 383, 385, 260, 393, 394, - 266, 396, 397, 301, 453, 465, -327, 280, -327, 306, - 61, 61, 630, 404, 289, 227, 581, 228, 455, 476, - 291, 300, 427, 457, 180, 181, 182, 183, 459, 180, - 181, 182, 183, 315, 316, 317, 318, 516, 320, 321, - 323, 294, 426, 295, 180, 181, 182, 183, 299, 60, - 363, 229, 302, 230, 510, 180, 181, 182, 183, 311, - 304, -98, 180, 181, 182, 183, 180, 181, 182, 183, - 390, 180, 181, 182, 183, 313, 374, 365, 366, 367, - 368, 369, 370, 371, 372, 180, 181, 182, 183, 85, - 180, 181, 182, 183, 20, 180, 181, 182, 183, 377, - 378, 379, 384, 444, 180, 181, 182, 183, 395, 399, - 412, 124, 415, 420, 406, 406, 406, 410, 406, 20, - 422, 549, 434, 22, 431, 85, 432, 24, 295, 436, - 20, 122, 391, 392, 417, 451, 123, -333, -333, -333, - 222, 223, 486, 475, 180, 181, 182, 183, 441, 482, - 195, 163, 61, 487, 445, 446, 491, 447, 180, 181, - 182, 183, 433, 496, 496, 448, 435, 122, 461, 466, - 467, 576, 123, 503, 577, 491, 474, 508, 488, 162, - 490, 314, 125, 261, 195, 495, 262, 263, 264, 265, - 502, 506, 529, 218, 519, 419, 219, 220, 221, 222, - 223, 60, 514, 520, 521, 270, 442, 443, 522, 271, - 195, 196, 473, 272, 450, 524, 523, 525, 530, 562, - 563, 390, 217, 20, 537, 534, 568, 218, 535, 543, - 219, 220, 221, 222, 223, 469, 469, 544, 536, 292, - 180, 181, 182, 183, 295, 540, 480, 216, 217, 410, - 485, 546, 541, 218, 548, 552, 219, 220, 221, 222, - 223, 599, 600, 601, 554, 603, 556, 557, 163, 180, - 181, 182, 183, 180, 181, 182, 183, 612, 565, 558, - 560, 18, 564, 570, 615, 616, 571, 20, 579, 513, - 582, 22, 578, 584, 593, 24, 162, 295, 533, 594, - 595, 386, 604, 585, 61, 613, 430, 617, 635, 618, - 439, 623, 589, 589, 631, 638, 639, 114, 258, 636, - 642, 643, 267, 652, 597, 483, 649, 607, 418, 498, - 611, 491, 647, 547, 608, 469, 129, 551, 131, 499, - 501, 134, 653, 141, 143, 180, 181, 182, 183, 258, - 258, 258, 180, 181, 182, 183, 152, 414, 605, 154, - 553, 283, 0, 160, 481, 258, 258, 389, 0, 173, - 174, 175, 176, 177, 0, 0, 0, 640, 0, 637, - 0, 0, 452, 646, 0, 258, 0, 469, 469, 500, - 0, 592, 0, 258, 475, 0, 0, 589, 194, 0, - 0, 602, 0, 0, 0, 195, 196, 197, 180, 181, - 182, 183, 180, 181, 182, 183, 0, 0, 198, 0, - 0, 0, 485, 469, 199, 200, 201, 440, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 0, 511, 469, 0, 218, 518, - 282, 219, 220, 221, 222, 223, 1, 2, 3, 4, - 5, 6, 7, 0, 0, 0, 469, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, - 0, 0, 0, 0, 0, 324, 0, 0, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, -13, 87, 0, 351, 0, 0, - 0, 0, 0, 0, 18, 85, 0, 19, 0, 0, - 20, 0, 0, 21, 22, 23, 88, 0, 24, 25, - 89, 90, 91, 26, 27, 92, 93, 0, 0, 94, - 95, 96, 97, 0, 98, 0, 0, 99, 28, 29, - 100, 101, 102, 30, 31, 103, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 104, - 113, 44, 0, 105, 45, 46, 47, 48, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, - 106, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 61, 122, 300, 140, 428, 299, 152, 87, 479, 61, + 187, 20, 188, 576, 125, 440, 125, 128, 125, 473, + 125, 125, 20, 253, 141, 143, 257, 315, 16, 481, + 125, 125, 594, 227, 316, 228, 244, 151, 110, 163, + 439, 629, 61, 164, 160, 125, 168, 125, 174, 127, + 170, 158, 86, 131, 171, 133, 134, 355, 356, 172, + 357, 156, 466, 358, 157, 148, 149, 359, 529, 240, + 20, 360, 361, 467, 22, 630, 146, 186, 24, 530, + 167, 192, 169, 182, 183, 184, 185, 154, 186, 62, + 241, 227, 17, 228, 159, -326, 510, -326, 62, 260, + 226, 362, 431, -288, -289, 86, 647, 441, 195, -287, + 20, 275, 287, 126, -330, 126, 654, 126, 542, 126, + 126, 233, 139, 474, 245, 457, 363, 189, 236, 126, + 126, 62, 459, 288, 246, 294, 297, 297, 163, 181, + 270, -328, 164, -328, 166, 255, 126, 123, 61, 61, + 305, 258, 124, 424, 237, 125, 309, 310, -326, 251, + -326, 312, 313, 163, 456, 242, -291, 164, 461, 234, + 569, 570, 136, 256, 404, 364, 243, 406, 182, 183, + 184, 185, 137, 182, 183, 184, 185, -328, 239, -328, + 311, 248, 263, 515, 249, 264, 265, 266, 267, 520, + 250, 182, 183, 184, 185, 558, 601, 259, 182, 183, + 184, 185, -290, 190, 191, 20, 290, 262, 376, 22, + 229, 394, 230, 24, 458, 378, 193, 194, 383, 617, + 303, 286, 182, 183, 184, 185, 308, 62, 62, 468, + 268, 231, 395, 232, 182, 183, 184, 185, 460, 633, + 182, 183, 184, 185, 166, 407, 282, 584, 302, 479, + 293, 318, 319, 320, 321, 291, 323, 324, 326, 182, + 183, 184, 185, 184, 185, 182, 183, 184, 185, 462, + 296, 182, 183, 184, 185, 297, 513, -98, -334, 225, + 599, 61, 182, 183, 184, 185, 430, 301, 519, 429, + -334, -334, -334, 224, 225, 368, 369, 370, 371, 372, + 373, 374, 375, 590, 591, 304, 182, 183, 184, 185, + 366, 622, 623, 624, 306, 385, 386, 388, 314, 396, + 397, 316, 399, 400, 377, 380, 381, 635, 636, 387, + 393, 382, 409, 409, 409, 413, 409, 182, 183, 184, + 185, 398, 272, 402, 125, 552, 273, 648, 415, 418, + 274, 423, 420, 425, 434, 651, 182, 183, 184, 185, + 435, 297, 263, 394, 437, 264, 265, 266, 267, 439, + 62, 182, 183, 184, 185, 489, 478, 464, 444, 448, + 436, 197, 198, 199, 395, 438, 1, 2, 3, 4, + 5, 6, 7, 579, 449, 450, 499, 499, 580, 451, + 469, 197, 198, 199, 410, 411, 506, 414, 317, 470, + 511, 454, 163, 197, 477, 491, 164, 217, 218, 219, + 182, 183, 184, 185, 220, 445, 446, 221, 222, 223, + 224, 225, 493, 453, 61, 215, 216, 217, 218, 219, + 498, 505, 522, 126, 220, 565, 566, 221, 222, 223, + 224, 225, 571, 86, 472, 472, 220, 517, 20, 221, + 222, 223, 224, 225, 523, 483, 197, 447, 413, 488, + 547, 485, 294, 476, 509, 490, 524, 297, 494, 525, + 526, 20, 393, 182, 183, 184, 185, 602, 603, 604, + 532, 606, 533, 540, 537, 123, 546, 494, 539, 543, + 124, 549, 544, 615, 219, 551, 555, 557, 516, 220, + 618, 619, 221, 222, 223, 224, 225, 559, 560, 561, + 422, 567, 568, 62, 573, 581, 574, 197, 198, 163, + 297, 585, 582, 164, 638, 596, 588, 527, 587, 528, + 597, 598, 18, 607, 616, 592, 592, 646, 20, 620, + 538, 260, 22, 621, 472, 626, 24, 634, 650, 536, + 610, 639, 389, 614, 218, 219, 641, 611, 656, 642, + 220, 645, 115, 221, 222, 223, 224, 225, 600, 556, + 655, 486, 260, 260, 260, 197, 198, 199, 182, 183, + 184, 185, 182, 183, 184, 185, 269, 652, 260, 260, + 421, 550, 563, 417, 502, 608, 472, 472, 501, 554, + 643, 285, 640, 0, 504, 484, 649, 0, 260, -334, + 216, 217, 218, 219, 392, 433, 260, 478, 220, 442, + 592, 221, 222, 223, 224, 225, 182, 183, 184, 185, + 0, 488, 472, 130, 0, 132, 0, 0, 135, 0, + 142, 144, 595, 494, 182, 183, 184, 185, 0, 0, + 0, 0, 605, 153, 0, 472, 155, 0, 0, 0, + 161, 0, 0, -13, 88, 0, 0, 175, 176, 177, + 178, 179, 0, 18, 86, 472, 19, 0, 0, 20, + 0, 455, 21, 22, 23, 89, 0, 24, 25, 90, + 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, + 97, 98, 0, 99, 0, 0, 100, 28, 29, 101, + 102, 103, 30, 31, 104, 32, 33, 34, 35, 36, + 37, 0, 38, 39, 40, 41, 42, 43, 105, 114, + 44, 0, 106, 45, 46, 47, 48, 49, 50, 0, + 0, 0, 51, 52, 53, 0, 0, 0, 284, 0, + 107, 182, 183, 184, 185, 0, 0, 54, 182, 183, + 184, 185, 182, 183, 184, 185, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, + 0, 57, 0, 58, 59, 0, 0, 0, 503, 0, + 0, 60, 0, 0, 0, 514, 0, 0, 322, 521, + 0, 0, 0, 0, 327, 0, 0, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, -3, 88, 0, 354, 0, 0, 0, + 0, 0, 0, 18, 86, 0, 19, 0, 0, 20, + 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, + 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, + 97, 98, 0, 99, 0, 0, 100, 28, 29, 101, + 102, 103, 30, 31, 104, 32, 33, 34, 35, 36, + 37, 0, 38, 39, 40, 41, 42, 43, 105, 114, + 44, 0, 106, 45, 46, 47, 48, 49, 50, 0, + 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, + 107, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -3, 87, 54, 55, - 0, 56, 0, 57, 58, 0, 18, 85, 0, 19, - 0, 59, 20, 0, 0, 21, 22, 23, 88, 0, - 24, 25, 89, 90, 91, 26, 27, 92, 93, 0, - 0, 94, 95, 96, 97, 0, 98, 0, 0, 99, - 28, 29, 100, 101, 102, 30, 31, 103, 32, 33, + 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, + 0, 57, 0, 58, 59, 0, 18, 86, 463, 19, + 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, + 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, + 0, 95, 96, 97, 98, 0, 99, 0, 0, 100, + 28, 29, 101, 102, 103, 30, 31, 104, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, - 43, 104, 113, 44, 0, 105, 45, 46, 47, 48, - 49, 0, 0, 0, 50, 51, 52, 0, 0, 0, - 0, 0, 106, 0, 0, 0, 0, 0, 0, 53, + 43, 105, 114, 44, 0, 106, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 196, + 0, 0, 0, 0, 0, 518, 0, 197, 198, 199, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 200, 0, 0, 0, 60, 0, 201, 202, 203, 443, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 0, 0, 0, 0, + 220, 0, 88, 221, 222, 223, 224, 225, 0, 0, + 553, 18, 86, 545, 19, 0, 0, 20, 0, 0, + 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, + 26, 27, 93, 94, 0, 0, 95, 96, 97, 98, + 0, 99, 0, 564, 100, 28, 29, 101, 102, 103, + 30, 31, 104, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 105, 114, 44, 0, + 106, 45, 46, 47, 48, 49, 50, 0, 0, 0, + 51, 52, 53, 0, 0, 0, 0, 0, 107, 0, + 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 515, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 58, 0, 0, 87, - 0, 0, 0, 59, 0, 0, 0, 0, 18, 85, - 460, 19, 0, 0, 20, 0, 0, 21, 22, 23, - 88, 0, 24, 25, 89, 90, 91, 26, 27, 92, - 93, 0, 0, 94, 95, 96, 97, 0, 98, 0, - 550, 99, 28, 29, 100, 101, 102, 30, 31, 103, - 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 104, 113, 44, 0, 105, 45, 46, - 47, 48, 49, 561, 0, 0, 50, 51, 52, 0, - 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 55, 56, 0, 57, + 0, 58, 59, 0, 18, 86, 609, 19, 0, 60, + 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, + 90, 91, 92, 26, 27, 93, 94, 0, 0, 95, + 96, 97, 98, 0, 99, 0, 0, 100, 28, 29, + 101, 102, 103, 30, 31, 104, 32, 33, 34, 35, + 36, 37, 0, 38, 39, 40, 41, 42, 43, 105, + 114, 44, 0, 106, 45, 46, 47, 48, 49, 50, + 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, + 0, 107, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 87, 54, 55, 0, 56, 0, 57, 58, 0, - 18, 85, 542, 19, 0, 59, 20, 0, 0, 21, - 22, 23, 88, 0, 24, 25, 89, 90, 91, 26, - 27, 92, 93, 0, 0, 94, 95, 96, 97, 0, - 98, 0, 0, 99, 28, 29, 100, 101, 102, 30, - 31, 103, 32, 33, 34, 35, 36, 37, 0, 38, - 39, 40, 41, 42, 43, 104, 113, 44, 0, 105, - 45, 46, 47, 48, 49, 0, 0, 0, 50, 51, - 52, 0, 0, 0, 0, 0, 106, 0, 0, 0, - 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, + 56, 0, 57, 0, 58, 59, 0, 18, 86, 613, + 19, 0, 60, 20, 0, 0, 21, 22, 23, 89, + 0, 24, 25, 90, 91, 92, 26, 27, 93, 94, + 0, 0, 95, 96, 97, 98, 0, 99, 0, 0, + 100, 28, 29, 101, 102, 103, 30, 31, 104, 32, + 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, + 42, 43, 105, 114, 44, 0, 106, 45, 46, 47, + 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, + 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, + 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 87, 54, 55, 0, 56, 0, 57, - 58, 0, 18, 85, 606, 19, 0, 59, 20, 0, - 0, 21, 22, 23, 88, 0, 24, 25, 89, 90, - 91, 26, 27, 92, 93, 0, 0, 94, 95, 96, - 97, 0, 98, 0, 0, 99, 28, 29, 100, 101, - 102, 30, 31, 103, 32, 33, 34, 35, 36, 37, - 0, 38, 39, 40, 41, 42, 43, 104, 113, 44, - 0, 105, 45, 46, 47, 48, 49, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 0, 106, 0, - 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, + 0, 88, 55, 56, 0, 57, 0, 58, 59, 0, + 18, 86, 628, 19, 0, 60, 20, 0, 0, 21, + 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, + 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, + 99, 0, 0, 100, 28, 29, 101, 102, 103, 30, + 31, 104, 32, 33, 34, 35, 36, 37, 0, 38, + 39, 40, 41, 42, 43, 105, 114, 44, 0, 106, + 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, + 52, 53, 0, 0, 0, 0, 0, 107, 0, 0, + 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 87, 54, 55, 0, 56, - 0, 57, 58, 0, 18, 85, 610, 19, 0, 59, - 20, 0, 0, 21, 22, 23, 88, 0, 24, 25, - 89, 90, 91, 26, 27, 92, 93, 0, 0, 94, - 95, 96, 97, 0, 98, 0, 0, 99, 28, 29, - 100, 101, 102, 30, 31, 103, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 104, - 113, 44, 0, 105, 45, 46, 47, 48, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, - 106, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 88, 55, 56, 0, 57, 0, + 58, 59, 0, 18, 86, 632, 19, 0, 60, 20, + 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, + 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, + 97, 98, 0, 99, 0, 0, 100, 28, 29, 101, + 102, 103, 30, 31, 104, 32, 33, 34, 35, 36, + 37, 0, 38, 39, 40, 41, 42, 43, 105, 114, + 44, 0, 106, 45, 46, 47, 48, 49, 50, 0, + 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, + 107, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 87, 54, 55, - 0, 56, 0, 57, 58, 0, 18, 85, 625, 19, - 0, 59, 20, 0, 0, 21, 22, 23, 88, 0, - 24, 25, 89, 90, 91, 26, 27, 92, 93, 0, - 0, 94, 95, 96, 97, 0, 98, 0, 0, 99, - 28, 29, 100, 101, 102, 30, 31, 103, 32, 33, + 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, + 0, 57, 0, 58, 59, 0, 18, 86, 0, 19, + 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, + 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, + 0, 95, 96, 97, 98, 0, 99, 0, 0, 100, + 28, 29, 101, 102, 103, 30, 31, 104, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, - 43, 104, 113, 44, 0, 105, 45, 46, 47, 48, - 49, 0, 0, 0, 50, 51, 52, 0, 0, 0, - 0, 0, 106, 0, 0, 0, 0, 0, 0, 53, + 43, 105, 114, 44, 0, 106, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 653, 0, 0, 107, 0, 0, 0, 0, 0, 0, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, - 54, 55, 0, 56, 0, 57, 58, 0, 18, 85, - 629, 19, 0, 59, 20, 0, 0, 21, 22, 23, - 88, 0, 24, 25, 89, 90, 91, 26, 27, 92, - 93, 0, 0, 94, 95, 96, 97, 0, 98, 0, - 0, 99, 28, 29, 100, 101, 102, 30, 31, 103, - 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 104, 113, 44, 0, 105, 45, 46, - 47, 48, 49, 0, 0, 0, 50, 51, 52, 0, - 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 55, 56, 0, 57, 0, 58, 59, 0, 18, + 86, 0, 19, 0, 60, 20, 0, 0, 21, 22, + 23, 89, 0, 24, 25, 90, 91, 92, 26, 27, + 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, + 0, 0, 100, 28, 29, 101, 102, 103, 30, 31, + 104, 32, 33, 34, 35, 36, 37, 0, 38, 39, + 40, 41, 42, 43, 105, 114, 44, 0, 106, 45, + 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, + 53, 0, 0, 0, 0, 0, 107, 0, 0, 0, + 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 87, 54, 55, 0, 56, 0, 57, 58, 0, - 18, 85, 0, 19, 0, 59, 20, 0, 0, 21, - 22, 23, 88, 0, 24, 25, 89, 90, 91, 26, - 27, 92, 93, 0, 0, 94, 95, 96, 97, 0, - 98, 0, 0, 99, 28, 29, 100, 101, 102, 30, - 31, 103, 32, 33, 34, 35, 36, 37, 0, 38, - 39, 40, 41, 42, 43, 104, 113, 44, 0, 105, - 45, 46, 47, 48, 49, 0, 0, 0, 50, 51, - 52, 0, 0, 650, 0, 0, 106, 0, 0, 0, - 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 87, 54, 55, 0, 56, 0, 57, - 58, 0, 18, 85, 0, 19, 0, 59, 20, 0, - 0, 21, 22, 23, 88, 0, 24, 25, 89, 90, - 91, 26, 27, 92, 93, 0, 0, 94, 95, 96, - 97, 0, 98, 0, 0, 99, 28, 29, 100, 101, - 102, 30, 31, 103, 32, 33, 34, 35, 36, 37, - 0, 38, 39, 40, 41, 42, 43, 104, 113, 44, - 0, 105, 45, 46, 47, 48, 49, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 0, 106, 0, - 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 87, 54, 55, 0, 56, - 0, 57, 58, 0, 18, 85, 0, 19, 0, 59, - 20, 0, 0, 21, 22, 23, 88, 0, 24, 25, - 89, 90, 91, 26, 27, 92, 93, 0, 0, 94, - 95, 96, 97, 0, 98, 0, 0, 99, 28, 29, - 100, 101, 102, 30, 31, 103, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 104, - 0, 44, 0, 105, 45, 46, 47, 48, 49, 0, - 0, 0, 50, 51, 52, 0, 87, 0, 0, 0, - 106, 0, 0, 0, 0, 18, 0, 53, 19, 0, - 0, 20, 0, 0, 21, 22, 23, -19, 0, 24, - 25, 0, 0, 0, 26, 27, 0, 0, 54, 55, - 0, 56, 0, 57, 58, 0, 0, 0, 0, 28, - 29, 59, 0, 0, 30, 31, 0, 32, 33, 34, - 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, - 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, - 0, 0, 0, 50, 51, 52, 0, 87, 0, 0, - 0, 0, 0, 0, 0, 0, 18, 0, 53, 19, + 0, 0, 0, 88, 55, 56, 0, 57, 0, 58, + 59, 0, 18, 86, 0, 19, 0, 60, 20, 0, + 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, + 92, 26, 27, 93, 94, 0, 0, 95, 96, 97, + 98, 0, 99, 0, 0, 100, 28, 29, 101, 102, + 103, 30, 31, 104, 32, 33, 34, 35, 36, 37, + 0, 38, 39, 40, 41, 42, 43, 105, 0, 44, + 0, 106, 45, 46, 47, 48, 49, 50, 0, 0, + 0, 51, 52, 53, 0, 88, 0, 0, 0, 107, + 0, 0, 0, 0, 18, 0, 54, 19, 0, 0, + 20, 0, 0, 21, 22, 23, -19, 0, 24, 25, + 0, 0, 0, 26, 27, 0, 0, 55, 56, 0, + 57, 0, 58, 59, 0, 0, 0, 0, 28, 29, + 60, 0, 0, 30, 31, 0, 32, 33, 34, 35, + 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, + 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, + 0, 0, 0, 51, 52, 53, 0, 88, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 54, 19, 0, 0, 20, 0, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 54, - 55, 0, 56, 0, 57, 58, 0, 0, 0, 0, - 28, 29, 59, 0, 0, 30, 31, 0, 32, 33, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 55, + 56, 0, 57, 0, 58, 59, 0, 0, 0, 0, + 28, 29, 60, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, - 49, 0, 0, 0, 50, 51, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 18, 85, 0, 19, 53, - 0, 20, 0, 0, 21, 22, 23, 0, 0, 24, - 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 58, 0, 0, 28, - 29, 0, -19, 59, 30, 31, 0, 32, 161, 34, - 35, 36, 37, 123, 38, 39, 40, 41, 42, 43, - 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, - 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 85, 0, 19, 53, 0, - 20, 0, 0, 21, 22, 23, 0, 0, 24, 25, - 0, 0, 0, 26, 27, 0, 0, 0, 0, 54, - 55, 0, 56, 0, 57, 58, 0, 0, 28, 29, - 0, 0, 59, 30, 31, 0, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, - 0, 44, 0, 0, 45, 46, 47, 48, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 18, 0, 0, 19, 53, 0, 20, - 0, 0, 21, 22, 23, 0, 0, 24, 25, 0, - 0, 0, 26, 27, 0, 0, 0, 0, 54, 55, - 0, 56, 0, 57, 58, 0, 0, 28, 29, 0, - 0, 59, 30, 31, 0, 32, 33, 34, 35, 36, - 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, - 44, 0, 0, 45, 46, 47, 48, 49, 0, 0, - 0, 50, 51, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 18, 0, 0, 19, 53, 0, 20, 0, - 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, - 0, 26, 27, 0, 0, 0, 0, 54, 55, 0, - 56, 0, 57, 58, 0, 0, 28, 29, 0, 178, - 59, 30, 31, 0, 32, 33, 34, 35, 36, 37, - 0, 38, 39, 40, 41, 42, 43, 0, 0, 44, - 0, 0, 45, 46, 47, 48, 49, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 18, 0, 0, 19, 53, 0, 20, 0, 0, - 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, - 26, 27, 0, 0, 0, 0, 54, 55, 0, 56, - 0, 57, 58, 0, 0, 28, 29, 0, 287, 59, - 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, - 38, 39, 40, 41, 42, 43, 0, 0, 44, 0, - 0, 45, 46, 47, 48, 49, 0, 0, 0, 50, - 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, - -332, 225, 0, 226, 53, 0, -332, 0, 0, -332, - -332, -332, 0, 0, -332, -332, 0, 0, 0, -332, - -332, 0, 0, 0, 0, 54, 55, 0, 56, 0, - 57, 58, 0, 0, -332, -332, 0, 305, 59, -332, - -332, 0, -332, -332, -332, -332, -332, -332, 0, -332, - -332, -332, -332, -332, -332, 0, 0, -332, 0, 0, - -332, -332, -332, -332, -332, 0, 0, 0, -332, -332, - -332, 0, 0, 0, 0, 0, 0, 0, 0, 18, - 0, 0, 19, -332, 0, 20, 0, 0, 21, 22, - 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, - 0, 0, 0, 0, -332, -332, 0, -332, 0, -332, - -332, 0, 0, 28, 29, 0, 0, -332, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 0, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, - 0, 19, 53, 0, 20, 0, 0, 21, 22, 23, - 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, - 0, 0, 0, 54, 55, 0, 56, 0, 57, 58, - 0, 0, 28, 29, 0, 322, 59, 30, 31, 0, - 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 0, 0, 44, 0, 0, 45, 46, - 47, 48, 49, 0, 0, 0, 50, 51, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, - 19, 53, 0, 20, 0, 0, 21, 22, 23, 0, - 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, - 0, 0, 54, 55, 0, 56, 0, 57, 58, 0, - 0, 28, 29, 0, 364, 59, 30, 31, 0, 32, - 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, - 42, 43, 0, 0, 44, 0, 0, 45, 46, 47, - 48, 49, 0, 0, 0, 50, 51, 52, 0, 0, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 86, 0, 19, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, -19, 60, 30, 31, 0, 32, 162, + 34, 35, 36, 37, 124, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 86, 0, 19, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 0, 60, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 53, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 54, 55, 0, 56, 0, 57, 58, 0, 0, - 28, 29, 0, 416, 59, 30, 31, 0, 32, 33, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 0, 60, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, - 49, 0, 0, 0, 50, 51, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 18, 0, 0, 19, 53, - 0, 20, 0, 0, 21, 22, 23, 0, 0, 24, - 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 58, 0, 0, 28, - 29, 0, 449, 59, 30, 31, 0, 32, 33, 34, - 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, - 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, - 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 0, 0, 19, 53, 0, - 20, 0, 0, 21, 22, 23, 0, 0, 24, 25, - 0, 0, 0, 26, 27, 0, 0, 0, 0, 54, - 55, 0, 56, 0, 57, 58, 0, 0, 28, 29, - 0, 0, 59, 30, 31, 0, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 0, - 0, 44, 0, 0, 45, 46, 47, 48, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, - 0, 0, 0, -331, 0, 0, -331, 53, 0, -331, - 0, 0, -331, -331, -331, 0, 0, -331, -331, 0, - 0, 0, -331, -331, 0, 0, 0, 0, 54, 55, - 0, 56, 0, 57, 58, 0, 0, -331, -331, 0, - 0, 281, -331, -331, 0, -331, -331, -331, -331, -331, - -331, 0, -331, -331, -331, -331, -331, -331, 0, 0, - -331, 0, 0, -331, -331, -331, -331, -331, 0, 0, - 0, -331, -331, -331, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -331, 0, 0, 0, - 0, 194, 0, 0, 0, 0, 0, 0, 195, 196, - 197, 0, 0, 0, 0, 0, 0, -331, -331, 0, - -331, 198, -331, -331, 0, 0, 0, 199, 200, 201, - -331, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 0, 0, 0, - 0, 218, 194, 0, 219, 220, 221, 222, 223, 195, - 196, 197, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -333, 0, 0, 0, 0, 0, 199, 200, - 201, 0, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 0, 0, - 0, 0, 218, 194, 0, 219, 220, 221, 222, 223, - 195, 196, 197, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, - 200, 201, 0, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 0, - 0, 0, 0, 218, 194, 0, 219, 220, 221, 222, - 223, 195, 196, 197, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 196, 197, 201, 0, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 0, 0, 0, 0, 218, -333, 0, 219, 220, 221, - 222, 223, 195, 196, 197, 215, 216, 217, 0, 0, - 0, 0, 218, 0, 0, 219, 220, 221, 222, 223, - 0, 0, 0, 0, 0, 202, 203, 204, 205, 206, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 180, 60, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 289, 60, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, -333, 227, 0, 228, + 54, 0, -333, 0, 0, -333, -333, -333, 0, 0, + -333, -333, 0, 0, 0, -333, -333, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + -333, -333, 0, 307, 60, -333, -333, 0, -333, -333, + -333, -333, -333, -333, 0, -333, -333, -333, -333, -333, + -333, 0, 0, -333, 0, 0, -333, -333, -333, -333, + -333, -333, 0, 0, 0, -333, -333, -333, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, + -333, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, -333, -333, 0, -333, 0, -333, -333, 0, 0, + 28, 29, 0, 0, -333, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 325, 60, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 367, 60, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 419, 60, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 452, 60, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, + 54, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 0, 60, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 0, 0, 0, -332, 0, 0, -332, + 54, 0, -332, 0, 0, -332, -332, -332, 0, 0, + -332, -332, 0, 0, 0, -332, -332, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + -332, -332, 0, 0, 283, -332, -332, 0, -332, -332, + -332, -332, -332, -332, 0, -332, -332, -332, -332, -332, + -332, 0, 0, -332, 0, 0, -332, -332, -332, -332, + -332, -332, 0, 0, 0, -332, -332, -332, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -332, 0, 0, 0, 196, 0, 0, 0, 0, 0, + 0, 0, 197, 198, 199, 0, 0, 0, 0, 0, + 0, -332, -332, 0, -332, 200, -332, -332, 0, 0, + 0, 201, 202, 203, -332, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 0, 0, 0, 0, 220, 196, 0, 221, 222, + 223, 224, 225, 0, 197, 198, 199, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -334, 0, 0, + 0, 0, 0, 201, 202, 203, 0, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 195, 196, 197, 0, 218, 0, 0, 219, 220, - 221, 222, 223, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 0, 0, 0, 0, 218, 0, 0, 219, 220, 221, - 222, 223, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 195, 196, 197, 0, 218, 0, 0, - 219, 220, 221, 222, 223, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 0, 195, 196, 197, 218, 0, 0, 219, - 220, 221, 222, 223, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 195, 196, 197, 0, 218, 0, 0, - 219, 220, 221, 222, 223, 211, 212, 213, 214, 215, - 216, 217, 195, 196, 197, 0, 218, 0, 0, 219, - 220, 221, 222, 223, 0, 0, 0, 213, 214, 215, - 216, 217, 195, 196, 197, 0, 218, 0, 0, 219, - 220, 221, 222, 223, 0, 0, -333, 214, 215, 216, - 217, 0, 0, 0, 0, 218, 0, 0, 219, 220, - 221, 222, 223, 0, 0, 0, 0, 214, 215, 216, - 217, 0, 0, 0, 0, 218, 0, 0, 219, 220, - 221, 222, 223 + 217, 218, 219, 0, 0, 0, 0, 220, 196, 0, + 221, 222, 223, 224, 225, 0, 197, 198, 199, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 201, 202, 203, 0, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 0, 0, 0, 0, 220, + 196, 0, 221, 222, 223, 224, 225, 0, 197, 198, + 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, + 0, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 0, 0, 0, + 0, 220, -334, 0, 221, 222, 223, 224, 225, 0, + 197, 198, 199, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 197, + 198, 199, 0, 220, 0, 0, 221, 222, 223, 224, + 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 197, 198, 199, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 0, 0, + 0, 0, 220, 0, 0, 221, 222, 223, 224, 225, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 197, 198, 199, 0, 220, 0, 0, 221, 222, + 223, 224, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 197, 198, 199, 0, 0, 0, 0, 0, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 0, 197, 198, 199, 220, 0, 0, 221, 222, 223, + 224, 225, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 197, 198, 199, 0, 220, 0, 0, 221, 222, + 223, 224, 225, 213, 214, 215, 216, 217, 218, 219, + 0, 0, 0, 0, 220, 0, 0, 221, 222, 223, + 224, 225, 0, 0, 0, 0, 216, 217, 218, 219, + 0, 0, 0, 0, 220, 0, 0, 221, 222, 223, + 224, 225 }; static const yytype_int16 yycheck[] = { - 10, 17, 19, 9, 297, 27, 27, 11, 393, 19, - 12, 49, 147, 146, 18, 53, 20, 106, 22, 16, - 24, 25, 383, 20, 563, 29, 11, 24, 13, 99, - 34, 35, 393, 541, 51, 16, 171, 13, 22, 49, - 0, 51, 16, 18, 48, 49, 50, 22, 11, 24, - 25, 10, 11, 11, 13, 13, 30, 16, 11, 34, - 35, 20, 11, 13, 13, 24, 25, 11, 15, 22, - 92, 92, 56, 13, 49, 50, 23, 31, 22, 85, - 14, 11, 127, 13, 84, 18, 127, 20, 42, 22, - 101, 24, 25, 127, 27, 54, 107, 15, 108, 107, - 14, 34, 35, 10, 14, 81, 107, 108, 647, 147, - 120, 113, 19, 135, 135, 14, 49, 50, 105, 78, - 117, 482, 14, 81, 53, 11, 634, 127, 166, 58, - 127, 81, 81, 171, 144, 145, 146, 147, 127, 568, - 157, 158, 127, 117, 51, 11, 127, 157, 158, 153, - 127, 81, 59, 127, 158, 89, 90, 91, 92, 92, - 293, 171, 95, 11, 253, 13, 53, 256, 127, 53, - 599, 600, 601, 534, 535, 89, 90, 91, 92, 89, - 90, 91, 92, 158, 105, 106, 615, 616, 91, 92, - 89, 90, 91, 92, 14, 33, 34, 89, 90, 91, - 92, 11, 135, 13, 124, 125, 635, 32, 127, 570, - 35, 36, 37, 38, 643, 127, 232, 22, 127, 11, - 14, 243, 243, 233, 22, 158, 236, 14, 39, 136, - 262, 263, 593, 265, 240, 241, 242, 22, 244, 245, - 22, 247, 248, 150, 22, 378, 11, 14, 13, 156, - 157, 158, 613, 257, 81, 11, 549, 13, 22, 644, - 56, 84, 300, 22, 89, 90, 91, 92, 22, 89, - 90, 91, 92, 180, 181, 182, 183, 22, 185, 186, - 187, 81, 299, 293, 89, 90, 91, 92, 127, 299, - 223, 11, 126, 13, 429, 89, 90, 91, 92, 22, - 126, 126, 89, 90, 91, 92, 89, 90, 91, 92, - 243, 89, 90, 91, 92, 13, 53, 224, 225, 226, - 227, 228, 229, 230, 231, 89, 90, 91, 92, 11, - 89, 90, 91, 92, 16, 89, 90, 91, 92, 53, - 53, 81, 117, 25, 89, 90, 91, 92, 127, 41, - 58, 355, 15, 56, 261, 262, 263, 264, 265, 16, - 56, 494, 12, 20, 85, 11, 126, 24, 378, 13, - 16, 53, 394, 394, 281, 127, 58, 121, 122, 123, - 124, 125, 398, 393, 89, 90, 91, 92, 25, 395, - 75, 429, 299, 399, 25, 25, 402, 25, 89, 90, - 91, 92, 309, 413, 414, 25, 313, 53, 18, 56, - 94, 546, 58, 423, 547, 421, 127, 427, 53, 429, - 22, 126, 355, 32, 75, 94, 35, 36, 37, 38, - 127, 126, 126, 118, 451, 126, 121, 122, 123, 124, - 125, 451, 12, 12, 12, 16, 353, 354, 12, 20, - 75, 76, 385, 24, 361, 461, 12, 463, 126, 529, - 530, 394, 113, 16, 22, 127, 536, 118, 474, 127, - 121, 122, 123, 124, 125, 382, 383, 487, 126, 489, - 89, 90, 91, 92, 494, 126, 393, 112, 113, 396, - 397, 53, 126, 118, 11, 11, 121, 122, 123, 124, - 125, 571, 572, 573, 85, 575, 12, 126, 546, 89, - 90, 91, 92, 89, 90, 91, 92, 587, 126, 22, - 526, 10, 15, 127, 594, 595, 126, 16, 22, 436, - 126, 20, 548, 83, 127, 24, 546, 547, 471, 126, - 126, 30, 22, 559, 451, 127, 126, 22, 618, 126, - 126, 42, 562, 563, 126, 17, 82, 13, 568, 126, - 126, 631, 113, 126, 569, 396, 644, 583, 283, 414, - 586, 577, 642, 489, 584, 482, 21, 502, 23, 415, - 421, 26, 652, 28, 29, 89, 90, 91, 92, 599, - 600, 601, 89, 90, 91, 92, 41, 274, 577, 44, - 507, 135, -1, 48, 394, 615, 616, 243, -1, 54, - 55, 56, 57, 58, -1, -1, -1, 627, -1, 623, - -1, -1, 126, 639, -1, 635, -1, 534, 535, 126, - -1, 564, -1, 643, 644, -1, -1, 647, 68, -1, - -1, 574, -1, -1, -1, 75, 76, 77, 89, 90, - 91, 92, 89, 90, 91, 92, -1, -1, 88, -1, - -1, -1, 569, 570, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, -1, 126, 593, -1, 118, 126, - 135, 121, 122, 123, 124, 125, 3, 4, 5, 6, - 7, 8, 9, -1, -1, -1, 613, -1, -1, -1, + 10, 17, 148, 27, 299, 147, 128, 11, 396, 19, + 11, 16, 13, 544, 18, 22, 20, 19, 22, 386, + 24, 25, 16, 100, 27, 29, 107, 173, 0, 396, + 34, 35, 566, 11, 13, 13, 30, 13, 12, 49, + 13, 22, 52, 49, 48, 49, 50, 51, 54, 18, + 52, 85, 11, 22, 53, 24, 25, 10, 11, 58, + 13, 128, 11, 16, 128, 34, 35, 20, 11, 93, + 16, 24, 25, 22, 20, 56, 31, 15, 24, 22, + 49, 108, 51, 90, 91, 92, 93, 42, 15, 10, + 93, 11, 9, 13, 128, 11, 23, 13, 19, 109, + 128, 54, 14, 82, 82, 11, 637, 14, 106, 82, + 16, 121, 136, 18, 11, 20, 650, 22, 485, 24, + 25, 11, 27, 128, 118, 14, 79, 128, 53, 34, + 35, 52, 14, 136, 128, 145, 146, 147, 148, 60, + 114, 11, 148, 13, 49, 102, 51, 53, 158, 159, + 154, 108, 58, 295, 53, 159, 158, 159, 11, 11, + 13, 167, 168, 173, 22, 128, 82, 173, 14, 86, + 537, 538, 118, 22, 255, 128, 128, 258, 90, 91, + 92, 93, 128, 90, 91, 92, 93, 11, 93, 13, + 159, 96, 32, 14, 128, 35, 36, 37, 38, 14, + 128, 90, 91, 92, 93, 14, 573, 39, 90, 91, + 92, 93, 82, 108, 109, 16, 137, 22, 234, 20, + 11, 245, 13, 24, 22, 235, 106, 107, 238, 596, + 151, 136, 90, 91, 92, 93, 157, 158, 159, 381, + 22, 11, 245, 13, 90, 91, 92, 93, 22, 616, + 90, 91, 92, 93, 159, 259, 14, 552, 85, 647, + 56, 182, 183, 184, 185, 82, 187, 188, 189, 90, + 91, 92, 93, 92, 93, 90, 91, 92, 93, 22, + 82, 90, 91, 92, 93, 295, 432, 127, 125, 126, + 571, 301, 90, 91, 92, 93, 302, 128, 22, 301, + 122, 123, 124, 125, 126, 226, 227, 228, 229, 230, + 231, 232, 233, 33, 34, 127, 90, 91, 92, 93, + 225, 602, 603, 604, 127, 242, 243, 244, 22, 246, + 247, 13, 249, 250, 53, 53, 53, 618, 619, 118, + 245, 82, 263, 264, 265, 266, 267, 90, 91, 92, + 93, 128, 16, 41, 358, 497, 20, 638, 58, 15, + 24, 56, 283, 56, 86, 646, 90, 91, 92, 93, + 127, 381, 32, 397, 12, 35, 36, 37, 38, 13, + 301, 90, 91, 92, 93, 401, 396, 18, 25, 25, + 311, 76, 77, 78, 397, 316, 3, 4, 5, 6, + 7, 8, 9, 549, 25, 25, 416, 417, 550, 25, + 56, 76, 77, 78, 264, 265, 426, 267, 127, 95, + 430, 128, 432, 76, 128, 53, 432, 112, 113, 114, + 90, 91, 92, 93, 119, 356, 357, 122, 123, 124, + 125, 126, 22, 364, 454, 110, 111, 112, 113, 114, + 95, 128, 454, 358, 119, 532, 533, 122, 123, 124, + 125, 126, 539, 11, 385, 386, 119, 12, 16, 122, + 123, 124, 125, 126, 12, 396, 76, 25, 399, 400, + 490, 398, 492, 388, 127, 402, 12, 497, 405, 12, + 12, 16, 397, 90, 91, 92, 93, 574, 575, 576, + 127, 578, 127, 22, 128, 53, 128, 424, 127, 127, + 58, 53, 127, 590, 114, 11, 11, 86, 439, 119, + 597, 598, 122, 123, 124, 125, 126, 12, 127, 22, + 127, 15, 127, 454, 128, 551, 127, 76, 77, 549, + 550, 127, 22, 549, 621, 128, 562, 464, 84, 466, + 127, 127, 10, 22, 128, 565, 566, 634, 16, 22, + 477, 571, 20, 127, 485, 42, 24, 127, 645, 474, + 586, 127, 30, 589, 113, 114, 17, 587, 655, 83, + 119, 127, 13, 122, 123, 124, 125, 126, 572, 510, + 127, 399, 602, 603, 604, 76, 77, 78, 90, 91, + 92, 93, 90, 91, 92, 93, 114, 647, 618, 619, + 285, 492, 529, 276, 418, 580, 537, 538, 417, 505, + 630, 136, 626, -1, 424, 397, 642, -1, 638, 110, + 111, 112, 113, 114, 245, 127, 646, 647, 119, 127, + 650, 122, 123, 124, 125, 126, 90, 91, 92, 93, + -1, 572, 573, 21, -1, 23, -1, -1, 26, -1, + 28, 29, 567, 580, 90, 91, 92, 93, -1, -1, + -1, -1, 577, 41, -1, 596, 44, -1, -1, -1, + 48, -1, -1, 0, 1, -1, -1, 55, 56, 57, + 58, 59, -1, 10, 11, 616, 13, -1, -1, 16, + -1, 127, 19, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, + 37, 38, -1, 40, -1, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, + -1, -1, 79, 80, 81, -1, -1, -1, 136, -1, + 87, 90, 91, 92, 93, -1, -1, 94, 90, 91, + 92, 93, 90, 91, 92, 93, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 115, 116, + -1, 118, -1, 120, 121, -1, -1, -1, 127, -1, + -1, 128, -1, -1, -1, 127, -1, -1, 186, 127, + -1, -1, -1, -1, 192, -1, -1, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 0, 1, -1, 224, -1, -1, -1, + -1, -1, -1, 10, 11, -1, 13, -1, -1, 16, + -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, + 37, 38, -1, 40, -1, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, + -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, + 87, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1, 115, 116, + -1, 118, -1, 120, 121, -1, 10, 11, 12, 13, + -1, 128, 16, -1, -1, 19, 20, 21, 22, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, + -1, 35, 36, 37, 38, -1, 40, -1, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, + 94, -1, -1, -1, -1, -1, -1, -1, -1, 68, + -1, -1, -1, -1, -1, 443, -1, 76, 77, 78, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 89, -1, -1, -1, 128, -1, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, + 119, -1, 1, 122, 123, 124, 125, 126, -1, -1, + 498, 10, 11, 12, 13, -1, -1, 16, -1, -1, + 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, + 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, + -1, 40, -1, 531, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, -1, + 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, + 79, 80, 81, -1, -1, -1, -1, -1, 87, -1, + -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 184, - -1, -1, -1, -1, -1, 190, -1, -1, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 0, 1, -1, 222, -1, -1, - -1, -1, -1, -1, 10, 11, -1, 13, -1, -1, + -1, -1, -1, -1, -1, 1, 115, 116, -1, 118, + -1, 120, 121, -1, 10, 11, 12, 13, -1, 128, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, -1, 69, 70, 71, 72, 73, 74, -1, - -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, - 86, -1, -1, -1, -1, -1, -1, 93, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 0, 1, 114, 115, - -1, 117, -1, 119, 120, -1, 10, 11, -1, 13, - -1, 127, 16, -1, -1, 19, 20, 21, 22, -1, - 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, - -1, 35, 36, 37, 38, -1, 40, -1, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, - 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, -1, -1, -1, - -1, -1, 86, -1, -1, -1, -1, -1, -1, 93, + 66, 67, -1, 69, 70, 71, 72, 73, 74, 75, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 440, -1, -1, -1, -1, - 114, 115, -1, 117, -1, 119, 120, -1, -1, 1, - -1, -1, -1, 127, -1, -1, -1, -1, 10, 11, - 12, 13, -1, -1, 16, -1, -1, 19, 20, 21, - 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, - 32, -1, -1, 35, 36, 37, 38, -1, 40, -1, - 495, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, 65, 66, 67, -1, 69, 70, 71, - 72, 73, 74, 528, -1, -1, 78, 79, 80, -1, - -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, - -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1, 115, + 116, -1, 118, -1, 120, 121, -1, 10, 11, 12, + 13, -1, 128, 16, -1, -1, 19, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, + -1, -1, 35, 36, 37, 38, -1, 40, -1, -1, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, 79, 80, 81, -1, + -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, + -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1, 114, 115, -1, 117, -1, 119, 120, -1, - 10, 11, 12, 13, -1, 127, 16, -1, -1, 19, + -1, 1, 115, 116, -1, 118, -1, 120, 121, -1, + 10, 11, 12, 13, -1, 128, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, -1, 69, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, -1, -1, -1, -1, -1, 86, -1, -1, -1, - -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, + 70, 71, 72, 73, 74, 75, -1, -1, -1, 79, + 80, 81, -1, -1, -1, -1, -1, 87, -1, -1, + -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1, 114, 115, -1, 117, -1, 119, - 120, -1, 10, 11, 12, 13, -1, 127, 16, -1, - -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, - 28, 29, 30, 31, 32, -1, -1, 35, 36, 37, - 38, -1, 40, -1, -1, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, - -1, 69, 70, 71, 72, 73, 74, -1, -1, -1, - 78, 79, 80, -1, -1, -1, -1, -1, 86, -1, - -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 1, 115, 116, -1, 118, -1, + 120, 121, -1, 10, 11, 12, 13, -1, 128, 16, + -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, + 37, 38, -1, 40, -1, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, 74, 75, -1, + -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, + 87, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1, 114, 115, -1, 117, - -1, 119, 120, -1, 10, 11, 12, 13, -1, 127, - 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, - 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, - 36, 37, 38, -1, 40, -1, -1, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, -1, 69, 70, 71, 72, 73, 74, -1, - -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, - 86, -1, -1, -1, -1, -1, -1, 93, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1, 114, 115, - -1, 117, -1, 119, 120, -1, 10, 11, 12, 13, - -1, 127, 16, -1, -1, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, 1, 115, 116, + -1, 118, -1, 120, 121, -1, 10, 11, -1, 13, + -1, 128, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, -1, -1, -1, - -1, -1, 86, -1, -1, -1, -1, -1, -1, 93, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + 84, -1, -1, 87, -1, -1, -1, -1, -1, -1, + 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, - 114, 115, -1, 117, -1, 119, 120, -1, 10, 11, - 12, 13, -1, 127, 16, -1, -1, 19, 20, 21, - 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, - 32, -1, -1, 35, 36, 37, 38, -1, 40, -1, - -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, 65, 66, 67, -1, 69, 70, 71, - 72, 73, 74, -1, -1, -1, 78, 79, 80, -1, - -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, - -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 115, 116, -1, 118, -1, 120, 121, -1, 10, + 11, -1, 13, -1, 128, 16, -1, -1, 19, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, + -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, + 61, 62, 63, 64, 65, 66, 67, -1, 69, 70, + 71, 72, 73, 74, 75, -1, -1, -1, 79, 80, + 81, -1, -1, -1, -1, -1, 87, -1, -1, -1, + -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1, 114, 115, -1, 117, -1, 119, 120, -1, - 10, 11, -1, 13, -1, 127, 16, -1, -1, 19, - 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, - 40, -1, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, - 60, 61, 62, 63, 64, 65, 66, 67, -1, 69, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, -1, -1, 83, -1, -1, 86, -1, -1, -1, - -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1, 114, 115, -1, 117, -1, 119, - 120, -1, 10, 11, -1, 13, -1, 127, 16, -1, + -1, -1, -1, 1, 115, 116, -1, 118, -1, 120, + 121, -1, 10, 11, -1, 13, -1, 128, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, - -1, 69, 70, 71, 72, 73, 74, -1, -1, -1, - 78, 79, 80, -1, -1, -1, -1, -1, 86, -1, - -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1, 114, 115, -1, 117, - -1, 119, 120, -1, 10, 11, -1, 13, -1, 127, + -1, 59, 60, 61, 62, 63, 64, 65, -1, 67, + -1, 69, 70, 71, 72, 73, 74, 75, -1, -1, + -1, 79, 80, 81, -1, 1, -1, -1, -1, 87, + -1, -1, -1, -1, 10, -1, 94, 13, -1, -1, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, - 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, - 36, 37, 38, -1, 40, -1, -1, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - -1, 67, -1, 69, 70, 71, 72, 73, 74, -1, - -1, -1, 78, 79, 80, -1, 1, -1, -1, -1, - 86, -1, -1, -1, -1, 10, -1, 93, 13, -1, - -1, 16, -1, -1, 19, 20, 21, 22, -1, 24, - 25, -1, -1, -1, 29, 30, -1, -1, 114, 115, - -1, 117, -1, 119, 120, -1, -1, -1, -1, 44, - 45, 127, -1, -1, 49, 50, -1, 52, 53, 54, - 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, - -1, -1, 67, -1, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, -1, 1, -1, -1, - -1, -1, -1, -1, -1, -1, 10, -1, 93, 13, + -1, -1, -1, 29, 30, -1, -1, 115, 116, -1, + 118, -1, 120, 121, -1, -1, -1, -1, 44, 45, + 128, -1, -1, 49, 50, -1, 52, 53, 54, 55, + 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, + -1, 67, -1, -1, 70, 71, 72, 73, 74, 75, + -1, -1, -1, 79, 80, 81, -1, 1, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, 94, 13, -1, -1, 16, -1, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, 114, - 115, -1, 117, -1, 119, 120, -1, -1, -1, -1, - 44, 45, 127, -1, -1, 49, 50, -1, 52, 53, + 24, 25, -1, -1, -1, 29, 30, -1, -1, 115, + 116, -1, 118, -1, 120, 121, -1, -1, -1, -1, + 44, 45, 128, -1, -1, 49, 50, -1, 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, -1, -1, -1, - -1, -1, -1, -1, -1, 10, 11, -1, 13, 93, - -1, 16, -1, -1, 19, 20, 21, -1, -1, 24, - 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, - 114, 115, -1, 117, -1, 119, 120, -1, -1, 44, - 45, -1, 126, 127, 49, 50, -1, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - -1, -1, 67, -1, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, - -1, -1, -1, -1, 10, 11, -1, 13, 93, -1, - 16, -1, -1, 19, 20, 21, -1, -1, 24, 25, - -1, -1, -1, 29, 30, -1, -1, -1, -1, 114, - 115, -1, 117, -1, 119, 120, -1, -1, 44, 45, - -1, -1, 127, 49, 50, -1, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, - -1, 67, -1, -1, 70, 71, 72, 73, 74, -1, - -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, - -1, -1, -1, 10, -1, -1, 13, 93, -1, 16, - -1, -1, 19, 20, 21, -1, -1, 24, 25, -1, - -1, -1, 29, 30, -1, -1, -1, -1, 114, 115, - -1, 117, -1, 119, 120, -1, -1, 44, 45, -1, - -1, 127, 49, 50, -1, 52, 53, 54, 55, 56, - 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, - 67, -1, -1, 70, 71, 72, 73, 74, -1, -1, - -1, 78, 79, 80, -1, -1, -1, -1, -1, -1, - -1, -1, 10, -1, -1, 13, 93, -1, 16, -1, - -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, - -1, 29, 30, -1, -1, -1, -1, 114, 115, -1, - 117, -1, 119, 120, -1, -1, 44, 45, -1, 126, - 127, 49, 50, -1, 52, 53, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, - -1, -1, 70, 71, 72, 73, 74, -1, -1, -1, - 78, 79, 80, -1, -1, -1, -1, -1, -1, -1, - -1, 10, -1, -1, 13, 93, -1, 16, -1, -1, - 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, - 29, 30, -1, -1, -1, -1, 114, 115, -1, 117, - -1, 119, 120, -1, -1, 44, 45, -1, 126, 127, - 49, 50, -1, 52, 53, 54, 55, 56, 57, -1, - 59, 60, 61, 62, 63, 64, -1, -1, 67, -1, - -1, 70, 71, 72, 73, 74, -1, -1, -1, 78, - 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, - 10, 11, -1, 13, 93, -1, 16, -1, -1, 19, - 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, - 30, -1, -1, -1, -1, 114, 115, -1, 117, -1, - 119, 120, -1, -1, 44, 45, -1, 126, 127, 49, - 50, -1, 52, 53, 54, 55, 56, 57, -1, 59, - 60, 61, 62, 63, 64, -1, -1, 67, -1, -1, - 70, 71, 72, 73, 74, -1, -1, -1, 78, 79, - 80, -1, -1, -1, -1, -1, -1, -1, -1, 10, - -1, -1, 13, 93, -1, 16, -1, -1, 19, 20, - 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, - -1, -1, -1, -1, 114, 115, -1, 117, -1, 119, - 120, -1, -1, 44, 45, -1, -1, 127, 49, 50, - -1, 52, 53, 54, 55, 56, 57, -1, 59, 60, - 61, 62, 63, 64, -1, -1, 67, -1, -1, 70, - 71, 72, 73, 74, -1, -1, -1, 78, 79, 80, - -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, - -1, 13, 93, -1, 16, -1, -1, 19, 20, 21, - -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, - -1, -1, -1, 114, 115, -1, 117, -1, 119, 120, - -1, -1, 44, 45, -1, 126, 127, 49, 50, -1, - 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, -1, -1, 67, -1, -1, 70, 71, - 72, 73, 74, -1, -1, -1, 78, 79, 80, -1, - -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, - 13, 93, -1, 16, -1, -1, 19, 20, 21, -1, - -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, - -1, -1, 114, 115, -1, 117, -1, 119, 120, -1, - -1, 44, 45, -1, 126, 127, 49, 50, -1, 52, - 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, - 63, 64, -1, -1, 67, -1, -1, 70, 71, 72, - 73, 74, -1, -1, -1, 78, 79, 80, -1, -1, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, 11, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, 127, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, 11, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, -1, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, - 93, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, 114, 115, -1, 117, -1, 119, 120, -1, -1, - 44, 45, -1, 126, 127, 49, 50, -1, 52, 53, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, -1, 128, 49, 50, -1, 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, 79, 80, -1, -1, -1, - -1, -1, -1, -1, -1, 10, -1, -1, 13, 93, - -1, 16, -1, -1, 19, 20, 21, -1, -1, 24, - 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, - 114, 115, -1, 117, -1, 119, 120, -1, -1, 44, - 45, -1, 126, 127, 49, 50, -1, 52, 53, 54, - 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, - -1, -1, 67, -1, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, - -1, -1, -1, -1, 10, -1, -1, 13, 93, -1, - 16, -1, -1, 19, 20, 21, -1, -1, 24, 25, - -1, -1, -1, 29, 30, -1, -1, -1, -1, 114, - 115, -1, 117, -1, 119, 120, -1, -1, 44, 45, - -1, -1, 127, 49, 50, -1, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, - -1, 67, -1, -1, 70, 71, 72, 73, 74, -1, - -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, - -1, -1, -1, 10, -1, -1, 13, 93, -1, 16, - -1, -1, 19, 20, 21, -1, -1, 24, 25, -1, - -1, -1, 29, 30, -1, -1, -1, -1, 114, 115, - -1, 117, -1, 119, 120, -1, -1, 44, 45, -1, - -1, 127, 49, 50, -1, 52, 53, 54, 55, 56, - 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, - 67, -1, -1, 70, 71, 72, 73, 74, -1, -1, - -1, 78, 79, 80, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, - -1, 68, -1, -1, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, -1, -1, -1, 114, 115, -1, - 117, 88, 119, 120, -1, -1, -1, 94, 95, 96, - 127, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, -1, -1, -1, - -1, 118, 68, -1, 121, 122, 123, 124, 125, 75, - 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 88, -1, -1, -1, -1, -1, 94, 95, - 96, -1, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, -1, -1, - -1, -1, 118, 68, -1, 121, 122, 123, 124, 125, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, - 95, 96, -1, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, - -1, -1, -1, 118, 68, -1, 121, 122, 123, 124, - 125, 75, 76, 77, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 75, - 76, 77, 96, -1, 98, 99, 100, 101, 102, 103, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, 127, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, 127, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, 11, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, 127, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, -1, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, 127, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, 127, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, 127, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, 127, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, -1, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, 13, + 94, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, + -1, 115, 116, -1, 118, -1, 120, 121, -1, -1, + 44, 45, -1, -1, 128, 49, 50, -1, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, -1, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 94, -1, -1, -1, 68, -1, -1, -1, -1, -1, + -1, -1, 76, 77, 78, -1, -1, -1, -1, -1, + -1, 115, 116, -1, 118, 89, 120, 121, -1, -1, + -1, 95, 96, 97, 128, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - -1, -1, -1, -1, 118, 68, -1, 121, 122, 123, - 124, 125, 75, 76, 77, 111, 112, 113, -1, -1, - -1, -1, 118, -1, -1, 121, 122, 123, 124, 125, - -1, -1, -1, -1, -1, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 75, 76, 77, -1, 118, -1, -1, 121, 122, - 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 75, 76, 77, 101, 102, 103, + 114, -1, -1, -1, -1, 119, 68, -1, 122, 123, + 124, 125, 126, -1, 76, 77, 78, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, + -1, -1, -1, 95, 96, 97, -1, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, -1, -1, -1, -1, 119, 68, -1, + 122, 123, 124, 125, 126, -1, 76, 77, 78, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 95, 96, 97, -1, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, -1, -1, -1, 119, + 68, -1, 122, 123, 124, 125, 126, -1, 76, 77, + 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, + -1, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, + -1, 119, 68, -1, 122, 123, 124, 125, 126, -1, + 76, 77, 78, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 76, + 77, 78, -1, 119, -1, -1, 122, 123, 124, 125, + 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 76, 77, 78, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, -1, -1, + -1, -1, 119, -1, -1, 122, 123, 124, 125, 126, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - -1, -1, -1, -1, 118, -1, -1, 121, 122, 123, - 124, 125, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 75, 76, 77, -1, 118, -1, -1, - 121, 122, 123, 124, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 75, 76, 77, -1, -1, -1, - -1, -1, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, -1, 75, 76, 77, 118, -1, -1, 121, - 122, 123, 124, 125, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 75, 76, 77, -1, 118, -1, -1, - 121, 122, 123, 124, 125, 107, 108, 109, 110, 111, - 112, 113, 75, 76, 77, -1, 118, -1, -1, 121, - 122, 123, 124, 125, -1, -1, -1, 109, 110, 111, - 112, 113, 75, 76, 77, -1, 118, -1, -1, 121, - 122, 123, 124, 125, -1, -1, 109, 110, 111, 112, - 113, -1, -1, -1, -1, 118, -1, -1, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 110, 111, 112, - 113, -1, -1, -1, -1, 118, -1, -1, 121, 122, - 123, 124, 125 + 114, 76, 77, 78, -1, 119, -1, -1, 122, 123, + 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 76, 77, 78, -1, -1, -1, -1, -1, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + -1, 76, 77, 78, 119, -1, -1, 122, 123, 124, + 125, 126, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 76, 77, 78, -1, 119, -1, -1, 122, 123, + 124, 125, 126, 108, 109, 110, 111, 112, 113, 114, + -1, -1, -1, -1, 119, -1, -1, 122, 123, 124, + 125, 126, -1, -1, -1, -1, 111, 112, 113, 114, + -1, -1, -1, -1, 119, -1, -1, 122, 123, 124, + 125, 126 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 3, 4, 5, 6, 7, 8, 9, 129, 130, - 131, 132, 133, 134, 135, 136, 0, 141, 10, 13, + 0, 3, 4, 5, 6, 7, 8, 9, 130, 131, + 132, 133, 134, 135, 136, 137, 0, 142, 10, 13, 16, 19, 20, 21, 24, 25, 29, 30, 44, 45, 49, 50, 52, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 67, 70, 71, 72, 73, 74, - 78, 79, 80, 93, 114, 115, 117, 119, 120, 127, - 139, 201, 202, 203, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 217, 224, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 11, 138, 1, 22, 26, - 27, 28, 31, 32, 35, 36, 37, 38, 40, 43, - 46, 47, 48, 51, 65, 69, 86, 137, 138, 151, - 165, 201, 221, 66, 149, 150, 151, 139, 147, 194, - 195, 147, 53, 58, 138, 233, 241, 224, 241, 215, - 241, 215, 241, 241, 215, 117, 127, 218, 233, 234, - 235, 215, 138, 215, 177, 177, 178, 241, 241, 216, - 13, 127, 215, 177, 215, 127, 127, 84, 127, 138, - 215, 53, 139, 202, 223, 233, 241, 241, 224, 53, - 58, 180, 202, 215, 215, 215, 215, 215, 126, 201, - 89, 90, 91, 92, 15, 11, 13, 127, 107, 108, - 107, 105, 106, 105, 68, 75, 76, 77, 88, 94, - 95, 96, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 118, 121, - 122, 123, 124, 125, 127, 11, 13, 11, 13, 11, - 13, 11, 141, 179, 53, 53, 219, 233, 234, 235, - 127, 127, 30, 117, 127, 231, 233, 127, 127, 11, - 142, 142, 176, 180, 22, 176, 180, 39, 139, 167, - 22, 32, 35, 36, 37, 38, 22, 150, 151, 149, - 16, 20, 24, 139, 185, 186, 188, 189, 190, 191, - 14, 127, 215, 218, 233, 234, 235, 126, 201, 81, - 183, 56, 139, 181, 81, 139, 182, 182, 223, 127, - 84, 201, 126, 138, 126, 126, 201, 224, 224, 241, - 202, 22, 223, 13, 126, 201, 201, 201, 201, 215, - 201, 201, 126, 201, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 10, 11, 13, 16, 20, 24, 25, 54, - 78, 127, 205, 233, 126, 201, 201, 201, 201, 201, - 201, 201, 201, 147, 53, 139, 175, 53, 53, 81, - 139, 220, 141, 141, 117, 141, 30, 229, 230, 232, - 233, 234, 235, 141, 141, 127, 141, 141, 143, 41, - 155, 176, 154, 176, 138, 164, 201, 164, 164, 172, - 201, 164, 58, 184, 184, 15, 126, 201, 183, 126, - 56, 182, 56, 141, 199, 199, 224, 202, 14, 204, - 126, 85, 126, 201, 12, 201, 13, 22, 14, 126, - 97, 25, 201, 201, 25, 25, 25, 25, 25, 126, - 201, 127, 126, 22, 14, 22, 14, 22, 14, 22, - 12, 18, 140, 11, 22, 182, 56, 94, 173, 201, - 173, 127, 226, 233, 127, 139, 165, 170, 173, 174, - 201, 229, 141, 172, 171, 201, 147, 141, 53, 152, - 22, 141, 196, 197, 153, 94, 139, 187, 187, 189, - 126, 197, 127, 139, 192, 193, 126, 23, 139, 225, - 223, 126, 14, 201, 12, 215, 22, 14, 126, 224, - 12, 12, 12, 12, 141, 141, 11, 22, 222, 126, - 126, 227, 228, 233, 127, 141, 126, 22, 158, 173, - 126, 126, 12, 127, 139, 144, 53, 181, 11, 182, - 215, 194, 11, 201, 85, 14, 12, 126, 22, 160, - 141, 215, 142, 142, 15, 126, 173, 173, 142, 156, - 127, 126, 169, 169, 145, 159, 223, 182, 147, 22, - 198, 199, 126, 200, 83, 147, 161, 33, 34, 139, - 166, 166, 233, 127, 126, 126, 167, 171, 173, 142, - 142, 142, 233, 142, 22, 196, 12, 147, 139, 148, - 12, 147, 142, 127, 173, 142, 142, 22, 126, 167, - 167, 167, 146, 42, 168, 12, 22, 56, 162, 12, - 173, 126, 167, 167, 157, 142, 126, 138, 17, 82, - 139, 163, 126, 142, 169, 167, 147, 142, 167, 174, - 83, 166, 126, 142 + 75, 79, 80, 81, 94, 115, 116, 118, 120, 121, + 128, 140, 202, 203, 204, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 218, 225, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 11, 139, 1, 22, + 26, 27, 28, 31, 32, 35, 36, 37, 38, 40, + 43, 46, 47, 48, 51, 65, 69, 87, 138, 139, + 152, 166, 202, 222, 66, 150, 151, 152, 140, 148, + 195, 196, 148, 53, 58, 139, 234, 242, 225, 242, + 216, 242, 216, 242, 242, 216, 118, 128, 219, 234, + 235, 236, 216, 139, 216, 178, 178, 179, 242, 242, + 217, 13, 128, 216, 178, 216, 128, 128, 85, 128, + 139, 216, 53, 140, 203, 224, 234, 242, 139, 242, + 225, 53, 58, 181, 203, 216, 216, 216, 216, 216, + 127, 202, 90, 91, 92, 93, 15, 11, 13, 128, + 108, 109, 108, 106, 107, 106, 68, 76, 77, 78, + 89, 95, 96, 97, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 119, 122, 123, 124, 125, 126, 128, 11, 13, 11, + 13, 11, 13, 11, 142, 180, 53, 53, 220, 234, + 235, 236, 128, 128, 30, 118, 128, 232, 234, 128, + 128, 11, 143, 143, 177, 181, 22, 177, 181, 39, + 140, 168, 22, 32, 35, 36, 37, 38, 22, 151, + 152, 150, 16, 20, 24, 140, 186, 187, 189, 190, + 191, 192, 14, 128, 216, 219, 234, 235, 236, 127, + 202, 82, 184, 56, 140, 182, 82, 140, 183, 183, + 224, 128, 85, 202, 127, 139, 127, 127, 202, 225, + 225, 242, 203, 203, 22, 224, 13, 127, 202, 202, + 202, 202, 216, 202, 202, 127, 202, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 10, 11, 13, 16, 20, + 24, 25, 54, 79, 128, 206, 234, 127, 202, 202, + 202, 202, 202, 202, 202, 202, 148, 53, 140, 176, + 53, 53, 82, 140, 221, 142, 142, 118, 142, 30, + 230, 231, 233, 234, 235, 236, 142, 142, 128, 142, + 142, 144, 41, 156, 177, 155, 177, 139, 165, 202, + 165, 165, 173, 202, 165, 58, 185, 185, 15, 127, + 202, 184, 127, 56, 183, 56, 142, 200, 200, 225, + 203, 14, 205, 127, 86, 127, 202, 12, 202, 13, + 22, 14, 127, 98, 25, 202, 202, 25, 25, 25, + 25, 25, 127, 202, 128, 127, 22, 14, 22, 14, + 22, 14, 22, 12, 18, 141, 11, 22, 183, 56, + 95, 174, 202, 174, 128, 227, 234, 128, 140, 166, + 171, 174, 175, 202, 230, 142, 173, 172, 202, 148, + 142, 53, 153, 22, 142, 197, 198, 154, 95, 140, + 188, 188, 190, 127, 198, 128, 140, 193, 194, 127, + 23, 140, 226, 224, 127, 14, 202, 12, 216, 22, + 14, 127, 225, 12, 12, 12, 12, 142, 142, 11, + 22, 223, 127, 127, 228, 229, 234, 128, 142, 127, + 22, 159, 174, 127, 127, 12, 128, 140, 145, 53, + 182, 11, 183, 216, 195, 11, 202, 86, 14, 12, + 127, 22, 161, 142, 216, 143, 143, 15, 127, 174, + 174, 143, 157, 128, 127, 170, 170, 146, 160, 224, + 183, 148, 22, 199, 200, 127, 201, 84, 148, 162, + 33, 34, 140, 167, 167, 234, 128, 127, 127, 168, + 172, 174, 143, 143, 143, 234, 143, 22, 197, 12, + 148, 140, 149, 12, 148, 143, 128, 174, 143, 143, + 22, 127, 168, 168, 168, 147, 42, 169, 12, 22, + 56, 163, 12, 174, 127, 168, 168, 158, 143, 127, + 139, 17, 83, 140, 164, 127, 143, 170, 168, 148, + 143, 168, 175, 84, 167, 127, 143 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_uint8 yyr1[] = { - 0, 128, 130, 129, 131, 129, 132, 129, 133, 129, - 134, 129, 135, 129, 136, 129, 137, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 144, 147, 147, - 148, 148, 149, 149, 150, 150, 151, 151, 152, 151, - 153, 151, 154, 151, 151, 151, 155, 151, 151, 151, - 151, 151, 156, 157, 151, 151, 151, 151, 158, 151, - 151, 151, 159, 151, 151, 160, 151, 161, 151, 151, - 151, 151, 151, 151, 162, 163, 163, 164, 165, 165, - 165, 165, 165, 165, 165, 166, 166, 166, 167, 167, - 168, 168, 169, 170, 170, 171, 171, 172, 173, 174, - 175, 175, 176, 177, 178, 179, 180, 180, 181, 181, - 182, 182, 182, 183, 183, 184, 184, 185, 185, 186, - 187, 187, 187, 188, 189, 189, 190, 190, 190, 191, - 191, 192, 192, 193, 195, 194, 196, 196, 197, 198, - 198, 200, 199, 201, 201, 201, 201, 201, 202, 202, - 202, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 204, 203, 205, 205, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 206, 206, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 208, 208, 208, 208, 208, 209, 209, 210, 210, 210, - 210, 211, 211, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 213, 213, 213, 213, 213, 214, 214, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 216, 215, 215, - 215, 215, 217, 217, 217, 217, 218, 218, 218, 218, - 218, 219, 219, 219, 220, 220, 220, 221, 222, 221, - 223, 223, 224, 224, 225, 225, 226, 227, 227, 227, - 228, 229, 229, 229, 230, 230, 231, 231, 232, 233, - 234, 235, 236, 236, 237, 238, 238, 239, 239, 240, - 240, 241, 241, 241, 241 + 0, 129, 131, 130, 132, 130, 133, 130, 134, 130, + 135, 130, 136, 130, 137, 130, 138, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 145, 148, 148, + 149, 149, 150, 150, 151, 151, 152, 152, 153, 152, + 154, 152, 155, 152, 152, 152, 156, 152, 152, 152, + 152, 152, 157, 158, 152, 152, 152, 152, 159, 152, + 152, 152, 160, 152, 152, 161, 152, 162, 152, 152, + 152, 152, 152, 152, 163, 164, 164, 165, 166, 166, + 166, 166, 166, 166, 166, 167, 167, 167, 168, 168, + 169, 169, 170, 171, 171, 172, 172, 173, 174, 175, + 176, 176, 177, 178, 179, 180, 181, 181, 182, 182, + 183, 183, 183, 184, 184, 185, 185, 186, 186, 187, + 188, 188, 188, 189, 190, 190, 191, 191, 191, 192, + 192, 193, 193, 194, 196, 195, 197, 197, 198, 199, + 199, 201, 200, 202, 202, 202, 202, 202, 203, 203, + 203, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 205, 204, 206, 206, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 207, 207, 207, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 209, 209, 209, 209, 209, 210, 210, 211, 211, + 211, 211, 212, 212, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 214, 214, 214, 214, 214, 215, 215, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 217, 216, + 216, 216, 216, 218, 218, 218, 218, 219, 219, 219, + 219, 219, 220, 220, 220, 221, 221, 221, 222, 223, + 222, 224, 224, 225, 225, 226, 226, 227, 228, 228, + 228, 229, 230, 230, 230, 231, 231, 232, 232, 233, + 234, 235, 236, 237, 237, 238, 239, 239, 240, 240, + 241, 241, 242, 242, 242, 242 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -1493,25 +1492,25 @@ static const yytype_int8 yyr2[] = 1, 1, 2, 3, 1, 1, 2, 3, 1, 1, 1, 1, 1, 3, 0, 2, 1, 1, 4, 1, 1, 0, 6, 3, 3, 3, 3, 1, 2, 3, - 1, 3, 5, 6, 3, 3, 5, 2, 4, 4, - 0, 5, 1, 1, 5, 4, 5, 4, 5, 6, - 5, 4, 5, 4, 3, 6, 4, 5, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 1, 3, 2, 2, 3, 3, 3, 1, 3, 2, - 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 4, 5, 4, 4, 2, 2, 1, - 1, 1, 1, 5, 2, 1, 2, 3, 1, 2, - 1, 1, 1, 1, 1, 1, 4, 4, 5, 5, - 1, 1, 3, 4, 3, 4, 4, 4, 4, 4, - 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, - 1, 3, 1, 3, 1, 3, 4, 0, 6, 1, - 1, 1, 3, 2, 4, 3, 3, 2, 1, 1, - 1, 1, 1, 1, 2, 1, 1, 3, 0, 6, - 1, 1, 1, 1, 1, 2, 1, 2, 3, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 4, 2, 1, 3, 1, 3, 1, - 3, 1, 1, 1, 1 + 1, 3, 3, 5, 6, 3, 3, 5, 2, 4, + 4, 0, 5, 1, 1, 5, 4, 5, 4, 5, + 6, 5, 4, 5, 4, 3, 6, 4, 5, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, + 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 1, 3, 2, 2, 3, 3, 3, 1, 3, + 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 4, 5, 4, 4, 2, 2, + 1, 1, 1, 1, 5, 2, 1, 2, 3, 1, + 2, 1, 1, 1, 1, 1, 1, 4, 4, 5, + 5, 1, 1, 3, 4, 3, 4, 4, 4, 4, + 4, 1, 2, 2, 1, 2, 2, 1, 2, 1, + 2, 1, 3, 1, 3, 1, 3, 4, 0, 6, + 1, 1, 1, 3, 2, 4, 3, 3, 2, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 3, 0, + 6, 1, 1, 1, 1, 1, 2, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 4, 2, 1, 3, 1, 3, + 1, 3, 1, 1, 1, 1 }; typedef enum { @@ -1539,7 +1538,7 @@ static const toketypes yy_type_tab[] = toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, + toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, @@ -1569,6 +1568,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * 9fc11f4af92f701d8d7909a9cd9dc52e01098c42c2504fb84c15e1d1e72f4803 perly.y + * cdef9ff44874bfb2f6175adcd920473f8c6601794f20f7977a13e1c2e2be5e26 perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.y b/perly.y index 6a6510823f0a6..79622f1ca3774 100644 --- a/perly.y +++ b/perly.y @@ -85,7 +85,7 @@ %token PLUGEXPR PLUGSTMT %token LABEL %token LOOPEX DOTDOT YADAYADA -%token FUNC0 FUNC1 FUNC UNIOP LSTOP +%token FUNC0 FUNC1 FUNC UNIOP LSTOP BLKLSTOP %token POWOP MULOP ADDOP %token DOLSHARP HASHBRACK NOAMP %token COLONATTR FORMLBRACK FORMRBRACK @@ -126,7 +126,7 @@ %left OROP PLUGIN_LOGICAL_OR_LOW_OP %left ANDOP PLUGIN_LOGICAL_AND_LOW_OP %right NOTOP -%nonassoc LSTOP LSTOPSUB +%nonassoc LSTOP LSTOPSUB BLKLSTOP %left PERLY_COMMA %right ASSIGNOP PLUGIN_ASSIGN_OP %right PERLY_QUESTION_MARK PERLY_COLON @@ -1084,6 +1084,10 @@ listop : LSTOP indirob listexpr /* map {...} @args or print $fh @args */ { $$ = op_convert_list($LSTOP, OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF($LSTOP,$indirob), $listexpr) ); } + | BLKLSTOP block listexpr /* all/any { ... } @args */ + { $$ = op_convert_list($BLKLSTOP, OPf_STACKED, + op_prepend_elem(OP_LIST, newUNOP(OP_NULL, 0, op_scope($block)), $listexpr) ); + } | FUNC PERLY_PAREN_OPEN indirob expr PERLY_PAREN_CLOSE /* print ($fh @args */ { $$ = op_convert_list($FUNC, OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF($FUNC,$indirob), $expr) ); diff --git a/pod/perldiag.pod b/pod/perldiag.pod index ee76f0e67a97f..66332d85b647d 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -75,6 +75,12 @@ removed in a future Perl version: use feature "refaliasing"; \$x = \$y; +=item all is experimental + +(S experimental::any_all) This warning is emitted if you use the C +keyword of C. This keyword is currently +experimental and its behaviour may change in future releases of Perl. + =item '%c' allowed only after types %s in %s (F) The modifiers '!', '<' and '>' are allowed in pack() or unpack() only @@ -182,6 +188,12 @@ which 'splits' output into two streams, such as } close OUT; +=item any is experimental + +(S experimental::any_all) This warning is emitted if you use the C +keyword of C. This keyword is currently +experimental and its behaviour may change in future releases of Perl. + =item Applying %s to %s will act on scalar(%s) (W misc) The pattern match (C), substitution (C), and diff --git a/pp_ctl.c b/pp_ctl.c index 50d0f2cec3a31..bf2e288881a6f 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -1010,7 +1010,7 @@ PP_wrapped(pp_formline, 0, 1) } } -/* also used for: pp_mapstart() */ +/* also used for: pp_mapstart(), pp_anystart(), pp_allstart() */ PP(pp_grepstart) { /* See the code comments at the start of pp_grepwhile() and @@ -1022,10 +1022,31 @@ PP(pp_grepstart) if (PL_stack_base + TOPMARK == PL_stack_sp) { (void)POPMARK; - if (GIMME_V == G_SCALAR) { - rpp_extend(1); - *++PL_stack_sp = &PL_sv_zero; + + switch(PL_op->op_type) { + case OP_GREPSTART: + case OP_MAPSTART: + if (GIMME_V == G_SCALAR) { + rpp_extend(1); + *++PL_stack_sp = &PL_sv_zero; + } + break; + + case OP_ANYSTART: + if (GIMME_V > G_VOID) { + rpp_extend(1); + rpp_push_IMM(&PL_sv_no); + } + break; + + case OP_ALLSTART: + if (GIMME_V > G_VOID) { + rpp_extend(1); + rpp_push_IMM(&PL_sv_yes); + } + break; } + return PL_op->op_next->op_next; } svp = PL_stack_base + TOPMARK + 1; @@ -1306,6 +1327,62 @@ PP(pp_mapwhile) } } +PP(pp_anywhile) +{ + OPCODE op_type = cUNOP->op_first->op_type; + + bool match = SvTRUE_NN(*PL_stack_sp); + rpp_popfree_1_NN(); + + ++*PL_markstack_ptr; + FREETMPS; + LEAVE_with_name("grep_item"); + + bool result; + + if((op_type == OP_ANYSTART && match) || (op_type == OP_ALLSTART && !match)) { + /* shortcircuit; result is known. Stop here */ + result = match; + goto leave_with_result; + } + + if(UNLIKELY(PL_stack_base + *PL_markstack_ptr > PL_stack_sp)) { + /* Ran out of items */ + result = (op_type == OP_ANYSTART) ? false : true; + +leave_with_result: + LEAVE_with_name("grep"); + (void)POPMARK; /* pop src */ + --*PL_markstack_ptr; + (void)POPMARK; /* pop dst */ + SV **base = PL_stack_base + POPMARK; /* pop original mark */ + + rpp_popfree_to_NN(base); + rpp_push_IMM(result ? &PL_sv_yes : &PL_sv_no); + + return NORMAL; + } + + ENTER_with_name("grep_item"); + SAVEVPTR(PL_curpm); + + SV *src = PL_stack_base[TOPMARK]; + if (SvPADTMP(src)) { + SV *newsrc = sv_mortalcopy(src); + PL_stack_base[TOPMARK] = newsrc; +#ifdef PERL_RC_STACK + SvREFCNT_inc_simple_void_NN(newsrc); + SvREFCNT_dec(src); +#endif + src = newsrc; + PL_tmps_floor++; + } + SvTEMP_off(src); + DEFSV_set(src); + + return cLOGOP->op_other; +} + /* Range stuff. */ PP(pp_range) diff --git a/pp_proto.h b/pp_proto.h index 02754995f4f27..239eb2f829de3 100644 --- a/pp_proto.h +++ b/pp_proto.h @@ -20,6 +20,7 @@ PERL_CALLCONV PP(pp_anoncode) __attribute__visibility__("hidden"); PERL_CALLCONV PP(pp_anonconst) __attribute__visibility__("hidden"); PERL_CALLCONV PP(pp_anonhash) __attribute__visibility__("hidden"); PERL_CALLCONV PP(pp_anonlist) __attribute__visibility__("hidden"); +PERL_CALLCONV PP(pp_anywhile) __attribute__visibility__("hidden"); PERL_CALLCONV PP(pp_argcheck) __attribute__visibility__("hidden"); PERL_CALLCONV PP(pp_argdefelem) __attribute__visibility__("hidden"); PERL_CALLCONV PP(pp_argelem) __attribute__visibility__("hidden"); diff --git a/proto.h b/proto.h index 74ea81d1a0668..4c6fac193ad7f 100644 --- a/proto.h +++ b/proto.h @@ -9150,7 +9150,7 @@ S_intuit_more(pTHX_ char *s, char *e); assert(s); assert(e) STATIC I32 -S_lop(pTHX_ I32 f, U8 x, char *s); +S_lop(pTHX_ enum yytokentype t, I32 f, U8 x, char *s); # define PERL_ARGS_ASSERT_LOP \ assert(s) diff --git a/regen/opcode.pl b/regen/opcode.pl index 57174eb98a402..d59ed7c7d73fb 100755 --- a/regen/opcode.pl +++ b/regen/opcode.pl @@ -142,7 +142,7 @@ BEGIN spwent epwent sgrent egrent)], Perl_pp_shostent => [qw(snetent sprotoent sservent)], Perl_pp_aelemfast => ['aelemfast_lex'], - Perl_pp_grepstart => ['mapstart'], + Perl_pp_grepstart => ['mapstart', 'anystart', 'allstart'], ); while (my ($func, $names) = splice @raw_alias, 0, 2) { diff --git a/regen/opcodes b/regen/opcodes index f93a7a0635b33..62e6de328db4d 100644 --- a/regen/opcodes +++ b/regen/opcodes @@ -272,6 +272,11 @@ reverse reverse ck_fun mt@ L grepstart grep ck_grep m@ C L grepwhile grep iterator ck_null t| +anystart any ck_grep m@ C L +allstart all ck_grep m@ C L + +anywhile any/all iterator ck_null t| + mapstart map ck_grep m@ C L mapwhile map iterator ck_null t| diff --git a/regen/warnings.pl b/regen/warnings.pl index b39c4ad177c0d..b6bb811229ebc 100644 --- a/regen/warnings.pl +++ b/regen/warnings.pl @@ -16,7 +16,7 @@ # # This script is normally invoked from regen.pl. -$VERSION = '1.71'; +$VERSION = '1.72'; BEGIN { require './regen/regen_lib.pl'; @@ -158,6 +158,8 @@ BEGIN [ 5.035, DEFAULT_ON], 'experimental::class' => [ 5.037, DEFAULT_ON ], + 'experimental::any_all' => + [ 5.041, DEFAULT_ON ], }], 'missing' => [ 5.021, DEFAULT_OFF], diff --git a/t/lib/croak/op b/t/lib/croak/op index f24268c728173..c80889bf9d585 100644 --- a/t/lib/croak/op +++ b/t/lib/croak/op @@ -326,3 +326,19 @@ use 5.012; use 5.010; EXPECT Downgrading a use VERSION declaration to below v5.11 is not permitted at - line 3. +######## +# any with deferred LIST expression +use feature 'any_all'; +no warnings 'experimental::any_all'; +any length, qw( a b c ) +EXPECT +syntax error at - line 4, near "any length" +Execution of - aborted due to compilation errors. +######## +# all with deferred LIST expression +use feature 'any_all'; +no warnings 'experimental::any_all'; +all length, qw( a b c ) +EXPECT +syntax error at - line 4, near "all length" +Execution of - aborted due to compilation errors. diff --git a/t/op/any_all.t b/t/op/any_all.t new file mode 100644 index 0000000000000..c749103b13570 --- /dev/null +++ b/t/op/any_all.t @@ -0,0 +1,86 @@ +#!./perl + +BEGIN { + chdir 't' if -d 't'; + require './test.pl'; + set_up_inc('../lib'); +} + +use feature 'any_all'; +no warnings 'experimental::any_all'; + +# Basic true/false testing +ok( (any { $_ > 10 } 1 .. 20), 'list contains a value above ten' ); +ok( !(any { $_ > 10 } 1 .. 9), 'list does not contain a value above ten' ); +ok( !(all { $_ < 10 } 1 .. 20), 'not all list values below ten' ); +ok( (all { $_ < 10 } 1 .. 9), 'all list values below ten' ); + +# Parens are permitted +ok( (any( { $_ > 10 } 1 .. 20) ), 'list contains a value above ten' ); +ok( (all( { $_ < 10 } 1 .. 9) ), 'all list values below ten' ); + +# any empty list is false +{ + my $invoked; + my $ret = any { $invoked++ } (); + ok( defined $ret, 'any on empty list is defined' ); + ok( !$ret, 'any on empty list is false' ); + ok( !$invoked, 'any on empty list did not invoke block' ); +} + +# all empty list is true +{ + my $invoked; + ok( (all { $invoked } ()), 'all on empty list is true' ); + ok( !$invoked, 'all on empty list did not invoke block' ); +} + +# any failure yields false in list context +{ + my @ret; + @ret = any { $_ > 10 } 1 .. 9; + ok( @ret == 1, 'any nothing yielded a value in list context' ); + ok( !$ret[0], 'any nothing yielded false in list context' ); + + @ret = any { $_ > 10 } (); + ok( @ret == 1, 'any nothing yielded a value in list context on empty input' ); + ok( !$ret[0], 'any nothing yielded false in list context on empty input' ); +} + +# all failure yields true in list context +{ + my @ret; + @ret = all { $_ > 10 } 1 .. 9; + ok( @ret == 1, 'all nothing yielded a value in list context' ); + ok( !$ret[0], 'all nothing yielded false in list context' ); + + @ret = all { $_ > 10 } (); + ok( @ret == 1, 'all nothing yielded a value in list context on empty input' ); + ok( $ret[0], 'all nothing yielded true in list context on empty input' ); +} + +# short-circuiting +{ + my @seen; + any { push @seen, $_; $_ > 10 } 10, 20, 30, 40; + ok( eq_array( \@seen, [ 10, 20 ] ), 'any short-circuits after first true result' ); + + undef @seen; + all { push @seen, $_; $_ < 20 } 10, 20, 30, 40; + ok( eq_array( \@seen, [ 10, 20 ] ), 'all short-circuits after first false result' ); +} + +# stack discipline +{ + ok( eq_array( + [ 1, 2, (any { $_ eq "x" } "x", "y"), 3, 4 ], + [ 1, 2, 1, 3, 4 ] ), + 'any() preserves stack discipline' ); + + ok( eq_array( + [ 1, 2, (all { $_ eq "x" } "x", "x"), 3, 4 ], + [ 1, 2, 1, 3, 4 ] ), + 'all() preserves stack discipline' ); +} + +done_testing; diff --git a/t/op/coreamp.t b/t/op/coreamp.t index 18e6475e999b5..1c2ee711363d4 100644 --- a/t/op/coreamp.t +++ b/t/op/coreamp.t @@ -1166,8 +1166,8 @@ like $@, qr'^Undefined format "STDOUT" called', my %nottest_words = map { $_ => 1 } qw( ADJUST AUTOLOAD BEGIN CHECK CORE DESTROY END INIT UNITCHECK __DATA__ __END__ - and catch class cmp continue default defer do dump else elsif eq eval - field finally + all and any catch class cmp continue default defer do dump else elsif + eq eval field finally for foreach format ge given goto grep gt if isa last le local lt m map method my ne next no or our package print printf q qq qr qw qx redo require return s say sort state sub tr try unless until use when while x xor y diff --git a/t/op/coresubs.t b/t/op/coresubs.t index 7be4b00fcaff3..afcc072c46cd5 100644 --- a/t/op/coresubs.t +++ b/t/op/coresubs.t @@ -18,7 +18,7 @@ use B; my %unsupported = map +($_=>1), qw ( __DATA__ __END__ ADJUST AUTOLOAD BEGIN UNITCHECK CORE DESTROY END INIT CHECK - and catch class cmp continue defer do dump else elsif eq eval field + all and any catch class cmp continue defer do dump else elsif eq eval field finally for foreach format ge goto grep gt if isa last le local lt m map method my ne next no or our package print printf q qq qr qw qx redo require return s say sort state sub tr try unless until use diff --git a/toke.c b/toke.c index e6682208675be..582ec0e70592d 100644 --- a/toke.c +++ b/toke.c @@ -2144,7 +2144,15 @@ S_check_uni(pTHX) * with a subroutine, S_lop() for which LOP is just another name. */ -#define LOP(f,x) return lop(f,x,s) +#define LOP(f,x) return lop(LSTOP,f,x,s) + +/* + * BLKLOP : a macro to build a list operator. Similar to LOP but its first + * argument must be a block, so it does not need the PL_expect value to be + * specified. + */ + +#define BLKLOP(f) return lop(BLKLSTOP,f,XBLOCK,s) /* * S_lop @@ -2158,7 +2166,7 @@ S_check_uni(pTHX) */ STATIC I32 -S_lop(pTHX_ I32 f, U8 x, char *s) +S_lop(pTHX_ enum yytokentype t, I32 f, U8 x, char *s) { PERL_ARGS_ASSERT_LOP; @@ -2179,7 +2187,7 @@ S_lop(pTHX_ I32 f, U8 x, char *s) lstop: if (!PL_lex_allbrackets && PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC) PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC; - return REPORT(LSTOP); + return REPORT(t); } } @@ -7998,11 +8006,21 @@ yyl_word_or_keyword(pTHX_ char *s, STRLEN len, I32 key, I32 orig_keyword, struct case KEY_accept: LOP(OP_ACCEPT,XTERM); + case KEY_all: + Perl_ck_warner_d(aTHX_ + packWARN(WARN_EXPERIMENTAL__ANY_ALL), "all is experimental"); + BLKLOP(OP_ALLSTART); + case KEY_and: if (!PL_lex_allbrackets && PL_lex_fakeeof >= LEX_FAKEEOF_LOWLOGIC) return REPORT(0); OPERATOR(ANDOP); + case KEY_any: + Perl_ck_warner_d(aTHX_ + packWARN(WARN_EXPERIMENTAL__ANY_ALL), "any is experimental"); + BLKLOP(OP_ANYSTART); + case KEY_atan2: LOP(OP_ATAN2,XTERM); diff --git a/warnings.h b/warnings.h index e4897b655bebd..1ee6daa4db489 100644 --- a/warnings.h +++ b/warnings.h @@ -161,6 +161,10 @@ /* Warnings Categories added in Perl 5.039008 */ #define WARN_DEPRECATED__SUBSEQUENT_USE_VERSION 78 + +/* Warnings Categories added in Perl 5.041 */ + +#define WARN_EXPERIMENTAL__ANY_ALL 79 #define WARNsize 20 #define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125" #define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" @@ -354,6 +358,7 @@ category parameters passed. =for apidoc Amnh||WARN_DEPRECATED__SMARTMATCH =for apidoc Amnh||WARN_DEPRECATED__MISSING_IMPORT_CALLED_WITH_ARGS =for apidoc Amnh||WARN_DEPRECATED__SUBSEQUENT_USE_VERSION +=for apidoc Amnh||WARN_EXPERIMENTAL__ANY_ALL =cut */