JBoss Native SVN: r1575 - trunk/srclib/iconv.
by jbossnative-commits@lists.jboss.org
Author: mladen.turk(a)jboss.com
Date: 2008-05-02 01:11:34 -0400 (Fri, 02 May 2008)
New Revision: 1575
Added:
trunk/srclib/iconv/apu.iconv.patch
Log:
Add iconv patch for APU
Added: trunk/srclib/iconv/apu.iconv.patch
===================================================================
--- trunk/srclib/iconv/apu.iconv.patch (rev 0)
+++ trunk/srclib/iconv/apu.iconv.patch 2008-05-02 05:11:34 UTC (rev 1575)
@@ -0,0 +1,13 @@
+--- apu.hw
++++ apu.hw
+@@ -101,8 +101,8 @@
+ #…
[View More]define APU_HAVE_SQLITE3 0
+ #define APU_HAVE_ORACLE 0
+
+-#define APU_HAVE_APR_ICONV 1
+-#define APU_HAVE_ICONV 0
++#define APU_HAVE_APR_ICONV 0
++#define APU_HAVE_ICONV 1
+ #define APR_HAS_XLATE (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
+
+ #endif /* APU_H */
[View Less]
16 years, 8 months
JBoss Native SVN: r1574 - trunk/httpd/httpd-2.2.
by jbossnative-commits@lists.jboss.org
Author: mladen.turk(a)jboss.com
Date: 2008-05-02 01:06:17 -0400 (Fri, 02 May 2008)
New Revision: 1574
Modified:
trunk/httpd/httpd-2.2/NMAKEmakefile
Log:
Copy conf.in files to conf/default so install script can re-create them
Modified: trunk/httpd/httpd-2.2/NMAKEmakefile
===================================================================
--- trunk/httpd/httpd-2.2/NMAKEmakefile 2008-05-02 05:03:25 UTC (rev 1573)
+++ trunk/httpd/httpd-2.2/NMAKEmakefile 2008-05-02 05:06:17 UTC (rev 1574)
@@ -…
[View More]108,9 +108,9 @@
@xcopy "$(SRCDIR)\docs\error" "$(BUILDERR)" /Y /Q /E
@xcopy "$(SRCDIR)\docs\icons" "$(BUILDICO)" /Y /Q /E
@xcopy "$(SRCDIR)\docs\docroot" "$(BUILDDOC)" /Y /Q /E
- @xcopy "$(SRCDIR)\docs\conf\extra" "$(BUILDCFG)\extra" /Y /Q
- -@copy /Y "$(SRCDIR)\docs\conf\httpd.conf.in" "$(BUILDCFG)" >NUL \
- -@copy /Y "$(SRCDIR)\docs\conf\charset.conv" "$(BUILDCFG)" >NUL
- -@copy /Y "$(SRCDIR)\docs\conf\mime.types" "$(BUILDCFG)" >NUL
- -@copy /Y "$(SRCDIR)\docs\conf\magic" "$(BUILDCFG)" >NUL
+ @xcopy "$(SRCDIR)\docs\conf\extra" "$(BUILDCFG)\default\extra" /Y /Q
+ -@copy /Y "$(SRCDIR)\docs\conf\httpd.conf.in" "$(BUILDCFG)\default" >NUL \
+ -@copy /Y "$(SRCDIR)\docs\conf\charset.conv" "$(BUILDCFG)\default" >NUL
+ -@copy /Y "$(SRCDIR)\docs\conf\mime.types" "$(BUILDCFG)\default" >NUL
+ -@copy /Y "$(SRCDIR)\docs\conf\magic" "$(BUILDCFG)\default" >NUL
-@copy /Y "$(SRCDIR)\docs\cgi-examples\printenv" "$(BUILDCGI)\printenv.pl" >NUL
[View Less]
16 years, 8 months
JBoss Native SVN: r1573 - trunk/httpd/httpd-2.2/installer.
by jbossnative-commits@lists.jboss.org
Author: mladen.turk(a)jboss.com
Date: 2008-05-02 01:03:25 -0400 (Fri, 02 May 2008)
New Revision: 1573
Added:
trunk/httpd/httpd-2.2/installer/install.bat
Modified:
trunk/httpd/httpd-2.2/installer/installconf.awk
Log:
Fix install awk script
Added: trunk/httpd/httpd-2.2/installer/install.bat
===================================================================
--- trunk/httpd/httpd-2.2/installer/install.bat (rev 0)
+++ trunk/httpd/httpd-2.2/installer/install.bat 2008-…
[View More]05-02 05:03:25 UTC (rev 1573)
@@ -0,0 +1,59 @@
+@echo off
+REM Copyright(c) 2007 Red Hat Middleware, LLC,
+REM and individual contributors as indicated by the @authors tag.
+REM See the copyright.txt in the distribution for a
+REM full listing of individual contributors.
+REM
+REM This library is free software; you can redistribute it and/or
+REM modify it under the terms of the GNU Lesser General Public
+REM License as published by the Free Software Foundation; either
+REM version 2 of the License, or (at your option) any later version.
+REM
+REM This library is distributed in the hope that it will be useful,
+REM but WITHOUT ANY WARRANTY; without even the implied warranty of
+REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+REM Lesser General Public License for more details.
+REM
+REM You should have received a copy of the GNU Lesser General Public
+REM License along with this library in the file COPYING.LIB;
+REM if not, write to the Free Software Foundation, Inc.,
+REM 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+REM
+REM @author Mladen Turk
+REM
+
+
+@if not "%ECHO%" == "" echo %ECHO%
+@if "%OS%" == "Windows_NT" setlocal
+
+if "%OS%" == "Windows_NT" (
+set "DIRNAME=%~dp0%"
+set "PROGNAME=%~nx0%"
+) else (
+echo Detected uncompatible Windows version.
+goto cmdEnd
+)
+
+set LOCAL_DIR=%CD%
+pushd %DIRNAME%..
+set INSTALL_HOME=%CD%
+popd
+
+echo.
+echo Running : %PROGNAME% $LastChangedDate: 2008-04-21 11:25:11 +0200 (Mon, 21 Apr 2008) $
+echo.
+echo Started : %DATE% %TIME%
+echo Params : %*
+echo.
+
+set HTTPD_SERVERNAME=localhost
+set HTTPD_DOMAINNAME=localdomain
+set HTTPD_PORT=8080
+set HTTPD_SSLPORT=8443
+
+set HTTPD_ADMIN=%USERNAME%(a)%HTTPD_SERVERNAME%.%HTTPD_DOMAINNAME%
+set HTTPD_ROOT=%INSTALL_HOME%
+
+
+nawk.exe -f installconf.awk -v WINDOWS=1 %HTTPD_DOMAINNAME% %HTTPD_SERVERNAME% %HTTPD_ADMIN% %HTTPD_PORT% %HTTPD_SSLPORT% "%HTTPD_ROOT%"
+:cmdEnd
Property changes on: trunk/httpd/httpd-2.2/installer/install.bat
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/httpd/httpd-2.2/installer/installconf.awk
===================================================================
--- trunk/httpd/httpd-2.2/installer/installconf.awk 2008-05-02 05:00:38 UTC (rev 1572)
+++ trunk/httpd/httpd-2.2/installer/installconf.awk 2008-05-02 05:03:25 UTC (rev 1573)
@@ -1,4 +1,4 @@
-#
+#/*
# InstallConf.awk Apache HTTP 2.2 script to rewrite the @@ServerRoot@@
# tags in httpd-win.conf to httpd.default.conf - then duplicate the
# conf files if they don't already exist.
@@ -10,7 +10,7 @@
# escape backslashes in the assignment. Note also, a trailing space is
# required for paths, or the trailing quote following the backslash is
# escaped, rather than parsed.
-#
+#*/
BEGIN {
domainname = ARGV[1];
servername = ARGV[2];
@@ -46,22 +46,95 @@
print " ServerRoot : " serverroot >tstfl;
filelist["httpd.conf"] = "httpd.conf.in";
- filelist["httpd-autoindex.conf"] = "httpd-autoindex.conf.in";
- filelist["httpd-dav.conf"] = "httpd-dav.conf.in";
- filelist["httpd-default.conf"] = "httpd-default.conf.in";
- filelist["httpd-info.conf"] = "httpd-info.conf.in";
- filelist["httpd-languages.conf"] = "httpd-languages.conf.in";
- filelist["httpd-manual.conf"] = "httpd-manual.conf.in";
- filelist["httpd-mpm.conf"] = "httpd-mpm.conf.in";
- filelist["httpd-multilang-errordoc.conf"] = "httpd-multilang-errordoc.conf.in";
- filelist["httpd-ssl.conf"] = "httpd-ssl.conf.in";
- filelist["httpd-userdir.conf"] = "httpd-userdir.conf.in";
- filelist["httpd-vhosts.conf"] = "httpd-vhosts.conf.in";
+ filelist["extra/httpd-autoindex.conf"] = "extra/httpd-autoindex.conf.in";
+ filelist["extra/httpd-dav.conf"] = "extra/httpd-dav.conf.in";
+ filelist["extra/httpd-default.conf"] = "extra/httpd-default.conf.in";
+ filelist["extra/httpd-info.conf"] = "extra/httpd-info.conf.in";
+ filelist["extra/httpd-languages.conf"] = "extra/httpd-languages.conf.in";
+ filelist["extra/httpd-manual.conf"] = "extra/httpd-manual.conf.in";
+ filelist["extra/httpd-mpm.conf"] = "extra/httpd-mpm.conf.in";
+ filelist["extra/httpd-multilang-errordoc.conf"] = "extra/httpd-multilang-errordoc.conf.in";
+ filelist["extra/httpd-ssl.conf"] = "extra/httpd-ssl.conf.in";
+ filelist["extra/httpd-userdir.conf"] = "extra/httpd-userdir.conf.in";
+ filelist["extra/httpd-vhosts.conf"] = "extra/httpd-vhosts.conf.in";
for ( conffile in filelist ) {
srcfl = confdefault filelist[conffile];
dstfl = confdefault conffile;
+
while ( ( getline < srcfl ) > 0 ) {
+ if (WINDOWS) {
+ if ( /@@LoadModule@@/ ) {
+ print "LoadModule actions_module modules/mod_actions.so" > dstfl;
+ print "LoadModule alias_module modules/mod_alias.so" > dstfl;
+ print "LoadModule asis_module modules/mod_asis.so" > dstfl;
+ print "LoadModule auth_basic_module modules/mod_auth_basic.so" > dstfl;
+ print "#LoadModule auth_digest_module modules/mod_auth_digest.so" > dstfl;
+ print "#LoadModule authn_alias_module modules/mod_authn_alias.so" > dstfl;
+ print "#LoadModule authn_anon_module modules/mod_authn_anon.so" > dstfl;
+ print "#LoadModule authn_dbd_module modules/mod_authn_dbd.so" > dstfl;
+ print "#LoadModule authn_dbm_module modules/mod_authn_dbm.so" > dstfl;
+ print "LoadModule authn_default_module modules/mod_authn_default.so" > dstfl;
+ print "LoadModule authn_file_module modules/mod_authn_file.so" > dstfl;
+ print "#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so" > dstfl;
+ print "#LoadModule authz_dbm_module modules/mod_authz_dbm.so" > dstfl;
+ print "LoadModule authz_default_module modules/mod_authz_default.so" > dstfl;
+ print "LoadModule authz_groupfile_module modules/mod_authz_groupfile.so" > dstfl;
+ print "LoadModule authz_host_module modules/mod_authz_host.so" > dstfl;
+ print "#LoadModule authz_owner_module modules/mod_authz_owner.so" > dstfl;
+ print "LoadModule authz_user_module modules/mod_authz_user.so" > dstfl;
+ print "LoadModule autoindex_module modules/mod_autoindex.so" > dstfl;
+ print "#LoadModule cache_module modules/mod_cache.so" > dstfl;
+ print "#LoadModule cern_meta_module modules/mod_cern_meta.so" > dstfl;
+ print "LoadModule cgi_module modules/mod_cgi.so" > dstfl;
+ print "#LoadModule charset_lite_module modules/mod_charset_lite.so" > dstfl;
+ print "#LoadModule dav_module modules/mod_dav.so" > dstfl;
+ print "#LoadModule dav_fs_module modules/mod_dav_fs.so" > dstfl;
+ print "#LoadModule dav_lock_module modules/mod_dav_lock.so" > dstfl;
+ print "#LoadModule dbd_module modules/mod_dbd.so" > dstfl;
+ print "#LoadModule deflate_module modules/mod_deflate.so" > dstfl;
+ print "LoadModule dir_module modules/mod_dir.so" > dstfl;
+ print "#LoadModule disk_cache_module modules/mod_disk_cache.so" > dstfl;
+ print "#LoadModule dumpio_module modules/mod_dumpio.so" > dstfl;
+ print "LoadModule env_module modules/mod_env.so" > dstfl;
+ print "#LoadModule expires_module modules/mod_expires.so" > dstfl;
+ print "#LoadModule ext_filter_module modules/mod_ext_filter.so" > dstfl;
+ print "#LoadModule file_cache_module modules/mod_file_cache.so" > dstfl;
+ print "#LoadModule filter_module modules/mod_filter.so" > dstfl;
+ print "#LoadModule headers_module modules/mod_headers.so" > dstfl;
+ print "#LoadModule ident_module modules/mod_ident.so" > dstfl;
+ print "#LoadModule imagemap_module modules/mod_imagemap.so" > dstfl;
+ print "LoadModule include_module modules/mod_include.so" > dstfl;
+ print "#LoadModule info_module modules/mod_info.so" > dstfl;
+ print "LoadModule isapi_module modules/mod_isapi.so" > dstfl;
+ print "#LoadModule ldap_module modules/mod_ldap.so" > dstfl;
+ print "#LoadModule logio_module modules/mod_logio.so" > dstfl;
+ print "LoadModule log_config_module modules/mod_log_config.so" > dstfl;
+ print "#LoadModule log_forensic_module modules/mod_log_forensic.so" > dstfl;
+ print "#LoadModule mem_cache_module modules/mod_mem_cache.so" > dstfl;
+ print "LoadModule mime_module modules/mod_mime.so" > dstfl;
+ print "#LoadModule mime_magic_module modules/mod_mime_magic.so" > dstfl;
+ print "LoadModule negotiation_module modules/mod_negotiation.so" > dstfl;
+ print "#LoadModule proxy_module modules/mod_proxy.so" > dstfl;
+ print "#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so" > dstfl;
+ print "#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so" > dstfl;
+ print "#LoadModule proxy_connect_module modules/mod_proxy_connect.so" > dstfl;
+ print "#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so" > dstfl;
+ print "#LoadModule proxy_http_module modules/mod_proxy_http.so" > dstfl;
+ print "#LoadModule rewrite_module modules/mod_rewrite.so" > dstfl;
+ print "LoadModule setenvif_module modules/mod_setenvif.so" > dstfl;
+ print "#LoadModule speling_module modules/mod_speling.so" > dstfl;
+ print "#LoadModule ssl_module modules/mod_ssl.so" > dstfl;
+ print "#LoadModule status_module modules/mod_status.so" > dstfl;
+ print "#LoadModule substitute_module modules/mod_substitute.so" > dstfl;
+ print "#LoadModule unique_id_module modules/mod_unique_id.so" > dstfl;
+ print "#LoadModule userdir_module modules/mod_userdir.so" > dstfl;
+ print "#LoadModule usertrack_module modules/mod_usertrack.so" > dstfl;
+ print "#LoadModule version_module modules/mod_version.so" > dstfl;
+ print "#LoadModule vhost_alias_module modules/mod_vhost_alias.so" > dstfl;
+ continue;
+ }
+ }
gsub( /@@ServerRoot@@/, serverroot );
gsub( /@exp_cgidir@/, serverroot "/cgi-bin" );
gsub( /@exp_sysconfdir@/, serverroot "/conf" );
@@ -73,6 +146,7 @@
gsub( /@exp_manualdir@/, serverroot "/manual" );
gsub( /@rel_runtimedir@/, "logs" );
gsub( /@rel_logfiledir@/, "logs" );
+ gsub( /@rel_sysconfdir@/, "conf" );
if (WINDOWS) {
gsub( /SSLMutex file:@exp_runtimedir@\/ssl_mutex/, "SSLMutex default" );
gsub( /\/home\/\*\/public_html/, "\"C:/Documents and Settings/*/My Documents/My Website\"" );
@@ -106,17 +180,15 @@
} else {
print "Failed to rewrite " srcfl "\n to " dstfl > tstfl;
}
- filelist[conffile] = "extra/";
}
- filelist["httpd.conf"] = "";
- filelist["charset.conv"] = "";
- filelist["magic"] = "";
- filelist["mime.types"] = "";
+ filelist["charset.conv"] = "charset.conv";
+ filelist["magic"] = "magic";
+ filelist["mime.types"] = "mime.types";
for ( conffile in filelist ) {
srcfl = confdefault conffile;
- dstfl = confroot filelist[conffile] conffile;
+ dstfl = confroot conffile;
if ( ( getline < dstfl ) < 0 ) {
while ( ( getline < srcfl ) > 0 ) {
print $0 > dstfl;
@@ -129,14 +201,5 @@
close(dstfl);
}
- srcfl = confdefault "installconf.awk";
- if (WINDOWS) {
- gsub(/\//, "\\", srcfl);
- }
- if (system(delcmd " \"" srcfl "\"")) {
- print "Failed to remove " srcfl > tstfl;
- } else {
- print "Successfully removed " srcfl > tstfl;
- }
close(tstfl);
}
[View Less]
16 years, 8 months
JBoss Native SVN: r1572 - trunk/build/install/nawk.
by jbossnative-commits@lists.jboss.org
Author: mladen.turk(a)jboss.com
Date: 2008-05-02 01:00:38 -0400 (Fri, 02 May 2008)
New Revision: 1572
Added:
trunk/build/install/nawk/ytab.h
Removed:
trunk/build/install/nawk/awkgram.h
Modified:
trunk/build/install/nawk/FIXES
trunk/build/install/nawk/NMAKEmakefile
trunk/build/install/nawk/awk.h
trunk/build/install/nawk/awkgram.y
trunk/build/install/nawk/b.c
trunk/build/install/nawk/lex.c
trunk/build/install/nawk/lib.c
trunk/build/install/nawk/main.c
trunk/build/…
[View More]install/nawk/makefile
trunk/build/install/nawk/maketab.c
trunk/build/install/nawk/nawk.exe
trunk/build/install/nawk/nawk.rc
trunk/build/install/nawk/parse.c
trunk/build/install/nawk/proctab.c
trunk/build/install/nawk/proto.h
trunk/build/install/nawk/run.c
trunk/build/install/nawk/tran.c
trunk/build/install/nawk/ytab.c
Log:
USe one-true-awk from FreeBSD
Modified: trunk/build/install/nawk/FIXES
===================================================================
--- trunk/build/install/nawk/FIXES 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/FIXES 2008-05-02 05:00:38 UTC (rev 1572)
@@ -1,3 +1,4 @@
+/* $OpenBSD: FIXES,v 1.13 2004/12/30 01:52:48 millert Exp $ */
/****************************************************************
Copyright (C) Lucent Technologies 1997
All Rights Reserved
@@ -25,21 +26,6 @@
This file lists all bug fixes, changes, etc., made since the AWK book
was sent to the printers in August, 1987.
-Apr 24, 2005:
- modified lib.c so that values of $0 et al are preserved in the END
- block, apparently as required by posix. thanks to havard eidnes
- for the report and code.
-
-Jan 14, 2005:
- fixed infinite loop in parsing, originally found by brian tsang.
- thanks to arnold robbins for a suggestion that started me
- rethinking it.
-
-Dec 31, 2004:
- prevent overflow of -f array in main, head off potential error in
- call of SYNTAX(), test malloc return in lib.c, all with thanks to
- todd miller.
-
Dec 22, 2004:
cranked up size of NCHARS; coverity thinks it can be overrun with
smaller size, and i think that's right. added some assertions to b.c
Modified: trunk/build/install/nawk/NMAKEmakefile
===================================================================
--- trunk/build/install/nawk/NMAKEmakefile 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/NMAKEmakefile 2008-05-02 05:00:38 UTC (rev 1572)
@@ -49,7 +49,7 @@
$(WORKDIR)\ytab.obj \
$(WORKDIR)\lex.obj
-OBJDEPS = $(SRCDIR)\*.h \
+OBJDEPS = $(SRCDIR)\*.h $(SRCDIR)\ytab.h \
NMAKEmakefile
BUILDLOC = $(PREFIX)\bin
@@ -77,14 +77,14 @@
proctab.c: maketab.exe
maketab.exe >proctab.c
-awkgram.h: awk.h proto.h awkgram.y
+ytab.h: awk.h proto.h awkgram.y
$(YACC) $(YFLAGS) awkgram.y
copy y.tab.c ytab.c
del y.tab.c
- copy y.tab.h awkgram.h
+ copy y.tab.h ytab.h
del y.tab.h
-maketab.exe: awkgram.h maketab.obj
+maketab.exe: ytab.h maketab.obj
$(LINK) $(LFLAGS) maketab.obj $(LIBS)
$(BUILDEXE): $(WORKDIR) $(OBJECTS) $(BUILDRES)
Modified: trunk/build/install/nawk/awk.h
===================================================================
--- trunk/build/install/nawk/awk.h 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/awk.h 2008-05-02 05:00:38 UTC (rev 1572)
@@ -30,7 +30,7 @@
typedef unsigned char uschar;
-#define xfree(a) { if ((a) != NULL) { free((char *) a); a = NULL; } }
+#define xfree(a) { if ((a) != NULL) { free((void *) (a)); (a) = NULL; } }
#define NN(p) ((p) ? (p) : "(null)") /* guaranteed non-null for dprintf
*/
@@ -61,7 +61,7 @@
extern Awkfloat *RSTART;
extern Awkfloat *RLENGTH;
-extern uschar *record; /* points to $0 */
+extern char *record; /* points to $0 */
extern int lineno; /* line number in awk program */
extern int errorflag; /* 1 if error has occurred */
extern int donefld; /* 1 if record broken into fields */
@@ -70,7 +70,7 @@
extern int dbg;
-extern uschar *patbeg; /* beginning of pattern matched */
+extern char *patbeg; /* beginning of pattern matched */
extern int patlen; /* length of pattern matched. set in b.c */
/* Cell: all information about a variable or constant */
@@ -126,8 +126,6 @@
#define FTOUPPER 12
#define FTOLOWER 13
#define FFLUSH 14
-#define FSYSTIME 15
-#define FSTRFTIME 16
/* Node: parse tree is made of nodes, with Cell's at bottom */
@@ -205,6 +203,8 @@
#define NCHARS (256+3) /* 256 handles 8-bit chars; 128 does 7-bit */
/* watch out in match(), etc. */
+#define NSTATES 32
+
typedef struct rrow {
long ltype; /* long avoids pointer warnings on 64-bit */
union {
@@ -216,16 +216,16 @@
} rrow;
typedef struct fa {
- unsigned int **gototab;
- uschar *out;
+ uschar gototab[NSTATES][NCHARS];
+ uschar out[NSTATES];
uschar *restr;
- int **posns;
- int state_count;
+ int *posns[NSTATES];
int anchor;
int use;
int initstat;
int curstat;
int accept;
+ int reset;
struct rrow re[1]; /* variable: actual size set by calling malloc */
} fa;
Deleted: trunk/build/install/nawk/awkgram.h
===================================================================
--- trunk/build/install/nawk/awkgram.h 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/awkgram.h 2008-05-02 05:00:38 UTC (rev 1572)
@@ -1,102 +0,0 @@
-typedef union {
- Node *p;
- Cell *cp;
- int i;
- char *s;
-} YYSTYPE;
-#define FIRSTTOKEN 257
-#define PROGRAM 258
-#define PASTAT 259
-#define PASTAT2 260
-#define XBEGIN 261
-#define XEND 262
-#define NL 263
-#define ARRAY 264
-#define MATCH 265
-#define NOTMATCH 266
-#define MATCHOP 267
-#define FINAL 268
-#define DOT 269
-#define ALL 270
-#define CCL 271
-#define NCCL 272
-#define CHAR 273
-#define OR 274
-#define STAR 275
-#define QUEST 276
-#define PLUS 277
-#define AND 278
-#define BOR 279
-#define APPEND 280
-#define EQ 281
-#define GE 282
-#define GT 283
-#define LE 284
-#define LT 285
-#define NE 286
-#define IN 287
-#define ARG 288
-#define BLTIN 289
-#define BREAK 290
-#define CLOSE 291
-#define CONTINUE 292
-#define DELETE 293
-#define DO 294
-#define EXIT 295
-#define FOR 296
-#define FUNC 297
-#define SUB 298
-#define GSUB 299
-#define IF 300
-#define INDEX 301
-#define LSUBSTR 302
-#define MATCHFCN 303
-#define NEXT 304
-#define NEXTFILE 305
-#define ADD 306
-#define MINUS 307
-#define MULT 308
-#define DIVIDE 309
-#define MOD 310
-#define ASSIGN 311
-#define ASGNOP 312
-#define ADDEQ 313
-#define SUBEQ 314
-#define MULTEQ 315
-#define DIVEQ 316
-#define MODEQ 317
-#define POWEQ 318
-#define PRINT 319
-#define PRINTF 320
-#define SPRINTF 321
-#define ELSE 322
-#define INTEST 323
-#define CONDEXPR 324
-#define POSTINCR 325
-#define PREINCR 326
-#define POSTDECR 327
-#define PREDECR 328
-#define VAR 329
-#define IVAR 330
-#define VARNF 331
-#define CALL 332
-#define NUMBER 333
-#define STRING 334
-#define REGEXPR 335
-#define GETLINE 336
-#define GENSUB 337
-#define RETURN 338
-#define SPLIT 339
-#define SUBSTR 340
-#define WHILE 341
-#define CAT 342
-#define NOT 343
-#define UMINUS 344
-#define POWER 345
-#define DECR 346
-#define INCR 347
-#define INDIRECT 348
-#define LASTTOKEN 349
-
-
-extern YYSTYPE yylval;
Modified: trunk/build/install/nawk/awkgram.y
===================================================================
--- trunk/build/install/nawk/awkgram.y 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/awkgram.y 2008-05-02 05:00:38 UTC (rev 1572)
@@ -24,7 +24,6 @@
%{
#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
#include "awk.h"
@@ -51,7 +50,7 @@
%token <i> NL ',' '{' '(' '|' ';' '/' ')' '}' '[' ']'
%token <i> ARRAY
%token <i> MATCH NOTMATCH MATCHOP
-%token <i> FINAL DOT ALL CCL NCCL CHAR OR STAR QUEST PLUS
+%token <i> FINAL DOT ALL CCL NCCL CHAR OR STAR QUEST PLUS EMPTYRE
%token <i> AND BOR APPEND EQ GE GT LE LT NE IN
%token <i> ARG BLTIN BREAK CLOSE CONTINUE DELETE DO EXIT FOR FUNC
%token <i> SUB GSUB IF INDEX LSUBSTR MATCHFCN NEXT NEXTFILE
@@ -81,7 +80,7 @@
%left GETLINE
%nonassoc APPEND EQ GE GT LE LT NE MATCHOP IN '|'
%left ARG BLTIN BREAK CALL CLOSE CONTINUE DELETE DO EXIT FOR FUNC
-%left GENSUB GSUB IF INDEX LSUBSTR MATCHFCN NEXT NUMBER
+%left GSUB IF INDEX LSUBSTR MATCHFCN NEXT NUMBER
%left PRINT PRINTF RETURN SPLIT SPRINTF STRING SUB SUBSTR
%left REGEXPR VAR VARNF IVAR WHILE '('
%left CAT
@@ -370,22 +369,6 @@
| INCR var { $$ = op1(PREINCR, $2); }
| var DECR { $$ = op1(POSTDECR, $1); }
| var INCR { $$ = op1(POSTINCR, $1); }
- | GENSUB '(' reg_expr comma pattern comma pattern ')'
- { $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, rectonode()); }
- | GENSUB '(' pattern comma pattern comma pattern ')'
- { if (constnode($3))
- $$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3), 1), $5, $7, rectonode());
- else
- $$ = op5(GENSUB, (Node *)1, $3, $5, $7, rectonode());
- }
- | GENSUB '(' reg_expr comma pattern comma pattern comma pattern ')'
- { $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, $9); }
- | GENSUB '(' pattern comma pattern comma pattern comma pattern ')'
- { if (constnode($3))
- $$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3),1), $5,$7,$9);
- else
- $$ = op5(GENSUB, (Node *)1, $3, $5, $7, $9);
- }
| GETLINE var LT term { $$ = op3(GETLINE, $2, itonp($3), $4); }
| GETLINE LT term { $$ = op3(GETLINE, NIL, itonp($2), $3); }
| GETLINE var { $$ = op3(GETLINE, $2, NIL, NIL); }
Modified: trunk/build/install/nawk/b.c
===================================================================
--- trunk/build/install/nawk/b.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/b.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -22,7 +22,7 @@
THIS SOFTWARE.
****************************************************************/
-/* lasciate ogne speranza, voi ch'entrate. */
+/* lasciate ogne speranza, voi ch'intrate. */
#define DEBUG
@@ -30,9 +30,8 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#include <assert.h>
#include "awk.h"
-#include "awkgram.h"
+#include "ytab.h"
#define HAT (NCHARS+2) /* matches ^ in regular expr */
/* NCHARS is 2**n */
@@ -45,10 +44,11 @@
#define parent(v) (v)->nnext
#define LEAF case CCL: case NCCL: case CHAR: case DOT: case FINAL: case ALL:
+#define ELEAF case EMPTYRE: /* empty string in regexp */
#define UNARY case STAR: case PLUS: case QUEST:
/* encoding in tree Nodes:
- leaf (CCL, NCCL, CHAR, DOT, FINAL, ALL):
+ leaf (CCL, NCCL, CHAR, DOT, FINAL, ALL, EMPTYRE):
left is index, right contains value or pointer to value
unary (STAR, PLUS, QUEST): left is child, right is null
binary (CAT, OR): left and right are children
@@ -69,52 +69,13 @@
static int setcnt;
static int poscnt;
-uschar *patbeg;
+char *patbeg;
int patlen;
-#define NFA 128 /* cache this many dynamic fa's */
+#define NFA 20 /* cache this many dynamic fa's */
fa *fatab[NFA];
int nfatab = 0; /* entries in fatab */
-static void
-resize_state(fa *fa, int state)
-{
- void *p;
- int i, new_count;
-
- if (++state < fa->state_count)
- return;
-
- new_count = state + 10; /* needs to be tuned */
-
- p = realloc(fa->gototab, new_count * sizeof(fa->gototab[0]));
- if (p == NULL)
- goto out;
- fa->gototab = p;
-
- p = realloc(fa->out, new_count * sizeof(fa->out[0]));
- if (p == NULL)
- goto out;
- fa->out = p;
-
- p = realloc(fa->posns, new_count * sizeof(fa->posns[0]));
- if (p == NULL)
- goto out;
- fa->posns = p;
-
- for (i = fa->state_count; i < new_count; ++i) {
- fa->gototab[i] = calloc(1, NCHARS * sizeof (**fa->gototab));
- if (fa->gototab[i] == NULL)
- goto out;
- fa->out[i] = 0;
- fa->posns[i] = NULL;
- }
- fa->state_count = new_count;
- return;
-out:
- overflo("out of memory in resize_state");
-}
-
fa *makedfa(const char *s, int anchor) /* returns dfa for reg expr s */
{
int i, use, nuse;
@@ -176,7 +137,6 @@
f->accept = poscnt-1; /* penter has computed number of positions in re */
cfoll(f, p1); /* set up follow sets */
freetr(p1);
- resize_state(f, 1);
if ((f->posns[0] = (int *) calloc(1, *(f->re[0].lfollow)*sizeof(int))) == NULL)
overflo("out of space in makedfa");
if ((f->posns[1] = (int *) calloc(1, sizeof(int))) == NULL)
@@ -192,9 +152,9 @@
{
int i, k;
- resize_state(f, 2);
f->curstat = 2;
f->out[2] = 0;
+ f->reset = 0;
k = *(f->re[0].lfollow);
xfree(f->posns[2]);
if ((f->posns[2] = (int *) calloc(1, (k+1)*sizeof(int))) == NULL)
@@ -214,10 +174,8 @@
}
f->out[0] = f->out[2];
- if (f->curstat != 2) {
- resize_state(f, f->curstat);
+ if (f->curstat != 2)
--(*f->posns[f->curstat]);
- }
}
return f->curstat;
}
@@ -225,6 +183,7 @@
void penter(Node *p) /* set up parent pointers and leaf indices */
{
switch (type(p)) {
+ ELEAF
LEAF
info(p) = poscnt;
poscnt++;
@@ -249,6 +208,7 @@
void freetr(Node *p) /* free parse tree */
{
switch (type(p)) {
+ ELEAF
LEAF
xfree(p);
break;
@@ -291,7 +251,7 @@
#define isoctdigit(c) ((c) >= '0' && (c) <= '7') /* multiple use of arg */
-int quoted(uschar **pp) /* pick up next thing after a \\ */
+int quoted(char **pp) /* pick up next thing after a \\ */
/* and increment *pp */
{
char *p = *pp;
@@ -339,20 +299,20 @@
bp = buf;
for (i = 0; (c = *p++) != 0; ) {
if (c == '\\') {
- c = quoted(&p);
+ c = quoted((char **) &p);
} else if (c == '-' && i > 0 && bp[-1] != 0) {
if (*p != 0) {
c = bp[-1];
c2 = *p++;
if (c2 == '\\')
- c2 = quoted(&p);
+ c2 = quoted((char **) &p);
if (c > c2) { /* empty; ignore */
bp--;
i--;
continue;
}
while (c < c2) {
- if (!adjbuf(&buf, &bufsz, bp-buf+2, 100, &bp, 0))
+ if (!adjbuf((char **) &buf, &bufsz, bp-buf+2, 100, (char **) &bp, "cclenter1"))
FATAL("out of space for character class [%.10s...] 2", p);
*bp++ = ++c;
i++;
@@ -360,7 +320,7 @@
continue;
}
}
- if (!adjbuf(&buf, &bufsz, bp-buf+2, 100, &bp, 0))
+ if (!adjbuf((char **) &buf, &bufsz, bp-buf+2, 100, (char **) &bp, "cclenter2"))
FATAL("out of space for character class [%.10s...] 3", p);
*bp++ = c;
i++;
@@ -382,6 +342,7 @@
int *p;
switch (type(v)) {
+ ELEAF
LEAF
f->re[info(v)].ltype = type(v);
f->re[info(v)].lval.np = right(v);
@@ -418,11 +379,12 @@
}
int first(Node *p) /* collects initially active leaves of p into setvec */
- /* returns 1 if p matches empty string */
+ /* returns 0 if p matches empty string */
{
int b, lp;
switch (type(p)) {
+ ELEAF
LEAF
lp = info(p); /* look for high-water mark of subscripts */
while (setcnt >= maxsetvec || lp >= maxsetvec) { /* guessing here! */
@@ -432,6 +394,10 @@
if (setvec == 0 || tmpset == 0)
overflo("out of space in first()");
}
+ if (type(p) == EMPTYRE) {
+ setvec[lp] = 0;
+ return(0);
+ }
if (setvec[lp] != 1) {
setvec[lp] = 1;
setcnt++;
@@ -504,19 +470,15 @@
int s, ns;
uschar *p = (uschar *) p0;
- s = f->initstat;
- assert (s < f->state_count);
-
+ s = f->reset ? makeinit(f,0) : f->initstat;
if (f->out[s])
return(1);
do {
+ /* assert(*p < NCHARS); */
if ((ns = f->gototab[s][*p]) != 0)
s = ns;
else
s = cgoto(f, s, *p);
-
- assert (s < f->state_count);
-
if (f->out[s])
return(1);
} while (*p++ != 0);
@@ -528,26 +490,29 @@
int s, ns;
uschar *p = (uschar *) p0;
uschar *q;
+ int i, k;
- s = f->initstat;
- assert(s < f->state_count);
- patbeg = p;
+ /* s = f->reset ? makeinit(f,1) : f->initstat; */
+ if (f->reset) {
+ f->initstat = s = makeinit(f,1);
+ } else {
+ s = f->initstat;
+ }
+ patbeg = (char *) p;
patlen = -1;
do {
q = p;
do {
if (f->out[s]) /* final state */
patlen = q-p;
+ /* assert(*q < NCHARS); */
if ((ns = f->gototab[s][*q]) != 0)
s = ns;
else
s = cgoto(f, s, *q);
-
- assert(s < f->state_count);
-
if (s == 1) { /* no transition */
if (patlen >= 0) {
- patbeg = p;
+ patbeg = (char *) p;
return(1);
}
else
@@ -557,11 +522,24 @@
if (f->out[s])
patlen = q-p-1; /* don't count $ */
if (patlen >= 0) {
- patbeg = p;
+ patbeg = (char *) p;
return(1);
}
nextin:
s = 2;
+ if (f->reset) {
+ for (i = 2; i <= f->curstat; i++)
+ xfree(f->posns[i]);
+ k = *f->posns[0];
+ if ((f->posns[2] = (int *) calloc(1, (k+1)*sizeof(int))) == NULL)
+ overflo("out of space in pmatch");
+ for (i = 0; i <= k; i++)
+ (f->posns[2])[i] = (f->posns[0])[i];
+ f->initstat = f->curstat = 2;
+ f->out[2] = f->out[0];
+ for (i = 0; i < NCHARS; i++)
+ f->gototab[2][i] = 0;
+ }
} while (*p++ != 0);
return (0);
}
@@ -571,26 +549,28 @@
int s, ns;
uschar *p = (uschar *) p0;
uschar *q;
+ int i, k;
- s = f->initstat;
- assert(s < f->state_count);
-
+ /* s = f->reset ? makeinit(f,1) : f->initstat; */
+ if (f->reset) {
+ f->initstat = s = makeinit(f,1);
+ } else {
+ s = f->initstat;
+ }
patlen = -1;
while (*p) {
q = p;
do {
if (f->out[s]) /* final state */
patlen = q-p;
+ /* assert(*q < NCHARS); */
if ((ns = f->gototab[s][*q]) != 0)
s = ns;
else
s = cgoto(f, s, *q);
-
- assert(s < f->state_count);
-
if (s == 1) { /* no transition */
if (patlen > 0) {
- patbeg = p;
+ patbeg = (char *) p;
return(1);
} else
goto nnextin; /* no nonempty match */
@@ -599,11 +579,24 @@
if (f->out[s])
patlen = q-p-1; /* don't count $ */
if (patlen > 0 ) {
- patbeg = p;
+ patbeg = (char *) p;
return(1);
}
nnextin:
s = 2;
+ if (f->reset) {
+ for (i = 2; i <= f->curstat; i++)
+ xfree(f->posns[i]);
+ k = *f->posns[0];
+ if ((f->posns[2] = (int *) calloc(1, (k+1)*sizeof(int))) == NULL)
+ overflo("out of state space");
+ for (i = 0; i <= k; i++)
+ (f->posns[2])[i] = (f->posns[0])[i];
+ f->initstat = f->curstat = 2;
+ f->out[2] = f->out[0];
+ for (i = 0; i < NCHARS; i++)
+ f->gototab[2][i] = 0;
+ }
p++;
}
return (0);
@@ -617,9 +610,10 @@
lastre = prestr = (uschar *) p; /* prestr points to string to be parsed */
rtok = relex();
/* GNU compatibility: an empty regexp matches anything */
- if (rtok == '\0')
+ if (rtok == '\0') {
/* FATAL("empty regular expression"); previous */
- return(op2(ALL, NIL, NIL));
+ return(op2(EMPTYRE, NIL, NIL));
+ }
np = regexp();
if (rtok != '\0')
FATAL("syntax error in regular expression %s at %s", lastre, prestr);
@@ -643,6 +637,9 @@
case ALL:
rtok = relex();
return (unary(op2(ALL, NIL, NIL)));
+ case EMPTYRE:
+ rtok = relex();
+ return (unary(op2(ALL, NIL, NIL)));
case DOT:
rtok = relex();
return (unary(op2(DOT, NIL, NIL)));
@@ -682,7 +679,7 @@
Node *concat(Node *np)
{
switch (rtok) {
- case CHAR: case DOT: case ALL: case CCL: case NCCL: case '$': case '(':
+ case CHAR: case DOT: case ALL: case EMPTYRE: case CCL: case NCCL: case '$': case '(':
return (concat(op2(CAT, np, primary())));
}
return (np);
@@ -743,7 +740,7 @@
#endif
-static const struct charclass {
+struct charclass {
const char *cc_name;
int cc_namelen;
int (*cc_func)(int);
@@ -771,7 +768,7 @@
static uschar *buf = 0;
static int bufsz = 100;
uschar *bp;
- const struct charclass *cc;
+ struct charclass *cc;
int i;
switch (c = *prestr++) {
@@ -787,7 +784,7 @@
case ')':
return c;
case '\\':
- rlxval = quoted(&prestr);
+ rlxval = quoted((char **) &prestr);
return CHAR;
default:
rlxval = c;
@@ -803,7 +800,7 @@
else
cflag = 0;
n = 2 * strlen((const char *) prestr)+1;
- if (!adjbuf(&buf, &bufsz, n, n, &bp, 0))
+ if (!adjbuf((char **) &buf, &bufsz, n, n, (char **) &bp, "relex1"))
FATAL("out of space for reg expr %.10s...", lastre);
for (; ; ) {
if ((c = *prestr++) == '\\') {
@@ -822,7 +819,7 @@
prestr[2 + cc->cc_namelen] == ']') {
prestr += cc->cc_namelen + 3;
for (i = 0; i < NCHARS; i++) {
- if (!adjbuf(&buf, &bufsz, bp-buf+1, 100, &bp, 0))
+ if (!adjbuf((char **) &buf, &bufsz, bp-buf+1, 100, (char **) &bp, "relex2"))
FATAL("out of space for reg expr %.10s...", lastre);
if (cc->cc_func(i)) {
*bp++ = i;
@@ -864,7 +861,6 @@
for (i = 0; i <= f->accept; i++)
setvec[i] = 0;
setcnt = 0;
- resize_state(f, s);
/* compute positions of gototab[s,c] into setvec */
p = f->posns[s];
for (i = 1; i <= *p; i++) {
@@ -872,6 +868,7 @@
if ((k == CHAR && c == ptoi(f->re[p[i]].lval.np))
|| (k == DOT && c != 0 && c != HAT)
|| (k == ALL && c != 0)
+ || (k == EMPTYRE && c != 0)
|| (k == CCL && member(c, (char *) f->re[p[i]].lval.up))
|| (k == NCCL && !member(c, (char *) f->re[p[i]].lval.up) && c != 0 && c != HAT)) {
q = f->re[p[i]].lfollow;
@@ -898,8 +895,6 @@
if (setvec[i]) {
tmpset[j++] = i;
}
-
- resize_state(f, f->curstat > s ? f->curstat : s);
/* tmpset == previous state? */
for (i = 1; i <= f->curstat; i++) {
p = f->posns[i];
@@ -909,15 +904,19 @@
if (tmpset[j] != p[j])
goto different;
/* setvec is state i */
- if (c != HAT)
- f->gototab[s][c] = i;
+ f->gototab[s][c] = i;
return i;
different:;
}
/* add tmpset to current set of states */
- ++(f->curstat);
- resize_state(f, f->curstat);
+ if (f->curstat >= NSTATES-1) {
+ f->curstat = 2;
+ f->reset = 1;
+ for (i = 2; i < NSTATES; i++)
+ xfree(f->posns[i]);
+ } else
+ ++(f->curstat);
for (i = 0; i < NCHARS; i++)
f->gototab[f->curstat][i] = 0;
xfree(f->posns[f->curstat]);
@@ -942,18 +941,13 @@
if (f == NULL)
return;
- for (i = 0; i < f->state_count; i++) {
- xfree(f->gototab[i])
+ for (i = 0; i <= f->curstat; i++)
xfree(f->posns[i]);
- }
for (i = 0; i <= f->accept; i++) {
xfree(f->re[i].lfollow);
if (f->re[i].ltype == CCL || f->re[i].ltype == NCCL)
xfree((f->re[i].lval.np));
}
xfree(f->restr);
- xfree(f->out);
- xfree(f->posns);
- xfree(f->gototab);
xfree(f);
}
Modified: trunk/build/install/nawk/lex.c
===================================================================
--- trunk/build/install/nawk/lex.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/lex.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -27,7 +27,7 @@
#include <string.h>
#include <ctype.h>
#include "awk.h"
-#include "awkgram.h"
+#include "ytab.h"
extern YYSTYPE yylval;
extern int infunc;
@@ -43,11 +43,7 @@
int type;
} Keyword;
-int peek(void);
-int gettok(char **, int *);
-int binsearch(const char *, const Keyword *, int);
-
-const Keyword keywords[] ={ /* keep sorted: binary searched */
+Keyword keywords[] ={ /* keep sorted: binary searched */
{ "BEGIN", XBEGIN, XBEGIN },
{ "END", XEND, XEND },
{ "NF", VARNF, VARNF },
@@ -65,7 +61,6 @@
{ "for", FOR, FOR },
{ "func", FUNC, FUNC },
{ "function", FUNC, FUNC },
- { "gensub", GENSUB, GENSUB },
{ "getline", GETLINE, GETLINE },
{ "gsub", GSUB, GSUB },
{ "if", IF, IF },
@@ -86,22 +81,15 @@
{ "sprintf", SPRINTF, SPRINTF },
{ "sqrt", FSQRT, BLTIN },
{ "srand", FSRAND, BLTIN },
- { "strftime", FSTRFTIME, BLTIN },
{ "sub", SUB, SUB },
{ "substr", SUBSTR, SUBSTR },
{ "system", FSYSTEM, BLTIN },
- { "systime", FSYSTIME, BLTIN },
{ "tolower", FTOLOWER, BLTIN },
{ "toupper", FTOUPPER, BLTIN },
{ "while", WHILE, WHILE },
};
-#define DEBUG
-#ifdef DEBUG
#define RET(x) { if(dbg)printf("lex %s\n", tokname(x)); return(x); }
-#else
-#define RET(x) return(x)
-#endif
int peek(void)
{
@@ -113,9 +101,9 @@
int gettok(char **pbuf, int *psz) /* get next input token */
{
int c, retc;
- uschar *buf = (uschar *) *pbuf;
+ char *buf = *pbuf;
int sz = *psz;
- uschar *bp = buf;
+ char *bp = buf;
c = input();
if (c == 0)
@@ -129,7 +117,7 @@
if (isalpha(c) || c == '_') { /* it's a varname */
for ( ; (c = input()) != 0; ) {
if (bp-buf >= sz)
- if (!adjbuf(&buf, &sz, bp-buf+2, 100, &bp, 0))
+ if (!adjbuf(&buf, &sz, bp-buf+2, 100, &bp, "gettok"))
FATAL( "out of space for name %.10s...", buf );
if (isalnum(c) || c == '_')
*bp++ = c;
@@ -146,7 +134,7 @@
/* read input until can't be a number */
for ( ; (c = input()) != 0; ) {
if (bp-buf >= sz)
- if (!adjbuf(&buf, &sz, bp-buf+2, 100, &bp, 0))
+ if (!adjbuf(&buf, &sz, bp-buf+2, 100, &bp, "gettok"))
FATAL( "out of space for number %.10s...", buf );
if (isdigit(c) || c == 'e' || c == 'E'
|| c == '.' || c == '+' || c == '-')
@@ -158,7 +146,7 @@
}
*bp = 0;
strtod(buf, &rem); /* parse the number */
- if (rem == (char *)buf) { /* it wasn't a valid number at all */
+ if (rem == buf) { /* it wasn't a valid number at all */
buf[1] = 0; /* return one character as token */
retc = buf[0]; /* character is its own type */
unputstr(rem+1); /* put rest back for later */
@@ -183,7 +171,7 @@
{
int c;
static char *buf = 0;
- static int bufsize = 500;
+ static int bufsize = 5; /* BUG: setting this small causes core dump! */
if (buf == 0 && (buf = (char *) malloc(bufsize)) == NULL)
FATAL( "out of space in yylex" );
@@ -195,10 +183,8 @@
reg = 0;
return regexpr();
}
-/* printf("top\n"); */
for (;;) {
c = gettok(&buf, &bufsize);
-/* printf("gettok [%s]\n", buf); */
if (c == 0)
return 0;
if (isalpha(c) || c == '_')
@@ -371,14 +357,14 @@
int string(void)
{
int c, n;
- uschar *s, *bp;
- static uschar *buf = 0;
+ char *s, *bp;
+ static char *buf = 0;
static int bufsz = 500;
if (buf == 0 && (buf = (char *) malloc(bufsz)) == NULL)
FATAL("out of space for strings");
for (bp = buf; (c = input()) != '"'; ) {
- if (!adjbuf(&buf, &bufsz, bp-buf+2, 500, &bp, 0))
+ if (!adjbuf(&buf, &bufsz, bp-buf+2, 500, &bp, "string"))
FATAL("out of space for string %.10s...", buf);
switch (c) {
case '\n':
@@ -448,7 +434,7 @@
}
-int binsearch(const char *w, const Keyword *kp, int n)
+int binsearch(char *w, Keyword *kp, int n)
{
int cond, low, mid, high;
@@ -468,16 +454,17 @@
int word(char *w)
{
- const Keyword *kp;
+ Keyword *kp;
int c, n;
n = binsearch(w, keywords, sizeof(keywords)/sizeof(keywords[0]));
+/* BUG: this ought to be inside the if; in theory could fault (daniel barrett) */
kp = keywords + n;
if (n != -1) { /* found in table */
yylval.i = kp->sub;
switch (kp->type) { /* special handling */
- case FSYSTEM:
- if (safe)
+ case BLTIN:
+ if (kp->sub == FSYSTEM && safe)
SYNTAX( "system is unsafe" );
RET(kp->type);
case FUNC:
@@ -517,15 +504,15 @@
int regexpr(void)
{
int c;
- static uschar *buf = 0;
+ static char *buf = 0;
static int bufsz = 500;
- uschar *bp;
+ char *bp;
if (buf == 0 && (buf = (char *) malloc(bufsz)) == NULL)
FATAL("out of space for rex expr");
bp = buf;
for ( ; (c = input()) != '/' && c != 0; ) {
- if (!adjbuf(&buf, &bufsz, bp-buf+3, 500, &bp, 0))
+ if (!adjbuf(&buf, &bufsz, bp-buf+3, 500, &bp, "regexpr"))
FATAL("out of space for reg expr %.10s...", buf);
if (c == '\n') {
SYNTAX( "newline in regular expression %.10s...", buf );
Modified: trunk/build/install/nawk/lib.c
===================================================================
--- trunk/build/install/nawk/lib.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/lib.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -30,11 +30,11 @@
#include <stdlib.h>
#include <stdarg.h>
#include "awk.h"
-#include "awkgram.h"
+#include "ytab.h"
FILE *infile = NULL;
char *file = "";
-uschar *record;
+char *record;
int recsize = RECSIZE;
char *fields;
int fieldssize = RECSIZE;
@@ -42,7 +42,7 @@
Cell **fldtab; /* pointers to Cells */
char inputFS[100] = " ";
-#define MAXFLD 200
+#define MAXFLD 2
int nfields = MAXFLD; /* last allocated slot for $i */
int donefld; /* 1 = implies rec broken into fields */
@@ -58,7 +58,7 @@
void recinit(unsigned int n)
{
if ( (record = (char *) malloc(n)) == NULL
- || (fields = (char *) malloc(n)) == NULL
+ || (fields = (char *) malloc(n+1)) == NULL
|| (fldtab = (Cell **) malloc((nfields+1) * sizeof(Cell *))) == NULL
|| (fldtab[0] = (Cell *) malloc(sizeof(Cell))) == NULL )
FATAL("out of space for $0 and fields");
@@ -101,10 +101,10 @@
static int firsttime = 1;
-int getrec(uschar **pbuf, int *pbufsize, int isrecord) /* get next input record */
+int getrec(char **pbuf, int *pbufsize, int isrecord) /* get next input record */
{ /* note: cares whether buf == record */
int c;
- uschar *buf = *pbuf;
+ char *buf = *pbuf;
uschar saveb0;
int bufsize = *pbufsize, savebufsize = bufsize;
@@ -173,16 +173,16 @@
void nextfile(void)
{
- if (infile != stdin)
+ if (infile != NULL && infile != stdin)
fclose(infile);
infile = NULL;
argno++;
}
-int readrec(uschar **pbuf, int *pbufsize, FILE *inf) /* read one record into buf */
+int readrec(char **pbuf, int *pbufsize, FILE *inf) /* read one record into buf */
{
int sep, c;
- uschar *rr, *buf = *pbuf;
+ char *rr, *buf = *pbuf;
int bufsize = *pbufsize;
if (strlen(*FS) >= sizeof(inputFS))
@@ -437,8 +437,8 @@
if (nematch(pfa, rec)) {
pfa->initstat = 2; /* horrible coupling to b.c */
dprintf( ("match %s (%d chars)\n", patbeg, patlen) );
- strncpy(fr, rec, ((char*)patbeg)-rec);
- fr += ((char*)patbeg) - rec + 1;
+ strncpy(fr, rec, patbeg-rec);
+ fr += patbeg - rec + 1;
*(fr-1) = '\0';
rec = patbeg + patlen;
} else {
@@ -454,8 +454,7 @@
void recbld(void) /* create $0 from $1..$NF if necessary */
{
int i;
- uschar *r;
- char *p;
+ char *r, *p;
if (donerec == 1)
return;
Modified: trunk/build/install/nawk/main.c
===================================================================
--- trunk/build/install/nawk/main.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/main.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -22,7 +22,7 @@
THIS SOFTWARE.
****************************************************************/
-const char *version = "version 20050424";
+const char *version = "version 20070501 (RedHat)";
#define DEBUG
#include <stdio.h>
@@ -31,9 +31,8 @@
#include <stdlib.h>
#include <string.h>
#include <signal.h>
-#include <locale.h>
#include "awk.h"
-#include "awkgram.h"
+#include "ytab.h"
extern int nfields;
@@ -61,17 +60,21 @@
setlocale(LC_NUMERIC, "C"); /* for parsing cmdline & prog */
cmdname = argv[0];
if (argc == 1) {
- fprintf(stderr, "Usage: %s [-f programfile | 'program'] [-Ffieldsep] [-v var=value] [files]\n", cmdname);
+ fprintf(stderr,
+ "usage: %s [-F fs] [-v var=value] [-f progfile | 'prog'] [file ...]\n",
+ cmdname);
exit(1);
}
-
- (void) setlocale(LC_ALL, "");
-
signal(SIGFPE, fpecatch);
yyin = NULL;
- symtab = makesymtab(NSYMTAB);
+ symtab = makesymtab(NSYMTAB/NSYMTAB);
while (argc > 1 && argv[1][0] == '-' && argv[1][1] != '\0') {
- if (strcmp(argv[1], "--") == 0) { /* explicit end of args */
+ if (strcmp(argv[1],"-version") == 0 || strcmp(argv[1],"--version") == 0) {
+ printf("awk %s\n", version);
+ exit(0);
+ break;
+ }
+ if (strncmp(argv[1], "--", 2) == 0) { /* explicit end of args */
argc--;
argv++;
break;
@@ -110,20 +113,12 @@
if (argv[1][2] == '\0' && --argc > 1 && isclvar((++argv)[1]))
setclvar(argv[1]);
break;
- case 'm': /* more memory: -mr=record, -mf=fields */
- /* no longer supported */
- WARNING("obsolete option %s ignored", argv[1]);
- break;
case 'd':
dbg = atoi(&argv[1][2]);
if (dbg == 0)
dbg = 1;
printf("awk %s\n", version);
break;
- case 'V': /* added for exptools "standard" */
- printf("awk %s\n", version);
- exit(0);
- break;
default:
WARNING("unknown option %s ignored", argv[1]);
break;
@@ -149,9 +144,8 @@
argv[0] = cmdname; /* put prog name at front of arglist */
dprintf( ("argc=%d, argv[0]=%s\n", argc, argv[0]) );
arginit(argc, argv);
- if (!safe) {
+ if (!safe)
envinit(envp);
- }
yyparse();
setlocale(LC_NUMERIC, ""); /* back to whatever it is locally */
if (fs)
Modified: trunk/build/install/nawk/makefile
===================================================================
--- trunk/build/install/nawk/makefile 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/makefile 2008-05-02 05:00:38 UTC (rev 1572)
@@ -27,11 +27,13 @@
CFLAGS =
CC = gcc -Wall -g -Wwrite-strings
+CC = gcc -fprofile-arcs -ftest-coverage # then gcov f1.c; cat f1.c.gcov
CC = gcc -Wall -g
-CC = /opt/SUNWspro/bin/cc
-CC = /opt/pure/purify/purify cc
CC = cc
+CC = gcc -O4
+CC = gcc -Wall -g
+
YACC = bison -y
YACC = yacc
YFLAGS = -d
@@ -45,7 +47,7 @@
lib.c run.c tran.c missing95.c
SHIP = README FIXES $(SOURCE) ytab[ch].bak makefile makefile.win \
- vcvars32.bat buildwin.bat mac.code awk.1
+ vcvars32.bat buildwin.bat awk.1
a.out: ytab.o $(OFILES)
$(CC) $(CFLAGS) ytab.o $(OFILES) $(ALLOC) -lm
@@ -83,4 +85,4 @@
@echo $(LISTING)
clean:
- rm -f a.out *.o *.obj maketab maketab.exe ytab.[ch] # proctab.c
+ rm -f a.out *.o *.obj maketab maketab.exe *.bb *.bbg *.da *.gcov *.gcno *.gcda # proctab.c
Modified: trunk/build/install/nawk/maketab.c
===================================================================
--- trunk/build/install/nawk/maketab.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/maketab.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -32,7 +32,7 @@
#include <string.h>
#include <stdlib.h>
#include "awk.h"
-#include "awkgram.h"
+#include "ytab.h"
struct xx
{ int token;
@@ -103,7 +103,6 @@
{ ARG, "arg", "arg" },
{ VARNF, "getnf", "NF" },
{ GETLINE, "getline", "getline" },
- { GENSUB, "gensub", "gensub" },
{ 0, "", "" },
};
@@ -121,30 +120,27 @@
printf("#include <stdio.h>\n");
printf("#include \"awk.h\"\n");
- printf("#include \"awkgram.h\"\n\n");
+ printf("#include \"ytab.h\"\n\n");
for (i = SIZE; --i >= 0; )
names[i] = "";
- if ((fp = fopen("awkgram.h", "r")) == NULL) {
- fprintf(stderr, "maketab can't open awkgram.h!\n");
+ if ((fp = fopen("ytab.h", "r")) == NULL) {
+ fprintf(stderr, "maketab can't open ytab.h!\n");
exit(1);
}
- printf("static const char * const printname[%d] = {\n", SIZE);
+ printf("static char *printname[%d] = {\n", SIZE);
i = 0;
while (fgets(buf, sizeof buf, fp) != NULL) {
- n = sscanf(buf, "%1c %199s %199s %d", &c, def, name, &tok);
+ n = sscanf(buf, "%1c %s %s %d", &c, def, name, &tok);
if (c != '#' || (n != 4 && strcmp(def,"define") != 0)) /* not a valid #define */
continue;
if (tok < FIRSTTOKEN || tok > LASTTOKEN) {
- fprintf(stderr, "maketab funny token %d %s ignored\n", tok, buf);
+ /* fprintf(stderr, "maketab funny token %d %s ignored\n", tok, buf); */
continue;
}
- names[tok-FIRSTTOKEN] = strdup(name);
- if (names[tok-FIRSTTOKEN] == NULL) {
- fprintf(stderr, "maketab out of space copying %s", buf);
- continue;
- }
- printf("\t\"%s\",\t/* %d */\n", name, tok);
+ names[tok-FIRSTTOKEN] = (char *) malloc(strlen(name)+1);
+ strcpy(names[tok-FIRSTTOKEN], name);
+ printf("\t(char *) \"%s\",\t/* %d */\n", name, tok);
i++;
}
printf("};\n\n");
@@ -159,7 +155,7 @@
printf("\t%s,\t/* %s */\n", table[i], names[i]);
printf("};\n\n");
- printf("const char *tokname(int n)\n"); /* print a tokname() function */
+ printf("char *tokname(int n)\n"); /* print a tokname() function */
printf("{\n");
printf(" static char buf[100];\n\n");
printf(" if (n < FIRSTTOKEN || n > LASTTOKEN) {\n");
Modified: trunk/build/install/nawk/nawk.exe
===================================================================
(Binary files differ)
Modified: trunk/build/install/nawk/nawk.rc
===================================================================
--- trunk/build/install/nawk/nawk.rc 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/nawk.rc 2008-05-02 05:00:38 UTC (rev 1572)
@@ -52,9 +52,8 @@
#define STR_COMPANY "Red Hat�, Inc."
#define STR_TRADEMARK "� Red Hat Inc."
#define STR_PRODUCT "Nawk: pattern scanning and text processing language"
-#define STR_VERISON "2008.03.23.0"
-#define CSV_VERISON 2008,3,23,0
-
+#define STR_VERISON "2007.05.01.0"
+#define CSV_VERISON 2007,5,1,0
#define PRIVATE_BUILD 0
#define PRERELEASE_BUILD 0
Modified: trunk/build/install/nawk/parse.c
===================================================================
--- trunk/build/install/nawk/parse.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/parse.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -27,7 +27,7 @@
#include <string.h>
#include <stdlib.h>
#include "awk.h"
-#include "awkgram.h"
+#include "ytab.h"
Node *nodealloc(int n)
{
@@ -93,20 +93,6 @@
return(x);
}
-Node *node5(int a, Node *b, Node *c, Node *d, Node *e, Node *f)
-{
- Node *x;
-
- x = nodealloc(5);
- x->nobj = a;
- x->narg[0] = b;
- x->narg[1] = c;
- x->narg[2] = d;
- x->narg[3] = e;
- x->narg[4] = f;
- return(x);
-}
-
Node *stat1(int a, Node *b)
{
Node *x;
@@ -179,15 +165,6 @@
return(x);
}
-Node *op5(int a, Node *b, Node *c, Node *d, Node *e, Node *f)
-{
- Node *x;
-
- x = node5(a,b,c,d,e, f);
- x->ntype = NEXPR;
- return(x);
-}
-
Node *celltonode(Cell *a, int b)
{
Node *x;
Modified: trunk/build/install/nawk/proctab.c
===================================================================
--- trunk/build/install/nawk/proctab.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/proctab.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -1,101 +1,101 @@
#include <stdio.h>
#include "awk.h"
-#include "awkgram.h"
+#include "ytab.h"
-static const char * const printname[93] = {
- "FIRSTTOKEN", /* 257 */
- "PROGRAM", /* 258 */
- "PASTAT", /* 259 */
- "PASTAT2", /* 260 */
- "XBEGIN", /* 261 */
- "XEND", /* 262 */
- "NL", /* 263 */
- "ARRAY", /* 264 */
- "MATCH", /* 265 */
- "NOTMATCH", /* 266 */
- "MATCHOP", /* 267 */
- "FINAL", /* 268 */
- "DOT", /* 269 */
- "ALL", /* 270 */
- "CCL", /* 271 */
- "NCCL", /* 272 */
- "CHAR", /* 273 */
- "OR", /* 274 */
- "STAR", /* 275 */
- "QUEST", /* 276 */
- "PLUS", /* 277 */
- "AND", /* 278 */
- "BOR", /* 279 */
- "APPEND", /* 280 */
- "EQ", /* 281 */
- "GE", /* 282 */
- "GT", /* 283 */
- "LE", /* 284 */
- "LT", /* 285 */
- "NE", /* 286 */
- "IN", /* 287 */
- "ARG", /* 288 */
- "BLTIN", /* 289 */
- "BREAK", /* 290 */
- "CLOSE", /* 291 */
- "CONTINUE", /* 292 */
- "DELETE", /* 293 */
- "DO", /* 294 */
- "EXIT", /* 295 */
- "FOR", /* 296 */
- "FUNC", /* 297 */
- "SUB", /* 298 */
- "GSUB", /* 299 */
- "IF", /* 300 */
- "INDEX", /* 301 */
- "LSUBSTR", /* 302 */
- "MATCHFCN", /* 303 */
- "NEXT", /* 304 */
- "NEXTFILE", /* 305 */
- "ADD", /* 306 */
- "MINUS", /* 307 */
- "MULT", /* 308 */
- "DIVIDE", /* 309 */
- "MOD", /* 310 */
- "ASSIGN", /* 311 */
- "ASGNOP", /* 312 */
- "ADDEQ", /* 313 */
- "SUBEQ", /* 314 */
- "MULTEQ", /* 315 */
- "DIVEQ", /* 316 */
- "MODEQ", /* 317 */
- "POWEQ", /* 318 */
- "PRINT", /* 319 */
- "PRINTF", /* 320 */
- "SPRINTF", /* 321 */
- "ELSE", /* 322 */
- "INTEST", /* 323 */
- "CONDEXPR", /* 324 */
- "POSTINCR", /* 325 */
- "PREINCR", /* 326 */
- "POSTDECR", /* 327 */
- "PREDECR", /* 328 */
- "VAR", /* 329 */
- "IVAR", /* 330 */
- "VARNF", /* 331 */
- "CALL", /* 332 */
- "NUMBER", /* 333 */
- "STRING", /* 334 */
- "REGEXPR", /* 335 */
- "GETLINE", /* 336 */
- "GENSUB", /* 337 */
- "RETURN", /* 338 */
- "SPLIT", /* 339 */
- "SUBSTR", /* 340 */
- "WHILE", /* 341 */
- "CAT", /* 342 */
- "NOT", /* 343 */
- "UMINUS", /* 344 */
- "POWER", /* 345 */
- "DECR", /* 346 */
- "INCR", /* 347 */
- "INDIRECT", /* 348 */
- "LASTTOKEN", /* 349 */
+static char *printname[93] = {
+ (char *) "FIRSTTOKEN", /* 258 */
+ (char *) "PROGRAM", /* 259 */
+ (char *) "PASTAT", /* 260 */
+ (char *) "PASTAT2", /* 261 */
+ (char *) "XBEGIN", /* 262 */
+ (char *) "XEND", /* 263 */
+ (char *) "NL", /* 264 */
+ (char *) "ARRAY", /* 265 */
+ (char *) "MATCH", /* 266 */
+ (char *) "NOTMATCH", /* 267 */
+ (char *) "MATCHOP", /* 268 */
+ (char *) "FINAL", /* 269 */
+ (char *) "DOT", /* 270 */
+ (char *) "ALL", /* 271 */
+ (char *) "CCL", /* 272 */
+ (char *) "NCCL", /* 273 */
+ (char *) "CHAR", /* 274 */
+ (char *) "OR", /* 275 */
+ (char *) "STAR", /* 276 */
+ (char *) "QUEST", /* 277 */
+ (char *) "PLUS", /* 278 */
+ (char *) "EMPTYRE", /* 279 */
+ (char *) "AND", /* 280 */
+ (char *) "BOR", /* 281 */
+ (char *) "APPEND", /* 282 */
+ (char *) "EQ", /* 283 */
+ (char *) "GE", /* 284 */
+ (char *) "GT", /* 285 */
+ (char *) "LE", /* 286 */
+ (char *) "LT", /* 287 */
+ (char *) "NE", /* 288 */
+ (char *) "IN", /* 289 */
+ (char *) "ARG", /* 290 */
+ (char *) "BLTIN", /* 291 */
+ (char *) "BREAK", /* 292 */
+ (char *) "CLOSE", /* 293 */
+ (char *) "CONTINUE", /* 294 */
+ (char *) "DELETE", /* 295 */
+ (char *) "DO", /* 296 */
+ (char *) "EXIT", /* 297 */
+ (char *) "FOR", /* 298 */
+ (char *) "FUNC", /* 299 */
+ (char *) "SUB", /* 300 */
+ (char *) "GSUB", /* 301 */
+ (char *) "IF", /* 302 */
+ (char *) "INDEX", /* 303 */
+ (char *) "LSUBSTR", /* 304 */
+ (char *) "MATCHFCN", /* 305 */
+ (char *) "NEXT", /* 306 */
+ (char *) "NEXTFILE", /* 307 */
+ (char *) "ADD", /* 308 */
+ (char *) "MINUS", /* 309 */
+ (char *) "MULT", /* 310 */
+ (char *) "DIVIDE", /* 311 */
+ (char *) "MOD", /* 312 */
+ (char *) "ASSIGN", /* 313 */
+ (char *) "ASGNOP", /* 314 */
+ (char *) "ADDEQ", /* 315 */
+ (char *) "SUBEQ", /* 316 */
+ (char *) "MULTEQ", /* 317 */
+ (char *) "DIVEQ", /* 318 */
+ (char *) "MODEQ", /* 319 */
+ (char *) "POWEQ", /* 320 */
+ (char *) "PRINT", /* 321 */
+ (char *) "PRINTF", /* 322 */
+ (char *) "SPRINTF", /* 323 */
+ (char *) "ELSE", /* 324 */
+ (char *) "INTEST", /* 325 */
+ (char *) "CONDEXPR", /* 326 */
+ (char *) "POSTINCR", /* 327 */
+ (char *) "PREINCR", /* 328 */
+ (char *) "POSTDECR", /* 329 */
+ (char *) "PREDECR", /* 330 */
+ (char *) "VAR", /* 331 */
+ (char *) "IVAR", /* 332 */
+ (char *) "VARNF", /* 333 */
+ (char *) "CALL", /* 334 */
+ (char *) "NUMBER", /* 335 */
+ (char *) "STRING", /* 336 */
+ (char *) "REGEXPR", /* 337 */
+ (char *) "GETLINE", /* 338 */
+ (char *) "SUBSTR", /* 339 */
+ (char *) "SPLIT", /* 340 */
+ (char *) "RETURN", /* 341 */
+ (char *) "WHILE", /* 342 */
+ (char *) "CAT", /* 343 */
+ (char *) "UMINUS", /* 344 */
+ (char *) "NOT", /* 345 */
+ (char *) "POWER", /* 346 */
+ (char *) "INCR", /* 347 */
+ (char *) "DECR", /* 348 */
+ (char *) "INDIRECT", /* 349 */
+ (char *) "LASTTOKEN", /* 350 */
};
@@ -121,6 +121,7 @@
nullproc, /* STAR */
nullproc, /* QUEST */
nullproc, /* PLUS */
+ nullproc, /* EMPTYRE */
boolop, /* AND */
boolop, /* BOR */
nullproc, /* APPEND */
@@ -180,22 +181,21 @@
nullproc, /* STRING */
nullproc, /* REGEXPR */
getline, /* GETLINE */
- gensub, /* GENSUB */
+ substr, /* SUBSTR */
+ split, /* SPLIT */
jump, /* RETURN */
- split, /* SPLIT */
- substr, /* SUBSTR */
whilestat, /* WHILE */
cat, /* CAT */
+ arith, /* UMINUS */
boolop, /* NOT */
- arith, /* UMINUS */
arith, /* POWER */
+ nullproc, /* INCR */
nullproc, /* DECR */
- nullproc, /* INCR */
indirect, /* INDIRECT */
nullproc, /* LASTTOKEN */
};
-const char *tokname(int n)
+char *tokname(int n)
{
static char buf[100];
Modified: trunk/build/install/nawk/proto.h
===================================================================
--- trunk/build/install/nawk/proto.h 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/proto.h 2008-05-02 05:00:38 UTC (rev 1572)
@@ -44,7 +44,7 @@
extern void penter(Node *);
extern void freetr(Node *);
extern int hexstr(char **);
-extern int quoted(uschar **);
+extern int quoted(char **);
extern char *cclenter(const char *);
extern void overflo(const char *);
extern void cfoll(fa *, Node *);
@@ -73,14 +73,12 @@
extern Node *node2(int, Node *, Node *);
extern Node *node3(int, Node *, Node *, Node *);
extern Node *node4(int, Node *, Node *, Node *, Node *);
-extern Node *node5(int, Node *, Node *, Node *, Node *, Node *);
extern Node *stat3(int, Node *, Node *, Node *);
extern Node *op2(int, Node *, Node *);
extern Node *op1(int, Node *);
extern Node *stat1(int, Node *);
extern Node *op3(int, Node *, Node *, Node *);
extern Node *op4(int, Node *, Node *, Node *, Node *);
-extern Node *op5(int, Node *, Node *, Node *, Node *, Node *);
extern Node *stat2(int, Node *, Node *);
extern Node *stat4(int, Node *, Node *, Node *, Node *);
extern Node *celltonode(Cell *, int);
@@ -90,7 +88,7 @@
extern Node *linkum(Node *, Node *);
extern void defn(Cell *, Node *, Node *);
extern int isarg(const char *);
-extern const char *tokname(int);
+extern char *tokname(int);
extern Cell *(*proctab[])(Node **, int);
extern int ptoi(void *);
extern Node *itonp(int);
@@ -118,9 +116,9 @@
extern void initgetrec(void);
extern void makefields(int, int);
extern void growfldtab(int n);
-extern int getrec(uschar **, int *, int);
+extern int getrec(char **, int *, int);
extern void nextfile(void);
-extern int readrec(uschar **buf, int *bufsize, FILE *inf);
+extern int readrec(char **buf, int *bufsize, FILE *inf);
extern char *getargv(int);
extern void setclvar(char *);
extern void fldbld(void);
@@ -143,7 +141,7 @@
extern int isclvar(const char *);
extern int is_number(const char *);
-extern int adjbuf(uschar **pb, int *sz, int min, int q, uschar **pbp, const char *what);
+extern int adjbuf(char **pb, int *sz, int min, int q, char **pbp, const char *what);
extern void run(Node *);
extern Cell *execute(Node *);
extern Cell *program(Node **, int);
@@ -192,7 +190,6 @@
extern void closeall(void);
extern Cell *sub(Node **, int);
extern Cell *gsub(Node **, int);
-extern Cell *gensub(Node **, int);
extern FILE *popen(const char *, const char *);
extern int pclose(FILE *);
Modified: trunk/build/install/nawk/run.c
===================================================================
--- trunk/build/install/nawk/run.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/run.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -32,17 +32,10 @@
#include <stdlib.h>
#include <time.h>
#include "awk.h"
-#include "awkgram.h"
+#include "ytab.h"
-#ifdef _WIN32
-extern size_t strlcat(char *, const char *, size_t);
-#endif
-
-
#define tempfree(x) if (istemp(x)) tfree(x); else
-void stdinit(void);
-
/*
#undef tempfree
@@ -56,20 +49,21 @@
}
*/
-#ifdef _NFILE
-#ifndef FOPEN_MAX
-#define FOPEN_MAX _NFILE
-#endif
-#endif
+/* do we really need these? */
+/* #ifdef _NFILE */
+/* #ifndef FOPEN_MAX */
+/* #define FOPEN_MAX _NFILE */
+/* #endif */
+/* #endif */
+/* */
+/* #ifndef FOPEN_MAX */
+/* #define FOPEN_MAX 40 */ /* max number of open files */
+/* #endif */
+/* */
+/* #ifndef RAND_MAX */
+/* #define RAND_MAX 32767 */ /* all that ansi guarantees */
+/* #endif */
-#ifndef FOPEN_MAX
-#define FOPEN_MAX 40 /* max number of open files */
-#endif
-
-#ifndef RAND_MAX
-#define RAND_MAX 32767 /* all that ansi guarantees */
-#endif
-
jmp_buf env;
extern int pairstack[];
@@ -97,7 +91,7 @@
Node *curnode = NULL; /* the node being executed, for debugging */
/* buffer memory management */
-int adjbuf(uschar **pbuf, int *psiz, int minlen, int quantum, uschar **pbptr,
+int adjbuf(char **pbuf, int *psiz, int minlen, int quantum, char **pbptr,
const char *whatrtn)
/* pbuf: address of pointer to buffer being managed
* psiz: address of buffer size variable
@@ -117,6 +111,7 @@
if (rminlen)
minlen += quantum - rminlen;
tbuf = (char *) realloc(*pbuf, minlen);
+ dprintf( ("adjbuf %s: %d %d (pbuf=%p, tbuf=%p)\n", whatrtn, *psiz, minlen, *pbuf, tbuf) );
if (tbuf == NULL) {
if (whatrtn)
FATAL("out of memory in %s", whatrtn);
@@ -132,6 +127,8 @@
void run(Node *a) /* execution of parse tree starts here */
{
+ extern void stdinit(void);
+
stdinit();
execute(a);
closeall();
@@ -223,7 +220,7 @@
Cell *call(Node **a, int n) /* function call. very kludgy and fragile */
{
- static const Cell newcopycell = { OCELL, CCOPY, 0, "", 0.0, NUM|STR|DONTFREE };
+ static Cell newcopycell = { OCELL, CCOPY, 0, "", 0.0, NUM|STR|DONTFREE };
int i, ncall, ndef;
int freed = 0; /* handles potential double freeing when fcn & param share a tempcell */
Node *x;
@@ -396,7 +393,7 @@
Cell *r, *x;
extern Cell **fldtab;
FILE *fp;
- uschar *buf;
+ char *buf;
int bufsize = recsize;
int mode;
@@ -456,7 +453,7 @@
Cell *x, *y, *z;
char *s;
Node *np;
- uschar *buf;
+ char *buf;
int bufsz = recsize;
int nsub = strlen(*SUBSEP);
@@ -468,11 +465,11 @@
for (np = a[1]; np; np = np->nnext) {
y = execute(np); /* subscript */
s = getsval(y);
- if (!adjbuf(&buf, &bufsz, strlen(buf)+strlen(s)+nsub+1, recsize, 0, 0))
+ if (!adjbuf(&buf, &bufsz, strlen(buf)+strlen(s)+nsub+1, recsize, 0, "array"))
FATAL("out of memory for %s[%s...]", x->nval, buf);
- strlcat(buf, s, bufsz);
+ strcat(buf, s);
if (np->nnext)
- strlcat(buf, *SUBSEP, bufsz);
+ strcat(buf, *SUBSEP);
tempfree(y);
}
if (!isarr(x)) {
@@ -495,7 +492,7 @@
{
Cell *x, *y;
Node *np;
- uschar *s;
+ char *s;
int nsub = strlen(*SUBSEP);
x = execute(a[0]); /* Cell* for symbol table */
@@ -508,18 +505,18 @@
x->sval = (char *) makesymtab(NSYMTAB);
} else {
int bufsz = recsize;
- uschar *buf;
- if ((buf = malloc(bufsz)) == NULL)
+ char *buf;
+ if ((buf = (char *) malloc(bufsz)) == NULL)
FATAL("out of memory in adelete");
buf[0] = 0;
for (np = a[1]; np; np = np->nnext) {
y = execute(np); /* subscript */
s = getsval(y);
- if (!adjbuf(&buf, &bufsz, strlen(buf)+strlen(s)+nsub+1, recsize, 0, 0))
+ if (!adjbuf(&buf, &bufsz, strlen(buf)+strlen(s)+nsub+1, recsize, 0, "awkdelete"))
FATAL("out of memory deleting %s[%s...]", x->nval, buf);
- strlcat(buf, s, bufsz);
+ strcat(buf, s);
if (np->nnext)
- strlcat(buf, *SUBSEP, bufsz);
+ strcat(buf, *SUBSEP);
tempfree(y);
}
freeelem(x, buf);
@@ -533,7 +530,7 @@
{
Cell *x, *ap, *k;
Node *p;
- uschar *buf;
+ char *buf;
char *s;
int bufsz = recsize;
int nsub = strlen(*SUBSEP);
@@ -547,14 +544,14 @@
ap->tval |= ARR;
ap->sval = (char *) makesymtab(NSYMTAB);
}
- if ((buf = malloc(bufsz)) == NULL) {
+ if ((buf = (char *) malloc(bufsz)) == NULL) {
FATAL("out of memory in intest");
}
buf[0] = 0;
for (p = a[0]; p; p = p->nnext) {
x = execute(p); /* expr */
s = getsval(x);
- if (!adjbuf(&buf, &bufsz, strlen(buf)+strlen(s)+nsub+1, recsize, 0, 0))
+ if (!adjbuf(&buf, &bufsz, strlen(buf)+strlen(s)+nsub+1, recsize, 0, "intest"))
FATAL("out of memory deleting %s[%s...]", x->nval, buf);
strcat(buf, s);
tempfree(x);
@@ -574,8 +571,7 @@
Cell *matchop(Node **a, int n) /* ~ and match() */
{
Cell *x, *y;
- uschar *s;
- char *t;
+ char *s, *t;
int i;
fa *pfa;
int (*mf)(fa *, const char *) = match, mode = 0;
@@ -810,13 +806,14 @@
int format(char **pbuf, int *pbufsize, const char *s, Node *a) /* printf-like conversions */
{
- uschar *fmt, *p, *t;
+ char *fmt;
+ char *p, *t;
const char *os;
Cell *x;
int flag = 0, n;
int fmtwd; /* format width */
int fmtsz = recsize;
- uschar *buf = *pbuf;
+ char *buf = *pbuf;
int bufsize = *pbufsize;
os = s;
@@ -824,7 +821,7 @@
if ((fmt = (char *) malloc(fmtsz)) == NULL)
FATAL("out of memory in format()");
while (*s) {
- adjbuf(&buf, &bufsize, MAXNUMSIZE+1+p-buf, recsize, &p, "format");
+ adjbuf(&buf, &bufsize, MAXNUMSIZE+1+p-buf, recsize, &p, "format1");
if (*s != '%') {
*p++ = *s++;
continue;
@@ -838,9 +835,9 @@
fmtwd = atoi(s+1);
if (fmtwd < 0)
fmtwd = -fmtwd;
- adjbuf(&buf, &bufsize, fmtwd+1+p-buf, recsize, &p, "format");
+ adjbuf(&buf, &bufsize, fmtwd+1+p-buf, recsize, &p, "format2");
for (t = fmt; (*t++ = *s) != '\0'; s++) {
- if (!adjbuf(&fmt, &fmtsz, MAXNUMSIZE+1+t-fmt, recsize, &t, 0))
+ if (!adjbuf(&fmt, &fmtsz, MAXNUMSIZE+1+t-fmt, recsize, &t, "format3"))
FATAL("format item %.30s... ran format() out of memory", os);
if (isalpha((uschar)*s) && *s != 'l' && *s != 'h' && *s != 'L')
break; /* the ansi panoply */
@@ -858,7 +855,7 @@
*t = '\0';
if (fmtwd < 0)
fmtwd = -fmtwd;
- adjbuf(&buf, &bufsize, fmtwd+1+p-buf, recsize, &p, "format");
+ adjbuf(&buf, &bufsize, fmtwd+1+p-buf, recsize, &p, "format4");
switch (*s) {
case 'f': case 'e': case 'g': case 'E': case 'G':
@@ -892,14 +889,14 @@
n = MAXNUMSIZE;
if (fmtwd > n)
n = fmtwd;
- adjbuf(&buf, &bufsize, 1+n+p-buf, recsize, &p, "format");
+ adjbuf(&buf, &bufsize, 1+n+p-buf, recsize, &p, "format5");
switch (flag) {
case '?': sprintf(p, "%s", fmt); /* unknown, so dump it too */
t = getsval(x);
n = strlen(t);
if (fmtwd > n)
n = fmtwd;
- adjbuf(&buf, &bufsize, 1+strlen(p)+n+p-buf, recsize, &p, "format");
+ adjbuf(&buf, &bufsize, 1+strlen(p)+n+p-buf, recsize, &p, "format6");
p += strlen(p);
sprintf(p, "%s", t);
break;
@@ -911,7 +908,7 @@
n = strlen(t);
if (fmtwd > n)
n = fmtwd;
- if (!adjbuf(&buf, &bufsize, 1+n+p-buf, recsize, &p, 0))
+ if (!adjbuf(&buf, &bufsize, 1+n+p-buf, recsize, &p, "format7"))
FATAL("huge string/format (%d chars) in printf %.30s... ran format() out of memory", n, t);
sprintf(p, fmt, t);
break;
@@ -1464,18 +1461,15 @@
return True;
}
-void flush_all(void);
-
Cell *bltin(Node **a, int n) /* builtin functions. a[0] is type, a[1] is arg list */
{
Cell *x, *y;
Awkfloat u;
- int t, sz;
- char *p, *buf, *fmt;
+ int t;
+ char *p, *buf;
Node *nextarg;
FILE *fp;
- time_t tv;
- struct tm *tm;
+ void flush_all(void);
t = ptoi(a[0]);
x = execute(a[1]);
@@ -1551,36 +1545,6 @@
else
u = fflush(fp);
break;
- case FSYSTIME:
- u = time((time_t *) 0); break;
- case FSTRFTIME:
- /* strftime([format [,timestamp]]) */
- if (nextarg) {
- y = execute(nextarg), nextarg = nextarg->nnext;
- tv = (time_t) getfval(y);
- tempfree(y);
- } else
- tv = time((time_t *) 0);
- tm = localtime(&tv);
-
- if (isrec(x)) {
- /* format argument not provided, use default */
- fmt = tostring("%a %b %d %H:%M:%S %Z %Y");
- } else
- fmt = tostring(getsval(x));
-
- sz = 32, buf = NULL;
- do {
- if ((buf = realloc(buf, (sz *= 2))) == NULL)
- FATAL("out of memory in strftime");
- } while(strftime(buf, sz, fmt, tm) == 0);
-
- y = gettemp();
- setsval(y, buf);
- free(fmt);
- free(buf);
-
- return y;
default: /* can't happen */
FATAL("illegal function type %d", t);
break;
@@ -1776,14 +1740,13 @@
fflush(files[i].fp);
}
-void backsub(uschar **pb_ptr, const uschar **sptr_ptr);
+void backsub(char **pb_ptr, char **sptr_ptr);
Cell *sub(Node **a, int nnn) /* substitute command */
{
- const uschar *sptr;
- uschar *q;
+ char *sptr, *pb, *q;
Cell *x, *y, *result;
- uschar *t, *buf, *pb;
+ char *t, *buf;
fa *pfa;
int bufsz = recsize;
@@ -1842,10 +1805,8 @@
Cell *gsub(Node **a, int nnn) /* global substitute */
{
Cell *x, *y;
- const char *rptr;
- const uschar *sptr;
- uschar *t, *q;
- uschar *pb, *buf;
+ char *rptr, *sptr, *t, *pb, *q;
+ char *buf;
fa *pfa;
int mflag, tempstat, num;
int bufsz = recsize;
@@ -1941,149 +1902,9 @@
return(x);
}
-Cell *gensub(Node **a, int nnn) /* global selective substitute */
- /* XXX incomplete - doesn't support backreferences \0 ... \9 */
-{
- Cell *x, *y, *res, *h;
- char *rptr;
- const uschar *sptr;
- uschar *q, *pb, *t, *buf;
- fa *pfa;
- int mflag, tempstat, num, whichm;
- int bufsz = recsize;
-
- if ((buf = (char *) malloc(bufsz)) == NULL)
- FATAL("out of memory in gensub");
- mflag = 0; /* if mflag == 0, can replace empty string */
- num = 0;
- x = execute(a[4]); /* source string */
- t = getsval(x);
- res = copycell(x); /* target string - initially copy of source */
- if (a[0] == 0) /* 0 => a[1] is already-compiled regexpr */
- pfa = (fa *) a[1]; /* regular expression */
- else {
- y = execute(a[1]);
- pfa = makedfa(getsval(y), 1);
- tempfree(y);
- }
- y = execute(a[2]); /* replacement string */
- h = execute(a[3]); /* which matches should be replaced */
- sptr = getsval(h);
- if (sptr[0] == 'g' || sptr[0] == 'G')
- whichm = -1;
- else {
- /*
- * The specified number is index of replacement, starting
- * from 1. GNU awk treats index lower than 0 same as
- * 1, we do same for compatibility.
- */
- whichm = (int) getfval(h) - 1;
- if (whichm < 0)
- whichm = 0;
- }
- tempfree(h);
-
- if (pmatch(pfa, t)) {
- char *sl;
-
- tempstat = pfa->initstat;
- pfa->initstat = 2;
- pb = buf;
- rptr = getsval(y);
- /*
- * XXX if there are any backreferences in subst string,
- * complain now.
- */
- for(sl=rptr; (sl = strchr(sl, '\\')) && sl[1]; sl++) {
- if (strchr("0123456789", sl[1])) {
- FATAL("gensub doesn't support backreferences (subst \"%s\")", rptr);
- }
- }
-
- do {
- if (whichm >= 0 && whichm != num) {
- num++;
- adjbuf(&buf, &bufsz, (pb - buf) + (patbeg - t) + patlen, recsize, &pb, "gensub");
-
- /* copy the part of string up to and including
- * match to output buffer */
- while (t < patbeg + patlen)
- *pb++ = *t++;
- continue;
- }
-
- if (patlen == 0 && *patbeg != 0) { /* matched empty string */
- if (mflag == 0) { /* can replace empty */
- num++;
- sptr = rptr;
- while (*sptr != 0) {
- adjbuf(&buf, &bufsz, 5+pb-buf, recsize, &pb, "gensub");
- if (*sptr == '\\') {
- backsub(&pb, &sptr);
- } else if (*sptr == '&') {
- sptr++;
- adjbuf(&buf, &bufsz, 1+patlen+pb-buf, recsize, &pb, "gensub");
- for (q = patbeg; q < patbeg+patlen; )
- *pb++ = *q++;
- } else
- *pb++ = *sptr++;
- }
- }
- if (*t == 0) /* at end */
- goto done;
- adjbuf(&buf, &bufsz, 2+pb-buf, recsize, &pb, "gensub");
- *pb++ = *t++;
- if (pb > buf + bufsz) /* BUG: not sure of this test */
- FATAL("gensub result0 %.30s too big; can't happen", buf);
- mflag = 0;
- }
- else { /* matched nonempty string */
- num++;
- sptr = t;
- adjbuf(&buf, &bufsz, 1+(patbeg-sptr)+pb-buf, recsize, &pb, "gensub");
- while (sptr < patbeg)
- *pb++ = *sptr++;
- sptr = rptr;
- while (*sptr != 0) {
- adjbuf(&buf, &bufsz, 5+pb-buf, recsize, &pb, "gensub");
- if (*sptr == '\\') {
- backsub(&pb, &sptr);
- } else if (*sptr == '&') {
- sptr++;
- adjbuf(&buf, &bufsz, 1+patlen+pb-buf, recsize, &pb, "gensub");
- for (q = patbeg; q < patbeg+patlen; )
- *pb++ = *q++;
- } else
- *pb++ = *sptr++;
- }
- t = patbeg + patlen;
- if (patlen == 0 || *t == 0 || *(t-1) == 0)
- goto done;
- if (pb > buf + bufsz)
- FATAL("gensub result1 %.30s too big; can't happen", buf);
- mflag = 1;
- }
- } while (pmatch(pfa,t));
- sptr = t;
- adjbuf(&buf, &bufsz, 1+strlen(sptr)+pb-buf, 0, &pb, "gensub");
- while ((*pb++ = *sptr++) != 0)
- ;
- done: if (pb > buf + bufsz)
- FATAL("gensub result2 %.30s too big; can't happen", buf);
- *pb = '\0';
- setsval(res, buf);
- pfa->initstat = tempstat;
- }
- tempfree(x);
- tempfree(y);
- free(buf);
- return(res);
-}
-
-void backsub(uschar **pb_ptr, const uschar **sptr_ptr)/* handle \\& variations */
+void backsub(char **pb_ptr, char **sptr_ptr) /* handle \\& variations */
{ /* sptr[0] == '\\' */
- uschar *pb = *pb_ptr;
- const uschar *sptr = *sptr_ptr;
+ char *pb = *pb_ptr, *sptr = *sptr_ptr;
if (sptr[1] == '\\') {
if (sptr[2] == '\\' && sptr[3] == '&') { /* \\\& -> \& */
Modified: trunk/build/install/nawk/tran.c
===================================================================
--- trunk/build/install/nawk/tran.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/tran.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -29,7 +29,7 @@
#include <string.h>
#include <stdlib.h>
#include "awk.h"
-#include "awkgram.h"
+#include "ytab.h"
#define FULLTAB 2 /* rehash when table gets this x full */
#define GROWTAB 4 /* grow table by this factor */
@@ -210,10 +210,7 @@
int h;
Cell *p;
- if (n == NULL)
- n = "";
-
- if ((p = lookup(n, tp)) != NULL) {
+ if (n != NULL && (p = lookup(n, tp)) != NULL) {
dprintf( ("setsymtab found %p: n=%s s=\"%s\" f=%g t=%o\n",
p, NN(p->nval), NN(p->sval), p->fval, p->tval) );
return(p);
@@ -285,7 +282,6 @@
{
int fldno;
- f += 0.0; /* normalise negative zero to positive zero */
if ((vp->tval & (NUM | STR)) == 0)
funnyvar(vp, "assign to");
if (isfld(vp)) {
@@ -336,10 +332,10 @@
donerec = 1;
}
t = tostring(s); /* in case it's self-assign */
- vp->tval &= ~NUM;
- vp->tval |= STR;
if (freeable(vp))
xfree(vp->sval);
+ vp->tval &= ~NUM;
+ vp->tval |= STR;
vp->tval &= ~DONTFREE;
dprintf( ("setsval %p: %s = \"%s (%p) \", t=%o r,f=%d,%d\n",
vp, NN(vp->nval), t,t, vp->tval, donerec, donefld) );
@@ -404,7 +400,7 @@
{
char *p;
- p = strdup(s);
+ p = (char *) malloc(strlen(s)+1);
if (p == NULL)
FATAL("out of space in tostring on %s", s);
strcpy(p, s);
Modified: trunk/build/install/nawk/ytab.c
===================================================================
--- trunk/build/install/nawk/ytab.c 2008-04-30 09:24:39 UTC (rev 1571)
+++ trunk/build/install/nawk/ytab.c 2008-05-02 05:00:38 UTC (rev 1572)
@@ -1,108 +1,268 @@
+/* A Bison parser, made by GNU Bison 2.3. */
-/* A Bison parser, made from awkgram.y
- by GNU Bison version 1.27
- */
+/* Skeleton implementation for Bison's Yacc-like parsers in C
-#define YYBISON 1 /* Identify Bison output. */
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
-#define FIRSTTOKEN 257
-#define PROGRAM 258
-#define PASTAT 259
-#define PASTAT2 260
-#define XBEGIN 261
-#define XEND 262
-#define NL 263
-#define ARRAY 264
-#define MATCH 265
-#define NOTMATCH 266
-#define MATCHOP 267
-#define FINAL 268
-#define DOT 269
-#define ALL 270
-#define CCL 271
-#define NCCL 272
-#define CHAR 273
-#define OR 274
-#define STAR 275
-#define QUEST 276
-#define PLUS 277
-#define AND 278
-#define BOR 279
-#define APPEND 280
-#define EQ 281
-#define GE 282
-#define GT 283
-#define LE 284
-#define LT 285
-#define NE 286
-#define IN 287
-#define ARG 288
-#define BLTIN 289
-#define BREAK 290
-#define CLOSE 291
-#define CONTINUE 292
-#define DELETE 293
-#define DO 294
-#define EXIT 295
-#define FOR 296
-#define FUNC 297
-#define SUB 298
-#define GSUB 299
-#define IF 300
-#define INDEX 301
-#define LSUBSTR 302
-#define MATCHFCN 303
-#define NEXT 304
-#define NEXTFILE 305
-#define ADD 306
-#define MINUS 307
-#define MULT 308
-#define DIVIDE 309
-#define MOD 310
-#define ASSIGN 311
-#define ASGNOP 312
-#define ADDEQ 313
-#define SUBEQ 314
-#define MULTEQ 315
-#define DIVEQ 316
-#define MODEQ 317
-#define POWEQ 318
-#define PRINT 319
-#define PRINTF 320
-#define SPRINTF 321
-#define ELSE 322
-#define INTEST 323
-#define CONDEXPR 324
-#define POSTINCR 325
-#define PREINCR 326
-#define POSTDECR 327
-#define PREDECR 328
-#define VAR 329
-#define IVAR 330
-#define VARNF 331
-#define CALL 332
-#define NUMBER 333
-#define STRING 334
-#define REGEXPR 335
-#define GETLINE 336
-#define GENSUB 337
-#define RETURN 338
-#define SPLIT 339
-#define SUBSTR 340
-#define WHILE 341
-#define CAT 342
-#define NOT 343
-#define UMINUS 344
-#define POWER 345
-#define DECR 346
-#define INCR 347
-#define INDIRECT 348
-#define LASTTOKEN 349
+ 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., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Bison version. */
+#define YYBISON_VERSION "2.3"
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 0
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ FIRSTTOKEN = 258,
+ PROGRAM = 259,
+ PASTAT = 260,
+ PASTAT2 = 261,
+ XBEGIN = 262,
+ XEND = 263,
+ NL = 264,
+ ARRAY = 265,
+ MATCH = 266,
+ NOTMATCH = 267,
+ MATCHOP = 268,
+ FINAL = 269,
+ DOT = 270,
+ ALL = 271,
+ CCL = 272,
+ NCCL = 273,
+ CHAR = 274,
+ OR = 275,
+ STAR = 276,
+ QUEST = 277,
+ PLUS = 278,
+ EMPTYRE = 279,
+ AND = 280,
+ BOR = 281,
+ APPEND = 282,
+ EQ = 283,
+ GE = 284,
+ GT = 285,
+ LE = 286,
+ LT = 287,
+ NE = 288,
+ IN = 289,
+ ARG = 290,
+ BLTIN = 291,
+ BREAK = 292,
+ CLOSE = 293,
+ CONTINUE = 294,
+ DELETE = 295,
+ DO = 296,
+ EXIT = 297,
+ FOR = 298,
+ FUNC = 299,
+ SUB = 300,
+ GSUB = 301,
+ IF = 302,
+ INDEX = 303,
+ LSUBSTR = 304,
+ MATCHFCN = 305,
+ NEXT = 306,
+ NEXTFILE = 307,
+ ADD = 308,
+ MINUS = 309,
+ MULT = 310,
+ DIVIDE = 311,
+ MOD = 312,
+ ASSIGN = 313,
+ ASGNOP = 314,
+ ADDEQ = 315,
+ SUBEQ = 316,
+ MULTEQ = 317,
+ DIVEQ = 318,
+ MODEQ = 319,
+ POWEQ = 320,
+ PRINT = 321,
+ PRINTF = 322,
+ SPRINTF = 323,
+ ELSE = 324,
+ INTEST = 325,
+ CONDEXPR = 326,
+ POSTINCR = 327,
+ PREINCR = 328,
+ POSTDECR = 329,
+ PREDECR = 330,
+ VAR = 331,
+ IVAR = 332,
+ VARNF = 333,
+ CALL = 334,
+ NUMBER = 335,
+ STRING = 336,
+ REGEXPR = 337,
+ GETLINE = 338,
+ SUBSTR = 339,
+ SPLIT = 340,
+ RETURN = 341,
+ WHILE = 342,
+ CAT = 343,
+ UMINUS = 344,
+ NOT = 345,
+ POWER = 346,
+ INCR = 347,
+ DECR = 348,
+ INDIRECT = 349,
+ LASTTOKEN = 350
+ };
+#endif
+/* Tokens. */
+#define FIRSTTOKEN 258
+#define PROGRAM 259
+#define PASTAT 260
+#define PASTAT2 261
+#define XBEGIN 262
+#define XEND 263
+#define NL 264
+#define ARRAY 265
+#define MATCH 266
+#define NOTMATCH 267
+#define MATCHOP 268
+#define FINAL 269
+#define DOT 270
+#define ALL 271
+#define CCL 272
+#define NCCL 273
+#define CHAR 274
+#define OR 275
+#define STAR 276
+#define QUEST 277
+#define PLUS 278
+#define EMPTYRE 279
+#define AND 280
+#define BOR 281
+#define APPEND 282
+#define EQ 283
+#define GE 284
+#define GT 285
+#define LE 286
+#define LT 287
+#define NE 288
+#define IN 289
+#define ARG 290
+#define BLTIN 291
+#define BREAK 292
+#define CLOSE 293
+#define CONTINUE 294
+#define DELETE 295
+#define DO 296
+#define EXIT 297
+#define FOR 298
+#define FUNC 299
+#define SUB 300
+#define GSUB 301
+#define IF 302
+#define INDEX 303
+#define LSUBSTR 304
+#define MATCHFCN 305
+#define NEXT 306
+#define NEXTFILE 307
+#define ADD 308
+#define MINUS 309
+#define MULT 310
+#define DIVIDE 311
+#define MOD 312
+#define ASSIGN 313
+#define ASGNOP 314
+#define ADDEQ 315
+#define SUBEQ 316
+#define MULTEQ 317
+#define DIVEQ 318
+#define MODEQ 319
+#define POWEQ 320
+#define PRINT 321
+#define PRINTF 322
+#define SPRINTF 323
+#define ELSE 324
+#define INTEST 325
+#define CONDEXPR 326
+#define POSTINCR 327
+#define PREINCR 328
+#define POSTDECR 329
+#define PREDECR 330
+#define VAR 331
+#define IVAR 332
+#define VARNF 333
+#define CALL 334
+#define NUMBER 335
+#define STRING 336
+#define REGEXPR 337
+#define GETLINE 338
+#define SUBSTR 339
+#define SPLIT 340
+#define RETURN 341
+#define WHILE 342
+#define CAT 343
+#define UMINUS 344
+#define NOT 345
+#define POWER 346
+#define INCR 347
+#define DECR 348
+#define INDIRECT 349
+#define LASTTOKEN 350
+
+
+
+
+/* Copy the first part of user declarations. */
#line 25 "awkgram.y"
#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
#include "awk.h"
@@ -116,1680 +276,2246 @@
char *curfname = 0; /* current function name */
Node *arglist = 0; /* list of args for current function */
-#line 42 "awkgram.y"
-typedef union {
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 41 "awkgram.y"
+{
Node *p;
Cell *cp;
int i;
char *s;
-} YYSTYPE;
-#include <stdio.h>
+}
+/* Line 187 of yacc.c. */
+#line 309 "y.tab.c"
+ YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
+
+
+/* Copy the second part of user declarations. */
+
+
+/* Line 216 of yacc.c. */
+#line 322 "y.tab.c"
+
+#ifdef short
+# undef short
#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
#endif
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
-#define YYFINAL 387
-#define YYFLAG -32768
-#define YYNTBASE 112
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
-#define YYTRANSLATE(x) ((unsigned)(x) <= 349 ? yytranslate[x] : 160)
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# else
+# define YYSIZE_T unsigned int
+# endif
+#endif
-static const 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, 2, 2, 2, 2, 104, 2, 2, 12,
- 16, 103, 101, 10, 102, 2, 15, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 93, 14, 2,
- 2, 2, 92, 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,
- 18, 2, 19, 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, 11, 13, 17, 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, 2, 1, 3, 4, 5, 6,
- 7, 8, 9, 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, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 94, 95, 96, 97, 98,
- 99, 100, 105, 106, 107, 108, 109, 110, 111
-};
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-#if YYDEBUG != 0
-static const short yyprhs[] = { 0,
- 0, 2, 4, 6, 9, 11, 14, 16, 19, 21,
- 24, 26, 29, 30, 43, 44, 55, 56, 65, 67,
- 69, 74, 76, 79, 81, 84, 85, 87, 88, 90,
- 91, 93, 95, 99, 101, 103, 108, 112, 119, 123,
- 128, 133, 134, 144, 146, 150, 152, 156, 160, 166,
- 170, 174, 178, 182, 186, 192, 195, 197, 199, 203,
- 209, 213, 217, 221, 225, 229, 233, 237, 241, 245,
- 249, 253, 259, 264, 268, 271, 273, 275, 279, 283,
- 285, 289, 290, 292, 296, 298, 300, 302, 304, 307,
- 310, 312, 315, 317, 320, 321, 326, 328, 331, 336,
- 341, 346, 349, 355, 358, 360, 362, 364, 367, 370,
- 373, 374, 375, 385, 389, 392, 394, 399, 402, 406,
- 409, 412, 416, 419, 422, 423, 427, 430, 432, 435,
- 437, 439, 444, 448, 452, 456, 460, 464, 468, 471,
- 474, 477, 481, 486, 488, 492, 497, 500, 503, 506,
- 509, 512, 521, 530, 541, 552, 557, 561, 564, 566,
- 573, 580, 584, 591, 598, 600, 609, 618, 625, 630,
- 632, 639, 646, 655, 664, 673, 680, 682, 684, 689,
- 691, 694, 695, 697, 701, 703, 705, 707
-};
+#ifndef YY_
+# if YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
+# endif
+#endif
-static const short yyrhs[] = { 129,
- 0, 1, 0, 34, 0, 113, 9, 0, 35, 0,
- 114, 9, 0, 10, 0, 115, 9, 0, 50, 0,
- 116, 9, 0, 78, 0, 117, 9, 0, 0, 52,
- 12, 128, 14, 126, 136, 14, 126, 128, 146, 119,
- 149, 0, 0, 52, 12, 128, 14, 14, 126, 128,
- 146, 120, 149, 0, 0, 52, 12, 158, 43, 158,
- 146, 121, 149, 0, 85, 0, 88, 0, 56, 12,
- 136, 146, 0, 11, 0, 124, 9, 0, 9, 0,
- 125, 9, 0, 0, 125, 0, 0, 141, 0, 0,
- 147, 0, 127, 0, 127, 133, 127, 0, 136, 0,
- 130, 0, 130, 124, 153, 17, 0, 130, 10, 130,
- 0, 130, 10, 130, 124, 153, 17, 0, 124, 153,
- 17, 0, 7, 124, 153, 17, 0, 8, 124, 153,
- 17, 0, 0, 53, 122, 12, 157, 146, 132, 124,
- 153, 17, 0, 131, 0, 133, 127, 131, 0, 136,
- 0, 134, 115, 136, 0, 156, 68, 135, 0, 135,
- 92, 135, 93, 135, 0, 135, 114, 135, 0, 135,
- 113, 135, 0, 135, 23, 144, 0, 135, 23, 135,
- 0, 135, 43, 158, 0, 12, 137, 16, 43, 158,
- 0, 135, 155, 0, 143, 0, 155, 0, 156, 68,
- 136, 0, 136, 92, 136, 93, 136, 0, 136, 114,
- 136, 0, 136, 113, 136, 0, 136, 37, 136, 0,
- 136, 38, 136, 0, 136, 39, 136, 0, 136, 40,
- 136, 0, 136, 41, 136, 0, 136, 42, 136, 0,
- 136, 23, 144, 0, 136, 23, 136, 0, 136, 43,
- 158, 0, 12, 137, 16, 43, 158, 0, 136, 13,
- 94, 156, 0, 136, 13, 94, 0, 136, 155, 0,
- 143, 0, 155, 0, 136, 115, 136, 0, 137, 115,
- 136, 0, 135, 0, 138, 115, 135, 0, 0, 138,
- 0, 12, 137, 16, 0, 75, 0, 76, 0, 9,
- 0, 14, 0, 141, 9, 0, 141, 14, 0, 17,
- 0, 142, 9, 0, 144, 0, 105, 143, 0, 0,
- 15, 145, 91, 15, 0, 16, 0, 146, 9, 0,
- 140, 139, 13, 155, 0, 140, 139, 36, 155, 0,
- 140, 139, 39, 155, 0, 140, 139, 0, 49, 158,
- 18, 134, 19, 0, 49, 158, 0, 136, 0, 1,
- 0, 125, 0, 14, 126, 0, 46, 148, 0, 48,
- 148, 0, 0, 0, 116, 150, 149, 151, 99, 12,
- 136, 16, 148, 0, 51, 136, 148, 0, 51, 148,
- 0, 118, 0, 123, 149, 117, 149, 0, 123, 149,
- 0, 124, 153, 142, 0, 60, 148, 0, 61, 148,
- 0, 96, 136, 148, 0, 96, 148, 0, 147, 148,
- 0, 0, 159, 152, 149, 0, 14, 126, 0, 149,
- 0, 153, 149, 0, 54, 0, 55, 0, 155, 15,
- 68, 155, 0, 155, 101, 155, 0, 155, 102, 155,
- 0, 155, 103, 155, 0, 155, 15, 155, 0, 155,
- 104, 155, 0, 155, 107, 155, 0, 102, 155, 0,
- 101, 155, 0, 105, 155, 0, 45, 12, 16, 0,
- 45, 12, 134, 16, 0, 45, 0, 88, 12, 16,
- 0, 88, 12, 134, 16, 0, 47, 155, 0, 108,
- 156, 0, 109, 156, 0, 156, 108, 0, 156, 109,
- 0, 95, 12, 144, 115, 136, 115, 136, 16, 0,
- 95, 12, 136, 115, 136, 115, 136, 16, 0, 95,
- 12, 144, 115, 136, 115, 136, 115, 136, 16, 0,
- 95, 12, 136, 115, 136, 115, 136, 115, 136, 16,
- 0, 94, 156, 41, 155, 0, 94, 41, 155, 0,
- 94, 156, 0, 94, 0, 57, 12, 136, 115, 136,
- 16, 0, 57, 12, 136, 115, 144, 16, 0, 12,
- 136, 16, 0, 59, 12, 136, 115, 144, 16, 0,
- 59, 12, 136, 115, 136, 16, 0, 89, 0, 97,
- 12, 136, 115, 158, 115, 136, 16, 0, 97, 12,
- 136, 115, 158, 115, 144, 16, 0, 97, 12, 136,
- 115, 158, 16, 0, 77, 12, 134, 16, 0, 90,
- 0, 154, 12, 144, 115, 136, 16, 0, 154, 12,
- 136, 115, 136, 16, 0, 154, 12, 144, 115, 136,
- 115, 156, 16, 0, 154, 12, 136, 115, 136, 115,
- 156, 16, 0, 98, 12, 136, 115, 136, 115, 136,
- 16, 0, 98, 12, 136, 115, 136, 16, 0, 156,
- 0, 158, 0, 158, 18, 134, 19, 0, 86, 0,
- 110, 155, 0, 0, 85, 0, 157, 115, 85, 0,
- 85, 0, 44, 0, 87, 0, 99, 12, 136, 146,
- 0
-};
+/* Suppress unused-variable warnings by "using" E. */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+/* Identity function, used to suppress warnings about constant conditions. */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+ int i;
#endif
+{
+ return i;
+}
+#endif
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
- 98, 101, 104, 105, 108, 109, 112, 113, 116, 117,
- 120, 121, 124, 126, 127, 128, 129, 130, 133, 135,
- 138, 142, 143, 146, 147, 150, 152, 155, 157, 161,
- 163, 166, 168, 171, 175, 177, 178, 179, 180, 181,
- 183, 185, 185, 189, 191, 194, 196, 199, 201, 203,
- 205, 207, 208, 213, 214, 215, 216, 217, 220, 222,
- 224, 226, 228, 229, 230, 231, 232, 233, 234, 235,
- 240, 241, 242, 245, 248, 249, 250, 253, 255, 258,
- 260, 263, 265, 266, 269, 270, 273, 274, 274, 274,
- 277, 278, 281, 284, 287, 288, 291, 292, 295, 299,
- 302, 305, 306, 307, 308, 309, 312, 314, 317, 320,
- 322, 322, 322, 324, 325, 326, 327, 328, 329, 330,
- 333, 336, 337, 338, 339, 339, 340, 343, 345, 348,
- 349, 352, 354, 355, 356, 357, 358, 359, 360, 361,
- 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
- 372, 373, 375, 381, 383, 389, 390, 391, 392, 393,
- 395, 398, 399, 401, 406, 407, 409, 411, 413, 414,
- 415, 417, 422, 424, 429, 431, 433, 436, 438, 439,
- 440, 443, 445, 446, 451, 453, 454, 458
-};
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+# endif
+# else
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined _STDLIB_H \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+ && (! defined __cplusplus \
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined __GNUC__ && 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (YYID (0))
+
#endif
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 8
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 4600
-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 112
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 49
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 185
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 367
-static const char * const yytname[] = { "$","error","$undefined.","FIRSTTOKEN",
-"PROGRAM","PASTAT","PASTAT2","XBEGIN","XEND","NL","','","'{'","'('","'|'","';'",
-"'/'","')'","'}'","'['","']'","ARRAY","MATCH","NOTMATCH","MATCHOP","FINAL","DOT",
-"ALL","CCL","NCCL","CHAR","OR","STAR","QUEST","PLUS","AND","BOR","APPEND","EQ",
-"GE","GT","LE","LT","NE","IN","ARG","BLTIN","BREAK","CLOSE","CONTINUE","DELETE",
-"DO","EXIT","FOR","FUNC","SUB","GSUB","IF","INDEX","LSUBSTR","MATCHFCN","NEXT",
-"NEXTFILE","ADD","MINUS","MULT","DIVIDE","MOD","ASSIGN","ASGNOP","ADDEQ","SUBEQ",
-"MULTEQ","DIVEQ","MODEQ","POWEQ","PRINT","PRINTF","SPRINTF","ELSE","INTEST",
-"CONDEXPR","POSTINCR","PREINCR","POSTDECR","PREDECR","VAR","IVAR","VARNF","CALL",
-"NUMBER","STRING","REGEXPR","'?'","':'","GETLINE","GENSUB","RETURN","SPLIT",
-"SUBSTR","WHILE","CAT","'+'","'-'","'*'","'%'","NOT","UMINUS","POWER","DECR",
-"INCR","INDIRECT","LASTTOKEN","program","and","bor","comma","do","else","for",
-"@1","@2","@3","funcname","if","lbrace","nl","opt_nl","opt_pst","opt_simple_stmt",
-"pas","pa_pat","pa_stat","@4","pa_stats","patlist","ppattern","pattern","plist",
-"pplist","prarg","print","pst","rbrace","re","reg_expr","@5","rparen","simple_stmt",
-"st","stmt","@6","@7","@8","stmtlist","subop","term","var","varlist","varname",
-"while", NULL
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 350
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const yytype_uint8 yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 104, 2, 2,
+ 12, 16, 103, 101, 9, 102, 2, 15, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 94, 14,
+ 2, 2, 2, 93, 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, 18, 2, 19, 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, 11, 13, 17, 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, 2, 1, 2, 3, 4,
+ 5, 6, 7, 8, 10, 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, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 95, 96,
+ 97, 98, 99, 100, 105, 106, 107, 108, 109, 110,
+ 111
};
-#endif
-static const short yyr1[] = { 0,
- 112, 112, 113, 113, 114, 114, 115, 115, 116, 116,
- 117, 117, 119, 118, 120, 118, 121, 118, 122, 122,
- 123, 124, 124, 125, 125, 126, 126, 127, 127, 128,
- 128, 129, 129, 130, 131, 131, 131, 131, 131, 131,
- 131, 132, 131, 133, 133, 134, 134, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 136, 136,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 136, 136, 136, 137, 137, 138,
- 138, 139, 139, 139, 140, 140, 141, 141, 141, 141,
- 142, 142, 143, 143, 145, 144, 146, 146, 147, 147,
- 147, 147, 147, 147, 147, 147, 148, 148, 149, 149,
- 150, 151, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 152, 149, 149, 153, 153, 154,
- 154, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 155, 155, 155, 155, 155, 155, 155, 156, 156, 156,
- 156, 157, 157, 157, 158, 158, 158, 159
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const yytype_uint16 yyprhs[] =
+{
+ 0, 0, 3, 5, 7, 9, 12, 14, 17, 19,
+ 22, 24, 27, 29, 32, 33, 46, 47, 58, 59,
+ 68, 70, 72, 77, 79, 82, 84, 87, 88, 90,
+ 91, 93, 94, 96, 98, 102, 104, 106, 111, 115,
+ 122, 126, 131, 136, 137, 147, 149, 153, 155, 159,
+ 163, 169, 173, 177, 181, 185, 189, 195, 198, 200,
+ 202, 206, 212, 216, 220, 224, 228, 232, 236, 240,
+ 244, 248, 252, 256, 262, 267, 271, 274, 276, 278,
+ 282, 286, 288, 292, 293, 295, 299, 301, 303, 305,
+ 307, 310, 313, 315, 318, 320, 323, 324, 329, 331,
+ 334, 339, 344, 349, 352, 358, 361, 363, 365, 367,
+ 370, 373, 376, 377, 378, 388, 392, 395, 397, 402,
+ 405, 409, 412, 415, 419, 422, 425, 426, 430, 433,
+ 435, 438, 440, 442, 447, 451, 455, 459, 463, 467,
+ 471, 474, 477, 480, 484, 489, 491, 495, 500, 503,
+ 506, 509, 512, 515, 520, 524, 527, 529, 536, 543,
+ 547, 554, 561, 563, 572, 581, 588, 593, 595, 602,
+ 609, 618, 627, 636, 643, 645, 647, 652, 654, 657,
+ 658, 660, 664, 666, 668, 670
};
-static const short yyr2[] = { 0,
- 1, 1, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 0, 12, 0, 10, 0, 8, 1, 1,
- 4, 1, 2, 1, 2, 0, 1, 0, 1, 0,
- 1, 1, 3, 1, 1, 4, 3, 6, 3, 4,
- 4, 0, 9, 1, 3, 1, 3, 3, 5, 3,
- 3, 3, 3, 3, 5, 2, 1, 1, 3, 5,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 5, 4, 3, 2, 1, 1, 3, 3, 1,
- 3, 0, 1, 3, 1, 1, 1, 1, 2, 2,
- 1, 2, 1, 2, 0, 4, 1, 2, 4, 4,
- 4, 2, 5, 2, 1, 1, 1, 2, 2, 2,
- 0, 0, 9, 3, 2, 1, 4, 2, 3, 2,
- 2, 3, 2, 2, 0, 3, 2, 1, 2, 1,
- 1, 4, 3, 3, 3, 3, 3, 3, 2, 2,
- 2, 3, 4, 1, 3, 4, 2, 2, 2, 2,
- 2, 8, 8, 10, 10, 4, 3, 2, 1, 6,
- 6, 3, 6, 6, 1, 8, 8, 6, 4, 1,
- 6, 6, 8, 8, 8, 6, 1, 1, 4, 1,
- 2, 0, 1, 3, 1, 1, 1, 4
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yytype_int16 yyrhs[] =
+{
+ 113, 0, -1, 130, -1, 1, -1, 35, -1, 114,
+ 10, -1, 36, -1, 115, 10, -1, 9, -1, 116,
+ 10, -1, 51, -1, 117, 10, -1, 79, -1, 118,
+ 10, -1, -1, 53, 12, 129, 14, 127, 137, 14,
+ 127, 129, 147, 120, 150, -1, -1, 53, 12, 129,
+ 14, 14, 127, 129, 147, 121, 150, -1, -1, 53,
+ 12, 159, 44, 159, 147, 122, 150, -1, 86, -1,
+ 89, -1, 57, 12, 137, 147, -1, 11, -1, 125,
+ 10, -1, 10, -1, 126, 10, -1, -1, 126, -1,
+ -1, 142, -1, -1, 148, -1, 128, -1, 128, 134,
+ 128, -1, 137, -1, 131, -1, 131, 125, 154, 17,
+ -1, 131, 9, 131, -1, 131, 9, 131, 125, 154,
+ 17, -1, 125, 154, 17, -1, 7, 125, 154, 17,
+ -1, 8, 125, 154, 17, -1, -1, 54, 123, 12,
+ 158, 147, 133, 125, 154, 17, -1, 132, -1, 134,
+ 128, 132, -1, 137, -1, 135, 116, 137, -1, 157,
+ 69, 136, -1, 136, 93, 136, 94, 136, -1, 136,
+ 115, 136, -1, 136, 114, 136, -1, 136, 23, 145,
+ -1, 136, 23, 136, -1, 136, 44, 159, -1, 12,
+ 138, 16, 44, 159, -1, 136, 156, -1, 144, -1,
+ 156, -1, 157, 69, 137, -1, 137, 93, 137, 94,
+ 137, -1, 137, 115, 137, -1, 137, 114, 137, -1,
+ 137, 38, 137, -1, 137, 39, 137, -1, 137, 40,
+ 137, -1, 137, 41, 137, -1, 137, 42, 137, -1,
+ 137, 43, 137, -1, 137, 23, 145, -1, 137, 23,
+ 137, -1, 137, 44, 159, -1, 12, 138, 16, 44,
+ 159, -1, 137, 13, 95, 157, -1, 137, 13, 95,
+ -1, 137, 156, -1, 144, -1, 156, -1, 137, 116,
+ 137, -1, 138, 116, 137, -1, 136, -1, 139, 116,
+ 136, -1, -1, 139, -1, 12, 138, 16, -1, 76,
+ -1, 77, -1, 10, -1, 14, -1, 142, 10, -1,
+ 142, 14, -1, 17, -1, 143, 10, -1, 145, -1,
+ 106, 144, -1, -1, 15, 146, 92, 15, -1, 16,
+ -1, 147, 10, -1, 141, 140, 13, 156, -1, 141,
+ 140, 37, 156, -1, 141, 140, 40, 156, -1, 141,
+ 140, -1, 50, 159, 18, 135, 19, -1, 50, 159,
+ -1, 137, -1, 1, -1, 126, -1, 14, 127, -1,
+ 47, 149, -1, 49, 149, -1, -1, -1, 117, 151,
+ 150, 152, 99, 12, 137, 16, 149, -1, 52, 137,
+ 149, -1, 52, 149, -1, 119, -1, 124, 150, 118,
+ 150, -1, 124, 150, -1, 125, 154, 143, -1, 61,
+ 149, -1, 62, 149, -1, 98, 137, 149, -1, 98,
+ 149, -1, 148, 149, -1, -1, 160, 153, 150, -1,
+ 14, 127, -1, 150, -1, 154, 150, -1, 55, -1,
+ 56, -1, 156, 15, 69, 156, -1, 156, 101, 156,
+ -1, 156, 102, 156, -1, 156, 103, 156, -1, 156,
+ 15, 156, -1, 156, 104, 156, -1, 156, 107, 156,
+ -1, 102, 156, -1, 101, 156, -1, 106, 156, -1,
+ 46, 12, 16, -1, 46, 12, 135, 16, -1, 46,
+ -1, 89, 12, 16, -1, 89, 12, 135, 16, -1,
+ 48, 156, -1, 109, 157, -1, 108, 157, -1, 157,
+ 109, -1, 157, 108, -1, 95, 157, 42, 156, -1,
+ 95, 42, 156, -1, 95, 157, -1, 95, -1, 58,
+ 12, 137, 116, 137, 16, -1, 58, 12, 137, 116,
+ 145, 16, -1, 12, 137, 16, -1, 60, 12, 137,
+ 116, 145, 16, -1, 60, 12, 137, 116, 137, 16,
+ -1, 90, -1, 97, 12, 137, 116, 159, 116, 137,
+ 16, -1, 97, 12, 137, 116, 159, 116, 145, 16,
+ -1, 97, 12, 137, 116, 159, 16, -1, 78, 12,
+ 135, 16, -1, 91, -1, 155, 12, 145, 116, 137,
+ 16, -1, 155, 12, 137, 116, 137, 16, -1, 155,
+ 12, 145, 116, 137, 116, 157, 16, -1, 155, 12,
+ 137, 116, 137, 116, 157, 16, -1, 96, 12, 137,
+ 116, 137, 116, 137, 16, -1, 96, 12, 137, 116,
+ 137, 16, -1, 157, -1, 159, -1, 159, 18, 135,
+ 19, -1, 87, -1, 110, 156, -1, -1, 86, -1,
+ 158, 116, 86, -1, 86, -1, 45, -1, 88, -1,
+ 99, 12, 137, 147, -1
};
-static const short yydefact[] = { 0,
- 2, 87, 88, 32, 1, 29, 0, 0, 22, 0,
- 95, 186, 144, 0, 0, 130, 131, 0, 0, 0,
- 185, 180, 187, 0, 165, 170, 159, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 35, 44, 28,
- 34, 76, 93, 0, 77, 177, 178, 89, 90, 0,
- 0, 0, 0, 0, 0, 0, 0, 147, 177, 19,
- 20, 0, 0, 0, 0, 0, 0, 158, 0, 0,
- 0, 140, 139, 94, 141, 148, 149, 181, 106, 23,
- 26, 0, 0, 0, 9, 0, 0, 0, 0, 0,
- 85, 86, 0, 0, 111, 116, 0, 0, 105, 82,
- 0, 128, 0, 125, 0, 0, 33, 0, 0, 3,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 75, 0, 0, 0, 0, 0, 0, 0, 0,
- 150, 151, 0, 0, 0, 7, 162, 0, 0, 0,
- 0, 142, 0, 46, 0, 182, 0, 0, 0, 145,
- 0, 157, 0, 0, 93, 0, 0, 24, 27, 127,
- 26, 107, 109, 110, 104, 0, 115, 0, 0, 120,
- 121, 0, 123, 0, 10, 0, 118, 0, 0, 80,
- 83, 102, 57, 58, 177, 124, 39, 129, 0, 37,
- 0, 45, 74, 70, 69, 63, 64, 65, 66, 67,
- 68, 71, 0, 4, 62, 6, 61, 0, 93, 0,
- 136, 133, 134, 135, 137, 138, 59, 0, 40, 41,
- 8, 78, 0, 79, 96, 143, 0, 183, 0, 0,
- 0, 169, 146, 156, 0, 0, 0, 0, 25, 108,
- 0, 114, 0, 31, 178, 0, 122, 0, 112, 11,
- 0, 91, 119, 0, 0, 0, 0, 0, 0, 56,
- 0, 0, 0, 0, 0, 126, 0, 36, 73, 0,
- 0, 0, 132, 179, 72, 47, 97, 0, 42, 0,
- 93, 0, 93, 0, 0, 0, 0, 0, 26, 0,
- 21, 188, 0, 12, 117, 92, 84, 0, 53, 52,
- 54, 0, 51, 50, 81, 99, 100, 101, 48, 0,
- 60, 0, 0, 184, 98, 0, 160, 161, 164, 163,
- 0, 0, 168, 0, 176, 0, 103, 26, 0, 0,
- 0, 0, 0, 0, 38, 172, 0, 171, 0, 0,
- 0, 0, 0, 93, 0, 0, 0, 17, 0, 55,
- 0, 49, 0, 0, 0, 153, 0, 152, 0, 166,
- 167, 175, 0, 26, 0, 0, 174, 173, 43, 0,
- 0, 15, 0, 18, 0, 155, 154, 0, 0, 113,
- 16, 13, 0, 14, 0, 0, 0
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const yytype_uint16 yyrline[] =
+{
+ 0, 98, 98, 100, 104, 104, 108, 108, 112, 112,
+ 116, 116, 120, 120, 124, 124, 126, 126, 128, 128,
+ 133, 134, 138, 142, 142, 146, 146, 150, 151, 155,
+ 156, 161, 162, 166, 167, 171, 175, 176, 177, 178,
+ 179, 180, 182, 184, 184, 189, 190, 194, 195, 199,
+ 200, 202, 204, 206, 207, 212, 213, 214, 215, 216,
+ 220, 221, 223, 225, 227, 228, 229, 230, 231, 232,
+ 233, 234, 239, 240, 241, 244, 247, 248, 249, 253,
+ 254, 258, 259, 263, 264, 265, 269, 269, 273, 273,
+ 273, 273, 277, 277, 281, 283, 287, 287, 291, 291,
+ 295, 298, 301, 304, 305, 306, 307, 308, 312, 313,
+ 317, 319, 321, 321, 321, 323, 324, 325, 326, 327,
+ 328, 329, 332, 335, 336, 337, 338, 338, 339, 343,
+ 344, 348, 348, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
+ 369, 370, 371, 372, 373, 374, 375, 376, 378, 381,
+ 382, 384, 389, 390, 392, 394, 396, 397, 398, 400,
+ 405, 407, 412, 414, 416, 420, 421, 422, 423, 427,
+ 428, 429, 435, 436, 437, 442
};
+#endif
-static const short yydefgoto[] = { 385,
- 120, 121, 227, 95, 251, 96, 383, 378, 365, 62,
- 97, 98, 162, 160, 4, 243, 5, 38, 39, 316,
- 40, 143, 180, 99, 53, 181, 182, 100, 6, 253,
- 42, 43, 54, 279, 101, 163, 102, 176, 293, 189,
- 103, 44, 45, 46, 229, 47, 104
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[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", "FIRSTTOKEN", "PROGRAM", "PASTAT",
+ "PASTAT2", "XBEGIN", "XEND", "','", "NL", "'{'", "'('", "'|'", "';'",
+ "'/'", "')'", "'}'", "'['", "']'", "ARRAY", "MATCH", "NOTMATCH",
+ "MATCHOP", "FINAL", "DOT", "ALL", "CCL", "NCCL", "CHAR", "OR", "STAR",
+ "QUEST", "PLUS", "EMPTYRE", "AND", "BOR", "APPEND", "EQ", "GE", "GT",
+ "LE", "LT", "NE", "IN", "ARG", "BLTIN", "BREAK", "CLOSE", "CONTINUE",
+ "DELETE", "DO", "EXIT", "FOR", "FUNC", "SUB", "GSUB", "IF", "INDEX",
+ "LSUBSTR", "MATCHFCN", "NEXT", "NEXTFILE", "ADD", "MINUS", "MULT",
+ "DIVIDE", "MOD", "ASSIGN", "ASGNOP", "ADDEQ", "SUBEQ", "MULTEQ", "DIVEQ",
+ "MODEQ", "POWEQ", "PRINT", "PRINTF", "SPRINTF", "ELSE", "INTEST",
+ "CONDEXPR", "POSTINCR", "PREINCR", "POSTDECR", "PREDECR", "VAR", "IVAR",
+ "VARNF", "CALL", "NUMBER", "STRING", "REGEXPR", "'?'", "':'", "GETLINE",
+ "SUBSTR", "SPLIT", "RETURN", "WHILE", "CAT", "'+'", "'-'", "'*'", "'%'",
+ "UMINUS", "NOT", "POWER", "INCR", "DECR", "INDIRECT", "LASTTOKEN",
+ "$accept", "program", "and", "bor", "comma", "do", "else", "for", "@1",
+ "@2", "@3", "funcname", "if", "lbrace", "nl", "opt_nl", "opt_pst",
+ "opt_simple_stmt", "pas", "pa_pat", "pa_stat", "@4", "pa_stats",
+ "patlist", "ppattern", "pattern", "plist", "pplist", "prarg", "print",
+ "pst", "rbrace", "re", "reg_expr", "@5", "rparen", "simple_stmt", "st",
+ "stmt", "@6", "@7", "@8", "stmtlist", "subop", "term", "var", "varlist",
+ "varname", "while", 0
};
+#endif
-static const short yypact[] = { 716,
--32768,-32768,-32768, 1632,-32768, 87, 15, 15,-32768, 4634,
--32768,-32768, 36, 4975, 40,-32768,-32768, 38, 49, 59,
--32768,-32768,-32768, 61,-32768,-32768, 128, 115, 132, 134,
- 4975, 4975, 4693, -29, -29, 4975, 834, 20,-32768, 95,
- 3947,-32768,-32768, 145, 17, -43, 44,-32768,-32768, 834,
- 834, 2248, 82, -16, 4448, 4634, 4975, 17, -26,-32768,
--32768, 149, 4634, 4634, 4634, 4507, 4975, 53, 4634, 4634,
- 4634, 30, 30,-32768, 30,-32768,-32768,-32768,-32768,-32768,
- 138, 167, 167, 10,-32768, 1793, 151, 152, 167, 167,
--32768,-32768, 1793, 153, 158,-32768, 1439, 834, 3947, 4752,
- 167,-32768, 901,-32768, 4634, 834, 1632, 80, 4634,-32768,
--32768, 4634, 4634, 4634, 4634, 4634, 4634, 10, 4634, 1852,
- 1911, 17, 4634, 4811, 4975, 4975, 4975, 4975, 4975, 4634,
--32768,-32768, 4634, 968, 1035,-32768,-32768, 1970, 157, 1970,
- 162,-32768, 83, 3947, 2938, 107, 2847, 2847, 90,-32768,
- 106, 17, 4975, 2847, 191, 2847, 2847,-32768, 200,-32768,
- 138, 200,-32768,-32768, 194, 1734,-32768, 1506, 4634,-32768,
--32768, 1734,-32768, 4634,-32768, 1439, 140, 1102, 4634, 4319,
- 191, 3,-32768, 17, -39,-32768,-32768,-32768, 1439, 15,
- 1169,-32768, -29, 4198,-32768, 4198, 4198, 4198, 4198, 4198,
- 4198,-32768, 3029,-32768, 4118,-32768, 4038, 2847, 191, 4975,
- 30, 52, 52, 30, 30, 30, 3947, 45,-32768,-32768,
--32768, 3947, 10, 3947,-32768,-32768, 1970,-32768, 122, 1970,
- 1970,-32768,-32768, 17, 1970, 1970, 2, 1970,-32768,-32768,
- 4634,-32768, 205,-32768, -8, 3120,-32768, 3120,-32768,-32768,
- 1238,-32768, 213, 125, 4870, 10, 4870, 2029, 2088, 17,
- 2147, 4975, 4975, 4975, 4870,-32768, 834,-32768,-32768, 4634,
- 1970, 1970, 17,-32768,-32768, 3947,-32768, 5, 215, 3211,
- 212, 3302, 214, 2847, 2847, 135, 2349, 69, 207, 10,
- 215, 215, 136,-32768,-32768,-32768, 196, 4634, 4938,-32768,
--32768, 4235, 4575, 4389, 4319, 17, 17, 17, 4319, 1305,
- 3947, 2450, 2551,-32768,-32768, 15,-32768,-32768,-32768,-32768,
- 1970, 1970,-32768, 1970,-32768, 1970,-32768, 138, 4634, 221,
- 228, 10, 144, 4870,-32768,-32768, 63,-32768, 63, 834,
- 2652, 2753, 3393, 230, 3484, 1573, 3583, 215, 4634,-32768,
- 196, 4319, 237, 238, 1372,-32768, 1970,-32768, 1970,-32768,
--32768,-32768, 221, 138, 1439, 3674,-32768,-32768,-32768, 3765,
- 3856, 215, 1573,-32768, 167,-32768,-32768, 1439, 221,-32768,
--32768, 215, 1439,-32768, 255, 256,-32768
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const yytype_uint16 yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 44,
+ 264, 123, 40, 124, 59, 47, 41, 125, 91, 93,
+ 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, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 337, 63, 58, 338, 339, 340, 341, 342,
+ 343, 43, 45, 42, 37, 344, 345, 346, 347, 348,
+ 349, 350
};
+# endif
-static const short yypgoto[] = {-32768,
- 62, 178, 50,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, -2, -53, -153, 217, -313,-32768, 155, 154,-32768,
--32768, -42, -181, 518, -172,-32768,-32768,-32768,-32768,-32768,
- -32, -60,-32768, -201, -156, -49, 300,-32768,-32768,-32768,
- -47,-32768, 251, -14,-32768, 84,-32768
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const yytype_uint8 yyr1[] =
+{
+ 0, 112, 113, 113, 114, 114, 115, 115, 116, 116,
+ 117, 117, 118, 118, 120, 119, 121, 119, 122, 119,
+ 123, 123, 124, 125, 125, 126, 126, 127, 127, 128,
+ 128, 129, 129, 130, 130, 131, 132, 132, 132, 132,
+ 132, 132, 132, 133, 132, 134, 134, 135, 135, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 138,
+ 138, 139, 139, 140, 140, 140, 141, 141, 142, 142,
+ 142, 142, 143, 143, 144, 144, 146, 145, 147, 147,
+ 148, 148, 148, 148, 148, 148, 148, 148, 149, 149,
+ 150, 150, 151, 152, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 153, 150, 150, 154,
+ 154, 155, 155, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 157, 157, 157, 157, 158,
+ 158, 158, 159, 159, 159, 160
};
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const yytype_uint8 yyr2[] =
+{
+ 0, 2, 1, 1, 1, 2, 1, 2, 1, 2,
+ 1, 2, 1, 2, 0, 12, 0, 10, 0, 8,
+ 1, 1, 4, 1, 2, 1, 2, 0, 1, 0,
+ 1, 0, 1, 1, 3, 1, 1, 4, 3, 6,
+ 3, 4, 4, 0, 9, 1, 3, 1, 3, 3,
+ 5, 3, 3, 3, 3, 3, 5, 2, 1, 1,
+ 3, 5, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 5, 4, 3, 2, 1, 1, 3,
+ 3, 1, 3, 0, 1, 3, 1, 1, 1, 1,
+ 2, 2, 1, 2, 1, 2, 0, 4, 1, 2,
+ 4, 4, 4, 2, 5, 2, 1, 1, 1, 2,
+ 2, 2, 0, 0, 9, 3, 2, 1, 4, 2,
+ 3, 2, 2, 3, 2, 2, 0, 3, 2, 1,
+ 2, 1, 1, 4, 3, 3, 3, 3, 3, 3,
+ 2, 2, 2, 3, 4, 1, 3, 4, 2, 2,
+ 2, 2, 2, 4, 3, 2, 1, 6, 6, 3,
+ 6, 6, 1, 8, 8, 6, 4, 1, 6, 6,
+ 8, 8, 8, 6, 1, 1, 4, 1, 2, 0,
+ 1, 3, 1, 1, 1, 4
+};
-#define YYLAST 5085
+/* 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 yytype_uint8 yydefact[] =
+{
+ 0, 3, 88, 89, 0, 33, 2, 30, 1, 0,
+ 0, 23, 0, 96, 183, 145, 0, 0, 131, 132,
+ 0, 0, 0, 182, 177, 184, 0, 162, 167, 156,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
+ 45, 29, 35, 77, 94, 0, 78, 174, 175, 90,
+ 91, 0, 0, 0, 0, 0, 0, 0, 0, 148,
+ 174, 20, 21, 0, 0, 0, 0, 0, 0, 155,
+ 0, 0, 141, 140, 95, 142, 150, 149, 178, 107,
+ 24, 27, 0, 0, 0, 10, 0, 0, 0, 0,
+ 0, 86, 87, 0, 0, 112, 117, 0, 0, 106,
+ 83, 0, 129, 0, 126, 0, 0, 34, 0, 0,
+ 4, 6, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
+ 0, 152, 151, 0, 0, 0, 8, 159, 0, 0,
+ 0, 0, 143, 0, 47, 0, 179, 0, 0, 0,
+ 146, 0, 154, 0, 0, 0, 25, 28, 128, 27,
+ 108, 110, 111, 105, 0, 116, 0, 0, 121, 122,
+ 0, 124, 0, 11, 0, 119, 0, 0, 81, 84,
+ 103, 58, 59, 174, 125, 40, 130, 0, 38, 0,
+ 46, 75, 71, 70, 64, 65, 66, 67, 68, 69,
+ 72, 0, 5, 63, 7, 62, 0, 94, 0, 137,
+ 134, 135, 136, 138, 139, 60, 0, 41, 42, 9,
+ 79, 0, 80, 97, 144, 0, 180, 0, 0, 0,
+ 166, 147, 153, 0, 0, 26, 109, 0, 115, 0,
+ 32, 175, 0, 123, 0, 113, 12, 0, 92, 120,
+ 0, 0, 0, 0, 0, 0, 57, 0, 0, 0,
+ 0, 0, 127, 0, 37, 74, 0, 0, 0, 133,
+ 176, 73, 48, 98, 0, 43, 0, 94, 0, 94,
+ 0, 0, 0, 27, 0, 22, 185, 0, 13, 118,
+ 93, 85, 0, 54, 53, 55, 0, 52, 51, 82,
+ 100, 101, 102, 49, 0, 61, 0, 0, 181, 99,
+ 0, 157, 158, 161, 160, 173, 0, 165, 0, 104,
+ 27, 0, 0, 0, 0, 0, 0, 39, 169, 0,
+ 168, 0, 0, 0, 0, 94, 0, 0, 18, 0,
+ 56, 0, 50, 0, 0, 0, 172, 163, 164, 0,
+ 27, 0, 0, 171, 170, 44, 16, 0, 19, 0,
+ 0, 0, 114, 17, 14, 0, 15
+};
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int16 yydefgoto[] =
+{
+ -1, 4, 120, 121, 225, 95, 247, 96, 365, 360,
+ 351, 63, 97, 98, 160, 158, 5, 239, 6, 39,
+ 40, 310, 41, 143, 178, 99, 54, 179, 180, 100,
+ 7, 249, 43, 44, 55, 275, 101, 161, 102, 174,
+ 287, 187, 103, 45, 46, 47, 227, 48, 104
+};
-static const short yytable[] = { 59,
- 74, 37, 134, 135, 50, 51, 254, 240, 155, 133,
- 221, 244, 68, 221, 12, 262, 59, 59, 59, 76,
- 77, 59, 149, 151, 130, 9, 59, 159, 265, 105,
- 9, 124, 363, 164, 290, 106, 167, 59, 263, 170,
- 171, 264, 59, 173, 291, 12, 292, 55, 195, 63,
- 178, 186, 59, 12, 136, 21, 22, 23, 191, 379,
- 64, 133, 209, 274, 131, 132, 124, 183, 131, 132,
- 65, 221, 66, 299, 141, 302, 303, 304, 136, 305,
- 36, 131, 132, 309, 59, 185, 21, 327, 23, 314,
- 218, 136, 136, 153, 21, 48, 23, 139, 226, 136,
- 49, 138, 140, 2, 37, 232, 12, 159, 3, 59,
- 59, 59, 59, 59, 59, 136, 242, 125, 126, 127,
- 128, 233, 247, 129, 60, 333, 69, 61, 348, 59,
- 59, 136, 59, 59, 136, 329, 129, 277, 59, 59,
- 297, 59, 59, 70, 136, 71, 158, 21, 22, 23,
- 323, 59, 352, 136, 127, 128, 123, 59, 129, 351,
- 146, 372, 168, 169, 174, 59, 175, 165, 67, 281,
- 283, 12, 36, 193, 346, 158, 225, 382, 269, 59,
- 161, 59, 59, 59, 59, 59, 59, 267, 59, 244,
- 59, 228, 59, 59, 300, 59, 230, 231, 288, 223,
- 136, 202, 59, 235, 236, 237, 238, 59, 239, 59,
- 373, 241, 21, 22, 23, 158, 244, 250, 289, 310,
- 328, 296, 183, 315, 183, 183, 183, 318, 183, 320,
- 261, 59, 183, 59, 331, 159, 277, 36, 332, 349,
- 185, 258, 185, 185, 185, 361, 185, 59, 59, 59,
- 185, 245, 367, 368, 386, 387, 107, 271, 272, 190,
- 192, 59, 0, 344, 58, 59, 0, 59, 0, 59,
- 59, 0, 59, 0, 159, 0, 0, 0, 278, 0,
- 0, 72, 73, 75, 59, 0, 78, 59, 59, 59,
- 59, 122, 355, 0, 59, 0, 59, 59, 59, 0,
- 0, 183, 122, 140, 0, 0, 275, 75, 0, 0,
- 159, 0, 0, 340, 0, 0, 0, 152, 0, 185,
- 286, 0, 353, 0, 354, 380, 59, 59, 59, 0,
- 59, 0, 59, 321, 322, 324, 326, 59, 0, 301,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 122,
- 184, 59, 0, 0, 0, 59, 59, 259, 0, 0,
- 258, 337, 339, 258, 258, 258, 258, 0, 0, 0,
- 258, 0, 0, 330, 211, 212, 213, 214, 215, 216,
- 0, 0, 140, 0, 0, 0, 0, 0, 0, 0,
- 357, 359, 0, 0, 122, 122, 177, 122, 122, 0,
- 0, 0, 188, 234, 122, 0, 122, 122, 0, 0,
- 0, 0, 0, 258, 0, 350, 122, 0, 0, 0,
- 0, 0, 122, 0, 0, 0, 0, 0, 0, 0,
- 260, 0, 0, 188, 188, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 122, 0, 122, 122, 122, 122,
- 122, 122, 0, 122, 0, 122, 0, 122, 122, 0,
- 273, 0, 0, 0, 0, 0, 0, 122, 0, 0,
- 0, 0, 122, 0, 122, 249, 259, 188, 0, 259,
- 259, 259, 259, 0, 0, 0, 259, 0, 266, 0,
- 188, 0, 0, 0, 0, 0, 122, 0, 122, 0,
- 0, 0, 0, 0, 0, 184, 0, 184, 184, 184,
- 0, 184, 306, 307, 308, 184, 0, 0, 0, 0,
- 0, 41, 0, 0, 0, 0, 122, 52, 0, 259,
- 122, 0, 122, 0, 122, 122, 0, 122, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 260,
- 295, 0, 260, 260, 260, 260, 0, 0, 0, 260,
- 0, 122, 122, 122, 0, 0, 0, 0, 0, 0,
- 0, 0, 144, 145, 0, 0, 0, 0, 0, 0,
- 147, 148, 144, 144, 184, 0, 154, 156, 157, 0,
- 0, 122, 122, 122, 0, 122, 0, 122, 0, 0,
- 0, 0, 260, 166, 0, 0, 0, 0, 0, 188,
- 172, 0, 0, 0, 0, 0, 122, 0, 0, 0,
- 122, 122, 41, 0, 41, 0, 194, 0, 0, 196,
- 197, 198, 199, 200, 201, 0, 203, 205, 207, 0,
- 208, 0, 0, 0, 0, 0, 0, 217, 0, 0,
- 144, 0, 0, 0, 188, 222, 0, 224, 0, 0,
- 0, 0, 0, 0, 374, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 381, 0, 0,
- 0, 0, 384, 0, 0, 0, 246, 0, 0, 0,
- 0, 248, 0, 0, 0, 0, 52, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -28, 1, 0, 0, 0,
- 0, 0, -28, -28, 2, 0, -28, -28, 0, 3,
- -28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 276, 0, 0, 280, 282, 0,
- 0, 0, 284, 285, 0, 287, 0, 0, 144, -28,
- -28, 0, -28, 0, 0, 0, 0, 0, -28, -28,
- -28, 0, -28, 0, -28, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 311, 312, 313,
- 0, 0, -28, 0, 0, 0, 0, 0, 0, 0,
- -28, -28, -28, -28, -28, -28, 0, 0, 0, -28,
- -28, 0, -28, -28, 0, 52, -28, -28, 0, 0,
- -28, 0, 0, -28, -28, -28, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 0, 0, 0, 341, 342,
- 0, 343, 80, 345, 9, 10, 347, 81, 11, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 366, 0, 0, 0,
- 0, 0, 0, 0, 370, 0, 371, 12, 13, 82,
- 14, 83, 84, 85, 86, 87, 0, 16, 17, 88,
- 18, 0, 19, 89, 90, 0, 0, 0, 0, 0,
- 0, 79, 0, 0, 0, 0, 0, 0, 91, 92,
- 20, 9, 10, 0, 81, 11, 0, 187, 21, 22,
- 23, 24, 25, 26, 0, 0, 0, 27, 28, 93,
- 29, 30, 94, 0, 31, 32, 0, 0, 33, 0,
- 0, 34, 35, 36, 12, 13, 82, 14, 83, 84,
- 85, 86, 87, 0, 16, 17, 88, 18, 0, 19,
- 89, 90, 0, 0, 0, 0, 0, 0, 79, 0,
- 0, 0, 0, 0, 0, 91, 92, 20, 9, 10,
- 0, 81, 11, 0, 219, 21, 22, 23, 24, 25,
- 26, 0, 0, 0, 27, 28, 93, 29, 30, 94,
- 0, 31, 32, 0, 0, 33, 0, 0, 34, 35,
- 36, 12, 13, 82, 14, 83, 84, 85, 86, 87,
- 0, 16, 17, 88, 18, 0, 19, 89, 90, 0,
- 0, 0, 0, 0, 0, 79, 0, 0, 0, 0,
- 0, 0, 91, 92, 20, 9, 10, 0, 81, 11,
- 0, 220, 21, 22, 23, 24, 25, 26, 0, 0,
- 0, 27, 28, 93, 29, 30, 94, 0, 31, 32,
- 0, 0, 33, 0, 0, 34, 35, 36, 12, 13,
- 82, 14, 83, 84, 85, 86, 87, 0, 16, 17,
- 88, 18, 0, 19, 89, 90, 0, 0, 0, 0,
- 0, 0, 79, 0, 0, 0, 0, 0, 0, 91,
- 92, 20, 9, 10, 0, 81, 11, 0, 252, 21,
- 22, 23, 24, 25, 26, 0, 0, 0, 27, 28,
- 93, 29, 30, 94, 0, 31, 32, 0, 0, 33,
- 0, 0, 34, 35, 36, 12, 13, 82, 14, 83,
- 84, 85, 86, 87, 0, 16, 17, 88, 18, 0,
- 19, 89, 90, 0, 0, 0, 0, 0, 0, 79,
- 0, 0, 0, 0, 0, 0, 91, 92, 20, 9,
- 10, 0, 81, 11, 0, 268, 21, 22, 23, 24,
- 25, 26, 0, 0, 0, 27, 28, 93, 29, 30,
- 94, 0, 31, 32, 0, 0, 33, 0, 0, 34,
- 35, 36, 12, 13, 82, 14, 83, 84, 85, 86,
- 87, 0, 16, 17, 88, 18, 0, 19, 89, 90,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 0,
- 0, 0, 0, 91, 92, 20, 294, 0, 9, 10,
- 0, 81, 11, 21, 22, 23, 24, 25, 26, 0,
- 0, 0, 27, 28, 93, 29, 30, 94, 0, 31,
- 32, 0, 0, 33, 0, 0, 34, 35, 36, 0,
- 0, 12, 13, 82, 14, 83, 84, 85, 86, 87,
- 0, 16, 17, 88, 18, 0, 19, 89, 90, 0,
- 0, 0, 0, 0, 0, 79, 0, 0, 0, 0,
- 0, 0, 91, 92, 20, 9, 10, 0, 81, 11,
- 0, 335, 21, 22, 23, 24, 25, 26, 0, 0,
- 0, 27, 28, 93, 29, 30, 94, 0, 31, 32,
- 0, 0, 33, 0, 0, 34, 35, 36, 12, 13,
- 82, 14, 83, 84, 85, 86, 87, 0, 16, 17,
- 88, 18, 0, 19, 89, 90, 0, 0, 0, 0,
- 0, 0, 79, 0, 0, 0, 0, 0, 0, 91,
- 92, 20, 9, 10, 0, 81, 11, 0, 369, 21,
- 22, 23, 24, 25, 26, 0, 0, 0, 27, 28,
- 93, 29, 30, 94, 0, 31, 32, 0, 0, 33,
- 0, 0, 34, 35, 36, 12, 13, 82, 14, 83,
- 84, 85, 86, 87, 0, 16, 17, 88, 18, 0,
- 19, 89, 90, 0, 0, 0, 0, 0, 0, 79,
- 0, 0, 0, 0, 0, 0, 91, 92, 20, 9,
- 10, 0, 81, 11, 0, 0, 21, 22, 23, 24,
- 25, 26, 0, 0, 0, 27, 28, 93, 29, 30,
- 94, 0, 31, 32, 0, 0, 33, 0, 0, 34,
- 35, 36, 12, 13, 82, 14, 83, 84, 85, 86,
- 87, 0, 16, 17, 88, 18, 0, 19, 89, 90,
- 0, 0, 0, 0, 0, 0, 79, 0, 0, 0,
- 0, 0, 0, 91, 92, 20, 0, 10, 0, -30,
- 11, 0, 0, 21, 22, 23, 24, 25, 26, 0,
- 0, 0, 27, 28, 93, 29, 30, 94, 0, 31,
- 32, 0, 0, 33, 0, 0, 34, 35, 36, 12,
- 13, 0, 14, 0, 84, 0, 0, 0, 0, 16,
- 17, 0, 18, 0, 19, 0, 0, 0, 0, 0,
- 0, 0, 0, 79, 0, 0, 0, 0, 0, 0,
- 91, 92, 20, 0, 10, 0, 0, 11, -30, 0,
- 21, 22, 23, 24, 25, 26, 0, 0, 0, 27,
- 28, 0, 29, 30, 0, 0, 31, 32, 0, 0,
- 33, 0, 0, 34, 35, 36, 12, 13, 0, 14,
- 0, 84, 0, 0, 0, 0, 16, 17, 0, 18,
- 0, 19, 0, 0, 0, 0, 0, 0, 7, 8,
- 0, 0, 9, 10, 0, 0, 11, 91, 92, 20,
- 0, 0, 0, 0, 0, 0, 0, 21, 22, 23,
- 24, 25, 26, 0, 0, 0, 27, 28, 0, 29,
- 30, 0, 0, 31, 32, 12, 13, 33, 14, 0,
- 34, 35, 36, 0, 15, 16, 17, 0, 18, 0,
- 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,
- 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
- 25, 26, 0, 0, 0, 27, 28, 0, 29, 30,
- 0, 0, 31, 32, 0, 0, 33, 0, 0, 34,
- 35, 36, 158, 0, 0, 56, 108, 161, 0, 0,
- 0, 0, 0, 0, 0, 0, 109, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 110, 111, 0,
- 112, 113, 114, 115, 116, 117, 118, 12, 13, 0,
- 14, 0, 0, 0, 0, 0, 0, 16, 17, 0,
- 18, 0, 19, 0, 0, 0, 0, 0, 0, 0,
- 0, 158, 0, 0, 10, 0, 161, 11, 0, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 21, 22,
- 23, 24, 25, 26, 0, 119, 0, 27, 28, 0,
- 29, 30, 0, 0, 31, 32, 12, 13, 57, 14,
- 0, 34, 35, 36, 0, 0, 16, 17, 0, 18,
- 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
- 204, 0, 0, 10, 0, 0, 11, 0, 0, 20,
- 0, 0, 0, 0, 0, 0, 0, 21, 22, 23,
- 24, 25, 26, 0, 0, 0, 27, 28, 0, 29,
- 30, 0, 0, 31, 32, 12, 13, 33, 14, 0,
- 34, 35, 36, 0, 0, 16, 17, 0, 18, 0,
- 19, 0, 0, 0, 0, 0, 0, 0, 0, 206,
- 0, 0, 10, 0, 0, 11, 0, 0, 20, 0,
- 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
- 25, 26, 0, 0, 0, 27, 28, 0, 29, 30,
- 0, 0, 31, 32, 12, 13, 33, 14, 0, 34,
- 35, 36, 0, 0, 16, 17, 0, 18, 0, 19,
- 0, 0, 0, 0, 0, 0, 0, 0, 221, 0,
- 0, 10, 0, 0, 11, 0, 0, 20, 0, 0,
- 0, 0, 0, 0, 0, 21, 22, 23, 24, 25,
- 26, 0, 0, 0, 27, 28, 0, 29, 30, 0,
- 0, 31, 32, 12, 13, 33, 14, 0, 34, 35,
- 36, 0, 0, 16, 17, 0, 18, 0, 19, 0,
- 0, 0, 0, 0, 0, 0, 0, 204, 0, 0,
- 298, 0, 0, 11, 0, 0, 20, 0, 0, 0,
- 0, 0, 0, 0, 21, 22, 23, 24, 25, 26,
- 0, 0, 0, 27, 28, 0, 29, 30, 0, 0,
- 31, 32, 12, 13, 33, 14, 0, 34, 35, 36,
- 0, 0, 16, 17, 0, 18, 0, 19, 0, 0,
- 0, 0, 0, 0, 0, 0, 206, 0, 0, 298,
- 0, 0, 11, 0, 0, 20, 0, 0, 0, 0,
- 0, 0, 0, 21, 22, 23, 24, 25, 26, 0,
- 0, 0, 27, 28, 0, 29, 30, 0, 0, 31,
- 32, 12, 13, 33, 14, 0, 34, 35, 36, 0,
- 0, 16, 17, 0, 18, 0, 19, 0, 0, 0,
- 0, 0, 0, 0, 0, 221, 0, 0, 298, 0,
- 0, 11, 0, 0, 20, 0, 0, 0, 0, 0,
- 0, 0, 21, 22, 23, 24, 25, 26, 0, 0,
- 0, 27, 28, 0, 29, 30, 0, 0, 31, 32,
- 12, 13, 33, 14, 0, 34, 35, 36, 0, 0,
- 16, 17, 0, 18, 0, 19, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
- 0, 21, 22, 23, 24, 25, 26, 0, 0, 0,
- 27, 28, 0, 29, 30, 0, 0, 31, 32, 0,
- 0, 33, 0, 0, 34, 35, 36, 136, 0, 56,
- 108, 0, 0, 137, 0, 0, 0, 0, 0, 0,
- 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 110, 111, 0, 112, 113, 114, 115, 116, 117,
- 118, 12, 13, 0, 14, 0, 0, 0, 0, 0,
- 0, 16, 17, 0, 18, 0, 19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
- 0, 0, 21, 22, 23, 24, 25, 26, 0, 119,
- 0, 27, 28, 0, 29, 30, 0, 0, 31, 32,
- 0, 0, 57, 0, 0, 34, 35, 36, 136, 0,
- 56, 108, 0, 0, 325, 0, 0, 0, 0, 0,
- 0, 109, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 110, 111, 0, 112, 113, 114, 115, 116,
- 117, 118, 12, 13, 0, 14, 0, 0, 0, 0,
- 0, 0, 16, 17, 0, 18, 0, 19, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
- 0, 0, 0, 21, 22, 23, 24, 25, 26, 0,
- 119, 0, 27, 28, 0, 29, 30, 0, 0, 31,
- 32, 0, 0, 57, 0, 0, 34, 35, 36, 136,
- 0, 56, 108, 0, 0, 336, 0, 0, 0, 0,
- 0, 0, 109, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 110, 111, 0, 112, 113, 114, 115,
- 116, 117, 118, 12, 13, 0, 14, 0, 0, 0,
- 0, 0, 0, 16, 17, 0, 18, 0, 19, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 20, 0, 0, 0,
- 0, 0, 0, 0, 21, 22, 23, 24, 25, 26,
- 0, 119, 0, 27, 28, 0, 29, 30, 0, 0,
- 31, 32, 0, 0, 57, 0, 0, 34, 35, 36,
- 136, 0, 56, 108, 0, 0, 338, 0, 0, 0,
- 0, 0, 0, 109, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 110, 111, 0, 112, 113, 114,
- 115, 116, 117, 118, 12, 13, 0, 14, 0, 0,
- 0, 0, 0, 0, 16, 17, 0, 18, 0, 19,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
- 0, 0, 0, 0, 0, 21, 22, 23, 24, 25,
- 26, 0, 119, 0, 27, 28, 0, 29, 30, 0,
- 0, 31, 32, 0, 0, 57, 0, 0, 34, 35,
- 36, 136, 0, 56, 108, 0, 0, 356, 0, 0,
- 0, 0, 0, 0, 109, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 110, 111, 0, 112, 113,
- 114, 115, 116, 117, 118, 12, 13, 0, 14, 0,
- 0, 0, 0, 0, 0, 16, 17, 0, 18, 0,
- 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,
- 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
- 25, 26, 0, 119, 0, 27, 28, 0, 29, 30,
- 0, 0, 31, 32, 0, 0, 57, 0, 0, 34,
- 35, 36, 136, 0, 56, 108, 0, 0, 358, 0,
- 0, 0, 0, 0, 0, 109, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 110, 111, 0, 112,
- 113, 114, 115, 116, 117, 118, 12, 13, 0, 14,
- 0, 0, 0, 0, 0, 0, 16, 17, 0, 18,
- 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
- 0, 0, 0, 0, 0, 0, 0, 21, 22, 23,
- 24, 25, 26, 0, 119, 0, 27, 28, 0, 29,
- 30, 0, 0, 31, 32, 0, 136, 57, 56, 108,
- 34, 35, 36, 0, 0, 0, 0, 0, 0, 109,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 110, 111, 0, 112, 113, 114, 115, 116, 117, 118,
- 12, 13, 0, 14, 0, 0, 0, 0, 0, 0,
- 16, 17, 0, 18, 0, 19, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
- 0, 21, 22, 23, 24, 25, 26, 0, 119, 0,
- 27, 28, 0, 29, 30, 0, 0, 31, 32, 56,
- 108, 57, 0, 137, 34, 35, 36, 0, 0, 0,
- 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 110, 111, 0, 112, 113, 114, 115, 116, 117,
- 118, 12, 13, 0, 14, 0, 0, 0, 0, 0,
- 0, 16, 17, 0, 18, 0, 19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
- 0, 0, 21, 22, 23, 24, 25, 26, 0, 119,
- 0, 27, 28, 0, 29, 30, 0, 0, 31, 32,
- 56, 108, 57, 0, 0, 34, 35, 36, 0, 0,
- 0, 109, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 110, 111, 0, 112, 113, 114, 115, 116,
- 117, 118, 12, 13, 0, 14, 0, 0, 0, 0,
- 0, 0, 16, 17, 0, 18, 0, 19, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
- 0, 0, 0, 21, 22, 23, 24, 25, 26, 0,
- 119, 270, 27, 28, 0, 29, 30, 0, 0, 31,
- 32, 56, 108, 57, 0, 277, 34, 35, 36, 0,
- 0, 0, 109, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 110, 111, 0, 112, 113, 114, 115,
- 116, 117, 118, 12, 13, 0, 14, 0, 0, 0,
- 0, 0, 0, 16, 17, 0, 18, 0, 19, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 20, 0, 0, 0,
- 0, 0, 0, 0, 21, 22, 23, 24, 25, 26,
- 0, 119, 0, 27, 28, 0, 29, 30, 0, 0,
- 31, 32, 56, 108, 57, 0, 317, 34, 35, 36,
- 0, 0, 0, 109, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 110, 111, 0, 112, 113, 114,
- 115, 116, 117, 118, 12, 13, 0, 14, 0, 0,
- 0, 0, 0, 0, 16, 17, 0, 18, 0, 19,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
- 0, 0, 0, 0, 0, 21, 22, 23, 24, 25,
- 26, 0, 119, 0, 27, 28, 0, 29, 30, 0,
- 0, 31, 32, 56, 108, 57, 0, 319, 34, 35,
- 36, 0, 0, 0, 109, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 110, 111, 0, 112, 113,
- 114, 115, 116, 117, 118, 12, 13, 0, 14, 0,
- 0, 0, 0, 0, 0, 16, 17, 0, 18, 0,
- 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,
- 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
- 25, 26, 0, 119, 0, 27, 28, 0, 29, 30,
- 0, 0, 31, 32, 56, 108, 57, 0, 360, 34,
- 35, 36, 0, 0, 0, 109, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 110, 111, 0, 112,
- 113, 114, 115, 116, 117, 118, 12, 13, 0, 14,
- 0, 0, 0, 0, 0, 0, 16, 17, 0, 18,
- 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
- 0, 0, 0, 0, 0, 0, 0, 21, 22, 23,
- 24, 25, 26, 0, 119, 0, 27, 28, 0, 29,
- 30, 0, 0, 31, 32, 56, 108, 57, 0, 362,
- 34, 35, 36, 0, 0, 0, 109, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 110, 111, 0,
- 112, 113, 114, 115, 116, 117, 118, 12, 13, 0,
- 14, 0, 0, 0, 0, 0, 0, 16, 17, 0,
- 18, 0, 19, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 21, 22,
- 23, 24, 25, 26, 0, 119, 0, 27, 28, 0,
- 29, 30, 0, 0, 31, 32, 0, 0, 57, 0,
- 0, 34, 35, 36, 56, 108, 364, 0, 0, 0,
- 0, 0, 0, 0, 0, 109, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 110, 111, 0, 112,
- 113, 114, 115, 116, 117, 118, 12, 13, 0, 14,
- 0, 0, 0, 0, 0, 0, 16, 17, 0, 18,
- 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
- 0, 0, 0, 0, 0, 0, 0, 21, 22, 23,
- 24, 25, 26, 0, 119, 0, 27, 28, 0, 29,
- 30, 0, 0, 31, 32, 56, 108, 57, 0, 375,
- 34, 35, 36, 0, 0, 0, 109, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 110, 111, 0,
- 112, 113, 114, 115, 116, 117, 118, 12, 13, 0,
- 14, 0, 0, 0, 0, 0, 0, 16, 17, 0,
- 18, 0, 19, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 21, 22,
- 23, 24, 25, 26, 0, 119, 0, 27, 28, 0,
- 29, 30, 0, 0, 31, 32, 56, 108, 57, 0,
- 376, 34, 35, 36, 0, 0, 0, 109, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
- 0, 112, 113, 114, 115, 116, 117, 118, 12, 13,
- 0, 14, 0, 0, 0, 0, 0, 0, 16, 17,
- 0, 18, 0, 19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 20, 0, 0, 0, 0, 0, 0, 0, 21,
- 22, 23, 24, 25, 26, 0, 119, 0, 27, 28,
- 0, 29, 30, 0, 0, 31, 32, 56, 108, 57,
- 0, 377, 34, 35, 36, 0, 0, 0, 109, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
- 111, 0, 112, 113, 114, 115, 116, 117, 118, 12,
- 13, 0, 14, 0, 0, 0, 0, 0, 0, 16,
- 17, 0, 18, 0, 19, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 21, 22, 23, 24, 25, 26, 0, 119, 0, 27,
- 28, 0, 29, 30, 0, 0, 31, 32, 56, 108,
- 57, 0, 0, 34, 35, 36, 0, 0, 0, 109,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 110, 111, 0, 112, 113, 114, 115, 116, 117, 118,
- 12, 13, 0, 14, 0, 0, 0, 0, 0, 0,
- 16, 17, 0, 18, 0, 19, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
- 0, 21, 22, 23, 24, 25, 26, 0, 119, 0,
- 27, 28, 0, 29, 30, 0, 0, 31, 32, 56,
- 108, 57, 0, 0, 34, 35, 36, 0, 0, 0,
- 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 110, 0, 0, 112, 113, 114, 115, 116, 117,
- 118, 12, 13, 0, 14, 0, 0, 0, 0, 0,
- 0, 16, 17, 0, 18, 0, 19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
- 0, 0, 21, 22, 23, 24, 25, 26, 0, 56,
- 108, 27, 28, 0, 29, 30, 0, 0, 31, 32,
- 109, 0, 57, 0, 0, 34, 35, 36, 0, 0,
- 0, 0, 0, 0, 112, 113, 114, 115, 116, 117,
- 118, 12, 13, 0, 14, 0, 0, 0, 0, 0,
- 0, 16, 17, 0, 18, 0, 19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
- 0, 0, 21, 22, 23, 24, 25, 26, 0, 56,
--32768, 27, 28, 0, 29, 30, 0, 0, 31, 32,
--32768, 0, 57, 0, 0, 34, 35, 36, 0, 0,
- 0, 0, 0, 0,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 12, 13, 0, 14, 0, 56, 0, 0, 0,
- 0, 16, 17, 0, 18, 0, 19, 255, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
- 0, 0, 0, 0, 20, 0, 0, 256, 12, 13,
- 0, 14, 21, 22, 23, 24, 25, 26, 16, 17,
- 0, 18, 28, 19, 29, 30, 0, 0, 31, 32,
- 0, 0, 57, 0, 0, 34, 35, 36, 0, 0,
- 0, 20, 0, 0, 0, 0, 0, 0, 0, 21,
- 22, 23, 24, 25, 26, 0, 257, 334, 27, 28,
- 56, 29, 30, 0, 0, 31, 32, 0, 0, 57,
- 0, 255, 34, 35, 36, 0, 0, 0, 0, 0,
- 0, 0, 110, 111, 0, 0, 0, 0, 0, 0,
- 0, 256, 12, 13, 0, 14, 0, 0, 0, 0,
- 0, 0, 16, 17, 0, 18, 0, 19, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
- 56, 0, 0, 21, 22, 23, 24, 25, 26, 0,
- 257, 255, 27, 28, 0, 29, 30, 0, 0, 31,
- 32, 0, 110, 57, 0, 0, 34, 35, 36, 0,
- 0, 256, 12, 13, 0, 14, 0, 0, 0, 0,
- 0, 0, 16, 17, 0, 18, 0, 19, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
- 0, 0, 11, 142, 0, 20, 0, 0, 0, 0,
- 0, 0, 0, 21, 22, 23, 24, 25, 26, 0,
- 0, 0, 27, 28, 0, 29, 30, 0, 0, 31,
- 32, 12, 13, 57, 14, 0, 34, 35, 36, 0,
- 0, 16, 17, 0, 18, 0, 19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 10, 0,
- 0, 11, 150, 0, 20, 0, 0, 0, 0, 0,
- 0, 0, 21, 22, 23, 24, 25, 26, 0, 0,
- 0, 27, 28, 0, 29, 30, 0, 0, 31, 32,
- 12, 13, 33, 14, 0, 34, 35, 36, 0, 0,
- 16, 17, 0, 18, 0, 19, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 20, 0, 0, 56, 0, 0, 0,
- 0, 21, 22, 23, 24, 25, 26, 255, 0, 0,
- 27, 28, 0, 29, 30, 0, 0, 31, 32, 0,
- 0, 33, 0, 0, 34, 35, 36, 256, 12, 13,
- 0, 14, 0, 0, 0, 0, 0, 0, 16, 17,
- 0, 18, 0, 19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 10, 0, 0, 11, 0,
- 0, 20, 0, 0, 0, 0, 0, 0, 0, 21,
- 22, 23, 24, 25, 26, 0, 0, 0, 27, 28,
- 0, 29, 30, 0, 0, 31, 32, 12, 13, 57,
- 14, 0, 34, 35, 36, 0, 0, 16, 17, 0,
- 18, 0, 19, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56, 0, 0, 11, 0, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 21, 22,
- 23, 24, 25, 26, 0, 0, 0, 27, 28, 0,
- 29, 30, 0, 0, 31, 32, 12, 13, 33, 14,
- 0, 34, 35, 36, 0, 0, 16, 17, 0, 18,
- 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 179, 0, 0, 11, 0, 0, 20,
- 0, 0, 0, 0, 0, 0, 0, 21, 22, 23,
- 24, 25, 26, 0, 0, 0, 27, 28, 0, 29,
- 30, 0, 0, 31, 32, 12, 13, 33, 14, 0,
- 34, 35, 36, 0, 0, 16, 17, 0, 18, 0,
- 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 56, 0, 0, 0, 0, 0, 20, 0,
- 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
- 25, 26, 0, 0, 0, 27, 28, 0, 29, 30,
- 0, 0, 31, 32, 12, 13, 33, 14, 0, 34,
- 35, 36, 0, 0, 16, 17, 0, 18, 0, 19,
- 0, 0, 0, 0, 0, 0, 0, 0, 210, 0,
- 0, 298, 0, 0, 11, 0, 0, 20, 0, 0,
- 0, 0, 0, 0, 0, 21, 22, 23, 24, 25,
- 26, 0, 0, 0, 27, 28, 0, 29, 30, 0,
- 0, 31, 32, 12, 13, 57, 14, 0, 34, 35,
- 36, 0, 0, 16, 17, 0, 18, 0, 19, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 20, 0, 0, 56,
- 0, 0, 0, 0, 21, 22, 23, 24, 25, 26,
--32768, 0, 0, 27, 28, 0, 29, 30, 0, 0,
- 31, 32, 0, 0, 33, 0, 0, 34, 35, 36,
--32768, 12, 13, 0, 14, 0, 56, 0, 0, 0,
- 0, 16, 17, 0, 18, 0, 19, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 20, 0, 0, 0, 12, 13,
- 0, 14, 21, 22, 23, 24, 25, 26, 16, 17,
- 0, 18, 28, 19, 29, 30, 0, 0, 31, 32,
- 0, 0, 57, 0, 0, 34, 35, 36, 0, 0,
- 0, 20, 0, 0, 0, 0, 0, 0, 0, 21,
- 22, 23, 24, 25, 26, 0, 0, 0, 27, 28,
- 0, 29, 30, 0, 0, 31, 32, 0, 0, 57,
- 0, 0, 34, 35, 36
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -322
+static const yytype_int16 yypact[] =
+{
+ 680, -322, -322, -322, 25, 1583, -322, 17, -322, 34,
+ 34, -322, 4136, -322, -322, 39, 4490, 16, -322, -322,
+ 44, 63, 74, -322, -322, -322, 92, -322, -322, 255,
+ 102, 133, 4490, 4490, 4195, -40, -40, 4490, 811, 113,
+ -322, 55, 3462, -322, -322, 143, -4, -35, 76, -322,
+ -322, 811, 811, 1674, 62, -12, 3959, 4136, 4490, -4,
+ 52, -322, -322, 160, 4136, 4136, 4136, 4018, 4490, 83,
+ 4136, 4136, 66, 66, -322, 66, -322, -322, -322, -322,
+ -322, 176, 82, 82, -33, -322, 2198, 188, 190, 82,
+ 82, -322, -322, 2198, 199, 178, -322, 1424, 811, 3462,
+ 4254, 82, -322, 879, -322, 4136, 811, 1583, 117, 4136,
+ -322, -322, 4136, 4136, 4136, 4136, 4136, 4136, -33, 4136,
+ 2257, 2316, -4, 4136, 4313, 4490, 4490, 4490, 4490, 4490,
+ 4136, -322, -322, 4136, 947, 1015, -322, -322, 2375, 173,
+ 2375, 203, -322, 124, 3462, 2643, 138, 2038, 2038, 140,
+ -322, 149, -4, 4490, 2038, 2038, -322, 217, -322, 176,
+ 217, -322, -322, 212, 2139, -322, 1491, 4136, -322, -322,
+ 2139, -322, 4136, -322, 1424, 152, 1083, 4136, 3841, 223,
+ 22, -322, -4, -2, -322, -322, -322, 1424, 34, 1151,
+ -322, -40, 3713, -322, 3713, 3713, 3713, 3713, 3713, 3713,
+ -322, 2734, -322, 3633, -322, 3553, 2038, 223, 4490, 66,
+ 169, 169, 66, 66, 66, 3462, 21, -322, -322, -322,
+ 3462, -33, 3462, -322, -322, 2375, -322, 154, 2375, 2375,
+ -322, -322, -4, 2375, 31, -322, -322, 4136, -322, 219,
+ -322, -11, 2825, -322, 2825, -322, -322, 1220, -322, 224,
+ 155, 4372, -33, 4372, 2434, 2493, -4, 2552, 4490, 4490,
+ 4490, 4372, -322, 811, -322, -322, 4136, 2375, 2375, -4,
+ -322, -322, 3462, -322, 4, 226, 2916, 230, 3007, 231,
+ 1765, 189, 68, 106, -33, 226, 226, 153, -322, -322,
+ -322, 204, 4136, 4431, -322, -322, 3772, 4077, 3900, 3841,
+ -4, -4, -4, 3841, 1288, 3462, 1856, 1947, -322, -322,
+ 34, -322, -322, -322, -322, -322, 2375, -322, 2375, -322,
+ 176, 4136, 239, 245, -33, 192, 4372, -322, -322, 56,
+ -322, 56, 811, 3098, 3189, 247, 1558, 3280, 226, 4136,
+ -322, 204, 3841, 250, 258, 1356, -322, -322, -322, 239,
+ 176, 1424, 3371, -322, -322, -322, 226, 1558, -322, 82,
+ 1424, 239, -322, -322, 226, 1424, -322
};
-static const short yycheck[] = { 14,
- 33, 4, 50, 51, 7, 8, 179, 161, 69, 18,
- 9, 168, 27, 9, 44, 13, 31, 32, 33, 34,
- 35, 36, 65, 66, 68, 11, 41, 81, 68, 10,
- 11, 15, 346, 83, 43, 38, 86, 52, 36, 89,
- 90, 39, 57, 93, 246, 44, 248, 12, 109, 12,
- 98, 101, 67, 44, 10, 85, 86, 87, 106, 373,
- 12, 18, 123, 19, 108, 109, 15, 100, 108, 109,
- 12, 9, 12, 255, 91, 257, 258, 259, 10, 261,
- 110, 108, 109, 265, 99, 100, 85, 19, 87, 85,
- 133, 10, 10, 41, 85, 9, 87, 16, 16, 10,
- 14, 52, 53, 9, 107, 16, 44, 161, 14, 124,
- 125, 126, 127, 128, 129, 10, 166, 101, 102, 103,
- 104, 16, 172, 107, 85, 298, 12, 88, 330, 144,
- 145, 10, 147, 148, 10, 289, 107, 16, 153, 154,
- 16, 156, 157, 12, 10, 12, 9, 85, 86, 87,
- 16, 166, 334, 10, 103, 104, 12, 172, 107, 16,
- 12, 363, 12, 12, 12, 180, 9, 84, 41, 230,
- 231, 44, 110, 94, 328, 9, 15, 379, 193, 194,
- 14, 196, 197, 198, 199, 200, 201, 190, 203, 346,
- 205, 85, 207, 208, 255, 210, 147, 148, 241, 43,
- 10, 118, 217, 154, 155, 156, 157, 222, 9, 224,
- 364, 18, 85, 86, 87, 9, 373, 78, 14, 267,
- 14, 9, 255, 9, 257, 258, 259, 16, 261, 16,
- 181, 246, 265, 248, 99, 289, 16, 110, 43, 12,
- 255, 180, 257, 258, 259, 16, 261, 262, 263, 264,
- 265, 168, 16, 16, 0, 0, 40, 208, 209, 105,
- 107, 276, -1, 324, 14, 280, -1, 282, -1, 284,
- 285, -1, 287, -1, 328, -1, -1, -1, 229, -1,
- -1, 31, 32, 33, 299, -1, 36, 302, 303, 304,
- 305, 41, 340, -1, 309, -1, 311, 312, 313, -1,
- -1, 334, 52, 254, -1, -1, 223, 57, -1, -1,
- 364, -1, -1, 316, -1, -1, -1, 67, -1, 334,
- 237, -1, 337, -1, 339, 375, 341, 342, 343, -1,
- 345, -1, 347, 284, 285, 286, 287, 352, -1, 256,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 99,
- 100, 366, -1, -1, -1, 370, 371, 180, -1, -1,
- 299, 312, 313, 302, 303, 304, 305, -1, -1, -1,
- 309, -1, -1, 290, 124, 125, 126, 127, 128, 129,
- -1, -1, 333, -1, -1, -1, -1, -1, -1, -1,
- 341, 342, -1, -1, 144, 145, 97, 147, 148, -1,
- -1, -1, 103, 153, 154, -1, 156, 157, -1, -1,
- -1, -1, -1, 352, -1, 332, 166, -1, -1, -1,
- -1, -1, 172, -1, -1, -1, -1, -1, -1, -1,
- 180, -1, -1, 134, 135, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 194, -1, 196, 197, 198, 199,
- 200, 201, -1, 203, -1, 205, -1, 207, 208, -1,
- 210, -1, -1, -1, -1, -1, -1, 217, -1, -1,
- -1, -1, 222, -1, 224, 176, 299, 178, -1, 302,
- 303, 304, 305, -1, -1, -1, 309, -1, 189, -1,
- 191, -1, -1, -1, -1, -1, 246, -1, 248, -1,
- -1, -1, -1, -1, -1, 255, -1, 257, 258, 259,
- -1, 261, 262, 263, 264, 265, -1, -1, -1, -1,
- -1, 4, -1, -1, -1, -1, 276, 10, -1, 352,
- 280, -1, 282, -1, 284, 285, -1, 287, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 299,
- 251, -1, 302, 303, 304, 305, -1, -1, -1, 309,
- -1, 311, 312, 313, -1, -1, -1, -1, -1, -1,
- -1, -1, 55, 56, -1, -1, -1, -1, -1, -1,
- 63, 64, 65, 66, 334, -1, 69, 70, 71, -1,
- -1, 341, 342, 343, -1, 345, -1, 347, -1, -1,
- -1, -1, 352, 86, -1, -1, -1, -1, -1, 310,
- 93, -1, -1, -1, -1, -1, 366, -1, -1, -1,
- 370, 371, 105, -1, 107, -1, 109, -1, -1, 112,
- 113, 114, 115, 116, 117, -1, 119, 120, 121, -1,
- 123, -1, -1, -1, -1, -1, -1, 130, -1, -1,
- 133, -1, -1, -1, 355, 138, -1, 140, -1, -1,
- -1, -1, -1, -1, 365, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 378, -1, -1,
- -1, -1, 383, -1, -1, -1, 169, -1, -1, -1,
- -1, 174, -1, -1, -1, -1, 179, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, 1, -1, -1, -1,
- -1, -1, 7, 8, 9, -1, 11, 12, -1, 14,
- 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 227, -1, -1, 230, 231, -1,
- -1, -1, 235, 236, -1, 238, -1, -1, 241, 44,
- 45, -1, 47, -1, -1, -1, -1, -1, 53, 54,
- 55, -1, 57, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 270, 271, 272,
- -1, -1, 77, -1, -1, -1, -1, -1, -1, -1,
- 85, 86, 87, 88, 89, 90, -1, -1, -1, 94,
- 95, -1, 97, 98, -1, 298, 101, 102, -1, -1,
- 105, -1, -1, 108, 109, 110, -1, -1, -1, -1,
- -1, -1, -1, -1, 1, -1, -1, -1, 321, 322,
- -1, 324, 9, 326, 11, 12, 329, 14, 15, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 349, -1, -1, -1,
- -1, -1, -1, -1, 357, -1, 359, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, -1, 54, 55, 56,
- 57, -1, 59, 60, 61, -1, -1, -1, -1, -1,
- -1, 1, -1, -1, -1, -1, -1, -1, 75, 76,
- 77, 11, 12, -1, 14, 15, -1, 17, 85, 86,
- 87, 88, 89, 90, -1, -1, -1, 94, 95, 96,
- 97, 98, 99, -1, 101, 102, -1, -1, 105, -1,
- -1, 108, 109, 110, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, -1, 54, 55, 56, 57, -1, 59,
- 60, 61, -1, -1, -1, -1, -1, -1, 1, -1,
- -1, -1, -1, -1, -1, 75, 76, 77, 11, 12,
- -1, 14, 15, -1, 17, 85, 86, 87, 88, 89,
- 90, -1, -1, -1, 94, 95, 96, 97, 98, 99,
- -1, 101, 102, -1, -1, 105, -1, -1, 108, 109,
- 110, 44, 45, 46, 47, 48, 49, 50, 51, 52,
- -1, 54, 55, 56, 57, -1, 59, 60, 61, -1,
- -1, -1, -1, -1, -1, 1, -1, -1, -1, -1,
- -1, -1, 75, 76, 77, 11, 12, -1, 14, 15,
- -1, 17, 85, 86, 87, 88, 89, 90, -1, -1,
- -1, 94, 95, 96, 97, 98, 99, -1, 101, 102,
- -1, -1, 105, -1, -1, 108, 109, 110, 44, 45,
- 46, 47, 48, 49, 50, 51, 52, -1, 54, 55,
- 56, 57, -1, 59, 60, 61, -1, -1, -1, -1,
- -1, -1, 1, -1, -1, -1, -1, -1, -1, 75,
- 76, 77, 11, 12, -1, 14, 15, -1, 17, 85,
- 86, 87, 88, 89, 90, -1, -1, -1, 94, 95,
- 96, 97, 98, 99, -1, 101, 102, -1, -1, 105,
- -1, -1, 108, 109, 110, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, -1, 54, 55, 56, 57, -1,
- 59, 60, 61, -1, -1, -1, -1, -1, -1, 1,
- -1, -1, -1, -1, -1, -1, 75, 76, 77, 11,
- 12, -1, 14, 15, -1, 17, 85, 86, 87, 88,
- 89, 90, -1, -1, -1, 94, 95, 96, 97, 98,
- 99, -1, 101, 102, -1, -1, 105, -1, -1, 108,
- 109, 110, 44, 45, 46, 47, 48, 49, 50, 51,
- 52, -1, 54, 55, 56, 57, -1, 59, 60, 61,
- -1, -1, -1, -1, -1, -1, -1, -1, 1, -1,
- -1, -1, -1, 75, 76, 77, 9, -1, 11, 12,
- -1, 14, 15, 85, 86, 87, 88, 89, 90, -1,
- -1, -1, 94, 95, 96, 97, 98, 99, -1, 101,
- 102, -1, -1, 105, -1, -1, 108, 109, 110, -1,
- -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
- -1, 54, 55, 56, 57, -1, 59, 60, 61, -1,
- -1, -1, -1, -1, -1, 1, -1, -1, -1, -1,
- -1, -1, 75, 76, 77, 11, 12, -1, 14, 15,
- -1, 17, 85, 86, 87, 88, 89, 90, -1, -1,
- -1, 94, 95, 96, 97, 98, 99, -1, 101, 102,
- -1, -1, 105, -1, -1, 108, 109, 110, 44, 45,
- 46, 47, 48, 49, 50, 51, 52, -1, 54, 55,
- 56, 57, -1, 59, 60, 61, -1, -1, -1, -1,
- -1, -1, 1, -1, -1, -1, -1, -1, -1, 75,
- 76, 77, 11, 12, -1, 14, 15, -1, 17, 85,
- 86, 87, 88, 89, 90, -1, -1, -1, 94, 95,
- 96, 97, 98, 99, -1, 101, 102, -1, -1, 105,
- -1, -1, 108, 109, 110, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, -1, 54, 55, 56, 57, -1,
- 59, 60, 61, -1, -1, -1, -1, -1, -1, 1,
- -1, -1, -1, -1, -1, -1, 75, 76, 77, 11,
- 12, -1, 14, 15, -1, -1, 85, 86, 87, 88,
- 89, 90, -1, -1, -1, 94, 95, 96, 97, 98,
- 99, -1, 101, 102, -1, -1, 105, -1, -1, 108,
- 109, 110, 44, 45, 46, 47, 48, 49, 50, 51,
- 52, -1, 54, 55, 56, 57, -1, 59, 60, 61,
- -1, -1, -1, -1, -1, -1, 1, -1, -1, -1,
- -1, -1, -1, 75, 76, 77, -1, 12, -1, 14,
- 15, -1, -1, 85, 86, 87, 88, 89, 90, -1,
- -1, -1, 94, 95, 96, 97, 98, 99, -1, 101,
- 102, -1, -1, 105, -1, -1, 108, 109, 110, 44,
- 45, -1, 47, -1, 49, -1, -1, -1, -1, 54,
- 55, -1, 57, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, 1, -1, -1, -1, -1, -1, -1,
- 75, 76, 77, -1, 12, -1, -1, 15, 16, -1,
- 85, 86, 87, 88, 89, 90, -1, -1, -1, 94,
- 95, -1, 97, 98, -1, -1, 101, 102, -1, -1,
- 105, -1, -1, 108, 109, 110, 44, 45, -1, 47,
- -1, 49, -1, -1, -1, -1, 54, 55, -1, 57,
- -1, 59, -1, -1, -1, -1, -1, -1, 7, 8,
- -1, -1, 11, 12, -1, -1, 15, 75, 76, 77,
- -1, -1, -1, -1, -1, -1, -1, 85, 86, 87,
- 88, 89, 90, -1, -1, -1, 94, 95, -1, 97,
- 98, -1, -1, 101, 102, 44, 45, 105, 47, -1,
- 108, 109, 110, -1, 53, 54, 55, -1, 57, -1,
- 59, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 77, -1,
- -1, -1, -1, -1, -1, -1, 85, 86, 87, 88,
- 89, 90, -1, -1, -1, 94, 95, -1, 97, 98,
- -1, -1, 101, 102, -1, -1, 105, -1, -1, 108,
- 109, 110, 9, -1, -1, 12, 13, 14, -1, -1,
- -1, -1, -1, -1, -1, -1, 23, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 34, 35, -1,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, 54, 55, -1,
- 57, -1, 59, -1, -1, -1, -1, -1, -1, -1,
- -1, 9, -1, -1, 12, -1, 14, 15, -1, -1,
- 77, -1, -1, -1, -1, -1, -1, -1, 85, 86,
- 87, 88, 89, 90, -1, 92, -1, 94, 95, -1,
- 97, 98, -1, -1, 101, 102, 44, 45, 105, 47,
- -1, 108, 109, 110, -1, -1, 54, 55, -1, 57,
- -1, 59, -1, -1, -1, -1, -1, -1, -1, -1,
- 9, -1, -1, 12, -1, -1, 15, -1, -1, 77,
- -1, -1, -1, -1, -1, -1, -1, 85, 86, 87,
- 88, 89, 90, -1, -1, -1, 94, 95, -1, 97,
- 98, -1, -1, 101, 102, 44, 45, 105, 47, -1,
- 108, 109, 110, -1, -1, 54, 55, -1, 57, -1,
- 59, -1, -1, -1, -1, -1, -1, -1, -1, 9,
- -1, -1, 12, -1, -1, 15, -1, -1, 77, -1,
- -1, -1, -1, -1, -1, -1, 85, 86, 87, 88,
- 89, 90, -1, -1, -1, 94, 95, -1, 97, 98,
- -1, -1, 101, 102, 44, 45, 105, 47, -1, 108,
- 109, 110, -1, -1, 54, 55, -1, 57, -1, 59,
- -1, -1, -1, -1, -1, -1, -1, -1, 9, -1,
- -1, 12, -1, -1, 15, -1, -1, 77, -1, -1,
- -1, -1, -1, -1, -1, 85, 86, 87, 88, 89,
- 90, -1, -1, -1, 94, 95, -1, 97, 98, -1,
- -1, 101, 102, 44, 45, 105, 47, -1, 108, 109,
- 110, -1, -1, 54, 55, -1, 57, -1, 59, -1,
- -1, -1, -1, -1, -1, -1, -1, 9, -1, -1,
- 12, -1, -1, 15, -1, -1, 77, -1, -1, -1,
- -1, -1, -1, -1, 85, 86, 87, 88, 89, 90,
- -1, -1, -1, 94, 95, -1, 97, 98, -1, -1,
- 101, 102, 44, 45, 105, 47, -1, 108, 109, 110,
- -1, -1, 54, 55, -1, 57, -1, 59, -1, -1,
- -1, -1, -1, -1, -1, -1, 9, -1, -1, 12,
- -1, -1, 15, -1, -1, 77, -1, -1, -1, -1,
- -1, -1, -1, 85, 86, 87, 88, 89, 90, -1,
- -1, -1, 94, 95, -1, 97, 98, -1, -1, 101,
- 102, 44, 45, 105, 47, -1, 108, 109, 110, -1,
- -1, 54, 55, -1, 57, -1, 59, -1, -1, -1,
- -1, -1, -1, -1, -1, 9, -1, -1, 12, -1,
- -1, 15, -1, -1, 77, -1, -1, -1, -1, -1,
- -1, -1, 85, 86, 87, 88, 89, 90, -1, -1,
- -1, 94, 95, -1, 97, 98, -1, -1, 101, 102,
- 44, 45, 105, 47, -1, 108, 109, 110, -1, -1,
- 54, 55, -1, 57, -1, 59, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, -1, -1, -1, -1,
- -1, 85, 86, 87, 88, 89, 90, -1, -1, -1,
- 94, 95, -1, 97, 98, -1, -1, 101, 102, -1,
- -1, 105, -1, -1, 108, 109, 110, 10, -1, 12,
- 13, -1, -1, 16, -1, -1, -1, -1, -1, -1,
- 23, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 34, 35, -1, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, 54, 55, -1, 57, -1, 59, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, -1, -1,
- -1, -1, 85, 86, 87, 88, 89, 90, -1, 92,
- -1, 94, 95, -1, 97, 98, -1, -1, 101, 102,
- -1, -1, 105, -1, -1, 108, 109, 110, 10, -1,
- 12, 13, -1, -1, 16, -1, -1, -1, -1, -1,
- -1, 23, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 34, 35, -1, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 54, 55, -1, 57, -1, 59, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
- -1, -1, -1, 85, 86, 87, 88, 89, 90, -1,
- 92, -1, 94, 95, -1, 97, 98, -1, -1, 101,
- 102, -1, -1, 105, -1, -1, 108, 109, 110, 10,
- -1, 12, 13, -1, -1, 16, -1, -1, -1, -1,
- -1, -1, 23, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 34, 35, -1, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, -1, 47, -1, -1, -1,
- -1, -1, -1, 54, 55, -1, 57, -1, 59, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
- -1, -1, -1, -1, 85, 86, 87, 88, 89, 90,
- -1, 92, -1, 94, 95, -1, 97, 98, -1, -1,
- 101, 102, -1, -1, 105, -1, -1, 108, 109, 110,
- 10, -1, 12, 13, -1, -1, 16, -1, -1, -1,
- -1, -1, -1, 23, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 34, 35, -1, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, -1, 47, -1, -1,
- -1, -1, -1, -1, 54, 55, -1, 57, -1, 59,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 77, -1, -1,
- -1, -1, -1, -1, -1, 85, 86, 87, 88, 89,
- 90, -1, 92, -1, 94, 95, -1, 97, 98, -1,
- -1, 101, 102, -1, -1, 105, -1, -1, 108, 109,
- 110, 10, -1, 12, 13, -1, -1, 16, -1, -1,
- -1, -1, -1, -1, 23, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 34, 35, -1, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, -1, 47, -1,
- -1, -1, -1, -1, -1, 54, 55, -1, 57, -1,
- 59, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 77, -1,
- -1, -1, -1, -1, -1, -1, 85, 86, 87, 88,
- 89, 90, -1, 92, -1, 94, 95, -1, 97, 98,
- -1, -1, 101, 102, -1, -1, 105, -1, -1, 108,
- 109, 110, 10, -1, 12, 13, -1, -1, 16, -1,
- -1, -1, -1, -1, -1, 23, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 34, 35, -1, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, 54, 55, -1, 57,
- -1, 59, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 77,
- -1, -1, -1, -1, -1, -1, -1, 85, 86, 87,
- 88, 89, 90, -1, 92, -1, 94, 95, -1, 97,
- 98, -1, -1, 101, 102, -1, 10, 105, 12, 13,
- 108, 109, 110, -1, -1, -1, -1, -1, -1, 23,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 34, 35, -1, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
- 54, 55, -1, 57, -1, 59, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, -1, -1, -1, -1,
- -1, 85, 86, 87, 88, 89, 90, -1, 92, -1,
- 94, 95, -1, 97, 98, -1, -1, 101, 102, 12,
- 13, 105, -1, 16, 108, 109, 110, -1, -1, -1,
- 23, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 34, 35, -1, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, 54, 55, -1, 57, -1, 59, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, -1, -1,
- -1, -1, 85, 86, 87, 88, 89, 90, -1, 92,
- -1, 94, 95, -1, 97, 98, -1, -1, 101, 102,
- 12, 13, 105, -1, -1, 108, 109, 110, -1, -1,
- -1, 23, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 34, 35, -1, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 54, 55, -1, 57, -1, 59, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
- -1, -1, -1, 85, 86, 87, 88, 89, 90, -1,
- 92, 93, 94, 95, -1, 97, 98, -1, -1, 101,
- 102, 12, 13, 105, -1, 16, 108, 109, 110, -1,
- -1, -1, 23, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 34, 35, -1, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, -1, 47, -1, -1, -1,
- -1, -1, -1, 54, 55, -1, 57, -1, 59, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 77, -1, -1, -1,
- -1, -1, -1, -1, 85, 86, 87, 88, 89, 90,
- -1, 92, -1, 94, 95, -1, 97, 98, -1, -1,
- 101, 102, 12, 13, 105, -1, 16, 108, 109, 110,
- -1, -1, -1, 23, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 34, 35, -1, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, -1, 47, -1, -1,
- -1, -1, -1, -1, 54, 55, -1, 57, -1, 59,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 77, -1, -1,
- -1, -1, -1, -1, -1, 85, 86, 87, 88, 89,
- 90, -1, 92, -1, 94, 95, -1, 97, 98, -1,
- -1, 101, 102, 12, 13, 105, -1, 16, 108, 109,
- 110, -1, -1, -1, 23, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 34, 35, -1, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, -1, 47, -1,
- -1, -1, -1, -1, -1, 54, 55, -1, 57, -1,
- 59, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 77, -1,
- -1, -1, -1, -1, -1, -1, 85, 86, 87, 88,
- 89, 90, -1, 92, -1, 94, 95, -1, 97, 98,
- -1, -1, 101, 102, 12, 13, 105, -1, 16, 108,
- 109, 110, -1, -1, -1, 23, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 34, 35, -1, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, 54, 55, -1, 57,
- -1, 59, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 77,
- -1, -1, -1, -1, -1, -1, -1, 85, 86, 87,
- 88, 89, 90, -1, 92, -1, 94, 95, -1, 97,
- 98, -1, -1, 101, 102, 12, 13, 105, -1, 16,
- 108, 109, 110, -1, -1, -1, 23, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 34, 35, -1,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, 54, 55, -1,
- 57, -1, 59, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, -1, -1, -1, -1, 85, 86,
- 87, 88, 89, 90, -1, 92, -1, 94, 95, -1,
- 97, 98, -1, -1, 101, 102, -1, -1, 105, -1,
- -1, 108, 109, 110, 12, 13, 14, -1, -1, -1,
- -1, -1, -1, -1, -1, 23, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 34, 35, -1, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, -1, 47,
- -1, -1, -1, -1, -1, -1, 54, 55, -1, 57,
- -1, 59, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 77,
- -1, -1, -1, -1, -1, -1, -1, 85, 86, 87,
- 88, 89, 90, -1, 92, -1, 94, 95, -1, 97,
- 98, -1, -1, 101, 102, 12, 13, 105, -1, 16,
- 108, 109, 110, -1, -1, -1, 23, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 34, 35, -1,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, 54, 55, -1,
- 57, -1, 59, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 77, -1, -1, -1, -1, -1, -1, -1, 85, 86,
- 87, 88, 89, 90, -1, 92, -1, 94, 95, -1,
- 97, 98, -1, -1, 101, 102, 12, 13, 105, -1,
- 16, 108, 109, 110, -1, -1, -1, 23, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 34, 35,
- -1, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
- -1, 57, -1, 59, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 77, -1, -1, -1, -1, -1, -1, -1, 85,
- 86, 87, 88, 89, 90, -1, 92, -1, 94, 95,
- -1, 97, 98, -1, -1, 101, 102, 12, 13, 105,
- -1, 16, 108, 109, 110, -1, -1, -1, 23, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 34,
- 35, -1, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, -1, 47, -1, -1, -1, -1, -1, -1, 54,
- 55, -1, 57, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 77, -1, -1, -1, -1, -1, -1, -1,
- 85, 86, 87, 88, 89, 90, -1, 92, -1, 94,
- 95, -1, 97, 98, -1, -1, 101, 102, 12, 13,
- 105, -1, -1, 108, 109, 110, -1, -1, -1, 23,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 34, 35, -1, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, -1, 47, -1, -1, -1, -1, -1, -1,
- 54, 55, -1, 57, -1, 59, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, -1, -1, -1, -1,
- -1, 85, 86, 87, 88, 89, 90, -1, 92, -1,
- 94, 95, -1, 97, 98, -1, -1, 101, 102, 12,
- 13, 105, -1, -1, 108, 109, 110, -1, -1, -1,
- 23, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 34, -1, -1, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, 54, 55, -1, 57, -1, 59, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, -1, -1,
- -1, -1, 85, 86, 87, 88, 89, 90, -1, 12,
- 13, 94, 95, -1, 97, 98, -1, -1, 101, 102,
- 23, -1, 105, -1, -1, 108, 109, 110, -1, -1,
- -1, -1, -1, -1, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
- -1, 54, 55, -1, 57, -1, 59, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, -1, -1,
- -1, -1, 85, 86, 87, 88, 89, 90, -1, 12,
- 13, 94, 95, -1, 97, 98, -1, -1, 101, 102,
- 23, -1, 105, -1, -1, 108, 109, 110, -1, -1,
- -1, -1, -1, -1, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, -1, 47, -1, 12, -1, -1, -1,
- -1, 54, 55, -1, 57, -1, 59, 23, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 34, 35,
- -1, -1, -1, -1, 77, -1, -1, 43, 44, 45,
- -1, 47, 85, 86, 87, 88, 89, 90, 54, 55,
- -1, 57, 95, 59, 97, 98, -1, -1, 101, 102,
- -1, -1, 105, -1, -1, 108, 109, 110, -1, -1,
- -1, 77, -1, -1, -1, -1, -1, -1, -1, 85,
- 86, 87, 88, 89, 90, -1, 92, 93, 94, 95,
- 12, 97, 98, -1, -1, 101, 102, -1, -1, 105,
- -1, 23, 108, 109, 110, -1, -1, -1, -1, -1,
- -1, -1, 34, 35, -1, -1, -1, -1, -1, -1,
- -1, 43, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 54, 55, -1, 57, -1, 59, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 77, -1, -1, -1, -1,
- 12, -1, -1, 85, 86, 87, 88, 89, 90, -1,
- 92, 23, 94, 95, -1, 97, 98, -1, -1, 101,
- 102, -1, 34, 105, -1, -1, 108, 109, 110, -1,
- -1, 43, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 54, 55, -1, 57, -1, 59, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 12,
- -1, -1, 15, 16, -1, 77, -1, -1, -1, -1,
- -1, -1, -1, 85, 86, 87, 88, 89, 90, -1,
- -1, -1, 94, 95, -1, 97, 98, -1, -1, 101,
- 102, 44, 45, 105, 47, -1, 108, 109, 110, -1,
- -1, 54, 55, -1, 57, -1, 59, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
- -1, 15, 16, -1, 77, -1, -1, -1, -1, -1,
- -1, -1, 85, 86, 87, 88, 89, 90, -1, -1,
- -1, 94, 95, -1, 97, 98, -1, -1, 101, 102,
- 44, 45, 105, 47, -1, 108, 109, 110, -1, -1,
- 54, 55, -1, 57, -1, 59, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 77, -1, -1, 12, -1, -1, -1,
- -1, 85, 86, 87, 88, 89, 90, 23, -1, -1,
- 94, 95, -1, 97, 98, -1, -1, 101, 102, -1,
- -1, 105, -1, -1, 108, 109, 110, 43, 44, 45,
- -1, 47, -1, -1, -1, -1, -1, -1, 54, 55,
- -1, 57, -1, 59, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 12, -1, -1, 15, -1,
- -1, 77, -1, -1, -1, -1, -1, -1, -1, 85,
- 86, 87, 88, 89, 90, -1, -1, -1, 94, 95,
- -1, 97, 98, -1, -1, 101, 102, 44, 45, 105,
- 47, -1, 108, 109, 110, -1, -1, 54, 55, -1,
- 57, -1, 59, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 12, -1, -1, 15, -1, -1,
- 77, -1, -1, -1, -1, -1, -1, -1, 85, 86,
- 87, 88, 89, 90, -1, -1, -1, 94, 95, -1,
- 97, 98, -1, -1, 101, 102, 44, 45, 105, 47,
- -1, 108, 109, 110, -1, -1, 54, 55, -1, 57,
- -1, 59, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 12, -1, -1, 15, -1, -1, 77,
- -1, -1, -1, -1, -1, -1, -1, 85, 86, 87,
- 88, 89, 90, -1, -1, -1, 94, 95, -1, 97,
- 98, -1, -1, 101, 102, 44, 45, 105, 47, -1,
- 108, 109, 110, -1, -1, 54, 55, -1, 57, -1,
- 59, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 12, -1, -1, -1, -1, -1, 77, -1,
- -1, -1, -1, -1, -1, -1, 85, 86, 87, 88,
- 89, 90, -1, -1, -1, 94, 95, -1, 97, 98,
- -1, -1, 101, 102, 44, 45, 105, 47, -1, 108,
- 109, 110, -1, -1, 54, 55, -1, 57, -1, 59,
- -1, -1, -1, -1, -1, -1, -1, -1, 68, -1,
- -1, 12, -1, -1, 15, -1, -1, 77, -1, -1,
- -1, -1, -1, -1, -1, 85, 86, 87, 88, 89,
- 90, -1, -1, -1, 94, 95, -1, 97, 98, -1,
- -1, 101, 102, 44, 45, 105, 47, -1, 108, 109,
- 110, -1, -1, 54, 55, -1, 57, -1, 59, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 77, -1, -1, 12,
- -1, -1, -1, -1, 85, 86, 87, 88, 89, 90,
- 23, -1, -1, 94, 95, -1, 97, 98, -1, -1,
- 101, 102, -1, -1, 105, -1, -1, 108, 109, 110,
- 43, 44, 45, -1, 47, -1, 12, -1, -1, -1,
- -1, 54, 55, -1, 57, -1, 59, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 77, -1, -1, -1, 44, 45,
- -1, 47, 85, 86, 87, 88, 89, 90, 54, 55,
- -1, 57, 95, 59, 97, 98, -1, -1, 101, 102,
- -1, -1, 105, -1, -1, 108, 109, 110, -1, -1,
- -1, 77, -1, -1, -1, -1, -1, -1, -1, 85,
- 86, 87, 88, 89, 90, -1, -1, -1, 94, 95,
- -1, 97, 98, -1, -1, 101, 102, -1, -1, 105,
- -1, -1, 108, 109, 110
+/* YYPGOTO[NTERM-NUM]. */
+static const yytype_int16 yypgoto[] =
+{
+ -322, -322, -146, -83, 200, -322, -322, -322, -322, -322,
+ -322, -322, -322, 19, -80, -153, 220, -321, -322, 174,
+ 171, -322, -322, -44, 14, 526, -174, -322, -322, -322,
+ -322, -322, -32, -60, -322, -234, -162, -29, -53, -322,
+ -322, -322, -13, -322, 269, -16, -322, -75, -322
};
-/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-#line 3 "bison.simple"
-/* This file comes from bison-1.27. */
-/* Skeleton output parser for bison,
- Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+/* 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 -32
+static const yytype_int16 yytable[] =
+{
+ 60, 157, 74, 250, 240, 14, 236, 133, 285, 163,
+ 286, 124, 14, 69, 219, 349, 60, 60, 60, 76,
+ 77, 60, 149, 151, 38, 8, 60, 49, 51, 52,
+ 136, 50, 254, 284, 130, 258, 361, 60, 134, 135,
+ 270, 219, 60, 200, 175, 11, 23, 24, 25, 193,
+ 186, 56, 60, 23, 162, 25, 64, 165, 106, 259,
+ 168, 169, 260, 207, 171, 2, 219, 261, 181, 3,
+ 37, 136, 184, 131, 132, 65, 14, 136, 139, 157,
+ 141, 186, 186, 60, 183, 176, 66, 319, 338, 216,
+ 308, 241, 156, 189, 133, 255, 159, 125, 126, 127,
+ 128, 14, 61, 129, 67, 62, 131, 132, 60, 60,
+ 60, 60, 60, 60, 70, 356, 156, 23, 325, 25,
+ 320, 245, 105, 186, 11, 153, 38, 364, 60, 60,
+ 321, 60, 60, 136, 262, 238, 186, 60, 60, 60,
+ 224, 243, 23, 24, 25, 71, 271, 254, 60, 136,
+ 254, 254, 254, 254, 60, 123, 230, 254, 136, 281,
+ 131, 132, 60, 136, 136, 231, 37, 336, 277, 279,
+ 273, 291, 146, 129, 240, 265, 60, 295, 60, 60,
+ 60, 60, 60, 60, 124, 60, 156, 60, 173, 60,
+ 60, 294, 60, 282, 289, 240, 254, 357, 136, 60,
+ 166, 136, 167, 157, 60, 317, 60, 263, 341, 322,
+ 255, 172, 191, 255, 255, 255, 255, 221, 223, 181,
+ 255, 181, 181, 181, 226, 181, 60, 235, 60, 181,
+ 237, 246, 136, 283, 290, 183, 309, 183, 183, 183,
+ 157, 183, 60, 60, 60, 183, 312, 314, 324, 340,
+ 304, 186, 323, 138, 140, 273, 60, 339, 335, 255,
+ 60, 107, 60, 348, 60, 293, 353, 296, 297, 298,
+ 157, 299, 127, 128, 354, 303, 129, 60, 190, 188,
+ 60, 60, 60, 60, 0, 59, 0, 60, 0, 60,
+ 60, 60, 186, 0, 181, 0, 0, 68, 358, 0,
+ 14, 72, 73, 75, 0, 0, 78, 363, 0, 0,
+ 183, 122, 366, 343, 0, 344, 0, 60, 60, 345,
+ 0, 60, 122, 0, 0, 0, 60, 75, 0, 332,
+ 362, 0, 0, 0, 0, 0, 60, 152, 0, 0,
+ 342, 23, 24, 25, 0, 0, 0, 228, 229, 0,
+ 0, 0, 0, 0, 233, 234, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 37, 0, 0, 122, 182,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 257,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 209, 210, 211, 212, 213, 214, 0,
+ 0, 0, 0, 0, 0, 0, 267, 268, 0, 0,
+ 0, 0, 0, 122, 122, 0, 122, 122, 0, 0,
+ 0, 0, 232, 122, 122, 0, 0, 274, 0, 0,
+ 0, 0, 0, 122, 0, 0, 0, 0, 0, 122,
+ 0, 0, 0, 0, 0, 0, 0, 256, 0, 0,
+ 140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 122, 0, 122, 122, 122, 122, 122, 122, 0,
+ 122, 0, 122, 0, 122, 122, 0, 269, 0, 0,
+ 316, 318, 0, 0, 122, 0, 0, 0, 0, 122,
+ 0, 122, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 329, 331, 0, 0,
+ 0, 122, 0, 122, 0, 0, 0, 0, 0, 0,
+ 182, 0, 182, 182, 182, 140, 182, 300, 301, 302,
+ 182, 42, 0, 0, 0, 0, 0, 0, 53, 0,
+ 0, 122, 0, 0, 0, 122, 0, 122, 0, 122,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 256, 0, 0, 256, 256, 256, 256, 0,
+ 0, 0, 256, 0, 122, 122, 122, 0, 0, 0,
+ 0, 0, 144, 145, 0, 0, 0, 0, 0, 0,
+ 147, 148, 144, 144, 0, 182, 154, 155, 0, 0,
+ 0, 0, 122, 122, 0, 0, 122, 0, 0, 0,
+ 0, 256, 164, 0, 0, 0, 0, 0, 0, 170,
+ 0, 122, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 42, 0, 42, 0, 192, 0, 0, 194, 195,
+ 196, 197, 198, 199, 0, 201, 203, 205, 0, 206,
+ 0, 0, 0, 0, 0, 0, 215, 0, 0, 144,
+ 0, 0, 0, 0, 220, 0, 222, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -29, 1, 0, 0, 0, 0, 0, -29, -29, 0,
+ 2, -29, -29, 242, 3, -29, 0, 0, 244, 0,
+ 0, 0, 0, 53, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -29, -29, 0, -29, 0,
+ 0, 0, 0, 0, -29, -29, -29, 0, -29, 0,
+ -29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 272, 0, 0, 276, 278, 0, 0, -29, 280,
+ 0, 0, 0, 144, 0, 0, -29, -29, -29, -29,
+ -29, -29, 0, 0, 0, -29, -29, -29, 0, 0,
+ 0, -29, -29, 0, 0, 0, -29, 0, -29, -29,
+ -29, 0, 305, 306, 307, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 79, 0, 0, 0, 0, 0, 53, 0,
+ 0, 80, 11, 12, 0, 81, 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 333, 0, 334, 0, 0, 337, 0, 0,
+ 0, 0, 0, 0, 0, 0, 14, 15, 82, 16,
+ 83, 84, 85, 86, 87, 352, 18, 19, 88, 20,
+ 0, 21, 89, 90, 0, 0, 0, 0, 0, 0,
+ 79, 0, 0, 0, 0, 0, 0, 91, 92, 22,
+ 11, 12, 0, 81, 13, 0, 185, 23, 24, 25,
+ 26, 27, 28, 0, 0, 0, 29, 30, 31, 93,
+ 94, 0, 32, 33, 0, 0, 0, 34, 0, 35,
+ 36, 37, 0, 0, 14, 15, 82, 16, 83, 84,
+ 85, 86, 87, 0, 18, 19, 88, 20, 0, 21,
+ 89, 90, 0, 0, 0, 0, 0, 0, 79, 0,
+ 0, 0, 0, 0, 0, 91, 92, 22, 11, 12,
+ 0, 81, 13, 0, 217, 23, 24, 25, 26, 27,
+ 28, 0, 0, 0, 29, 30, 31, 93, 94, 0,
+ 32, 33, 0, 0, 0, 34, 0, 35, 36, 37,
+ 0, 0, 14, 15, 82, 16, 83, 84, 85, 86,
+ 87, 0, 18, 19, 88, 20, 0, 21, 89, 90,
+ 0, 0, 0, 0, 0, 0, 79, 0, 0, 0,
+ 0, 0, 0, 91, 92, 22, 11, 12, 0, 81,
+ 13, 0, 218, 23, 24, 25, 26, 27, 28, 0,
+ 0, 0, 29, 30, 31, 93, 94, 0, 32, 33,
+ 0, 0, 0, 34, 0, 35, 36, 37, 0, 0,
+ 14, 15, 82, 16, 83, 84, 85, 86, 87, 0,
+ 18, 19, 88, 20, 0, 21, 89, 90, 0, 0,
+ 0, 0, 0, 0, 79, 0, 0, 0, 0, 0,
+ 0, 91, 92, 22, 11, 12, 0, 81, 13, 0,
+ 248, 23, 24, 25, 26, 27, 28, 0, 0, 0,
+ 29, 30, 31, 93, 94, 0, 32, 33, 0, 0,
+ 0, 34, 0, 35, 36, 37, 0, 0, 14, 15,
+ 82, 16, 83, 84, 85, 86, 87, 0, 18, 19,
+ 88, 20, 0, 21, 89, 90, 0, 0, 0, 0,
+ 0, 0, 79, 0, 0, 0, 0, 0, 0, 91,
+ 92, 22, 11, 12, 0, 81, 13, 0, 264, 23,
+ 24, 25, 26, 27, 28, 0, 0, 0, 29, 30,
+ 31, 93, 94, 0, 32, 33, 0, 0, 0, 34,
+ 0, 35, 36, 37, 0, 0, 14, 15, 82, 16,
+ 83, 84, 85, 86, 87, 0, 18, 19, 88, 20,
+ 0, 21, 89, 90, 0, 0, 0, 0, 0, 0,
+ 0, 79, 0, 0, 0, 0, 0, 91, 92, 22,
+ 288, 11, 12, 0, 81, 13, 0, 23, 24, 25,
+ 26, 27, 28, 0, 0, 0, 29, 30, 31, 93,
+ 94, 0, 32, 33, 0, 0, 0, 34, 0, 35,
+ 36, 37, 0, 0, 0, 14, 15, 82, 16, 83,
+ 84, 85, 86, 87, 0, 18, 19, 88, 20, 0,
+ 21, 89, 90, 0, 0, 0, 0, 0, 0, 79,
+ 0, 0, 0, 0, 0, 0, 91, 92, 22, 11,
+ 12, 0, 81, 13, 0, 327, 23, 24, 25, 26,
+ 27, 28, 0, 0, 0, 29, 30, 31, 93, 94,
+ 0, 32, 33, 0, 0, 0, 34, 0, 35, 36,
+ 37, 0, 0, 14, 15, 82, 16, 83, 84, 85,
+ 86, 87, 0, 18, 19, 88, 20, 0, 21, 89,
+ 90, 0, 0, 0, 0, 0, 0, 79, 0, 0,
+ 0, 0, 0, 0, 91, 92, 22, 11, 12, 0,
+ 81, 13, 0, 355, 23, 24, 25, 26, 27, 28,
+ 0, 0, 0, 29, 30, 31, 93, 94, 0, 32,
+ 33, 0, 0, 0, 34, 0, 35, 36, 37, 0,
+ 0, 14, 15, 82, 16, 83, 84, 85, 86, 87,
+ 0, 18, 19, 88, 20, 0, 21, 89, 90, 0,
+ 0, 0, 0, 0, 0, 79, 0, 0, 0, 0,
+ 0, 0, 91, 92, 22, 11, 12, 0, 81, 13,
+ 0, 0, 23, 24, 25, 26, 27, 28, 0, 0,
+ 0, 29, 30, 31, 93, 94, 0, 32, 33, 0,
+ 0, 0, 34, 0, 35, 36, 37, 0, 0, 14,
+ 15, 82, 16, 83, 84, 85, 86, 87, 0, 18,
+ 19, 88, 20, 0, 21, 89, 90, 0, 0, 0,
+ 0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
+ 91, 92, 22, 12, 0, -31, 13, 0, 0, 0,
+ 23, 24, 25, 26, 27, 28, 0, 0, 0, 29,
+ 30, 31, 93, 94, 0, 32, 33, 0, 0, 0,
+ 34, 0, 35, 36, 37, 0, 14, 15, 0, 16,
+ 0, 84, 0, 0, 0, 0, 18, 19, 0, 20,
+ 0, 21, 0, 0, 0, 0, 0, 0, 0, 79,
+ 0, 0, 0, 0, 0, 0, 0, 91, 92, 22,
+ 12, 0, 0, 13, -31, 0, 0, 23, 24, 25,
+ 26, 27, 28, 0, 0, 0, 29, 30, 31, 0,
+ 9, 10, 32, 33, 11, 12, 0, 34, 13, 35,
+ 36, 37, 0, 14, 15, 0, 16, 0, 84, 0,
+ 0, 0, 0, 18, 19, 0, 20, 0, 21, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 14, 15,
+ 0, 16, 0, 0, 91, 92, 22, 17, 18, 19,
+ 0, 20, 0, 21, 23, 24, 25, 26, 27, 28,
+ 0, 0, 0, 29, 30, 31, 0, 0, 0, 32,
+ 33, 22, 0, 0, 34, 0, 35, 36, 37, 23,
+ 24, 25, 26, 27, 28, 0, 0, 0, 29, 30,
+ 31, 0, 0, 136, 32, 33, 57, 108, 0, 34,
+ 137, 35, 36, 37, 0, 0, 0, 109, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
+ 111, 0, 112, 113, 114, 115, 116, 117, 118, 14,
+ 15, 0, 16, 0, 0, 0, 0, 0, 0, 18,
+ 19, 0, 20, 0, 21, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
+ 23, 24, 25, 26, 27, 28, 0, 119, 0, 29,
+ 30, 31, 0, 0, 136, 32, 33, 57, 108, 0,
+ 58, 315, 35, 36, 37, 0, 0, 0, 109, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 110, 111, 0, 112, 113, 114, 115, 116, 117, 118,
+ 14, 15, 0, 16, 0, 0, 0, 0, 0, 0,
+ 18, 19, 0, 20, 0, 21, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
+ 0, 23, 24, 25, 26, 27, 28, 0, 119, 0,
+ 29, 30, 31, 0, 0, 136, 32, 33, 57, 108,
+ 0, 58, 328, 35, 36, 37, 0, 0, 0, 109,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 110, 111, 0, 112, 113, 114, 115, 116, 117,
+ 118, 14, 15, 0, 16, 0, 0, 0, 0, 0,
+ 0, 18, 19, 0, 20, 0, 21, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 22, 0, 0, 0, 0, 0,
+ 0, 0, 23, 24, 25, 26, 27, 28, 0, 119,
+ 0, 29, 30, 31, 0, 0, 136, 32, 33, 57,
+ 108, 0, 58, 330, 35, 36, 37, 0, 0, 0,
+ 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 110, 111, 0, 112, 113, 114, 115, 116,
+ 117, 118, 14, 15, 0, 16, 0, 0, 0, 0,
+ 0, 0, 18, 19, 0, 20, 0, 21, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 22, 0, 0, 0, 0,
+ 0, 0, 0, 23, 24, 25, 26, 27, 28, 0,
+ 119, 0, 29, 30, 31, 0, 0, 136, 32, 33,
+ 57, 108, 0, 58, 0, 35, 36, 37, 0, 0,
+ 0, 109, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 110, 111, 0, 112, 113, 114, 115,
+ 116, 117, 118, 14, 15, 0, 16, 0, 0, 0,
+ 0, 0, 0, 18, 19, 0, 20, 0, 21, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
+ 0, 0, 0, 0, 23, 24, 25, 26, 27, 28,
+ 0, 119, 0, 29, 30, 31, 0, 0, 0, 32,
+ 33, 0, 0, 0, 58, 0, 35, 36, 37, 156,
+ 0, 57, 108, 159, 0, 0, 0, 0, 0, 0,
+ 0, 0, 109, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 110, 111, 0, 112, 113, 114,
+ 115, 116, 117, 118, 14, 15, 0, 16, 0, 0,
+ 0, 0, 0, 0, 18, 19, 0, 20, 0, 21,
+ 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
+ 12, 0, 159, 13, 0, 0, 0, 22, 0, 0,
+ 0, 0, 0, 0, 0, 23, 24, 25, 26, 27,
+ 28, 0, 119, 0, 29, 30, 31, 0, 0, 0,
+ 32, 33, 0, 14, 15, 58, 16, 35, 36, 37,
+ 0, 0, 0, 18, 19, 0, 20, 0, 21, 0,
+ 0, 0, 0, 0, 0, 0, 0, 202, 0, 12,
+ 0, 0, 13, 0, 0, 0, 22, 0, 0, 0,
+ 0, 0, 0, 0, 23, 24, 25, 26, 27, 28,
+ 0, 0, 0, 29, 30, 31, 0, 0, 0, 32,
+ 33, 0, 14, 15, 34, 16, 35, 36, 37, 0,
+ 0, 0, 18, 19, 0, 20, 0, 21, 0, 0,
+ 0, 0, 0, 0, 0, 0, 204, 0, 12, 0,
+ 0, 13, 0, 0, 0, 22, 0, 0, 0, 0,
+ 0, 0, 0, 23, 24, 25, 26, 27, 28, 0,
+ 0, 0, 29, 30, 31, 0, 0, 0, 32, 33,
+ 0, 14, 15, 34, 16, 35, 36, 37, 0, 0,
+ 0, 18, 19, 0, 20, 0, 21, 0, 0, 0,
+ 0, 0, 0, 0, 0, 219, 0, 12, 0, 0,
+ 13, 0, 0, 0, 22, 0, 0, 0, 0, 0,
+ 0, 0, 23, 24, 25, 26, 27, 28, 0, 0,
+ 0, 29, 30, 31, 0, 0, 0, 32, 33, 0,
+ 14, 15, 34, 16, 35, 36, 37, 0, 0, 0,
+ 18, 19, 0, 20, 0, 21, 0, 0, 0, 0,
+ 0, 0, 0, 0, 202, 0, 292, 0, 0, 13,
+ 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
+ 0, 23, 24, 25, 26, 27, 28, 0, 0, 0,
+ 29, 30, 31, 0, 0, 0, 32, 33, 0, 14,
+ 15, 34, 16, 35, 36, 37, 0, 0, 0, 18,
+ 19, 0, 20, 0, 21, 0, 0, 0, 0, 0,
+ 0, 0, 0, 204, 0, 292, 0, 0, 13, 0,
+ 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
+ 23, 24, 25, 26, 27, 28, 0, 0, 0, 29,
+ 30, 31, 0, 0, 0, 32, 33, 0, 14, 15,
+ 34, 16, 35, 36, 37, 0, 0, 0, 18, 19,
+ 0, 20, 0, 21, 0, 0, 0, 0, 0, 0,
+ 0, 0, 219, 0, 292, 0, 0, 13, 0, 0,
+ 0, 22, 0, 0, 0, 0, 0, 0, 0, 23,
+ 24, 25, 26, 27, 28, 0, 0, 0, 29, 30,
+ 31, 0, 0, 0, 32, 33, 0, 14, 15, 34,
+ 16, 35, 36, 37, 0, 0, 0, 18, 19, 0,
+ 20, 0, 21, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 22, 0, 0, 0, 0, 0, 0, 0, 23, 24,
+ 25, 26, 27, 28, 0, 0, 0, 29, 30, 31,
+ 0, 0, 0, 32, 33, 57, 108, 0, 34, 137,
+ 35, 36, 37, 0, 0, 0, 109, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 110, 111,
+ 0, 112, 113, 114, 115, 116, 117, 118, 14, 15,
+ 0, 16, 0, 0, 0, 0, 0, 0, 18, 19,
+ 0, 20, 0, 21, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 22, 0, 0, 0, 0, 0, 0, 0, 23,
+ 24, 25, 26, 27, 28, 0, 119, 0, 29, 30,
+ 31, 0, 0, 0, 32, 33, 57, 108, 0, 58,
+ 0, 35, 36, 37, 0, 0, 0, 109, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
+ 111, 0, 112, 113, 114, 115, 116, 117, 118, 14,
+ 15, 0, 16, 0, 0, 0, 0, 0, 0, 18,
+ 19, 0, 20, 0, 21, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
+ 23, 24, 25, 26, 27, 28, 0, 119, 266, 29,
+ 30, 31, 0, 0, 0, 32, 33, 57, 108, 0,
+ 58, 273, 35, 36, 37, 0, 0, 0, 109, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 110, 111, 0, 112, 113, 114, 115, 116, 117, 118,
+ 14, 15, 0, 16, 0, 0, 0, 0, 0, 0,
+ 18, 19, 0, 20, 0, 21, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
+ 0, 23, 24, 25, 26, 27, 28, 0, 119, 0,
+ 29, 30, 31, 0, 0, 0, 32, 33, 57, 108,
+ 0, 58, 311, 35, 36, 37, 0, 0, 0, 109,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 110, 111, 0, 112, 113, 114, 115, 116, 117,
+ 118, 14, 15, 0, 16, 0, 0, 0, 0, 0,
+ 0, 18, 19, 0, 20, 0, 21, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 22, 0, 0, 0, 0, 0,
+ 0, 0, 23, 24, 25, 26, 27, 28, 0, 119,
+ 0, 29, 30, 31, 0, 0, 0, 32, 33, 57,
+ 108, 0, 58, 313, 35, 36, 37, 0, 0, 0,
+ 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 110, 111, 0, 112, 113, 114, 115, 116,
+ 117, 118, 14, 15, 0, 16, 0, 0, 0, 0,
+ 0, 0, 18, 19, 0, 20, 0, 21, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 22, 0, 0, 0, 0,
+ 0, 0, 0, 23, 24, 25, 26, 27, 28, 0,
+ 119, 0, 29, 30, 31, 0, 0, 0, 32, 33,
+ 57, 108, 0, 58, 346, 35, 36, 37, 0, 0,
+ 0, 109, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 110, 111, 0, 112, 113, 114, 115,
+ 116, 117, 118, 14, 15, 0, 16, 0, 0, 0,
+ 0, 0, 0, 18, 19, 0, 20, 0, 21, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
+ 0, 0, 0, 0, 23, 24, 25, 26, 27, 28,
+ 0, 119, 0, 29, 30, 31, 0, 0, 0, 32,
+ 33, 57, 108, 0, 58, 347, 35, 36, 37, 0,
+ 0, 0, 109, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 110, 111, 0, 112, 113, 114,
+ 115, 116, 117, 118, 14, 15, 0, 16, 0, 0,
+ 0, 0, 0, 0, 18, 19, 0, 20, 0, 21,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
+ 0, 0, 0, 0, 0, 23, 24, 25, 26, 27,
+ 28, 0, 119, 0, 29, 30, 31, 0, 0, 0,
+ 32, 33, 57, 108, 350, 58, 0, 35, 36, 37,
+ 0, 0, 0, 109, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 110, 111, 0, 112, 113,
+ 114, 115, 116, 117, 118, 14, 15, 0, 16, 0,
+ 0, 0, 0, 0, 0, 18, 19, 0, 20, 0,
+ 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 22, 0,
+ 0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
+ 27, 28, 0, 119, 0, 29, 30, 31, 0, 0,
+ 0, 32, 33, 57, 108, 0, 58, 359, 35, 36,
+ 37, 0, 0, 0, 109, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 110, 111, 0, 112,
+ 113, 114, 115, 116, 117, 118, 14, 15, 0, 16,
+ 0, 0, 0, 0, 0, 0, 18, 19, 0, 20,
+ 0, 21, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
+ 0, 0, 0, 0, 0, 0, 0, 23, 24, 25,
+ 26, 27, 28, 0, 119, 0, 29, 30, 31, 0,
+ 0, 0, 32, 33, 57, 108, 0, 58, 0, 35,
+ 36, 37, 0, 0, 0, 109, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 110, 111, 0,
+ 112, 113, 114, 115, 116, 117, 118, 14, 15, 0,
+ 16, 0, 0, 0, 0, 0, 0, 18, 19, 0,
+ 20, 0, 21, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 22, 0, 0, 0, 0, 0, 0, 0, 23, 24,
+ 25, 26, 27, 28, 0, 119, 0, 29, 30, 31,
+ 0, 0, 0, 32, 33, 57, 108, 0, 58, 0,
+ 35, 36, 37, 0, 0, 0, 109, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 110, 0,
+ 0, 112, 113, 114, 115, 116, 117, 118, 14, 15,
+ 0, 16, 0, 0, 0, 0, 0, 0, 18, 19,
+ 0, 20, 0, 21, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 22, 0, 0, 0, 0, 0, 0, 0, 23,
+ 24, 25, 26, 27, 28, 57, 108, 0, 29, 30,
+ 31, 0, 0, 0, 32, 33, 109, 0, 0, 58,
+ 0, 35, 36, 37, 0, 0, 0, 0, 0, 0,
+ 0, 112, 113, 114, 115, 116, 117, 118, 14, 15,
+ 0, 16, 0, 0, 0, 0, 0, 0, 18, 19,
+ 0, 20, 0, 21, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 22, 0, 0, 0, 0, 0, 0, 0, 23,
+ 24, 25, 26, 27, 28, 57, -32, 0, 29, 30,
+ 31, 0, 0, 0, 32, 33, -32, 0, 0, 58,
+ 0, 35, 36, 37, 0, 0, 0, 0, 0, 0,
+ 0, -32, -32, -32, -32, -32, -32, -32, 14, 15,
+ 0, 16, 0, 0, 0, 0, 0, 0, 18, 19,
+ 0, 20, 0, 21, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 57, 0, 0, 0, 0, 0,
+ 0, 22, 0, 0, 0, 251, 0, 0, 0, 23,
+ 24, 25, 26, 27, 28, 0, 0, 110, 111, 30,
+ 31, 0, 0, 0, 32, 33, 252, 14, 15, 58,
+ 16, 35, 36, 37, 0, 0, 0, 18, 19, 0,
+ 20, 0, 21, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 22, 0, 0, 57, 0, 0, 0, 0, 23, 24,
+ 25, 26, 27, 28, 251, 253, 326, 29, 30, 31,
+ 0, 0, 0, 32, 33, 0, 110, 111, 58, 0,
+ 35, 36, 37, 0, 0, 252, 14, 15, 0, 16,
+ 0, 0, 0, 0, 0, 0, 18, 19, 0, 20,
+ 0, 21, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 57, 0, 0, 0, 0, 0, 0, 22,
+ 0, 0, 0, 251, 0, 0, 0, 23, 24, 25,
+ 26, 27, 28, 0, 253, 110, 29, 30, 31, 0,
+ 0, 0, 32, 33, 252, 14, 15, 58, 16, 35,
+ 36, 37, 0, 0, 0, 18, 19, 0, 20, 0,
+ 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 12, 0, 0, 13, 142, 0, 0, 22, 0,
+ 0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
+ 27, 28, 0, 0, 0, 29, 30, 31, 0, 0,
+ 0, 32, 33, 0, 14, 15, 58, 16, 35, 36,
+ 37, 0, 0, 0, 18, 19, 0, 20, 0, 21,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 12, 0, 0, 13, 150, 0, 0, 22, 0, 0,
+ 0, 0, 0, 0, 0, 23, 24, 25, 26, 27,
+ 28, 0, 0, 0, 29, 30, 31, 0, 0, 0,
+ 32, 33, 0, 14, 15, 34, 16, 35, 36, 37,
+ 0, 0, 0, 18, 19, 0, 20, 0, 21, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 57,
+ 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
+ 251, 0, 0, 0, 23, 24, 25, 26, 27, 28,
+ 0, 0, 0, 29, 30, 31, 0, 0, 0, 32,
+ 33, 252, 14, 15, 34, 16, 35, 36, 37, 0,
+ 0, 0, 18, 19, 0, 20, 0, 21, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
+ 0, 13, 0, 0, 0, 22, 0, 0, 0, 0,
+ 0, 0, 0, 23, 24, 25, 26, 27, 28, 0,
+ 0, 0, 29, 30, 31, 0, 0, 0, 32, 33,
+ 0, 14, 15, 58, 16, 35, 36, 37, 0, 0,
+ 0, 18, 19, 0, 20, 0, 21, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 57, 0, 0,
+ 13, 0, 0, 0, 22, 0, 0, 0, 0, 0,
+ 0, 0, 23, 24, 25, 26, 27, 28, 0, 0,
+ 0, 29, 30, 31, 0, 0, 0, 32, 33, 0,
+ 14, 15, 34, 16, 35, 36, 37, 0, 0, 0,
+ 18, 19, 0, 20, 0, 21, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 177, 0, 0, 13,
+ 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
+ 0, 23, 24, 25, 26, 27, 28, 0, 0, 0,
+ 29, 30, 31, 0, 0, 0, 32, 33, 0, 14,
+ 15, 34, 16, 35, 36, 37, 0, 0, 0, 18,
+ 19, 0, 20, 0, 21, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 57, 0, 0, 0, 0,
+ 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
+ 23, 24, 25, 26, 27, 28, 0, 0, 0, 29,
+ 30, 31, 0, 0, 0, 32, 33, 0, 14, 15,
+ 34, 16, 35, 36, 37, 0, 0, 0, 18, 19,
+ 0, 20, 0, 21, 0, 0, 0, 0, 0, 0,
+ 0, 0, 208, 0, 292, 0, 0, 13, 0, 0,
+ 0, 22, 0, 0, 0, 0, 0, 0, 0, 23,
+ 24, 25, 26, 27, 28, 0, 0, 0, 29, 30,
+ 31, 0, 0, 0, 32, 33, 0, 14, 15, 58,
+ 16, 35, 36, 37, 0, 0, 0, 18, 19, 0,
+ 20, 0, 21, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 57, 0, 0, 0, 0, 0, 0,
+ 22, 0, 0, 0, -32, 0, 0, 0, 23, 24,
+ 25, 26, 27, 28, 0, 0, 0, 29, 30, 31,
+ 0, 0, 0, 32, 33, -32, 14, 15, 34, 16,
+ 35, 36, 37, 0, 0, 0, 18, 19, 0, 20,
+ 0, 21, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 57, 0, 0, 0, 0, 0, 0, 22,
+ 0, 0, 0, 0, 0, 0, 0, 23, 24, 25,
+ 26, 27, 28, 0, 0, 0, 0, 30, 31, 0,
+ 0, 0, 32, 33, 0, 14, 15, 58, 16, 35,
+ 36, 37, 0, 0, 0, 18, 19, 0, 20, 0,
+ 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 22, 0,
+ 0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
+ 27, 28, 0, 0, 0, 29, 30, 31, 0, 0,
+ 0, 32, 33, 0, 0, 0, 58, 0, 35, 36,
+ 37
+};
- 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.
+static const yytype_int16 yycheck[] =
+{
+ 16, 81, 34, 177, 166, 45, 159, 18, 242, 84,
+ 244, 15, 45, 29, 10, 336, 32, 33, 34, 35,
+ 36, 37, 66, 67, 5, 0, 42, 10, 9, 10,
+ 9, 14, 178, 44, 69, 13, 357, 53, 51, 52,
+ 19, 10, 58, 118, 97, 11, 86, 87, 88, 109,
+ 103, 12, 68, 86, 83, 88, 12, 86, 39, 37,
+ 89, 90, 40, 123, 93, 10, 10, 69, 100, 14,
+ 110, 9, 101, 108, 109, 12, 45, 9, 16, 159,
+ 92, 134, 135, 99, 100, 98, 12, 19, 322, 133,
+ 86, 166, 10, 106, 18, 178, 14, 101, 102, 103,
+ 104, 45, 86, 107, 12, 89, 108, 109, 124, 125,
+ 126, 127, 128, 129, 12, 349, 10, 86, 292, 88,
+ 14, 174, 9, 176, 11, 42, 107, 361, 144, 145,
+ 283, 147, 148, 9, 187, 164, 189, 153, 154, 155,
+ 16, 170, 86, 87, 88, 12, 221, 293, 164, 9,
+ 296, 297, 298, 299, 170, 12, 16, 303, 9, 234,
+ 108, 109, 178, 9, 9, 16, 110, 320, 228, 229,
+ 16, 16, 12, 107, 336, 191, 192, 252, 194, 195,
+ 196, 197, 198, 199, 15, 201, 10, 203, 10, 205,
+ 206, 251, 208, 237, 247, 357, 342, 350, 9, 215,
+ 12, 9, 12, 283, 220, 16, 222, 188, 16, 284,
+ 293, 12, 95, 296, 297, 298, 299, 44, 15, 251,
+ 303, 253, 254, 255, 86, 257, 242, 10, 244, 261,
+ 18, 79, 9, 14, 10, 251, 10, 253, 254, 255,
+ 320, 257, 258, 259, 260, 261, 16, 16, 44, 324,
+ 263, 304, 99, 53, 54, 16, 272, 12, 318, 342,
+ 276, 41, 278, 16, 280, 251, 16, 253, 254, 255,
+ 350, 257, 103, 104, 16, 261, 107, 293, 107, 105,
+ 296, 297, 298, 299, -1, 16, -1, 303, -1, 305,
+ 306, 307, 345, -1, 326, -1, -1, 42, 351, -1,
+ 45, 32, 33, 34, -1, -1, 37, 360, -1, -1,
+ 326, 42, 365, 329, -1, 331, -1, 333, 334, 332,
+ -1, 337, 53, -1, -1, -1, 342, 58, -1, 310,
+ 359, -1, -1, -1, -1, -1, 352, 68, -1, -1,
+ 326, 86, 87, 88, -1, -1, -1, 147, 148, -1,
+ -1, -1, -1, -1, 154, 155, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 110, -1, -1, 99, 100,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 179,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 124, 125, 126, 127, 128, 129, -1,
+ -1, -1, -1, -1, -1, -1, 206, 207, -1, -1,
+ -1, -1, -1, 144, 145, -1, 147, 148, -1, -1,
+ -1, -1, 153, 154, 155, -1, -1, 227, -1, -1,
+ -1, -1, -1, 164, -1, -1, -1, -1, -1, 170,
+ -1, -1, -1, -1, -1, -1, -1, 178, -1, -1,
+ 250, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 192, -1, 194, 195, 196, 197, 198, 199, -1,
+ 201, -1, 203, -1, 205, 206, -1, 208, -1, -1,
+ 280, 281, -1, -1, 215, -1, -1, -1, -1, 220,
+ -1, 222, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 306, 307, -1, -1,
+ -1, 242, -1, 244, -1, -1, -1, -1, -1, -1,
+ 251, -1, 253, 254, 255, 325, 257, 258, 259, 260,
+ 261, 5, -1, -1, -1, -1, -1, -1, 12, -1,
+ -1, 272, -1, -1, -1, 276, -1, 278, -1, 280,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 293, -1, -1, 296, 297, 298, 299, -1,
+ -1, -1, 303, -1, 305, 306, 307, -1, -1, -1,
+ -1, -1, 56, 57, -1, -1, -1, -1, -1, -1,
+ 64, 65, 66, 67, -1, 326, 70, 71, -1, -1,
+ -1, -1, 333, 334, -1, -1, 337, -1, -1, -1,
+ -1, 342, 86, -1, -1, -1, -1, -1, -1, 93,
+ -1, 352, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 105, -1, 107, -1, 109, -1, -1, 112, 113,
+ 114, 115, 116, 117, -1, 119, 120, 121, -1, 123,
+ -1, -1, -1, -1, -1, -1, 130, -1, -1, 133,
+ -1, -1, -1, -1, 138, -1, 140, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 0, 1, -1, -1, -1, -1, -1, 7, 8, -1,
+ 10, 11, 12, 167, 14, 15, -1, -1, 172, -1,
+ -1, -1, -1, 177, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 45, 46, -1, 48, -1,
+ -1, -1, -1, -1, 54, 55, 56, -1, 58, -1,
+ 60, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 225, -1, -1, 228, 229, -1, -1, 78, 233,
+ -1, -1, -1, 237, -1, -1, 86, 87, 88, 89,
+ 90, 91, -1, -1, -1, 95, 96, 97, -1, -1,
+ -1, 101, 102, -1, -1, -1, 106, -1, 108, 109,
+ 110, -1, 266, 267, 268, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 1, -1, -1, -1, -1, -1, 292, -1,
+ -1, 10, 11, 12, -1, 14, 15, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 316, -1, 318, -1, -1, 321, -1, -1,
+ -1, -1, -1, -1, -1, -1, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 339, 55, 56, 57, 58,
+ -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
+ 1, -1, -1, -1, -1, -1, -1, 76, 77, 78,
+ 11, 12, -1, 14, 15, -1, 17, 86, 87, 88,
+ 89, 90, 91, -1, -1, -1, 95, 96, 97, 98,
+ 99, -1, 101, 102, -1, -1, -1, 106, -1, 108,
+ 109, 110, -1, -1, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, -1, 55, 56, 57, 58, -1, 60,
+ 61, 62, -1, -1, -1, -1, -1, -1, 1, -1,
+ -1, -1, -1, -1, -1, 76, 77, 78, 11, 12,
+ -1, 14, 15, -1, 17, 86, 87, 88, 89, 90,
+ 91, -1, -1, -1, 95, 96, 97, 98, 99, -1,
+ 101, 102, -1, -1, -1, 106, -1, 108, 109, 110,
+ -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, -1, 55, 56, 57, 58, -1, 60, 61, 62,
+ -1, -1, -1, -1, -1, -1, 1, -1, -1, -1,
+ -1, -1, -1, 76, 77, 78, 11, 12, -1, 14,
+ 15, -1, 17, 86, 87, 88, 89, 90, 91, -1,
+ -1, -1, 95, 96, 97, 98, 99, -1, 101, 102,
+ -1, -1, -1, 106, -1, 108, 109, 110, -1, -1,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
+ 55, 56, 57, 58, -1, 60, 61, 62, -1, -1,
+ -1, -1, -1, -1, 1, -1, -1, -1, -1, -1,
+ -1, 76, 77, 78, 11, 12, -1, 14, 15, -1,
+ 17, 86, 87, 88, 89, 90, 91, -1, -1, -1,
+ 95, 96, 97, 98, 99, -1, 101, 102, -1, -1,
+ -1, 106, -1, 108, 109, 110, -1, -1, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, -1, 55, 56,
+ 57, 58, -1, 60, 61, 62, -1, -1, -1, -1,
+ -1, -1, 1, -1, -1, -1, -1, -1, -1, 76,
+ 77, 78, 11, 12, -1, 14, 15, -1, 17, 86,
+ 87, 88, 89, 90, 91, -1, -1, -1, 95, 96,
+ 97, 98, 99, -1, 101, 102, -1, -1, -1, 106,
+ -1, 108, 109, 110, -1, -1, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, -1, 55, 56, 57, 58,
+ -1, 60, 61, 62, -1, -1, -1, -1, -1, -1,
+ -1, 1, -1, -1, -1, -1, -1, 76, 77, 78,
+ 10, 11, 12, -1, 14, 15, -1, 86, 87, 88,
+ 89, 90, 91, -1, -1, -1, 95, 96, 97, 98,
+ 99, -1, 101, 102, -1, -1, -1, 106, -1, 108,
+ 109, 110, -1, -1, -1, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, -1, 55, 56, 57, 58, -1,
+ 60, 61, 62, -1, -1, -1, -1, -1, -1, 1,
+ -1, -1, -1, -1, -1, -1, 76, 77, 78, 11,
+ 12, -1, 14, 15, -1, 17, 86, 87, 88, 89,
+ 90, 91, -1, -1, -1, 95, 96, 97, 98, 99,
+ -1, 101, 102, -1, -1, -1, 106, -1, 108, 109,
+ 110, -1, -1, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, -1, 55, 56, 57, 58, -1, 60, 61,
+ 62, -1, -1, -1, -1, -1, -1, 1, -1, -1,
+ -1, -1, -1, -1, 76, 77, 78, 11, 12, -1,
+ 14, 15, -1, 17, 86, 87, 88, 89, 90, 91,
+ -1, -1, -1, 95, 96, 97, 98, 99, -1, 101,
+ 102, -1, -1, -1, 106, -1, 108, 109, 110, -1,
+ -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ -1, 55, 56, 57, 58, -1, 60, 61, 62, -1,
+ -1, -1, -1, -1, -1, 1, -1, -1, -1, -1,
+ -1, -1, 76, 77, 78, 11, 12, -1, 14, 15,
+ -1, -1, 86, 87, 88, 89, 90, 91, -1, -1,
+ -1, 95, 96, 97, 98, 99, -1, 101, 102, -1,
+ -1, -1, 106, -1, 108, 109, 110, -1, -1, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, -1, 55,
+ 56, 57, 58, -1, 60, 61, 62, -1, -1, -1,
+ -1, -1, 1, -1, -1, -1, -1, -1, -1, -1,
+ 76, 77, 78, 12, -1, 14, 15, -1, -1, -1,
+ 86, 87, 88, 89, 90, 91, -1, -1, -1, 95,
+ 96, 97, 98, 99, -1, 101, 102, -1, -1, -1,
+ 106, -1, 108, 109, 110, -1, 45, 46, -1, 48,
+ -1, 50, -1, -1, -1, -1, 55, 56, -1, 58,
+ -1, 60, -1, -1, -1, -1, -1, -1, -1, 1,
+ -1, -1, -1, -1, -1, -1, -1, 76, 77, 78,
+ 12, -1, -1, 15, 16, -1, -1, 86, 87, 88,
+ 89, 90, 91, -1, -1, -1, 95, 96, 97, -1,
+ 7, 8, 101, 102, 11, 12, -1, 106, 15, 108,
+ 109, 110, -1, 45, 46, -1, 48, -1, 50, -1,
+ -1, -1, -1, 55, 56, -1, 58, -1, 60, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
+ -1, 48, -1, -1, 76, 77, 78, 54, 55, 56,
+ -1, 58, -1, 60, 86, 87, 88, 89, 90, 91,
+ -1, -1, -1, 95, 96, 97, -1, -1, -1, 101,
+ 102, 78, -1, -1, 106, -1, 108, 109, 110, 86,
+ 87, 88, 89, 90, 91, -1, -1, -1, 95, 96,
+ 97, -1, -1, 9, 101, 102, 12, 13, -1, 106,
+ 16, 108, 109, 110, -1, -1, -1, 23, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
+ 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, -1, 48, -1, -1, -1, -1, -1, -1, 55,
+ 56, -1, 58, -1, 60, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
+ 86, 87, 88, 89, 90, 91, -1, 93, -1, 95,
+ 96, 97, -1, -1, 9, 101, 102, 12, 13, -1,
+ 106, 16, 108, 109, 110, -1, -1, -1, 23, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 35, 36, -1, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, -1, 48, -1, -1, -1, -1, -1, -1,
+ 55, 56, -1, 58, -1, 60, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
+ -1, 86, 87, 88, 89, 90, 91, -1, 93, -1,
+ 95, 96, 97, -1, -1, 9, 101, 102, 12, 13,
+ -1, 106, 16, 108, 109, 110, -1, -1, -1, 23,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 35, 36, -1, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, -1, 48, -1, -1, -1, -1, -1,
+ -1, 55, 56, -1, 58, -1, 60, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
+ -1, -1, 86, 87, 88, 89, 90, 91, -1, 93,
+ -1, 95, 96, 97, -1, -1, 9, 101, 102, 12,
+ 13, -1, 106, 16, 108, 109, 110, -1, -1, -1,
+ 23, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 35, 36, -1, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, -1, 48, -1, -1, -1, -1,
+ -1, -1, 55, 56, -1, 58, -1, 60, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
+ -1, -1, -1, 86, 87, 88, 89, 90, 91, -1,
+ 93, -1, 95, 96, 97, -1, -1, 9, 101, 102,
+ 12, 13, -1, 106, -1, 108, 109, 110, -1, -1,
+ -1, 23, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 35, 36, -1, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, -1, 48, -1, -1, -1,
+ -1, -1, -1, 55, 56, -1, 58, -1, 60, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
+ -1, -1, -1, -1, 86, 87, 88, 89, 90, 91,
+ -1, 93, -1, 95, 96, 97, -1, -1, -1, 101,
+ 102, -1, -1, -1, 106, -1, 108, 109, 110, 10,
+ -1, 12, 13, 14, -1, -1, -1, -1, -1, -1,
+ -1, -1, 23, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 35, 36, -1, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, -1, 48, -1, -1,
+ -1, -1, -1, -1, 55, 56, -1, 58, -1, 60,
+ -1, -1, -1, -1, -1, -1, -1, -1, 10, -1,
+ 12, -1, 14, 15, -1, -1, -1, 78, -1, -1,
+ -1, -1, -1, -1, -1, 86, 87, 88, 89, 90,
+ 91, -1, 93, -1, 95, 96, 97, -1, -1, -1,
+ 101, 102, -1, 45, 46, 106, 48, 108, 109, 110,
+ -1, -1, -1, 55, 56, -1, 58, -1, 60, -1,
+ -1, -1, -1, -1, -1, -1, -1, 10, -1, 12,
+ -1, -1, 15, -1, -1, -1, 78, -1, -1, -1,
+ -1, -1, -1, -1, 86, 87, 88, 89, 90, 91,
+ -1, -1, -1, 95, 96, 97, -1, -1, -1, 101,
+ 102, -1, 45, 46, 106, 48, 108, 109, 110, -1,
+ -1, -1, 55, 56, -1, 58, -1, 60, -1, -1,
+ -1, -1, -1, -1, -1, -1, 10, -1, 12, -1,
+ -1, 15, -1, -1, -1, 78, -1, -1, -1, -1,
+ -1, -1, -1, 86, 87, 88, 89, 90, 91, -1,
+ -1, -1, 95, 96, 97, -1, -1, -1, 101, 102,
+ -1, 45, 46, 106, 48, 108, 109, 110, -1, -1,
+ -1, 55, 56, -1, 58, -1, 60, -1, -1, -1,
+ -1, -1, -1, -1, -1, 10, -1, 12, -1, -1,
+ 15, -1, -1, -1, 78, -1, -1, -1, -1, -1,
+ -1, -1, 86, 87, 88, 89, 90, 91, -1, -1,
+ -1, 95, 96, 97, -1, -1, -1, 101, 102, -1,
+ 45, 46, 106, 48, 108, 109, 110, -1, -1, -1,
+ 55, 56, -1, 58, -1, 60, -1, -1, -1, -1,
+ -1, -1, -1, -1, 10, -1, 12, -1, -1, 15,
+ -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
+ -1, 86, 87, 88, 89, 90, 91, -1, -1, -1,
+ 95, 96, 97, -1, -1, -1, 101, 102, -1, 45,
+ 46, 106, 48, 108, 109, 110, -1, -1, -1, 55,
+ 56, -1, 58, -1, 60, -1, -1, -1, -1, -1,
+ -1, -1, -1, 10, -1, 12, -1, -1, 15, -1,
+ -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
+ 86, 87, 88, 89, 90, 91, -1, -1, -1, 95,
+ 96, 97, -1, -1, -1, 101, 102, -1, 45, 46,
+ 106, 48, 108, 109, 110, -1, -1, -1, 55, 56,
+ -1, 58, -1, 60, -1, -1, -1, -1, -1, -1,
+ -1, -1, 10, -1, 12, -1, -1, 15, -1, -1,
+ -1, 78, -1, -1, -1, -1, -1, -1, -1, 86,
+ 87, 88, 89, 90, 91, -1, -1, -1, 95, 96,
+ 97, -1, -1, -1, 101, 102, -1, 45, 46, 106,
+ 48, 108, 109, 110, -1, -1, -1, 55, 56, -1,
+ 58, -1, 60, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 78, -1, -1, -1, -1, -1, -1, -1, 86, 87,
+ 88, 89, 90, 91, -1, -1, -1, 95, 96, 97,
+ -1, -1, -1, 101, 102, 12, 13, -1, 106, 16,
+ 108, 109, 110, -1, -1, -1, 23, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 35, 36,
+ -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ -1, 48, -1, -1, -1, -1, -1, -1, 55, 56,
+ -1, 58, -1, 60, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 78, -1, -1, -1, -1, -1, -1, -1, 86,
+ 87, 88, 89, 90, 91, -1, 93, -1, 95, 96,
+ 97, -1, -1, -1, 101, 102, 12, 13, -1, 106,
+ -1, 108, 109, 110, -1, -1, -1, 23, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
+ 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, -1, 48, -1, -1, -1, -1, -1, -1, 55,
+ 56, -1, 58, -1, 60, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
+ 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
+ 96, 97, -1, -1, -1, 101, 102, 12, 13, -1,
+ 106, 16, 108, 109, 110, -1, -1, -1, 23, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 35, 36, -1, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, -1, 48, -1, -1, -1, -1, -1, -1,
+ 55, 56, -1, 58, -1, 60, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
+ -1, 86, 87, 88, 89, 90, 91, -1, 93, -1,
+ 95, 96, 97, -1, -1, -1, 101, 102, 12, 13,
+ -1, 106, 16, 108, 109, 110, -1, -1, -1, 23,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 35, 36, -1, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, -1, 48, -1, -1, -1, -1, -1,
+ -1, 55, 56, -1, 58, -1, 60, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
+ -1, -1, 86, 87, 88, 89, 90, 91, -1, 93,
+ -1, 95, 96, 97, -1, -1, -1, 101, 102, 12,
+ 13, -1, 106, 16, 108, 109, 110, -1, -1, -1,
+ 23, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 35, 36, -1, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, -1, 48, -1, -1, -1, -1,
+ -1, -1, 55, 56, -1, 58, -1, 60, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
+ -1, -1, -1, 86, 87, 88, 89, 90, 91, -1,
+ 93, -1, 95, 96, 97, -1, -1, -1, 101, 102,
+ 12, 13, -1, 106, 16, 108, 109, 110, -1, -1,
+ -1, 23, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 35, 36, -1, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, -1, 48, -1, -1, -1,
+ -1, -1, -1, 55, 56, -1, 58, -1, 60, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
+ -1, -1, -1, -1, 86, 87, 88, 89, 90, 91,
+ -1, 93, -1, 95, 96, 97, -1, -1, -1, 101,
+ 102, 12, 13, -1, 106, 16, 108, 109, 110, -1,
+ -1, -1, 23, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 35, 36, -1, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, -1, 48, -1, -1,
+ -1, -1, -1, -1, 55, 56, -1, 58, -1, 60,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
+ -1, -1, -1, -1, -1, 86, 87, 88, 89, 90,
+ 91, -1, 93, -1, 95, 96, 97, -1, -1, -1,
+ 101, 102, 12, 13, 14, 106, -1, 108, 109, 110,
+ -1, -1, -1, 23, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 35, 36, -1, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, -1, 48, -1,
+ -1, -1, -1, -1, -1, 55, 56, -1, 58, -1,
+ 60, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 78, -1,
+ -1, -1, -1, -1, -1, -1, 86, 87, 88, 89,
+ 90, 91, -1, 93, -1, 95, 96, 97, -1, -1,
+ -1, 101, 102, 12, 13, -1, 106, 16, 108, 109,
+ 110, -1, -1, -1, 23, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 35, 36, -1, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, -1, 48,
+ -1, -1, -1, -1, -1, -1, 55, 56, -1, 58,
+ -1, 60, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 78,
+ -1, -1, -1, -1, -1, -1, -1, 86, 87, 88,
+ 89, 90, 91, -1, 93, -1, 95, 96, 97, -1,
+ -1, -1, 101, 102, 12, 13, -1, 106, -1, 108,
+ 109, 110, -1, -1, -1, 23, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 35, 36, -1,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, -1,
+ 48, -1, -1, -1, -1, -1, -1, 55, 56, -1,
+ 58, -1, 60, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 78, -1, -1, -1, -1, -1, -1, -1, 86, 87,
+ 88, 89, 90, 91, -1, 93, -1, 95, 96, 97,
+ -1, -1, -1, 101, 102, 12, 13, -1, 106, -1,
+ 108, 109, 110, -1, -1, -1, 23, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 35, -1,
+ -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ -1, 48, -1, -1, -1, -1, -1, -1, 55, 56,
+ -1, 58, -1, 60, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 78, -1, -1, -1, -1, -1, -1, -1, 86,
+ 87, 88, 89, 90, 91, 12, 13, -1, 95, 96,
+ 97, -1, -1, -1, 101, 102, 23, -1, -1, 106,
+ -1, 108, 109, 110, -1, -1, -1, -1, -1, -1,
+ -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ -1, 48, -1, -1, -1, -1, -1, -1, 55, 56,
+ -1, 58, -1, 60, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 78, -1, -1, -1, -1, -1, -1, -1, 86,
+ 87, 88, 89, 90, 91, 12, 13, -1, 95, 96,
+ 97, -1, -1, -1, 101, 102, 23, -1, -1, 106,
+ -1, 108, 109, 110, -1, -1, -1, -1, -1, -1,
+ -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ -1, 48, -1, -1, -1, -1, -1, -1, 55, 56,
+ -1, 58, -1, 60, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 12, -1, -1, -1, -1, -1,
+ -1, 78, -1, -1, -1, 23, -1, -1, -1, 86,
+ 87, 88, 89, 90, 91, -1, -1, 35, 36, 96,
+ 97, -1, -1, -1, 101, 102, 44, 45, 46, 106,
+ 48, 108, 109, 110, -1, -1, -1, 55, 56, -1,
+ 58, -1, 60, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 78, -1, -1, 12, -1, -1, -1, -1, 86, 87,
+ 88, 89, 90, 91, 23, 93, 94, 95, 96, 97,
+ -1, -1, -1, 101, 102, -1, 35, 36, 106, -1,
+ 108, 109, 110, -1, -1, 44, 45, 46, -1, 48,
+ -1, -1, -1, -1, -1, -1, 55, 56, -1, 58,
+ -1, 60, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 12, -1, -1, -1, -1, -1, -1, 78,
+ -1, -1, -1, 23, -1, -1, -1, 86, 87, 88,
+ 89, 90, 91, -1, 93, 35, 95, 96, 97, -1,
+ -1, -1, 101, 102, 44, 45, 46, 106, 48, 108,
+ 109, 110, -1, -1, -1, 55, 56, -1, 58, -1,
+ 60, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 12, -1, -1, 15, 16, -1, -1, 78, -1,
+ -1, -1, -1, -1, -1, -1, 86, 87, 88, 89,
+ 90, 91, -1, -1, -1, 95, 96, 97, -1, -1,
+ -1, 101, 102, -1, 45, 46, 106, 48, 108, 109,
+ 110, -1, -1, -1, 55, 56, -1, 58, -1, 60,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 12, -1, -1, 15, 16, -1, -1, 78, -1, -1,
+ -1, -1, -1, -1, -1, 86, 87, 88, 89, 90,
+ 91, -1, -1, -1, 95, 96, 97, -1, -1, -1,
+ 101, 102, -1, 45, 46, 106, 48, 108, 109, 110,
+ -1, -1, -1, 55, 56, -1, 58, -1, 60, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 12,
+ -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
+ 23, -1, -1, -1, 86, 87, 88, 89, 90, 91,
+ -1, -1, -1, 95, 96, 97, -1, -1, -1, 101,
+ 102, 44, 45, 46, 106, 48, 108, 109, 110, -1,
+ -1, -1, 55, 56, -1, 58, -1, 60, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
+ -1, 15, -1, -1, -1, 78, -1, -1, -1, -1,
+ -1, -1, -1, 86, 87, 88, 89, 90, 91, -1,
+ -1, -1, 95, 96, 97, -1, -1, -1, 101, 102,
+ -1, 45, 46, 106, 48, 108, 109, 110, -1, -1,
+ -1, 55, 56, -1, 58, -1, 60, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
+ 15, -1, -1, -1, 78, -1, -1, -1, -1, -1,
+ -1, -1, 86, 87, 88, 89, 90, 91, -1, -1,
+ -1, 95, 96, 97, -1, -1, -1, 101, 102, -1,
+ 45, 46, 106, 48, 108, 109, 110, -1, -1, -1,
+ 55, 56, -1, 58, -1, 60, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 12, -1, -1, 15,
+ -1, -1, -1, 78, -1, -1, -1, -1, -1, -1,
+ -1, 86, 87, 88, 89, 90, 91, -1, -1, -1,
+ 95, 96, 97, -1, -1, -1, 101, 102, -1, 45,
+ 46, 106, 48, 108, 109, 110, -1, -1, -1, 55,
+ 56, -1, 58, -1, 60, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
+ -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
+ 86, 87, 88, 89, 90, 91, -1, -1, -1, 95,
+ 96, 97, -1, -1, -1, 101, 102, -1, 45, 46,
+ 106, 48, 108, 109, 110, -1, -1, -1, 55, 56,
+ -1, 58, -1, 60, -1, -1, -1, -1, -1, -1,
+ -1, -1, 69, -1, 12, -1, -1, 15, -1, -1,
+ -1, 78, -1, -1, -1, -1, -1, -1, -1, 86,
+ 87, 88, 89, 90, 91, -1, -1, -1, 95, 96,
+ 97, -1, -1, -1, 101, 102, -1, 45, 46, 106,
+ 48, 108, 109, 110, -1, -1, -1, 55, 56, -1,
+ 58, -1, 60, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 12, -1, -1, -1, -1, -1, -1,
+ 78, -1, -1, -1, 23, -1, -1, -1, 86, 87,
+ 88, 89, 90, 91, -1, -1, -1, 95, 96, 97,
+ -1, -1, -1, 101, 102, 44, 45, 46, 106, 48,
+ 108, 109, 110, -1, -1, -1, 55, 56, -1, 58,
+ -1, 60, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 12, -1, -1, -1, -1, -1, -1, 78,
+ -1, -1, -1, -1, -1, -1, -1, 86, 87, 88,
+ 89, 90, 91, -1, -1, -1, -1, 96, 97, -1,
+ -1, -1, 101, 102, -1, 45, 46, 106, 48, 108,
+ 109, 110, -1, -1, -1, 55, 56, -1, 58, -1,
+ 60, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 78, -1,
+ -1, -1, -1, -1, -1, -1, 86, 87, 88, 89,
+ 90, 91, -1, -1, -1, 95, 96, 97, -1, -1,
+ -1, 101, 102, -1, -1, -1, 106, -1, 108, 109,
+ 110
+};
- 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.
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const yytype_uint8 yystos[] =
+{
+ 0, 1, 10, 14, 113, 128, 130, 142, 0, 7,
+ 8, 11, 12, 15, 45, 46, 48, 54, 55, 56,
+ 58, 60, 78, 86, 87, 88, 89, 90, 91, 95,
+ 96, 97, 101, 102, 106, 108, 109, 110, 125, 131,
+ 132, 134, 137, 144, 145, 155, 156, 157, 159, 10,
+ 14, 125, 125, 137, 138, 146, 12, 12, 106, 156,
+ 157, 86, 89, 123, 12, 12, 12, 12, 42, 157,
+ 12, 12, 156, 156, 144, 156, 157, 157, 156, 1,
+ 10, 14, 47, 49, 50, 51, 52, 53, 57, 61,
+ 62, 76, 77, 98, 99, 117, 119, 124, 125, 137,
+ 141, 148, 150, 154, 160, 9, 125, 128, 13, 23,
+ 35, 36, 38, 39, 40, 41, 42, 43, 44, 93,
+ 114, 115, 156, 12, 15, 101, 102, 103, 104, 107,
+ 69, 108, 109, 18, 154, 154, 9, 16, 116, 16,
+ 116, 92, 16, 135, 137, 137, 12, 137, 137, 135,
+ 16, 135, 156, 42, 137, 137, 10, 126, 127, 14,
+ 126, 149, 149, 159, 137, 149, 12, 12, 149, 149,
+ 137, 149, 12, 10, 151, 150, 154, 12, 136, 139,
+ 140, 144, 156, 157, 149, 17, 150, 153, 131, 154,
+ 132, 95, 137, 145, 137, 137, 137, 137, 137, 137,
+ 159, 137, 10, 137, 10, 137, 137, 145, 69, 156,
+ 156, 156, 156, 156, 156, 137, 135, 17, 17, 10,
+ 137, 44, 137, 15, 16, 116, 86, 158, 116, 116,
+ 16, 16, 156, 116, 116, 10, 127, 18, 149, 129,
+ 148, 159, 137, 149, 137, 150, 79, 118, 17, 143,
+ 138, 23, 44, 93, 114, 115, 156, 116, 13, 37,
+ 40, 69, 150, 125, 17, 157, 94, 116, 116, 156,
+ 19, 159, 137, 16, 116, 147, 137, 145, 137, 145,
+ 137, 159, 135, 14, 44, 147, 147, 152, 10, 150,
+ 10, 16, 12, 136, 145, 159, 136, 136, 136, 136,
+ 156, 156, 156, 136, 154, 137, 137, 137, 86, 10,
+ 133, 16, 16, 16, 16, 16, 116, 16, 116, 19,
+ 14, 127, 159, 99, 44, 138, 94, 17, 16, 116,
+ 16, 116, 125, 137, 137, 145, 127, 137, 147, 12,
+ 159, 16, 136, 157, 157, 154, 16, 16, 16, 129,
+ 14, 122, 137, 16, 16, 17, 147, 127, 150, 16,
+ 121, 129, 149, 150, 147, 120, 150
+};
- 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. */
-
-/* This is the parser code that is written into each bison parser
- when the %semantic_parser declaration is not specified in the grammar.
- It was written by Richard Stallman by simplifying the hairy parser
- used when %semantic_parser is specified. */
-
-#ifndef YYSTACK_USE_ALLOCA
-#ifdef alloca
-#define YYSTACK_USE_ALLOCA
-#else /* alloca not defined */
-#ifdef __GNUC__
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#else /* not GNU C. */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
-#define YYSTACK_USE_ALLOCA
-#include <alloca.h>
-#else /* not sparc */
-/* We think this test detects Watcom and Microsoft C. */
-/* This used to test MSDOS, but that is a bad idea
- since that symbol is in the user namespace. */
-#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
-#if 0 /* No need for malloc.h, which pollutes the namespace;
- instead, just don't use alloca. */
-#include <malloc.h>
-#endif
-#else /* not MSDOS, or __TURBOC__ */
-#if defined(_AIX)
-/* I don't know what this was needed for, but it pollutes the namespace.
- So I turned it off. rms, 2 May 1997. */
-/* #include <malloc.h> */
- #pragma alloca
-#define YYSTACK_USE_ALLOCA
-#else /* not MSDOS, or __TURBOC__, or _AIX */
-#if 0
-#ifdef __hpux /* haible(a)ilog.fr says this works for HPUX 9.05 and up,
- and on HPUX 10. Eventually we can turn this on. */
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#endif /* __hpux */
-#endif
-#endif /* not _AIX */
-#endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc */
-#endif /* not GNU C */
-#endif /* alloca not defined */
-#endif /* YYSTACK_USE_ALLOCA not defined */
-
-#ifdef YYSTACK_USE_ALLOCA
-#define YYSTACK_ALLOC alloca
-#else
-#define YYSTACK_ALLOC malloc
-#endif
-
-/* Note: there must be only one dollar sign in this file.
- It is replaced by the list of actions, each action
- as one case of the switch. */
-
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY -2
+#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.
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+/* 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) \
+
+#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
- { yychar = (token), yylval = (value); \
- yychar1 = YYTRANSLATE (yychar); \
- YYPOPSTACK; \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+ YYPOPSTACK (1); \
goto yybackup; \
} \
else \
- { yyerror ("syntax error: cannot back up"); YYERROR; } \
-while (0)
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (YYID (0))
+
#define YYTERROR 1
#define YYERRCODE 256
-#ifndef YYPURE
-#define YYLEX yylex()
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (YYID (0))
#endif
-#ifdef YYPURE
-#ifdef YYLSP_NEEDED
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments. */
+
#ifdef YYLEX_PARAM
-#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
+# define YYLEX yylex (YYLEX_PARAM)
#else
-#define YYLEX yylex(&yylval, &yylloc)
+# define YYLEX yylex ()
#endif
-#else /* not YYLSP_NEEDED */
-#ifdef YYLEX_PARAM
-#define YYLEX yylex(&yylval, YYLEX_PARAM)
+
+/* Enable debugging if requested. */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
-#define YYLEX yylex(&yylval)
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
#endif
-#endif /* not YYLSP_NEEDED */
+{
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+ YYUSE (yyoutput);
+# endif
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
#endif
+{
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-/* If nonreentrant, generate the variables here */
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+ YYFPRINTF (yyoutput, ")");
+}
-#ifndef YYPURE
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
-int yychar; /* the lookahead symbol */
-YYSTYPE yylval; /* the semantic value of the */
- /* lookahead symbol */
-
-#ifdef YYLSP_NEEDED
-YYLTYPE yylloc; /* location data for the lookahead */
- /* symbol */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+#else
+static void
+yy_stack_print (bottom, top)
+ yytype_int16 *bottom;
+ yytype_int16 *top;
#endif
+{
+ YYFPRINTF (stderr, "Stack now");
+ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+}
-int yynerrs; /* number of parse errors so far */
-#endif /* not YYPURE */
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (YYID (0))
-#if YYDEBUG != 0
-int yydebug; /* nonzero means print parse trace */
-/* Since this is uninitialized, it does not stop multiple parsers
- from coexisting. */
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule)
+ YYSTYPE *yyvsp;
+ int yyrule;
#endif
+{
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ fprintf (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
+ fprintf (stderr, "\n");
+ }
+}
-/* YYINITDEPTH indicates the initial size of the parser's stacks */
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
+/* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks. */
#ifndef YYINITDEPTH
-#define YYINITDEPTH 200
+# define YYINITDEPTH 200
#endif
-/* YYMAXDEPTH is the maximum size the stacks can grow to
- (effective only if the built-in stack extension method is used). */
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+ if the built-in stack extension method is used).
-#if YYMAXDEPTH == 0
-#undef YYMAXDEPTH
-#endif
+ Do not make this value too large; the results are undefined if
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
#ifndef YYMAXDEPTH
-#define YYMAXDEPTH 10000
+# define YYMAXDEPTH 10000
#endif
+
-/* Define __yy_memcpy. Note that the size argument
- should be passed with type unsigned int, because that is what the non-GCC
- definitions require. With GCC, __builtin_memcpy takes an arg
- of type size_t, but it can handle unsigned int. */
-#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
-#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
-#else /* not GNU C or C++ */
-#ifndef __cplusplus
+#if YYERROR_VERBOSE
-/* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
-static void
-__yy_memcpy (to, from, count)
- char *to;
- char *from;
- unsigned int count;
+# ifndef yystrlen
+# if defined __GLIBC__ && defined _STRING_H
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+ const char *yystr;
+#endif
{
- register char *f = from;
- register char *t = to;
- register int i = count;
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+ return yylen;
+}
+# endif
+# endif
- while (i-- > 0)
- *t++ = *f++;
+# 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. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+ char *yydest;
+ const char *yysrc;
+#endif
+{
+ char *yyd = yydest;
+ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+
+ return yyd - 1;
}
+# endif
+# endif
-#else /* __cplusplus */
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ YYSIZE_T yyn = 0;
+ char const *yyp = yystr;
-/* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
-static void
-__yy_memcpy (char *to, char *from, unsigned int count)
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ if (! yyres)
+ return yystrlen (yystr);
+
+ return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into YYRESULT an error message about the unexpected token
+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
+ including the terminating null byte. If YYRESULT is null, do not
+ copy anything; just return the number of bytes that would be
+ copied. As a special case, return 0 if an ordinary "syntax error"
+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
+ size calculation. */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
{
- register char *t = to;
- register char *f = from;
- register int i = count;
+ int yyn = yypact[yystate];
- while (i-- > 0)
- *t++ = *f++;
+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+ return 0;
+ else
+ {
+ int yytype = YYTRANSLATE (yychar);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ int yysize_overflow = 0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ int yyx;
+
+# if 0
+ /* This is so xgettext sees the translatable formats that are
+ constructed on the fly. */
+ YY_("syntax error, unexpected %s");
+ YY_("syntax error, unexpected %s, expecting %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+ char *yyfmt;
+ char const *yyf;
+ static char const yyunexpected[] = "syntax error, unexpected %s";
+ static char const yyexpecting[] = ", expecting %s";
+ static char const yyor[] = " or %s";
+ char yyformat[sizeof yyunexpected
+ + sizeof yyexpecting - 1
+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+ * (sizeof yyor - 1))];
+ char const *yyprefix = yyexpecting;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 1;
+
+ yyarg[0] = yytname[yytype];
+ yyfmt = yystpcpy (yyformat, yyunexpected);
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ yyformat[sizeof yyunexpected - 1] = '\0';
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+ yyfmt = yystpcpy (yyfmt, yyprefix);
+ yyprefix = yyor;
+ }
+
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+
+ if (yysize_overflow)
+ return YYSIZE_MAXIMUM;
+
+ if (yyresult)
+ {
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ char *yyp = yyresult;
+ int yyi = 0;
+ while ((*yyp = *yyf) != '\0')
+ {
+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyf += 2;
+ }
+ else
+ {
+ yyp++;
+ yyf++;
+ }
+ }
+ }
+ return yysize;
+ }
}
+#endif /* YYERROR_VERBOSE */
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
#endif
-#endif
+{
+ YYUSE (yyvaluep);
+
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+ break;
+ }
+}
-#line 216 "bison.simple"
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
- into yyparse. The argument should have type void *.
- It should actually point to an object.
- Grammar actions can access the variable by casting it
- to the proper pointer type. */
+/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
-#ifdef __cplusplus
-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* not __cplusplus */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#endif /* not __cplusplus */
-#else /* not YYPARSE_PARAM */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* not YYPARSE_PARAM */
-
-/* Prevent warning if -Wstrict-prototypes. */
-#ifdef __GNUC__
-#ifdef YYPARSE_PARAM
-int yyparse (void *);
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
int yyparse (void);
+#else
+int yyparse ();
#endif
-#endif
+#endif /* ! YYPARSE_PARAM */
-int
-yyparse(YYPARSE_PARAM_ARG)
- YYPARSE_PARAM_DECL
-{
- register int yystate;
- register int yyn;
- register short *yyssp;
- register YYSTYPE *yyvsp;
- int yyerrstatus; /* number of tokens to shift before error messages enabled */
- int yychar1 = 0; /* lookahead token as an internal (translated) token number */
- short yyssa[YYINITDEPTH]; /* the state stack */
- YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
- short *yyss = yyssa; /* refer to the stacks thru separate pointers */
- YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+/* The look-ahead symbol. */
+int yychar;
-#ifdef YYLSP_NEEDED
- YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
- YYLTYPE *yyls = yylsa;
- YYLTYPE *yylsp;
+/* The semantic value of the look-ahead symbol. */
+YYSTYPE yylval;
-#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+/* Number of syntax errors so far. */
+int yynerrs;
+
+
+
+/*----------.
+| yyparse. |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
#else
-#define YYPOPSTACK (yyvsp--, yyssp--)
+int
+yyparse (YYPARSE_PARAM)
+ void *YYPARSE_PARAM;
#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void)
+#else
+int
+yyparse ()
- int yystacksize = YYINITDEPTH;
- int yyfree_stacks = 0;
-
-#ifdef YYPURE
- int yychar;
- YYSTYPE yylval;
- int yynerrs;
-#ifdef YYLSP_NEEDED
- YYLTYPE yylloc;
#endif
#endif
+{
+
+ int yystate;
+ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
- YYSTYPE yyval; /* the variable used to return */
- /* semantic values from the action */
- /* routines */
+ /* Three stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+ `yyls': related to locations.
- int yylen;
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Starting parse\n");
-#endif
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss = yyssa;
+ yytype_int16 *yyssp;
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp;
+
+
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
@@ -1800,1088 +2526,1144 @@
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
- yyssp = yyss - 1;
+ yyssp = yyss;
yyvsp = yyvs;
-#ifdef YYLSP_NEEDED
- yylsp = yyls;
-#endif
-/* Push a new state, which is found in yystate . */
-/* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks. */
-yynewstate:
+ goto yysetstate;
- *++yyssp = yystate;
+/*------------------------------------------------------------.
+| 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++;
- if (yyssp >= yyss + yystacksize - 1)
+ yysetstate:
+ *yyssp = yystate;
+
+ if (yyss + yystacksize - 1 <= yyssp)
{
- /* Give user a chance to reallocate the stack */
- /* Use copies of these so that the &'s don't force the real ones into memory. */
- YYSTYPE *yyvs1 = yyvs;
- short *yyss1 = yyss;
-#ifdef YYLSP_NEEDED
- YYLTYPE *yyls1 = yyls;
-#endif
-
/* Get the current used size of the three stacks, in elements. */
- int size = yyssp - yyss + 1;
+ YYSIZE_T yysize = yyssp - yyss + 1;
#ifdef yyoverflow
- /* Each stack pointer address is followed by the size of
- the data in use in that stack, in bytes. */
-#ifdef YYLSP_NEEDED
- /* This used to be a conditional around just the two extra args,
- but that might be undefined if yyoverflow is a macro. */
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- &yyls1, size * sizeof (*yylsp),
- &yystacksize);
-#else
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- &yystacksize);
-#endif
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;
- yyss = yyss1; yyvs = yyvs1;
-#ifdef YYLSP_NEEDED
- yyls = yyls1;
-#endif
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
/* Extend the stack our own way. */
- if (yystacksize >= YYMAXDEPTH)
- {
- yyerror("parser stack overflow");
- if (yyfree_stacks)
- {
- free (yyss);
- free (yyvs);
-#ifdef YYLSP_NEEDED
- free (yyls);
-#endif
- }
- return 2;
- }
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyexhaustedlab;
yystacksize *= 2;
- if (yystacksize > YYMAXDEPTH)
+ if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
-#ifndef YYSTACK_USE_ALLOCA
- yyfree_stacks = 1;
-#endif
- yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
- __yy_memcpy ((char *)yyss, (char *)yyss1,
- size * (unsigned int) sizeof (*yyssp));
- yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
- __yy_memcpy ((char *)yyvs, (char *)yyvs1,
- size * (unsigned int) sizeof (*yyvsp));
-#ifdef YYLSP_NEEDED
- yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
- __yy_memcpy ((char *)yyls, (char *)yyls1,
- size * (unsigned int) sizeof (*yylsp));
-#endif
+
+ {
+ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
#endif /* no yyoverflow */
- yyssp = yyss + size - 1;
- yyvsp = yyvs + size - 1;
-#ifdef YYLSP_NEEDED
- yylsp = yyls + size - 1;
-#endif
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Stack size increased to %d\n", yystacksize);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Entering state %d\n", yystate);
-#endif
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
goto yybackup;
- yybackup:
-/* Do appropriate processing given the current state. */
-/* Read a lookahead token if we need one and don't already have one. */
-/* yyresume: */
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
- /* First try to decide what to do without reference to lookahead token. */
+ /* Do appropriate processing given the current state. Read a
+ look-ahead token if we need one and don't already have one. */
+ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
- if (yyn == YYFLAG)
+ if (yyn == YYPACT_NINF)
goto yydefault;
- /* Not known => get a lookahead token if don't already have one. */
+ /* Not known => get a look-ahead token if don't already have one. */
- /* yychar is either YYEMPTY or YYEOF
- or a valid token in external form. */
-
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Reading a token: ");
-#endif
+ YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
}
- /* Convert token to internal form (in yychar1) for indexing tables with */
-
- if (yychar <= 0) /* This means end of input. */
+ if (yychar <= YYEOF)
{
- yychar1 = 0;
- yychar = YYEOF; /* Don't call YYLEX any more */
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Now at end of input.\n");
-#endif
+ yychar = yytoken = YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else
{
- yychar1 = YYTRANSLATE(yychar);
-
-#if YYDEBUG != 0
- if (yydebug)
- {
- fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
- /* Give the individual parser a way to print the precise meaning
- of a token, for further debugging info. */
-#ifdef YYPRINT
- YYPRINT (stderr, yychar, yylval);
-#endif
- fprintf (stderr, ")\n");
- }
-#endif
+ yytoken = YYTRANSLATE (yychar);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
- yyn += yychar1;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ /* 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];
-
- /* yyn is what to do for this token type in this state.
- Negative => reduce, -yyn is rule number.
- Positive => shift, yyn is new state.
- New state is final state => don't bother to shift,
- just return success.
- 0, or most negative number => error. */
-
- if (yyn < 0)
+ if (yyn <= 0)
{
- if (yyn == YYFLAG)
+ if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
- else if (yyn == 0)
- goto yyerrlab;
if (yyn == YYFINAL)
YYACCEPT;
- /* Shift the lookahead token. */
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
-#endif
+ /* Shift the look-ahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- /* Discard the token being shifted unless it is eof. */
+ /* Discard the shifted token unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
+ yystate = yyn;
*++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
-#endif
- /* count tokens shifted since error; after three, turn off error status. */
- if (yyerrstatus) yyerrstatus--;
-
- yystate = yyn;
goto yynewstate;
-/* Do the default action for the current state. */
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
yydefault:
-
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
+ goto yyreduce;
-/* Do a reduction. yyn is the number of a rule to reduce with. */
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
yyreduce:
+ /* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn];
- if (yylen > 0)
- yyval = yyvsp[1-yylen]; /* implement default value of the action */
-#if YYDEBUG != 0
- if (yydebug)
- {
- int i;
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
+ 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];
- /* Print the symbols being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- }
-#endif
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+ case 2:
+#line 98 "awkgram.y"
+ { if (errorflag==0)
+ winner = (Node *)stat3(PROGRAM, beginloc, (yyvsp[(1) - (1)].p), endloc); }
+ break;
- switch (yyn) {
+ case 3:
+#line 100 "awkgram.y"
+ { yyclearin; bracecheck(); SYNTAX("bailing out"); }
+ break;
-case 1:
-#line 99 "awkgram.y"
-{ if (errorflag==0)
- winner = (Node *)stat3(PROGRAM, beginloc, yyvsp[0].p, endloc); ;
- break;}
-case 2:
-#line 101 "awkgram.y"
-{ yyclearin; bracecheck(); SYNTAX("bailing out"); ;
- break;}
-case 13:
+ case 14:
+#line 124 "awkgram.y"
+ {inloop++;}
+ break;
+
+ case 15:
#line 125 "awkgram.y"
-{inloop++;;
- break;}
-case 14:
+ { --inloop; (yyval.p) = stat4(FOR, (yyvsp[(3) - (12)].p), notnull((yyvsp[(6) - (12)].p)), (yyvsp[(9) - (12)].p), (yyvsp[(12) - (12)].p)); }
+ break;
+
+ case 16:
#line 126 "awkgram.y"
-{ --inloop; yyval.p = stat4(FOR, yyvsp[-9].p, notnull(yyvsp[-6].p), yyvsp[-3].p, yyvsp[0].p); ;
- break;}
-case 15:
+ {inloop++;}
+ break;
+
+ case 17:
#line 127 "awkgram.y"
-{inloop++;;
- break;}
-case 16:
+ { --inloop; (yyval.p) = stat4(FOR, (yyvsp[(3) - (10)].p), NIL, (yyvsp[(7) - (10)].p), (yyvsp[(10) - (10)].p)); }
+ break;
+
+ case 18:
#line 128 "awkgram.y"
-{ --inloop; yyval.p = stat4(FOR, yyvsp[-7].p, NIL, yyvsp[-3].p, yyvsp[0].p); ;
- break;}
-case 17:
+ {inloop++;}
+ break;
+
+ case 19:
#line 129 "awkgram.y"
-{inloop++;;
- break;}
-case 18:
-#line 130 "awkgram.y"
-{ --inloop; yyval.p = stat3(IN, yyvsp[-5].p, makearr(yyvsp[-3].p), yyvsp[0].p); ;
- break;}
-case 19:
+ { --inloop; (yyval.p) = stat3(IN, (yyvsp[(3) - (8)].p), makearr((yyvsp[(5) - (8)].p)), (yyvsp[(8) - (8)].p)); }
+ break;
+
+ case 20:
+#line 133 "awkgram.y"
+ { setfname((yyvsp[(1) - (1)].cp)); }
+ break;
+
+ case 21:
#line 134 "awkgram.y"
-{ setfname(yyvsp[0].cp); ;
- break;}
-case 20:
-#line 135 "awkgram.y"
-{ setfname(yyvsp[0].cp); ;
- break;}
-case 21:
-#line 139 "awkgram.y"
-{ yyval.p = notnull(yyvsp[-1].p); ;
- break;}
-case 26:
-#line 151 "awkgram.y"
-{ yyval.i = 0; ;
- break;}
-case 28:
-#line 156 "awkgram.y"
-{ yyval.i = 0; ;
- break;}
-case 30:
-#line 162 "awkgram.y"
-{ yyval.p = 0; ;
- break;}
-case 32:
+ { setfname((yyvsp[(1) - (1)].cp)); }
+ break;
+
+ case 22:
+#line 138 "awkgram.y"
+ { (yyval.p) = notnull((yyvsp[(3) - (4)].p)); }
+ break;
+
+ case 27:
+#line 150 "awkgram.y"
+ { (yyval.i) = 0; }
+ break;
+
+ case 29:
+#line 155 "awkgram.y"
+ { (yyval.i) = 0; }
+ break;
+
+ case 31:
+#line 161 "awkgram.y"
+ { (yyval.p) = 0; }
+ break;
+
+ case 33:
+#line 166 "awkgram.y"
+ { (yyval.p) = 0; }
+ break;
+
+ case 34:
#line 167 "awkgram.y"
-{ yyval.p = 0; ;
- break;}
-case 33:
-#line 168 "awkgram.y"
-{ yyval.p = yyvsp[-1].p; ;
- break;}
-case 34:
-#line 172 "awkgram.y"
-{ yyval.p = notnull(yyvsp[0].p); ;
- break;}
-case 35:
+ { (yyval.p) = (yyvsp[(2) - (3)].p); }
+ break;
+
+ case 35:
+#line 171 "awkgram.y"
+ { (yyval.p) = notnull((yyvsp[(1) - (1)].p)); }
+ break;
+
+ case 36:
+#line 175 "awkgram.y"
+ { (yyval.p) = stat2(PASTAT, (yyvsp[(1) - (1)].p), stat2(PRINT, rectonode(), NIL)); }
+ break;
+
+ case 37:
#line 176 "awkgram.y"
-{ yyval.p = stat2(PASTAT, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); ;
- break;}
-case 36:
+ { (yyval.p) = stat2(PASTAT, (yyvsp[(1) - (4)].p), (yyvsp[(3) - (4)].p)); }
+ break;
+
+ case 38:
#line 177 "awkgram.y"
-{ yyval.p = stat2(PASTAT, yyvsp[-3].p, yyvsp[-1].p); ;
- break;}
-case 37:
+ { (yyval.p) = pa2stat((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p), stat2(PRINT, rectonode(), NIL)); }
+ break;
+
+ case 39:
#line 178 "awkgram.y"
-{ yyval.p = pa2stat(yyvsp[-2].p, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); ;
- break;}
-case 38:
+ { (yyval.p) = pa2stat((yyvsp[(1) - (6)].p), (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p)); }
+ break;
+
+ case 40:
#line 179 "awkgram.y"
-{ yyval.p = pa2stat(yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); ;
- break;}
-case 39:
-#line 180 "awkgram.y"
-{ yyval.p = stat2(PASTAT, NIL, yyvsp[-1].p); ;
- break;}
-case 40:
-#line 182 "awkgram.y"
-{ beginloc = linkum(beginloc, yyvsp[-1].p); yyval.p = 0; ;
- break;}
-case 41:
+ { (yyval.p) = stat2(PASTAT, NIL, (yyvsp[(2) - (3)].p)); }
+ break;
+
+ case 41:
+#line 181 "awkgram.y"
+ { beginloc = linkum(beginloc, (yyvsp[(3) - (4)].p)); (yyval.p) = 0; }
+ break;
+
+ case 42:
+#line 183 "awkgram.y"
+ { endloc = linkum(endloc, (yyvsp[(3) - (4)].p)); (yyval.p) = 0; }
+ break;
+
+ case 43:
#line 184 "awkgram.y"
-{ endloc = linkum(endloc, yyvsp[-1].p); yyval.p = 0; ;
- break;}
-case 42:
+ {infunc++;}
+ break;
+
+ case 44:
#line 185 "awkgram.y"
-{infunc++;;
- break;}
-case 43:
-#line 186 "awkgram.y"
-{ infunc--; curfname=0; defn((Cell *)yyvsp[-7].p, yyvsp[-5].p, yyvsp[-1].p); yyval.p = 0; ;
- break;}
-case 45:
-#line 191 "awkgram.y"
-{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 47:
-#line 196 "awkgram.y"
-{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 48:
-#line 200 "awkgram.y"
-{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 49:
-#line 202 "awkgram.y"
-{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 50:
-#line 204 "awkgram.y"
-{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); ;
- break;}
-case 51:
+ { infunc--; curfname=0; defn((Cell *)(yyvsp[(2) - (9)].p), (yyvsp[(4) - (9)].p), (yyvsp[(8) - (9)].p)); (yyval.p) = 0; }
+ break;
+
+ case 46:
+#line 190 "awkgram.y"
+ { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 48:
+#line 195 "awkgram.y"
+ { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 49:
+#line 199 "awkgram.y"
+ { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 50:
+#line 201 "awkgram.y"
+ { (yyval.p) = op3(CONDEXPR, notnull((yyvsp[(1) - (5)].p)), (yyvsp[(3) - (5)].p), (yyvsp[(5) - (5)].p)); }
+ break;
+
+ case 51:
+#line 203 "awkgram.y"
+ { (yyval.p) = op2(BOR, notnull((yyvsp[(1) - (3)].p)), notnull((yyvsp[(3) - (3)].p))); }
+ break;
+
+ case 52:
+#line 205 "awkgram.y"
+ { (yyval.p) = op2(AND, notnull((yyvsp[(1) - (3)].p)), notnull((yyvsp[(3) - (3)].p))); }
+ break;
+
+ case 53:
#line 206 "awkgram.y"
-{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); ;
- break;}
-case 52:
-#line 207 "awkgram.y"
-{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); ;
- break;}
-case 53:
-#line 209 "awkgram.y"
-{ if (constnode(yyvsp[0].p))
- yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(strnode(yyvsp[0].p), 0));
+ { (yyval.p) = op3((yyvsp[(2) - (3)].i), NIL, (yyvsp[(1) - (3)].p), (Node*)makedfa((yyvsp[(3) - (3)].s), 0)); }
+ break;
+
+ case 54:
+#line 208 "awkgram.y"
+ { if (constnode((yyvsp[(3) - (3)].p)))
+ (yyval.p) = op3((yyvsp[(2) - (3)].i), NIL, (yyvsp[(1) - (3)].p), (Node*)makedfa(strnode((yyvsp[(3) - (3)].p)), 0));
else
- yyval.p = op3(yyvsp[-1].i, (Node *)1, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 54:
+ (yyval.p) = op3((yyvsp[(2) - (3)].i), (Node *)1, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 55:
+#line 212 "awkgram.y"
+ { (yyval.p) = op2(INTEST, (yyvsp[(1) - (3)].p), makearr((yyvsp[(3) - (3)].p))); }
+ break;
+
+ case 56:
#line 213 "awkgram.y"
-{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); ;
- break;}
-case 55:
+ { (yyval.p) = op2(INTEST, (yyvsp[(2) - (5)].p), makearr((yyvsp[(5) - (5)].p))); }
+ break;
+
+ case 57:
#line 214 "awkgram.y"
-{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); ;
- break;}
-case 56:
-#line 215 "awkgram.y"
-{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); ;
- break;}
-case 59:
-#line 221 "awkgram.y"
-{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 60:
-#line 223 "awkgram.y"
-{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 61:
-#line 225 "awkgram.y"
-{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); ;
- break;}
-case 62:
+ { (yyval.p) = op2(CAT, (yyvsp[(1) - (2)].p), (yyvsp[(2) - (2)].p)); }
+ break;
+
+ case 60:
+#line 220 "awkgram.y"
+ { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 61:
+#line 222 "awkgram.y"
+ { (yyval.p) = op3(CONDEXPR, notnull((yyvsp[(1) - (5)].p)), (yyvsp[(3) - (5)].p), (yyvsp[(5) - (5)].p)); }
+ break;
+
+ case 62:
+#line 224 "awkgram.y"
+ { (yyval.p) = op2(BOR, notnull((yyvsp[(1) - (3)].p)), notnull((yyvsp[(3) - (3)].p))); }
+ break;
+
+ case 63:
+#line 226 "awkgram.y"
+ { (yyval.p) = op2(AND, notnull((yyvsp[(1) - (3)].p)), notnull((yyvsp[(3) - (3)].p))); }
+ break;
+
+ case 64:
#line 227 "awkgram.y"
-{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); ;
- break;}
-case 63:
+ { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 65:
#line 228 "awkgram.y"
-{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 64:
+ { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 66:
#line 229 "awkgram.y"
-{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 65:
+ { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 67:
#line 230 "awkgram.y"
-{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 66:
+ { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 68:
#line 231 "awkgram.y"
-{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 67:
+ { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 69:
#line 232 "awkgram.y"
-{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 68:
+ { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 70:
#line 233 "awkgram.y"
-{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 69:
-#line 234 "awkgram.y"
-{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); ;
- break;}
-case 70:
-#line 236 "awkgram.y"
-{ if (constnode(yyvsp[0].p))
- yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(strnode(yyvsp[0].p), 0));
+ { (yyval.p) = op3((yyvsp[(2) - (3)].i), NIL, (yyvsp[(1) - (3)].p), (Node*)makedfa((yyvsp[(3) - (3)].s), 0)); }
+ break;
+
+ case 71:
+#line 235 "awkgram.y"
+ { if (constnode((yyvsp[(3) - (3)].p)))
+ (yyval.p) = op3((yyvsp[(2) - (3)].i), NIL, (yyvsp[(1) - (3)].p), (Node*)makedfa(strnode((yyvsp[(3) - (3)].p)), 0));
else
- yyval.p = op3(yyvsp[-1].i, (Node *)1, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 71:
+ (yyval.p) = op3((yyvsp[(2) - (3)].i), (Node *)1, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 72:
+#line 239 "awkgram.y"
+ { (yyval.p) = op2(INTEST, (yyvsp[(1) - (3)].p), makearr((yyvsp[(3) - (3)].p))); }
+ break;
+
+ case 73:
#line 240 "awkgram.y"
-{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); ;
- break;}
-case 72:
+ { (yyval.p) = op2(INTEST, (yyvsp[(2) - (5)].p), makearr((yyvsp[(5) - (5)].p))); }
+ break;
+
+ case 74:
#line 241 "awkgram.y"
-{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); ;
- break;}
-case 73:
-#line 242 "awkgram.y"
-{
+ {
if (safe) SYNTAX("cmd | getline is unsafe");
- else yyval.p = op3(GETLINE, yyvsp[0].p, itonp(yyvsp[-2].i), yyvsp[-3].p); ;
- break;}
-case 74:
-#line 245 "awkgram.y"
-{
+ else (yyval.p) = op3(GETLINE, (yyvsp[(4) - (4)].p), itonp((yyvsp[(2) - (4)].i)), (yyvsp[(1) - (4)].p)); }
+ break;
+
+ case 75:
+#line 244 "awkgram.y"
+ {
if (safe) SYNTAX("cmd | getline is unsafe");
- else yyval.p = op3(GETLINE, (Node*)0, itonp(yyvsp[-1].i), yyvsp[-2].p); ;
- break;}
-case 75:
-#line 248 "awkgram.y"
-{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); ;
- break;}
-case 78:
+ else (yyval.p) = op3(GETLINE, (Node*)0, itonp((yyvsp[(2) - (3)].i)), (yyvsp[(1) - (3)].p)); }
+ break;
+
+ case 76:
+#line 247 "awkgram.y"
+ { (yyval.p) = op2(CAT, (yyvsp[(1) - (2)].p), (yyvsp[(2) - (2)].p)); }
+ break;
+
+ case 79:
+#line 253 "awkgram.y"
+ { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 80:
#line 254 "awkgram.y"
-{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 79:
-#line 255 "awkgram.y"
-{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 81:
-#line 260 "awkgram.y"
-{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 82:
-#line 264 "awkgram.y"
-{ yyval.p = rectonode(); ;
- break;}
-case 84:
-#line 266 "awkgram.y"
-{ yyval.p = yyvsp[-1].p; ;
- break;}
-case 93:
+ { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 82:
+#line 259 "awkgram.y"
+ { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 83:
+#line 263 "awkgram.y"
+ { (yyval.p) = rectonode(); }
+ break;
+
+ case 85:
+#line 265 "awkgram.y"
+ { (yyval.p) = (yyvsp[(2) - (3)].p); }
+ break;
+
+ case 94:
+#line 282 "awkgram.y"
+ { (yyval.p) = op3(MATCH, NIL, rectonode(), (Node*)makedfa((yyvsp[(1) - (1)].s), 0)); }
+ break;
+
+ case 95:
#line 283 "awkgram.y"
-{ yyval.p = op3(MATCH, NIL, rectonode(), (Node*)makedfa(yyvsp[0].s, 0)); ;
- break;}
-case 94:
-#line 284 "awkgram.y"
-{ yyval.p = op1(NOT, notnull(yyvsp[0].p)); ;
- break;}
-case 95:
-#line 288 "awkgram.y"
-{startreg();;
- break;}
-case 96:
-#line 288 "awkgram.y"
-{ yyval.s = yyvsp[-1].s; ;
- break;}
-case 99:
-#line 296 "awkgram.y"
-{
+ { (yyval.p) = op1(NOT, notnull((yyvsp[(2) - (2)].p))); }
+ break;
+
+ case 96:
+#line 287 "awkgram.y"
+ {startreg();}
+ break;
+
+ case 97:
+#line 287 "awkgram.y"
+ { (yyval.s) = (yyvsp[(3) - (4)].s); }
+ break;
+
+ case 100:
+#line 295 "awkgram.y"
+ {
if (safe) SYNTAX("print | is unsafe");
- else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); ;
- break;}
-case 100:
-#line 299 "awkgram.y"
-{
+ else (yyval.p) = stat3((yyvsp[(1) - (4)].i), (yyvsp[(2) - (4)].p), itonp((yyvsp[(3) - (4)].i)), (yyvsp[(4) - (4)].p)); }
+ break;
+
+ case 101:
+#line 298 "awkgram.y"
+ {
if (safe) SYNTAX("print >> is unsafe");
- else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); ;
- break;}
-case 101:
-#line 302 "awkgram.y"
-{
+ else (yyval.p) = stat3((yyvsp[(1) - (4)].i), (yyvsp[(2) - (4)].p), itonp((yyvsp[(3) - (4)].i)), (yyvsp[(4) - (4)].p)); }
+ break;
+
+ case 102:
+#line 301 "awkgram.y"
+ {
if (safe) SYNTAX("print > is unsafe");
- else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); ;
- break;}
-case 102:
+ else (yyval.p) = stat3((yyvsp[(1) - (4)].i), (yyvsp[(2) - (4)].p), itonp((yyvsp[(3) - (4)].i)), (yyvsp[(4) - (4)].p)); }
+ break;
+
+ case 103:
+#line 304 "awkgram.y"
+ { (yyval.p) = stat3((yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].p), NIL, NIL); }
+ break;
+
+ case 104:
#line 305 "awkgram.y"
-{ yyval.p = stat3(yyvsp[-1].i, yyvsp[0].p, NIL, NIL); ;
- break;}
-case 103:
+ { (yyval.p) = stat2(DELETE, makearr((yyvsp[(2) - (5)].p)), (yyvsp[(4) - (5)].p)); }
+ break;
+
+ case 105:
#line 306 "awkgram.y"
-{ yyval.p = stat2(DELETE, makearr(yyvsp[-3].p), yyvsp[-1].p); ;
- break;}
-case 104:
+ { (yyval.p) = stat2(DELETE, makearr((yyvsp[(2) - (2)].p)), 0); }
+ break;
+
+ case 106:
#line 307 "awkgram.y"
-{ yyval.p = stat2(DELETE, makearr(yyvsp[0].p), 0); ;
- break;}
-case 105:
+ { (yyval.p) = exptostat((yyvsp[(1) - (1)].p)); }
+ break;
+
+ case 107:
#line 308 "awkgram.y"
-{ yyval.p = exptostat(yyvsp[0].p); ;
- break;}
-case 106:
-#line 309 "awkgram.y"
-{ yyclearin; SYNTAX("illegal statement"); ;
- break;}
-case 109:
-#line 318 "awkgram.y"
-{ if (!inloop) SYNTAX("break illegal outside of loops");
- yyval.p = stat1(BREAK, NIL); ;
- break;}
-case 110:
-#line 320 "awkgram.y"
-{ if (!inloop) SYNTAX("continue illegal outside of loops");
- yyval.p = stat1(CONTINUE, NIL); ;
- break;}
-case 111:
+ { yyclearin; SYNTAX("illegal statement"); }
+ break;
+
+ case 110:
+#line 317 "awkgram.y"
+ { if (!inloop) SYNTAX("break illegal outside of loops");
+ (yyval.p) = stat1(BREAK, NIL); }
+ break;
+
+ case 111:
+#line 319 "awkgram.y"
+ { if (!inloop) SYNTAX("continue illegal outside of loops");
+ (yyval.p) = stat1(CONTINUE, NIL); }
+ break;
+
+ case 112:
+#line 321 "awkgram.y"
+ {inloop++;}
+ break;
+
+ case 113:
+#line 321 "awkgram.y"
+ {--inloop;}
+ break;
+
+ case 114:
#line 322 "awkgram.y"
-{inloop++;;
- break;}
-case 112:
-#line 322 "awkgram.y"
-{--inloop;;
- break;}
-case 113:
+ { (yyval.p) = stat2(DO, (yyvsp[(3) - (9)].p), notnull((yyvsp[(7) - (9)].p))); }
+ break;
+
+ case 115:
#line 323 "awkgram.y"
-{ yyval.p = stat2(DO, yyvsp[-6].p, notnull(yyvsp[-2].p)); ;
- break;}
-case 114:
+ { (yyval.p) = stat1(EXIT, (yyvsp[(2) - (3)].p)); }
+ break;
+
+ case 116:
#line 324 "awkgram.y"
-{ yyval.p = stat1(EXIT, yyvsp[-1].p); ;
- break;}
-case 115:
-#line 325 "awkgram.y"
-{ yyval.p = stat1(EXIT, NIL); ;
- break;}
-case 117:
+ { (yyval.p) = stat1(EXIT, NIL); }
+ break;
+
+ case 118:
+#line 326 "awkgram.y"
+ { (yyval.p) = stat3(IF, (yyvsp[(1) - (4)].p), (yyvsp[(2) - (4)].p), (yyvsp[(4) - (4)].p)); }
+ break;
+
+ case 119:
#line 327 "awkgram.y"
-{ yyval.p = stat3(IF, yyvsp[-3].p, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 118:
+ { (yyval.p) = stat3(IF, (yyvsp[(1) - (2)].p), (yyvsp[(2) - (2)].p), NIL); }
+ break;
+
+ case 120:
#line 328 "awkgram.y"
-{ yyval.p = stat3(IF, yyvsp[-1].p, yyvsp[0].p, NIL); ;
- break;}
-case 119:
+ { (yyval.p) = (yyvsp[(2) - (3)].p); }
+ break;
+
+ case 121:
#line 329 "awkgram.y"
-{ yyval.p = yyvsp[-1].p; ;
- break;}
-case 120:
-#line 330 "awkgram.y"
-{ if (infunc)
+ { if (infunc)
SYNTAX("next is illegal inside a function");
- yyval.p = stat1(NEXT, NIL); ;
- break;}
-case 121:
-#line 333 "awkgram.y"
-{ if (infunc)
+ (yyval.p) = stat1(NEXT, NIL); }
+ break;
+
+ case 122:
+#line 332 "awkgram.y"
+ { if (infunc)
SYNTAX("nextfile is illegal inside a function");
- yyval.p = stat1(NEXTFILE, NIL); ;
- break;}
-case 122:
+ (yyval.p) = stat1(NEXTFILE, NIL); }
+ break;
+
+ case 123:
+#line 335 "awkgram.y"
+ { (yyval.p) = stat1(RETURN, (yyvsp[(2) - (3)].p)); }
+ break;
+
+ case 124:
#line 336 "awkgram.y"
-{ yyval.p = stat1(RETURN, yyvsp[-1].p); ;
- break;}
-case 123:
-#line 337 "awkgram.y"
-{ yyval.p = stat1(RETURN, NIL); ;
- break;}
-case 125:
+ { (yyval.p) = stat1(RETURN, NIL); }
+ break;
+
+ case 126:
+#line 338 "awkgram.y"
+ {inloop++;}
+ break;
+
+ case 127:
+#line 338 "awkgram.y"
+ { --inloop; (yyval.p) = stat2(WHILE, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 128:
#line 339 "awkgram.y"
-{inloop++;;
- break;}
-case 126:
-#line 339 "awkgram.y"
-{ --inloop; yyval.p = stat2(WHILE, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 127:
-#line 340 "awkgram.y"
-{ yyval.p = 0; ;
- break;}
-case 129:
-#line 345 "awkgram.y"
-{ yyval.p = linkum(yyvsp[-1].p, yyvsp[0].p); ;
- break;}
-case 132:
+ { (yyval.p) = 0; }
+ break;
+
+ case 130:
+#line 344 "awkgram.y"
+ { (yyval.p) = linkum((yyvsp[(1) - (2)].p), (yyvsp[(2) - (2)].p)); }
+ break;
+
+ case 133:
+#line 352 "awkgram.y"
+ { (yyval.p) = op2(DIVEQ, (yyvsp[(1) - (4)].p), (yyvsp[(4) - (4)].p)); }
+ break;
+
+ case 134:
#line 353 "awkgram.y"
-{ yyval.p = op2(DIVEQ, yyvsp[-3].p, yyvsp[0].p); ;
- break;}
-case 133:
+ { (yyval.p) = op2(ADD, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 135:
#line 354 "awkgram.y"
-{ yyval.p = op2(ADD, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 134:
+ { (yyval.p) = op2(MINUS, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 136:
#line 355 "awkgram.y"
-{ yyval.p = op2(MINUS, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 135:
+ { (yyval.p) = op2(MULT, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 137:
#line 356 "awkgram.y"
-{ yyval.p = op2(MULT, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 136:
+ { (yyval.p) = op2(DIVIDE, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 138:
#line 357 "awkgram.y"
-{ yyval.p = op2(DIVIDE, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 137:
+ { (yyval.p) = op2(MOD, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 139:
#line 358 "awkgram.y"
-{ yyval.p = op2(MOD, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 138:
+ { (yyval.p) = op2(POWER, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 140:
#line 359 "awkgram.y"
-{ yyval.p = op2(POWER, yyvsp[-2].p, yyvsp[0].p); ;
- break;}
-case 139:
+ { (yyval.p) = op1(UMINUS, (yyvsp[(2) - (2)].p)); }
+ break;
+
+ case 141:
#line 360 "awkgram.y"
-{ yyval.p = op1(UMINUS, yyvsp[0].p); ;
- break;}
-case 140:
+ { (yyval.p) = (yyvsp[(2) - (2)].p); }
+ break;
+
+ case 142:
#line 361 "awkgram.y"
-{ yyval.p = yyvsp[0].p; ;
- break;}
-case 141:
+ { (yyval.p) = op1(NOT, notnull((yyvsp[(2) - (2)].p))); }
+ break;
+
+ case 143:
#line 362 "awkgram.y"
-{ yyval.p = op1(NOT, notnull(yyvsp[0].p)); ;
- break;}
-case 142:
+ { (yyval.p) = op2(BLTIN, itonp((yyvsp[(1) - (3)].i)), rectonode()); }
+ break;
+
+ case 144:
#line 363 "awkgram.y"
-{ yyval.p = op2(BLTIN, itonp(yyvsp[-2].i), rectonode()); ;
- break;}
-case 143:
+ { (yyval.p) = op2(BLTIN, itonp((yyvsp[(1) - (4)].i)), (yyvsp[(3) - (4)].p)); }
+ break;
+
+ case 145:
#line 364 "awkgram.y"
-{ yyval.p = op2(BLTIN, itonp(yyvsp[-3].i), yyvsp[-1].p); ;
- break;}
-case 144:
+ { (yyval.p) = op2(BLTIN, itonp((yyvsp[(1) - (1)].i)), rectonode()); }
+ break;
+
+ case 146:
#line 365 "awkgram.y"
-{ yyval.p = op2(BLTIN, itonp(yyvsp[0].i), rectonode()); ;
- break;}
-case 145:
+ { (yyval.p) = op2(CALL, celltonode((yyvsp[(1) - (3)].cp),CVAR), NIL); }
+ break;
+
+ case 147:
#line 366 "awkgram.y"
-{ yyval.p = op2(CALL, celltonode(yyvsp[-2].cp,CVAR), NIL); ;
- break;}
-case 146:
+ { (yyval.p) = op2(CALL, celltonode((yyvsp[(1) - (4)].cp),CVAR), (yyvsp[(3) - (4)].p)); }
+ break;
+
+ case 148:
#line 367 "awkgram.y"
-{ yyval.p = op2(CALL, celltonode(yyvsp[-3].cp,CVAR), yyvsp[-1].p); ;
- break;}
-case 147:
+ { (yyval.p) = op1(CLOSE, (yyvsp[(2) - (2)].p)); }
+ break;
+
+ case 149:
#line 368 "awkgram.y"
-{ yyval.p = op1(CLOSE, yyvsp[0].p); ;
- break;}
-case 148:
+ { (yyval.p) = op1(PREDECR, (yyvsp[(2) - (2)].p)); }
+ break;
+
+ case 150:
#line 369 "awkgram.y"
-{ yyval.p = op1(PREDECR, yyvsp[0].p); ;
- break;}
-case 149:
+ { (yyval.p) = op1(PREINCR, (yyvsp[(2) - (2)].p)); }
+ break;
+
+ case 151:
#line 370 "awkgram.y"
-{ yyval.p = op1(PREINCR, yyvsp[0].p); ;
- break;}
-case 150:
+ { (yyval.p) = op1(POSTDECR, (yyvsp[(1) - (2)].p)); }
+ break;
+
+ case 152:
#line 371 "awkgram.y"
-{ yyval.p = op1(POSTDECR, yyvsp[-1].p); ;
- break;}
-case 151:
+ { (yyval.p) = op1(POSTINCR, (yyvsp[(1) - (2)].p)); }
+ break;
+
+ case 153:
#line 372 "awkgram.y"
-{ yyval.p = op1(POSTINCR, yyvsp[-1].p); ;
- break;}
-case 152:
+ { (yyval.p) = op3(GETLINE, (yyvsp[(2) - (4)].p), itonp((yyvsp[(3) - (4)].i)), (yyvsp[(4) - (4)].p)); }
+ break;
+
+ case 154:
+#line 373 "awkgram.y"
+ { (yyval.p) = op3(GETLINE, NIL, itonp((yyvsp[(2) - (3)].i)), (yyvsp[(3) - (3)].p)); }
+ break;
+
+ case 155:
#line 374 "awkgram.y"
-{ yyval.p = op5(GENSUB, NIL, (Node*)makedfa(yyvsp[-5].s, 1), yyvsp[-3].p, yyvsp[-1].p, rectonode()); ;
- break;}
-case 153:
-#line 376 "awkgram.y"
-{ if (constnode(yyvsp[-5].p))
- yyval.p = op5(GENSUB, NIL, (Node *)makedfa(strnode(yyvsp[-5].p), 1), yyvsp[-3].p, yyvsp[-1].p, rectonode());
+ { (yyval.p) = op3(GETLINE, (yyvsp[(2) - (2)].p), NIL, NIL); }
+ break;
+
+ case 156:
+#line 375 "awkgram.y"
+ { (yyval.p) = op3(GETLINE, NIL, NIL, NIL); }
+ break;
+
+ case 157:
+#line 377 "awkgram.y"
+ { (yyval.p) = op2(INDEX, (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p)); }
+ break;
+
+ case 158:
+#line 379 "awkgram.y"
+ { SYNTAX("index() doesn't permit regular expressions");
+ (yyval.p) = op2(INDEX, (yyvsp[(3) - (6)].p), (Node*)(yyvsp[(5) - (6)].s)); }
+ break;
+
+ case 159:
+#line 381 "awkgram.y"
+ { (yyval.p) = (yyvsp[(2) - (3)].p); }
+ break;
+
+ case 160:
+#line 383 "awkgram.y"
+ { (yyval.p) = op3(MATCHFCN, NIL, (yyvsp[(3) - (6)].p), (Node*)makedfa((yyvsp[(5) - (6)].s), 1)); }
+ break;
+
+ case 161:
+#line 385 "awkgram.y"
+ { if (constnode((yyvsp[(5) - (6)].p)))
+ (yyval.p) = op3(MATCHFCN, NIL, (yyvsp[(3) - (6)].p), (Node*)makedfa(strnode((yyvsp[(5) - (6)].p)), 1));
else
- yyval.p = op5(GENSUB, (Node *)1, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p, rectonode());
- ;
- break;}
-case 154:
-#line 382 "awkgram.y"
-{ yyval.p = op5(GENSUB, NIL, (Node*)makedfa(yyvsp[-7].s, 1), yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); ;
- break;}
-case 155:
-#line 384 "awkgram.y"
-{ if (constnode(yyvsp[-7].p))
- yyval.p = op5(GENSUB, NIL, (Node *)makedfa(strnode(yyvsp[-7].p),1), yyvsp[-5].p,yyvsp[-3].p,yyvsp[-1].p);
- else
- yyval.p = op5(GENSUB, (Node *)1, yyvsp[-7].p, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p);
- ;
- break;}
-case 156:
+ (yyval.p) = op3(MATCHFCN, (Node *)1, (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p)); }
+ break;
+
+ case 162:
#line 389 "awkgram.y"
-{ yyval.p = op3(GETLINE, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); ;
- break;}
-case 157:
-#line 390 "awkgram.y"
-{ yyval.p = op3(GETLINE, NIL, itonp(yyvsp[-1].i), yyvsp[0].p); ;
- break;}
-case 158:
+ { (yyval.p) = celltonode((yyvsp[(1) - (1)].cp), CCON); }
+ break;
+
+ case 163:
#line 391 "awkgram.y"
-{ yyval.p = op3(GETLINE, yyvsp[0].p, NIL, NIL); ;
- break;}
-case 159:
-#line 392 "awkgram.y"
-{ yyval.p = op3(GETLINE, NIL, NIL, NIL); ;
- break;}
-case 160:
-#line 394 "awkgram.y"
-{ yyval.p = op2(INDEX, yyvsp[-3].p, yyvsp[-1].p); ;
- break;}
-case 161:
+ { (yyval.p) = op4(SPLIT, (yyvsp[(3) - (8)].p), makearr((yyvsp[(5) - (8)].p)), (yyvsp[(7) - (8)].p), (Node*)STRING); }
+ break;
+
+ case 164:
+#line 393 "awkgram.y"
+ { (yyval.p) = op4(SPLIT, (yyvsp[(3) - (8)].p), makearr((yyvsp[(5) - (8)].p)), (Node*)makedfa((yyvsp[(7) - (8)].s), 1), (Node *)REGEXPR); }
+ break;
+
+ case 165:
+#line 395 "awkgram.y"
+ { (yyval.p) = op4(SPLIT, (yyvsp[(3) - (6)].p), makearr((yyvsp[(5) - (6)].p)), NIL, (Node*)STRING); }
+ break;
+
+ case 166:
#line 396 "awkgram.y"
-{ SYNTAX("index() doesn't permit regular expressions");
- yyval.p = op2(INDEX, yyvsp[-3].p, (Node*)yyvsp[-1].s); ;
- break;}
-case 162:
-#line 398 "awkgram.y"
-{ yyval.p = yyvsp[-1].p; ;
- break;}
-case 163:
-#line 400 "awkgram.y"
-{ yyval.p = op3(MATCHFCN, NIL, yyvsp[-3].p, (Node*)makedfa(yyvsp[-1].s, 1)); ;
- break;}
-case 164:
-#line 402 "awkgram.y"
-{ if (constnode(yyvsp[-1].p))
- yyval.p = op3(MATCHFCN, NIL, yyvsp[-3].p, (Node*)makedfa(strnode(yyvsp[-1].p), 1));
+ { (yyval.p) = op1((yyvsp[(1) - (4)].i), (yyvsp[(3) - (4)].p)); }
+ break;
+
+ case 167:
+#line 397 "awkgram.y"
+ { (yyval.p) = celltonode((yyvsp[(1) - (1)].cp), CCON); }
+ break;
+
+ case 168:
+#line 399 "awkgram.y"
+ { (yyval.p) = op4((yyvsp[(1) - (6)].i), NIL, (Node*)makedfa((yyvsp[(3) - (6)].s), 1), (yyvsp[(5) - (6)].p), rectonode()); }
+ break;
+
+ case 169:
+#line 401 "awkgram.y"
+ { if (constnode((yyvsp[(3) - (6)].p)))
+ (yyval.p) = op4((yyvsp[(1) - (6)].i), NIL, (Node*)makedfa(strnode((yyvsp[(3) - (6)].p)), 1), (yyvsp[(5) - (6)].p), rectonode());
else
- yyval.p = op3(MATCHFCN, (Node *)1, yyvsp[-3].p, yyvsp[-1].p); ;
- break;}
-case 165:
+ (yyval.p) = op4((yyvsp[(1) - (6)].i), (Node *)1, (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p), rectonode()); }
+ break;
+
+ case 170:
#line 406 "awkgram.y"
-{ yyval.p = celltonode(yyvsp[0].cp, CCON); ;
- break;}
-case 166:
+ { (yyval.p) = op4((yyvsp[(1) - (8)].i), NIL, (Node*)makedfa((yyvsp[(3) - (8)].s), 1), (yyvsp[(5) - (8)].p), (yyvsp[(7) - (8)].p)); }
+ break;
+
+ case 171:
#line 408 "awkgram.y"
-{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), yyvsp[-1].p, (Node*)STRING); ;
- break;}
-case 167:
-#line 410 "awkgram.y"
-{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), (Node*)makedfa(yyvsp[-1].s, 1), (Node *)REGEXPR); ;
- break;}
-case 168:
-#line 412 "awkgram.y"
-{ yyval.p = op4(SPLIT, yyvsp[-3].p, makearr(yyvsp[-1].p), NIL, (Node*)STRING); ;
- break;}
-case 169:
+ { if (constnode((yyvsp[(3) - (8)].p)))
+ (yyval.p) = op4((yyvsp[(1) - (8)].i), NIL, (Node*)makedfa(strnode((yyvsp[(3) - (8)].p)), 1), (yyvsp[(5) - (8)].p), (yyvsp[(7) - (8)].p));
+ else
+ (yyval.p) = op4((yyvsp[(1) - (8)].i), (Node *)1, (yyvsp[(3) - (8)].p), (yyvsp[(5) - (8)].p), (yyvsp[(7) - (8)].p)); }
+ break;
+
+ case 172:
#line 413 "awkgram.y"
-{ yyval.p = op1(yyvsp[-3].i, yyvsp[-1].p); ;
- break;}
-case 170:
-#line 414 "awkgram.y"
-{ yyval.p = celltonode(yyvsp[0].cp, CCON); ;
- break;}
-case 171:
-#line 416 "awkgram.y"
-{ yyval.p = op4(yyvsp[-5].i, NIL, (Node*)makedfa(yyvsp[-3].s, 1), yyvsp[-1].p, rectonode()); ;
- break;}
-case 172:
-#line 418 "awkgram.y"
-{ if (constnode(yyvsp[-3].p))
- yyval.p = op4(yyvsp[-5].i, NIL, (Node*)makedfa(strnode(yyvsp[-3].p), 1), yyvsp[-1].p, rectonode());
- else
- yyval.p = op4(yyvsp[-5].i, (Node *)1, yyvsp[-3].p, yyvsp[-1].p, rectonode()); ;
- break;}
-case 173:
+ { (yyval.p) = op3(SUBSTR, (yyvsp[(3) - (8)].p), (yyvsp[(5) - (8)].p), (yyvsp[(7) - (8)].p)); }
+ break;
+
+ case 173:
+#line 415 "awkgram.y"
+ { (yyval.p) = op3(SUBSTR, (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p), NIL); }
+ break;
+
+ case 176:
+#line 421 "awkgram.y"
+ { (yyval.p) = op2(ARRAY, makearr((yyvsp[(1) - (4)].p)), (yyvsp[(3) - (4)].p)); }
+ break;
+
+ case 177:
+#line 422 "awkgram.y"
+ { (yyval.p) = op1(INDIRECT, celltonode((yyvsp[(1) - (1)].cp), CVAR)); }
+ break;
+
+ case 178:
#line 423 "awkgram.y"
-{ yyval.p = op4(yyvsp[-7].i, NIL, (Node*)makedfa(yyvsp[-5].s, 1), yyvsp[-3].p, yyvsp[-1].p); ;
- break;}
-case 174:
-#line 425 "awkgram.y"
-{ if (constnode(yyvsp[-5].p))
- yyval.p = op4(yyvsp[-7].i, NIL, (Node*)makedfa(strnode(yyvsp[-5].p), 1), yyvsp[-3].p, yyvsp[-1].p);
- else
- yyval.p = op4(yyvsp[-7].i, (Node *)1, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); ;
- break;}
-case 175:
-#line 430 "awkgram.y"
-{ yyval.p = op3(SUBSTR, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); ;
- break;}
-case 176:
-#line 432 "awkgram.y"
-{ yyval.p = op3(SUBSTR, yyvsp[-3].p, yyvsp[-1].p, NIL); ;
- break;}
-case 179:
-#line 438 "awkgram.y"
-{ yyval.p = op2(ARRAY, makearr(yyvsp[-3].p), yyvsp[-1].p); ;
- break;}
-case 180:
-#line 439 "awkgram.y"
-{ yyval.p = op1(INDIRECT, celltonode(yyvsp[0].cp, CVAR)); ;
- break;}
-case 181:
-#line 440 "awkgram.y"
-{ yyval.p = op1(INDIRECT, yyvsp[0].p); ;
- break;}
-case 182:
-#line 444 "awkgram.y"
-{ arglist = yyval.p = 0; ;
- break;}
-case 183:
-#line 445 "awkgram.y"
-{ arglist = yyval.p = celltonode(yyvsp[0].cp,CVAR); ;
- break;}
-case 184:
-#line 446 "awkgram.y"
-{
- checkdup(yyvsp[-2].p, yyvsp[0].cp);
- arglist = yyval.p = linkum(yyvsp[-2].p,celltonode(yyvsp[0].cp,CVAR)); ;
- break;}
-case 185:
-#line 452 "awkgram.y"
-{ yyval.p = celltonode(yyvsp[0].cp, CVAR); ;
- break;}
-case 186:
-#line 453 "awkgram.y"
-{ yyval.p = op1(ARG, itonp(yyvsp[0].i)); ;
- break;}
-case 187:
-#line 454 "awkgram.y"
-{ yyval.p = op1(VARNF, (Node *) yyvsp[0].cp); ;
- break;}
-case 188:
-#line 459 "awkgram.y"
-{ yyval.p = notnull(yyvsp[-1].p); ;
- break;}
-}
- /* the action file gets copied in in place of this dollarsign */
-#line 542 "bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
-#ifdef YYLSP_NEEDED
- yylsp -= yylen;
-#endif
+ { (yyval.p) = op1(INDIRECT, (yyvsp[(2) - (2)].p)); }
+ break;
-#if YYDEBUG != 0
- if (yydebug)
+ case 179:
+#line 427 "awkgram.y"
+ { arglist = (yyval.p) = 0; }
+ break;
+
+ case 180:
+#line 428 "awkgram.y"
+ { arglist = (yyval.p) = celltonode((yyvsp[(1) - (1)].cp),CVAR); }
+ break;
+
+ case 181:
+#line 429 "awkgram.y"
{
- short *ssp1 = yyss - 1;
- fprintf (stderr, "state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
+ checkdup((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].cp));
+ arglist = (yyval.p) = linkum((yyvsp[(1) - (3)].p),celltonode((yyvsp[(3) - (3)].cp),CVAR)); }
+ break;
+
+ case 182:
+#line 435 "awkgram.y"
+ { (yyval.p) = celltonode((yyvsp[(1) - (1)].cp), CVAR); }
+ break;
+
+ case 183:
+#line 436 "awkgram.y"
+ { (yyval.p) = op1(ARG, itonp((yyvsp[(1) - (1)].i))); }
+ break;
+
+ case 184:
+#line 437 "awkgram.y"
+ { (yyval.p) = op1(VARNF, (Node *) (yyvsp[(1) - (1)].cp)); }
+ break;
+
+ case 185:
+#line 442 "awkgram.y"
+ { (yyval.p) = notnull((yyvsp[(3) - (4)].p)); }
+ break;
+
+
+/* Line 1267 of yacc.c. */
+#line 3451 "y.tab.c"
+ default: break;
}
-#endif
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
*++yyvsp = yyval;
-#ifdef YYLSP_NEEDED
- yylsp++;
- if (yylen == 0)
- {
- yylsp->first_line = yylloc.first_line;
- yylsp->first_column = yylloc.first_column;
- yylsp->last_line = (yylsp-1)->last_line;
- yylsp->last_column = (yylsp-1)->last_column;
- yylsp->text = 0;
- }
- else
- {
- yylsp->last_line = (yylsp+yylen-1)->last_line;
- yylsp->last_column = (yylsp+yylen-1)->last_column;
- }
-#endif
- /* 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. */
+ /* 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 - YYNTBASE] + *yyssp;
- if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
- yystate = yydefgoto[yyn - YYNTBASE];
+ yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
-yyerrlab: /* here on detecting error */
- if (! yyerrstatus)
- /* If not already recovering from an error, report this error. */
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
{
++yynerrs;
+#if ! YYERROR_VERBOSE
+ yyerror (YY_("syntax error"));
+#else
+ {
+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+ {
+ YYSIZE_T yyalloc = 2 * yysize;
+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+ if (yymsg)
+ yymsg_alloc = yyalloc;
+ else
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ }
+ }
-#ifdef YYERROR_VERBOSE
- yyn = yypact[yystate];
+ if (0 < yysize && yysize <= yymsg_alloc)
+ {
+ (void) yysyntax_error (yymsg, yystate, yychar);
+ yyerror (yymsg);
+ }
+ else
+ {
+ yyerror (YY_("syntax error"));
+ if (yysize != 0)
+ goto yyexhaustedlab;
+ }
+ }
+#endif
+ }
- if (yyn > YYFLAG && yyn < YYLAST)
- {
- int size = 0;
- char *msg;
- int x, count;
- count = 0;
- /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
- for (x = (yyn < 0 ? -yyn : 0);
- x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- if (msg != 0)
- {
- strcpy(msg, "parse error");
- if (count < 5)
- {
- count = 0;
- for (x = (yyn < 0 ? -yyn : 0);
- x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- strcat(msg, yytname[x]);
- strcat(msg, "'");
- count++;
- }
- }
- yyerror(msg);
- free(msg);
- }
- else
- yyerror ("parse error; also virtual memory exceeded");
+ if (yyerrstatus == 3)
+ {
+ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
}
else
-#endif /* YYERROR_VERBOSE */
- yyerror("parse error");
+ {
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
+ yychar = YYEMPTY;
+ }
}
+ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
goto yyerrlab1;
-yyerrlab1: /* here on error raised explicitly by an action */
- 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)
- YYABORT;
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
-#endif
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
- yychar = YYEMPTY;
- }
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
- /* Else will try to reuse lookahead token
- after shifting the error token. */
- yyerrstatus = 3; /* Each real token shifted decrements this */
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
- goto yyerrhandle;
-
-yyerrdefault: /* current state does not do anything special for the error token. */
-
-#if 0
- /* This is wrong; only states that explicitly want error tokens
- should shift them. */
- yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
- if (yyn) goto yydefault;
-#endif
-
-yyerrpop: /* pop the current state because it cannot handle the error token */
-
- if (yyssp == yyss) YYABORT;
- yyvsp--;
- yystate = *--yyssp;
-#ifdef YYLSP_NEEDED
- yylsp--;
-#endif
-
-#if YYDEBUG != 0
- if (yydebug)
+ for (;;)
{
- short *ssp1 = yyss - 1;
- fprintf (stderr, "Error: state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
-#endif
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF)
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
-yyerrhandle:
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
- yyn = yypact[yystate];
- if (yyn == YYFLAG)
- goto yyerrdefault;
- yyn += YYTERROR;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
- goto yyerrdefault;
-
- yyn = yytable[yyn];
- if (yyn < 0)
- {
- if (yyn == YYFLAG)
- goto yyerrpop;
- yyn = -yyn;
- goto yyreduce;
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp);
+ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
}
- else if (yyn == 0)
- goto yyerrpop;
if (yyn == YYFINAL)
YYACCEPT;
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting error token, ");
-#endif
-
*++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
-#endif
+
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
yystate = yyn;
goto yynewstate;
- yyacceptlab:
- /* YYACCEPT comes here. */
- if (yyfree_stacks)
- {
- free (yyss);
- free (yyvs);
-#ifdef YYLSP_NEEDED
- free (yyls);
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+#ifndef yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
#endif
- }
- return 0;
- yyabortlab:
- /* YYABORT comes here. */
- if (yyfree_stacks)
+yyreturn:
+ if (yychar != YYEOF && yychar != YYEMPTY)
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
{
- free (yyss);
- free (yyvs);
-#ifdef YYLSP_NEEDED
- free (yyls);
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp);
+ YYPOPSTACK (1);
+ }
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
#endif
- }
- return 1;
+#if YYERROR_VERBOSE
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+#endif
+ /* Make sure YYID is used. */
+ return YYID (yyresult);
}
-#line 462 "awkgram.y"
+#line 445 "awkgram.y"
+
+
void setfname(Cell *p)
{
if (isarr(p))
@@ -2922,3 +3704,4 @@
}
}
}
+
Added: trunk/build/install/nawk/ytab.h
===================================================================
--- trunk/build/install/nawk/ytab.h (rev 0)
+++ trunk/build/install/nawk/ytab.h 2008-05-02 05:00:38 UTC (rev 1572)
@@ -0,0 +1,253 @@
+/* A Bison parser, made by GNU Bison 2.3. */
+
+/* Skeleton interface for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
+
+ 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., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 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 {
+ FIRSTTOKEN = 258,
+ PROGRAM = 259,
+ PASTAT = 260,
+ PASTAT2 = 261,
+ XBEGIN = 262,
+ XEND = 263,
+ NL = 264,
+ ARRAY = 265,
+ MATCH = 266,
+ NOTMATCH = 267,
+ MATCHOP = 268,
+ FINAL = 269,
+ DOT = 270,
+ ALL = 271,
+ CCL = 272,
+ NCCL = 273,
+ CHAR = 274,
+ OR = 275,
+ STAR = 276,
+ QUEST = 277,
+ PLUS = 278,
+ EMPTYRE = 279,
+ AND = 280,
+ BOR = 281,
+ APPEND = 282,
+ EQ = 283,
+ GE = 284,
+ GT = 285,
+ LE = 286,
+ LT = 287,
+ NE = 288,
+ IN = 289,
+ ARG = 290,
+ BLTIN = 291,
+ BREAK = 292,
+ CLOSE = 293,
+ CONTINUE = 294,
+ DELETE = 295,
+ DO = 296,
+ EXIT = 297,
+ FOR = 298,
+ FUNC = 299,
+ SUB = 300,
+ GSUB = 301,
+ IF = 302,
+ INDEX = 303,
+ LSUBSTR = 304,
+ MATCHFCN = 305,
+ NEXT = 306,
+ NEXTFILE = 307,
+ ADD = 308,
+ MINUS = 309,
+ MULT = 310,
+ DIVIDE = 311,
+ MOD = 312,
+ ASSIGN = 313,
+ ASGNOP = 314,
+ ADDEQ = 315,
+ SUBEQ = 316,
+ MULTEQ = 317,
+ DIVEQ = 318,
+ MODEQ = 319,
+ POWEQ = 320,
+ PRINT = 321,
+ PRINTF = 322,
+ SPRINTF = 323,
+ ELSE = 324,
+ INTEST = 325,
+ CONDEXPR = 326,
+ POSTINCR = 327,
+ PREINCR = 328,
+ POSTDECR = 329,
+ PREDECR = 330,
+ VAR = 331,
+ IVAR = 332,
+ VARNF = 333,
+ CALL = 334,
+ NUMBER = 335,
+ STRING = 336,
+ REGEXPR = 337,
+ GETLINE = 338,
+ SUBSTR = 339,
+ SPLIT = 340,
+ RETURN = 341,
+ WHILE = 342,
+ CAT = 343,
+ UMINUS = 344,
+ NOT = 345,
+ POWER = 346,
+ INCR = 347,
+ DECR = 348,
+ INDIRECT = 349,
+ LASTTOKEN = 350
+ };
+#endif
+/* Tokens. */
+#define FIRSTTOKEN 258
+#define PROGRAM 259
+#define PASTAT 260
+#define PASTAT2 261
+#define XBEGIN 262
+#define XEND 263
+#define NL 264
+#define ARRAY 265
+#define MATCH 266
+#define NOTMATCH 267
+#define MATCHOP 268
+#define FINAL 269
+#define DOT 270
+#define ALL 271
+#define CCL 272
+#define NCCL 273
+#define CHAR 274
+#define OR 275
+#define STAR 276
+#define QUEST 277
+#define PLUS 278
+#define EMPTYRE 279
+#define AND 280
+#define BOR 281
+#define APPEND 282
+#define EQ 283
+#define GE 284
+#define GT 285
+#define LE 286
+#define LT 287
+#define NE 288
+#define IN 289
+#define ARG 290
+#define BLTIN 291
+#define BREAK 292
+#define CLOSE 293
+#define CONTINUE 294
+#define DELETE 295
+#define DO 296
+#define EXIT 297
+#define FOR 298
+#define FUNC 299
+#define SUB 300
+#define GSUB 301
+#define IF 302
+#define INDEX 303
+#define LSUBSTR 304
+#define MATCHFCN 305
+#define NEXT 306
+#define NEXTFILE 307
+#define ADD 308
+#define MINUS 309
+#define MULT 310
+#define DIVIDE 311
+#define MOD 312
+#define ASSIGN 313
+#define ASGNOP 314
+#define ADDEQ 315
+#define SUBEQ 316
+#define MULTEQ 317
+#define DIVEQ 318
+#define MODEQ 319
+#define POWEQ 320
+#define PRINT 321
+#define PRINTF 322
+#define SPRINTF 323
+#define ELSE 324
+#define INTEST 325
+#define CONDEXPR 326
+#define POSTINCR 327
+#define PREINCR 328
+#define POSTDECR 329
+#define PREDECR 330
+#define VAR 331
+#define IVAR 332
+#define VARNF 333
+#define CALL 334
+#define NUMBER 335
+#define STRING 336
+#define REGEXPR 337
+#define GETLINE 338
+#define SUBSTR 339
+#define SPLIT 340
+#define RETURN 341
+#define WHILE 342
+#define CAT 343
+#define UMINUS 344
+#define NOT 345
+#define POWER 346
+#define INCR 347
+#define DECR 348
+#define INDIRECT 349
+#define LASTTOKEN 350
+
+
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 41 "awkgram.y"
+{
+ Node *p;
+ Cell *cp;
+ int i;
+ char *s;
+}
+/* Line 1489 of yacc.c. */
+#line 246 "y.tab.h"
+ YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+extern YYSTYPE yylval;
+
Property changes on: trunk/build/install/nawk/ytab.h
___________________________________________________________________
Name: svn:eol-style
+ native
[View Less]
16 years, 8 months