summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2004-02-14 02:06:53 +0000
committerDave Mitchell <davem@fdisolutions.com>2004-02-14 02:06:53 +0000
commit0de566d74fdaf0a49123989fe8d4ad06603c6608 (patch)
treea7e6f359c44eb372067a0f7567f1e4ef9953ae22
parent21d1ba01f501963c6f61499860ffc70a78ab21c0 (diff)
downloadperl-0de566d74fdaf0a49123989fe8d4ad06603c6608.tar.gz
Switch from byacc to bison and simplify the perly.* regeneration
process p4raw-id: //depot/perl@22302
-rw-r--r--MANIFEST13
-rw-r--r--Makefile.SH93
-rw-r--r--Porting/pumpkin.pod59
-rw-r--r--embedvar.h24
-rw-r--r--intrpvar.h15
-rw-r--r--op.c10
-rw-r--r--perl.h11
-rw-r--r--perlapi.h24
-rw-r--r--perly.act1043
-rw-r--r--perly.c3235
-rwxr-xr-xperly.fixer256
-rw-r--r--perly.h234
-rw-r--r--perly.tab876
-rw-r--r--perly.y64
-rw-r--r--perly_c.diff457
-rw-r--r--perlyline.pl11
-rw-r--r--regen_perly.pl188
-rw-r--r--sv.c8
-rw-r--r--toke.c5
-rw-r--r--vms/descrip_mms.template6
-rw-r--r--vms/perly_c.vms2658
-rw-r--r--vms/perly_h.vms78
-rw-r--r--vms/vms_yfix.pl70
23 files changed, 2995 insertions, 6443 deletions
diff --git a/MANIFEST b/MANIFEST
index ebfbd1d570..4fe2c949ae 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2333,11 +2333,10 @@ perlsdio.h Fake stdio using perlio
perlsfio.h Prototype sfio mapping for PerlIO
perlsh A poor man's perl shell
perlvars.h Global variables
-perly.c A byacc'ed perly.y
-perly_c.diff Fixup perly.c to allow recursion
-perly.fixer A program to remove yacc stack limitations
-perly.h The header file for perly.c
-perlyline.pl Perl code to fix #line directives and gcc warnings in perly.c
+perly.act parser actions; derived from perly.y
+perly.c parser code (NOT derived from perly.y)
+perly.h header file for perly.c; derived from perly.y
+perly.tab parser state tables; derived from perly.y
perly.y Yacc grammar for perl
plan9/aperl Shell to make Perl error messages Acme-friendly
plan9/arpa/inet.h Plan9 port: replacement C header file
@@ -2559,6 +2558,7 @@ regcomp.h Private declarations for above
regcomp.pl Builder of regnodes.h
regcomp.sym Data for regnodes.h
regen_lib.pl Common file routines for generator scripts
+regen_perly.pl generate perly.{act,h,tab} from perly.y
regen.pl Run all scripts that (re)generate files
regexec.c Regular expression evaluator
regexp.h Public declarations for the above
@@ -3007,15 +3007,12 @@ vms/mms2make.pl convert descrip.mms to make syntax
vms/munchconfig.c performs shell $var substitution for VMS
vms/myconfig.com record local configuration info for bug report
vms/perlvms.pod VMS-specific additions to Perl documentation
-vms/perly_c.vms perly.c with fixed declarations for global syms
-vms/perly_h.vms perly.h with fixed declarations for global syms
vms/sockadapt.c glue for SockshShr socket support
vms/sockadapt.h glue for SockshShr socket support
vms/test.com DCL driver for regression tests
vms/vms.c VMS-specific C code for Perl core
vms/vmsish.h VMS-specific C header for Perl core
vms/vmspipe.com VMS-specific piped command helper script
-vms/vms_yfix.pl convert Unix perly.[ch] to VMS perly_[ch].vms
vms/writemain.pl Generate perlmain.c from miniperlmain.c+extensions
vos/Changes Changes made to port Perl to the VOS operating system
vos/compile_full_perl.cm VOS command macro to build "full" Perl
diff --git a/Makefile.SH b/Makefile.SH
index c39effacbd..b759821486 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -154,15 +154,6 @@ for f in $nonxs_ext; do
nonxs_list="$nonxs_list ext/$f/pm_to_blib"
done
-# Handle the usage of different yaccs in posix-bc (During Configure we
-# us yacc for perly.y and byacc for a2p.y. The makefiles must use the
-# same configuration for run_byacc!):
-case "$osname" in
- posix-bc)
- byacc=$yacc
- ;;
-esac
-
echo "Extracting Makefile (with variable substitutions)"
$spitshell >Makefile <<!GROK!THIS!
# Makefile.SH
@@ -170,10 +161,7 @@ $spitshell >Makefile <<!GROK!THIS!
# be lost the next time you run Configure.
# Makefile is used to generate $firstmakefile. The only difference
# is that $firstmakefile has the dependencies filled in at the end.
-#
-#
-# I now supply perly.c with the kits, so don't remake perly.c without byacc
-BYACC = $byacc
+
CC = $cc
LD = $ld
@@ -826,28 +814,18 @@ install.html: all installhtml
# I now supply perly.c with the kits, so the following section is
-# used only if you force byacc to run by saying
-# make run_byacc
-# Since we patch up the byacc output, the perly.fixer script needs
-# to run with precisely the same version of byacc as I use. You
-# normally shouldn't remake perly.[ch].
-
-.PHONY: check_byacc run_byacc
-
-check_byacc:
- @$(BYACC) -V 2>&1 | grep 'version 1\.8\.2'
-
-run_byacc: FORCE check_byacc
- $(BYACC) -d perly.y
- -chmod 664 perly.c perly.h
- sh $(shellflags) ./perly.fixer y.tab.c perly.c
- sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
- -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
- sed -e '/^extern YYSTYPE yy/D' y.tab.h >yh.tmp && mv yh.tmp y.tab.h
- cmp -s y.tab.h perly.h && rm -f y.tab.h || mv y.tab.h perly.h
- perl -i.old perlyline.pl perly.c
- chmod 664 vms/perly_c.vms vms/perly_h.vms
- perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
+# used only if you force bison to run by saying
+# make regen_perly
+# You normally shouldn't remake perly.[ch].
+
+.PHONY: regen_perly
+
+run_byacc:
+ @echo "run_byacc is obsolete; try 'make regen_perly' instead"
+
+# this outputs perly.act and perly.tab
+regen_perly:
+ perl regen_perly.pl
# We don't want to regenerate perly.c and perly.h, but they might
# appear out-of-date after a patch is applied or a new distribution is
@@ -858,11 +836,6 @@ perly.c: perly.y
perly.h: perly.y
-@sh -c true
-PERLYVMS = vms/perly_c.vms vms/perly_h.vms
-
-$(PERLYVMS): perly.c perly.h vms/vms_yfix.pl
- perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
-
# No compat3.sym here since and including the 5.004_50.
# No interp.sym since 5.005_03.
SYM = global.sym globvar.sym perlio.sym pp.sym
@@ -904,7 +877,7 @@ regen regen_headers: FORCE
regen_pods: FORCE
-cd pod; $(LDLIBPTH) $(MAKE) regen_pods
-regen_all: $(PERLYVMS) regen regen_pods
+regen_all: regen regen_pods
.PHONY: manisort manicheck
@@ -1279,44 +1252,6 @@ define)
echo "This is an EBCDIC system, checking if any parser files need regenerating." >&2
case "$osname" in
os390|posix-bc)
- rm -f y.tab.c y.tab.h
- # yacc must be a reentrant ("pure") Bison in BS2000 Posix!
- yacc -d perly.y >/dev/null 2>&1
- if cmp -s y.tab.c perly.c; then
- rm -f y.tab.c
- else
- echo "perly.y -> perly.c" >&2
- mv -f y.tab.c perly.c
- chmod u+w perly.c
- sed -e '/^#include "perl\.h"/a\
-\
-#define yydebug PL_yydebug\
-#define yynerrs PL_yynerrs\
-#define yyerrflag PL_yyerrflag\
-#define yychar PL_yychar\
-#define yyval PL_yyval\
-#define yylval PL_yylval' \
- -e '/YYSTYPE *yyval;/D' \
- -e '/YYSTYPE *yylval;/D' \
- -e '/int yychar,/,/yynerrs;/D' \
- -e 's/int yydebug = 0;/yydebug = 0;/' \
- -e 's/[^_]realloc(/PerlMem_realloc(/g' \
- -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
- -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
- xxx="$xxx perly.c"
- fi
- case "$osname:$usethreads" in
- os390:define)
- sed -e 's@^extern int yychar, yyerrflag;@/* extern int yychar, yyerrflag; */@' perly.c > perly.tmp && mv perly.tmp perly.c
- ;;
- esac
- if cmp -s y.tab.h perly.h; then
- rm -f y.tab.h
- else
- echo "perly.y -> perly.h" >&2
- mv -f y.tab.h perly.h
- xxx="$xxx perly.h"
- fi
if cd x2p
then
rm -f y.tab.c y.tab.h
diff --git a/Porting/pumpkin.pod b/Porting/pumpkin.pod
index 9de84348c5..aa52845be4 100644
--- a/Porting/pumpkin.pod
+++ b/Porting/pumpkin.pod
@@ -414,7 +414,6 @@ In all, the following files should probably be executable:
keywords.pl
myconfig
opcode.pl
- perly.fixer
t/TEST
t/*/*.t
*.SH
@@ -478,51 +477,27 @@ you are not familiar with those systems. You might want to issue your
patch with a promise to quickly issue a follow-up that handles those
directories.
-=head2 make run_byacc
+=head2 make regen_perly
-If you have byacc-1.8.2 (available from CPAN as
-http://www.cpan.org/src/misc/perl-byacc1.8.2.tar.gz), and if there have
-been changes to F<perly.y>, you can regenerate the F<perly.c> file. The
-run_byacc makefile target does this by running byacc and then applying
-some patches so that byacc dynamically allocates space, rather than
-having fixed limits. This patch is handled by the F<perly.fixer>
-script. Depending on the nature of the changes to F<perly.y>, you may
-or may not have to hand-edit the patch to apply correctly. If you do,
-you should include the edited patch in the new distribution. (If you
-have byacc-1.9, the patch won't apply cleanly, notably changes to the printf
-output statements. F<perly.fixer> could be fixed to detect this.)
+If perly.y has been edited, it is nessary to run this target to rebuild
+perly.h, perl.act and perl.tab. In fact this target just runs the Perl
+script regen_perly.pl. Note that perl.c is I<not> rebuilt; this is just a
+plain static file now.
-If C<perly.c> or C<perly.h> changes, make sure you run C<perl vms/vms_yfix.pl>
-to update the corresponding VMS files. The run_byacc target in the Unix
-Makefile takes care of this. See also L<VMS-specific updates>.
+This target relies on you having Bison installed on your system. Running
+the target will tell you if you haven't got the right version, and if so,
+where to get the right one. Or if you prefer, you could hack
+regen_perly.pl to work with your version of Bison. The important things
+are that the regexes can still extract out the right chunks of the Bison
+output into perly.act and perl.tab, and that the contents of those two
+files, plus perly.h, are functionally equivalent to those produced by the
+supported version of Bison.
-Some additional notes from Larry on this:
-
-Don't forget to regenerate perly_c.diff.
-
- byacc -d perly.y
- mv y.tab.c perly.c
- patch perly.c <perly_c.diff
- # manually apply any failed hunks
- diff -u perly.c.orig perly.c >perly_c.diff
-
-One chunk of lines that often fails begins with
-
- #line 29 "perly.y"
-
-and ends one line before
-
- #define YYERRCODE 256
-
-This only happens when you add or remove a token type. I suppose this
-could be automated, but it doesn't happen very often nowadays.
-
-Larry
+Note that in the old days, you had to do C<make run_byacc> instead.
=head2 make regen_all
-This target takes care of the PERLYVMS, regen_headers, and regen_pods
-targets.
+This target takes care of the regen_headers, and regen_pods targets.
=head2 make regen_headers
@@ -630,10 +605,6 @@ things that need to be fixed in Configure.
=head2 VMS-specific updates
-If you have changed F<perly.y> or F<perly.c>, then you most probably want
-to update F<vms/perly_{h,c}.vms> by running C<perl vms/vms_yfix.pl>, or
-by running `make regen_all` which will run that script for you.
-
The Perl revision number appears as "perl5" in configure.com.
It is courteous to update that if necessary.
diff --git a/embedvar.h b/embedvar.h
index 08631b4e5f..104d853f7f 100644
--- a/embedvar.h
+++ b/embedvar.h
@@ -458,12 +458,12 @@
#define PL_xpvnv_root (vTHX->Ixpvnv_root)
#define PL_xrv_arenaroot (vTHX->Ixrv_arenaroot)
#define PL_xrv_root (vTHX->Ixrv_root)
-#define PL_yychar (vTHX->Iyychar)
-#define PL_yydebug (vTHX->Iyydebug)
-#define PL_yyerrflag (vTHX->Iyyerrflag)
-#define PL_yylval (vTHX->Iyylval)
-#define PL_yynerrs (vTHX->Iyynerrs)
-#define PL_yyval (vTHX->Iyyval)
+#define PL_yycharBINCOMPAT (vTHX->IyycharBINCOMPAT)
+#define PL_yydebugBINCOMPAT (vTHX->IyydebugBINCOMPAT)
+#define PL_yyerrflagBINCOMPAT (vTHX->IyyerrflagBINCOMPAT)
+#define PL_yylvalBINCOMPAT (vTHX->IyylvalBINCOMPAT)
+#define PL_yynerrsBINCOMPAT (vTHX->IyynerrsBINCOMPAT)
+#define PL_yyvalBINCOMPAT (vTHX->IyyvalBINCOMPAT)
#else /* !MULTIPLICITY */
@@ -764,12 +764,12 @@
#define PL_Ixpvnv_root PL_xpvnv_root
#define PL_Ixrv_arenaroot PL_xrv_arenaroot
#define PL_Ixrv_root PL_xrv_root
-#define PL_Iyychar PL_yychar
-#define PL_Iyydebug PL_yydebug
-#define PL_Iyyerrflag PL_yyerrflag
-#define PL_Iyylval PL_yylval
-#define PL_Iyynerrs PL_yynerrs
-#define PL_Iyyval PL_yyval
+#define PL_IyycharBINCOMPAT PL_yycharBINCOMPAT
+#define PL_IyydebugBINCOMPAT PL_yydebugBINCOMPAT
+#define PL_IyyerrflagBINCOMPAT PL_yyerrflagBINCOMPAT
+#define PL_IyylvalBINCOMPAT PL_yylvalBINCOMPAT
+#define PL_IyynerrsBINCOMPAT PL_yynerrsBINCOMPAT
+#define PL_IyyvalBINCOMPAT PL_yyvalBINCOMPAT
#define PL_TSv PL_Sv
#define PL_TXpv PL_Xpv
diff --git a/intrpvar.h b/intrpvar.h
index f8b20a55b9..2e9d1afe2b 100644
--- a/intrpvar.h
+++ b/intrpvar.h
@@ -397,13 +397,14 @@ PERLVARA(Ilast_swash_key,10, U8)
PERLVAR(Ilast_swash_tmps, U8 *)
PERLVAR(Ilast_swash_slen, STRLEN)
-/* perly.c globals */
-PERLVAR(Iyydebug, int)
-PERLVAR(Iyynerrs, int)
-PERLVAR(Iyyerrflag, int)
-PERLVAR(Iyychar, int)
-PERLVAR(Iyyval, YYSTYPE)
-PERLVAR(Iyylval, YYSTYPE)
+/* ex perly.c globals. Now just placeholders for BINCOMPAT in 5.8.x
+ * XXX delete for 5.9.x */
+PERLVAR(IyydebugBINCOMPAT, int)
+PERLVAR(IyynerrsBINCOMPAT, int)
+PERLVAR(IyyerrflagBINCOMPAT, int)
+PERLVAR(IyycharBINCOMPAT, int)
+PERLVAR(IyyvalBINCOMPAT, YYSTYPE)
+PERLVAR(IyylvalBINCOMPAT, YYSTYPE)
PERLVARI(Iglob_index, int, 0)
PERLVAR(Isrand_called, bool)
diff --git a/op.c b/op.c
index e45b664b93..8a116d763e 100644
--- a/op.c
+++ b/op.c
@@ -1770,7 +1770,10 @@ Perl_block_start(pTHX_ int full)
{
int retval = PL_savestack_ix;
/* If there were syntax errors, don't try to start a block */
- if (PL_yynerrs) return retval;
+ /* XXX DAPM 13-Feb-04. This symbol no longer gloabl. Think of a better
+ * way
+ * if (PL_yynerrs) return retval;
+ */
pad_block_start(full);
SAVEHINTS();
@@ -1794,7 +1797,10 @@ Perl_block_end(pTHX_ I32 floor, OP *seq)
int needblockscope = PL_hints & HINT_BLOCK_SCOPE;
OP* retval = scalarseq(seq);
/* If there were syntax errors, don't try to close a block */
- if (PL_yynerrs) return retval;
+ /* XXX DAPM 13-Feb-04. This symbol no longer gloabl. Think of a better
+ * way
+ * if (PL_yynerrs) return retval;
+ */
LEAVE_SCOPE(floor);
PL_compiling.op_private = (U8)(PL_hints & HINT_PRIVATE_MASK);
if (needblockscope)
diff --git a/perl.h b/perl.h
index f87bb5c3aa..83d85330b9 100644
--- a/perl.h
+++ b/perl.h
@@ -11,6 +11,12 @@
#ifndef H_PERL
#define H_PERL 1
+/* XXX DAPM tmp - always do this now - probably nedd to remove all trace
+ * of the define at some pooint. Feb 04 */
+
+#define USE_PURE_BISON 1
+
+
#ifdef PERL_FOR_X2P
/*
* This file is being used for x2p stuff.
@@ -2546,9 +2552,6 @@ Gid_t getegid (void);
#ifdef DEBUGGING
-# undef YYDEBUG
-# define YYDEBUG 1
-
# define DEBUG_p_TEST DEBUG_p_TEST_
# define DEBUG_s_TEST DEBUG_s_TEST_
# define DEBUG_l_TEST DEBUG_l_TEST_
@@ -2727,8 +2730,6 @@ Gid_t getegid (void);
#define PERL_MAGIC_ext '~' /* Available for use by extensions */
-#define YYMAXDEPTH 300
-
#ifndef assert /* <assert.h> might have been included somehow */
#ifdef DEBUGGING
#define assert(what) PERL_DEB( { \
diff --git a/perlapi.h b/perlapi.h
index c761540932..f6895de951 100644
--- a/perlapi.h
+++ b/perlapi.h
@@ -674,18 +674,18 @@ END_EXTERN_C
#define PL_xrv_arenaroot (*Perl_Ixrv_arenaroot_ptr(aTHX))
#undef PL_xrv_root
#define PL_xrv_root (*Perl_Ixrv_root_ptr(aTHX))
-#undef PL_yychar
-#define PL_yychar (*Perl_Iyychar_ptr(aTHX))
-#undef PL_yydebug
-#define PL_yydebug (*Perl_Iyydebug_ptr(aTHX))
-#undef PL_yyerrflag
-#define PL_yyerrflag (*Perl_Iyyerrflag_ptr(aTHX))
-#undef PL_yylval
-#define PL_yylval (*Perl_Iyylval_ptr(aTHX))
-#undef PL_yynerrs
-#define PL_yynerrs (*Perl_Iyynerrs_ptr(aTHX))
-#undef PL_yyval
-#define PL_yyval (*Perl_Iyyval_ptr(aTHX))
+#undef PL_yycharBINCOMPAT
+#define PL_yycharBINCOMPAT (*Perl_IyycharBINCOMPAT_ptr(aTHX))
+#undef PL_yydebugBINCOMPAT
+#define PL_yydebugBINCOMPAT (*Perl_IyydebugBINCOMPAT_ptr(aTHX))
+#undef PL_yyerrflagBINCOMPAT
+#define PL_yyerrflagBINCOMPAT (*Perl_IyyerrflagBINCOMPAT_ptr(aTHX))
+#undef PL_yylvalBINCOMPAT
+#define PL_yylvalBINCOMPAT (*Perl_IyylvalBINCOMPAT_ptr(aTHX))
+#undef PL_yynerrsBINCOMPAT
+#define PL_yynerrsBINCOMPAT (*Perl_IyynerrsBINCOMPAT_ptr(aTHX))
+#undef PL_yyvalBINCOMPAT
+#define PL_yyvalBINCOMPAT (*Perl_IyyvalBINCOMPAT_ptr(aTHX))
#undef PL_Sv
#define PL_Sv (*Perl_TSv_ptr(aTHX))
#undef PL_Xpv
diff --git a/perly.act b/perly.act
new file mode 100644
index 0000000000..eafa340b95
--- /dev/null
+++ b/perly.act
@@ -0,0 +1,1043 @@
+case 2:
+#line 88 "perly.y"
+ { yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); ;}
+ break;
+
+ case 3:
+#line 93 "perly.y"
+ { if (PL_copline > (line_t)yyvsp[-3].ival)
+ PL_copline = (line_t)yyvsp[-3].ival;
+ yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); ;}
+ break;
+
+ case 4:
+#line 99 "perly.y"
+ { yyval.ival = block_start(TRUE); ;}
+ break;
+
+ case 5:
+#line 103 "perly.y"
+ {
+ PL_expect = XSTATE; yyval.ival = block_start(TRUE);
+ ;}
+ break;
+
+ case 6:
+#line 110 "perly.y"
+ { if (PL_copline > (line_t)yyvsp[-3].ival)
+ PL_copline = (line_t)yyvsp[-3].ival;
+ yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); ;}
+ break;
+
+ case 7:
+#line 116 "perly.y"
+ { yyval.ival = block_start(FALSE); ;}
+ break;
+
+ case 8:
+#line 121 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 9:
+#line 123 "perly.y"
+ { yyval.opval = yyvsp[-1].opval; ;}
+ break;
+
+ case 10:
+#line 125 "perly.y"
+ { yyval.opval = append_list(OP_LINESEQ,
+ (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
+ PL_pad_reset_pending = TRUE;
+ if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; ;}
+ break;
+
+ case 11:
+#line 133 "perly.y"
+ { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); ;}
+ break;
+
+ case 13:
+#line 136 "perly.y"
+ { if (yyvsp[-1].pval != Nullch) {
+ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
+ }
+ else {
+ yyval.opval = Nullop;
+ PL_copline = NOLINE;
+ }
+ PL_expect = XSTATE; ;}
+ break;
+
+ case 14:
+#line 145 "perly.y"
+ { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
+ PL_expect = XSTATE; ;}
+ break;
+
+ case 15:
+#line 151 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 16:
+#line 153 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 17:
+#line 155 "perly.y"
+ { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
+ break;
+
+ case 18:
+#line 157 "perly.y"
+ { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
+ break;
+
+ case 19:
+#line 159 "perly.y"
+ { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); ;}
+ break;
+
+ case 20:
+#line 161 "perly.y"
+ { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);;}
+ break;
+
+ case 21:
+#line 163 "perly.y"
+ { yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
+ Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); ;}
+ break;
+
+ case 22:
+#line 169 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 23:
+#line 171 "perly.y"
+ { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); ;}
+ break;
+
+ case 24:
+#line 173 "perly.y"
+ { PL_copline = (line_t)yyvsp[-5].ival;
+ yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
+ PL_hints |= HINT_BLOCK_SCOPE; ;}
+ break;
+
+ case 25:
+#line 180 "perly.y"
+ { PL_copline = (line_t)yyvsp[-6].ival;
+ yyval.opval = block_end(yyvsp[-4].ival,
+ newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
+ break;
+
+ case 26:
+#line 184 "perly.y"
+ { PL_copline = (line_t)yyvsp[-6].ival;
+ yyval.opval = block_end(yyvsp[-4].ival,
+ newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
+ break;
+
+ case 27:
+#line 191 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 28:
+#line 193 "perly.y"
+ { yyval.opval = scope(yyvsp[0].opval); ;}
+ break;
+
+ case 29:
+#line 198 "perly.y"
+ { PL_copline = (line_t)yyvsp[-6].ival;
+ yyval.opval = block_end(yyvsp[-4].ival,
+ newSTATEOP(0, yyvsp[-7].pval,
+ newWHILEOP(0, 1, (LOOP*)Nullop,
+ yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); ;}
+ break;
+
+ case 30:
+#line 204 "perly.y"
+ { PL_copline = (line_t)yyvsp[-6].ival;
+ yyval.opval = block_end(yyvsp[-4].ival,
+ newSTATEOP(0, yyvsp[-7].pval,
+ newWHILEOP(0, 1, (LOOP*)Nullop,
+ yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); ;}
+ break;
+
+ case 31:
+#line 210 "perly.y"
+ { yyval.opval = block_end(yyvsp[-6].ival,
+ newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
+ break;
+
+ case 32:
+#line 213 "perly.y"
+ { yyval.opval = block_end(yyvsp[-4].ival,
+ newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
+ yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
+ break;
+
+ case 33:
+#line 217 "perly.y"
+ { yyval.opval = block_end(yyvsp[-4].ival,
+ newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
+ break;
+
+ case 34:
+#line 221 "perly.y"
+ { OP *forop;
+ PL_copline = (line_t)yyvsp[-9].ival;
+ forop = newSTATEOP(0, yyvsp[-10].pval,
+ newWHILEOP(0, 1, (LOOP*)Nullop,
+ yyvsp[-9].ival, scalar(yyvsp[-4].opval),
+ yyvsp[0].opval, yyvsp[-2].opval));
+ if (yyvsp[-6].opval) {
+ forop = append_elem(OP_LINESEQ,
+ newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch),
+ yyvsp[-6].opval),
+ forop);
+ }
+
+ yyval.opval = block_end(yyvsp[-7].ival, forop); ;}
+ break;
+
+ case 35:
+#line 236 "perly.y"
+ { yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
+ newWHILEOP(0, 1, (LOOP*)Nullop,
+ NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); ;}
+ break;
+
+ case 36:
+#line 243 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 38:
+#line 249 "perly.y"
+ { (void)scan_num("1", &yylval); yyval.opval = yylval.opval; ;}
+ break;
+
+ case 40:
+#line 255 "perly.y"
+ { yyval.opval = invert(scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 41:
+#line 260 "perly.y"
+ { yyval.opval = yyvsp[0].opval; intro_my(); ;}
+ break;
+
+ case 42:
+#line 264 "perly.y"
+ { yyval.opval = yyvsp[0].opval; intro_my(); ;}
+ break;
+
+ case 43:
+#line 268 "perly.y"
+ { yyval.opval = yyvsp[0].opval; intro_my(); ;}
+ break;
+
+ case 44:
+#line 272 "perly.y"
+ { yyval.opval = yyvsp[0].opval; intro_my(); ;}
+ break;
+
+ case 45:
+#line 277 "perly.y"
+ { yyval.pval = Nullch; ;}
+ break;
+
+ case 47:
+#line 283 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 48:
+#line 285 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 49:
+#line 287 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 50:
+#line 289 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 51:
+#line 291 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 52:
+#line 295 "perly.y"
+ { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 53:
+#line 298 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 54:
+#line 299 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 55:
+#line 304 "perly.y"
+ { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 56:
+#line 309 "perly.y"
+ { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 57:
+#line 313 "perly.y"
+ { yyval.ival = start_subparse(FALSE, 0); ;}
+ break;
+
+ case 58:
+#line 317 "perly.y"
+ { yyval.ival = start_subparse(FALSE, CVf_ANON); ;}
+ break;
+
+ case 59:
+#line 321 "perly.y"
+ { yyval.ival = start_subparse(TRUE, 0); ;}
+ break;
+
+ case 60:
+#line 325 "perly.y"
+ { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
+ if (strEQ(name, "BEGIN") || strEQ(name, "END")
+ || strEQ(name, "INIT") || strEQ(name, "CHECK"))
+ CvSPECIAL_on(PL_compcv);
+ yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 61:
+#line 334 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 63:
+#line 340 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 64:
+#line 342 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 65:
+#line 344 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 66:
+#line 349 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 67:
+#line 351 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 68:
+#line 355 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 69:
+#line 356 "perly.y"
+ { yyval.opval = Nullop; PL_expect = XSTATE; ;}
+ break;
+
+ case 70:
+#line 360 "perly.y"
+ { package(yyvsp[-1].opval); ;}
+ break;
+
+ case 71:
+#line 364 "perly.y"
+ { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
+ break;
+
+ case 72:
+#line 366 "perly.y"
+ { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); ;}
+ break;
+
+ case 73:
+#line 371 "perly.y"
+ { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 74:
+#line 373 "perly.y"
+ { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 75:
+#line 375 "perly.y"
+ { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 77:
+#line 381 "perly.y"
+ { yyval.opval = yyvsp[-1].opval; ;}
+ break;
+
+ case 78:
+#line 383 "perly.y"
+ { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 80:
+#line 389 "perly.y"
+ { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
+ prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); ;}
+ break;
+
+ case 81:
+#line 392 "perly.y"
+ { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
+ prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); ;}
+ break;
+
+ case 82:
+#line 395 "perly.y"
+ { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST,
+ prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
+ newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); ;}
+ break;
+
+ case 83:
+#line 400 "perly.y"
+ { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, scalar(yyvsp[-2].opval),
+ newUNOP(OP_METHOD, 0, yyvsp[0].opval))); ;}
+ break;
+
+ case 84:
+#line 404 "perly.y"
+ { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST,
+ prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
+ newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); ;}
+ break;
+
+ case 85:
+#line 409 "perly.y"
+ { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST,
+ prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
+ newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); ;}
+ break;
+
+ case 86:
+#line 414 "perly.y"
+ { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
+ break;
+
+ case 87:
+#line 416 "perly.y"
+ { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
+ break;
+
+ case 88:
+#line 418 "perly.y"
+ { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); ;}
+ break;
+
+ case 89:
+#line 420 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST,
+ prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); ;}
+ break;
+
+ case 92:
+#line 434 "perly.y"
+ { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 93:
+#line 437 "perly.y"
+ { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); ;}
+ break;
+
+ case 94:
+#line 439 "perly.y"
+ { yyval.opval = newBINOP(OP_AELEM, 0,
+ ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
+ scalar(yyvsp[-1].opval));;}
+ break;
+
+ case 95:
+#line 443 "perly.y"
+ { yyval.opval = newBINOP(OP_AELEM, 0,
+ ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
+ scalar(yyvsp[-1].opval));;}
+ break;
+
+ case 96:
+#line 447 "perly.y"
+ { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 97:
+#line 450 "perly.y"
+ { yyval.opval = newBINOP(OP_HELEM, 0,
+ ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
+ jmaybe(yyvsp[-2].opval));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 98:
+#line 455 "perly.y"
+ { yyval.opval = newBINOP(OP_HELEM, 0,
+ ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
+ jmaybe(yyvsp[-2].opval));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 99:
+#line 460 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ newCVREF(0, scalar(yyvsp[-3].opval))); ;}
+ break;
+
+ case 100:
+#line 463 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[-1].opval,
+ newCVREF(0, scalar(yyvsp[-4].opval)))); ;}
+ break;
+
+ case 101:
+#line 468 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[-1].opval,
+ newCVREF(0, scalar(yyvsp[-3].opval)))); ;}
+ break;
+
+ case 102:
+#line 472 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ newCVREF(0, scalar(yyvsp[-2].opval))); ;}
+ break;
+
+ case 103:
+#line 478 "perly.y"
+ { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); ;}
+ break;
+
+ case 104:
+#line 480 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 105:
+#line 482 "perly.y"
+ { if (yyvsp[-1].ival != OP_REPEAT)
+ scalar(yyvsp[-2].opval);
+ yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 106:
+#line 486 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 107:
+#line 488 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 108:
+#line 490 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 109:
+#line 492 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 110:
+#line 494 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 111:
+#line 496 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 112:
+#line 498 "perly.y"
+ { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));;}
+ break;
+
+ case 113:
+#line 500 "perly.y"
+ { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 114:
+#line 502 "perly.y"
+ { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 115:
+#line 504 "perly.y"
+ { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 116:
+#line 506 "perly.y"
+ { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 117:
+#line 511 "perly.y"
+ { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 118:
+#line 513 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 119:
+#line 515 "perly.y"
+ { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 120:
+#line 517 "perly.y"
+ { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));;}
+ break;
+
+ case 121:
+#line 519 "perly.y"
+ { yyval.opval = newUNOP(OP_POSTINC, 0,
+ mod(scalar(yyvsp[-1].opval), OP_POSTINC)); ;}
+ break;
+
+ case 122:
+#line 522 "perly.y"
+ { yyval.opval = newUNOP(OP_POSTDEC, 0,
+ mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); ;}
+ break;
+
+ case 123:
+#line 525 "perly.y"
+ { yyval.opval = newUNOP(OP_PREINC, 0,
+ mod(scalar(yyvsp[0].opval), OP_PREINC)); ;}
+ break;
+
+ case 124:
+#line 528 "perly.y"
+ { yyval.opval = newUNOP(OP_PREDEC, 0,
+ mod(scalar(yyvsp[0].opval), OP_PREDEC)); ;}
+ break;
+
+ case 125:
+#line 535 "perly.y"
+ { yyval.opval = newANONLIST(yyvsp[-1].opval); ;}
+ break;
+
+ case 126:
+#line 537 "perly.y"
+ { yyval.opval = newANONLIST(Nullop); ;}
+ break;
+
+ case 127:
+#line 539 "perly.y"
+ { yyval.opval = newANONHASH(yyvsp[-2].opval); ;}
+ break;
+
+ case 128:
+#line 541 "perly.y"
+ { yyval.opval = newANONHASH(Nullop); ;}
+ break;
+
+ case 129:
+#line 543 "perly.y"
+ { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 130:
+#line 549 "perly.y"
+ { yyval.opval = dofile(yyvsp[0].opval); ;}
+ break;
+
+ case 131:
+#line 551 "perly.y"
+ { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); ;}
+ break;
+
+ case 132:
+#line 553 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB,
+ OPf_SPECIAL|OPf_STACKED,
+ prepend_elem(OP_LIST,
+ scalar(newCVREF(
+ (OPpENTERSUB_AMPER<<8),
+ scalar(yyvsp[-2].opval)
+ )),Nullop)); dep();;}
+ break;
+
+ case 133:
+#line 561 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB,
+ OPf_SPECIAL|OPf_STACKED,
+ append_elem(OP_LIST,
+ yyvsp[-1].opval,
+ scalar(newCVREF(
+ (OPpENTERSUB_AMPER<<8),
+ scalar(yyvsp[-3].opval)
+ )))); dep();;}
+ break;
+
+ case 134:
+#line 570 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
+ prepend_elem(OP_LIST,
+ scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();;}
+ break;
+
+ case 135:
+#line 574 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
+ prepend_elem(OP_LIST,
+ yyvsp[-1].opval,
+ scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();;}
+ break;
+
+ case 140:
+#line 586 "perly.y"
+ { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 141:
+#line 588 "perly.y"
+ { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); ;}
+ break;
+
+ case 142:
+#line 590 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 143:
+#line 592 "perly.y"
+ { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
+ break;
+
+ case 144:
+#line 594 "perly.y"
+ { yyval.opval = sawparens(yyvsp[-1].opval); ;}
+ break;
+
+ case 145:
+#line 596 "perly.y"
+ { yyval.opval = sawparens(newNULLLIST()); ;}
+ break;
+
+ case 146:
+#line 598 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 147:
+#line 600 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 148:
+#line 602 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 149:
+#line 604 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 150:
+#line 606 "perly.y"
+ { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));;}
+ break;
+
+ case 151:
+#line 608 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 152:
+#line 610 "perly.y"
+ { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); ;}
+ break;
+
+ case 153:
+#line 612 "perly.y"
+ { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); ;}
+ break;
+
+ case 154:
+#line 614 "perly.y"
+ { yyval.opval = prepend_elem(OP_ASLICE,
+ newOP(OP_PUSHMARK, 0),
+ newLISTOP(OP_ASLICE, 0,
+ list(yyvsp[-1].opval),
+ ref(yyvsp[-3].opval, OP_ASLICE))); ;}
+ break;
+
+ case 155:
+#line 620 "perly.y"
+ { yyval.opval = prepend_elem(OP_HSLICE,
+ newOP(OP_PUSHMARK, 0),
+ newLISTOP(OP_HSLICE, 0,
+ list(yyvsp[-2].opval),
+ ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 156:
+#line 627 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 157:
+#line 629 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 158:
+#line 631 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); ;}
+ break;
+
+ case 159:
+#line 633 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); ;}
+ break;
+
+ case 160:
+#line 636 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
+ break;
+
+ case 161:
+#line 639 "perly.y"
+ { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
+ PL_hints |= HINT_BLOCK_SCOPE; ;}
+ break;
+
+ case 162:
+#line 642 "perly.y"
+ { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); ;}
+ break;
+
+ case 163:
+#line 644 "perly.y"
+ { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 164:
+#line 646 "perly.y"
+ { yyval.opval = newOP(yyvsp[0].ival, 0); ;}
+ break;
+
+ case 165:
+#line 648 "perly.y"
+ { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
+ break;
+
+ case 166:
+#line 650 "perly.y"
+ { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
+ break;
+
+ case 167:
+#line 652 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
+ break;
+
+ case 168:
+#line 655 "perly.y"
+ { yyval.opval = newOP(yyvsp[0].ival, 0); ;}
+ break;
+
+ case 169:
+#line 657 "perly.y"
+ { yyval.opval = newOP(yyvsp[-2].ival, 0); ;}
+ break;
+
+ case 170:
+#line 659 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 171:
+#line 662 "perly.y"
+ { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); ;}
+ break;
+
+ case 172:
+#line 664 "perly.y"
+ { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
+ break;
+
+ case 173:
+#line 666 "perly.y"
+ { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); ;}
+ break;
+
+ case 174:
+#line 668 "perly.y"
+ { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); ;}
+ break;
+
+ case 177:
+#line 675 "perly.y"
+ { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); ;}
+ break;
+
+ case 178:
+#line 677 "perly.y"
+ { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
+ break;
+
+ case 179:
+#line 682 "perly.y"
+ { yyval.opval = sawparens(yyvsp[-1].opval); ;}
+ break;
+
+ case 180:
+#line 684 "perly.y"
+ { yyval.opval = sawparens(newNULLLIST()); ;}
+ break;
+
+ case 181:
+#line 686 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 182:
+#line 688 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 183:
+#line 690 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 184:
+#line 695 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 185:
+#line 697 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 186:
+#line 701 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 187:
+#line 703 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 188:
+#line 705 "perly.y"
+ { yyval.opval = yyvsp[-1].opval; ;}
+ break;
+
+ case 189:
+#line 711 "perly.y"
+ { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); ;}
+ break;
+
+ case 190:
+#line 715 "perly.y"
+ { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); ;}
+ break;
+
+ case 191:
+#line 719 "perly.y"
+ { yyval.opval = newSVREF(yyvsp[0].opval); ;}
+ break;
+
+ case 192:
+#line 723 "perly.y"
+ { yyval.opval = newAVREF(yyvsp[0].opval); ;}
+ break;
+
+ case 193:
+#line 727 "perly.y"
+ { yyval.opval = newHVREF(yyvsp[0].opval); ;}
+ break;
+
+ case 194:
+#line 731 "perly.y"
+ { yyval.opval = newAVREF(yyvsp[0].opval); ;}
+ break;
+
+ case 195:
+#line 735 "perly.y"
+ { yyval.opval = newGVREF(0,yyvsp[0].opval); ;}
+ break;
+
+ case 196:
+#line 740 "perly.y"
+ { yyval.opval = scalar(yyvsp[0].opval); ;}
+ break;
+
+ case 197:
+#line 742 "perly.y"
+ { yyval.opval = scalar(yyvsp[0].opval); ;}
+ break;
+
+ case 198:
+#line 744 "perly.y"
+ { yyval.opval = scope(yyvsp[0].opval); ;}
+ break;
+
+ case 199:
+#line 747 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+
+
diff --git a/perly.c b/perly.c
index 3df92a391e..3a7e9bce58 100644
--- a/perly.c
+++ b/perly.c
@@ -1,2648 +1,665 @@
-#ifndef lint
-/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
-#endif
-#define YYBYACC 1
-#line 16 "perly.y"
+/* perly.c
+ *
+ * Copyright (c) 2004 Larry Wall
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ * Note that this file was originally generated as an output from
+ * GNU bison version 1.875, but now the code is statically maintained
+ * and edited; the bits that are dependent on perly.y are now #included
+ * from the files perly.tab and perly.act.
+ *
+ * Here is an important copyright statement from the original, generated
+ * file:
+ *
+ * As a special exception, when this file is copied by Bison into a
+ * Bison output file, you may use that output file without
+ * restriction. This special exception was added by the Free
+ * Software Foundation in version 1.24 of Bison.
+ */
+
+
+/* allow stack size to grow effectively without limit */
+#define YYMAXDEPTH 10000000
+
#include "EXTERN.h"
#define PERL_IN_PERLY_C
#include "perl.h"
-#ifdef EBCDIC
-#undef YYDEBUG
-#endif
-#define dep() deprecate_old("\"do\" to call subroutines")
-
-/* stuff included here to make perly_c.diff apply better */
-
-#define yydebug PL_yydebug
-#define yynerrs PL_yynerrs
-#define yyerrflag PL_yyerrflag
-#define yychar PL_yychar
-#define yyval PL_yyval
-#define yylval PL_yylval
-
-struct ysv {
- short* yyss;
- YYSTYPE* yyvs;
- int oldyydebug;
- int oldyynerrs;
- int oldyyerrflag;
- int oldyychar;
- YYSTYPE oldyyval;
- YYSTYPE oldyylval;
-};
-
-static void yydestruct(pTHX_ void *ptr);
-
-#line 51 "perly.y"
-#if 0 /* get this from perly.h instead */
-#line 54 "perly.y"
-typedef union {
- I32 ival;
- char *pval;
- OP *opval;
- GV *gvval;
-} YYSTYPE;
-#line 62 "perly.y"
-#endif /* 0 */
-
-#ifdef USE_PURE_BISON
-#define YYLEX_PARAM (&yychar)
-#define yylex yylex_r
-#endif
-#line 54 "perly.c"
-#define YYERRCODE 256
-static short yylhs[] = { -1,
- 0, 9, 7, 6, 10, 8, 11, 11, 11, 12,
- 12, 12, 12, 25, 25, 25, 25, 25, 25, 25,
- 15, 15, 15, 14, 14, 43, 43, 13, 13, 13,
- 13, 13, 13, 13, 27, 27, 28, 28, 29, 30,
- 31, 32, 33, 54, 54, 1, 1, 1, 1, 1,
- 2, 39, 39, 47, 55, 3, 4, 5, 40, 41,
- 41, 45, 45, 45, 46, 46, 42, 42, 56, 58,
- 57, 16, 16, 16, 16, 26, 26, 26, 37, 37,
- 37, 37, 37, 37, 37, 37, 59, 37, 38, 38,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 50, 50, 50, 50, 50, 50, 50, 50, 50,
- 50, 50, 50, 50, 50, 51, 51, 51, 51, 51,
- 51, 51, 51, 52, 52, 52, 52, 52, 53, 53,
- 53, 53, 53, 53, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 48, 48, 49, 49, 49,
- 49, 49, 34, 34, 35, 35, 35, 44, 24, 19,
- 20, 21, 22, 23, 36, 36, 36, 36,
-};
-static short yylen[] = { 2,
- 2, 4, 0, 0, 4, 0, 0, 2, 2, 2,
- 1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
- 0, 2, 6, 7, 7, 0, 2, 8, 8, 10,
- 9, 8, 11, 3, 0, 1, 0, 1, 1, 1,
- 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
- 4, 1, 0, 6, 6, 0, 0, 0, 1, 0,
- 1, 0, 2, 1, 2, 1, 1, 1, 3, 0,
- 7, 3, 3, 3, 1, 2, 3, 1, 3, 5,
- 6, 3, 3, 5, 2, 4, 0, 5, 1, 1,
- 5, 4, 5, 4, 5, 6, 5, 4, 5, 4,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 2, 2, 2, 2, 2,
- 2, 2, 2, 3, 2, 4, 3, 5, 2, 2,
- 4, 5, 4, 5, 1, 1, 1, 1, 5, 2,
- 1, 2, 3, 2, 1, 1, 1, 1, 1, 1,
- 6, 5, 4, 5, 1, 1, 3, 4, 3, 1,
- 2, 2, 1, 2, 2, 2, 1, 3, 1, 3,
- 4, 4, 6, 1, 1, 3, 2, 3, 2, 1,
- 1, 1, 0, 1, 0, 1, 2, 1, 2, 2,
- 2, 2, 2, 2, 1, 1, 1, 1,
-};
-static short yydefred[] = { 4,
- 0, 7, 0, 45, 58, 56, 0, 56, 56, 8,
- 46, 9, 11, 48, 0, 47, 49, 50, 0, 0,
- 0, 70, 0, 14, 3, 174, 0, 0, 155, 0,
- 169, 0, 57, 57, 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,
- 12, 0, 0, 0, 0, 0, 0, 0, 10, 0,
- 0, 0, 0, 0, 147, 149, 0, 0, 0, 0,
- 175, 141, 135, 136, 137, 138, 52, 0, 59, 0,
- 69, 0, 0, 7, 195, 198, 197, 196, 0, 0,
- 0, 0, 0, 0, 3, 3, 3, 3, 3, 3,
- 0, 0, 0, 0, 0, 164, 0, 0, 0, 0,
- 85, 0, 193, 0, 130, 0, 0, 0, 0, 0,
- 0, 0, 180, 182, 181, 0, 189, 0, 0, 0,
- 0, 0, 0, 0, 0, 125, 0, 0, 0, 190,
- 191, 192, 194, 0, 34, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 120, 121,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13, 0, 51, 61, 0, 0, 0, 0, 83, 0,
- 0, 87, 0, 0, 0, 0, 0, 0, 0, 3,
- 168, 170, 0, 0, 0, 0, 0, 0, 0, 127,
- 0, 159, 179, 0, 0, 176, 0, 0, 124, 27,
- 0, 0, 19, 0, 0, 0, 0, 0, 72, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 89, 0, 0, 90, 0,
- 0, 101, 0, 0, 0, 0, 0, 0, 0, 157,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 172,
- 0, 0, 0, 42, 0, 43, 0, 0, 0, 0,
- 188, 0, 0, 36, 41, 0, 0, 0, 171, 187,
- 86, 0, 131, 0, 133, 0, 126, 178, 65, 0,
- 0, 0, 0, 98, 0, 0, 0, 0, 100, 94,
- 0, 92, 0, 153, 0, 158, 63, 68, 67, 55,
- 0, 54, 84, 0, 88, 128, 0, 0, 0, 0,
- 0, 0, 0, 0, 80, 132, 134, 152, 0, 0,
- 0, 99, 93, 0, 97, 95, 154, 91, 71, 173,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 151,
- 96, 81, 7, 28, 29, 0, 0, 24, 25, 0,
- 32, 0, 0, 0, 22, 0, 0, 0, 31, 5,
- 0, 30, 0, 0, 33, 0, 23,
-};
-static short yydgoto[] = { 1,
- 10, 11, 20, 103, 19, 2, 94, 373, 97, 362,
- 3, 12, 13, 69, 378, 288, 71, 72, 73, 74,
- 75, 76, 77, 78, 294, 80, 295, 284, 286, 289,
- 297, 285, 287, 121, 215, 99, 81, 260, 88, 90,
- 195, 330, 155, 292, 274, 226, 14, 82, 136, 83,
- 84, 85, 86, 15, 16, 17, 18, 92, 281,
-};
-static short yysindex[] = { 0,
- 0, 0, -236, 0, 0, 0, -231, 0, 0, 0,
- 0, 0, 0, 0, 819, 0, 0, 0, -211, -209,
- 3, 0, -209, 0, 0, 0, -32, -32, 0, 23,
- 0, 2213, 0, 0, 28, 30, 32, 33, -18, 2213,
- 42, 52, 64, 1004, 940, -32, 1149, 1268, -168, 2213,
- 174, -32, 2213, 2213, 2213, 2213, 2213, 2213, 1328, 1413,
- 0, 2213, 2213, -32, -32, -32, -32, -173, 0, 607,
- 404, -27, -71, -67, 0, 0, -12, 68, 66, 94,
- 0, 0, 0, 0, 0, 0, 0, 27, 0, -108,
- 0, -100, -108, 0, 0, 0, 0, 0, 2213, 122,
- 2213, 743, 27, -108, 0, 0, 0, 0, 0, 0,
- 125, 404, 135, 1454, 940, 0, 743, 0, -71, 94,
- 0, 2213, 0, 140, 0, 743, -25, 38, -8, 2213,
- 743, 1562, 0, 0, 0, -114, 0, 94, 245, 245,
- 245, -123, -123, 106, -34, 0, -53, 245, 245, 0,
- 0, 0, 0, 27, 0, 2213, 2213, 2213, 2213, 2213,
- 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
- 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 0, 0,
- -26, 2213, 1723, 2213, 2213, 2213, 2213, 2213, 2213, 1796,
- 0, 2213, 0, 0, -90, -48, -90, 285, 0, 2213,
- -35, 0, -90, 2213, 2213, 2213, 2213, 182, 1859, 0,
- 0, 0, -2, -42, 180, 2213, 94, 1932, 2004, 0,
- 102, 0, 0, 13, -21, 0, 2213, 142, 0, 0,
- 184, 184, 0, 184, 184, 184, -51, -51, 0, 296,
- 743, 386, 683, -158, 404, 643, 1034, 1034, 1067, 1345,
- 960, -112, 245, 245, 2213, 0, 2140, 2213, 0, 216,
- 120, 0, 40, 127, 123, 214, 132, 217, 136, 0,
- 77, 404, -3, -47, 2213, -47, 0, 220, 2213, 0,
- 2213, 27, 184, 0, 224, 0, 240, 184, 244, 246,
- 0, 261, 607, 0, 0, 267, 227, 2213, 0, 0,
- 0, 88, 0, 95, 0, 98, 0, 0, 0, 236,
- 2213, 2213, 139, 0, 117, 239, 2213, 194, 0, 0,
- 206, 0, 213, 0, 218, 0, 0, 0, 0, 0,
- 293, 0, 0, 585, 0, 0, 221, 221, 221, 221,
- 2213, 221, 2213, 325, 0, 0, 0, 0, 243, 703,
- 255, 0, 0, 327, 0, 0, 0, 0, 0, 0,
- 0, -173, -173, -240, -240, 351, -173, 332, 221, 0,
- 0, 0, 0, 0, 0, 221, 354, 0, 0, 221,
- 0, 1859, -173, 350, 0, 2213, -173, 360, 0, 0,
- 361, 0, 221, 221, 0, -240, 0,
-};
-static short yyrindex[] = { 0,
- 0, 0, 371, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 289, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
- 2282, 0, 0, 2401, 2566, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 90, 0, -16,
- 1607, 2620, 2673, 2721, 0, 0, 2769, 2856, 0, -38,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -54,
- 0, 0, -54, 0, 0, 0, 0, 0, 2566, 0,
- 0, 4274, 0, -115, 0, 0, 0, 0, 0, 0,
- 0, 1886, 0, 0, 374, 0, 4339, 467, 532, 3224,
- 0, 0, 0, 3005, 0, 4394, 2673, 0, 0, 2566,
- 4404, 0, 0, 0, 0, 3055, 0, 3459, 3695, 3746,
- 3801, 3582, 3630, 3127, 0, 0, 0, 3866, 3914, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3175, 0, 0, -43, 0, -43, 880, 0, 374,
- 0, 0, 303, 390, 0, 0, 0, 0, 389, 0,
- 0, 0, 0, 422, 0, 0, 3510, 0, 0, 0,
- 0, 0, 0, 0, 3291, 0, 0, 3346, 0, 0,
- 8, 12, 0, 61, 62, 65, 1479, 1642, 0, 2274,
- 4445, 4493, 4120, 4168, 2421, 0, 4697, 4745, 4630, 4591,
- 4543, 4219, 4000, 4055, 0, 0, 0, 0, 0, 3411,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2474, -30, 0, 405, 0, 0, 0, 0, 0,
- 2566, 0, 78, 0, 0, 0, 0, 432, 0, 0,
- 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 374, 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, 415, 0, 0, 0, 0, 0, 0, 1201,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 90, 90, 186, 186, 0, 90, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 435, 90, 880, 0, 0, 90, 0, 0, 0,
- 0, 0, 0, 0, 0, 186, 0,
-};
-static short yygindex[] = { 0,
- 0, 0, 50, 453, 0, 0, -22, 0, 63, 153,
- -93, 0, 0, 0, -346, -15, 2480, 0, 1744, 437,
- 439, 0, 0, 0, 481, 755, 0, 0, 341, -186,
- 124, 170, 313, -88, -183, 49, 0, 0, 0, 498,
- -66, 247, 225, 0, -156, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,
-};
-#define YYTABLESIZE 5051
-static short yytable[] = { 70,
- 198, 300, 75, 64, 60, 280, 228, 60, 279, 64,
- 199, 328, 183, 257, 219, 62, 278, 64, 379, 186,
- 75, 110, 296, 188, 15, 21, 197, 170, 64, 4,
- 5, 6, 129, 7, 8, 376, 377, 203, 299, 229,
- 276, 222, 15, 145, 147, 87, 282, 89, 18, 397,
- 221, 185, 39, 308, 75, 187, 160, 22, 23, 160,
- 9, 91, 101, 184, 258, 186, 18, 105, 60, 106,
- 39, 107, 108, 160, 160, 25, 100, 68, 160, 62,
- 319, 113, 204, 205, 206, 207, 208, 209, 130, 26,
- 25, 114, 64, 122, 123, 182, 255, 185, 213, 214,
- 137, 16, 17, 115, 154, 20, 116, 190, 160, 125,
- 189, 344, 150, 151, 152, 153, 224, 326, 38, 16,
- 17, 40, 26, 20, 191, 26, 26, 26, 345, 26,
- 167, 26, 26, 354, 26, 346, 38, 192, 347, 15,
- 231, 232, 234, 235, 236, 237, 238, 239, 26, 25,
- 193, 194, 177, 26, 366, 178, 196, 352, 179, 180,
- 181, 200, 220, 216, 210, 202, 261, 263, 264, 265,
- 266, 267, 268, 269, 271, 211, 167, 168, 318, 218,
- 26, 321, 60, 225, 214, 21, 331, 298, 283, 232,
- 323, 232, 335, 293, 325, 181, 227, 351, 177, 391,
- 302, 178, 304, 306, 179, 180, 181, 273, 275, 64,
- 66, 310, 26, 132, 26, 26, 230, 64, 21, 320,
- 301, 21, 21, 21, 95, 21, 307, 21, 21, 96,
- 21, 256, 311, 75, 75, 75, 75, 65, 309, 313,
- 75, 315, 316, 60, 21, 164, 161, 162, 163, 21,
- 163, 165, 166, 167, 168, 317, 327, 161, 162, 163,
- 333, 75, 75, 75, 337, 161, 162, 163, 169, 171,
- 172, 173, 174, 175, 176, 177, 21, 109, 178, 384,
- 338, 179, 180, 181, 339, 343, 340, 160, 160, 160,
- 160, 161, 162, 163, 160, 349, 160, 161, 162, 163,
- 341, 214, 160, 160, 160, 160, 322, 342, 21, 324,
- 21, 21, 161, 162, 163, 160, 160, 160, 355, 160,
- 160, 160, 160, 160, 160, 160, 160, 283, 348, 160,
- 356, 353, 160, 160, 160, 370, 329, 357, 329, 161,
- 162, 163, 358, 361, 336, 26, 26, 26, 26, 26,
- 26, 359, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 369, 70, 372, 26, 26,
- 1, 26, 26, 26, 26, 26, 161, 162, 163, 371,
- 26, 26, 26, 26, 26, 26, 26, 161, 162, 163,
- 382, 380, 26, 386, 161, 162, 163, 161, 162, 163,
- 393, 394, 26, 44, 26, 26, 44, 44, 44, 277,
- 44, 53, 44, 44, 185, 44, 161, 162, 163, 161,
- 162, 163, 161, 162, 163, 62, 161, 162, 163, 44,
- 37, 161, 162, 163, 44, 161, 162, 163, 161, 162,
- 163, 21, 21, 21, 21, 21, 21, 35, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 44, 186, 183, 21, 21, 170, 21, 21, 21,
- 21, 21, 40, 37, 390, 35, 21, 21, 21, 21,
- 21, 21, 21, 161, 162, 163, 104, 134, 21, 135,
- 363, 364, 365, 44, 367, 79, 44, 233, 21, 195,
- 21, 21, 195, 195, 195, 388, 195, 174, 195, 195,
- 174, 195, 368, 161, 162, 163, 161, 162, 163, 290,
- 93, 383, 332, 0, 174, 174, 0, 0, 385, 174,
- 195, 0, 387, 0, 0, 161, 162, 163, 161, 162,
- 163, 0, 161, 162, 163, 395, 396, 0, 0, 0,
- 4, 5, 6, 0, 7, 8, 0, 195, 178, 174,
- 0, 179, 180, 181, 196, 0, 0, 196, 196, 196,
- 0, 196, 145, 196, 196, 145, 196, 0, 0, 0,
- 0, 9, 165, 166, 167, 168, 374, 375, 0, 145,
- 145, 381, 195, 0, 145, 196, 0, 0, 0, 0,
- 171, 172, 173, 174, 175, 176, 177, 389, 0, 178,
- 0, 392, 179, 180, 181, 4, 5, 6, 0, 7,
- 8, 0, 0, 0, 145, 360, 44, 44, 44, 44,
- 44, 44, 0, 44, 44, 44, 0, 0, 0, 44,
- 0, 0, 44, 44, 44, 44, 9, 170, 0, 44,
- 44, 0, 44, 44, 44, 44, 44, 196, 0, 0,
- 0, 44, 44, 44, 44, 44, 44, 0, 0, 0,
- 0, 0, 165, 44, 167, 168, 0, 0, 0, 0,
- 0, 0, 0, 44, 164, 44, 44, 0, 0, 0,
- 165, 166, 167, 168, 0, 176, 177, 0, 0, 178,
- 312, 0, 179, 180, 181, 170, 0, 169, 171, 172,
- 173, 174, 175, 176, 177, 0, 0, 178, 0, 0,
- 179, 180, 181, 195, 195, 195, 195, 195, 0, 195,
- 195, 195, 0, 0, 0, 195, 0, 0, 174, 174,
- 174, 174, 0, 0, 0, 174, 195, 174, 195, 195,
- 195, 195, 195, 174, 174, 174, 174, 195, 195, 195,
- 195, 195, 195, 0, 0, 170, 174, 174, 174, 195,
- 174, 174, 174, 174, 174, 174, 174, 174, 0, 195,
- 174, 195, 195, 174, 174, 174, 0, 0, 196, 196,
- 196, 196, 196, 0, 196, 196, 196, 0, 0, 120,
- 196, 0, 0, 145, 145, 145, 145, 138, 0, 0,
- 145, 196, 145, 196, 196, 196, 196, 196, 145, 145,
- 145, 145, 196, 196, 196, 196, 196, 196, 0, 0,
- 0, 145, 145, 145, 196, 145, 145, 145, 145, 145,
- 145, 145, 145, 0, 196, 145, 196, 196, 145, 145,
- 145, 54, 0, 120, 64, 66, 52, 0, 59, 0,
- 67, 63, 0, 62, 0, 164, 0, 0, 0, 0,
- 0, 165, 166, 167, 168, 0, 217, 61, 156, 157,
- 158, 159, 65, 0, 120, 160, 0, 0, 169, 171,
- 172, 173, 174, 175, 176, 177, 0, 0, 178, 0,
- 0, 179, 180, 181, 0, 0, 161, 162, 163, 60,
- 0, 0, 44, 0, 0, 44, 44, 44, 0, 44,
- 0, 44, 44, 164, 44, 0, 0, 0, 0, 165,
- 166, 167, 168, 0, 0, 0, 0, 0, 44, 0,
- 0, 25, 0, 44, 55, 0, 169, 171, 172, 173,
- 174, 175, 176, 177, 0, 0, 178, 0, 0, 179,
- 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
- 44, 0, 54, 0, 0, 64, 66, 52, 0, 59,
- 0, 67, 63, 164, 62, 0, 0, 0, 0, 165,
- 166, 167, 168, 177, 0, 0, 178, 0, 0, 179,
- 180, 181, 44, 65, 0, 44, 0, 171, 172, 173,
- 174, 175, 176, 177, 0, 0, 178, 0, 0, 179,
- 180, 181, 0, 0, 0, 0, 0, 0, 0, 120,
- 60, 167, 168, 0, 0, 120, 54, 0, 0, 64,
- 66, 52, 0, 59, 0, 67, 63, 0, 62, 0,
- 0, 0, 176, 177, 0, 0, 178, 0, 0, 179,
- 180, 181, 25, 0, 0, 55, 0, 65, 0, 0,
- 0, 0, 0, 0, 24, 26, 27, 28, 29, 30,
- 0, 31, 32, 33, 0, 0, 0, 34, 0, 0,
- 35, 36, 37, 38, 60, 0, 0, 39, 40, 0,
- 41, 42, 43, 44, 45, 0, 0, 0, 0, 46,
- 47, 48, 49, 50, 51, 0, 0, 0, 0, 0,
- 0, 53, 0, 0, 0, 0, 25, 0, 0, 55,
- 0, 56, 0, 57, 58, 44, 44, 44, 44, 44,
- 44, 0, 44, 44, 44, 0, 0, 0, 44, 0,
- 0, 44, 44, 44, 44, 0, 0, 0, 44, 44,
- 0, 44, 44, 44, 44, 44, 0, 0, 0, 0,
- 44, 44, 44, 44, 44, 44, 0, 0, 0, 0,
- 0, 54, 44, 0, 64, 66, 52, 0, 59, 0,
- 67, 63, 44, 62, 44, 44, 118, 27, 28, 29,
- 30, 96, 31, 32, 33, 0, 0, 0, 34, 0,
- 0, 0, 65, 0, 0, 0, 0, 0, 0, 40,
- 0, 41, 42, 43, 44, 45, 0, 0, 0, 0,
- 46, 47, 48, 49, 50, 51, 0, 0, 0, 60,
- 0, 139, 53, 0, 139, 0, 165, 166, 167, 168,
- 0, 0, 56, 0, 57, 58, 0, 0, 139, 139,
- 26, 27, 28, 29, 30, 0, 31, 32, 33, 176,
- 177, 25, 34, 178, 55, 0, 179, 180, 181, 0,
- 0, 0, 0, 40, 0, 41, 42, 43, 44, 45,
- 0, 0, 0, 139, 46, 47, 48, 49, 50, 51,
- 54, 0, 0, 64, 66, 52, 53, 59, 0, 67,
- 63, 0, 62, 0, 0, 0, 56, 0, 57, 58,
- 165, 166, 167, 168, 0, 0, 128, 0, 0, 0,
- 0, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 173, 174, 175, 176, 177, 0, 0, 178, 0, 0,
- 179, 180, 181, 165, 166, 167, 168, 0, 60, 0,
- 54, 0, 0, 64, 66, 52, 0, 59, 144, 67,
- 63, 0, 62, 0, 174, 175, 176, 177, 0, 0,
- 178, 0, 0, 179, 180, 181, 0, 0, 0, 0,
- 0, 65, 0, 55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 124, 27, 28, 29, 30,
- 0, 31, 32, 33, 0, 0, 0, 34, 60, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 0,
- 41, 42, 43, 44, 45, 0, 0, 0, 0, 46,
- 47, 48, 49, 50, 51, 54, 0, 0, 64, 66,
- 52, 53, 59, 55, 67, 63, 0, 62, 0, 0,
- 0, 56, 0, 57, 58, 0, 0, 0, 0, 0,
- 0, 0, 139, 139, 139, 139, 65, 0, 0, 139,
- 0, 0, 0, 0, 0, 0, 54, 0, 0, 64,
- 66, 52, 0, 59, 212, 67, 63, 0, 62, 0,
- 139, 139, 139, 60, 139, 146, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 65, 0, 73,
- 0, 0, 73, 0, 26, 27, 28, 29, 30, 0,
- 31, 32, 33, 0, 0, 0, 34, 73, 55, 0,
- 0, 0, 0, 0, 60, 0, 0, 40, 0, 41,
- 42, 43, 44, 45, 0, 0, 0, 0, 46, 47,
- 48, 49, 50, 51, 0, 0, 0, 0, 0, 0,
- 53, 73, 0, 0, 0, 0, 0, 0, 0, 55,
- 56, 0, 57, 58, 26, 27, 28, 29, 30, 0,
- 31, 32, 33, 0, 54, 0, 34, 64, 66, 52,
- 0, 59, 223, 67, 63, 0, 62, 40, 0, 41,
- 42, 43, 44, 45, 0, 0, 0, 0, 46, 47,
- 48, 49, 50, 51, 0, 65, 0, 0, 0, 0,
- 53, 165, 166, 167, 168, 0, 0, 0, 0, 0,
- 56, 0, 57, 58, 0, 0, 0, 78, 0, 0,
- 78, 0, 60, 175, 176, 177, 0, 0, 178, 0,
- 0, 179, 180, 181, 78, 78, 0, 0, 0, 26,
- 27, 28, 29, 30, 0, 31, 32, 33, 0, 0,
- 0, 34, 74, 0, 0, 74, 0, 55, 0, 0,
- 0, 0, 40, 0, 41, 42, 43, 44, 45, 78,
- 74, 0, 0, 46, 47, 48, 49, 50, 51, 0,
- 26, 27, 28, 29, 30, 53, 31, 32, 33, 0,
- 0, 0, 34, 0, 0, 56, 0, 57, 58, 0,
- 0, 0, 0, 40, 74, 41, 42, 43, 44, 45,
- 0, 0, 0, 0, 46, 47, 48, 49, 50, 51,
- 73, 73, 73, 73, 0, 54, 53, 73, 64, 66,
- 52, 0, 59, 262, 67, 63, 56, 62, 57, 58,
- 98, 98, 0, 0, 0, 0, 0, 0, 73, 73,
- 0, 0, 111, 0, 0, 0, 65, 0, 119, 98,
- 127, 0, 0, 0, 133, 98, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 98, 98, 98,
- 98, 0, 0, 60, 0, 0, 0, 0, 26, 27,
- 28, 29, 30, 0, 31, 32, 33, 0, 54, 0,
- 34, 64, 66, 52, 0, 59, 270, 67, 63, 0,
- 62, 40, 0, 41, 42, 43, 44, 45, 55, 0,
- 0, 0, 46, 47, 48, 49, 50, 51, 119, 65,
- 0, 0, 0, 0, 53, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56, 0, 57, 58, 78, 78,
- 78, 78, 0, 0, 0, 78, 60, 0, 0, 0,
- 0, 54, 0, 0, 64, 66, 52, 0, 59, 0,
- 67, 63, 0, 62, 0, 0, 78, 78, 78, 0,
- 0, 0, 0, 74, 74, 74, 74, 0, 0, 0,
- 74, 55, 65, 0, 259, 0, 161, 0, 0, 161,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 74, 74, 161, 161, 0, 0, 0, 0, 60,
- 0, 291, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 54, 0, 0, 64, 66, 52,
- 0, 59, 303, 67, 63, 0, 62, 0, 161, 26,
- 27, 28, 29, 30, 55, 31, 32, 33, 0, 0,
- 0, 34, 0, 0, 0, 65, 0, 0, 0, 0,
- 0, 0, 40, 0, 41, 42, 43, 44, 45, 0,
- 0, 0, 0, 46, 47, 48, 49, 50, 51, 0,
- 0, 0, 60, 0, 0, 53, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 56, 54, 57, 58, 64,
- 66, 52, 0, 59, 305, 67, 63, 0, 62, 0,
- 0, 0, 26, 27, 28, 29, 30, 55, 31, 32,
- 33, 0, 0, 0, 34, 0, 0, 65, 0, 0,
- 0, 0, 0, 0, 0, 40, 0, 41, 42, 43,
- 44, 45, 0, 0, 0, 0, 46, 47, 48, 49,
- 50, 51, 0, 0, 60, 0, 0, 0, 53, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56, 0,
- 57, 58, 0, 0, 24, 26, 27, 28, 29, 30,
- 0, 31, 32, 33, 0, 0, 0, 34, 0, 55,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 0,
- 41, 42, 43, 44, 45, 0, 0, 0, 0, 46,
- 47, 48, 49, 50, 51, 0, 0, 161, 161, 161,
- 161, 53, 0, 0, 161, 0, 0, 0, 0, 0,
- 0, 56, 54, 57, 58, 64, 66, 52, 0, 59,
- 314, 67, 63, 0, 62, 161, 161, 161, 26, 27,
- 28, 29, 30, 0, 31, 32, 33, 0, 0, 0,
- 34, 0, 0, 65, 0, 0, 0, 0, 0, 0,
- 0, 40, 0, 41, 42, 43, 44, 45, 0, 0,
- 0, 0, 46, 47, 48, 49, 50, 51, 0, 0,
- 60, 0, 0, 0, 53, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56, 54, 57, 58, 64, 66,
- 52, 0, 59, 0, 67, 63, 0, 62, 0, 0,
- 26, 27, 28, 29, 30, 55, 31, 32, 33, 0,
- 0, 0, 34, 0, 0, 0, 65, 0, 0, 0,
- 0, 0, 0, 40, 0, 41, 42, 43, 44, 45,
- 0, 0, 0, 0, 46, 47, 48, 49, 50, 51,
- 0, 0, 0, 60, 0, 0, 53, 0, 0, 0,
- 0, 0, 0, 0, 111, 0, 56, 111, 57, 58,
- 0, 0, 167, 0, 0, 167, 0, 0, 0, 0,
- 0, 111, 111, 0, 0, 0, 111, 0, 55, 167,
- 167, 0, 0, 0, 167, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 111, 0, 0, 0,
- 0, 0, 0, 0, 167, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 26, 27, 28, 29,
- 30, 0, 31, 32, 33, 0, 0, 0, 34, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
- 0, 41, 42, 43, 44, 45, 0, 0, 0, 0,
- 46, 47, 48, 49, 50, 51, 0, 0, 0, 0,
- 0, 163, 53, 0, 163, 0, 0, 0, 0, 0,
- 0, 0, 56, 0, 57, 58, 0, 0, 163, 163,
- 0, 102, 0, 163, 102, 0, 0, 0, 0, 26,
- 27, 28, 29, 30, 0, 31, 32, 33, 102, 102,
- 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 40, 163, 41, 42, 43, 44, 45, 0,
- 0, 0, 0, 46, 47, 48, 49, 50, 51, 0,
- 0, 102, 0, 102, 77, 53, 0, 77, 0, 112,
- 0, 0, 0, 117, 0, 56, 126, 57, 58, 131,
- 0, 77, 77, 139, 140, 141, 142, 143, 0, 0,
- 0, 148, 149, 0, 0, 111, 111, 111, 111, 0,
- 0, 0, 111, 167, 167, 167, 167, 0, 0, 0,
- 167, 0, 167, 0, 0, 0, 77, 0, 167, 167,
- 167, 167, 0, 111, 111, 111, 0, 111, 0, 0,
- 201, 167, 167, 167, 0, 167, 167, 167, 167, 167,
- 167, 167, 167, 0, 0, 167, 0, 0, 167, 167,
- 167, 0, 0, 0, 0, 0, 183, 0, 0, 183,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 183, 183, 0, 0, 0, 183, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 183, 0,
- 150, 0, 0, 150, 0, 0, 0, 0, 0, 0,
- 0, 272, 163, 163, 163, 163, 0, 150, 150, 163,
- 0, 163, 150, 0, 0, 0, 0, 163, 163, 163,
- 163, 0, 102, 102, 102, 102, 0, 0, 0, 102,
- 163, 163, 163, 0, 163, 163, 163, 163, 163, 163,
- 163, 163, 150, 145, 163, 0, 145, 163, 163, 163,
- 102, 102, 102, 0, 0, 0, 0, 0, 0, 0,
- 145, 145, 0, 0, 0, 145, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 77, 77, 77, 77, 0,
- 0, 0, 77, 0, 0, 0, 0, 0, 334, 0,
- 0, 148, 0, 0, 148, 145, 0, 0, 0, 0,
- 0, 0, 0, 77, 77, 77, 0, 0, 148, 148,
- 0, 0, 0, 148, 0, 0, 0, 0, 0, 0,
- 0, 350, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
- 0, 0, 146, 148, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 146, 146, 0, 0,
- 0, 146, 0, 0, 0, 0, 0, 183, 183, 183,
- 183, 0, 0, 0, 183, 0, 183, 0, 0, 0,
- 0, 0, 183, 183, 183, 183, 0, 0, 0, 0,
- 0, 146, 0, 0, 0, 183, 183, 183, 0, 183,
- 183, 183, 183, 183, 183, 183, 183, 0, 0, 183,
- 0, 0, 183, 183, 183, 0, 0, 0, 0, 0,
- 0, 150, 150, 150, 150, 0, 156, 0, 150, 156,
- 150, 0, 0, 0, 0, 0, 150, 150, 150, 150,
- 0, 0, 0, 156, 156, 0, 0, 0, 156, 150,
- 150, 150, 0, 150, 150, 150, 150, 150, 150, 150,
- 150, 0, 0, 150, 0, 0, 150, 150, 150, 0,
- 0, 0, 0, 0, 145, 145, 145, 145, 156, 0,
- 0, 145, 0, 145, 0, 0, 0, 0, 0, 145,
- 145, 145, 145, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 145, 145, 145, 0, 145, 145, 145, 145,
- 145, 145, 145, 145, 0, 0, 145, 0, 0, 145,
- 145, 145, 148, 148, 148, 148, 0, 0, 0, 148,
- 0, 148, 0, 0, 0, 0, 0, 148, 148, 148,
- 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 148, 148, 148, 0, 148, 148, 148, 148, 148, 148,
- 148, 148, 0, 0, 148, 0, 0, 148, 148, 148,
- 146, 146, 146, 146, 0, 174, 0, 146, 174, 146,
- 0, 0, 0, 0, 0, 146, 146, 146, 146, 0,
- 0, 0, 174, 174, 0, 0, 0, 174, 146, 146,
- 146, 0, 146, 146, 146, 146, 146, 146, 146, 146,
- 0, 0, 146, 0, 0, 146, 146, 146, 0, 0,
- 0, 0, 0, 0, 0, 177, 0, 174, 177, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 177, 177, 0, 0, 0, 177, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 156, 156, 156,
- 156, 0, 0, 0, 156, 0, 156, 0, 0, 0,
- 0, 0, 156, 156, 156, 156, 0, 177, 0, 0,
- 0, 0, 0, 0, 0, 156, 156, 156, 0, 156,
- 156, 156, 156, 156, 156, 156, 156, 144, 0, 156,
- 144, 0, 156, 156, 156, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 144, 144, 0, 0, 0, 144,
- 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, 76, 0, 0, 76, 144,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 76, 76, 0, 0, 0, 76, 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, 184, 0, 0, 76, 0, 0,
- 0, 0, 0, 0, 0, 0, 174, 174, 174, 174,
- 0, 184, 184, 174, 0, 174, 184, 0, 0, 0,
- 0, 174, 174, 174, 174, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 174, 174, 174, 0, 174, 174,
- 174, 174, 174, 174, 174, 174, 184, 0, 174, 0,
- 0, 174, 174, 174, 0, 0, 177, 177, 177, 177,
- 0, 66, 0, 177, 66, 177, 0, 0, 0, 0,
- 0, 177, 177, 177, 177, 0, 0, 0, 66, 66,
- 0, 0, 0, 66, 177, 177, 177, 0, 177, 177,
- 177, 177, 177, 177, 177, 177, 0, 0, 177, 0,
- 0, 177, 177, 177, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66, 0, 0, 143, 0, 0, 143,
- 0, 0, 0, 0, 0, 0, 0, 0, 144, 144,
- 144, 144, 0, 143, 143, 144, 0, 144, 143, 0,
- 0, 0, 0, 144, 144, 144, 144, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 144, 144, 144, 0,
- 144, 144, 144, 144, 144, 144, 144, 144, 143, 0,
- 144, 0, 0, 144, 144, 144, 76, 76, 76, 76,
- 0, 82, 0, 76, 82, 76, 0, 0, 0, 0,
- 0, 76, 76, 76, 76, 0, 0, 0, 82, 82,
- 0, 0, 0, 82, 76, 76, 76, 0, 76, 76,
- 76, 76, 76, 76, 76, 76, 0, 0, 76, 0,
- 0, 76, 76, 76, 0, 184, 184, 184, 184, 162,
- 0, 0, 184, 82, 184, 0, 0, 0, 0, 0,
- 184, 184, 184, 184, 0, 0, 162, 162, 0, 0,
- 0, 162, 0, 184, 184, 184, 0, 184, 184, 184,
- 184, 184, 184, 184, 184, 0, 0, 184, 0, 0,
- 184, 184, 184, 0, 0, 0, 0, 0, 0, 0,
- 79, 162, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 66, 66, 66, 0, 79, 79, 66,
- 0, 66, 79, 0, 0, 0, 0, 66, 66, 66,
- 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 66, 66, 0, 66, 66, 66, 66, 66, 66,
- 66, 66, 79, 0, 66, 0, 0, 66, 66, 66,
- 0, 0, 0, 0, 0, 0, 0, 143, 143, 143,
- 143, 0, 122, 0, 143, 122, 143, 0, 0, 0,
- 0, 0, 143, 143, 143, 143, 0, 0, 0, 122,
- 122, 0, 0, 0, 122, 143, 143, 143, 0, 143,
- 143, 143, 143, 143, 143, 143, 143, 0, 0, 143,
- 0, 0, 143, 143, 143, 0, 0, 0, 0, 0,
- 123, 0, 0, 123, 122, 0, 0, 0, 0, 0,
- 0, 0, 82, 82, 82, 82, 0, 123, 123, 82,
- 0, 82, 123, 0, 0, 0, 0, 82, 82, 82,
- 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 82, 82, 0, 82, 82, 82, 82, 82, 82,
- 82, 82, 123, 0, 82, 0, 0, 82, 82, 82,
- 162, 162, 162, 162, 0, 118, 0, 162, 118, 162,
- 0, 0, 0, 0, 0, 162, 162, 162, 162, 0,
- 0, 0, 118, 118, 0, 0, 0, 118, 162, 162,
- 162, 0, 162, 162, 162, 162, 162, 162, 162, 162,
- 0, 0, 162, 0, 0, 162, 162, 162, 0, 0,
- 0, 79, 79, 79, 79, 0, 119, 118, 79, 119,
- 79, 0, 0, 0, 0, 0, 79, 79, 79, 79,
- 0, 0, 0, 119, 119, 0, 0, 0, 119, 79,
- 79, 79, 0, 79, 79, 79, 79, 79, 79, 79,
- 79, 0, 0, 79, 0, 0, 79, 79, 79, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 119, 0,
- 0, 140, 0, 0, 140, 0, 0, 0, 0, 0,
- 0, 0, 0, 122, 122, 122, 122, 0, 140, 140,
- 122, 0, 122, 140, 0, 0, 0, 0, 122, 122,
- 122, 122, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 122, 122, 122, 0, 122, 122, 122, 122, 122,
- 122, 122, 122, 140, 0, 122, 0, 0, 0, 0,
- 0, 123, 123, 123, 123, 0, 116, 0, 123, 116,
- 123, 0, 0, 0, 0, 0, 123, 123, 123, 123,
- 0, 0, 0, 116, 116, 0, 0, 0, 116, 123,
- 123, 123, 0, 123, 123, 123, 123, 123, 123, 123,
- 123, 0, 0, 123, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 117, 0, 0, 117, 116, 0,
- 0, 0, 0, 0, 0, 0, 118, 118, 118, 118,
- 0, 117, 117, 118, 0, 118, 117, 0, 0, 0,
- 0, 118, 118, 118, 118, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 118, 118, 118, 0, 118, 118,
- 118, 118, 118, 118, 118, 118, 117, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 119, 119, 119,
- 119, 0, 0, 0, 119, 0, 119, 0, 0, 0,
- 0, 0, 119, 119, 119, 119, 0, 0, 0, 0,
- 115, 0, 0, 115, 0, 119, 119, 119, 0, 119,
- 119, 119, 119, 119, 119, 119, 119, 115, 115, 0,
- 0, 0, 115, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 140, 140, 140, 140, 0, 0, 0, 140,
- 0, 140, 0, 0, 0, 0, 0, 140, 140, 140,
- 140, 0, 115, 0, 0, 103, 0, 0, 103, 0,
- 140, 140, 140, 0, 140, 140, 140, 140, 140, 140,
- 140, 140, 103, 103, 0, 0, 0, 103, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 116, 116, 116,
- 116, 0, 0, 0, 116, 0, 116, 103, 0, 0,
- 0, 0, 116, 116, 116, 116, 0, 0, 0, 0,
- 104, 0, 0, 104, 0, 116, 116, 116, 0, 116,
- 116, 116, 116, 116, 116, 116, 116, 104, 104, 0,
- 0, 0, 104, 0, 0, 117, 117, 117, 117, 0,
- 0, 0, 117, 0, 117, 0, 0, 0, 0, 0,
- 117, 117, 117, 117, 0, 0, 0, 0, 105, 0,
- 0, 105, 104, 117, 117, 117, 0, 117, 117, 117,
- 117, 117, 117, 117, 117, 105, 105, 0, 0, 0,
- 105, 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, 106,
- 105, 0, 106, 0, 0, 0, 0, 0, 0, 0,
- 0, 115, 115, 115, 115, 0, 106, 106, 115, 0,
- 115, 106, 0, 0, 0, 0, 115, 115, 115, 115,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 115,
- 115, 115, 0, 115, 115, 115, 115, 115, 115, 115,
- 115, 106, 0, 0, 166, 0, 0, 166, 0, 0,
- 0, 0, 0, 0, 0, 0, 103, 103, 103, 103,
- 0, 166, 166, 103, 0, 103, 166, 0, 0, 0,
- 0, 103, 103, 103, 103, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 103, 103, 103, 0, 103, 103,
- 103, 103, 103, 103, 103, 103, 166, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
- 0, 0, 165, 0, 0, 0, 0, 0, 0, 0,
- 0, 104, 104, 104, 104, 0, 165, 165, 104, 0,
- 104, 165, 0, 0, 0, 0, 104, 104, 104, 104,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
- 104, 104, 0, 104, 104, 104, 104, 104, 104, 104,
- 0, 165, 0, 0, 129, 0, 0, 129, 0, 105,
- 105, 105, 105, 0, 142, 0, 105, 142, 105, 0,
- 0, 129, 129, 0, 105, 105, 129, 105, 0, 0,
- 0, 142, 142, 0, 0, 0, 142, 105, 105, 105,
- 0, 105, 105, 105, 105, 105, 105, 105, 0, 0,
- 0, 0, 0, 0, 0, 107, 129, 0, 107, 0,
- 106, 106, 106, 106, 0, 0, 142, 106, 0, 106,
- 0, 0, 107, 107, 0, 106, 106, 107, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 106, 106,
- 106, 0, 106, 106, 106, 106, 106, 106, 106, 0,
- 0, 0, 0, 108, 0, 0, 108, 107, 0, 0,
- 0, 0, 0, 0, 0, 166, 166, 166, 166, 0,
- 108, 108, 166, 0, 166, 108, 0, 0, 0, 0,
- 166, 166, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 166, 166, 166, 0, 166, 166, 166,
- 166, 166, 166, 109, 0, 108, 109, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 109, 109, 0, 0, 0, 109, 0, 0, 0, 0,
- 165, 165, 165, 165, 0, 0, 0, 165, 0, 165,
- 0, 0, 0, 0, 0, 165, 165, 0, 0, 0,
- 0, 110, 0, 0, 110, 109, 0, 0, 165, 165,
- 165, 0, 165, 165, 165, 165, 165, 165, 110, 110,
- 0, 0, 0, 110, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 129, 129, 129, 129, 0,
- 112, 0, 129, 112, 129, 142, 142, 142, 142, 0,
- 129, 129, 142, 110, 142, 0, 0, 112, 112, 0,
- 142, 142, 112, 129, 129, 129, 0, 129, 129, 129,
- 129, 129, 129, 142, 142, 142, 0, 142, 142, 142,
- 142, 142, 142, 0, 0, 0, 107, 107, 107, 107,
- 0, 0, 112, 107, 0, 107, 0, 0, 0, 0,
- 0, 0, 107, 0, 0, 0, 0, 113, 0, 0,
- 113, 0, 0, 0, 107, 107, 107, 0, 107, 107,
- 107, 107, 107, 107, 113, 113, 0, 0, 0, 113,
- 0, 0, 0, 0, 108, 108, 108, 108, 0, 0,
- 0, 108, 0, 108, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 114, 0, 0, 114, 113,
- 0, 0, 108, 108, 108, 0, 108, 108, 108, 108,
- 108, 108, 114, 114, 0, 0, 0, 114, 0, 0,
- 0, 0, 0, 0, 109, 109, 109, 109, 0, 0,
- 0, 109, 0, 109, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 114, 0, 0,
- 0, 0, 109, 109, 109, 0, 109, 109, 109, 109,
- 109, 109, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 110, 110, 110, 110, 0, 0, 0, 110,
- 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 110, 110, 110, 0, 110, 110, 110, 110, 110, 0,
- 0, 112, 112, 112, 112, 0, 0, 0, 112, 0,
- 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 112,
- 112, 112, 0, 112, 112, 112, 112, 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, 113, 113,
- 113, 113, 0, 0, 0, 113, 0, 113, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 113, 113, 113, 0,
- 113, 113, 113, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 114, 114, 114, 114,
- 0, 0, 0, 114, 0, 114, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 114, 114, 114, 0, 114, 114,
- 114,
-};
-static short yycheck[] = { 15,
- 94, 44, 41, 36, 59, 41, 41, 123, 44, 36,
- 99, 59, 40, 40, 40, 59, 200, 36, 365, 91,
- 59, 40, 209, 91, 41, 257, 93, 63, 59, 266,
- 267, 268, 48, 270, 271, 276, 277, 104, 41, 93,
- 197, 130, 59, 59, 60, 257, 203, 257, 41, 396,
- 59, 123, 41, 41, 93, 123, 41, 8, 9, 44,
- 297, 59, 40, 91, 91, 91, 59, 40, 123, 40,
- 59, 40, 40, 58, 59, 123, 28, 15, 63, 123,
- 41, 40, 105, 106, 107, 108, 109, 110, 257, 0,
- 123, 40, 123, 45, 46, 123, 123, 123, 114, 115,
- 52, 41, 41, 40, 278, 41, 44, 40, 93, 47,
- 123, 298, 64, 65, 66, 67, 132, 41, 41, 59,
- 59, 41, 33, 59, 59, 36, 37, 38, 41, 40,
- 289, 42, 43, 317, 45, 41, 59, 44, 41, 59,
- 156, 157, 158, 159, 160, 161, 162, 163, 59, 123,
- 88, 260, 311, 64, 341, 314, 257, 41, 317, 318,
- 319, 40, 125, 115, 40, 103, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 41, 289, 290, 59, 40,
- 91, 59, 298, 298, 200, 0, 275, 210, 204, 205,
- 59, 207, 281, 209, 59, 319, 91, 59, 311, 386,
- 216, 314, 218, 219, 317, 318, 319, 298, 257, 36,
- 37, 227, 123, 40, 125, 126, 154, 36, 33, 93,
- 41, 36, 37, 38, 257, 40, 125, 42, 43, 262,
- 45, 258, 91, 272, 273, 274, 275, 64, 260, 255,
- 279, 257, 258, 298, 59, 281, 300, 301, 302, 64,
- 302, 287, 288, 289, 290, 40, 260, 300, 301, 302,
- 41, 300, 301, 302, 41, 300, 301, 302, 304, 305,
- 306, 307, 308, 309, 310, 311, 91, 296, 314, 373,
- 41, 317, 318, 319, 41, 59, 41, 272, 273, 274,
- 275, 300, 301, 302, 279, 311, 281, 300, 301, 302,
- 40, 317, 287, 288, 289, 290, 93, 41, 123, 93,
- 125, 126, 300, 301, 302, 300, 301, 302, 125, 304,
- 305, 306, 307, 308, 309, 310, 311, 343, 93, 314,
- 125, 93, 317, 318, 319, 93, 274, 125, 276, 300,
- 301, 302, 125, 123, 282, 256, 257, 258, 259, 260,
- 261, 59, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 41, 382, 41, 279, 280,
- 0, 282, 283, 284, 285, 286, 300, 301, 302, 125,
- 291, 292, 293, 294, 295, 296, 297, 300, 301, 302,
- 59, 41, 303, 40, 300, 301, 302, 300, 301, 302,
- 41, 41, 313, 33, 315, 316, 36, 37, 38, 125,
- 40, 123, 42, 43, 41, 45, 300, 301, 302, 300,
- 301, 302, 300, 301, 302, 123, 300, 301, 302, 59,
- 41, 300, 301, 302, 64, 300, 301, 302, 300, 301,
- 302, 256, 257, 258, 259, 260, 261, 59, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 91, 41, 59, 279, 280, 63, 282, 283, 284,
- 285, 286, 41, 59, 125, 41, 291, 292, 293, 294,
- 295, 296, 297, 300, 301, 302, 34, 51, 303, 51,
- 338, 339, 340, 123, 342, 15, 126, 157, 313, 33,
- 315, 316, 36, 37, 38, 382, 40, 41, 42, 43,
- 44, 45, 343, 300, 301, 302, 300, 301, 302, 207,
- 23, 369, 276, -1, 58, 59, -1, -1, 376, 63,
- 64, -1, 380, -1, -1, 300, 301, 302, 300, 301,
- 302, -1, 300, 301, 302, 393, 394, -1, -1, -1,
- 266, 267, 268, -1, 270, 271, -1, 91, 314, 93,
- -1, 317, 318, 319, 33, -1, -1, 36, 37, 38,
- -1, 40, 41, 42, 43, 44, 45, -1, -1, -1,
- -1, 297, 287, 288, 289, 290, 362, 363, -1, 58,
- 59, 367, 126, -1, 63, 64, -1, -1, -1, -1,
- 305, 306, 307, 308, 309, 310, 311, 383, -1, 314,
- -1, 387, 317, 318, 319, 266, 267, 268, -1, 270,
- 271, -1, -1, -1, 93, 41, 256, 257, 258, 259,
- 260, 261, -1, 263, 264, 265, -1, -1, -1, 269,
- -1, -1, 272, 273, 274, 275, 297, 63, -1, 279,
- 280, -1, 282, 283, 284, 285, 286, 126, -1, -1,
- -1, 291, 292, 293, 294, 295, 296, -1, -1, -1,
- -1, -1, 287, 303, 289, 290, -1, -1, -1, -1,
- -1, -1, -1, 313, 281, 315, 316, -1, -1, -1,
- 287, 288, 289, 290, -1, 310, 311, -1, -1, 314,
- 58, -1, 317, 318, 319, 63, -1, 304, 305, 306,
- 307, 308, 309, 310, 311, -1, -1, 314, -1, -1,
- 317, 318, 319, 257, 258, 259, 260, 261, -1, 263,
- 264, 265, -1, -1, -1, 269, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, 279, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, -1, -1, 63, 300, 301, 302, 303,
- 304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
- 314, 315, 316, 317, 318, 319, -1, -1, 257, 258,
- 259, 260, 261, -1, 263, 264, 265, -1, -1, 45,
- 269, -1, -1, 272, 273, 274, 275, 53, -1, -1,
- 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, -1, -1,
- -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
- 319, 33, -1, 99, 36, 37, 38, -1, 40, -1,
- 42, 43, -1, 45, -1, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, 122, 59, 272, 273,
- 274, 275, 64, -1, 130, 279, -1, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, -1, -1, 314, -1,
- -1, 317, 318, 319, -1, -1, 300, 301, 302, 91,
- -1, -1, 33, -1, -1, 36, 37, 38, -1, 40,
- -1, 42, 43, 281, 45, -1, -1, -1, -1, 287,
- 288, 289, 290, -1, -1, -1, -1, -1, 59, -1,
- -1, 123, -1, 64, 126, -1, 304, 305, 306, 307,
- 308, 309, 310, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, -1, -1, -1, -1, -1, -1, -1, -1,
- 91, -1, 33, -1, -1, 36, 37, 38, -1, 40,
- -1, 42, 43, 281, 45, -1, -1, -1, -1, 287,
- 288, 289, 290, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, 123, 64, -1, 126, -1, 305, 306, 307,
- 308, 309, 310, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, -1, -1, -1, -1, -1, -1, -1, 275,
- 91, 289, 290, -1, -1, 281, 33, -1, -1, 36,
- 37, 38, -1, 40, -1, 42, 43, -1, 45, -1,
- -1, -1, 310, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, 123, -1, -1, 126, -1, 64, -1, -1,
- -1, -1, -1, -1, 256, 257, 258, 259, 260, 261,
- -1, 263, 264, 265, -1, -1, -1, 269, -1, -1,
- 272, 273, 274, 275, 91, -1, -1, 279, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, -1, -1, -1, -1, -1,
- -1, 303, -1, -1, -1, -1, 123, -1, -1, 126,
- -1, 313, -1, 315, 316, 256, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, -1, -1, -1, 269, -1,
- -1, 272, 273, 274, 275, -1, -1, -1, 279, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, -1, -1, -1,
- -1, 33, 303, -1, 36, 37, 38, -1, 40, -1,
- 42, 43, 313, 45, 315, 316, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, -1, -1, -1, 269, -1,
- -1, -1, 64, -1, -1, -1, -1, -1, -1, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, -1, -1, 91,
- -1, 41, 303, -1, 44, -1, 287, 288, 289, 290,
- -1, -1, 313, -1, 315, 316, -1, -1, 58, 59,
- 257, 258, 259, 260, 261, -1, 263, 264, 265, 310,
- 311, 123, 269, 314, 126, -1, 317, 318, 319, -1,
- -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
- -1, -1, -1, 93, 291, 292, 293, 294, 295, 296,
- 33, -1, -1, 36, 37, 38, 303, 40, -1, 42,
- 43, -1, 45, -1, -1, -1, 313, -1, 315, 316,
- 287, 288, 289, 290, -1, -1, 59, -1, -1, -1,
- -1, 64, -1, -1, -1, -1, -1, -1, -1, -1,
- 307, 308, 309, 310, 311, -1, -1, 314, -1, -1,
- 317, 318, 319, 287, 288, 289, 290, -1, 91, -1,
- 33, -1, -1, 36, 37, 38, -1, 40, 41, 42,
- 43, -1, 45, -1, 308, 309, 310, 311, -1, -1,
- 314, -1, -1, 317, 318, 319, -1, -1, -1, -1,
- -1, 64, -1, 126, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 257, 258, 259, 260, 261,
- -1, 263, 264, 265, -1, -1, -1, 269, 91, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, 33, -1, -1, 36, 37,
- 38, 303, 40, 126, 42, 43, -1, 45, -1, -1,
- -1, 313, -1, 315, 316, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, 64, -1, -1, 279,
- -1, -1, -1, -1, -1, -1, 33, -1, -1, 36,
- 37, 38, -1, 40, 41, 42, 43, -1, 45, -1,
- 300, 301, 302, 91, 304, 93, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 64, -1, 41,
- -1, -1, 44, -1, 257, 258, 259, 260, 261, -1,
- 263, 264, 265, -1, -1, -1, 269, 59, 126, -1,
- -1, -1, -1, -1, 91, -1, -1, 280, -1, 282,
- 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
- 293, 294, 295, 296, -1, -1, -1, -1, -1, -1,
- 303, 93, -1, -1, -1, -1, -1, -1, -1, 126,
- 313, -1, 315, 316, 257, 258, 259, 260, 261, -1,
- 263, 264, 265, -1, 33, -1, 269, 36, 37, 38,
- -1, 40, 41, 42, 43, -1, 45, 280, -1, 282,
- 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
- 293, 294, 295, 296, -1, 64, -1, -1, -1, -1,
- 303, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- 313, -1, 315, 316, -1, -1, -1, 41, -1, -1,
- 44, -1, 91, 309, 310, 311, -1, -1, 314, -1,
- -1, 317, 318, 319, 58, 59, -1, -1, -1, 257,
- 258, 259, 260, 261, -1, 263, 264, 265, -1, -1,
- -1, 269, 41, -1, -1, 44, -1, 126, -1, -1,
- -1, -1, 280, -1, 282, 283, 284, 285, 286, 93,
- 59, -1, -1, 291, 292, 293, 294, 295, 296, -1,
- 257, 258, 259, 260, 261, 303, 263, 264, 265, -1,
- -1, -1, 269, -1, -1, 313, -1, 315, 316, -1,
- -1, -1, -1, 280, 93, 282, 283, 284, 285, 286,
- -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
- 272, 273, 274, 275, -1, 33, 303, 279, 36, 37,
- 38, -1, 40, 41, 42, 43, 313, 45, 315, 316,
- 27, 28, -1, -1, -1, -1, -1, -1, 300, 301,
- -1, -1, 39, -1, -1, -1, 64, -1, 45, 46,
- 47, -1, -1, -1, 51, 52, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 64, 65, 66,
- 67, -1, -1, 91, -1, -1, -1, -1, 257, 258,
- 259, 260, 261, -1, 263, 264, 265, -1, 33, -1,
- 269, 36, 37, 38, -1, 40, 41, 42, 43, -1,
- 45, 280, -1, 282, 283, 284, 285, 286, 126, -1,
- -1, -1, 291, 292, 293, 294, 295, 296, 115, 64,
- -1, -1, -1, -1, 303, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 313, -1, 315, 316, 272, 273,
- 274, 275, -1, -1, -1, 279, 91, -1, -1, -1,
- -1, 33, -1, -1, 36, 37, 38, -1, 40, -1,
- 42, 43, -1, 45, -1, -1, 300, 301, 302, -1,
- -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
- 279, 126, 64, -1, 181, -1, 41, -1, -1, 44,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 300, 301, 58, 59, -1, -1, -1, -1, 91,
- -1, 208, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 33, -1, -1, 36, 37, 38,
- -1, 40, 41, 42, 43, -1, 45, -1, 93, 257,
- 258, 259, 260, 261, 126, 263, 264, 265, -1, -1,
- -1, 269, -1, -1, -1, 64, -1, -1, -1, -1,
- -1, -1, 280, -1, 282, 283, 284, 285, 286, -1,
- -1, -1, -1, 291, 292, 293, 294, 295, 296, -1,
- -1, -1, 91, -1, -1, 303, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 313, 33, 315, 316, 36,
- 37, 38, -1, 40, 41, 42, 43, -1, 45, -1,
- -1, -1, 257, 258, 259, 260, 261, 126, 263, 264,
- 265, -1, -1, -1, 269, -1, -1, 64, -1, -1,
- -1, -1, -1, -1, -1, 280, -1, 282, 283, 284,
- 285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
- 295, 296, -1, -1, 91, -1, -1, -1, 303, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 313, -1,
- 315, 316, -1, -1, 256, 257, 258, 259, 260, 261,
- -1, 263, 264, 265, -1, -1, -1, 269, -1, 126,
- -1, -1, -1, -1, -1, -1, -1, -1, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, -1, -1, 272, 273, 274,
- 275, 303, -1, -1, 279, -1, -1, -1, -1, -1,
- -1, 313, 33, 315, 316, 36, 37, 38, -1, 40,
- 41, 42, 43, -1, 45, 300, 301, 302, 257, 258,
- 259, 260, 261, -1, 263, 264, 265, -1, -1, -1,
- 269, -1, -1, 64, -1, -1, -1, -1, -1, -1,
- -1, 280, -1, 282, 283, 284, 285, 286, -1, -1,
- -1, -1, 291, 292, 293, 294, 295, 296, -1, -1,
- 91, -1, -1, -1, 303, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 313, 33, 315, 316, 36, 37,
- 38, -1, 40, -1, 42, 43, -1, 45, -1, -1,
- 257, 258, 259, 260, 261, 126, 263, 264, 265, -1,
- -1, -1, 269, -1, -1, -1, 64, -1, -1, -1,
- -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
- -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
- -1, -1, -1, 91, -1, -1, 303, -1, -1, -1,
- -1, -1, -1, -1, 41, -1, 313, 44, 315, 316,
- -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
- -1, 58, 59, -1, -1, -1, 63, -1, 126, 58,
- 59, -1, -1, -1, 63, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 93, -1, -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, -1, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, -1, -1, -1, 269, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, -1, -1, -1,
- -1, 41, 303, -1, 44, -1, -1, -1, -1, -1,
- -1, -1, 313, -1, 315, 316, -1, -1, 58, 59,
- -1, 41, -1, 63, 44, -1, -1, -1, -1, 257,
- 258, 259, 260, 261, -1, 263, 264, 265, 58, 59,
- -1, 269, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 280, 93, 282, 283, 284, 285, 286, -1,
- -1, -1, -1, 291, 292, 293, 294, 295, 296, -1,
- -1, 32, -1, 93, 41, 303, -1, 44, -1, 40,
- -1, -1, -1, 44, -1, 313, 47, 315, 316, 50,
- -1, 58, 59, 54, 55, 56, 57, 58, -1, -1,
- -1, 62, 63, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, 279, 272, 273, 274, 275, -1, -1, -1,
- 279, -1, 281, -1, -1, -1, 93, -1, 287, 288,
- 289, 290, -1, 300, 301, 302, -1, 304, -1, -1,
- 101, 300, 301, 302, -1, 304, 305, 306, 307, 308,
- 309, 310, 311, -1, -1, 314, -1, -1, 317, 318,
- 319, -1, -1, -1, -1, -1, 41, -1, -1, 44,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 58, 59, -1, -1, -1, 63, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 93, -1,
- 41, -1, -1, 44, -1, -1, -1, -1, -1, -1,
- -1, 192, 272, 273, 274, 275, -1, 58, 59, 279,
- -1, 281, 63, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, 272, 273, 274, 275, -1, -1, -1, 279,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 93, 41, 314, -1, 44, 317, 318, 319,
- 300, 301, 302, -1, -1, -1, -1, -1, -1, -1,
- 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, 279, -1, -1, -1, -1, -1, 279, -1,
- -1, 41, -1, -1, 44, 93, -1, -1, -1, -1,
- -1, -1, -1, 300, 301, 302, -1, -1, 58, 59,
- -1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
- -1, 312, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
- -1, -1, 44, 93, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
- -1, 63, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, -1, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, -1, -1,
- -1, 93, -1, -1, -1, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, -1, -1, 314,
- -1, -1, 317, 318, 319, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 41, -1, 279, 44,
- 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, 58, 59, -1, -1, -1, 63, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, -1, -1, 314, -1, -1, 317, 318, 319, -1,
- -1, -1, -1, -1, 272, 273, 274, 275, 93, -1,
- -1, 279, -1, 281, -1, -1, -1, -1, -1, 287,
- 288, 289, 290, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 300, 301, 302, -1, 304, 305, 306, 307,
- 308, 309, 310, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, 272, 273, 274, 275, -1, -1, -1, 279,
- -1, 281, -1, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, -1, -1, 314, -1, -1, 317, 318, 319,
- 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
- -1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, 300, 301,
- 302, -1, 304, 305, 306, 307, 308, 309, 310, 311,
- -1, -1, 314, -1, -1, 317, 318, 319, -1, -1,
- -1, -1, -1, -1, -1, 41, -1, 93, 44, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, -1, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, 93, -1, -1,
- -1, -1, -1, -1, -1, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, 41, -1, 314,
- 44, -1, 317, 318, 319, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 58, 59, -1, -1, -1, 63,
- -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, 41, -1, -1, 44, 93,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, -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, 41, -1, -1, 93, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 58, 59, 279, -1, 281, 63, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, 93, -1, 314, -1,
- -1, 317, 318, 319, -1, -1, 272, 273, 274, 275,
- -1, 41, -1, 279, 44, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
- -1, -1, -1, 63, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, -1, -1, 314, -1,
- -1, 317, 318, 319, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, -1, -1, 41, -1, -1, 44,
- -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
- 274, 275, -1, 58, 59, 279, -1, 281, 63, -1,
- -1, -1, -1, 287, 288, 289, 290, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 300, 301, 302, -1,
- 304, 305, 306, 307, 308, 309, 310, 311, 93, -1,
- 314, -1, -1, 317, 318, 319, 272, 273, 274, 275,
- -1, 41, -1, 279, 44, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
- -1, -1, -1, 63, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, -1, -1, 314, -1,
- -1, 317, 318, 319, -1, 272, 273, 274, 275, 41,
- -1, -1, 279, 93, 281, -1, -1, -1, -1, -1,
- 287, 288, 289, 290, -1, -1, 58, 59, -1, -1,
- -1, 63, -1, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, 310, 311, -1, -1, 314, -1, -1,
- 317, 318, 319, -1, -1, -1, -1, -1, -1, -1,
- 41, 93, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, 58, 59, 279,
- -1, 281, 63, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 93, -1, 314, -1, -1, 317, 318, 319,
- -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, 41, -1, 279, 44, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, -1, 58,
- 59, -1, -1, -1, 63, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, -1, -1, 314,
- -1, -1, 317, 318, 319, -1, -1, -1, -1, -1,
- 41, -1, -1, 44, 93, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, 58, 59, 279,
- -1, 281, 63, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 93, -1, 314, -1, -1, 317, 318, 319,
- 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
- -1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, 300, 301,
- 302, -1, 304, 305, 306, 307, 308, 309, 310, 311,
- -1, -1, 314, -1, -1, 317, 318, 319, -1, -1,
- -1, 272, 273, 274, 275, -1, 41, 93, 279, 44,
- 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, 58, 59, -1, -1, -1, 63, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, -1, -1, 314, -1, -1, 317, 318, 319, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 41, -1, -1, 44, -1, -1, -1, -1, -1,
- -1, -1, -1, 272, 273, 274, 275, -1, 58, 59,
- 279, -1, 281, 63, -1, -1, -1, -1, 287, 288,
- 289, 290, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 300, 301, 302, -1, 304, 305, 306, 307, 308,
- 309, 310, 311, 93, -1, 314, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 41, -1, 279, 44,
- 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, 58, 59, -1, -1, -1, 63, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, -1, -1, 314, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 41, -1, -1, 44, 93, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 58, 59, 279, -1, 281, 63, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, 93, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, -1, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, -1, -1,
- 41, -1, -1, 44, -1, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, 58, 59, -1,
- -1, -1, 63, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, -1, 279,
- -1, 281, -1, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, 93, -1, -1, 41, -1, -1, 44, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 58, 59, -1, -1, -1, 63, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, -1, 281, 93, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, -1, -1,
- 41, -1, -1, 44, -1, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, 58, 59, -1,
- -1, -1, 63, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, 279, -1, 281, -1, -1, -1, -1, -1,
- 287, 288, 289, 290, -1, -1, -1, -1, 41, -1,
- -1, 44, 93, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, 310, 311, 58, 59, -1, -1, -1,
- 63, -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, 41,
- 93, -1, 44, -1, -1, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 58, 59, 279, -1,
- 281, 63, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, 93, -1, -1, 41, -1, -1, 44, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 58, 59, 279, -1, 281, 63, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, 93, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
- -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 58, 59, 279, -1,
- 281, 63, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- -1, 93, -1, -1, 41, -1, -1, 44, -1, 272,
- 273, 274, 275, -1, 41, -1, 279, 44, 281, -1,
- -1, 58, 59, -1, 287, 288, 63, 290, -1, -1,
- -1, 58, 59, -1, -1, -1, 63, 300, 301, 302,
- -1, 304, 305, 306, 307, 308, 309, 310, -1, -1,
- -1, -1, -1, -1, -1, 41, 93, -1, 44, -1,
- 272, 273, 274, 275, -1, -1, 93, 279, -1, 281,
- -1, -1, 58, 59, -1, 287, 288, 63, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 300, 301,
- 302, -1, 304, 305, 306, 307, 308, 309, 310, -1,
- -1, -1, -1, 41, -1, -1, 44, 93, -1, -1,
- -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
- 58, 59, 279, -1, 281, 63, -1, -1, -1, -1,
- 287, 288, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, 41, -1, 93, 44, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
- 272, 273, 274, 275, -1, -1, -1, 279, -1, 281,
- -1, -1, -1, -1, -1, 287, 288, -1, -1, -1,
- -1, 41, -1, -1, 44, 93, -1, -1, 300, 301,
- 302, -1, 304, 305, 306, 307, 308, 309, 58, 59,
- -1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
- 41, -1, 279, 44, 281, 272, 273, 274, 275, -1,
- 287, 288, 279, 93, 281, -1, -1, 58, 59, -1,
- 287, 288, 63, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, -1, -1, -1, 272, 273, 274, 275,
- -1, -1, 93, 279, -1, 281, -1, -1, -1, -1,
- -1, -1, 288, -1, -1, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 58, 59, -1, -1, -1, 63,
- -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, 279, -1, 281, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 41, -1, -1, 44, 93,
- -1, -1, 300, 301, 302, -1, 304, 305, 306, 307,
- 308, 309, 58, 59, -1, -1, -1, 63, -1, -1,
- -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, 279, -1, 281, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
- -1, -1, 300, 301, 302, -1, 304, 305, 306, 307,
- 308, 309, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, -1, 279,
- -1, 281, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, -1,
- -1, 272, 273, 274, 275, -1, -1, -1, 279, -1,
- 281, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 300,
- 301, 302, -1, 304, 305, 306, 307, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, 279, -1, 281, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 300, 301, 302, -1,
- 304, 305, 306, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, -1, -1, 279, -1, 281, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306,
-};
-#define YYFINAL 1
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 319
-#if YYDEBUG
-static char *yyname[] = {
-"end-of-file",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,
-"'!'",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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","METHOD","FUNCMETH","THING",
-"PMFUNC","PRIVATEREF","FUNC0SUB","UNIOPSUB","LSTOPSUB","LABEL","FORMAT","SUB",
-"ANONSUB","PACKAGE","USE","WHILE","UNTIL","IF","UNLESS","ELSE","ELSIF",
-"CONTINUE","FOR","LOOPEX","DOTDOT","FUNC0","FUNC1","FUNC","UNIOP","LSTOP",
-"RELOP","EQOP","MULOP","ADDOP","DOLSHARP","DO","HASHBRACK","NOAMP","LOCAL","MY",
-"MYSUB","COLONATTR","PREC_LOW","OROP","DOROP","ANDOP","NOTOP","ASSIGNOP","OROR",
-"DORDOR","ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN",
-"POWOP","PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
-};
-static char *yyrule[] = {
-"$accept : prog",
-"prog : progstart lineseq",
-"block : '{' remember lineseq '}'",
-"remember :",
-"progstart :",
-"mblock : '{' mremember lineseq '}'",
-"mremember :",
-"lineseq :",
-"lineseq : lineseq decl",
-"lineseq : lineseq line",
-"line : label cond",
-"line : loop",
-"line : label ';'",
-"line : label sideff ';'",
-"sideff : error",
-"sideff : expr",
-"sideff : expr IF expr",
-"sideff : expr UNLESS expr",
-"sideff : expr WHILE expr",
-"sideff : expr UNTIL iexpr",
-"sideff : expr FOR expr",
-"else :",
-"else : ELSE mblock",
-"else : ELSIF '(' mexpr ')' mblock else",
-"cond : IF '(' remember mexpr ')' mblock else",
-"cond : UNLESS '(' remember miexpr ')' mblock else",
-"cont :",
-"cont : CONTINUE block",
-"loop : label WHILE '(' remember mtexpr ')' mblock cont",
-"loop : label UNTIL '(' remember miexpr ')' mblock cont",
-"loop : label FOR MY remember my_scalar '(' mexpr ')' mblock cont",
-"loop : label FOR scalar '(' remember mexpr ')' mblock cont",
-"loop : label FOR '(' remember mexpr ')' mblock cont",
-"loop : label FOR '(' remember mnexpr ';' mtexpr ';' mnexpr ')' mblock",
-"loop : label block cont",
-"nexpr :",
-"nexpr : sideff",
-"texpr :",
-"texpr : expr",
-"iexpr : expr",
-"mexpr : expr",
-"mnexpr : nexpr",
-"mtexpr : texpr",
-"miexpr : iexpr",
-"label :",
-"label : LABEL",
-"decl : format",
-"decl : subrout",
-"decl : mysubrout",
-"decl : package",
-"decl : use",
-"format : FORMAT startformsub formname block",
-"formname : WORD",
-"formname :",
-"mysubrout : MYSUB startsub subname proto subattrlist subbody",
-"subrout : SUB startsub subname proto subattrlist subbody",
-"startsub :",
-"startanonsub :",
-"startformsub :",
-"subname : WORD",
-"proto :",
-"proto : THING",
-"subattrlist :",
-"subattrlist : COLONATTR THING",
-"subattrlist : COLONATTR",
-"myattrlist : COLONATTR THING",
-"myattrlist : COLONATTR",
-"subbody : block",
-"subbody : ';'",
-"package : PACKAGE WORD ';'",
-"$$1 :",
-"use : USE startsub $$1 WORD WORD listexpr ';'",
-"expr : expr ANDOP expr",
-"expr : expr OROP expr",
-"expr : expr DOROP expr",
-"expr : argexpr",
-"argexpr : argexpr ','",
-"argexpr : argexpr ',' term",
-"argexpr : term",
-"listop : LSTOP indirob argexpr",
-"listop : FUNC '(' indirob expr ')'",
-"listop : term ARROW method '(' listexprcom ')'",
-"listop : term ARROW method",
-"listop : METHOD indirob listexpr",
-"listop : FUNCMETH indirob '(' listexprcom ')'",
-"listop : LSTOP listexpr",
-"listop : FUNC '(' listexprcom ')'",
-"$$2 :",
-"listop : LSTOPSUB startanonsub block $$2 listexpr",
-"method : METHOD",
-"method : scalar",
-"subscripted : star '{' expr ';' '}'",
-"subscripted : scalar '[' expr ']'",
-"subscripted : term ARROW '[' expr ']'",
-"subscripted : subscripted '[' expr ']'",
-"subscripted : scalar '{' expr ';' '}'",
-"subscripted : term ARROW '{' expr ';' '}'",
-"subscripted : subscripted '{' expr ';' '}'",
-"subscripted : term ARROW '(' ')'",
-"subscripted : term ARROW '(' expr ')'",
-"subscripted : subscripted '(' expr ')'",
-"subscripted : subscripted '(' ')'",
-"termbinop : term ASSIGNOP term",
-"termbinop : term POWOP term",
-"termbinop : term MULOP term",
-"termbinop : term ADDOP term",
-"termbinop : term SHIFTOP term",
-"termbinop : term RELOP term",
-"termbinop : term EQOP term",
-"termbinop : term BITANDOP term",
-"termbinop : term BITOROP term",
-"termbinop : term DOTDOT term",
-"termbinop : term ANDAND term",
-"termbinop : term OROR term",
-"termbinop : term DORDOR term",
-"termbinop : term MATCHOP term",
-"termunop : '-' term",
-"termunop : '+' term",
-"termunop : '!' term",
-"termunop : '~' term",
-"termunop : term POSTINC",
-"termunop : term POSTDEC",
-"termunop : PREINC term",
-"termunop : PREDEC term",
-"anonymous : '[' expr ']'",
-"anonymous : '[' ']'",
-"anonymous : HASHBRACK expr ';' '}'",
-"anonymous : HASHBRACK ';' '}'",
-"anonymous : ANONSUB startanonsub proto subattrlist block",
-"termdo : DO term",
-"termdo : DO block",
-"termdo : DO WORD '(' ')'",
-"termdo : DO WORD '(' expr ')'",
-"termdo : DO scalar '(' ')'",
-"termdo : DO scalar '(' expr ')'",
-"term : termbinop",
-"term : termunop",
-"term : anonymous",
-"term : termdo",
-"term : term '?' term ':' term",
-"term : REFGEN term",
-"term : myattrterm",
-"term : LOCAL term",
-"term : '(' expr ')'",
-"term : '(' ')'",
-"term : scalar",
-"term : star",
-"term : hsh",
-"term : ary",
-"term : arylen",
-"term : subscripted",
-"term : '(' expr ')' '[' expr ']'",
-"term : '(' ')' '[' expr ']'",
-"term : ary '[' expr ']'",
-"term : ary '{' expr ';' '}'",
-"term : THING",
-"term : amper",
-"term : amper '(' ')'",
-"term : amper '(' expr ')'",
-"term : NOAMP WORD listexpr",
-"term : LOOPEX",
-"term : LOOPEX term",
-"term : NOTOP argexpr",
-"term : UNIOP",
-"term : UNIOP block",
-"term : UNIOP term",
-"term : UNIOPSUB term",
-"term : FUNC0",
-"term : FUNC0 '(' ')'",
-"term : FUNC0SUB",
-"term : FUNC1 '(' ')'",
-"term : FUNC1 '(' expr ')'",
-"term : PMFUNC '(' term ')'",
-"term : PMFUNC '(' term ',' term ')'",
-"term : WORD",
-"term : listop",
-"myattrterm : MY myterm myattrlist",
-"myattrterm : MY myterm",
-"myterm : '(' expr ')'",
-"myterm : '(' ')'",
-"myterm : scalar",
-"myterm : hsh",
-"myterm : ary",
-"listexpr :",
-"listexpr : argexpr",
-"listexprcom :",
-"listexprcom : expr",
-"listexprcom : expr ','",
-"my_scalar : scalar",
-"amper : '&' indirob",
-"scalar : '$' indirob",
-"ary : '@' indirob",
-"hsh : '%' indirob",
-"arylen : DOLSHARP indirob",
-"star : '*' indirob",
-"indirob : WORD",
-"indirob : scalar",
-"indirob : block",
-"indirob : PRIVATEREF",
-};
-#endif
-#define yyclearin (yychar=(-1))
-#define yyerrok (yyerrflag=0)
-#ifdef YYSTACKSIZE
-#ifndef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#endif
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
+typedef signed char yysigned_char;
+
+#ifdef DEBUGGING
+# define YYDEBUG 1
#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
-#endif
+# define YYDEBUG 0
#endif
-#line 796 "perly.y"
- /* PROGRAM */
-/* more stuff added to make perly_c.diff easier to apply */
+/* contains all the parser state tables; auto-generated from perly.y */
+#include "perly.tab"
+
+# define YYSIZE_T size_t
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrlab1
+
+
+/* Like YYERROR except do call yyerror. This remains here temporarily
+ to ease the transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+
+#define YYFAIL goto yyerrlab
+
+#define YYRECOVERING() (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) { \
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else { \
+ yyerror ("syntax error: cannot back up"); \
+ YYERROR; \
+ } \
+while (0)
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+/* YYLEX -- calling `yylex' with the right arguments. */
+
+# define YYLEX yylex_r (&yylval, &yychar)
+
+/* Enable debugging if requested. */
+#if DEBUGGING
+
+# define yydebug (DEBUG_p_TEST)
+
+# define YYFPRINTF PerlIO_printf
+
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (0)
+
+# define YYDSYMPRINT(Args) \
+do { \
+ if (yydebug) \
+ yysymprint Args; \
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location) \
+do { \
+ if (yydebug) { \
+ YYFPRINTF (Perl_debug_log, "%s ", Title); \
+ yysymprint (aTHX_ Perl_debug_log, Token, Value); \
+ YYFPRINTF (Perl_debug_log, "\n"); \
+ } \
+} while (0)
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+static void
+yysymprint (pTHX_ PerlIO *yyoutput, int yytype, YYSTYPE *yyvaluep)
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvaluep;
+
+ if (yytype < YYNTOKENS) {
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+ }
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ switch (yytype) {
+ default:
+ break;
+ }
+ YYFPRINTF (yyoutput, ")");
+}
+
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (cinluded). |
+`------------------------------------------------------------------*/
+
+static void
+yy_stack_print (pTHX_ short *bottom, short *top)
+{
+ YYFPRINTF (Perl_debug_log, "Stack now");
+ for (/* Nothing. */; bottom <= top; ++bottom)
+ YYFPRINTF (Perl_debug_log, " %d", *bottom);
+ YYFPRINTF (Perl_debug_log, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print (aTHX_ (Bottom), (Top)); \
+} while (0)
+
-#ifdef yyparse
-#undef yyparse
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+static void
+yy_reduce_print (pTHX_ int yyrule)
+{
+ int yyi;
+ unsigned int yylineno = yyrline[yyrule];
+ YYFPRINTF (Perl_debug_log, "Reducing stack by rule %d (line %u), ",
+ yyrule - 1, yylineno);
+ /* Print the symbols being reduced, and their result. */
+ for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+ YYFPRINTF (Perl_debug_log, "%s ", yytname [yyrhs[yyi]]);
+ YYFPRINTF (Perl_debug_log, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (aTHX_ Rule); \
+} while (0)
+
+#else /* !DEBUGGING */
+# define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !DEBUGGING */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks. */
+#ifndef YYINITDEPTH
+# define YYINITDEPTH 200
#endif
-#define yyparse() Perl_yyparse(pTHX)
-#line 1508 "perly.c"
-#define YYABORT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
+
+#if YYERROR_VERBOSE
+# ifndef yystrlen
+# if defined (__GLIBC__) && defined (_STRING_H)
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+static YYSIZE_T
+yystrlen (const char *yystr)
+{
+ register const char *yys = yystr;
+
+ while (*yys++ != '\0')
+ continue;
+
+ return yys - yystr - 1;
+}
+# endif
+# endif
+
+# ifndef yystpcpy
+# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+# define yystpcpy stpcpy
+# else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
+static char *
+yystpcpy (pTHX_ char *yydest, const char *yysrc)
+{
+ register char *yyd = yydest;
+ register const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+
+ return yyd - 1;
+}
+# endif
+# endif
+
+#endif /* !YYERROR_VERBOSE */
+
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+static void
+yydestruct (int yytype, YYSTYPE *yyvaluep)
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvaluep;
+
+ switch (yytype) {
+ default:
+ break;
+ }
+}
+
+
+
+
+/*----------.
+| yyparse. |
+`----------*/
+
int
-yyparse()
+Perl_yyparse (pTHX)
{
- register int yym, yyn, yystate;
+ int yychar; /* The lookahead symbol. */
+ YYSTYPE yylval; /* The semantic value of the lookahead symbol. */
+ int yynerrs; /* Number of syntax errors so far. */
+ register int yystate;
+ register int yyn;
+ int yyresult;
+
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken = 0;
+
+ /* two stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ short *yyss;
register short *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE *yyvs;
register YYSTYPE *yyvsp;
- short* yyss;
- YYSTYPE* yyvs;
- unsigned yystacksize = YYSTACKSIZE;
- int retval = 0;
-#if YYDEBUG
- register char *yys;
-#endif
- struct ysv *ysave;
+ /* for ease of re-allocation and automatic freeing, have two SVs whose
+ * SvPVX points to the stacks */
+ SV *yyss_sv, *yyvs_sv;
+
+#define YYPOPSTACK (yyvsp--, yyssp--)
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+
+ /* When reducing, the number of symbols on the RHS of the reduced
+ rule. */
+ int yylen;
+
+ YYDPRINTF ((Perl_debug_log, "Starting parse\n"));
+
+ yyss_sv = NEWSV(73, YYINITDEPTH * sizeof(short));
+ yyvs_sv = NEWSV(73, YYINITDEPTH * sizeof(YYSTYPE));
#ifdef USE_ITHREADS
- ENTER; /* force yydestruct() before we return */
-#endif
- New(73, ysave, 1, struct ysv);
- SAVEDESTRUCTOR_X(yydestruct, ysave);
- ysave->oldyydebug = yydebug;
- ysave->oldyynerrs = yynerrs;
- ysave->oldyyerrflag = yyerrflag;
- ysave->oldyychar = yychar;
- ysave->oldyyval = yyval;
- ysave->oldyylval = yylval;
-
-#if YYDEBUG
- if ((yys = getenv("YYDEBUG")))
- {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
- yydebug = yyn - '0';
- }
+ /* XXX is this needed anymore? DAPM 13-Feb-04;
+ * if not, delete the correspinding LEAVE too */
+ ENTER; /* force stack free before we return */
#endif
+ SAVEFREESV(yyss_sv);
+ SAVEFREESV(yyvs_sv);
+ yyss = (short *) SvPVX(yyss_sv);
+ yyvs = (YYSTYPE *) SvPVX(yyvs_sv);
+ yystate = 0;
+ yyerrstatus = 0;
yynerrs = 0;
- yyerrflag = 0;
- yychar = (-1);
-
- /*
- ** Initialize private stacks (yyparse may be called from an action)
- */
- New(73, yyss, yystacksize, short);
- New(73, yyvs, yystacksize, YYSTYPE);
- ysave->yyss = yyss;
- ysave->yyvs = yyvs;
- if (!yyvs || !yyss)
- goto yyoverflow;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
yyssp = yyss;
yyvsp = yyvs;
- *yyssp = yystate = 0;
-
-yyloop:
- if ((yyn = yydefred[yystate])) goto yyreduce;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
-#endif
+
+ goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks.
+ */
+ yyssp++;
+
+ yysetstate:
+ *yyssp = yystate;
+
+ if (yyss + yystacksize - 1 <= yyssp) {
+ /* Get the current used size of the three stacks, in elements. */
+ YYSIZE_T yysize = yyssp - yyss + 1;
+
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyoverflowlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ SvGROW(yyss_sv, yystacksize * sizeof(short));
+ SvGROW(yyvs_sv, yystacksize * sizeof(YYSTYPE));
+ yyss = (short *) SvPVX(yyss_sv);
+ yyvs = (YYSTYPE *) SvPVX(yyvs_sv);
+ if (!yyss || ! yyvs)
+ goto yyoverflowlab;
+
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
+
+
+ YYDPRINTF ((Perl_debug_log, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ YYABORT;
}
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
- yystate, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- /*
- ** reallocate and recover. Note that pointers
- ** have to be reset, or bad things will happen
- */
- int yyps_index = (yyssp - yyss);
- int yypv_index = (yyvsp - yyvs);
- yystacksize += YYSTACKSIZE;
- ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
- ysave->yyss = Renew(yyss, yystacksize, short);
- if (!yyvs || !yyss)
- goto yyoverflow;
- yyssp = yyss + yyps_index;
- yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- yychar = (-1);
- if (yyerrflag > 0) --yyerrflag;
- goto yyloop;
+
+ YYDPRINTF ((Perl_debug_log, "Entering state %d\n", yystate));
+
+ goto yybackup;
+
+ /*-----------.
+ | yybackup. |
+ `-----------*/
+ yybackup:
+
+/* Do appropriate processing given the current state. */
+/* Read a lookahead token if we need one and don't already have one. */
+/* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ if (yychar == YYEMPTY) {
+ YYDPRINTF ((Perl_debug_log, "Reading a token: "));
+ yychar = YYLEX;
+ }
+
+ if (yychar <= YYEOF) {
+ yychar = yytoken = YYEOF;
+ YYDPRINTF ((Perl_debug_log, "Now at end of input.\n"));
}
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
- yyn = yytable[yyn];
- goto yyreduce;
+ else {
+ yytoken = YYTRANSLATE (yychar);
+ YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
}
- if (yyerrflag) goto yyinrecovery;
-#ifdef lint
-#endif
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+ goto yydefault;
+ yyn = yytable[yyn];
+ if (yyn <= 0) {
+ if (yyn == 0 || yyn == YYTABLE_NINF)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
- yyerror("syntax error");
-#ifdef lint
+ if (yyn == YYFINAL)
+ YYACCEPT;
-#endif
+ /* Shift the lookahead token. */
+ YYDPRINTF ((Perl_debug_log, "Shifting token %s, ", yytname[yytoken]));
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+
+ /*-----------------------------------------------------------.
+ | yydefault -- do the default action for the current state. |
+ `-----------------------------------------------------------*/
+ yydefault:
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+ goto yyreduce;
+
+
+ /*-----------------------------.
+ | yyreduce -- Do a reduction. |
+ `-----------------------------*/
+ yyreduce:
+ /* yyn is the number of a rule to reduce with. */
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
+
+
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn) {
+
+/* contains all the rule actions; auto-generated from perly.y */
+
+#define dep() deprecate("\"do\" to call subroutines")
+#include "perly.act"
- ++yynerrs;
-yyinrecovery:
- if (yyerrflag < 3)
- {
- yyerrflag = 3;
- for (;;)
- {
- if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
- {
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
- to state %d\n", *yyssp, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- /*
- ** reallocate and recover. Note that pointers
- ** have to be reset, or bad things will happen
- */
- int yyps_index = (yyssp - yyss);
- int yypv_index = (yyvsp - yyvs);
- yystacksize += YYSTACKSIZE;
- ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
- ysave->yyss = Renew(yyss, yystacksize, short);
- if (!yyvs || !yyss)
- goto yyoverflow;
- yyssp = yyss + yyps_index;
- yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- goto yyloop;
- }
- else
- {
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
- *yyssp);
-#endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- --yyvsp;
- }
- }
}
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+
+
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
else
- {
- if (yychar == 0) goto yyabort;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
- yystate, yychar, yys);
- }
-#endif
- yychar = (-1);
- goto yyloop;
- }
-yyreduce:
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
-#endif
- yym = yylen[yyn];
- yyval = yyvsp[1-yym];
- switch (yyn)
- {
-case 1:
-#line 131 "perly.y"
-{ yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
-break;
-case 2:
-#line 136 "perly.y"
-{ if (PL_copline > (line_t)yyvsp[-3].ival)
- PL_copline = (line_t)yyvsp[-3].ival;
- yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
-break;
-case 3:
-#line 142 "perly.y"
-{ yyval.ival = block_start(TRUE); }
-break;
-case 4:
-#line 146 "perly.y"
-{
-#if defined(YYDEBUG) && defined(DEBUGGING)
- yydebug = (DEBUG_p_TEST);
-#endif
- PL_expect = XSTATE; yyval.ival = block_start(TRUE);
+ yystate = yydefgoto[yyn - YYNTOKENS];
+
+ goto yynewstate;
+
+
+ /*------------------------------------.
+ | yyerrlab -- here on detecting error |
+ `------------------------------------*/
+ yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus) {
+ ++yynerrs;
+#if YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (YYPACT_NINF < yyn && yyn < YYLAST) {
+ YYSIZE_T yysize = 0;
+ int yytype = YYTRANSLATE (yychar);
+ char *yymsg;
+ int yyx, yycount;
+
+ yycount = 0;
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ for (yyx = yyn < 0 ? -yyn : 0;
+ yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ yysize += yystrlen (yytname[yyx]) + 15, yycount++;
+ yysize += yystrlen ("syntax error, unexpected ") + 1;
+ yysize += yystrlen (yytname[yytype]);
+ New(yymsg, yysize, char *);
+ if (yymsg != 0) {
+ char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+ yyp = yystpcpy (yyp, yytname[yytype]);
+
+ if (yycount < 5) {
+ yycount = 0;
+ for (yyx = yyn < 0 ? -yyn : 0;
+ yyx < (int) (sizeof (yytname) / sizeof (char *));
+ yyx++)
+ {
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) {
+ const char *yyq = ! yycount ?
+ ", expecting " : " or ";
+ yyp = yystpcpy (yyp, yyq);
+ yyp = yystpcpy (yyp, yytname[yyx]);
+ yycount++;
+ }
+ }
}
-break;
-case 5:
-#line 156 "perly.y"
-{ if (PL_copline > (line_t)yyvsp[-3].ival)
- PL_copline = (line_t)yyvsp[-3].ival;
- yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
-break;
-case 6:
-#line 162 "perly.y"
-{ yyval.ival = block_start(FALSE); }
-break;
-case 7:
-#line 167 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 8:
-#line 169 "perly.y"
-{ yyval.opval = yyvsp[-1].opval; }
-break;
-case 9:
-#line 171 "perly.y"
-{ yyval.opval = append_list(OP_LINESEQ,
- (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
- PL_pad_reset_pending = TRUE;
- if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; }
-break;
-case 10:
-#line 179 "perly.y"
-{ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
-break;
-case 12:
-#line 182 "perly.y"
-{ if (yyvsp[-1].pval != Nullch) {
- yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
- }
- else {
- yyval.opval = Nullop;
- PL_copline = NOLINE;
- }
- PL_expect = XSTATE; }
-break;
-case 13:
-#line 191 "perly.y"
-{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
- PL_expect = XSTATE; }
-break;
-case 14:
-#line 197 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 15:
-#line 199 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 16:
-#line 201 "perly.y"
-{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
-break;
-case 17:
-#line 203 "perly.y"
-{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
-break;
-case 18:
-#line 205 "perly.y"
-{ yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
-break;
-case 19:
-#line 207 "perly.y"
-{ yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
-break;
-case 20:
-#line 209 "perly.y"
-{ yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
- Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
-break;
-case 21:
-#line 215 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 22:
-#line 217 "perly.y"
-{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
-break;
-case 23:
-#line 219 "perly.y"
-{ PL_copline = (line_t)yyvsp[-5].ival;
- yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
- PL_hints |= HINT_BLOCK_SCOPE; }
-break;
-case 24:
-#line 226 "perly.y"
-{ PL_copline = (line_t)yyvsp[-6].ival;
- yyval.opval = block_end(yyvsp[-4].ival,
- newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
-break;
-case 25:
-#line 230 "perly.y"
-{ PL_copline = (line_t)yyvsp[-6].ival;
- yyval.opval = block_end(yyvsp[-4].ival,
- newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
-break;
-case 26:
-#line 237 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 27:
-#line 239 "perly.y"
-{ yyval.opval = scope(yyvsp[0].opval); }
-break;
-case 28:
-#line 244 "perly.y"
-{ PL_copline = (line_t)yyvsp[-6].ival;
- yyval.opval = block_end(yyvsp[-4].ival,
- newSTATEOP(0, yyvsp[-7].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
-break;
-case 29:
-#line 250 "perly.y"
-{ PL_copline = (line_t)yyvsp[-6].ival;
- yyval.opval = block_end(yyvsp[-4].ival,
- newSTATEOP(0, yyvsp[-7].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
-break;
-case 30:
-#line 256 "perly.y"
-{ yyval.opval = block_end(yyvsp[-6].ival,
- newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 31:
-#line 259 "perly.y"
-{ yyval.opval = block_end(yyvsp[-4].ival,
- newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
- yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 32:
-#line 263 "perly.y"
-{ yyval.opval = block_end(yyvsp[-4].ival,
- newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 33:
-#line 267 "perly.y"
-{ OP *forop;
- PL_copline = (line_t)yyvsp[-9].ival;
- forop = newSTATEOP(0, yyvsp[-10].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- yyvsp[-9].ival, scalar(yyvsp[-4].opval),
- yyvsp[0].opval, yyvsp[-2].opval));
- if (yyvsp[-6].opval) {
- forop = append_elem(OP_LINESEQ,
- newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch),
- yyvsp[-6].opval),
- forop);
- }
-
- yyval.opval = block_end(yyvsp[-7].ival, forop); }
-break;
-case 34:
-#line 282 "perly.y"
-{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 35:
-#line 289 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 37:
-#line 295 "perly.y"
-{ (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
-break;
-case 39:
-#line 301 "perly.y"
-{ yyval.opval = invert(scalar(yyvsp[0].opval)); }
-break;
-case 40:
-#line 306 "perly.y"
-{ yyval.opval = yyvsp[0].opval; intro_my(); }
-break;
-case 41:
-#line 310 "perly.y"
-{ yyval.opval = yyvsp[0].opval; intro_my(); }
-break;
-case 42:
-#line 314 "perly.y"
-{ yyval.opval = yyvsp[0].opval; intro_my(); }
-break;
-case 43:
-#line 318 "perly.y"
-{ yyval.opval = yyvsp[0].opval; intro_my(); }
-break;
-case 44:
-#line 323 "perly.y"
-{ yyval.pval = Nullch; }
-break;
-case 46:
-#line 329 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 47:
-#line 331 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 48:
-#line 333 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 49:
-#line 335 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 50:
-#line 337 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 51:
-#line 341 "perly.y"
-{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
-break;
-case 52:
-#line 344 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 53:
-#line 345 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 54:
-#line 350 "perly.y"
-{ newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
-break;
-case 55:
-#line 355 "perly.y"
-{ newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
-break;
-case 56:
-#line 359 "perly.y"
-{ yyval.ival = start_subparse(FALSE, 0); }
-break;
-case 57:
-#line 363 "perly.y"
-{ yyval.ival = start_subparse(FALSE, CVf_ANON); }
-break;
-case 58:
-#line 367 "perly.y"
-{ yyval.ival = start_subparse(TRUE, 0); }
-break;
-case 59:
-#line 371 "perly.y"
-{ STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
- if (strEQ(name, "BEGIN") || strEQ(name, "END")
- || strEQ(name, "INIT") || strEQ(name, "CHECK"))
- CvSPECIAL_on(PL_compcv);
- yyval.opval = yyvsp[0].opval; }
-break;
-case 60:
-#line 380 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 62:
-#line 386 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 63:
-#line 388 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 64:
-#line 390 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 65:
-#line 395 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 66:
-#line 397 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 67:
-#line 401 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 68:
-#line 402 "perly.y"
-{ yyval.opval = Nullop; PL_expect = XSTATE; }
-break;
-case 69:
-#line 406 "perly.y"
-{ package(yyvsp[-1].opval); }
-break;
-case 70:
-#line 410 "perly.y"
-{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
-break;
-case 71:
-#line 412 "perly.y"
-{ utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
-break;
-case 72:
-#line 417 "perly.y"
-{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 73:
-#line 419 "perly.y"
-{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 74:
-#line 421 "perly.y"
-{ yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 76:
-#line 427 "perly.y"
-{ yyval.opval = yyvsp[-1].opval; }
-break;
-case 77:
-#line 429 "perly.y"
-{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 79:
-#line 435 "perly.y"
-{ yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
- prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
-break;
-case 80:
-#line 438 "perly.y"
-{ yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
- prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
-break;
-case 81:
-#line 441 "perly.y"
-{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST,
- prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
- newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
-break;
-case 82:
-#line 446 "perly.y"
-{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, scalar(yyvsp[-2].opval),
- newUNOP(OP_METHOD, 0, yyvsp[0].opval))); }
-break;
-case 83:
-#line 450 "perly.y"
-{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST,
- prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
- newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
-break;
-case 84:
-#line 455 "perly.y"
-{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST,
- prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
- newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
-break;
-case 85:
-#line 460 "perly.y"
-{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
-break;
-case 86:
-#line 462 "perly.y"
-{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
-break;
-case 87:
-#line 464 "perly.y"
-{ yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
-break;
-case 88:
-#line 466 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST,
- prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); }
-break;
-case 91:
-#line 480 "perly.y"
-{ yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval));
- PL_expect = XOPERATOR; }
-break;
-case 92:
-#line 483 "perly.y"
-{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
-break;
-case 93:
-#line 485 "perly.y"
-{ yyval.opval = newBINOP(OP_AELEM, 0,
- ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
- scalar(yyvsp[-1].opval));}
-break;
-case 94:
-#line 489 "perly.y"
-{ yyval.opval = newBINOP(OP_AELEM, 0,
- ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
- scalar(yyvsp[-1].opval));}
-break;
-case 95:
-#line 493 "perly.y"
-{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
- PL_expect = XOPERATOR; }
-break;
-case 96:
-#line 496 "perly.y"
-{ yyval.opval = newBINOP(OP_HELEM, 0,
- ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
- jmaybe(yyvsp[-2].opval));
- PL_expect = XOPERATOR; }
-break;
-case 97:
-#line 501 "perly.y"
-{ yyval.opval = newBINOP(OP_HELEM, 0,
- ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
- jmaybe(yyvsp[-2].opval));
- PL_expect = XOPERATOR; }
-break;
-case 98:
-#line 506 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- newCVREF(0, scalar(yyvsp[-3].opval))); }
-break;
-case 99:
-#line 509 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[-1].opval,
- newCVREF(0, scalar(yyvsp[-4].opval)))); }
-break;
-case 100:
-#line 514 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[-1].opval,
- newCVREF(0, scalar(yyvsp[-3].opval)))); }
-break;
-case 101:
-#line 518 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- newCVREF(0, scalar(yyvsp[-2].opval))); }
-break;
-case 102:
-#line 524 "perly.y"
-{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
-break;
-case 103:
-#line 526 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 104:
-#line 528 "perly.y"
-{ if (yyvsp[-1].ival != OP_REPEAT)
- scalar(yyvsp[-2].opval);
- yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
-break;
-case 105:
-#line 532 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 106:
-#line 534 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 107:
-#line 536 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 108:
-#line 538 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 109:
-#line 540 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 110:
-#line 542 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 111:
-#line 544 "perly.y"
-{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
-break;
-case 112:
-#line 546 "perly.y"
-{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 113:
-#line 548 "perly.y"
-{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 114:
-#line 550 "perly.y"
-{ yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 115:
-#line 552 "perly.y"
-{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 116:
-#line 557 "perly.y"
-{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
-break;
-case 117:
-#line 559 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 118:
-#line 561 "perly.y"
-{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
-break;
-case 119:
-#line 563 "perly.y"
-{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
-break;
-case 120:
-#line 565 "perly.y"
-{ yyval.opval = newUNOP(OP_POSTINC, 0,
- mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
-break;
-case 121:
-#line 568 "perly.y"
-{ yyval.opval = newUNOP(OP_POSTDEC, 0,
- mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
-break;
-case 122:
-#line 571 "perly.y"
-{ yyval.opval = newUNOP(OP_PREINC, 0,
- mod(scalar(yyvsp[0].opval), OP_PREINC)); }
-break;
-case 123:
-#line 574 "perly.y"
-{ yyval.opval = newUNOP(OP_PREDEC, 0,
- mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
-break;
-case 124:
-#line 581 "perly.y"
-{ yyval.opval = newANONLIST(yyvsp[-1].opval); }
-break;
-case 125:
-#line 583 "perly.y"
-{ yyval.opval = newANONLIST(Nullop); }
-break;
-case 126:
-#line 585 "perly.y"
-{ yyval.opval = newANONHASH(yyvsp[-2].opval); }
-break;
-case 127:
-#line 587 "perly.y"
-{ yyval.opval = newANONHASH(Nullop); }
-break;
-case 128:
-#line 589 "perly.y"
-{ yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
-break;
-case 129:
-#line 595 "perly.y"
-{ yyval.opval = dofile(yyvsp[0].opval); }
-break;
-case 130:
-#line 597 "perly.y"
-{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
-break;
-case 131:
-#line 599 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB,
- OPf_SPECIAL|OPf_STACKED,
- prepend_elem(OP_LIST,
- scalar(newCVREF(
- (OPpENTERSUB_AMPER<<8),
- scalar(yyvsp[-2].opval)
- )),Nullop)); dep();}
-break;
-case 132:
-#line 607 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB,
- OPf_SPECIAL|OPf_STACKED,
- append_elem(OP_LIST,
- yyvsp[-1].opval,
- scalar(newCVREF(
- (OPpENTERSUB_AMPER<<8),
- scalar(yyvsp[-3].opval)
- )))); dep();}
-break;
-case 133:
-#line 616 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
- prepend_elem(OP_LIST,
- scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
-break;
-case 134:
-#line 620 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
- prepend_elem(OP_LIST,
- yyvsp[-1].opval,
- scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
-break;
-case 139:
-#line 632 "perly.y"
-{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 140:
-#line 634 "perly.y"
-{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
-break;
-case 141:
-#line 636 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 142:
-#line 638 "perly.y"
-{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
-break;
-case 143:
-#line 640 "perly.y"
-{ yyval.opval = sawparens(yyvsp[-1].opval); }
-break;
-case 144:
-#line 642 "perly.y"
-{ yyval.opval = sawparens(newNULLLIST()); }
-break;
-case 145:
-#line 644 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 146:
-#line 646 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 147:
-#line 648 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 148:
-#line 650 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 149:
-#line 652 "perly.y"
-{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
-break;
-case 150:
-#line 654 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 151:
-#line 656 "perly.y"
-{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
-break;
-case 152:
-#line 658 "perly.y"
-{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
-break;
-case 153:
-#line 660 "perly.y"
-{ yyval.opval = prepend_elem(OP_ASLICE,
- newOP(OP_PUSHMARK, 0),
- newLISTOP(OP_ASLICE, 0,
- list(yyvsp[-1].opval),
- ref(yyvsp[-3].opval, OP_ASLICE))); }
-break;
-case 154:
-#line 666 "perly.y"
-{ yyval.opval = prepend_elem(OP_HSLICE,
- newOP(OP_PUSHMARK, 0),
- newLISTOP(OP_HSLICE, 0,
- list(yyvsp[-2].opval),
- ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
- PL_expect = XOPERATOR; }
-break;
-case 155:
-#line 673 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 156:
-#line 675 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
-break;
-case 157:
-#line 677 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
-break;
-case 158:
-#line 679 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
-break;
-case 159:
-#line 682 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
-break;
-case 160:
-#line 685 "perly.y"
-{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
- PL_hints |= HINT_BLOCK_SCOPE; }
-break;
-case 161:
-#line 688 "perly.y"
-{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
-break;
-case 162:
-#line 690 "perly.y"
-{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
-break;
-case 163:
-#line 692 "perly.y"
-{ yyval.opval = newOP(yyvsp[0].ival, 0); }
-break;
-case 164:
-#line 694 "perly.y"
-{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
-break;
-case 165:
-#line 696 "perly.y"
-{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
-break;
-case 166:
-#line 698 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
-break;
-case 167:
-#line 701 "perly.y"
-{ yyval.opval = newOP(yyvsp[0].ival, 0); }
-break;
-case 168:
-#line 703 "perly.y"
-{ yyval.opval = newOP(yyvsp[-2].ival, 0); }
-break;
-case 169:
-#line 705 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- scalar(yyvsp[0].opval)); }
-break;
-case 170:
-#line 708 "perly.y"
-{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
-break;
-case 171:
-#line 710 "perly.y"
-{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
-break;
-case 172:
-#line 712 "perly.y"
-{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
-break;
-case 173:
-#line 714 "perly.y"
-{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
-break;
-case 176:
-#line 721 "perly.y"
-{ yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
-break;
-case 177:
-#line 723 "perly.y"
-{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
-break;
-case 178:
-#line 728 "perly.y"
-{ yyval.opval = sawparens(yyvsp[-1].opval); }
-break;
-case 179:
-#line 730 "perly.y"
-{ yyval.opval = sawparens(newNULLLIST()); }
-break;
-case 180:
-#line 732 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 181:
-#line 734 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 182:
-#line 736 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 183:
-#line 741 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 184:
-#line 743 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 185:
-#line 747 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 186:
-#line 749 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 187:
-#line 751 "perly.y"
-{ yyval.opval = yyvsp[-1].opval; }
-break;
-case 188:
-#line 757 "perly.y"
-{ PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
-break;
-case 189:
-#line 761 "perly.y"
-{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
-break;
-case 190:
-#line 765 "perly.y"
-{ yyval.opval = newSVREF(yyvsp[0].opval); }
-break;
-case 191:
-#line 769 "perly.y"
-{ yyval.opval = newAVREF(yyvsp[0].opval); }
-break;
-case 192:
-#line 773 "perly.y"
-{ yyval.opval = newHVREF(yyvsp[0].opval); }
-break;
-case 193:
-#line 777 "perly.y"
-{ yyval.opval = newAVREF(yyvsp[0].opval); }
-break;
-case 194:
-#line 781 "perly.y"
-{ yyval.opval = newGVREF(0,yyvsp[0].opval); }
-break;
-case 195:
-#line 786 "perly.y"
-{ yyval.opval = scalar(yyvsp[0].opval); }
-break;
-case 196:
-#line 788 "perly.y"
-{ yyval.opval = scalar(yyvsp[0].opval); }
-break;
-case 197:
-#line 790 "perly.y"
-{ yyval.opval = scope(yyvsp[0].opval); }
-break;
-case 198:
-#line 793 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-#line 2563 "perly.c"
+ yyerror (yymsg);
+ YYSTACK_FREE (yymsg);
+ }
+ else
+ yyerror ("syntax error; also virtual memory exhausted");
+ }
+ else
+#endif /* YYERROR_VERBOSE */
+ yyerror ("syntax error");
}
- yyssp -= yym;
- yystate = *yyssp;
- yyvsp -= yym;
- yym = yylhs[yyn];
- if (yystate == 0 && yym == 0)
- {
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
- state %d\n", YYFINAL);
-#endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- *++yyvsp = yyval;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
- YYFINAL, yychar, yys);
- }
-#endif
- }
- if (yychar == 0) goto yyaccept;
- goto yyloop;
+
+
+ if (yyerrstatus == 3) {
+ /* If just tried and failed to reuse lookahead token after an
+ error, discard it. */
+
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF) {
+ /* Pop the error token. */
+ YYPOPSTACK;
+ /* Pop the rest of the stack. */
+ while (yyss < yyssp) {
+ YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+ yydestruct (yystos[*yyssp], yyvsp);
+ YYPOPSTACK;
+ }
+ YYABORT;
+ }
+
+ YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+ yydestruct (yytoken, &yylval);
+ yychar = YYEMPTY;
+
}
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- yystate = yytable[yyn];
- else
- yystate = yydgoto[yym];
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
-to state %d\n", *yyssp, yystate);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- /*
- ** reallocate and recover. Note that pointers
- ** have to be reset, or bad things will happen
- */
- int yyps_index = (yyssp - yyss);
- int yypv_index = (yyvsp - yyvs);
- yystacksize += YYSTACKSIZE;
- ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
- ysave->yyss = Renew(yyss, yystacksize, short);
- if (!yyvs || !yyss)
- goto yyoverflow;
- yyssp = yyss + yyps_index;
- yyvsp = yyvs + yypv_index;
+
+ /* Else will try to reuse lookahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+
+ /*----------------------------------------------------.
+ | yyerrlab1 -- error raised explicitly by an action. |
+ `----------------------------------------------------*/
+ yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
+ for (;;) {
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF) {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
+
+ YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+ yydestruct (yystos[yystate], yyvsp);
+ yyvsp--;
+ yystate = *--yyssp;
+
+ YY_STACK_PRINT (yyss, yyssp);
}
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
-yyoverflow:
- yyerror("Out of memory for yacc stack");
-yyabort:
- retval = 1;
-yyaccept:
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ YYDPRINTF ((Perl_debug_log, "Shifting error token, "));
+
+ *++yyvsp = yylval;
+
+ yystate = yyn;
+ goto yynewstate;
+
+
+ /*-------------------------------------.
+ | yyacceptlab -- YYACCEPT comes here. |
+ `-------------------------------------*/
+ yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+ /*-----------------------------------.
+ | yyabortlab -- YYABORT comes here. |
+ `-----------------------------------*/
+ yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+ /*----------------------------------------------.
+ | yyoverflowlab -- parser overflow comes here. |
+ `----------------------------------------------*/
+ yyoverflowlab:
+ yyerror ("parser stack overflow");
+ yyresult = 2;
+ /* Fall through. */
+
+ yyreturn:
+
#ifdef USE_ITHREADS
- LEAVE; /* force yydestruct() before we return */
+ LEAVE; /* force stack free before we return */
#endif
- return retval;
-}
-static void
-yydestruct(pTHX_ void *ptr)
-{
- struct ysv* ysave = (struct ysv*)ptr;
- if (ysave->yyss) Safefree(ysave->yyss);
- if (ysave->yyvs) Safefree(ysave->yyvs);
- yydebug = ysave->oldyydebug;
- yynerrs = ysave->oldyynerrs;
- yyerrflag = ysave->oldyyerrflag;
- yychar = ysave->oldyychar;
- yyval = ysave->oldyyval;
- yylval = ysave->oldyylval;
- Safefree(ysave);
+ return yyresult;
}
diff --git a/perly.fixer b/perly.fixer
deleted file mode 100755
index fec981f208..0000000000
--- a/perly.fixer
+++ /dev/null
@@ -1,256 +0,0 @@
-#!/bin/sh
-
-# Fix up yacc output to allow dynamic allocation. Since perly.c
-# is now provided with the perl source, this should not be necessary.
-#
-# However, if the user wishes to use byacc, or wishes to try another
-# compiler compiler (e.g. bison or yacc), this script will get run.
-# See makefile run_byacc target for more details.
-#
-# Currently, only byacc version 1.8 is fully supported.
-#
-# Hacks to make it work with Interactive's SysVr3 Version 2.2
-# doughera@lafayette.edu (Andy Dougherty) 3/23/91
-#
-# Additional information to make the BSD section work with SunOS 4.0.2
-# tdinger@East.Sun.COM (Tom Dinger) 4/15/1991
-#
-# Also edit some practices gcc -Wall finds questionable.
-#
-
-gnupatch=patch
-. ./config.sh
-
-input=$1
-output=$2
-tmp=perly$$
-
-inputh=`echo $input|sed 's:\.c$:.h:'`
-if grep '^#ifdef PERL_CORE' $inputh; then
- : never mind
-else
- echo "#ifdef PERL_CORE" > $tmp
- sed -e 's:^typedef union {:#endif /* PERL_CORE */\
-\
-typedef union {:' $inputh >> $tmp
- mv -f $tmp $inputh
-fi
-
-if grep 'yaccpar 1.8 (Berkeley)' $input >/dev/null 2>&1; then
- cp $input $output
- # Don't expect the diff to do everything -- do some by hand
- if test -f perly_c.diff; then
- $gnupatch -F3 $output <perly_c.diff
- sed -e '/^[ ]*printf("yydebug:/s/printf(/PerlIO_printf(Perl_debug_log, /' \
- -e '/^#line /s/"y[.]tab[.]c"/"perly.c"/' \
- -e '/\[\] *= *[{]/s/^/static /' \
- -e '/^static static/s/^static //' \
- -e '/^#define.WORD/,/^#define.ARROW/d' \
- -e '/^int.yydebug/,/^#define.yystacksize/d' \
- -e 's/^yyerrlab:$//' \
- -e 's/^ goto yyerrlab;//' \
- -e 's/^yynewerror:$//' \
- -e 's/^ goto yynewerror;//' \
- -e 's|^static char yysccsid\(.*\)|/* static char yysccsid\1 */|' \
- -e 's|deprecate(|deprecate_old(|' \
- < $output > $tmp && mv -f $tmp $output || exit 1
- rm -rf $input
- echo "If you need to debug perly.c, you need to fix up the #line"
- echo "directives yourself."
- fi
- exit
-elif grep 'yaccpar 1.9 (Berkeley)' $input >/dev/null 2>&1; then
- if test -f perly.c.dif9; then
- $gnupatch -F3 $output <perly.c.dif9
- sed -e '/^[ ]*printf("yydebug:/s/printf(/PerlIO_printf(Perl_debug_log, /' \
- -e '/^#line /s/"y[.]tab[.]c"/"perly.c"/' \
- -e '/\[\] *= *[{]/s/^/static /' \
- -e '/^static static/s/^static //' \
- -e '/^#define.WORD/,/^#define.ARROW/d' \
- -e '/^int.yydebug/,/^#define.yystacksize/d' \
- -e 's/^yyerrlab:$//' \
- -e 's/^ goto yyerrlab;//' \
- -e 's/^yynewerror:$//' \
- -e 's/^ goto yynewerror;//' \
- -e 's|^static char yysccsid\(.*\)|/* static char yysccsid\1 */|' \
- -e 's|deprecate(|deprecate_old(|' \
- < $output > $tmp && mv -f $tmp $output || exit 1
- rm -rf $input
- echo "If you need to debug perly.c, you need to fix up the #line"
- echo "directives yourself."
- exit 0
- else
- echo "Diffs from byacc-1.9 are not available."
- echo "If you wish to proceed anyway, do"
- echo "cp $input $output"
- echo "cp y.tab.h perly.h"
- echo "and re-run make. Otherwise, I will use the old perly.c"
- touch perly.c
- # Exit with error status to stop make.
- exit 1
- fi
-fi
-
-plan="unknown"
-
-echo ""
-echo "Warning: the yacc you have used is not directly supported by perl."
-echo "The perly.fixer script will attempt to make some changes to the generated"
-echo "file. The changes may be incomplete and that might lead to problems later"
-echo "(especially with complex scripts). You may need to apply the changes"
-echo "embedded in perl.fixer (and/or perly_c.dif*) by hand."
-echo ""
-
-# Below, we check for various characteristic yaccpar outputs.
-
-# Test for BSD 4.3 version.
-# Also tests for the SunOS 4.0.2 version
-egrep 'YYSTYPE[ ]*yyv\[ *YYMAXDEPTH *\];
-short[ ]*yys\[ *YYMAXDEPTH *\] *;
-yyps *= *&yys\[ *-1 *\];
-yypv *= *&yyv\[ *-1 *\];
-if *\( *\+\+yyps *>=* *&yys\[ *YYMAXDEPTH *\] *\)' $input >$tmp 2>/dev/null
-
-set `wc -l $tmp`
-if test "$1" = "5"; then
- plan="bsd43"
-fi
-
-if test "$plan" = "unknown"; then
- # Test for ISC 2.2 version (probably generic SysVr3).
-egrep 'YYSTYPE[ ]*yyv\[ *YYMAXDEPTH *\];
-int[ ]*yys\[ *YYMAXDEPTH *\] *;
-yyps *= *&yys\[ *-1 *\];
-yypv *= *&yyv\[ *-1 *\];
-if *\( *\+\+yy_ps *>= *&yys\[ *YYMAXDEPTH *\] *\)' $input >$tmp 2>/dev/null
-
- set `wc -l $tmp`
- if test "$1" = "5"; then
- plan="isc"
- fi
-fi
-
-# ------
-
-case "$plan" in
- ##################################################################
- # The SunOS 4.0.2 version has the comparison fixed already.
- # Also added are out of memory checks (makes porting the generated
- # code easier) For most systems, it can't hurt. -- TD
- "bsd43")
- echo "Attempting to patch perly.c to allow dynamic yacc stack allocation"
- echo "Assuming bsd4.3 yaccpar"
- cat >$tmp <<'END'
-/YYSTYPE[ ]*yyv\[ *YYMAXDEPTH *\];/c\
-int yymaxdepth = YYMAXDEPTH;\
-YYSTYPE *yyv; /* where the values are stored */\
-short *yys;\
-short *maxyyps;
-
-/short[ ]*yys\[ *YYMAXDEPTH *\] *;/d
-
-/yyps *= *&yys\[ *-1 *\];/d
-
-/yypv *= *&yyv\[ *-1 *\];/c\
-\ if (!yyv) {\
-\ New(73, yyv, yymaxdepth, YYSTYPE);\
-\ New(73, yys, yymaxdepth, short);\
-\ if ( !yyv || !yys ) {\
-\ yyerror( "out of memory" );\
-\ return(1);\
-\ }\
-\ maxyyps = &yys[yymaxdepth];\
-\ }\
-\ yyps = &yys[-1];\
-\ yypv = &yyv[-1];
-
-
-/if *( *\+\+yyps *>=* *&yys\[ *YYMAXDEPTH *\] *)/c\
-\ if( ++yyps >= maxyyps ) {\
-\ int tv = yypv - yyv;\
-\ int ts = yyps - yys;\
-\
-\ yymaxdepth *= 2;\
-\ Renew(yyv, yymaxdepth, YYSTYPE);\
-\ Renew(yys, yymaxdepth, short);\
-\ if ( !yyv || !yys ) {\
-\ yyerror( "yacc stack overflow" );\
-\ return(1);\
-\ }\
-\ yyps = yys + ts;\
-\ yypv = yyv + tv;\
-\ maxyyps = &yys[yymaxdepth];\
-\ }
-
-/yacc stack overflow.*}/d
-/yacc stack overflow/,/}/d
-END
- if sed -f $tmp <$input >$output
- then echo "The edit seems to have been applied okay."
- else echo "The edit seems to have failed!"
- fi
- ;;
-
- #######################################################
- "isc") # Interactive Systems 2.2 version
- echo "Attempting to patch perly.c to allow dynamic yacc stack allocation"
- echo "Assuming Interactive SysVr3 2.2 yaccpar"
- # Easier to simply put whole script here than to modify the
- # bsd script with sed.
- # Main changes: yaccpar sometimes uses yy_ps and yy_pv
- # which are local register variables.
- # if(++yyps > YYMAXDEPTH) had opening brace on next line.
- # I've kept that brace in along with a call to yyerror if
- # realloc fails. (Actually, I just don't know how to do
- # multi-line matches in sed.)
- cat > $tmp << 'END'
-/YYSTYPE[ ]*yyv\[ *YYMAXDEPTH *\];/c\
-int yymaxdepth = YYMAXDEPTH;\
-YYSTYPE *yyv; /* where the values are stored */\
-int *yys;\
-int *maxyyps;
-
-/int[ ]*yys\[ *YYMAXDEPTH *\] *;/d
-
-/yyps *= *&yys\[ *-1 *\];/d
-
-/yypv *= *&yyv\[ *-1 *\];/c\
-\ if (!yyv) {\
-\ New(73, yyv, yymaxdepth, YYSTYPE);\
-\ New(73, yys, yymaxdepth, int);\
-\ maxyyps = &yys[yymaxdepth];\
-\ }\
-\ yyps = &yys[-1];\
-\ yypv = &yyv[-1];
-
-/if *( *\+\+yy_ps *>= *&yys\[ *YYMAXDEPTH *\] *)/c\
-\ if( ++yy_ps >= maxyyps ) {\
-\ int tv = yy_pv - yyv;\
-\ int ts = yy_ps - yys;\
-\
-\ yymaxdepth *= 2;\
-\ Renew(yyv, yymaxdepth, YYSTYPE);\
-\ Renew(yys, yymaxdepth, int);\
-\ yy_ps = yyps = yys + ts;\
-\ yy_pv = yypv = yyv + tv;\
-\ maxyyps = &yys[yymaxdepth];\
-\ }\
-\ if (yyv == NULL || yys == NULL)
-END
- if sed -f $tmp < $input > $output
- then echo "The edit seems to have been applied okay."
- else echo "The edit seems to have failed!"
- fi
- ;;
-
- ######################################################
- # Plan still unknown
- *)
- echo "Unable to patch perly.c to allow dynamic yacc stack allocation (plan=$plan)"
- # just do minimal change to write $output from $input
- sed -e 's/Received token/ *** Received token/' $input >$output
- ;;
-esac
-
-echo ""
-rm -rf $tmp $input
diff --git a/perly.h b/perly.h
index 54d137250f..c780f10ca7 100644
--- a/perly.h
+++ b/perly.h
@@ -1,72 +1,184 @@
#ifdef PERL_CORE
-#define WORD 257
-#define METHOD 258
-#define FUNCMETH 259
-#define THING 260
-#define PMFUNC 261
-#define PRIVATEREF 262
-#define FUNC0SUB 263
-#define UNIOPSUB 264
-#define LSTOPSUB 265
-#define LABEL 266
-#define FORMAT 267
-#define SUB 268
-#define ANONSUB 269
-#define PACKAGE 270
-#define USE 271
-#define WHILE 272
-#define UNTIL 273
-#define IF 274
-#define UNLESS 275
-#define ELSE 276
-#define ELSIF 277
-#define CONTINUE 278
-#define FOR 279
-#define LOOPEX 280
-#define DOTDOT 281
-#define FUNC0 282
-#define FUNC1 283
-#define FUNC 284
-#define UNIOP 285
-#define LSTOP 286
-#define RELOP 287
-#define EQOP 288
-#define MULOP 289
-#define ADDOP 290
-#define DOLSHARP 291
-#define DO 292
-#define HASHBRACK 293
-#define NOAMP 294
-#define LOCAL 295
-#define MY 296
-#define MYSUB 297
-#define COLONATTR 298
-#define PREC_LOW 299
-#define OROP 300
+/* A Bison parser, made by GNU Bison 1.875. */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ WORD = 258,
+ METHOD = 259,
+ FUNCMETH = 260,
+ THING = 261,
+ PMFUNC = 262,
+ PRIVATEREF = 263,
+ FUNC0SUB = 264,
+ UNIOPSUB = 265,
+ LSTOPSUB = 266,
+ LABEL = 267,
+ FORMAT = 268,
+ SUB = 269,
+ ANONSUB = 270,
+ PACKAGE = 271,
+ USE = 272,
+ WHILE = 273,
+ UNTIL = 274,
+ IF = 275,
+ UNLESS = 276,
+ ELSE = 277,
+ ELSIF = 278,
+ CONTINUE = 279,
+ FOR = 280,
+ LOOPEX = 281,
+ DOTDOT = 282,
+ FUNC0 = 283,
+ FUNC1 = 284,
+ FUNC = 285,
+ UNIOP = 286,
+ LSTOP = 287,
+ RELOP = 288,
+ EQOP = 289,
+ MULOP = 290,
+ ADDOP = 291,
+ DOLSHARP = 292,
+ DO = 293,
+ HASHBRACK = 294,
+ NOAMP = 295,
+ LOCAL = 296,
+ MY = 297,
+ MYSUB = 298,
+ COLONATTR = 299,
+ PREC_LOW = 300,
+ DOROP = 301,
+ OROP = 302,
+ ANDOP = 303,
+ NOTOP = 304,
+ ASSIGNOP = 305,
+ DORDOR = 306,
+ OROR = 307,
+ ANDAND = 308,
+ BITOROP = 309,
+ BITANDOP = 310,
+ SHIFTOP = 311,
+ MATCHOP = 312,
+ REFGEN = 313,
+ UMINUS = 314,
+ POWOP = 315,
+ POSTDEC = 316,
+ POSTINC = 317,
+ PREDEC = 318,
+ PREINC = 319,
+ ARROW = 320
+ };
+#endif
+#define WORD 258
+#define METHOD 259
+#define FUNCMETH 260
+#define THING 261
+#define PMFUNC 262
+#define PRIVATEREF 263
+#define FUNC0SUB 264
+#define UNIOPSUB 265
+#define LSTOPSUB 266
+#define LABEL 267
+#define FORMAT 268
+#define SUB 269
+#define ANONSUB 270
+#define PACKAGE 271
+#define USE 272
+#define WHILE 273
+#define UNTIL 274
+#define IF 275
+#define UNLESS 276
+#define ELSE 277
+#define ELSIF 278
+#define CONTINUE 279
+#define FOR 280
+#define LOOPEX 281
+#define DOTDOT 282
+#define FUNC0 283
+#define FUNC1 284
+#define FUNC 285
+#define UNIOP 286
+#define LSTOP 287
+#define RELOP 288
+#define EQOP 289
+#define MULOP 290
+#define ADDOP 291
+#define DOLSHARP 292
+#define DO 293
+#define HASHBRACK 294
+#define NOAMP 295
+#define LOCAL 296
+#define MY 297
+#define MYSUB 298
+#define COLONATTR 299
+#define PREC_LOW 300
#define DOROP 301
-#define ANDOP 302
-#define NOTOP 303
-#define ASSIGNOP 304
-#define OROR 305
+#define OROP 302
+#define ANDOP 303
+#define NOTOP 304
+#define ASSIGNOP 305
#define DORDOR 306
-#define ANDAND 307
-#define BITOROP 308
-#define BITANDOP 309
-#define SHIFTOP 310
-#define MATCHOP 311
-#define UMINUS 312
+#define OROR 307
+#define ANDAND 308
+#define BITOROP 309
+#define BITANDOP 310
+#define SHIFTOP 311
+#define MATCHOP 312
#define REFGEN 313
-#define POWOP 314
-#define PREINC 315
-#define PREDEC 316
+#define UMINUS 314
+#define POWOP 315
+#define POSTDEC 316
#define POSTINC 317
-#define POSTDEC 318
-#define ARROW 319
-#endif /* PERL_CORE */
+#define PREDEC 318
+#define PREINC 319
+#define ARROW 320
+
-typedef union {
+
+
+#endif /* PERL_CORE */
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 21 "perly.y"
+typedef union YYSTYPE {
I32 ival;
char *pval;
OP *opval;
GV *gvval;
} YYSTYPE;
+/* Line 1248 of yacc.c. */
+#line 173 "perly.h"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+
+
diff --git a/perly.tab b/perly.tab
new file mode 100644
index 0000000000..4380332515
--- /dev/null
+++ b/perly.tab
@@ -0,0 +1,876 @@
+#define YYFINAL 3
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 2088
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 85
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 61
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 199
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 399
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 320
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const unsigned char yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 63, 2, 2, 81, 83, 46, 2,
+ 74, 73, 84, 80, 52, 79, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 55, 77,
+ 2, 2, 2, 54, 82, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 75, 2, 78, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 3, 2, 76, 64, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 47, 48, 49, 50, 51, 53, 56, 57, 58, 59,
+ 60, 61, 62, 65, 66, 67, 68, 69, 70, 71,
+ 72
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const unsigned short yyprhs[] =
+{
+ 0, 0, 3, 6, 11, 12, 13, 18, 19, 20,
+ 23, 26, 29, 31, 34, 38, 40, 42, 46, 50,
+ 54, 58, 62, 63, 66, 73, 81, 89, 90, 93,
+ 102, 111, 122, 132, 141, 153, 157, 158, 160, 161,
+ 163, 165, 167, 169, 171, 173, 174, 176, 178, 180,
+ 182, 184, 186, 191, 193, 194, 201, 208, 209, 210,
+ 211, 213, 214, 216, 217, 220, 222, 225, 227, 229,
+ 231, 235, 236, 244, 248, 252, 256, 258, 261, 265,
+ 267, 271, 277, 284, 288, 292, 298, 301, 306, 307,
+ 313, 315, 317, 323, 328, 334, 339, 345, 352, 358,
+ 363, 369, 374, 378, 382, 386, 390, 394, 398, 402,
+ 406, 410, 414, 418, 422, 426, 430, 434, 437, 440,
+ 443, 446, 449, 452, 455, 458, 462, 465, 470, 474,
+ 480, 483, 486, 491, 497, 502, 508, 510, 512, 514,
+ 516, 522, 525, 527, 530, 534, 537, 539, 541, 543,
+ 545, 547, 549, 556, 562, 567, 573, 575, 577, 581,
+ 586, 590, 592, 595, 598, 600, 603, 606, 609, 611,
+ 615, 617, 621, 626, 631, 638, 640, 642, 646, 649,
+ 653, 656, 658, 660, 662, 663, 665, 666, 668, 671,
+ 673, 676, 679, 682, 685, 688, 691, 693, 695, 697
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const short yyrhs[] =
+{
+ 86, 0, -1, 89, 92, -1, 3, 88, 92, 76,
+ -1, -1, -1, 3, 91, 92, 76, -1, -1, -1,
+ 92, 107, -1, 92, 93, -1, 106, 96, -1, 98,
+ -1, 106, 77, -1, 106, 94, 77, -1, 1, -1,
+ 123, -1, 123, 21, 123, -1, 123, 22, 123, -1,
+ 123, 19, 123, -1, 123, 20, 101, -1, 123, 26,
+ 123, -1, -1, 23, 90, -1, 24, 74, 102, 73,
+ 90, 95, -1, 21, 74, 88, 102, 73, 90, 95,
+ -1, 22, 74, 88, 105, 73, 90, 95, -1, -1,
+ 25, 87, -1, 106, 19, 74, 88, 104, 73, 90,
+ 97, -1, 106, 20, 74, 88, 105, 73, 90, 97,
+ -1, 106, 26, 43, 88, 138, 74, 102, 73, 90,
+ 97, -1, 106, 26, 140, 74, 88, 102, 73, 90,
+ 97, -1, 106, 26, 74, 88, 102, 73, 90, 97,
+ -1, 106, 26, 74, 88, 103, 77, 104, 77, 103,
+ 73, 90, -1, 106, 87, 97, -1, -1, 94, -1,
+ -1, 123, -1, 123, -1, 123, -1, 99, -1, 100,
+ -1, 101, -1, -1, 13, -1, 108, -1, 111, -1,
+ 110, -1, 120, -1, 121, -1, 14, 114, 109, 87,
+ -1, 4, -1, -1, 44, 112, 115, 116, 117, 119,
+ -1, 15, 112, 115, 116, 117, 119, -1, -1, -1,
+ -1, 4, -1, -1, 7, -1, -1, 45, 7, -1,
+ 45, -1, 45, 7, -1, 45, -1, 87, -1, 77,
+ -1, 17, 4, 77, -1, -1, 18, 112, 122, 4,
+ 4, 136, 77, -1, 123, 50, 123, -1, 123, 49,
+ 123, -1, 123, 48, 123, -1, 124, -1, 124, 52,
+ -1, 124, 52, 133, -1, 133, -1, 33, 145, 124,
+ -1, 31, 74, 145, 123, 73, -1, 133, 72, 127,
+ 74, 137, 73, -1, 133, 72, 127, -1, 5, 145,
+ 136, -1, 6, 145, 74, 137, 73, -1, 33, 136,
+ -1, 31, 74, 137, 73, -1, -1, 12, 113, 87,
+ 126, 136, -1, 5, -1, 140, -1, 144, 3, 123,
+ 77, 76, -1, 140, 75, 123, 78, -1, 133, 72,
+ 75, 123, 78, -1, 128, 75, 123, 78, -1, 140,
+ 3, 123, 77, 76, -1, 133, 72, 3, 123, 77,
+ 76, -1, 128, 3, 123, 77, 76, -1, 133, 72,
+ 74, 73, -1, 133, 72, 74, 123, 73, -1, 128,
+ 74, 123, 73, -1, 128, 74, 73, -1, 133, 53,
+ 133, -1, 133, 67, 133, -1, 133, 36, 133, -1,
+ 133, 37, 133, -1, 133, 61, 133, -1, 133, 34,
+ 133, -1, 133, 35, 133, -1, 133, 60, 133, -1,
+ 133, 59, 133, -1, 133, 28, 133, -1, 133, 58,
+ 133, -1, 133, 57, 133, -1, 133, 56, 133, -1,
+ 133, 62, 133, -1, 79, 133, -1, 80, 133, -1,
+ 63, 133, -1, 64, 133, -1, 133, 69, -1, 133,
+ 68, -1, 71, 133, -1, 70, 133, -1, 75, 123,
+ 78, -1, 75, 78, -1, 40, 123, 77, 76, -1,
+ 40, 77, 76, -1, 16, 113, 116, 117, 87, -1,
+ 39, 133, -1, 39, 87, -1, 39, 4, 74, 73,
+ -1, 39, 4, 74, 123, 73, -1, 39, 140, 74,
+ 73, -1, 39, 140, 74, 123, 73, -1, 129, -1,
+ 130, -1, 131, -1, 132, -1, 133, 54, 133, 55,
+ 133, -1, 65, 133, -1, 134, -1, 42, 133, -1,
+ 74, 123, 73, -1, 74, 73, -1, 140, -1, 144,
+ -1, 142, -1, 141, -1, 143, -1, 128, -1, 74,
+ 123, 73, 75, 123, 78, -1, 74, 73, 75, 123,
+ 78, -1, 141, 75, 123, 78, -1, 141, 3, 123,
+ 77, 76, -1, 7, -1, 139, -1, 139, 74, 73,
+ -1, 139, 74, 123, 73, -1, 41, 4, 136, -1,
+ 27, -1, 27, 133, -1, 51, 124, -1, 32, -1,
+ 32, 87, -1, 32, 133, -1, 11, 133, -1, 29,
+ -1, 29, 74, 73, -1, 10, -1, 30, 74, 73,
+ -1, 30, 74, 123, 73, -1, 8, 74, 133, 73,
+ -1, 8, 74, 133, 52, 133, 73, -1, 4, -1,
+ 125, -1, 43, 135, 118, -1, 43, 135, -1, 74,
+ 123, 73, -1, 74, 73, -1, 140, -1, 142, -1,
+ 141, -1, -1, 124, -1, -1, 123, -1, 123, 52,
+ -1, 140, -1, 46, 145, -1, 81, 145, -1, 82,
+ 145, -1, 83, 145, -1, 38, 145, -1, 84, 145,
+ -1, 4, -1, 140, -1, 87, -1, 9, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const unsigned short yyrline[] =
+{
+ 0, 86, 86, 92, 99, 103, 109, 116, 121, 122,
+ 124, 132, 134, 135, 144, 150, 152, 154, 156, 158,
+ 160, 162, 169, 170, 172, 179, 183, 191, 192, 197,
+ 203, 209, 212, 216, 219, 235, 243, 244, 249, 250,
+ 254, 259, 263, 267, 271, 277, 278, 282, 284, 286,
+ 288, 290, 294, 298, 299, 303, 308, 313, 317, 321,
+ 325, 334, 335, 340, 341, 343, 348, 350, 355, 356,
+ 359, 364, 363, 370, 372, 374, 376, 380, 382, 384,
+ 388, 391, 394, 399, 403, 408, 413, 415, 418, 417,
+ 426, 427, 431, 436, 438, 442, 446, 449, 454, 459,
+ 462, 467, 471, 477, 479, 481, 485, 487, 489, 491,
+ 493, 495, 497, 499, 501, 503, 505, 510, 512, 514,
+ 516, 518, 521, 524, 527, 534, 536, 538, 540, 542,
+ 548, 550, 552, 560, 569, 573, 581, 582, 583, 584,
+ 585, 587, 589, 591, 593, 595, 597, 599, 601, 603,
+ 605, 607, 609, 611, 613, 619, 626, 628, 630, 632,
+ 635, 638, 641, 643, 645, 647, 649, 651, 654, 656,
+ 658, 661, 663, 665, 667, 669, 670, 674, 676, 681,
+ 683, 685, 687, 689, 694, 696, 701, 702, 704, 710,
+ 714, 718, 722, 726, 730, 734, 739, 741, 743, 746
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "$end", "error", "$undefined", "'{'", "WORD", "METHOD", "FUNCMETH",
+ "THING", "PMFUNC", "PRIVATEREF", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB",
+ "LABEL", "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", "WHILE", "UNTIL",
+ "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "LOOPEX", "DOTDOT",
+ "FUNC0", "FUNC1", "FUNC", "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP",
+ "ADDOP", "DOLSHARP", "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY", "MYSUB",
+ "COLONATTR", "'&'", "PREC_LOW", "DOROP", "OROP", "ANDOP", "NOTOP",
+ "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND", "BITOROP",
+ "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", "UMINUS",
+ "POWOP", "POSTDEC", "POSTINC", "PREDEC", "PREINC", "ARROW", "')'",
+ "'('", "'['", "'}'", "';'", "']'", "'-'", "'+'", "'$'", "'@'", "'%'",
+ "'*'", "$accept", "prog", "block", "remember", "progstart", "mblock",
+ "mremember", "lineseq", "line", "sideff", "else", "cond", "cont",
+ "loop", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "mtexpr",
+ "miexpr", "label", "decl", "format", "formname", "mysubrout", "subrout",
+ "startsub", "startanonsub", "startformsub", "subname", "proto",
+ "subattrlist", "myattrlist", "subbody", "package", "use", "@1", "expr",
+ "argexpr", "listop", "@2", "method", "subscripted", "termbinop",
+ "termunop", "anonymous", "termdo", "term", "myattrterm", "myterm",
+ "listexpr", "listexprcom", "my_scalar", "amper", "scalar", "ary", "hsh",
+ "arylen", "star", "indirob", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const unsigned short yytoknum[] =
+{
+ 0, 256, 257, 123, 258, 259, 260, 261, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
+ 294, 295, 296, 297, 298, 299, 38, 300, 301, 302,
+ 303, 304, 44, 305, 63, 58, 306, 307, 308, 309,
+ 310, 311, 312, 33, 126, 313, 314, 315, 316, 317,
+ 318, 319, 320, 41, 40, 91, 125, 59, 93, 45,
+ 43, 36, 64, 37, 42
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const unsigned char yyr1[] =
+{
+ 0, 85, 86, 87, 88, 89, 90, 91, 92, 92,
+ 92, 93, 93, 93, 93, 94, 94, 94, 94, 94,
+ 94, 94, 95, 95, 95, 96, 96, 97, 97, 98,
+ 98, 98, 98, 98, 98, 98, 99, 99, 100, 100,
+ 101, 102, 103, 104, 105, 106, 106, 107, 107, 107,
+ 107, 107, 108, 109, 109, 110, 111, 112, 113, 114,
+ 115, 116, 116, 117, 117, 117, 118, 118, 119, 119,
+ 120, 122, 121, 123, 123, 123, 123, 124, 124, 124,
+ 125, 125, 125, 125, 125, 125, 125, 125, 126, 125,
+ 127, 127, 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 130, 130, 130,
+ 130, 130, 130, 130, 130, 131, 131, 131, 131, 131,
+ 132, 132, 132, 132, 132, 132, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 134, 134, 135,
+ 135, 135, 135, 135, 136, 136, 137, 137, 137, 138,
+ 139, 140, 141, 142, 143, 144, 145, 145, 145, 145
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const unsigned char yyr2[] =
+{
+ 0, 2, 2, 4, 0, 0, 4, 0, 0, 2,
+ 2, 2, 1, 2, 3, 1, 1, 3, 3, 3,
+ 3, 3, 0, 2, 6, 7, 7, 0, 2, 8,
+ 8, 10, 9, 8, 11, 3, 0, 1, 0, 1,
+ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
+ 1, 1, 4, 1, 0, 6, 6, 0, 0, 0,
+ 1, 0, 1, 0, 2, 1, 2, 1, 1, 1,
+ 3, 0, 7, 3, 3, 3, 1, 2, 3, 1,
+ 3, 5, 6, 3, 3, 5, 2, 4, 0, 5,
+ 1, 1, 5, 4, 5, 4, 5, 6, 5, 4,
+ 5, 4, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 2, 2, 2,
+ 2, 2, 2, 2, 2, 3, 2, 4, 3, 5,
+ 2, 2, 4, 5, 4, 5, 1, 1, 1, 1,
+ 5, 2, 1, 2, 3, 2, 1, 1, 1, 1,
+ 1, 1, 6, 5, 4, 5, 1, 1, 3, 4,
+ 3, 1, 2, 2, 1, 2, 2, 2, 1, 3,
+ 1, 3, 4, 4, 6, 1, 1, 3, 2, 3,
+ 2, 1, 1, 1, 0, 1, 0, 1, 2, 1,
+ 2, 2, 2, 2, 2, 2, 1, 1, 1, 1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const unsigned char yydefact[] =
+{
+ 5, 0, 8, 1, 45, 46, 59, 57, 0, 57,
+ 57, 10, 12, 0, 9, 47, 49, 48, 50, 51,
+ 54, 0, 0, 71, 0, 15, 4, 175, 0, 0,
+ 156, 0, 170, 0, 58, 58, 0, 0, 0, 0,
+ 0, 161, 168, 0, 0, 164, 184, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 13, 0, 0, 0, 0, 0, 0, 27,
+ 0, 11, 16, 76, 176, 151, 136, 137, 138, 139,
+ 79, 142, 157, 146, 149, 148, 150, 147, 53, 0,
+ 60, 61, 70, 0, 61, 8, 196, 199, 198, 197,
+ 184, 0, 0, 167, 0, 61, 4, 4, 4, 4,
+ 4, 4, 0, 162, 0, 0, 186, 165, 166, 196,
+ 185, 86, 197, 0, 194, 175, 131, 130, 146, 0,
+ 0, 184, 143, 0, 178, 181, 183, 182, 190, 163,
+ 119, 120, 141, 124, 123, 145, 0, 126, 0, 117,
+ 118, 191, 192, 193, 195, 0, 35, 14, 0, 0,
+ 0, 0, 0, 0, 0, 0, 77, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 122, 121, 0, 0, 0,
+ 0, 0, 0, 0, 52, 62, 63, 0, 63, 45,
+ 84, 186, 0, 88, 63, 38, 0, 0, 0, 0,
+ 0, 4, 169, 171, 0, 187, 0, 0, 80, 0,
+ 0, 128, 0, 160, 180, 0, 67, 177, 0, 144,
+ 125, 28, 19, 20, 40, 17, 18, 21, 75, 74,
+ 73, 78, 0, 102, 0, 0, 112, 108, 109, 105,
+ 106, 103, 0, 115, 114, 113, 111, 110, 107, 116,
+ 104, 0, 90, 0, 0, 83, 91, 158, 0, 0,
+ 0, 0, 0, 0, 65, 0, 184, 0, 3, 0,
+ 0, 173, 184, 0, 43, 0, 39, 44, 0, 0,
+ 41, 0, 0, 189, 37, 42, 0, 0, 16, 0,
+ 172, 188, 87, 0, 132, 0, 134, 0, 127, 179,
+ 66, 0, 0, 0, 101, 95, 0, 0, 99, 0,
+ 0, 186, 159, 0, 93, 0, 154, 0, 64, 69,
+ 68, 56, 0, 55, 85, 0, 89, 129, 0, 0,
+ 0, 0, 0, 0, 38, 0, 81, 133, 135, 153,
+ 0, 98, 140, 0, 100, 94, 0, 96, 155, 92,
+ 72, 174, 7, 27, 27, 22, 22, 0, 27, 0,
+ 0, 152, 97, 82, 8, 29, 30, 0, 0, 25,
+ 26, 0, 33, 0, 27, 45, 23, 0, 27, 0,
+ 32, 6, 0, 31, 0, 0, 34, 22, 24
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const short yydefgoto[] =
+{
+ -1, 1, 98, 95, 2, 363, 374, 4, 11, 294,
+ 379, 71, 156, 12, 295, 284, 287, 289, 297, 285,
+ 288, 13, 14, 15, 89, 16, 17, 21, 104, 20,
+ 91, 196, 275, 227, 331, 18, 19, 93, 290, 73,
+ 74, 282, 265, 75, 76, 77, 78, 79, 80, 81,
+ 134, 121, 216, 292, 82, 83, 84, 85, 86, 87,
+ 100
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -337
+static const short yypact[] =
+{
+ -337, 18, -337, -337, 244, -337, -337, -337, 31, -337,
+ -337, -337, -337, 314, -337, -337, -337, -337, -337, -337,
+ 50, 56, -14, -337, 56, -337, -337, -337, 49, 49,
+ -337, -7, -337, 1619, -337, -337, 10, 25, 47, 53,
+ -19, 1619, 55, 60, 61, 646, 564, 49, 728, 809,
+ 138, 1619, -17, 49, 1619, 1619, 1619, 1619, 1619, 1619,
+ 890, 971, -337, 1619, 1619, 49, 49, 49, 49, 118,
+ 76, -337, 611, 35, -337, 11, -337, -337, -337, -337,
+ 1917, -337, 92, 23, 26, -337, -337, 170, -337, 171,
+ -337, 174, -337, 181, 174, -337, -337, -337, -337, -337,
+ 1619, 112, 1619, 795, 171, 174, -337, -337, -337, -337,
+ -337, -337, 116, 1917, 123, 1052, 564, -337, 795, 1745,
+ 35, -337, 1685, 1619, -337, 117, -337, 795, 22, 125,
+ 83, 1619, 795, 1133, 153, -337, -337, -337, -337, 35,
+ 344, 344, 344, 40, 40, 124, 197, -337, -4, 344,
+ 344, -337, -337, -337, -337, 171, -337, -337, 1619, 1619,
+ 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1214, 1619,
+ 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
+ 1619, 1619, 1619, 1619, 1619, -337, -337, 14, 1295, 1619,
+ 1619, 1619, 1619, 1619, -337, -337, 157, 201, 157, 62,
+ -337, 1619, 1791, -337, 157, 1619, 1619, 1619, 1619, 130,
+ 398, -337, -337, -337, 219, 447, 139, 1619, 35, 1376,
+ 1457, -337, 140, -337, -337, 301, 207, -337, 1619, 142,
+ -337, -337, 332, -337, 332, 332, 332, 332, 173, 173,
+ -337, 1917, 261, -337, 319, 33, 2001, 714, 550, 141,
+ 229, 1917, 1875, 2016, 2016, 386, 469, 632, 217, 344,
+ 344, 1619, -337, 1538, 1619, 147, -337, -337, 369, 313,
+ 91, 323, 109, 500, 220, 13, 1619, 13, -337, 151,
+ 1619, -337, 1619, 171, -337, 155, 332, -337, 179, 182,
+ 332, 190, 209, -337, -337, -337, 198, 213, 256, 1619,
+ -337, -337, -337, 384, -337, 510, -337, 540, -337, -337,
+ -337, 122, 1619, 224, -337, -337, 1619, 664, -337, 551,
+ 245, 1619, -337, 226, -337, 227, -337, 231, -337, -337,
+ -337, -337, 239, -337, -337, 1833, -337, -337, 324, 324,
+ 324, 324, 1619, 324, 1619, 255, -337, -337, -337, -337,
+ 264, -337, 1959, 272, -337, -337, 259, -337, -337, -337,
+ -337, -337, -337, 118, 118, 101, 101, 285, 118, 260,
+ 324, -337, -337, -337, -337, -337, -337, 324, 290, -337,
+ -337, 324, -337, 482, 118, 150, -337, 1619, 118, 286,
+ -337, -337, 293, -337, 324, 324, -337, 101, -337
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const short yypgoto[] =
+{
+ -337, -337, -11, -98, -337, -121, -337, -94, -337, 363,
+ -336, -337, 574, -337, -337, -337, 228, -205, 0, 42,
+ 193, -337, -337, -337, -337, -337, -337, 63, 372, -337,
+ 391, -74, -165, -337, 149, -337, -337, -337, -13, 5,
+ -337, -337, -337, -337, -337, -337, -337, -337, 59, -337,
+ -337, -93, -195, -337, -337, -25, 383, 399, -337, -337,
+ 3
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -176
+static const short yytable[] =
+{
+ 72, 199, 69, 99, 99, 296, 279, 200, 205, 206,
+ 207, 208, 209, 210, 167, 112, 26, 261, 3, 262,
+ 198, 122, 99, 128, 110, 189, 189, 135, 99, 191,
+ 380, 204, 101, 277, 117, 22, 130, 126, 223, 283,
+ 99, 99, 99, 99, 163, 164, 165, 146, 148, 123,
+ 124, 120, 26, 96, 88, 111, 138, 133, 97, 139,
+ 90, 398, 65, 92, 65, 66, 67, 102, 151, 152,
+ 153, 154, 23, 24, 230, 5, 6, 7, 194, 8,
+ 9, 163, 164, 165, 106, 168, 169, 166, 263, 264,
+ 329, 122, 103, 203, 345, 65, 220, 190, 190, 107,
+ 113, 192, 214, 215, 118, 120, 10, 127, -176, -176,
+ 132, 315, 187, 299, 140, 141, 142, 143, 144, 217,
+ 225, 108, 149, 150, 377, 378, 356, 109, 218, 114,
+ 65, 163, 164, 165, 115, 116, 120, 367, 278, 163,
+ 164, 165, 131, 155, 231, 232, 234, 235, 236, 237,
+ 238, 239, 240, 157, 242, 244, 245, 163, 164, 165,
+ 222, 202, 266, 5, 6, 7, 188, 8, 9, 324,
+ 163, 164, 165, 193, 26, 268, 269, 270, 271, 272,
+ 273, 195, 392, 332, 293, 197, 201, 326, 215, 336,
+ 211, 219, 286, 234, 10, 234, 212, 298, 226, 228,
+ 349, 221, 274, 183, 303, 276, 305, 307, 184, 185,
+ 186, 65, 302, 187, 310, 311, 308, 312, 364, 365,
+ 366, 321, 368, 165, 334, 241, 391, 328, 338, 246,
+ 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, -2, 163, 164, 165, 317, 384,
+ 319, 320, 339, 173, 174, 340, 386, 5, 6, 7,
+ 388, 8, 9, 341, 330, 173, 330, 163, 164, 165,
+ 229, 343, 337, 396, 397, 158, 159, 160, 161, 183,
+ 385, 120, 162, 342, 184, 185, 186, 120, 10, 187,
+ 344, 183, 300, 163, 164, 165, 184, 185, 186, 350,
+ 351, 187, 357, 358, 163, 164, 165, 359, 215, 163,
+ 164, 165, 163, 164, 165, 25, 360, 26, 27, 28,
+ 29, 30, 31, 355, 32, 33, 34, 362, 370, -41,
+ 35, 286, 373, 36, 37, 38, 39, 383, 313, 335,
+ 40, 41, 371, 42, 43, 44, 45, 46, 372, 163,
+ 164, 165, 47, 48, 49, 50, 51, 52, 381, 394,
+ 53, 163, 164, 165, 387, 54, 395, 163, 164, 165,
+ 72, 163, 164, 165, 309, 352, 70, 55, 56, 57,
+ 163, 164, 165, 389, 58, 59, 369, 233, 60, 61,
+ 323, 62, 314, 63, 64, 65, 66, 67, 68, 25,
+ 325, 291, 27, 28, 29, 30, 31, 105, 32, 33,
+ 34, 184, 185, 186, 35, 94, 187, 163, 164, 165,
+ 171, 172, 173, 174, 0, 41, 333, 42, 43, 44,
+ 45, 46, 163, 164, 165, 136, 47, 48, 49, 50,
+ 51, 52, 322, 0, 53, 180, 181, 182, 183, 54,
+ 0, 137, 0, 184, 185, 186, 0, 346, 187, 0,
+ 0, 55, 56, 57, 0, 0, 0, 0, 58, 59,
+ 0, 0, 60, 61, 0, -36, 0, 63, 64, 65,
+ 66, 67, 68, 25, 0, 0, 27, 28, 29, 30,
+ 31, 0, 32, 33, 34, 163, 164, 165, 35, 301,
+ 0, 0, 0, 171, 172, 173, 174, 0, 0, 41,
+ 0, 42, 43, 44, 45, 46, 0, 0, 0, 0,
+ 47, 48, 49, 50, 51, 52, 0, 0, 53, 181,
+ 182, 183, 0, 54, 0, 0, 184, 185, 186, 0,
+ 0, 187, 0, 0, 0, 55, 56, 57, 163, 164,
+ 165, 0, 58, 59, 0, -36, 60, 61, 163, 164,
+ 165, 63, 64, 65, 66, 67, 68, 26, 119, 28,
+ 29, 30, 31, 97, 32, 33, 34, 327, 0, 0,
+ 35, 0, 0, 347, 171, -176, 173, 174, 163, 164,
+ 165, 41, 0, 42, 43, 44, 45, 46, 0, 163,
+ 164, 165, 47, 48, 49, 50, 51, 52, 0, 0,
+ 53, 182, 183, 348, 0, 54, 0, 184, 185, 186,
+ 0, 0, 187, 0, 354, 0, 0, 55, 56, 57,
+ 158, 159, 160, 161, 58, 59, 0, 162, 60, 61,
+ 0, 0, 0, 63, 64, 65, 66, 67, 68, 26,
+ 27, 28, 29, 30, 31, 0, 32, 33, 34, 163,
+ 164, 165, 35, 0, 0, 0, 171, 172, 173, 174,
+ 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
+ 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
+ 0, 0, 53, 182, 183, 0, 0, 54, 0, 184,
+ 185, 186, 0, 0, 187, 0, 0, 0, 0, 55,
+ 56, 57, 163, 164, 165, 0, 58, 59, 0, 0,
+ 60, 61, 0, 0, 0, 63, 64, 65, 66, 67,
+ 68, 26, 125, 28, 29, 30, 31, 0, 32, 33,
+ 34, 353, 0, 0, 35, 0, 0, 0, -176, 0,
+ 173, 174, 0, 0, 0, 41, 0, 42, 43, 44,
+ 45, 46, 0, 0, 0, 0, 47, 48, 49, 50,
+ 51, 52, 0, 0, 53, 182, 183, 0, 0, 54,
+ 0, 184, 185, 186, 0, 0, 187, 0, 0, 0,
+ 0, 55, 56, 57, 0, 0, 0, 0, 58, 59,
+ 0, 0, 60, 61, 0, 0, 0, 63, 64, 65,
+ 66, 67, 68, 27, 28, 29, 30, 31, 0, 32,
+ 33, 34, 0, 0, 0, 35, 0, 0, 0, 0,
+ 0, 173, 174, 0, 0, 0, 41, 0, 42, 43,
+ 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
+ 50, 51, 52, 0, 0, 53, 182, 183, 0, 0,
+ 54, 0, 184, 185, 186, 0, 0, 187, 0, 0,
+ 0, 0, 55, 56, 57, 0, 0, 0, 0, 58,
+ 59, 0, 0, 60, 61, 0, 129, 0, 63, 64,
+ 65, 66, 67, 68, 27, 28, 29, 30, 31, 0,
+ 32, 33, 34, 0, 0, 0, 35, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 41, 0, 42,
+ 43, 44, 45, 46, 0, 0, 0, 0, 47, 48,
+ 49, 50, 51, 52, 0, 0, 53, 375, 376, 0,
+ 0, 54, 382, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 55, 56, 57, 0, 0, 390, 0,
+ 58, 59, 393, 145, 60, 61, 0, 0, 0, 63,
+ 64, 65, 66, 67, 68, 27, 28, 29, 30, 31,
+ 0, 32, 33, 34, 0, 0, 0, 35, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 41, 0,
+ 42, 43, 44, 45, 46, 0, 0, 0, 0, 47,
+ 48, 49, 50, 51, 52, 0, 0, 53, 0, 0,
+ 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 55, 56, 57, 0, 0, 0,
+ 0, 58, 59, 0, 0, 60, 61, 0, 0, 147,
+ 63, 64, 65, 66, 67, 68, 27, 28, 29, 30,
+ 31, 0, 32, 33, 34, 0, 0, 0, 35, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,
+ 0, 42, 43, 44, 45, 46, 0, 0, 0, 0,
+ 47, 48, 49, 50, 51, 52, 0, 0, 53, 0,
+ 0, 0, 0, 54, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 55, 56, 57, 0, 0,
+ 0, 0, 58, 59, 0, 213, 60, 61, 0, 0,
+ 0, 63, 64, 65, 66, 67, 68, 27, 28, 29,
+ 30, 31, 0, 32, 33, 34, 0, 0, 0, 35,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 41, 0, 42, 43, 44, 45, 46, 0, 0, 0,
+ 0, 47, 48, 49, 50, 51, 52, 0, 0, 53,
+ 0, 0, 0, 0, 54, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 55, 56, 57, 0,
+ 0, 0, 0, 58, 59, 0, 224, 60, 61, 0,
+ 0, 0, 63, 64, 65, 66, 67, 68, 27, 28,
+ 29, 30, 31, 0, 32, 33, 34, 0, 0, 0,
+ 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 41, 0, 42, 43, 44, 45, 46, 0, 0,
+ 0, 0, 47, 48, 49, 50, 51, 52, 0, 0,
+ 53, 0, 0, 0, 0, 54, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 55, 56, 57,
+ 0, 0, 0, 0, 58, 59, 0, 243, 60, 61,
+ 0, 0, 0, 63, 64, 65, 66, 67, 68, 27,
+ 28, 29, 30, 31, 0, 32, 33, 34, 0, 0,
+ 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 41, 0, 42, 43, 44, 45, 46, 0,
+ 0, 0, 0, 47, 48, 49, 50, 51, 52, 0,
+ 0, 53, 0, 0, 0, 0, 54, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 55, 56,
+ 57, 0, 0, 0, 0, 58, 59, 0, 267, 60,
+ 61, 0, 0, 0, 63, 64, 65, 66, 67, 68,
+ 27, 28, 29, 30, 31, 0, 32, 33, 34, 0,
+ 0, 0, 35, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 41, 0, 42, 43, 44, 45, 46,
+ 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
+ 0, 0, 53, 0, 0, 0, 0, 54, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
+ 56, 57, 0, 0, 0, 0, 58, 59, 0, 304,
+ 60, 61, 0, 0, 0, 63, 64, 65, 66, 67,
+ 68, 27, 28, 29, 30, 31, 0, 32, 33, 34,
+ 0, 0, 0, 35, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 41, 0, 42, 43, 44, 45,
+ 46, 0, 0, 0, 0, 47, 48, 49, 50, 51,
+ 52, 0, 0, 53, 0, 0, 0, 0, 54, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 55, 56, 57, 0, 0, 0, 0, 58, 59, 0,
+ 306, 60, 61, 0, 0, 0, 63, 64, 65, 66,
+ 67, 68, 27, 28, 29, 30, 31, 0, 32, 33,
+ 34, 0, 0, 0, 35, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 41, 0, 42, 43, 44,
+ 45, 46, 0, 0, 0, 0, 47, 48, 49, 50,
+ 51, 52, 0, 0, 53, 0, 0, 0, 0, 54,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 55, 56, 57, 0, 0, 0, 0, 58, 59,
+ 0, 318, 60, 61, 0, 0, 0, 63, 64, 65,
+ 66, 67, 68, 27, 28, 29, 30, 31, 0, 32,
+ 33, 34, 0, 0, 0, 35, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 41, 0, 42, 43,
+ 44, 45, 46, 0, 0, 0, 0, 47, 48, 49,
+ 50, 51, 52, 0, 0, 53, 0, 0, 0, 0,
+ 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 55, 56, 57, 0, 0, 0, 189, 58,
+ 59, 0, 0, 60, 61, 0, 0, 0, 63, 64,
+ 65, 66, 67, 68, -146, -146, -146, -146, 0, 0,
+ 0, -146, 0, -146, 0, 0, 0, 0, 0, -146,
+ -146, -146, -146, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -146, -146, -146, 0, -146, -146, -146,
+ -146, -146, -146, -146, -146, -146, -146, -146, 0, 0,
+ 0, 0, -146, -146, -146, 0, 0, -146, -146, 0,
+ 190, 0, -146, -146, -175, -175, -175, -175, 0, 0,
+ 0, -175, 0, -175, 0, 0, 0, 0, 0, -175,
+ -175, -175, -175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -175, -175, -175, 0, -175, -175, -175,
+ -175, -175, -175, -175, -175, -175, -175, -175, 0, 0,
+ 0, 0, -175, -175, -175, 0, 0, -175, -175, 170,
+ 0, 0, -175, -175, 0, 171, 172, 173, 174, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 280, 175, 176, 0, 177, 178, 179,
+ 180, 181, 182, 183, 0, 0, 0, 0, 184, 185,
+ 186, 170, 0, 187, 281, 0, 0, 171, 172, 173,
+ 174, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 175, 176, 0, 177,
+ 178, 179, 180, 181, 182, 183, 0, 0, 0, 0,
+ 184, 185, 186, 170, 0, 187, 361, 0, 0, 171,
+ 172, 173, 174, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 175, 176,
+ 316, 177, 178, 179, 180, 181, 182, 183, 0, 0,
+ 0, 0, 184, 185, 186, 170, 0, 187, 0, 0,
+ 0, 171, 172, 173, 174, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 175, 176, 0, 177, 178, 179, 180, 181, 182, 183,
+ 0, 0, 0, 0, 184, 185, 186, 170, 0, 187,
+ 0, 0, 0, 171, 172, 173, 174, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 176, 0, 177, 178, 179, 180, 181,
+ 182, 183, 0, 0, 0, 0, 184, 185, 186, -176,
+ 0, 187, 0, 0, 0, 171, 172, 173, 174, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 171, 172, 173, 174, 0, 0, 0, 177, 178, 179,
+ 180, 181, 182, 183, 0, 0, 0, 0, 184, 185,
+ 186, 0, 0, 187, 179, 180, 181, 182, 183, 0,
+ 0, 0, 0, 184, 185, 186, 0, 0, 187
+};
+
+static const short yycheck[] =
+{
+ 13, 95, 13, 28, 29, 210, 201, 100, 106, 107,
+ 108, 109, 110, 111, 3, 40, 3, 3, 0, 5,
+ 94, 46, 47, 48, 43, 3, 3, 52, 53, 3,
+ 366, 105, 29, 198, 45, 4, 49, 48, 131, 204,
+ 65, 66, 67, 68, 48, 49, 50, 60, 61, 46,
+ 47, 46, 3, 4, 4, 74, 53, 74, 9, 54,
+ 4, 397, 81, 77, 81, 82, 83, 74, 65, 66,
+ 67, 68, 9, 10, 78, 13, 14, 15, 89, 17,
+ 18, 48, 49, 50, 74, 74, 75, 52, 74, 75,
+ 77, 116, 33, 104, 299, 81, 74, 75, 75, 74,
+ 41, 75, 115, 116, 45, 100, 44, 48, 68, 69,
+ 51, 78, 72, 211, 55, 56, 57, 58, 59, 116,
+ 133, 74, 63, 64, 23, 24, 321, 74, 123, 74,
+ 81, 48, 49, 50, 74, 74, 131, 342, 76, 48,
+ 49, 50, 4, 25, 155, 158, 159, 160, 161, 162,
+ 163, 164, 165, 77, 167, 168, 169, 48, 49, 50,
+ 77, 102, 187, 13, 14, 15, 74, 17, 18, 78,
+ 48, 49, 50, 3, 3, 188, 189, 190, 191, 192,
+ 193, 7, 387, 276, 209, 4, 74, 78, 201, 282,
+ 74, 74, 205, 206, 44, 208, 73, 210, 45, 75,
+ 78, 76, 45, 62, 217, 4, 219, 220, 67, 68,
+ 69, 81, 73, 72, 7, 228, 76, 75, 339, 340,
+ 341, 74, 343, 50, 73, 166, 76, 7, 73, 170,
+ 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 0, 48, 49, 50, 261, 370,
+ 263, 264, 73, 36, 37, 73, 377, 13, 14, 15,
+ 381, 17, 18, 73, 275, 36, 277, 48, 49, 50,
+ 73, 73, 283, 394, 395, 19, 20, 21, 22, 62,
+ 374, 276, 26, 74, 67, 68, 69, 282, 44, 72,
+ 77, 62, 73, 48, 49, 50, 67, 68, 69, 312,
+ 76, 72, 76, 76, 48, 49, 50, 76, 321, 48,
+ 49, 50, 48, 49, 50, 1, 77, 3, 4, 5,
+ 6, 7, 8, 78, 10, 11, 12, 3, 73, 73,
+ 16, 344, 73, 19, 20, 21, 22, 77, 77, 280,
+ 26, 27, 78, 29, 30, 31, 32, 33, 76, 48,
+ 49, 50, 38, 39, 40, 41, 42, 43, 73, 73,
+ 46, 48, 49, 50, 74, 51, 73, 48, 49, 50,
+ 383, 48, 49, 50, 73, 316, 13, 63, 64, 65,
+ 48, 49, 50, 383, 70, 71, 344, 159, 74, 75,
+ 77, 77, 73, 79, 80, 81, 82, 83, 84, 1,
+ 77, 208, 4, 5, 6, 7, 8, 35, 10, 11,
+ 12, 67, 68, 69, 16, 24, 72, 48, 49, 50,
+ 34, 35, 36, 37, -1, 27, 277, 29, 30, 31,
+ 32, 33, 48, 49, 50, 52, 38, 39, 40, 41,
+ 42, 43, 73, -1, 46, 59, 60, 61, 62, 51,
+ -1, 52, -1, 67, 68, 69, -1, 73, 72, -1,
+ -1, 63, 64, 65, -1, -1, -1, -1, 70, 71,
+ -1, -1, 74, 75, -1, 77, -1, 79, 80, 81,
+ 82, 83, 84, 1, -1, -1, 4, 5, 6, 7,
+ 8, -1, 10, 11, 12, 48, 49, 50, 16, 52,
+ -1, -1, -1, 34, 35, 36, 37, -1, -1, 27,
+ -1, 29, 30, 31, 32, 33, -1, -1, -1, -1,
+ 38, 39, 40, 41, 42, 43, -1, -1, 46, 60,
+ 61, 62, -1, 51, -1, -1, 67, 68, 69, -1,
+ -1, 72, -1, -1, -1, 63, 64, 65, 48, 49,
+ 50, -1, 70, 71, -1, 73, 74, 75, 48, 49,
+ 50, 79, 80, 81, 82, 83, 84, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 77, -1, -1,
+ 16, -1, -1, 73, 34, 35, 36, 37, 48, 49,
+ 50, 27, -1, 29, 30, 31, 32, 33, -1, 48,
+ 49, 50, 38, 39, 40, 41, 42, 43, -1, -1,
+ 46, 61, 62, 73, -1, 51, -1, 67, 68, 69,
+ -1, -1, 72, -1, 73, -1, -1, 63, 64, 65,
+ 19, 20, 21, 22, 70, 71, -1, 26, 74, 75,
+ -1, -1, -1, 79, 80, 81, 82, 83, 84, 3,
+ 4, 5, 6, 7, 8, -1, 10, 11, 12, 48,
+ 49, 50, 16, -1, -1, -1, 34, 35, 36, 37,
+ -1, -1, -1, 27, -1, 29, 30, 31, 32, 33,
+ -1, -1, -1, -1, 38, 39, 40, 41, 42, 43,
+ -1, -1, 46, 61, 62, -1, -1, 51, -1, 67,
+ 68, 69, -1, -1, 72, -1, -1, -1, -1, 63,
+ 64, 65, 48, 49, 50, -1, 70, 71, -1, -1,
+ 74, 75, -1, -1, -1, 79, 80, 81, 82, 83,
+ 84, 3, 4, 5, 6, 7, 8, -1, 10, 11,
+ 12, 77, -1, -1, 16, -1, -1, -1, 34, -1,
+ 36, 37, -1, -1, -1, 27, -1, 29, 30, 31,
+ 32, 33, -1, -1, -1, -1, 38, 39, 40, 41,
+ 42, 43, -1, -1, 46, 61, 62, -1, -1, 51,
+ -1, 67, 68, 69, -1, -1, 72, -1, -1, -1,
+ -1, 63, 64, 65, -1, -1, -1, -1, 70, 71,
+ -1, -1, 74, 75, -1, -1, -1, 79, 80, 81,
+ 82, 83, 84, 4, 5, 6, 7, 8, -1, 10,
+ 11, 12, -1, -1, -1, 16, -1, -1, -1, -1,
+ -1, 36, 37, -1, -1, -1, 27, -1, 29, 30,
+ 31, 32, 33, -1, -1, -1, -1, 38, 39, 40,
+ 41, 42, 43, -1, -1, 46, 61, 62, -1, -1,
+ 51, -1, 67, 68, 69, -1, -1, 72, -1, -1,
+ -1, -1, 63, 64, 65, -1, -1, -1, -1, 70,
+ 71, -1, -1, 74, 75, -1, 77, -1, 79, 80,
+ 81, 82, 83, 84, 4, 5, 6, 7, 8, -1,
+ 10, 11, 12, -1, -1, -1, 16, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 27, -1, 29,
+ 30, 31, 32, 33, -1, -1, -1, -1, 38, 39,
+ 40, 41, 42, 43, -1, -1, 46, 363, 364, -1,
+ -1, 51, 368, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 63, 64, 65, -1, -1, 384, -1,
+ 70, 71, 388, 73, 74, 75, -1, -1, -1, 79,
+ 80, 81, 82, 83, 84, 4, 5, 6, 7, 8,
+ -1, 10, 11, 12, -1, -1, -1, 16, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 27, -1,
+ 29, 30, 31, 32, 33, -1, -1, -1, -1, 38,
+ 39, 40, 41, 42, 43, -1, -1, 46, -1, -1,
+ -1, -1, 51, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 63, 64, 65, -1, -1, -1,
+ -1, 70, 71, -1, -1, 74, 75, -1, -1, 78,
+ 79, 80, 81, 82, 83, 84, 4, 5, 6, 7,
+ 8, -1, 10, 11, 12, -1, -1, -1, 16, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 27,
+ -1, 29, 30, 31, 32, 33, -1, -1, -1, -1,
+ 38, 39, 40, 41, 42, 43, -1, -1, 46, -1,
+ -1, -1, -1, 51, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 63, 64, 65, -1, -1,
+ -1, -1, 70, 71, -1, 73, 74, 75, -1, -1,
+ -1, 79, 80, 81, 82, 83, 84, 4, 5, 6,
+ 7, 8, -1, 10, 11, 12, -1, -1, -1, 16,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 27, -1, 29, 30, 31, 32, 33, -1, -1, -1,
+ -1, 38, 39, 40, 41, 42, 43, -1, -1, 46,
+ -1, -1, -1, -1, 51, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 63, 64, 65, -1,
+ -1, -1, -1, 70, 71, -1, 73, 74, 75, -1,
+ -1, -1, 79, 80, 81, 82, 83, 84, 4, 5,
+ 6, 7, 8, -1, 10, 11, 12, -1, -1, -1,
+ 16, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 27, -1, 29, 30, 31, 32, 33, -1, -1,
+ -1, -1, 38, 39, 40, 41, 42, 43, -1, -1,
+ 46, -1, -1, -1, -1, 51, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 63, 64, 65,
+ -1, -1, -1, -1, 70, 71, -1, 73, 74, 75,
+ -1, -1, -1, 79, 80, 81, 82, 83, 84, 4,
+ 5, 6, 7, 8, -1, 10, 11, 12, -1, -1,
+ -1, 16, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 27, -1, 29, 30, 31, 32, 33, -1,
+ -1, -1, -1, 38, 39, 40, 41, 42, 43, -1,
+ -1, 46, -1, -1, -1, -1, 51, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 63, 64,
+ 65, -1, -1, -1, -1, 70, 71, -1, 73, 74,
+ 75, -1, -1, -1, 79, 80, 81, 82, 83, 84,
+ 4, 5, 6, 7, 8, -1, 10, 11, 12, -1,
+ -1, -1, 16, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 27, -1, 29, 30, 31, 32, 33,
+ -1, -1, -1, -1, 38, 39, 40, 41, 42, 43,
+ -1, -1, 46, -1, -1, -1, -1, 51, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 63,
+ 64, 65, -1, -1, -1, -1, 70, 71, -1, 73,
+ 74, 75, -1, -1, -1, 79, 80, 81, 82, 83,
+ 84, 4, 5, 6, 7, 8, -1, 10, 11, 12,
+ -1, -1, -1, 16, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 27, -1, 29, 30, 31, 32,
+ 33, -1, -1, -1, -1, 38, 39, 40, 41, 42,
+ 43, -1, -1, 46, -1, -1, -1, -1, 51, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 63, 64, 65, -1, -1, -1, -1, 70, 71, -1,
+ 73, 74, 75, -1, -1, -1, 79, 80, 81, 82,
+ 83, 84, 4, 5, 6, 7, 8, -1, 10, 11,
+ 12, -1, -1, -1, 16, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 27, -1, 29, 30, 31,
+ 32, 33, -1, -1, -1, -1, 38, 39, 40, 41,
+ 42, 43, -1, -1, 46, -1, -1, -1, -1, 51,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 63, 64, 65, -1, -1, -1, -1, 70, 71,
+ -1, 73, 74, 75, -1, -1, -1, 79, 80, 81,
+ 82, 83, 84, 4, 5, 6, 7, 8, -1, 10,
+ 11, 12, -1, -1, -1, 16, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 27, -1, 29, 30,
+ 31, 32, 33, -1, -1, -1, -1, 38, 39, 40,
+ 41, 42, 43, -1, -1, 46, -1, -1, -1, -1,
+ 51, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 63, 64, 65, -1, -1, -1, 3, 70,
+ 71, -1, -1, 74, 75, -1, -1, -1, 79, 80,
+ 81, 82, 83, 84, 19, 20, 21, 22, -1, -1,
+ -1, 26, -1, 28, -1, -1, -1, -1, -1, 34,
+ 35, 36, 37, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, -1, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, -1, -1,
+ -1, -1, 67, 68, 69, -1, -1, 72, 73, -1,
+ 75, -1, 77, 78, 19, 20, 21, 22, -1, -1,
+ -1, 26, -1, 28, -1, -1, -1, -1, -1, 34,
+ 35, 36, 37, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, -1, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, -1, -1,
+ -1, -1, 67, 68, 69, -1, -1, 72, 73, 28,
+ -1, -1, 77, 78, -1, 34, 35, 36, 37, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 52, 53, 54, -1, 56, 57, 58,
+ 59, 60, 61, 62, -1, -1, -1, -1, 67, 68,
+ 69, 28, -1, 72, 73, -1, -1, 34, 35, 36,
+ 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 53, 54, -1, 56,
+ 57, 58, 59, 60, 61, 62, -1, -1, -1, -1,
+ 67, 68, 69, 28, -1, 72, 73, -1, -1, 34,
+ 35, 36, 37, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, -1, -1,
+ -1, -1, 67, 68, 69, 28, -1, 72, -1, -1,
+ -1, 34, 35, 36, 37, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 53, 54, -1, 56, 57, 58, 59, 60, 61, 62,
+ -1, -1, -1, -1, 67, 68, 69, 28, -1, 72,
+ -1, -1, -1, 34, 35, 36, 37, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 54, -1, 56, 57, 58, 59, 60,
+ 61, 62, -1, -1, -1, -1, 67, 68, 69, 28,
+ -1, 72, -1, -1, -1, 34, 35, 36, 37, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 34, 35, 36, 37, -1, -1, -1, 56, 57, 58,
+ 59, 60, 61, 62, -1, -1, -1, -1, 67, 68,
+ 69, -1, -1, 72, 58, 59, 60, 61, 62, -1,
+ -1, -1, -1, 67, 68, 69, -1, -1, 72
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const unsigned char yystos[] =
+{
+ 0, 86, 89, 0, 92, 13, 14, 15, 17, 18,
+ 44, 93, 98, 106, 107, 108, 110, 111, 120, 121,
+ 114, 112, 4, 112, 112, 1, 3, 4, 5, 6,
+ 7, 8, 10, 11, 12, 16, 19, 20, 21, 22,
+ 26, 27, 29, 30, 31, 32, 33, 38, 39, 40,
+ 41, 42, 43, 46, 51, 63, 64, 65, 70, 71,
+ 74, 75, 77, 79, 80, 81, 82, 83, 84, 87,
+ 94, 96, 123, 124, 125, 128, 129, 130, 131, 132,
+ 133, 134, 139, 140, 141, 142, 143, 144, 4, 109,
+ 4, 115, 77, 122, 115, 88, 4, 9, 87, 140,
+ 145, 145, 74, 133, 113, 113, 74, 74, 74, 74,
+ 43, 74, 140, 133, 74, 74, 74, 87, 133, 4,
+ 124, 136, 140, 145, 145, 4, 87, 133, 140, 77,
+ 123, 4, 133, 74, 135, 140, 141, 142, 145, 124,
+ 133, 133, 133, 133, 133, 73, 123, 78, 123, 133,
+ 133, 145, 145, 145, 145, 25, 97, 77, 19, 20,
+ 21, 22, 26, 48, 49, 50, 52, 3, 74, 75,
+ 28, 34, 35, 36, 37, 53, 54, 56, 57, 58,
+ 59, 60, 61, 62, 67, 68, 69, 72, 74, 3,
+ 75, 3, 75, 3, 87, 7, 116, 4, 116, 92,
+ 136, 74, 133, 87, 116, 88, 88, 88, 88, 88,
+ 88, 74, 73, 73, 123, 123, 137, 145, 124, 74,
+ 74, 76, 77, 136, 73, 123, 45, 118, 75, 73,
+ 78, 87, 123, 101, 123, 123, 123, 123, 123, 123,
+ 123, 133, 123, 73, 123, 123, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 3, 5, 74, 75, 127, 140, 73, 123, 123,
+ 123, 123, 123, 123, 45, 117, 4, 117, 76, 137,
+ 52, 73, 126, 117, 100, 104, 123, 101, 105, 102,
+ 123, 105, 138, 140, 94, 99, 102, 103, 123, 88,
+ 73, 52, 73, 123, 73, 123, 73, 123, 76, 73,
+ 7, 123, 75, 77, 73, 78, 55, 123, 73, 123,
+ 123, 74, 73, 77, 78, 77, 78, 77, 7, 77,
+ 87, 119, 136, 119, 73, 133, 136, 87, 73, 73,
+ 73, 73, 74, 73, 77, 102, 73, 73, 73, 78,
+ 123, 76, 133, 77, 73, 78, 137, 76, 76, 76,
+ 77, 73, 3, 90, 90, 90, 90, 102, 90, 104,
+ 73, 78, 76, 73, 91, 97, 97, 23, 24, 95,
+ 95, 73, 97, 77, 90, 92, 90, 74, 90, 103,
+ 97, 76, 102, 97, 73, 73, 90, 90, 95
+};
diff --git a/perly.y b/perly.y
index 63210aec2e..d87c873363 100644
--- a/perly.y
+++ b/perly.y
@@ -1,6 +1,6 @@
/* perly.y
*
- * Copyright (c) 1991-2002, Larry Wall
+ * Copyright (c) 1991-2002, 2003, 2004 Larry Wall
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
@@ -12,44 +12,11 @@
* All that is gold does not glitter, not all those who wander are lost.'
*/
-%{
-#include "EXTERN.h"
-#define PERL_IN_PERLY_C
-#include "perl.h"
-#ifdef EBCDIC
-#undef YYDEBUG
-#endif
-#define dep() deprecate("\"do\" to call subroutines")
-
-/* stuff included here to make perly_c.diff apply better */
-
-#define yydebug PL_yydebug
-#define yynerrs PL_yynerrs
-#define yyerrflag PL_yyerrflag
-#define yychar PL_yychar
-#define yyval PL_yyval
-#define yylval PL_yylval
-
-struct ysv {
- short* yyss;
- YYSTYPE* yyvs;
- int oldyydebug;
- int oldyynerrs;
- int oldyyerrflag;
- int oldyychar;
- YYSTYPE oldyyval;
- YYSTYPE oldyylval;
-};
-
-static void yydestruct(pTHX_ void *ptr);
-
-%}
+/* Make the parser re-entrant. */
-%start prog
+%pure_parser
-%{
-#if 0 /* get this from perly.h instead */
-%}
+%start prog
%union {
I32 ival;
@@ -58,16 +25,6 @@ static void yydestruct(pTHX_ void *ptr);
GV *gvval;
}
-%{
-#endif /* 0 */
-
-#ifdef USE_PURE_BISON
-#define YYLEX_PARAM (&yychar)
-#define yylex yylex_r
-#endif
-
-%}
-
%token <ival> '{'
%token <opval> WORD METHOD FUNCMETH THING PMFUNC PRIVATEREF
@@ -144,9 +101,6 @@ remember: /* NULL */ /* start a full lexical scope */
progstart:
{
-#if defined(YYDEBUG) && defined(DEBUGGING)
- yydebug = (DEBUG_p_TEST);
-#endif
PL_expect = XSTATE; $$ = block_start(TRUE);
}
;
@@ -792,13 +746,3 @@ indirob : WORD
| PRIVATEREF
{ $$ = $1; }
;
-
-%% /* PROGRAM */
-
-/* more stuff added to make perly_c.diff easier to apply */
-
-#ifdef yyparse
-#undef yyparse
-#endif
-#define yyparse() Perl_yyparse(pTHX)
-
diff --git a/perly_c.diff b/perly_c.diff
deleted file mode 100644
index 1a9c2d7991..0000000000
--- a/perly_c.diff
+++ /dev/null
@@ -1,457 +0,0 @@
---- perly.c.orig Sun Dec 28 01:04:08 2003
-+++ perly.c Sun Dec 28 01:08:37 2003
-@@ -1,5 +1,5 @@
- #ifndef lint
--static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
-+/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
- #endif
- #define YYBYACC 1
- #line 16 "perly.y"
-@@ -9,7 +9,7 @@
- #ifdef EBCDIC
- #undef YYDEBUG
- #endif
--#define dep() deprecate("\"do\" to call subroutines")
-+#define dep() deprecate_old("\"do\" to call subroutines")
-
- /* stuff included here to make perly_c.diff apply better */
-
-@@ -50,72 +50,9 @@
- #define yylex yylex_r
- #endif
-
--#line 54 "y.tab.c"
--#define WORD 257
--#define METHOD 258
--#define FUNCMETH 259
--#define THING 260
--#define PMFUNC 261
--#define PRIVATEREF 262
--#define FUNC0SUB 263
--#define UNIOPSUB 264
--#define LSTOPSUB 265
--#define LABEL 266
--#define FORMAT 267
--#define SUB 268
--#define ANONSUB 269
--#define PACKAGE 270
--#define USE 271
--#define WHILE 272
--#define UNTIL 273
--#define IF 274
--#define UNLESS 275
--#define ELSE 276
--#define ELSIF 277
--#define CONTINUE 278
--#define FOR 279
--#define LOOPEX 280
--#define DOTDOT 281
--#define FUNC0 282
--#define FUNC1 283
--#define FUNC 284
--#define UNIOP 285
--#define LSTOP 286
--#define RELOP 287
--#define EQOP 288
--#define MULOP 289
--#define ADDOP 290
--#define DOLSHARP 291
--#define DO 292
--#define HASHBRACK 293
--#define NOAMP 294
--#define LOCAL 295
--#define MY 296
--#define MYSUB 297
--#define COLONATTR 298
--#define PREC_LOW 299
--#define OROP 300
--#define DOROP 301
--#define ANDOP 302
--#define NOTOP 303
--#define ASSIGNOP 304
--#define OROR 305
--#define DORDOR 306
--#define ANDAND 307
--#define BITOROP 308
--#define BITANDOP 309
--#define SHIFTOP 310
--#define MATCHOP 311
--#define UMINUS 312
--#define REFGEN 313
--#define POWOP 314
--#define PREINC 315
--#define PREDEC 316
--#define POSTINC 317
--#define POSTDEC 318
--#define ARROW 319
-+#line 54 "perly.c"
- #define YYERRCODE 256
--short yylhs[] = { -1,
-+static short yylhs[] = { -1,
- 0, 9, 7, 6, 10, 8, 11, 11, 11, 12,
- 12, 12, 12, 25, 25, 25, 25, 25, 25, 25,
- 15, 15, 15, 14, 14, 43, 43, 13, 13, 13,
-@@ -137,7 +74,7 @@
- 49, 49, 34, 34, 35, 35, 35, 44, 24, 19,
- 20, 21, 22, 23, 36, 36, 36, 36,
- };
--short yylen[] = { 2,
-+static short yylen[] = { 2,
- 2, 4, 0, 0, 4, 0, 0, 2, 2, 2,
- 1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
- 0, 2, 6, 7, 7, 0, 2, 8, 8, 10,
-@@ -159,7 +96,7 @@
- 1, 1, 0, 1, 0, 1, 2, 1, 2, 2,
- 2, 2, 2, 2, 1, 1, 1, 1,
- };
--short yydefred[] = { 4,
-+static short yydefred[] = { 4,
- 0, 7, 0, 45, 58, 56, 0, 56, 56, 8,
- 46, 9, 11, 48, 0, 47, 49, 50, 0, 0,
- 0, 70, 0, 14, 3, 174, 0, 0, 155, 0,
-@@ -201,7 +138,7 @@
- 32, 0, 0, 0, 22, 0, 0, 0, 31, 5,
- 0, 30, 0, 0, 33, 0, 23,
- };
--short yydgoto[] = { 1,
-+static short yydgoto[] = { 1,
- 10, 11, 20, 103, 19, 2, 94, 373, 97, 362,
- 3, 12, 13, 69, 378, 288, 71, 72, 73, 74,
- 75, 76, 77, 78, 294, 80, 295, 284, 286, 289,
-@@ -209,7 +146,7 @@
- 195, 330, 155, 292, 274, 226, 14, 82, 136, 83,
- 84, 85, 86, 15, 16, 17, 18, 92, 281,
- };
--short yysindex[] = { 0,
-+static short yysindex[] = { 0,
- 0, 0, -236, 0, 0, 0, -231, 0, 0, 0,
- 0, 0, 0, 0, 819, 0, 0, 0, -211, -209,
- 3, 0, -209, 0, 0, 0, -32, -32, 0, 23,
-@@ -251,7 +188,7 @@
- 0, 1859, -173, 350, 0, 2213, -173, 360, 0, 0,
- 361, 0, 221, 221, 0, -240, 0,
- };
--short yyrindex[] = { 0,
-+static short yyrindex[] = { 0,
- 0, 0, 371, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 289, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -293,7 +230,7 @@
- 0, 435, 90, 880, 0, 0, 90, 0, 0, 0,
- 0, 0, 0, 0, 0, 186, 0,
- };
--short yygindex[] = { 0,
-+static short yygindex[] = { 0,
- 0, 0, 50, 453, 0, 0, -22, 0, 63, 153,
- -93, 0, 0, 0, -346, -15, 2480, 0, 1744, 437,
- 439, 0, 0, 0, 481, 755, 0, 0, 341, -186,
-@@ -302,7 +239,7 @@
- 0, 0, 0, 0, 0, 0, 0, 0, 0,
- };
- #define YYTABLESIZE 5051
--short yytable[] = { 70,
-+static short yytable[] = { 70,
- 198, 300, 75, 64, 60, 280, 228, 60, 279, 64,
- 199, 328, 183, 257, 219, 62, 278, 64, 379, 186,
- 75, 110, 296, 188, 15, 21, 197, 170, 64, 4,
-@@ -810,7 +747,7 @@
- 0, 0, 0, 0, 114, 114, 114, 0, 114, 114,
- 114,
- };
--short yycheck[] = { 15,
-+static short yycheck[] = { 15,
- 94, 44, 41, 36, 59, 41, 41, 123, 44, 36,
- 99, 59, 40, 40, 40, 59, 200, 36, 365, 91,
- 59, 40, 209, 91, 41, 257, 93, 63, 59, 266,
-@@ -1324,7 +1261,7 @@
- #endif
- #define YYMAXTOKEN 319
- #if YYDEBUG
--char *yyname[] = {
-+static char *yyname[] = {
- "end-of-file",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,
- "'!'",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,0,0,0,0,0,0,
-@@ -1341,7 +1278,7 @@
- "DORDOR","ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN",
- "POWOP","PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
- };
--char *yyrule[] = {
-+static char *yyrule[] = {
- "$accept : prog",
- "prog : progstart lineseq",
- "block : '{' remember lineseq '}'",
-@@ -1557,17 +1494,6 @@
- #define YYMAXDEPTH 500
- #endif
- #endif
--int yydebug;
--int yynerrs;
--int yyerrflag;
--int yychar;
--short *yyssp;
--YYSTYPE *yyvsp;
--YYSTYPE yyval;
--YYSTYPE yylval;
--short yyss[YYSTACKSIZE];
--YYSTYPE yyvs[YYSTACKSIZE];
--#define yystacksize YYSTACKSIZE
- #line 796 "perly.y"
- /* PROGRAM */
-
-@@ -1578,7 +1504,7 @@
- #endif
- #define yyparse() Perl_yyparse(pTHX)
-
--#line 1582 "y.tab.c"
-+#line 1508 "perly.c"
- #define YYABORT goto yyabort
- #define YYACCEPT goto yyaccept
- #define YYERROR goto yyerrlab
-@@ -1586,11 +1512,31 @@
- yyparse()
- {
- register int yym, yyn, yystate;
-+ register short *yyssp;
-+ register YYSTYPE *yyvsp;
-+ short* yyss;
-+ YYSTYPE* yyvs;
-+ unsigned yystacksize = YYSTACKSIZE;
-+ int retval = 0;
- #if YYDEBUG
- register char *yys;
-- extern char *getenv();
-+#endif
-+
-+ struct ysv *ysave;
-+#ifdef USE_ITHREADS
-+ ENTER; /* force yydestruct() before we return */
-+#endif
-+ New(73, ysave, 1, struct ysv);
-+ SAVEDESTRUCTOR_X(yydestruct, ysave);
-+ ysave->oldyydebug = yydebug;
-+ ysave->oldyynerrs = yynerrs;
-+ ysave->oldyyerrflag = yyerrflag;
-+ ysave->oldyychar = yychar;
-+ ysave->oldyyval = yyval;
-+ ysave->oldyylval = yylval;
-
-- if (yys = getenv("YYDEBUG"))
-+#if YYDEBUG
-+ if ((yys = getenv("YYDEBUG")))
- {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
-@@ -1602,12 +1548,22 @@
- yyerrflag = 0;
- yychar = (-1);
-
-+ /*
-+ ** Initialize private stacks (yyparse may be called from an action)
-+ */
-+ New(73, yyss, yystacksize, short);
-+ New(73, yyvs, yystacksize, YYSTYPE);
-+ ysave->yyss = yyss;
-+ ysave->yyvs = yyvs;
-+ if (!yyvs || !yyss)
-+ goto yyoverflow;
-+
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
-
- yyloop:
-- if (yyn = yydefred[yystate]) goto yyreduce;
-+ if ((yyn = yydefred[yystate])) goto yyreduce;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-@@ -1617,7 +1573,7 @@
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
-- printf("yydebug: state %d, reading %d (%s)\n", yystate,
-+ PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
- #endif
-@@ -1627,12 +1583,24 @@
- {
- #if YYDEBUG
- if (yydebug)
-- printf("yydebug: state %d, shifting to state %d\n",
-+ PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
- yystate, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
-+ /*
-+ ** reallocate and recover. Note that pointers
-+ ** have to be reset, or bad things will happen
-+ */
-+ int yyps_index = (yyssp - yyss);
-+ int yypv_index = (yyvsp - yyvs);
-+ yystacksize += YYSTACKSIZE;
-+ ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
-+ ysave->yyss = Renew(yyss, yystacksize, short);
-+ if (!yyvs || !yyss)
- goto yyoverflow;
-+ yyssp = yyss + yyps_index;
-+ yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
-@@ -1648,14 +1616,14 @@
- }
- if (yyerrflag) goto yyinrecovery;
- #ifdef lint
-- goto yynewerror;
-+
- #endif
--yynewerror:
-+
- yyerror("syntax error");
- #ifdef lint
-- goto yyerrlab;
-+
- #endif
--yyerrlab:
-+
- ++yynerrs;
- yyinrecovery:
- if (yyerrflag < 3)
-@@ -1668,12 +1636,24 @@
- {
- #if YYDEBUG
- if (yydebug)
-- printf("yydebug: state %d, error recovery shifting\
-+ PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
- to state %d\n", *yyssp, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
-+ /*
-+ ** reallocate and recover. Note that pointers
-+ ** have to be reset, or bad things will happen
-+ */
-+ int yyps_index = (yyssp - yyss);
-+ int yypv_index = (yyvsp - yyvs);
-+ yystacksize += YYSTACKSIZE;
-+ ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
-+ ysave->yyss = Renew(yyss, yystacksize, short);
-+ if (!yyvs || !yyss)
- goto yyoverflow;
-+ yyssp = yyss + yyps_index;
-+ yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
-@@ -1683,7 +1663,7 @@
- {
- #if YYDEBUG
- if (yydebug)
-- printf("yydebug: error recovery discarding state %d\n",
-+ PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
- *yyssp);
- #endif
- if (yyssp <= yyss) goto yyabort;
-@@ -1701,7 +1681,7 @@
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
-- printf("yydebug: state %d, error recovery discards token %d (%s)\n",
-+ PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
- yystate, yychar, yys);
- }
- #endif
-@@ -1711,7 +1691,7 @@
- yyreduce:
- #if YYDEBUG
- if (yydebug)
-- printf("yydebug: state %d, reducing by rule %d (%s)\n",
-+ PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
- #endif
- yym = yylen[yyn];
-@@ -2579,7 +2559,7 @@
- #line 793 "perly.y"
- { yyval.opval = yyvsp[0].opval; }
- break;
--#line 2583 "y.tab.c"
-+#line 2563 "perly.c"
- }
- yyssp -= yym;
- yystate = *yyssp;
-@@ -2589,7 +2569,7 @@
- {
- #if YYDEBUG
- if (yydebug)
-- printf("yydebug: after reduction, shifting from state 0 to\
-+ PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
- state %d\n", YYFINAL);
- #endif
- yystate = YYFINAL;
-@@ -2604,7 +2584,7 @@
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
-- printf("yydebug: state %d, reading %d (%s)\n",
-+ PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
- YYFINAL, yychar, yys);
- }
- #endif
-@@ -2619,20 +2599,50 @@
- yystate = yydgoto[yym];
- #if YYDEBUG
- if (yydebug)
-- printf("yydebug: after reduction, shifting from state %d \
-+ PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
- to state %d\n", *yyssp, yystate);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
-+ /*
-+ ** reallocate and recover. Note that pointers
-+ ** have to be reset, or bad things will happen
-+ */
-+ int yyps_index = (yyssp - yyss);
-+ int yypv_index = (yyvsp - yyvs);
-+ yystacksize += YYSTACKSIZE;
-+ ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
-+ ysave->yyss = Renew(yyss, yystacksize, short);
-+ if (!yyvs || !yyss)
- goto yyoverflow;
-+ yyssp = yyss + yyps_index;
-+ yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
- yyoverflow:
-- yyerror("yacc stack overflow");
-+ yyerror("Out of memory for yacc stack");
- yyabort:
-- return (1);
-+ retval = 1;
- yyaccept:
-- return (0);
-+#ifdef USE_ITHREADS
-+ LEAVE; /* force yydestruct() before we return */
-+#endif
-+ return retval;
-+}
-+
-+static void
-+yydestruct(pTHX_ void *ptr)
-+{
-+ struct ysv* ysave = (struct ysv*)ptr;
-+ if (ysave->yyss) Safefree(ysave->yyss);
-+ if (ysave->yyvs) Safefree(ysave->yyvs);
-+ yydebug = ysave->oldyydebug;
-+ yynerrs = ysave->oldyynerrs;
-+ yyerrflag = ysave->oldyyerrflag;
-+ yychar = ysave->oldyychar;
-+ yyval = ysave->oldyyval;
-+ yylval = ysave->oldyylval;
-+ Safefree(ysave);
- }
diff --git a/perlyline.pl b/perlyline.pl
deleted file mode 100644
index f360fb41ef..0000000000
--- a/perlyline.pl
+++ /dev/null
@@ -1,11 +0,0 @@
-$line = 1;
-while (<>)
- {
- $line++;
- # 1st correct #line directives for perly.c itself
- s/^(#line\s+)\d+(\s*"perly\.c"\s*)$/$1$line$2/;
- # now add () round things gcc dislikes
- s/if \(yyn = yydefred\[yystate\]\)/if ((yyn = yydefred[yystate]))/;
- s/if \(yys = getenv\("YYDEBUG"\)\)/if ((yys = getenv("YYDEBUG")))/;
- print;
- }
diff --git a/regen_perly.pl b/regen_perly.pl
new file mode 100644
index 0000000000..da917e0806
--- /dev/null
+++ b/regen_perly.pl
@@ -0,0 +1,188 @@
+#!/usr/bin/perl
+#
+# regen_perly.pl, DAPM 12-Feb-04
+#
+# Copyright (c) 2004 Larry Wall
+#
+# Given an input file perly.y, run bison on it and produce
+# the following output files:
+#
+# perly.h standard bison header file with minor doctoring of
+# #line directives plus adding a #ifdef PERL_CORE
+#
+# perly.tab the parser table C definitions extracted from the bison output
+#
+# perly.act the action case statements extracted from the bison output
+#
+# Note that perly.c is *not* regenerated - this is now a static file which
+# is not dependent on perly.y any more.
+#
+# If a filename of the form foo.y is given on the command line, then
+# this is used instead as the basename for all the files mentioned
+# above.
+#
+# Note that temporary files of the form perlytmp.h and perlytmp.c are
+# created and then deleted during this process
+#
+# Note also that this script is intended to be run on a UNIX system;
+# it may work elsewhere but no specific attempt has been made to make it
+# portable.
+
+sub usage { die "usage: $0 [ -b bison_executable ] [ file.y ]\n" }
+
+use warnings;
+use strict;
+
+my $bison = 'bison';
+
+if (@ARGV >= 2 and $ARGV[0] eq '-b') {
+ shift;
+ $bison = shift;
+}
+
+my $y_file = shift || 'perly.y';
+
+usage unless @ARGV==0 && $y_file =~ /\.y$/;
+
+(my $h_file = $y_file) =~ s/\.y$/.h/;
+(my $act_file = $y_file) =~ s/\.y$/.act/;
+(my $tab_file = $y_file) =~ s/\.y$/.tab/;
+(my $tmpc_file = $y_file) =~ s/\.y$/tmp.c/;
+(my $tmph_file = $y_file) =~ s/\.y$/tmp.h/;
+
+# the yytranslate[] table generated by bison is ASCII/EBCDIC sensitive
+
+die "$0: must be run on an ASCII system\n" unless ord 'A' == 65;
+
+# check for correct version number. The constraints are:
+# * must be >= 1.24 to avoid licensing issues.
+# * it must generate the yystos[] table. Version 1.28 doesn't generate
+# this; 1.35+ does
+# * Must produce output which is extractable by the regexes below
+# * Must produce the right values.
+# These last two contstraints may well be met by earlier versions, but
+# I simply haven't tested them yet. If it works for you, then modify
+# the test below to allow that version too. DAPM Feb 04.
+
+my $version = `$bison -V`;
+unless ($version =~ /\b1\.875\b/) { die <<EOF; }
+
+You have the wrong version of bison in your path; currently 1.875 is
+required. Try installing
+ http://ftp.gnu.org/gnu/bison/bison-1.875.tar.bz2
+or similar. Your bison identifies itself as:
+
+$version
+EOF
+
+# creates $tmpc_file and $tmph_file
+my_system("$bison -d -o $tmpc_file $y_file");
+
+open CTMPFILE, $tmpc_file or die "Can't open $tmpc_file: $!\n";
+my $clines;
+{ local $/; $clines = <CTMPFILE>; }
+die "failed to read $tmpc_file: length mismatch\n"
+ unless length $clines == -s $tmpc_file;
+close CTMPFILE;
+
+my ($actlines, $tablines) = extract($clines);
+
+chmod 0644, $act_file;
+open ACTFILE, ">$act_file" or die "can't open $act_file: $!\n";
+print ACTFILE $actlines;
+close ACTFILE;
+chmod 0444, $act_file;
+
+chmod 0644, $tab_file;
+open TABFILE, ">$tab_file" or die "can't open $tab_file: $!\n";
+print TABFILE $tablines;
+close TABFILE;
+chmod 0444, $tab_file;
+
+unlink $tmpc_file;
+
+# Wrap PERL_CORE round the symbol definitions. Also, the
+# C<#line 123 "perlytmp.h"> gets picked up by make depend, so change it.
+
+open TMPH_FILE, $tmph_file or die "Can't open $tmph_file: $!\n";
+chmod 0644, $h_file;
+open H_FILE, ">$h_file" or die "Can't open $h_file: $!\n";
+my $endcore_done = 0;
+while (<TMPH_FILE>) {
+ print H_FILE "#ifdef PERL_CORE\n" if $. == 1;
+ if (!$endcore_done and /YYSTYPE_IS_DECLARED/) {
+ print H_FILE "#endif /* PERL_CORE */\n";
+ $endcore_done = 1;
+ }
+ s/"perlytmp.h"/"perly.h"/;
+ print H_FILE $_;
+}
+close TMPH_FILE;
+close H_FILE;
+chmod 0444, $h_file;
+unlink $tmph_file;
+
+print "rebuilt: $h_file $tab_file $act_file\n";
+
+exit 0;
+
+
+sub extract {
+ my $clines = shift;
+ my $tablines;
+ my $actlines;
+
+ $clines =~ m@
+ (?:
+ ^/* YYFINAL[^\n]+\n #optional comment
+ )?
+ \# \s* define \s* YYFINAL # first #define
+ .*? # other defines + most tables
+ yystos\[\]\s*= # start of last table
+ .*?
+ }\s*; # end of last table
+ @xms
+ or die "Can't extract tables from $tmpc_file\n";
+ $tablines = $&;
+
+
+ $clines =~ m@
+ switch \s* \( \s* \w+ \s* \) \s* { \s*
+ (
+ case \s* \d+ \s* : \s*
+ \#line [^\n]+"perly\.y"
+ .*?
+ )
+ }
+ \s*
+ ( \s* /\* .*? \*/ \s* )* # optional C-comments
+ \s*
+ (
+ \#line[^\n]+\.c"
+ |
+ \#line[^\n]+\.simple"
+ )
+ @xms
+ or die "Can't extract actions from $tmpc_file\n";
+ $actlines = $1;
+
+ return $actlines. "\n", $tablines. "\n";
+}
+
+
+
+
+
+sub my_system {
+ system(@_);
+ if ($? == -1) {
+ die "failed to execute comamnd '@_': $!\n";
+ }
+ elsif ($? & 127) {
+ die sprintf "command '@_' died with signal %d\n",
+ ($? & 127);
+ }
+ elsif ($? >> 8) {
+ die sprintf "command '@_' exited with value %d\n", $? >> 8;
+ }
+}
diff --git a/sv.c b/sv.c
index 1b8760a5b5..98f19c57e7 100644
--- a/sv.c
+++ b/sv.c
@@ -11468,14 +11468,6 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
PL_last_swash_tmps = (U8*)NULL;
PL_last_swash_slen = 0;
- /* perly.c globals */
- PL_yydebug = proto_perl->Iyydebug;
- PL_yynerrs = proto_perl->Iyynerrs;
- PL_yyerrflag = proto_perl->Iyyerrflag;
- PL_yychar = proto_perl->Iyychar;
- PL_yyval = proto_perl->Iyyval;
- PL_yylval = proto_perl->Iyylval;
-
PL_glob_index = proto_perl->Iglob_index;
PL_srand_called = proto_perl->Isrand_called;
PL_hash_seed = proto_perl->Ihash_seed;
diff --git a/toke.c b/toke.c
index 1ca076eef7..627468cb7f 100644
--- a/toke.c
+++ b/toke.c
@@ -2189,6 +2189,11 @@ Perl_yylex_r(pTHX_ YYSTYPE *lvalp, int *lcharp)
Perl_croak(aTHX_ "panic: YYMAXLEVEL");
r = Perl_yylex(aTHX);
+# ifdef EBCDIC
+ if (r >= 0 && r < 255) {
+ r = NATIVE_TO_ASCII(r);
+ }
+# endif
if (yyactlevel > 0)
yyactlevel--;
diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template
index 047e30a31c..63f9476ab2 100644
--- a/vms/descrip_mms.template
+++ b/vms/descrip_mms.template
@@ -1224,12 +1224,6 @@ regen_headers :
$(INSTPERL) regcomp.pl
$(INSTPERL) warnings.pl
-# VMS uses modified perly.[ch] with tags for globaldefs if using DEC compiler
-perly.c : [.vms]perly_c.vms
- Copy/NoConfirm/Log $(MMS$SOURCE) $(MMS$TARGET)
-perly.h : [.vms]perly_h.vms
- Copy/NoConfirm/Log $(MMS$SOURCE) $(MMS$TARGET)
-
.ifdef LINK_ONLY
.else
perly$(O) : perly.c, perly.h, $(h)
diff --git a/vms/perly_c.vms b/vms/perly_c.vms
deleted file mode 100644
index 70a8583578..0000000000
--- a/vms/perly_c.vms
+++ /dev/null
@@ -1,2658 +0,0 @@
-/* Postprocessed by vms_yfix.pl 1.11 to add VMS declarations of globals */
-#ifndef lint
-/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
-#endif
-#define YYBYACC 1
-#line 16 "perly.y"
-#include "EXTERN.h"
-#define PERL_IN_PERLY_C
-#include "perl.h"
-#ifdef EBCDIC
-#undef YYDEBUG
-#endif
-#define dep() deprecate_old("\"do\" to call subroutines")
-
-/* stuff included here to make perly_c.diff apply better */
-
-#define yydebug PL_yydebug
-#define yynerrs PL_yynerrs
-#define yyerrflag PL_yyerrflag
-#define yychar PL_yychar
-#define yyval PL_yyval
-#define yylval PL_yylval
-
-struct ysv {
- short* yyss;
- YYSTYPE* yyvs;
- int oldyydebug;
- int oldyynerrs;
- int oldyyerrflag;
- int oldyychar;
- YYSTYPE oldyyval;
- YYSTYPE oldyylval;
-};
-
-static void yydestruct(pTHX_ void *ptr);
-
-#line 51 "perly.y"
-#if 0 /* get this from perly.h instead */
-#line 54 "perly.y"
-typedef union {
- I32 ival;
- char *pval;
- OP *opval;
- GV *gvval;
-} YYSTYPE;
-#line 62 "perly.y"
-#endif /* 0 */
-
-#ifdef USE_PURE_BISON
-#define YYLEX_PARAM (&yychar)
-#define yylex yylex_r
-#endif
-
-#line 54 "perly.c"
-#define YYERRCODE 256
-static short yylhs[] = { -1,
- 0, 9, 7, 6, 10, 8, 11, 11, 11, 12,
- 12, 12, 12, 25, 25, 25, 25, 25, 25, 25,
- 15, 15, 15, 14, 14, 43, 43, 13, 13, 13,
- 13, 13, 13, 13, 27, 27, 28, 28, 29, 30,
- 31, 32, 33, 54, 54, 1, 1, 1, 1, 1,
- 2, 39, 39, 47, 55, 3, 4, 5, 40, 41,
- 41, 45, 45, 45, 46, 46, 42, 42, 56, 58,
- 57, 16, 16, 16, 16, 26, 26, 26, 37, 37,
- 37, 37, 37, 37, 37, 37, 59, 37, 38, 38,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 50, 50, 50, 50, 50, 50, 50, 50, 50,
- 50, 50, 50, 50, 50, 51, 51, 51, 51, 51,
- 51, 51, 51, 52, 52, 52, 52, 52, 53, 53,
- 53, 53, 53, 53, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 48, 48, 49, 49, 49,
- 49, 49, 34, 34, 35, 35, 35, 44, 24, 19,
- 20, 21, 22, 23, 36, 36, 36, 36,
-};
-static short yylen[] = { 2,
- 2, 4, 0, 0, 4, 0, 0, 2, 2, 2,
- 1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
- 0, 2, 6, 7, 7, 0, 2, 8, 8, 10,
- 9, 8, 11, 3, 0, 1, 0, 1, 1, 1,
- 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
- 4, 1, 0, 6, 6, 0, 0, 0, 1, 0,
- 1, 0, 2, 1, 2, 1, 1, 1, 3, 0,
- 7, 3, 3, 3, 1, 2, 3, 1, 3, 5,
- 6, 3, 3, 5, 2, 4, 0, 5, 1, 1,
- 5, 4, 5, 4, 5, 6, 5, 4, 5, 4,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 2, 2, 2, 2, 2,
- 2, 2, 2, 3, 2, 4, 3, 5, 2, 2,
- 4, 5, 4, 5, 1, 1, 1, 1, 5, 2,
- 1, 2, 3, 2, 1, 1, 1, 1, 1, 1,
- 6, 5, 4, 5, 1, 1, 3, 4, 3, 1,
- 2, 2, 1, 2, 2, 2, 1, 3, 1, 3,
- 4, 4, 6, 1, 1, 3, 2, 3, 2, 1,
- 1, 1, 0, 1, 0, 1, 2, 1, 2, 2,
- 2, 2, 2, 2, 1, 1, 1, 1,
-};
-static short yydefred[] = { 4,
- 0, 7, 0, 45, 58, 56, 0, 56, 56, 8,
- 46, 9, 11, 48, 0, 47, 49, 50, 0, 0,
- 0, 70, 0, 14, 3, 174, 0, 0, 155, 0,
- 169, 0, 57, 57, 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,
- 12, 0, 0, 0, 0, 0, 0, 0, 10, 0,
- 0, 0, 0, 0, 147, 149, 0, 0, 0, 0,
- 175, 141, 135, 136, 137, 138, 52, 0, 59, 0,
- 69, 0, 0, 7, 195, 198, 197, 196, 0, 0,
- 0, 0, 0, 0, 3, 3, 3, 3, 3, 3,
- 0, 0, 0, 0, 0, 164, 0, 0, 0, 0,
- 85, 0, 193, 0, 130, 0, 0, 0, 0, 0,
- 0, 0, 180, 182, 181, 0, 189, 0, 0, 0,
- 0, 0, 0, 0, 0, 125, 0, 0, 0, 190,
- 191, 192, 194, 0, 34, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 120, 121,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13, 0, 51, 61, 0, 0, 0, 0, 83, 0,
- 0, 87, 0, 0, 0, 0, 0, 0, 0, 3,
- 168, 170, 0, 0, 0, 0, 0, 0, 0, 127,
- 0, 159, 179, 0, 0, 176, 0, 0, 124, 27,
- 0, 0, 19, 0, 0, 0, 0, 0, 72, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 89, 0, 0, 90, 0,
- 0, 101, 0, 0, 0, 0, 0, 0, 0, 157,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 172,
- 0, 0, 0, 42, 0, 43, 0, 0, 0, 0,
- 188, 0, 0, 36, 41, 0, 0, 0, 171, 187,
- 86, 0, 131, 0, 133, 0, 126, 178, 65, 0,
- 0, 0, 0, 98, 0, 0, 0, 0, 100, 94,
- 0, 92, 0, 153, 0, 158, 63, 68, 67, 55,
- 0, 54, 84, 0, 88, 128, 0, 0, 0, 0,
- 0, 0, 0, 0, 80, 132, 134, 152, 0, 0,
- 0, 99, 93, 0, 97, 95, 154, 91, 71, 173,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 151,
- 96, 81, 7, 28, 29, 0, 0, 24, 25, 0,
- 32, 0, 0, 0, 22, 0, 0, 0, 31, 5,
- 0, 30, 0, 0, 33, 0, 23,
-};
-static short yydgoto[] = { 1,
- 10, 11, 20, 103, 19, 2, 94, 373, 97, 362,
- 3, 12, 13, 69, 378, 288, 71, 72, 73, 74,
- 75, 76, 77, 78, 294, 80, 295, 284, 286, 289,
- 297, 285, 287, 121, 215, 99, 81, 260, 88, 90,
- 195, 330, 155, 292, 274, 226, 14, 82, 136, 83,
- 84, 85, 86, 15, 16, 17, 18, 92, 281,
-};
-static short yysindex[] = { 0,
- 0, 0, -236, 0, 0, 0, -231, 0, 0, 0,
- 0, 0, 0, 0, 819, 0, 0, 0, -211, -209,
- 3, 0, -209, 0, 0, 0, -32, -32, 0, 23,
- 0, 2213, 0, 0, 28, 30, 32, 33, -18, 2213,
- 42, 52, 64, 1004, 940, -32, 1149, 1268, -168, 2213,
- 174, -32, 2213, 2213, 2213, 2213, 2213, 2213, 1328, 1413,
- 0, 2213, 2213, -32, -32, -32, -32, -173, 0, 607,
- 404, -27, -71, -67, 0, 0, -12, 68, 66, 94,
- 0, 0, 0, 0, 0, 0, 0, 27, 0, -108,
- 0, -100, -108, 0, 0, 0, 0, 0, 2213, 122,
- 2213, 743, 27, -108, 0, 0, 0, 0, 0, 0,
- 125, 404, 135, 1454, 940, 0, 743, 0, -71, 94,
- 0, 2213, 0, 140, 0, 743, -25, 38, -8, 2213,
- 743, 1562, 0, 0, 0, -114, 0, 94, 245, 245,
- 245, -123, -123, 106, -34, 0, -53, 245, 245, 0,
- 0, 0, 0, 27, 0, 2213, 2213, 2213, 2213, 2213,
- 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
- 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 0, 0,
- -26, 2213, 1723, 2213, 2213, 2213, 2213, 2213, 2213, 1796,
- 0, 2213, 0, 0, -90, -48, -90, 285, 0, 2213,
- -35, 0, -90, 2213, 2213, 2213, 2213, 182, 1859, 0,
- 0, 0, -2, -42, 180, 2213, 94, 1932, 2004, 0,
- 102, 0, 0, 13, -21, 0, 2213, 142, 0, 0,
- 184, 184, 0, 184, 184, 184, -51, -51, 0, 296,
- 743, 386, 683, -158, 404, 643, 1034, 1034, 1067, 1345,
- 960, -112, 245, 245, 2213, 0, 2140, 2213, 0, 216,
- 120, 0, 40, 127, 123, 214, 132, 217, 136, 0,
- 77, 404, -3, -47, 2213, -47, 0, 220, 2213, 0,
- 2213, 27, 184, 0, 224, 0, 240, 184, 244, 246,
- 0, 261, 607, 0, 0, 267, 227, 2213, 0, 0,
- 0, 88, 0, 95, 0, 98, 0, 0, 0, 236,
- 2213, 2213, 139, 0, 117, 239, 2213, 194, 0, 0,
- 206, 0, 213, 0, 218, 0, 0, 0, 0, 0,
- 293, 0, 0, 585, 0, 0, 221, 221, 221, 221,
- 2213, 221, 2213, 325, 0, 0, 0, 0, 243, 703,
- 255, 0, 0, 327, 0, 0, 0, 0, 0, 0,
- 0, -173, -173, -240, -240, 351, -173, 332, 221, 0,
- 0, 0, 0, 0, 0, 221, 354, 0, 0, 221,
- 0, 1859, -173, 350, 0, 2213, -173, 360, 0, 0,
- 361, 0, 221, 221, 0, -240, 0,
-};
-static short yyrindex[] = { 0,
- 0, 0, 371, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 289, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
- 2282, 0, 0, 2401, 2566, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 90, 0, -16,
- 1607, 2620, 2673, 2721, 0, 0, 2769, 2856, 0, -38,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -54,
- 0, 0, -54, 0, 0, 0, 0, 0, 2566, 0,
- 0, 4274, 0, -115, 0, 0, 0, 0, 0, 0,
- 0, 1886, 0, 0, 374, 0, 4339, 467, 532, 3224,
- 0, 0, 0, 3005, 0, 4394, 2673, 0, 0, 2566,
- 4404, 0, 0, 0, 0, 3055, 0, 3459, 3695, 3746,
- 3801, 3582, 3630, 3127, 0, 0, 0, 3866, 3914, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3175, 0, 0, -43, 0, -43, 880, 0, 374,
- 0, 0, 303, 390, 0, 0, 0, 0, 389, 0,
- 0, 0, 0, 422, 0, 0, 3510, 0, 0, 0,
- 0, 0, 0, 0, 3291, 0, 0, 3346, 0, 0,
- 8, 12, 0, 61, 62, 65, 1479, 1642, 0, 2274,
- 4445, 4493, 4120, 4168, 2421, 0, 4697, 4745, 4630, 4591,
- 4543, 4219, 4000, 4055, 0, 0, 0, 0, 0, 3411,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2474, -30, 0, 405, 0, 0, 0, 0, 0,
- 2566, 0, 78, 0, 0, 0, 0, 432, 0, 0,
- 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 374, 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, 415, 0, 0, 0, 0, 0, 0, 1201,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 90, 90, 186, 186, 0, 90, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 435, 90, 880, 0, 0, 90, 0, 0, 0,
- 0, 0, 0, 0, 0, 186, 0,
-};
-static short yygindex[] = { 0,
- 0, 0, 50, 453, 0, 0, -22, 0, 63, 153,
- -93, 0, 0, 0, -346, -15, 2480, 0, 1744, 437,
- 439, 0, 0, 0, 481, 755, 0, 0, 341, -186,
- 124, 170, 313, -88, -183, 49, 0, 0, 0, 498,
- -66, 247, 225, 0, -156, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,
-};
-#define YYTABLESIZE 5051
-static short yytable[] = { 70,
- 198, 300, 75, 64, 60, 280, 228, 60, 279, 64,
- 199, 328, 183, 257, 219, 62, 278, 64, 379, 186,
- 75, 110, 296, 188, 15, 21, 197, 170, 64, 4,
- 5, 6, 129, 7, 8, 376, 377, 203, 299, 229,
- 276, 222, 15, 145, 147, 87, 282, 89, 18, 397,
- 221, 185, 39, 308, 75, 187, 160, 22, 23, 160,
- 9, 91, 101, 184, 258, 186, 18, 105, 60, 106,
- 39, 107, 108, 160, 160, 25, 100, 68, 160, 62,
- 319, 113, 204, 205, 206, 207, 208, 209, 130, 26,
- 25, 114, 64, 122, 123, 182, 255, 185, 213, 214,
- 137, 16, 17, 115, 154, 20, 116, 190, 160, 125,
- 189, 344, 150, 151, 152, 153, 224, 326, 38, 16,
- 17, 40, 26, 20, 191, 26, 26, 26, 345, 26,
- 167, 26, 26, 354, 26, 346, 38, 192, 347, 15,
- 231, 232, 234, 235, 236, 237, 238, 239, 26, 25,
- 193, 194, 177, 26, 366, 178, 196, 352, 179, 180,
- 181, 200, 220, 216, 210, 202, 261, 263, 264, 265,
- 266, 267, 268, 269, 271, 211, 167, 168, 318, 218,
- 26, 321, 60, 225, 214, 21, 331, 298, 283, 232,
- 323, 232, 335, 293, 325, 181, 227, 351, 177, 391,
- 302, 178, 304, 306, 179, 180, 181, 273, 275, 64,
- 66, 310, 26, 132, 26, 26, 230, 64, 21, 320,
- 301, 21, 21, 21, 95, 21, 307, 21, 21, 96,
- 21, 256, 311, 75, 75, 75, 75, 65, 309, 313,
- 75, 315, 316, 60, 21, 164, 161, 162, 163, 21,
- 163, 165, 166, 167, 168, 317, 327, 161, 162, 163,
- 333, 75, 75, 75, 337, 161, 162, 163, 169, 171,
- 172, 173, 174, 175, 176, 177, 21, 109, 178, 384,
- 338, 179, 180, 181, 339, 343, 340, 160, 160, 160,
- 160, 161, 162, 163, 160, 349, 160, 161, 162, 163,
- 341, 214, 160, 160, 160, 160, 322, 342, 21, 324,
- 21, 21, 161, 162, 163, 160, 160, 160, 355, 160,
- 160, 160, 160, 160, 160, 160, 160, 283, 348, 160,
- 356, 353, 160, 160, 160, 370, 329, 357, 329, 161,
- 162, 163, 358, 361, 336, 26, 26, 26, 26, 26,
- 26, 359, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 26, 369, 70, 372, 26, 26,
- 1, 26, 26, 26, 26, 26, 161, 162, 163, 371,
- 26, 26, 26, 26, 26, 26, 26, 161, 162, 163,
- 382, 380, 26, 386, 161, 162, 163, 161, 162, 163,
- 393, 394, 26, 44, 26, 26, 44, 44, 44, 277,
- 44, 53, 44, 44, 185, 44, 161, 162, 163, 161,
- 162, 163, 161, 162, 163, 62, 161, 162, 163, 44,
- 37, 161, 162, 163, 44, 161, 162, 163, 161, 162,
- 163, 21, 21, 21, 21, 21, 21, 35, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 44, 186, 183, 21, 21, 170, 21, 21, 21,
- 21, 21, 40, 37, 390, 35, 21, 21, 21, 21,
- 21, 21, 21, 161, 162, 163, 104, 134, 21, 135,
- 363, 364, 365, 44, 367, 79, 44, 233, 21, 195,
- 21, 21, 195, 195, 195, 388, 195, 174, 195, 195,
- 174, 195, 368, 161, 162, 163, 161, 162, 163, 290,
- 93, 383, 332, 0, 174, 174, 0, 0, 385, 174,
- 195, 0, 387, 0, 0, 161, 162, 163, 161, 162,
- 163, 0, 161, 162, 163, 395, 396, 0, 0, 0,
- 4, 5, 6, 0, 7, 8, 0, 195, 178, 174,
- 0, 179, 180, 181, 196, 0, 0, 196, 196, 196,
- 0, 196, 145, 196, 196, 145, 196, 0, 0, 0,
- 0, 9, 165, 166, 167, 168, 374, 375, 0, 145,
- 145, 381, 195, 0, 145, 196, 0, 0, 0, 0,
- 171, 172, 173, 174, 175, 176, 177, 389, 0, 178,
- 0, 392, 179, 180, 181, 4, 5, 6, 0, 7,
- 8, 0, 0, 0, 145, 360, 44, 44, 44, 44,
- 44, 44, 0, 44, 44, 44, 0, 0, 0, 44,
- 0, 0, 44, 44, 44, 44, 9, 170, 0, 44,
- 44, 0, 44, 44, 44, 44, 44, 196, 0, 0,
- 0, 44, 44, 44, 44, 44, 44, 0, 0, 0,
- 0, 0, 165, 44, 167, 168, 0, 0, 0, 0,
- 0, 0, 0, 44, 164, 44, 44, 0, 0, 0,
- 165, 166, 167, 168, 0, 176, 177, 0, 0, 178,
- 312, 0, 179, 180, 181, 170, 0, 169, 171, 172,
- 173, 174, 175, 176, 177, 0, 0, 178, 0, 0,
- 179, 180, 181, 195, 195, 195, 195, 195, 0, 195,
- 195, 195, 0, 0, 0, 195, 0, 0, 174, 174,
- 174, 174, 0, 0, 0, 174, 195, 174, 195, 195,
- 195, 195, 195, 174, 174, 174, 174, 195, 195, 195,
- 195, 195, 195, 0, 0, 170, 174, 174, 174, 195,
- 174, 174, 174, 174, 174, 174, 174, 174, 0, 195,
- 174, 195, 195, 174, 174, 174, 0, 0, 196, 196,
- 196, 196, 196, 0, 196, 196, 196, 0, 0, 120,
- 196, 0, 0, 145, 145, 145, 145, 138, 0, 0,
- 145, 196, 145, 196, 196, 196, 196, 196, 145, 145,
- 145, 145, 196, 196, 196, 196, 196, 196, 0, 0,
- 0, 145, 145, 145, 196, 145, 145, 145, 145, 145,
- 145, 145, 145, 0, 196, 145, 196, 196, 145, 145,
- 145, 54, 0, 120, 64, 66, 52, 0, 59, 0,
- 67, 63, 0, 62, 0, 164, 0, 0, 0, 0,
- 0, 165, 166, 167, 168, 0, 217, 61, 156, 157,
- 158, 159, 65, 0, 120, 160, 0, 0, 169, 171,
- 172, 173, 174, 175, 176, 177, 0, 0, 178, 0,
- 0, 179, 180, 181, 0, 0, 161, 162, 163, 60,
- 0, 0, 44, 0, 0, 44, 44, 44, 0, 44,
- 0, 44, 44, 164, 44, 0, 0, 0, 0, 165,
- 166, 167, 168, 0, 0, 0, 0, 0, 44, 0,
- 0, 25, 0, 44, 55, 0, 169, 171, 172, 173,
- 174, 175, 176, 177, 0, 0, 178, 0, 0, 179,
- 180, 181, 0, 0, 0, 0, 0, 0, 0, 0,
- 44, 0, 54, 0, 0, 64, 66, 52, 0, 59,
- 0, 67, 63, 164, 62, 0, 0, 0, 0, 165,
- 166, 167, 168, 177, 0, 0, 178, 0, 0, 179,
- 180, 181, 44, 65, 0, 44, 0, 171, 172, 173,
- 174, 175, 176, 177, 0, 0, 178, 0, 0, 179,
- 180, 181, 0, 0, 0, 0, 0, 0, 0, 120,
- 60, 167, 168, 0, 0, 120, 54, 0, 0, 64,
- 66, 52, 0, 59, 0, 67, 63, 0, 62, 0,
- 0, 0, 176, 177, 0, 0, 178, 0, 0, 179,
- 180, 181, 25, 0, 0, 55, 0, 65, 0, 0,
- 0, 0, 0, 0, 24, 26, 27, 28, 29, 30,
- 0, 31, 32, 33, 0, 0, 0, 34, 0, 0,
- 35, 36, 37, 38, 60, 0, 0, 39, 40, 0,
- 41, 42, 43, 44, 45, 0, 0, 0, 0, 46,
- 47, 48, 49, 50, 51, 0, 0, 0, 0, 0,
- 0, 53, 0, 0, 0, 0, 25, 0, 0, 55,
- 0, 56, 0, 57, 58, 44, 44, 44, 44, 44,
- 44, 0, 44, 44, 44, 0, 0, 0, 44, 0,
- 0, 44, 44, 44, 44, 0, 0, 0, 44, 44,
- 0, 44, 44, 44, 44, 44, 0, 0, 0, 0,
- 44, 44, 44, 44, 44, 44, 0, 0, 0, 0,
- 0, 54, 44, 0, 64, 66, 52, 0, 59, 0,
- 67, 63, 44, 62, 44, 44, 118, 27, 28, 29,
- 30, 96, 31, 32, 33, 0, 0, 0, 34, 0,
- 0, 0, 65, 0, 0, 0, 0, 0, 0, 40,
- 0, 41, 42, 43, 44, 45, 0, 0, 0, 0,
- 46, 47, 48, 49, 50, 51, 0, 0, 0, 60,
- 0, 139, 53, 0, 139, 0, 165, 166, 167, 168,
- 0, 0, 56, 0, 57, 58, 0, 0, 139, 139,
- 26, 27, 28, 29, 30, 0, 31, 32, 33, 176,
- 177, 25, 34, 178, 55, 0, 179, 180, 181, 0,
- 0, 0, 0, 40, 0, 41, 42, 43, 44, 45,
- 0, 0, 0, 139, 46, 47, 48, 49, 50, 51,
- 54, 0, 0, 64, 66, 52, 53, 59, 0, 67,
- 63, 0, 62, 0, 0, 0, 56, 0, 57, 58,
- 165, 166, 167, 168, 0, 0, 128, 0, 0, 0,
- 0, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 173, 174, 175, 176, 177, 0, 0, 178, 0, 0,
- 179, 180, 181, 165, 166, 167, 168, 0, 60, 0,
- 54, 0, 0, 64, 66, 52, 0, 59, 144, 67,
- 63, 0, 62, 0, 174, 175, 176, 177, 0, 0,
- 178, 0, 0, 179, 180, 181, 0, 0, 0, 0,
- 0, 65, 0, 55, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 124, 27, 28, 29, 30,
- 0, 31, 32, 33, 0, 0, 0, 34, 60, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 0,
- 41, 42, 43, 44, 45, 0, 0, 0, 0, 46,
- 47, 48, 49, 50, 51, 54, 0, 0, 64, 66,
- 52, 53, 59, 55, 67, 63, 0, 62, 0, 0,
- 0, 56, 0, 57, 58, 0, 0, 0, 0, 0,
- 0, 0, 139, 139, 139, 139, 65, 0, 0, 139,
- 0, 0, 0, 0, 0, 0, 54, 0, 0, 64,
- 66, 52, 0, 59, 212, 67, 63, 0, 62, 0,
- 139, 139, 139, 60, 139, 146, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 65, 0, 73,
- 0, 0, 73, 0, 26, 27, 28, 29, 30, 0,
- 31, 32, 33, 0, 0, 0, 34, 73, 55, 0,
- 0, 0, 0, 0, 60, 0, 0, 40, 0, 41,
- 42, 43, 44, 45, 0, 0, 0, 0, 46, 47,
- 48, 49, 50, 51, 0, 0, 0, 0, 0, 0,
- 53, 73, 0, 0, 0, 0, 0, 0, 0, 55,
- 56, 0, 57, 58, 26, 27, 28, 29, 30, 0,
- 31, 32, 33, 0, 54, 0, 34, 64, 66, 52,
- 0, 59, 223, 67, 63, 0, 62, 40, 0, 41,
- 42, 43, 44, 45, 0, 0, 0, 0, 46, 47,
- 48, 49, 50, 51, 0, 65, 0, 0, 0, 0,
- 53, 165, 166, 167, 168, 0, 0, 0, 0, 0,
- 56, 0, 57, 58, 0, 0, 0, 78, 0, 0,
- 78, 0, 60, 175, 176, 177, 0, 0, 178, 0,
- 0, 179, 180, 181, 78, 78, 0, 0, 0, 26,
- 27, 28, 29, 30, 0, 31, 32, 33, 0, 0,
- 0, 34, 74, 0, 0, 74, 0, 55, 0, 0,
- 0, 0, 40, 0, 41, 42, 43, 44, 45, 78,
- 74, 0, 0, 46, 47, 48, 49, 50, 51, 0,
- 26, 27, 28, 29, 30, 53, 31, 32, 33, 0,
- 0, 0, 34, 0, 0, 56, 0, 57, 58, 0,
- 0, 0, 0, 40, 74, 41, 42, 43, 44, 45,
- 0, 0, 0, 0, 46, 47, 48, 49, 50, 51,
- 73, 73, 73, 73, 0, 54, 53, 73, 64, 66,
- 52, 0, 59, 262, 67, 63, 56, 62, 57, 58,
- 98, 98, 0, 0, 0, 0, 0, 0, 73, 73,
- 0, 0, 111, 0, 0, 0, 65, 0, 119, 98,
- 127, 0, 0, 0, 133, 98, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 98, 98, 98,
- 98, 0, 0, 60, 0, 0, 0, 0, 26, 27,
- 28, 29, 30, 0, 31, 32, 33, 0, 54, 0,
- 34, 64, 66, 52, 0, 59, 270, 67, 63, 0,
- 62, 40, 0, 41, 42, 43, 44, 45, 55, 0,
- 0, 0, 46, 47, 48, 49, 50, 51, 119, 65,
- 0, 0, 0, 0, 53, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56, 0, 57, 58, 78, 78,
- 78, 78, 0, 0, 0, 78, 60, 0, 0, 0,
- 0, 54, 0, 0, 64, 66, 52, 0, 59, 0,
- 67, 63, 0, 62, 0, 0, 78, 78, 78, 0,
- 0, 0, 0, 74, 74, 74, 74, 0, 0, 0,
- 74, 55, 65, 0, 259, 0, 161, 0, 0, 161,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 74, 74, 161, 161, 0, 0, 0, 0, 60,
- 0, 291, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 54, 0, 0, 64, 66, 52,
- 0, 59, 303, 67, 63, 0, 62, 0, 161, 26,
- 27, 28, 29, 30, 55, 31, 32, 33, 0, 0,
- 0, 34, 0, 0, 0, 65, 0, 0, 0, 0,
- 0, 0, 40, 0, 41, 42, 43, 44, 45, 0,
- 0, 0, 0, 46, 47, 48, 49, 50, 51, 0,
- 0, 0, 60, 0, 0, 53, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 56, 54, 57, 58, 64,
- 66, 52, 0, 59, 305, 67, 63, 0, 62, 0,
- 0, 0, 26, 27, 28, 29, 30, 55, 31, 32,
- 33, 0, 0, 0, 34, 0, 0, 65, 0, 0,
- 0, 0, 0, 0, 0, 40, 0, 41, 42, 43,
- 44, 45, 0, 0, 0, 0, 46, 47, 48, 49,
- 50, 51, 0, 0, 60, 0, 0, 0, 53, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56, 0,
- 57, 58, 0, 0, 24, 26, 27, 28, 29, 30,
- 0, 31, 32, 33, 0, 0, 0, 34, 0, 55,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 0,
- 41, 42, 43, 44, 45, 0, 0, 0, 0, 46,
- 47, 48, 49, 50, 51, 0, 0, 161, 161, 161,
- 161, 53, 0, 0, 161, 0, 0, 0, 0, 0,
- 0, 56, 54, 57, 58, 64, 66, 52, 0, 59,
- 314, 67, 63, 0, 62, 161, 161, 161, 26, 27,
- 28, 29, 30, 0, 31, 32, 33, 0, 0, 0,
- 34, 0, 0, 65, 0, 0, 0, 0, 0, 0,
- 0, 40, 0, 41, 42, 43, 44, 45, 0, 0,
- 0, 0, 46, 47, 48, 49, 50, 51, 0, 0,
- 60, 0, 0, 0, 53, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56, 54, 57, 58, 64, 66,
- 52, 0, 59, 0, 67, 63, 0, 62, 0, 0,
- 26, 27, 28, 29, 30, 55, 31, 32, 33, 0,
- 0, 0, 34, 0, 0, 0, 65, 0, 0, 0,
- 0, 0, 0, 40, 0, 41, 42, 43, 44, 45,
- 0, 0, 0, 0, 46, 47, 48, 49, 50, 51,
- 0, 0, 0, 60, 0, 0, 53, 0, 0, 0,
- 0, 0, 0, 0, 111, 0, 56, 111, 57, 58,
- 0, 0, 167, 0, 0, 167, 0, 0, 0, 0,
- 0, 111, 111, 0, 0, 0, 111, 0, 55, 167,
- 167, 0, 0, 0, 167, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 111, 0, 0, 0,
- 0, 0, 0, 0, 167, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 26, 27, 28, 29,
- 30, 0, 31, 32, 33, 0, 0, 0, 34, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
- 0, 41, 42, 43, 44, 45, 0, 0, 0, 0,
- 46, 47, 48, 49, 50, 51, 0, 0, 0, 0,
- 0, 163, 53, 0, 163, 0, 0, 0, 0, 0,
- 0, 0, 56, 0, 57, 58, 0, 0, 163, 163,
- 0, 102, 0, 163, 102, 0, 0, 0, 0, 26,
- 27, 28, 29, 30, 0, 31, 32, 33, 102, 102,
- 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 40, 163, 41, 42, 43, 44, 45, 0,
- 0, 0, 0, 46, 47, 48, 49, 50, 51, 0,
- 0, 102, 0, 102, 77, 53, 0, 77, 0, 112,
- 0, 0, 0, 117, 0, 56, 126, 57, 58, 131,
- 0, 77, 77, 139, 140, 141, 142, 143, 0, 0,
- 0, 148, 149, 0, 0, 111, 111, 111, 111, 0,
- 0, 0, 111, 167, 167, 167, 167, 0, 0, 0,
- 167, 0, 167, 0, 0, 0, 77, 0, 167, 167,
- 167, 167, 0, 111, 111, 111, 0, 111, 0, 0,
- 201, 167, 167, 167, 0, 167, 167, 167, 167, 167,
- 167, 167, 167, 0, 0, 167, 0, 0, 167, 167,
- 167, 0, 0, 0, 0, 0, 183, 0, 0, 183,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 183, 183, 0, 0, 0, 183, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 253, 254, 183, 0,
- 150, 0, 0, 150, 0, 0, 0, 0, 0, 0,
- 0, 272, 163, 163, 163, 163, 0, 150, 150, 163,
- 0, 163, 150, 0, 0, 0, 0, 163, 163, 163,
- 163, 0, 102, 102, 102, 102, 0, 0, 0, 102,
- 163, 163, 163, 0, 163, 163, 163, 163, 163, 163,
- 163, 163, 150, 145, 163, 0, 145, 163, 163, 163,
- 102, 102, 102, 0, 0, 0, 0, 0, 0, 0,
- 145, 145, 0, 0, 0, 145, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 77, 77, 77, 77, 0,
- 0, 0, 77, 0, 0, 0, 0, 0, 334, 0,
- 0, 148, 0, 0, 148, 145, 0, 0, 0, 0,
- 0, 0, 0, 77, 77, 77, 0, 0, 148, 148,
- 0, 0, 0, 148, 0, 0, 0, 0, 0, 0,
- 0, 350, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
- 0, 0, 146, 148, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 146, 146, 0, 0,
- 0, 146, 0, 0, 0, 0, 0, 183, 183, 183,
- 183, 0, 0, 0, 183, 0, 183, 0, 0, 0,
- 0, 0, 183, 183, 183, 183, 0, 0, 0, 0,
- 0, 146, 0, 0, 0, 183, 183, 183, 0, 183,
- 183, 183, 183, 183, 183, 183, 183, 0, 0, 183,
- 0, 0, 183, 183, 183, 0, 0, 0, 0, 0,
- 0, 150, 150, 150, 150, 0, 156, 0, 150, 156,
- 150, 0, 0, 0, 0, 0, 150, 150, 150, 150,
- 0, 0, 0, 156, 156, 0, 0, 0, 156, 150,
- 150, 150, 0, 150, 150, 150, 150, 150, 150, 150,
- 150, 0, 0, 150, 0, 0, 150, 150, 150, 0,
- 0, 0, 0, 0, 145, 145, 145, 145, 156, 0,
- 0, 145, 0, 145, 0, 0, 0, 0, 0, 145,
- 145, 145, 145, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 145, 145, 145, 0, 145, 145, 145, 145,
- 145, 145, 145, 145, 0, 0, 145, 0, 0, 145,
- 145, 145, 148, 148, 148, 148, 0, 0, 0, 148,
- 0, 148, 0, 0, 0, 0, 0, 148, 148, 148,
- 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 148, 148, 148, 0, 148, 148, 148, 148, 148, 148,
- 148, 148, 0, 0, 148, 0, 0, 148, 148, 148,
- 146, 146, 146, 146, 0, 174, 0, 146, 174, 146,
- 0, 0, 0, 0, 0, 146, 146, 146, 146, 0,
- 0, 0, 174, 174, 0, 0, 0, 174, 146, 146,
- 146, 0, 146, 146, 146, 146, 146, 146, 146, 146,
- 0, 0, 146, 0, 0, 146, 146, 146, 0, 0,
- 0, 0, 0, 0, 0, 177, 0, 174, 177, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 177, 177, 0, 0, 0, 177, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 156, 156, 156,
- 156, 0, 0, 0, 156, 0, 156, 0, 0, 0,
- 0, 0, 156, 156, 156, 156, 0, 177, 0, 0,
- 0, 0, 0, 0, 0, 156, 156, 156, 0, 156,
- 156, 156, 156, 156, 156, 156, 156, 144, 0, 156,
- 144, 0, 156, 156, 156, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 144, 144, 0, 0, 0, 144,
- 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, 76, 0, 0, 76, 144,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 76, 76, 0, 0, 0, 76, 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, 184, 0, 0, 76, 0, 0,
- 0, 0, 0, 0, 0, 0, 174, 174, 174, 174,
- 0, 184, 184, 174, 0, 174, 184, 0, 0, 0,
- 0, 174, 174, 174, 174, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 174, 174, 174, 0, 174, 174,
- 174, 174, 174, 174, 174, 174, 184, 0, 174, 0,
- 0, 174, 174, 174, 0, 0, 177, 177, 177, 177,
- 0, 66, 0, 177, 66, 177, 0, 0, 0, 0,
- 0, 177, 177, 177, 177, 0, 0, 0, 66, 66,
- 0, 0, 0, 66, 177, 177, 177, 0, 177, 177,
- 177, 177, 177, 177, 177, 177, 0, 0, 177, 0,
- 0, 177, 177, 177, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66, 0, 0, 143, 0, 0, 143,
- 0, 0, 0, 0, 0, 0, 0, 0, 144, 144,
- 144, 144, 0, 143, 143, 144, 0, 144, 143, 0,
- 0, 0, 0, 144, 144, 144, 144, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 144, 144, 144, 0,
- 144, 144, 144, 144, 144, 144, 144, 144, 143, 0,
- 144, 0, 0, 144, 144, 144, 76, 76, 76, 76,
- 0, 82, 0, 76, 82, 76, 0, 0, 0, 0,
- 0, 76, 76, 76, 76, 0, 0, 0, 82, 82,
- 0, 0, 0, 82, 76, 76, 76, 0, 76, 76,
- 76, 76, 76, 76, 76, 76, 0, 0, 76, 0,
- 0, 76, 76, 76, 0, 184, 184, 184, 184, 162,
- 0, 0, 184, 82, 184, 0, 0, 0, 0, 0,
- 184, 184, 184, 184, 0, 0, 162, 162, 0, 0,
- 0, 162, 0, 184, 184, 184, 0, 184, 184, 184,
- 184, 184, 184, 184, 184, 0, 0, 184, 0, 0,
- 184, 184, 184, 0, 0, 0, 0, 0, 0, 0,
- 79, 162, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 66, 66, 66, 0, 79, 79, 66,
- 0, 66, 79, 0, 0, 0, 0, 66, 66, 66,
- 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 66, 66, 0, 66, 66, 66, 66, 66, 66,
- 66, 66, 79, 0, 66, 0, 0, 66, 66, 66,
- 0, 0, 0, 0, 0, 0, 0, 143, 143, 143,
- 143, 0, 122, 0, 143, 122, 143, 0, 0, 0,
- 0, 0, 143, 143, 143, 143, 0, 0, 0, 122,
- 122, 0, 0, 0, 122, 143, 143, 143, 0, 143,
- 143, 143, 143, 143, 143, 143, 143, 0, 0, 143,
- 0, 0, 143, 143, 143, 0, 0, 0, 0, 0,
- 123, 0, 0, 123, 122, 0, 0, 0, 0, 0,
- 0, 0, 82, 82, 82, 82, 0, 123, 123, 82,
- 0, 82, 123, 0, 0, 0, 0, 82, 82, 82,
- 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 82, 82, 0, 82, 82, 82, 82, 82, 82,
- 82, 82, 123, 0, 82, 0, 0, 82, 82, 82,
- 162, 162, 162, 162, 0, 118, 0, 162, 118, 162,
- 0, 0, 0, 0, 0, 162, 162, 162, 162, 0,
- 0, 0, 118, 118, 0, 0, 0, 118, 162, 162,
- 162, 0, 162, 162, 162, 162, 162, 162, 162, 162,
- 0, 0, 162, 0, 0, 162, 162, 162, 0, 0,
- 0, 79, 79, 79, 79, 0, 119, 118, 79, 119,
- 79, 0, 0, 0, 0, 0, 79, 79, 79, 79,
- 0, 0, 0, 119, 119, 0, 0, 0, 119, 79,
- 79, 79, 0, 79, 79, 79, 79, 79, 79, 79,
- 79, 0, 0, 79, 0, 0, 79, 79, 79, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 119, 0,
- 0, 140, 0, 0, 140, 0, 0, 0, 0, 0,
- 0, 0, 0, 122, 122, 122, 122, 0, 140, 140,
- 122, 0, 122, 140, 0, 0, 0, 0, 122, 122,
- 122, 122, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 122, 122, 122, 0, 122, 122, 122, 122, 122,
- 122, 122, 122, 140, 0, 122, 0, 0, 0, 0,
- 0, 123, 123, 123, 123, 0, 116, 0, 123, 116,
- 123, 0, 0, 0, 0, 0, 123, 123, 123, 123,
- 0, 0, 0, 116, 116, 0, 0, 0, 116, 123,
- 123, 123, 0, 123, 123, 123, 123, 123, 123, 123,
- 123, 0, 0, 123, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 117, 0, 0, 117, 116, 0,
- 0, 0, 0, 0, 0, 0, 118, 118, 118, 118,
- 0, 117, 117, 118, 0, 118, 117, 0, 0, 0,
- 0, 118, 118, 118, 118, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 118, 118, 118, 0, 118, 118,
- 118, 118, 118, 118, 118, 118, 117, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 119, 119, 119,
- 119, 0, 0, 0, 119, 0, 119, 0, 0, 0,
- 0, 0, 119, 119, 119, 119, 0, 0, 0, 0,
- 115, 0, 0, 115, 0, 119, 119, 119, 0, 119,
- 119, 119, 119, 119, 119, 119, 119, 115, 115, 0,
- 0, 0, 115, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 140, 140, 140, 140, 0, 0, 0, 140,
- 0, 140, 0, 0, 0, 0, 0, 140, 140, 140,
- 140, 0, 115, 0, 0, 103, 0, 0, 103, 0,
- 140, 140, 140, 0, 140, 140, 140, 140, 140, 140,
- 140, 140, 103, 103, 0, 0, 0, 103, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 116, 116, 116,
- 116, 0, 0, 0, 116, 0, 116, 103, 0, 0,
- 0, 0, 116, 116, 116, 116, 0, 0, 0, 0,
- 104, 0, 0, 104, 0, 116, 116, 116, 0, 116,
- 116, 116, 116, 116, 116, 116, 116, 104, 104, 0,
- 0, 0, 104, 0, 0, 117, 117, 117, 117, 0,
- 0, 0, 117, 0, 117, 0, 0, 0, 0, 0,
- 117, 117, 117, 117, 0, 0, 0, 0, 105, 0,
- 0, 105, 104, 117, 117, 117, 0, 117, 117, 117,
- 117, 117, 117, 117, 117, 105, 105, 0, 0, 0,
- 105, 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, 106,
- 105, 0, 106, 0, 0, 0, 0, 0, 0, 0,
- 0, 115, 115, 115, 115, 0, 106, 106, 115, 0,
- 115, 106, 0, 0, 0, 0, 115, 115, 115, 115,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 115,
- 115, 115, 0, 115, 115, 115, 115, 115, 115, 115,
- 115, 106, 0, 0, 166, 0, 0, 166, 0, 0,
- 0, 0, 0, 0, 0, 0, 103, 103, 103, 103,
- 0, 166, 166, 103, 0, 103, 166, 0, 0, 0,
- 0, 103, 103, 103, 103, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 103, 103, 103, 0, 103, 103,
- 103, 103, 103, 103, 103, 103, 166, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
- 0, 0, 165, 0, 0, 0, 0, 0, 0, 0,
- 0, 104, 104, 104, 104, 0, 165, 165, 104, 0,
- 104, 165, 0, 0, 0, 0, 104, 104, 104, 104,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
- 104, 104, 0, 104, 104, 104, 104, 104, 104, 104,
- 0, 165, 0, 0, 129, 0, 0, 129, 0, 105,
- 105, 105, 105, 0, 142, 0, 105, 142, 105, 0,
- 0, 129, 129, 0, 105, 105, 129, 105, 0, 0,
- 0, 142, 142, 0, 0, 0, 142, 105, 105, 105,
- 0, 105, 105, 105, 105, 105, 105, 105, 0, 0,
- 0, 0, 0, 0, 0, 107, 129, 0, 107, 0,
- 106, 106, 106, 106, 0, 0, 142, 106, 0, 106,
- 0, 0, 107, 107, 0, 106, 106, 107, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 106, 106,
- 106, 0, 106, 106, 106, 106, 106, 106, 106, 0,
- 0, 0, 0, 108, 0, 0, 108, 107, 0, 0,
- 0, 0, 0, 0, 0, 166, 166, 166, 166, 0,
- 108, 108, 166, 0, 166, 108, 0, 0, 0, 0,
- 166, 166, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 166, 166, 166, 0, 166, 166, 166,
- 166, 166, 166, 109, 0, 108, 109, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 109, 109, 0, 0, 0, 109, 0, 0, 0, 0,
- 165, 165, 165, 165, 0, 0, 0, 165, 0, 165,
- 0, 0, 0, 0, 0, 165, 165, 0, 0, 0,
- 0, 110, 0, 0, 110, 109, 0, 0, 165, 165,
- 165, 0, 165, 165, 165, 165, 165, 165, 110, 110,
- 0, 0, 0, 110, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 129, 129, 129, 129, 0,
- 112, 0, 129, 112, 129, 142, 142, 142, 142, 0,
- 129, 129, 142, 110, 142, 0, 0, 112, 112, 0,
- 142, 142, 112, 129, 129, 129, 0, 129, 129, 129,
- 129, 129, 129, 142, 142, 142, 0, 142, 142, 142,
- 142, 142, 142, 0, 0, 0, 107, 107, 107, 107,
- 0, 0, 112, 107, 0, 107, 0, 0, 0, 0,
- 0, 0, 107, 0, 0, 0, 0, 113, 0, 0,
- 113, 0, 0, 0, 107, 107, 107, 0, 107, 107,
- 107, 107, 107, 107, 113, 113, 0, 0, 0, 113,
- 0, 0, 0, 0, 108, 108, 108, 108, 0, 0,
- 0, 108, 0, 108, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 114, 0, 0, 114, 113,
- 0, 0, 108, 108, 108, 0, 108, 108, 108, 108,
- 108, 108, 114, 114, 0, 0, 0, 114, 0, 0,
- 0, 0, 0, 0, 109, 109, 109, 109, 0, 0,
- 0, 109, 0, 109, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 114, 0, 0,
- 0, 0, 109, 109, 109, 0, 109, 109, 109, 109,
- 109, 109, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 110, 110, 110, 110, 0, 0, 0, 110,
- 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 110, 110, 110, 0, 110, 110, 110, 110, 110, 0,
- 0, 112, 112, 112, 112, 0, 0, 0, 112, 0,
- 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 112,
- 112, 112, 0, 112, 112, 112, 112, 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, 113, 113,
- 113, 113, 0, 0, 0, 113, 0, 113, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 113, 113, 113, 0,
- 113, 113, 113, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 114, 114, 114, 114,
- 0, 0, 0, 114, 0, 114, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 114, 114, 114, 0, 114, 114,
- 114,
-};
-static short yycheck[] = { 15,
- 94, 44, 41, 36, 59, 41, 41, 123, 44, 36,
- 99, 59, 40, 40, 40, 59, 200, 36, 365, 91,
- 59, 40, 209, 91, 41, 257, 93, 63, 59, 266,
- 267, 268, 48, 270, 271, 276, 277, 104, 41, 93,
- 197, 130, 59, 59, 60, 257, 203, 257, 41, 396,
- 59, 123, 41, 41, 93, 123, 41, 8, 9, 44,
- 297, 59, 40, 91, 91, 91, 59, 40, 123, 40,
- 59, 40, 40, 58, 59, 123, 28, 15, 63, 123,
- 41, 40, 105, 106, 107, 108, 109, 110, 257, 0,
- 123, 40, 123, 45, 46, 123, 123, 123, 114, 115,
- 52, 41, 41, 40, 278, 41, 44, 40, 93, 47,
- 123, 298, 64, 65, 66, 67, 132, 41, 41, 59,
- 59, 41, 33, 59, 59, 36, 37, 38, 41, 40,
- 289, 42, 43, 317, 45, 41, 59, 44, 41, 59,
- 156, 157, 158, 159, 160, 161, 162, 163, 59, 123,
- 88, 260, 311, 64, 341, 314, 257, 41, 317, 318,
- 319, 40, 125, 115, 40, 103, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 41, 289, 290, 59, 40,
- 91, 59, 298, 298, 200, 0, 275, 210, 204, 205,
- 59, 207, 281, 209, 59, 319, 91, 59, 311, 386,
- 216, 314, 218, 219, 317, 318, 319, 298, 257, 36,
- 37, 227, 123, 40, 125, 126, 154, 36, 33, 93,
- 41, 36, 37, 38, 257, 40, 125, 42, 43, 262,
- 45, 258, 91, 272, 273, 274, 275, 64, 260, 255,
- 279, 257, 258, 298, 59, 281, 300, 301, 302, 64,
- 302, 287, 288, 289, 290, 40, 260, 300, 301, 302,
- 41, 300, 301, 302, 41, 300, 301, 302, 304, 305,
- 306, 307, 308, 309, 310, 311, 91, 296, 314, 373,
- 41, 317, 318, 319, 41, 59, 41, 272, 273, 274,
- 275, 300, 301, 302, 279, 311, 281, 300, 301, 302,
- 40, 317, 287, 288, 289, 290, 93, 41, 123, 93,
- 125, 126, 300, 301, 302, 300, 301, 302, 125, 304,
- 305, 306, 307, 308, 309, 310, 311, 343, 93, 314,
- 125, 93, 317, 318, 319, 93, 274, 125, 276, 300,
- 301, 302, 125, 123, 282, 256, 257, 258, 259, 260,
- 261, 59, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 41, 382, 41, 279, 280,
- 0, 282, 283, 284, 285, 286, 300, 301, 302, 125,
- 291, 292, 293, 294, 295, 296, 297, 300, 301, 302,
- 59, 41, 303, 40, 300, 301, 302, 300, 301, 302,
- 41, 41, 313, 33, 315, 316, 36, 37, 38, 125,
- 40, 123, 42, 43, 41, 45, 300, 301, 302, 300,
- 301, 302, 300, 301, 302, 123, 300, 301, 302, 59,
- 41, 300, 301, 302, 64, 300, 301, 302, 300, 301,
- 302, 256, 257, 258, 259, 260, 261, 59, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 91, 41, 59, 279, 280, 63, 282, 283, 284,
- 285, 286, 41, 59, 125, 41, 291, 292, 293, 294,
- 295, 296, 297, 300, 301, 302, 34, 51, 303, 51,
- 338, 339, 340, 123, 342, 15, 126, 157, 313, 33,
- 315, 316, 36, 37, 38, 382, 40, 41, 42, 43,
- 44, 45, 343, 300, 301, 302, 300, 301, 302, 207,
- 23, 369, 276, -1, 58, 59, -1, -1, 376, 63,
- 64, -1, 380, -1, -1, 300, 301, 302, 300, 301,
- 302, -1, 300, 301, 302, 393, 394, -1, -1, -1,
- 266, 267, 268, -1, 270, 271, -1, 91, 314, 93,
- -1, 317, 318, 319, 33, -1, -1, 36, 37, 38,
- -1, 40, 41, 42, 43, 44, 45, -1, -1, -1,
- -1, 297, 287, 288, 289, 290, 362, 363, -1, 58,
- 59, 367, 126, -1, 63, 64, -1, -1, -1, -1,
- 305, 306, 307, 308, 309, 310, 311, 383, -1, 314,
- -1, 387, 317, 318, 319, 266, 267, 268, -1, 270,
- 271, -1, -1, -1, 93, 41, 256, 257, 258, 259,
- 260, 261, -1, 263, 264, 265, -1, -1, -1, 269,
- -1, -1, 272, 273, 274, 275, 297, 63, -1, 279,
- 280, -1, 282, 283, 284, 285, 286, 126, -1, -1,
- -1, 291, 292, 293, 294, 295, 296, -1, -1, -1,
- -1, -1, 287, 303, 289, 290, -1, -1, -1, -1,
- -1, -1, -1, 313, 281, 315, 316, -1, -1, -1,
- 287, 288, 289, 290, -1, 310, 311, -1, -1, 314,
- 58, -1, 317, 318, 319, 63, -1, 304, 305, 306,
- 307, 308, 309, 310, 311, -1, -1, 314, -1, -1,
- 317, 318, 319, 257, 258, 259, 260, 261, -1, 263,
- 264, 265, -1, -1, -1, 269, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, 279, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, -1, -1, 63, 300, 301, 302, 303,
- 304, 305, 306, 307, 308, 309, 310, 311, -1, 313,
- 314, 315, 316, 317, 318, 319, -1, -1, 257, 258,
- 259, 260, 261, -1, 263, 264, 265, -1, -1, 45,
- 269, -1, -1, 272, 273, 274, 275, 53, -1, -1,
- 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, -1, -1,
- -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, -1, 313, 314, 315, 316, 317, 318,
- 319, 33, -1, 99, 36, 37, 38, -1, 40, -1,
- 42, 43, -1, 45, -1, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, 122, 59, 272, 273,
- 274, 275, 64, -1, 130, 279, -1, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, -1, -1, 314, -1,
- -1, 317, 318, 319, -1, -1, 300, 301, 302, 91,
- -1, -1, 33, -1, -1, 36, 37, 38, -1, 40,
- -1, 42, 43, 281, 45, -1, -1, -1, -1, 287,
- 288, 289, 290, -1, -1, -1, -1, -1, 59, -1,
- -1, 123, -1, 64, 126, -1, 304, 305, 306, 307,
- 308, 309, 310, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, -1, -1, -1, -1, -1, -1, -1, -1,
- 91, -1, 33, -1, -1, 36, 37, 38, -1, 40,
- -1, 42, 43, 281, 45, -1, -1, -1, -1, 287,
- 288, 289, 290, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, 123, 64, -1, 126, -1, 305, 306, 307,
- 308, 309, 310, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, -1, -1, -1, -1, -1, -1, -1, 275,
- 91, 289, 290, -1, -1, 281, 33, -1, -1, 36,
- 37, 38, -1, 40, -1, 42, 43, -1, 45, -1,
- -1, -1, 310, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, 123, -1, -1, 126, -1, 64, -1, -1,
- -1, -1, -1, -1, 256, 257, 258, 259, 260, 261,
- -1, 263, 264, 265, -1, -1, -1, 269, -1, -1,
- 272, 273, 274, 275, 91, -1, -1, 279, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, -1, -1, -1, -1, -1,
- -1, 303, -1, -1, -1, -1, 123, -1, -1, 126,
- -1, 313, -1, 315, 316, 256, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, -1, -1, -1, 269, -1,
- -1, 272, 273, 274, 275, -1, -1, -1, 279, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, -1, -1, -1,
- -1, 33, 303, -1, 36, 37, 38, -1, 40, -1,
- 42, 43, 313, 45, 315, 316, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, -1, -1, -1, 269, -1,
- -1, -1, 64, -1, -1, -1, -1, -1, -1, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, -1, -1, 91,
- -1, 41, 303, -1, 44, -1, 287, 288, 289, 290,
- -1, -1, 313, -1, 315, 316, -1, -1, 58, 59,
- 257, 258, 259, 260, 261, -1, 263, 264, 265, 310,
- 311, 123, 269, 314, 126, -1, 317, 318, 319, -1,
- -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
- -1, -1, -1, 93, 291, 292, 293, 294, 295, 296,
- 33, -1, -1, 36, 37, 38, 303, 40, -1, 42,
- 43, -1, 45, -1, -1, -1, 313, -1, 315, 316,
- 287, 288, 289, 290, -1, -1, 59, -1, -1, -1,
- -1, 64, -1, -1, -1, -1, -1, -1, -1, -1,
- 307, 308, 309, 310, 311, -1, -1, 314, -1, -1,
- 317, 318, 319, 287, 288, 289, 290, -1, 91, -1,
- 33, -1, -1, 36, 37, 38, -1, 40, 41, 42,
- 43, -1, 45, -1, 308, 309, 310, 311, -1, -1,
- 314, -1, -1, 317, 318, 319, -1, -1, -1, -1,
- -1, 64, -1, 126, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 257, 258, 259, 260, 261,
- -1, 263, 264, 265, -1, -1, -1, 269, 91, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, 33, -1, -1, 36, 37,
- 38, 303, 40, 126, 42, 43, -1, 45, -1, -1,
- -1, 313, -1, 315, 316, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, 64, -1, -1, 279,
- -1, -1, -1, -1, -1, -1, 33, -1, -1, 36,
- 37, 38, -1, 40, 41, 42, 43, -1, 45, -1,
- 300, 301, 302, 91, 304, 93, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 64, -1, 41,
- -1, -1, 44, -1, 257, 258, 259, 260, 261, -1,
- 263, 264, 265, -1, -1, -1, 269, 59, 126, -1,
- -1, -1, -1, -1, 91, -1, -1, 280, -1, 282,
- 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
- 293, 294, 295, 296, -1, -1, -1, -1, -1, -1,
- 303, 93, -1, -1, -1, -1, -1, -1, -1, 126,
- 313, -1, 315, 316, 257, 258, 259, 260, 261, -1,
- 263, 264, 265, -1, 33, -1, 269, 36, 37, 38,
- -1, 40, 41, 42, 43, -1, 45, 280, -1, 282,
- 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
- 293, 294, 295, 296, -1, 64, -1, -1, -1, -1,
- 303, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- 313, -1, 315, 316, -1, -1, -1, 41, -1, -1,
- 44, -1, 91, 309, 310, 311, -1, -1, 314, -1,
- -1, 317, 318, 319, 58, 59, -1, -1, -1, 257,
- 258, 259, 260, 261, -1, 263, 264, 265, -1, -1,
- -1, 269, 41, -1, -1, 44, -1, 126, -1, -1,
- -1, -1, 280, -1, 282, 283, 284, 285, 286, 93,
- 59, -1, -1, 291, 292, 293, 294, 295, 296, -1,
- 257, 258, 259, 260, 261, 303, 263, 264, 265, -1,
- -1, -1, 269, -1, -1, 313, -1, 315, 316, -1,
- -1, -1, -1, 280, 93, 282, 283, 284, 285, 286,
- -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
- 272, 273, 274, 275, -1, 33, 303, 279, 36, 37,
- 38, -1, 40, 41, 42, 43, 313, 45, 315, 316,
- 27, 28, -1, -1, -1, -1, -1, -1, 300, 301,
- -1, -1, 39, -1, -1, -1, 64, -1, 45, 46,
- 47, -1, -1, -1, 51, 52, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 64, 65, 66,
- 67, -1, -1, 91, -1, -1, -1, -1, 257, 258,
- 259, 260, 261, -1, 263, 264, 265, -1, 33, -1,
- 269, 36, 37, 38, -1, 40, 41, 42, 43, -1,
- 45, 280, -1, 282, 283, 284, 285, 286, 126, -1,
- -1, -1, 291, 292, 293, 294, 295, 296, 115, 64,
- -1, -1, -1, -1, 303, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 313, -1, 315, 316, 272, 273,
- 274, 275, -1, -1, -1, 279, 91, -1, -1, -1,
- -1, 33, -1, -1, 36, 37, 38, -1, 40, -1,
- 42, 43, -1, 45, -1, -1, 300, 301, 302, -1,
- -1, -1, -1, 272, 273, 274, 275, -1, -1, -1,
- 279, 126, 64, -1, 181, -1, 41, -1, -1, 44,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 300, 301, 58, 59, -1, -1, -1, -1, 91,
- -1, 208, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 33, -1, -1, 36, 37, 38,
- -1, 40, 41, 42, 43, -1, 45, -1, 93, 257,
- 258, 259, 260, 261, 126, 263, 264, 265, -1, -1,
- -1, 269, -1, -1, -1, 64, -1, -1, -1, -1,
- -1, -1, 280, -1, 282, 283, 284, 285, 286, -1,
- -1, -1, -1, 291, 292, 293, 294, 295, 296, -1,
- -1, -1, 91, -1, -1, 303, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 313, 33, 315, 316, 36,
- 37, 38, -1, 40, 41, 42, 43, -1, 45, -1,
- -1, -1, 257, 258, 259, 260, 261, 126, 263, 264,
- 265, -1, -1, -1, 269, -1, -1, 64, -1, -1,
- -1, -1, -1, -1, -1, 280, -1, 282, 283, 284,
- 285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
- 295, 296, -1, -1, 91, -1, -1, -1, 303, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 313, -1,
- 315, 316, -1, -1, 256, 257, 258, 259, 260, 261,
- -1, 263, 264, 265, -1, -1, -1, 269, -1, 126,
- -1, -1, -1, -1, -1, -1, -1, -1, 280, -1,
- 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
- 292, 293, 294, 295, 296, -1, -1, 272, 273, 274,
- 275, 303, -1, -1, 279, -1, -1, -1, -1, -1,
- -1, 313, 33, 315, 316, 36, 37, 38, -1, 40,
- 41, 42, 43, -1, 45, 300, 301, 302, 257, 258,
- 259, 260, 261, -1, 263, 264, 265, -1, -1, -1,
- 269, -1, -1, 64, -1, -1, -1, -1, -1, -1,
- -1, 280, -1, 282, 283, 284, 285, 286, -1, -1,
- -1, -1, 291, 292, 293, 294, 295, 296, -1, -1,
- 91, -1, -1, -1, 303, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 313, 33, 315, 316, 36, 37,
- 38, -1, 40, -1, 42, 43, -1, 45, -1, -1,
- 257, 258, 259, 260, 261, 126, 263, 264, 265, -1,
- -1, -1, 269, -1, -1, -1, 64, -1, -1, -1,
- -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
- -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
- -1, -1, -1, 91, -1, -1, 303, -1, -1, -1,
- -1, -1, -1, -1, 41, -1, 313, 44, 315, 316,
- -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
- -1, 58, 59, -1, -1, -1, 63, -1, 126, 58,
- 59, -1, -1, -1, 63, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 93, -1, -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, -1, 257, 258, 259, 260,
- 261, -1, 263, 264, 265, -1, -1, -1, 269, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 280,
- -1, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, 295, 296, -1, -1, -1, -1,
- -1, 41, 303, -1, 44, -1, -1, -1, -1, -1,
- -1, -1, 313, -1, 315, 316, -1, -1, 58, 59,
- -1, 41, -1, 63, 44, -1, -1, -1, -1, 257,
- 258, 259, 260, 261, -1, 263, 264, 265, 58, 59,
- -1, 269, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 280, 93, 282, 283, 284, 285, 286, -1,
- -1, -1, -1, 291, 292, 293, 294, 295, 296, -1,
- -1, 32, -1, 93, 41, 303, -1, 44, -1, 40,
- -1, -1, -1, 44, -1, 313, 47, 315, 316, 50,
- -1, 58, 59, 54, 55, 56, 57, 58, -1, -1,
- -1, 62, 63, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, 279, 272, 273, 274, 275, -1, -1, -1,
- 279, -1, 281, -1, -1, -1, 93, -1, 287, 288,
- 289, 290, -1, 300, 301, 302, -1, 304, -1, -1,
- 101, 300, 301, 302, -1, 304, 305, 306, 307, 308,
- 309, 310, 311, -1, -1, 314, -1, -1, 317, 318,
- 319, -1, -1, -1, -1, -1, 41, -1, -1, 44,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 58, 59, -1, -1, -1, 63, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 93, -1,
- 41, -1, -1, 44, -1, -1, -1, -1, -1, -1,
- -1, 192, 272, 273, 274, 275, -1, 58, 59, 279,
- -1, 281, 63, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, 272, 273, 274, 275, -1, -1, -1, 279,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 93, 41, 314, -1, 44, 317, 318, 319,
- 300, 301, 302, -1, -1, -1, -1, -1, -1, -1,
- 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, 279, -1, -1, -1, -1, -1, 279, -1,
- -1, 41, -1, -1, 44, 93, -1, -1, -1, -1,
- -1, -1, -1, 300, 301, 302, -1, -1, 58, 59,
- -1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
- -1, 312, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
- -1, -1, 44, 93, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
- -1, 63, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, -1, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, -1, -1,
- -1, 93, -1, -1, -1, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, -1, -1, 314,
- -1, -1, 317, 318, 319, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 41, -1, 279, 44,
- 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, 58, 59, -1, -1, -1, 63, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, -1, -1, 314, -1, -1, 317, 318, 319, -1,
- -1, -1, -1, -1, 272, 273, 274, 275, 93, -1,
- -1, 279, -1, 281, -1, -1, -1, -1, -1, 287,
- 288, 289, 290, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 300, 301, 302, -1, 304, 305, 306, 307,
- 308, 309, 310, 311, -1, -1, 314, -1, -1, 317,
- 318, 319, 272, 273, 274, 275, -1, -1, -1, 279,
- -1, 281, -1, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, -1, -1, 314, -1, -1, 317, 318, 319,
- 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
- -1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, 300, 301,
- 302, -1, 304, 305, 306, 307, 308, 309, 310, 311,
- -1, -1, 314, -1, -1, 317, 318, 319, -1, -1,
- -1, -1, -1, -1, -1, 41, -1, 93, 44, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, -1, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, 93, -1, -1,
- -1, -1, -1, -1, -1, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, 41, -1, 314,
- 44, -1, 317, 318, 319, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 58, 59, -1, -1, -1, 63,
- -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, 41, -1, -1, 44, 93,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, -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, 41, -1, -1, 93, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 58, 59, 279, -1, 281, 63, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, 93, -1, 314, -1,
- -1, 317, 318, 319, -1, -1, 272, 273, 274, 275,
- -1, 41, -1, 279, 44, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
- -1, -1, -1, 63, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, -1, -1, 314, -1,
- -1, 317, 318, 319, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, -1, -1, 41, -1, -1, 44,
- -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
- 274, 275, -1, 58, 59, 279, -1, 281, 63, -1,
- -1, -1, -1, 287, 288, 289, 290, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 300, 301, 302, -1,
- 304, 305, 306, 307, 308, 309, 310, 311, 93, -1,
- 314, -1, -1, 317, 318, 319, 272, 273, 274, 275,
- -1, 41, -1, 279, 44, 281, -1, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, 58, 59,
- -1, -1, -1, 63, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, -1, -1, 314, -1,
- -1, 317, 318, 319, -1, 272, 273, 274, 275, 41,
- -1, -1, 279, 93, 281, -1, -1, -1, -1, -1,
- 287, 288, 289, 290, -1, -1, 58, 59, -1, -1,
- -1, 63, -1, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, 310, 311, -1, -1, 314, -1, -1,
- 317, 318, 319, -1, -1, -1, -1, -1, -1, -1,
- 41, 93, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, 58, 59, 279,
- -1, 281, 63, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 93, -1, 314, -1, -1, 317, 318, 319,
- -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, 41, -1, 279, 44, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, -1, 58,
- 59, -1, -1, -1, 63, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, -1, -1, 314,
- -1, -1, 317, 318, 319, -1, -1, -1, -1, -1,
- 41, -1, -1, 44, 93, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, 58, 59, 279,
- -1, 281, 63, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 93, -1, 314, -1, -1, 317, 318, 319,
- 272, 273, 274, 275, -1, 41, -1, 279, 44, 281,
- -1, -1, -1, -1, -1, 287, 288, 289, 290, -1,
- -1, -1, 58, 59, -1, -1, -1, 63, 300, 301,
- 302, -1, 304, 305, 306, 307, 308, 309, 310, 311,
- -1, -1, 314, -1, -1, 317, 318, 319, -1, -1,
- -1, 272, 273, 274, 275, -1, 41, 93, 279, 44,
- 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, 58, 59, -1, -1, -1, 63, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, -1, -1, 314, -1, -1, 317, 318, 319, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 41, -1, -1, 44, -1, -1, -1, -1, -1,
- -1, -1, -1, 272, 273, 274, 275, -1, 58, 59,
- 279, -1, 281, 63, -1, -1, -1, -1, 287, 288,
- 289, 290, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 300, 301, 302, -1, 304, 305, 306, 307, 308,
- 309, 310, 311, 93, -1, 314, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 41, -1, 279, 44,
- 281, -1, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, 58, 59, -1, -1, -1, 63, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, -1, -1, 314, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 41, -1, -1, 44, 93, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 58, 59, 279, -1, 281, 63, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, 93, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, -1, 281, -1, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, -1, -1,
- 41, -1, -1, 44, -1, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, 58, 59, -1,
- -1, -1, 63, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, -1, 279,
- -1, 281, -1, -1, -1, -1, -1, 287, 288, 289,
- 290, -1, 93, -1, -1, 41, -1, -1, 44, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 58, 59, -1, -1, -1, 63, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 272, 273, 274,
- 275, -1, -1, -1, 279, -1, 281, 93, -1, -1,
- -1, -1, 287, 288, 289, 290, -1, -1, -1, -1,
- 41, -1, -1, 44, -1, 300, 301, 302, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, 58, 59, -1,
- -1, -1, 63, -1, -1, 272, 273, 274, 275, -1,
- -1, -1, 279, -1, 281, -1, -1, -1, -1, -1,
- 287, 288, 289, 290, -1, -1, -1, -1, 41, -1,
- -1, 44, 93, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, 310, 311, 58, 59, -1, -1, -1,
- 63, -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, 41,
- 93, -1, 44, -1, -1, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 58, 59, 279, -1,
- 281, 63, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, 93, -1, -1, 41, -1, -1, 44, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, 58, 59, 279, -1, 281, 63, -1, -1, -1,
- -1, 287, 288, 289, 290, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, 93, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
- -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
- -1, 272, 273, 274, 275, -1, 58, 59, 279, -1,
- 281, 63, -1, -1, -1, -1, 287, 288, 289, 290,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 300,
- 301, 302, -1, 304, 305, 306, 307, 308, 309, 310,
- -1, 93, -1, -1, 41, -1, -1, 44, -1, 272,
- 273, 274, 275, -1, 41, -1, 279, 44, 281, -1,
- -1, 58, 59, -1, 287, 288, 63, 290, -1, -1,
- -1, 58, 59, -1, -1, -1, 63, 300, 301, 302,
- -1, 304, 305, 306, 307, 308, 309, 310, -1, -1,
- -1, -1, -1, -1, -1, 41, 93, -1, 44, -1,
- 272, 273, 274, 275, -1, -1, 93, 279, -1, 281,
- -1, -1, 58, 59, -1, 287, 288, 63, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 300, 301,
- 302, -1, 304, 305, 306, 307, 308, 309, 310, -1,
- -1, -1, -1, 41, -1, -1, 44, 93, -1, -1,
- -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
- 58, 59, 279, -1, 281, 63, -1, -1, -1, -1,
- 287, 288, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, 41, -1, 93, 44, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
- 272, 273, 274, 275, -1, -1, -1, 279, -1, 281,
- -1, -1, -1, -1, -1, 287, 288, -1, -1, -1,
- -1, 41, -1, -1, 44, 93, -1, -1, 300, 301,
- 302, -1, 304, 305, 306, 307, 308, 309, 58, 59,
- -1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 272, 273, 274, 275, -1,
- 41, -1, 279, 44, 281, 272, 273, 274, 275, -1,
- 287, 288, 279, 93, 281, -1, -1, 58, 59, -1,
- 287, 288, 63, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, 300, 301, 302, -1, 304, 305, 306,
- 307, 308, 309, -1, -1, -1, 272, 273, 274, 275,
- -1, -1, 93, 279, -1, 281, -1, -1, -1, -1,
- -1, -1, 288, -1, -1, -1, -1, 41, -1, -1,
- 44, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306, 307, 308, 309, 58, 59, -1, -1, -1, 63,
- -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, 279, -1, 281, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 41, -1, -1, 44, 93,
- -1, -1, 300, 301, 302, -1, 304, 305, 306, 307,
- 308, 309, 58, 59, -1, -1, -1, 63, -1, -1,
- -1, -1, -1, -1, 272, 273, 274, 275, -1, -1,
- -1, 279, -1, 281, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
- -1, -1, 300, 301, 302, -1, 304, 305, 306, 307,
- 308, 309, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 272, 273, 274, 275, -1, -1, -1, 279,
- -1, 281, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 300, 301, 302, -1, 304, 305, 306, 307, 308, -1,
- -1, 272, 273, 274, 275, -1, -1, -1, 279, -1,
- 281, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 300,
- 301, 302, -1, 304, 305, 306, 307, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 272, 273,
- 274, 275, -1, -1, -1, 279, -1, 281, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 300, 301, 302, -1,
- 304, 305, 306, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 272, 273, 274, 275,
- -1, -1, -1, 279, -1, 281, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 300, 301, 302, -1, 304, 305,
- 306,
-};
-#define YYFINAL 1
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 319
-#if YYDEBUG
-static char *yyname[] = {
-"end-of-file",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,
-"'!'",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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","METHOD","FUNCMETH","THING",
-"PMFUNC","PRIVATEREF","FUNC0SUB","UNIOPSUB","LSTOPSUB","LABEL","FORMAT","SUB",
-"ANONSUB","PACKAGE","USE","WHILE","UNTIL","IF","UNLESS","ELSE","ELSIF",
-"CONTINUE","FOR","LOOPEX","DOTDOT","FUNC0","FUNC1","FUNC","UNIOP","LSTOP",
-"RELOP","EQOP","MULOP","ADDOP","DOLSHARP","DO","HASHBRACK","NOAMP","LOCAL","MY",
-"MYSUB","COLONATTR","PREC_LOW","OROP","DOROP","ANDOP","NOTOP","ASSIGNOP","OROR",
-"DORDOR","ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN",
-"POWOP","PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
-};
-static char *yyrule[] = {
-"$accept : prog",
-"prog : progstart lineseq",
-"block : '{' remember lineseq '}'",
-"remember :",
-"progstart :",
-"mblock : '{' mremember lineseq '}'",
-"mremember :",
-"lineseq :",
-"lineseq : lineseq decl",
-"lineseq : lineseq line",
-"line : label cond",
-"line : loop",
-"line : label ';'",
-"line : label sideff ';'",
-"sideff : error",
-"sideff : expr",
-"sideff : expr IF expr",
-"sideff : expr UNLESS expr",
-"sideff : expr WHILE expr",
-"sideff : expr UNTIL iexpr",
-"sideff : expr FOR expr",
-"else :",
-"else : ELSE mblock",
-"else : ELSIF '(' mexpr ')' mblock else",
-"cond : IF '(' remember mexpr ')' mblock else",
-"cond : UNLESS '(' remember miexpr ')' mblock else",
-"cont :",
-"cont : CONTINUE block",
-"loop : label WHILE '(' remember mtexpr ')' mblock cont",
-"loop : label UNTIL '(' remember miexpr ')' mblock cont",
-"loop : label FOR MY remember my_scalar '(' mexpr ')' mblock cont",
-"loop : label FOR scalar '(' remember mexpr ')' mblock cont",
-"loop : label FOR '(' remember mexpr ')' mblock cont",
-"loop : label FOR '(' remember mnexpr ';' mtexpr ';' mnexpr ')' mblock",
-"loop : label block cont",
-"nexpr :",
-"nexpr : sideff",
-"texpr :",
-"texpr : expr",
-"iexpr : expr",
-"mexpr : expr",
-"mnexpr : nexpr",
-"mtexpr : texpr",
-"miexpr : iexpr",
-"label :",
-"label : LABEL",
-"decl : format",
-"decl : subrout",
-"decl : mysubrout",
-"decl : package",
-"decl : use",
-"format : FORMAT startformsub formname block",
-"formname : WORD",
-"formname :",
-"mysubrout : MYSUB startsub subname proto subattrlist subbody",
-"subrout : SUB startsub subname proto subattrlist subbody",
-"startsub :",
-"startanonsub :",
-"startformsub :",
-"subname : WORD",
-"proto :",
-"proto : THING",
-"subattrlist :",
-"subattrlist : COLONATTR THING",
-"subattrlist : COLONATTR",
-"myattrlist : COLONATTR THING",
-"myattrlist : COLONATTR",
-"subbody : block",
-"subbody : ';'",
-"package : PACKAGE WORD ';'",
-"$$1 :",
-"use : USE startsub $$1 WORD WORD listexpr ';'",
-"expr : expr ANDOP expr",
-"expr : expr OROP expr",
-"expr : expr DOROP expr",
-"expr : argexpr",
-"argexpr : argexpr ','",
-"argexpr : argexpr ',' term",
-"argexpr : term",
-"listop : LSTOP indirob argexpr",
-"listop : FUNC '(' indirob expr ')'",
-"listop : term ARROW method '(' listexprcom ')'",
-"listop : term ARROW method",
-"listop : METHOD indirob listexpr",
-"listop : FUNCMETH indirob '(' listexprcom ')'",
-"listop : LSTOP listexpr",
-"listop : FUNC '(' listexprcom ')'",
-"$$2 :",
-"listop : LSTOPSUB startanonsub block $$2 listexpr",
-"method : METHOD",
-"method : scalar",
-"subscripted : star '{' expr ';' '}'",
-"subscripted : scalar '[' expr ']'",
-"subscripted : term ARROW '[' expr ']'",
-"subscripted : subscripted '[' expr ']'",
-"subscripted : scalar '{' expr ';' '}'",
-"subscripted : term ARROW '{' expr ';' '}'",
-"subscripted : subscripted '{' expr ';' '}'",
-"subscripted : term ARROW '(' ')'",
-"subscripted : term ARROW '(' expr ')'",
-"subscripted : subscripted '(' expr ')'",
-"subscripted : subscripted '(' ')'",
-"termbinop : term ASSIGNOP term",
-"termbinop : term POWOP term",
-"termbinop : term MULOP term",
-"termbinop : term ADDOP term",
-"termbinop : term SHIFTOP term",
-"termbinop : term RELOP term",
-"termbinop : term EQOP term",
-"termbinop : term BITANDOP term",
-"termbinop : term BITOROP term",
-"termbinop : term DOTDOT term",
-"termbinop : term ANDAND term",
-"termbinop : term OROR term",
-"termbinop : term DORDOR term",
-"termbinop : term MATCHOP term",
-"termunop : '-' term",
-"termunop : '+' term",
-"termunop : '!' term",
-"termunop : '~' term",
-"termunop : term POSTINC",
-"termunop : term POSTDEC",
-"termunop : PREINC term",
-"termunop : PREDEC term",
-"anonymous : '[' expr ']'",
-"anonymous : '[' ']'",
-"anonymous : HASHBRACK expr ';' '}'",
-"anonymous : HASHBRACK ';' '}'",
-"anonymous : ANONSUB startanonsub proto subattrlist block",
-"termdo : DO term",
-"termdo : DO block",
-"termdo : DO WORD '(' ')'",
-"termdo : DO WORD '(' expr ')'",
-"termdo : DO scalar '(' ')'",
-"termdo : DO scalar '(' expr ')'",
-"term : termbinop",
-"term : termunop",
-"term : anonymous",
-"term : termdo",
-"term : term '?' term ':' term",
-"term : REFGEN term",
-"term : myattrterm",
-"term : LOCAL term",
-"term : '(' expr ')'",
-"term : '(' ')'",
-"term : scalar",
-"term : star",
-"term : hsh",
-"term : ary",
-"term : arylen",
-"term : subscripted",
-"term : '(' expr ')' '[' expr ']'",
-"term : '(' ')' '[' expr ']'",
-"term : ary '[' expr ']'",
-"term : ary '{' expr ';' '}'",
-"term : THING",
-"term : amper",
-"term : amper '(' ')'",
-"term : amper '(' expr ')'",
-"term : NOAMP WORD listexpr",
-"term : LOOPEX",
-"term : LOOPEX term",
-"term : NOTOP argexpr",
-"term : UNIOP",
-"term : UNIOP block",
-"term : UNIOP term",
-"term : UNIOPSUB term",
-"term : FUNC0",
-"term : FUNC0 '(' ')'",
-"term : FUNC0SUB",
-"term : FUNC1 '(' ')'",
-"term : FUNC1 '(' expr ')'",
-"term : PMFUNC '(' term ')'",
-"term : PMFUNC '(' term ',' term ')'",
-"term : WORD",
-"term : listop",
-"myattrterm : MY myterm myattrlist",
-"myattrterm : MY myterm",
-"myterm : '(' expr ')'",
-"myterm : '(' ')'",
-"myterm : scalar",
-"myterm : hsh",
-"myterm : ary",
-"listexpr :",
-"listexpr : argexpr",
-"listexprcom :",
-"listexprcom : expr",
-"listexprcom : expr ','",
-"my_scalar : scalar",
-"amper : '&' indirob",
-"scalar : '$' indirob",
-"ary : '@' indirob",
-"hsh : '%' indirob",
-"arylen : DOLSHARP indirob",
-"star : '*' indirob",
-"indirob : WORD",
-"indirob : scalar",
-"indirob : block",
-"indirob : PRIVATEREF",
-};
-#endif
-#define yyclearin (yychar=(-1))
-#define yyerrok (yyerrflag=0)
-#ifdef YYSTACKSIZE
-#ifndef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#endif
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
-#endif
-#endif
-#line 796 "perly.y"
- /* PROGRAM */
-
-/* more stuff added to make perly_c.diff easier to apply */
-
-#ifdef yyparse
-#undef yyparse
-#endif
-#define yyparse() Perl_yyparse(pTHX)
-
-#line 1508 "perly.c"
-#define YYABORT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-int
-yyparse()
-{
- register int yym, yyn, yystate;
- register short *yyssp;
- register YYSTYPE *yyvsp;
- short* yyss;
- YYSTYPE* yyvs;
- unsigned yystacksize = YYSTACKSIZE;
- int retval = 0;
-#if YYDEBUG
- register char *yys;
-#endif
-
- struct ysv *ysave;
-#ifdef USE_ITHREADS
- ENTER; /* force yydestruct() before we return */
-#endif
- New(73, ysave, 1, struct ysv);
- SAVEDESTRUCTOR_X(yydestruct, ysave);
- ysave->oldyydebug = yydebug;
- ysave->oldyynerrs = yynerrs;
- ysave->oldyyerrflag = yyerrflag;
- ysave->oldyychar = yychar;
- ysave->oldyyval = yyval;
- ysave->oldyylval = yylval;
-
-#if YYDEBUG
- {
- register int saved_errno = errno;
-#ifdef VMS
- register int saved_vaxc_errno = vaxc$errno;
-#else
- register int saved_vaxc_errno = 0;
-#endif
- if ((yys = getenv("YYDEBUG")))
- {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
- yydebug = yyn - '0';
- }
- else SETERRNO(saved_errno,saved_vaxc_errno);
- }
-#endif
-
- yynerrs = 0;
- yyerrflag = 0;
- yychar = (-1);
-
- /*
- ** Initialize private stacks (yyparse may be called from an action)
- */
- New(73, yyss, yystacksize, short);
- New(73, yyvs, yystacksize, YYSTYPE);
- ysave->yyss = yyss;
- ysave->yyvs = yyvs;
- if (!yyvs || !yyss)
- goto yyoverflow;
-
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
-
-yyloop:
- if ((yyn = yydefred[yystate])) goto yyreduce;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
-#endif
- }
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
- yystate, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- /*
- ** reallocate and recover. Note that pointers
- ** have to be reset, or bad things will happen
- */
- int yyps_index = (yyssp - yyss);
- int yypv_index = (yyvsp - yyvs);
- yystacksize += YYSTACKSIZE;
- ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
- ysave->yyss = Renew(yyss, yystacksize, short);
- if (!yyvs || !yyss)
- goto yyoverflow;
- yyssp = yyss + yyps_index;
- yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- yychar = (-1);
- if (yyerrflag > 0) --yyerrflag;
- goto yyloop;
- }
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
- yyn = yytable[yyn];
- goto yyreduce;
- }
- if (yyerrflag) goto yyinrecovery;
-#ifdef lint
-
-#endif
-
- yyerror("syntax error");
-#ifdef lint
-
-#endif
-
- ++yynerrs;
-yyinrecovery:
- if (yyerrflag < 3)
- {
- yyerrflag = 3;
- for (;;)
- {
- if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
- {
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
- to state %d\n", *yyssp, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- /*
- ** reallocate and recover. Note that pointers
- ** have to be reset, or bad things will happen
- */
- int yyps_index = (yyssp - yyss);
- int yypv_index = (yyvsp - yyvs);
- yystacksize += YYSTACKSIZE;
- ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
- ysave->yyss = Renew(yyss, yystacksize, short);
- if (!yyvs || !yyss)
- goto yyoverflow;
- yyssp = yyss + yyps_index;
- yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- goto yyloop;
- }
- else
- {
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
- *yyssp);
-#endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- --yyvsp;
- }
- }
- }
- else
- {
- if (yychar == 0) goto yyabort;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
- yystate, yychar, yys);
- }
-#endif
- yychar = (-1);
- goto yyloop;
- }
-yyreduce:
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
-#endif
- yym = yylen[yyn];
- yyval = yyvsp[1-yym];
- switch (yyn)
- {
-case 1:
-#line 131 "perly.y"
-{ yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
-break;
-case 2:
-#line 136 "perly.y"
-{ if (PL_copline > (line_t)yyvsp[-3].ival)
- PL_copline = (line_t)yyvsp[-3].ival;
- yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
-break;
-case 3:
-#line 142 "perly.y"
-{ yyval.ival = block_start(TRUE); }
-break;
-case 4:
-#line 146 "perly.y"
-{
-#if defined(YYDEBUG) && defined(DEBUGGING)
- yydebug = (DEBUG_p_TEST);
-#endif
- PL_expect = XSTATE; yyval.ival = block_start(TRUE);
- }
-break;
-case 5:
-#line 156 "perly.y"
-{ if (PL_copline > (line_t)yyvsp[-3].ival)
- PL_copline = (line_t)yyvsp[-3].ival;
- yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
-break;
-case 6:
-#line 162 "perly.y"
-{ yyval.ival = block_start(FALSE); }
-break;
-case 7:
-#line 167 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 8:
-#line 169 "perly.y"
-{ yyval.opval = yyvsp[-1].opval; }
-break;
-case 9:
-#line 171 "perly.y"
-{ yyval.opval = append_list(OP_LINESEQ,
- (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
- PL_pad_reset_pending = TRUE;
- if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; }
-break;
-case 10:
-#line 179 "perly.y"
-{ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
-break;
-case 12:
-#line 182 "perly.y"
-{ if (yyvsp[-1].pval != Nullch) {
- yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
- }
- else {
- yyval.opval = Nullop;
- PL_copline = NOLINE;
- }
- PL_expect = XSTATE; }
-break;
-case 13:
-#line 191 "perly.y"
-{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
- PL_expect = XSTATE; }
-break;
-case 14:
-#line 197 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 15:
-#line 199 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 16:
-#line 201 "perly.y"
-{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
-break;
-case 17:
-#line 203 "perly.y"
-{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
-break;
-case 18:
-#line 205 "perly.y"
-{ yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
-break;
-case 19:
-#line 207 "perly.y"
-{ yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
-break;
-case 20:
-#line 209 "perly.y"
-{ yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
- Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
-break;
-case 21:
-#line 215 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 22:
-#line 217 "perly.y"
-{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
-break;
-case 23:
-#line 219 "perly.y"
-{ PL_copline = (line_t)yyvsp[-5].ival;
- yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
- PL_hints |= HINT_BLOCK_SCOPE; }
-break;
-case 24:
-#line 226 "perly.y"
-{ PL_copline = (line_t)yyvsp[-6].ival;
- yyval.opval = block_end(yyvsp[-4].ival,
- newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
-break;
-case 25:
-#line 230 "perly.y"
-{ PL_copline = (line_t)yyvsp[-6].ival;
- yyval.opval = block_end(yyvsp[-4].ival,
- newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
-break;
-case 26:
-#line 237 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 27:
-#line 239 "perly.y"
-{ yyval.opval = scope(yyvsp[0].opval); }
-break;
-case 28:
-#line 244 "perly.y"
-{ PL_copline = (line_t)yyvsp[-6].ival;
- yyval.opval = block_end(yyvsp[-4].ival,
- newSTATEOP(0, yyvsp[-7].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
-break;
-case 29:
-#line 250 "perly.y"
-{ PL_copline = (line_t)yyvsp[-6].ival;
- yyval.opval = block_end(yyvsp[-4].ival,
- newSTATEOP(0, yyvsp[-7].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
-break;
-case 30:
-#line 256 "perly.y"
-{ yyval.opval = block_end(yyvsp[-6].ival,
- newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 31:
-#line 259 "perly.y"
-{ yyval.opval = block_end(yyvsp[-4].ival,
- newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
- yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 32:
-#line 263 "perly.y"
-{ yyval.opval = block_end(yyvsp[-4].ival,
- newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 33:
-#line 267 "perly.y"
-{ OP *forop;
- PL_copline = (line_t)yyvsp[-9].ival;
- forop = newSTATEOP(0, yyvsp[-10].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- yyvsp[-9].ival, scalar(yyvsp[-4].opval),
- yyvsp[0].opval, yyvsp[-2].opval));
- if (yyvsp[-6].opval) {
- forop = append_elem(OP_LINESEQ,
- newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch),
- yyvsp[-6].opval),
- forop);
- }
-
- yyval.opval = block_end(yyvsp[-7].ival, forop); }
-break;
-case 34:
-#line 282 "perly.y"
-{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
- newWHILEOP(0, 1, (LOOP*)Nullop,
- NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
-break;
-case 35:
-#line 289 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 37:
-#line 295 "perly.y"
-{ (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
-break;
-case 39:
-#line 301 "perly.y"
-{ yyval.opval = invert(scalar(yyvsp[0].opval)); }
-break;
-case 40:
-#line 306 "perly.y"
-{ yyval.opval = yyvsp[0].opval; intro_my(); }
-break;
-case 41:
-#line 310 "perly.y"
-{ yyval.opval = yyvsp[0].opval; intro_my(); }
-break;
-case 42:
-#line 314 "perly.y"
-{ yyval.opval = yyvsp[0].opval; intro_my(); }
-break;
-case 43:
-#line 318 "perly.y"
-{ yyval.opval = yyvsp[0].opval; intro_my(); }
-break;
-case 44:
-#line 323 "perly.y"
-{ yyval.pval = Nullch; }
-break;
-case 46:
-#line 329 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 47:
-#line 331 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 48:
-#line 333 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 49:
-#line 335 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 50:
-#line 337 "perly.y"
-{ yyval.ival = 0; }
-break;
-case 51:
-#line 341 "perly.y"
-{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
-break;
-case 52:
-#line 344 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 53:
-#line 345 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 54:
-#line 350 "perly.y"
-{ newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
-break;
-case 55:
-#line 355 "perly.y"
-{ newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
-break;
-case 56:
-#line 359 "perly.y"
-{ yyval.ival = start_subparse(FALSE, 0); }
-break;
-case 57:
-#line 363 "perly.y"
-{ yyval.ival = start_subparse(FALSE, CVf_ANON); }
-break;
-case 58:
-#line 367 "perly.y"
-{ yyval.ival = start_subparse(TRUE, 0); }
-break;
-case 59:
-#line 371 "perly.y"
-{ STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
- if (strEQ(name, "BEGIN") || strEQ(name, "END")
- || strEQ(name, "INIT") || strEQ(name, "CHECK"))
- CvSPECIAL_on(PL_compcv);
- yyval.opval = yyvsp[0].opval; }
-break;
-case 60:
-#line 380 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 62:
-#line 386 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 63:
-#line 388 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 64:
-#line 390 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 65:
-#line 395 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 66:
-#line 397 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 67:
-#line 401 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 68:
-#line 402 "perly.y"
-{ yyval.opval = Nullop; PL_expect = XSTATE; }
-break;
-case 69:
-#line 406 "perly.y"
-{ package(yyvsp[-1].opval); }
-break;
-case 70:
-#line 410 "perly.y"
-{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
-break;
-case 71:
-#line 412 "perly.y"
-{ utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
-break;
-case 72:
-#line 417 "perly.y"
-{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 73:
-#line 419 "perly.y"
-{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 74:
-#line 421 "perly.y"
-{ yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 76:
-#line 427 "perly.y"
-{ yyval.opval = yyvsp[-1].opval; }
-break;
-case 77:
-#line 429 "perly.y"
-{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 79:
-#line 435 "perly.y"
-{ yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
- prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); }
-break;
-case 80:
-#line 438 "perly.y"
-{ yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
- prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); }
-break;
-case 81:
-#line 441 "perly.y"
-{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST,
- prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
- newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); }
-break;
-case 82:
-#line 446 "perly.y"
-{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, scalar(yyvsp[-2].opval),
- newUNOP(OP_METHOD, 0, yyvsp[0].opval))); }
-break;
-case 83:
-#line 450 "perly.y"
-{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST,
- prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
- newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); }
-break;
-case 84:
-#line 455 "perly.y"
-{ yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST,
- prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
- newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); }
-break;
-case 85:
-#line 460 "perly.y"
-{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
-break;
-case 86:
-#line 462 "perly.y"
-{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
-break;
-case 87:
-#line 464 "perly.y"
-{ yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
-break;
-case 88:
-#line 466 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST,
- prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); }
-break;
-case 91:
-#line 480 "perly.y"
-{ yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval));
- PL_expect = XOPERATOR; }
-break;
-case 92:
-#line 483 "perly.y"
-{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
-break;
-case 93:
-#line 485 "perly.y"
-{ yyval.opval = newBINOP(OP_AELEM, 0,
- ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
- scalar(yyvsp[-1].opval));}
-break;
-case 94:
-#line 489 "perly.y"
-{ yyval.opval = newBINOP(OP_AELEM, 0,
- ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
- scalar(yyvsp[-1].opval));}
-break;
-case 95:
-#line 493 "perly.y"
-{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
- PL_expect = XOPERATOR; }
-break;
-case 96:
-#line 496 "perly.y"
-{ yyval.opval = newBINOP(OP_HELEM, 0,
- ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
- jmaybe(yyvsp[-2].opval));
- PL_expect = XOPERATOR; }
-break;
-case 97:
-#line 501 "perly.y"
-{ yyval.opval = newBINOP(OP_HELEM, 0,
- ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
- jmaybe(yyvsp[-2].opval));
- PL_expect = XOPERATOR; }
-break;
-case 98:
-#line 506 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- newCVREF(0, scalar(yyvsp[-3].opval))); }
-break;
-case 99:
-#line 509 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[-1].opval,
- newCVREF(0, scalar(yyvsp[-4].opval)))); }
-break;
-case 100:
-#line 514 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[-1].opval,
- newCVREF(0, scalar(yyvsp[-3].opval)))); }
-break;
-case 101:
-#line 518 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- newCVREF(0, scalar(yyvsp[-2].opval))); }
-break;
-case 102:
-#line 524 "perly.y"
-{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
-break;
-case 103:
-#line 526 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 104:
-#line 528 "perly.y"
-{ if (yyvsp[-1].ival != OP_REPEAT)
- scalar(yyvsp[-2].opval);
- yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
-break;
-case 105:
-#line 532 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 106:
-#line 534 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 107:
-#line 536 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 108:
-#line 538 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 109:
-#line 540 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 110:
-#line 542 "perly.y"
-{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
-break;
-case 111:
-#line 544 "perly.y"
-{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
-break;
-case 112:
-#line 546 "perly.y"
-{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 113:
-#line 548 "perly.y"
-{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 114:
-#line 550 "perly.y"
-{ yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 115:
-#line 552 "perly.y"
-{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 116:
-#line 557 "perly.y"
-{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
-break;
-case 117:
-#line 559 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 118:
-#line 561 "perly.y"
-{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
-break;
-case 119:
-#line 563 "perly.y"
-{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
-break;
-case 120:
-#line 565 "perly.y"
-{ yyval.opval = newUNOP(OP_POSTINC, 0,
- mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
-break;
-case 121:
-#line 568 "perly.y"
-{ yyval.opval = newUNOP(OP_POSTDEC, 0,
- mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
-break;
-case 122:
-#line 571 "perly.y"
-{ yyval.opval = newUNOP(OP_PREINC, 0,
- mod(scalar(yyvsp[0].opval), OP_PREINC)); }
-break;
-case 123:
-#line 574 "perly.y"
-{ yyval.opval = newUNOP(OP_PREDEC, 0,
- mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
-break;
-case 124:
-#line 581 "perly.y"
-{ yyval.opval = newANONLIST(yyvsp[-1].opval); }
-break;
-case 125:
-#line 583 "perly.y"
-{ yyval.opval = newANONLIST(Nullop); }
-break;
-case 126:
-#line 585 "perly.y"
-{ yyval.opval = newANONHASH(yyvsp[-2].opval); }
-break;
-case 127:
-#line 587 "perly.y"
-{ yyval.opval = newANONHASH(Nullop); }
-break;
-case 128:
-#line 589 "perly.y"
-{ yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
-break;
-case 129:
-#line 595 "perly.y"
-{ yyval.opval = dofile(yyvsp[0].opval); }
-break;
-case 130:
-#line 597 "perly.y"
-{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
-break;
-case 131:
-#line 599 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB,
- OPf_SPECIAL|OPf_STACKED,
- prepend_elem(OP_LIST,
- scalar(newCVREF(
- (OPpENTERSUB_AMPER<<8),
- scalar(yyvsp[-2].opval)
- )),Nullop)); dep();}
-break;
-case 132:
-#line 607 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB,
- OPf_SPECIAL|OPf_STACKED,
- append_elem(OP_LIST,
- yyvsp[-1].opval,
- scalar(newCVREF(
- (OPpENTERSUB_AMPER<<8),
- scalar(yyvsp[-3].opval)
- )))); dep();}
-break;
-case 133:
-#line 616 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
- prepend_elem(OP_LIST,
- scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
-break;
-case 134:
-#line 620 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
- prepend_elem(OP_LIST,
- yyvsp[-1].opval,
- scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
-break;
-case 139:
-#line 632 "perly.y"
-{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
-break;
-case 140:
-#line 634 "perly.y"
-{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
-break;
-case 141:
-#line 636 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 142:
-#line 638 "perly.y"
-{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
-break;
-case 143:
-#line 640 "perly.y"
-{ yyval.opval = sawparens(yyvsp[-1].opval); }
-break;
-case 144:
-#line 642 "perly.y"
-{ yyval.opval = sawparens(newNULLLIST()); }
-break;
-case 145:
-#line 644 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 146:
-#line 646 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 147:
-#line 648 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 148:
-#line 650 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 149:
-#line 652 "perly.y"
-{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
-break;
-case 150:
-#line 654 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 151:
-#line 656 "perly.y"
-{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
-break;
-case 152:
-#line 658 "perly.y"
-{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
-break;
-case 153:
-#line 660 "perly.y"
-{ yyval.opval = prepend_elem(OP_ASLICE,
- newOP(OP_PUSHMARK, 0),
- newLISTOP(OP_ASLICE, 0,
- list(yyvsp[-1].opval),
- ref(yyvsp[-3].opval, OP_ASLICE))); }
-break;
-case 154:
-#line 666 "perly.y"
-{ yyval.opval = prepend_elem(OP_HSLICE,
- newOP(OP_PUSHMARK, 0),
- newLISTOP(OP_HSLICE, 0,
- list(yyvsp[-2].opval),
- ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
- PL_expect = XOPERATOR; }
-break;
-case 155:
-#line 673 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 156:
-#line 675 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
-break;
-case 157:
-#line 677 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
-break;
-case 158:
-#line 679 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
-break;
-case 159:
-#line 682 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
-break;
-case 160:
-#line 685 "perly.y"
-{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
- PL_hints |= HINT_BLOCK_SCOPE; }
-break;
-case 161:
-#line 688 "perly.y"
-{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
-break;
-case 162:
-#line 690 "perly.y"
-{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
-break;
-case 163:
-#line 692 "perly.y"
-{ yyval.opval = newOP(yyvsp[0].ival, 0); }
-break;
-case 164:
-#line 694 "perly.y"
-{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
-break;
-case 165:
-#line 696 "perly.y"
-{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
-break;
-case 166:
-#line 698 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
-break;
-case 167:
-#line 701 "perly.y"
-{ yyval.opval = newOP(yyvsp[0].ival, 0); }
-break;
-case 168:
-#line 703 "perly.y"
-{ yyval.opval = newOP(yyvsp[-2].ival, 0); }
-break;
-case 169:
-#line 705 "perly.y"
-{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
- scalar(yyvsp[0].opval)); }
-break;
-case 170:
-#line 708 "perly.y"
-{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
-break;
-case 171:
-#line 710 "perly.y"
-{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
-break;
-case 172:
-#line 712 "perly.y"
-{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
-break;
-case 173:
-#line 714 "perly.y"
-{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
-break;
-case 176:
-#line 721 "perly.y"
-{ yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
-break;
-case 177:
-#line 723 "perly.y"
-{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
-break;
-case 178:
-#line 728 "perly.y"
-{ yyval.opval = sawparens(yyvsp[-1].opval); }
-break;
-case 179:
-#line 730 "perly.y"
-{ yyval.opval = sawparens(newNULLLIST()); }
-break;
-case 180:
-#line 732 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 181:
-#line 734 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 182:
-#line 736 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 183:
-#line 741 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 184:
-#line 743 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 185:
-#line 747 "perly.y"
-{ yyval.opval = Nullop; }
-break;
-case 186:
-#line 749 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-case 187:
-#line 751 "perly.y"
-{ yyval.opval = yyvsp[-1].opval; }
-break;
-case 188:
-#line 757 "perly.y"
-{ PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
-break;
-case 189:
-#line 761 "perly.y"
-{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
-break;
-case 190:
-#line 765 "perly.y"
-{ yyval.opval = newSVREF(yyvsp[0].opval); }
-break;
-case 191:
-#line 769 "perly.y"
-{ yyval.opval = newAVREF(yyvsp[0].opval); }
-break;
-case 192:
-#line 773 "perly.y"
-{ yyval.opval = newHVREF(yyvsp[0].opval); }
-break;
-case 193:
-#line 777 "perly.y"
-{ yyval.opval = newAVREF(yyvsp[0].opval); }
-break;
-case 194:
-#line 781 "perly.y"
-{ yyval.opval = newGVREF(0,yyvsp[0].opval); }
-break;
-case 195:
-#line 786 "perly.y"
-{ yyval.opval = scalar(yyvsp[0].opval); }
-break;
-case 196:
-#line 788 "perly.y"
-{ yyval.opval = scalar(yyvsp[0].opval); }
-break;
-case 197:
-#line 790 "perly.y"
-{ yyval.opval = scope(yyvsp[0].opval); }
-break;
-case 198:
-#line 793 "perly.y"
-{ yyval.opval = yyvsp[0].opval; }
-break;
-#line 2563 "perly.c"
- }
- yyssp -= yym;
- yystate = *yyssp;
- yyvsp -= yym;
- yym = yylhs[yyn];
- if (yystate == 0 && yym == 0)
- {
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
- state %d\n", YYFINAL);
-#endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- *++yyvsp = yyval;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
- YYFINAL, yychar, yys);
- }
-#endif
- }
- if (yychar == 0) goto yyaccept;
- goto yyloop;
- }
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- yystate = yytable[yyn];
- else
- yystate = yydgoto[yym];
-#if YYDEBUG
- if (yydebug)
- PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
-to state %d\n", *yyssp, yystate);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- /*
- ** reallocate and recover. Note that pointers
- ** have to be reset, or bad things will happen
- */
- int yyps_index = (yyssp - yyss);
- int yypv_index = (yyvsp - yyvs);
- yystacksize += YYSTACKSIZE;
- ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
- ysave->yyss = Renew(yyss, yystacksize, short);
- if (!yyvs || !yyss)
- goto yyoverflow;
- yyssp = yyss + yyps_index;
- yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
-yyoverflow:
- yyerror("Out of memory for yacc stack");
-yyabort:
- retval = 1;
-yyaccept:
-#ifdef USE_ITHREADS
- LEAVE; /* force yydestruct() before we return */
-#endif
- return retval;
-}
-
-static void
-yydestruct(pTHX_ void *ptr)
-{
- struct ysv* ysave = (struct ysv*)ptr;
- if (ysave->yyss) Safefree(ysave->yyss);
- if (ysave->yyvs) Safefree(ysave->yyvs);
- yydebug = ysave->oldyydebug;
- yynerrs = ysave->oldyynerrs;
- yyerrflag = ysave->oldyyerrflag;
- yychar = ysave->oldyychar;
- yyval = ysave->oldyyval;
- yylval = ysave->oldyylval;
- Safefree(ysave);
-}
diff --git a/vms/perly_h.vms b/vms/perly_h.vms
deleted file mode 100644
index d45735fc32..0000000000
--- a/vms/perly_h.vms
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Postprocessed by vms_yfix.pl 1.11 to add VMS declarations of globals */
-#ifdef PERL_CORE
-#define WORD 257
-#define METHOD 258
-#define FUNCMETH 259
-#define THING 260
-#define PMFUNC 261
-#define PRIVATEREF 262
-#define FUNC0SUB 263
-#define UNIOPSUB 264
-#define LSTOPSUB 265
-#define LABEL 266
-#define FORMAT 267
-#define SUB 268
-#define ANONSUB 269
-#define PACKAGE 270
-#define USE 271
-#define WHILE 272
-#define UNTIL 273
-#define IF 274
-#define UNLESS 275
-#define ELSE 276
-#define ELSIF 277
-#define CONTINUE 278
-#define FOR 279
-#define LOOPEX 280
-#define DOTDOT 281
-#define FUNC0 282
-#define FUNC1 283
-#define FUNC 284
-#define UNIOP 285
-#define LSTOP 286
-#define RELOP 287
-#define EQOP 288
-#define MULOP 289
-#define ADDOP 290
-#define DOLSHARP 291
-#define DO 292
-#define HASHBRACK 293
-#define NOAMP 294
-#define LOCAL 295
-#define MY 296
-#define MYSUB 297
-#define COLONATTR 298
-#define PREC_LOW 299
-#define OROP 300
-#define DOROP 301
-#define ANDOP 302
-#define NOTOP 303
-#define ASSIGNOP 304
-#define OROR 305
-#define DORDOR 306
-#define ANDAND 307
-#define BITOROP 308
-#define BITANDOP 309
-#define SHIFTOP 310
-#define MATCHOP 311
-#define UMINUS 312
-#define REFGEN 313
-#define POWOP 314
-#define PREINC 315
-#define PREDEC 316
-#define POSTINC 317
-#define POSTDEC 318
-#define ARROW 319
-#endif /* PERL_CORE */
-
-typedef union {
- I32 ival;
- char *pval;
- OP *opval;
- GV *gvval;
-} YYSTYPE;
-#ifndef vax11c
- extern YYSTYPE yylval;
-#else
- globalref YYSTYPE yylval;
-#endif
diff --git a/vms/vms_yfix.pl b/vms/vms_yfix.pl
deleted file mode 100644
index 37fefad3cc..0000000000
--- a/vms/vms_yfix.pl
+++ /dev/null
@@ -1,70 +0,0 @@
-# This script takes the output produced from perly.y by byacc and
-# the perly.fixer shell script (i.e. the perly.c and perly.h built
-# for Unix systems) and patches them to produce copies containing
-# appropriate declarations for VMS handling of global symbols.
-#
-# If it finds that the input files are already patches for VMS,
-# it just copies the input to the output.
-#
-# Revised 20-Dec-1996 by Charles Bailey bailey@newman.upenn.edu
-
-$VERSION = '1.11';
-
-push(@ARGV,(qw[ perly.c perly.h vms/perly_c.vms vms/perly_h.vms])[@ARGV..4])
- if @ARGV < 4;
-($cinfile,$hinfile,$coutfile,$houtfile) = @ARGV;
-
-open C,$cinfile or die "Can't read $cinfile: $!\n";
-open COUT, ">$coutfile" or die "Can't create $coutfile: $!\n";
-print COUT <<EOH;
-/* Postprocessed by vms_yfix.pl $VERSION to add VMS declarations of globals */
-EOH
-while (<C>) {
- # "y.tab.c" is illegal as a VMS filename; DECC 5.2/VAX preprocessor
- # doesn't like this.
- if ( s/^#line\s+(\d+)\s+"y.tab.c"/#line $1 "y_tab.c"/ ) { 1; }
- elsif (/char \*getenv/) {
- # accomodate old VAXC's macro susbstitution pecularities
- $_ = "# ifndef getenv\n$_# endif\n";
- }
- elsif ( /getenv\("YYDEBUG"\)/ ) {
- $_ = " {\n register int saved_errno = errno;\n"
- . "#ifdef VMS\n register int saved_vaxc_errno = vaxc\$errno;\n"
- . "#else\n register int saved_vaxc_errno = 0;\n#endif\n" . $_;
- # Reset the "error" status if an optional lookup fails
- while (not /^\s+\}/) { print COUT; $_ = <C>; }
- $_ .= " else SETERRNO(saved_errno,saved_vaxc_errno);\n }\n";
- }
- else {
- # add the dEXT tag to definitions of global vars, so we'll insert
- # a globaldef when perly.c is compiled
- s/^(short|int|YYSTYPE|char \*)\s*yy/dEXT $1 yy/;
- }
- print COUT;
-}
-close C;
-close COUT;
-
-open H,$hinfile or die "Can't read $hinfile: $!\n";
-open HOUT, ">$houtfile" or die "Can't create $houtfile: $!\n";
-print HOUT <<EOH;
-/* Postprocessed by vms_yfix.pl $VERSION to add VMS declarations of globals */
-EOH
-$hfixed = 0; # keep -w happy
-while (<H>) {
- $hfixed = /globalref/ unless $hfixed; # we've already got a fixed copy
- next if /^extern YYSTYPE yylval/; # we've got a Unix version, and this
- # is what we want to replace
- print HOUT;
-}
-close H;
-
-print HOUT <<'EODECL' unless $hfixed;
-#ifndef vax11c
- extern YYSTYPE yylval;
-#else
- globalref YYSTYPE yylval;
-#endif
-EODECL
-
-close HOUT;