From 1ac6313d90a797f38280d75b2a63655579080ac6 Mon Sep 17 00:00:00 2001 From: drl7x Date: Wed, 21 Jun 2000 18:54:59 +0000 Subject: [PATCH] Commiting Merge of changes made in semester and ver 2.5M --- src/Headers/cgrammar_tokens.h | 15 +- src/Headers/flag_codes.gen | 2 + src/Headers/flags.h | 19 +- src/Headers/herald.h | 2 +- src/Headers/herald.last | 2 +- src/Headers/llgrammar_gen.h | 111 +- src/Headers/llgrammar_gen2.h | 111 +- src/Headers/local_constants.h | 4 +- src/Headers/local_constants.last | 8 +- src/Headers/qual.h | 20 +- src/Headers/qualList.h | 9 + src/Headers/sRef.h | 43 + src/Headers/uentry.h | 46 + src/aliasChecks.c | 174 + src/cgrammar.c.der | 5721 +++++++++++++++--------------- src/cgrammar.tab.c | 5012 +++++++++++++------------- src/cgrammar.tab.h | 15 +- src/cgrammar.y | 25 +- src/cscanner.c.der | 1378 ++++--- src/cscanner.l | 2 + src/exprNode.c | 179 +- src/flags.def | 16 + src/lclscanline.c | 1 + src/lex.yy.c | 817 ++--- src/llgrammar.c | 3119 ++++++++-------- src/llgrammar.c.der | 834 +++-- src/llgrammar.tab.c | 3139 ++++++++-------- src/llgrammar.tab.h | 69 +- src/llgrammar.y | 2 + src/qual.c | 1 + src/qualList.c | 14 + src/sRef.c | 119 + src/signature.c.der | 260 +- src/uentry.c | 174 + test/Makefile | 8 +- test/abst_t.lcs | 12 +- test/abstptr.lcs | 12 +- test/alias.lcs | 12 +- test/alias2.lcs | 12 +- test/alias3.lcs | 20 +- test/alias4.lcs | 12 +- test/alias5.lcs | 12 +- test/argorder2.lcs | 12 +- test/argorder4.lcs | 12 +- test/args.lcs | 12 +- test/cast.lcs | 12 +- test/db1/bool.lcs | 12 +- test/db1/dbase.lcs | 24 +- test/db1/employee.lcs | 16 +- test/db1/empset.lcs | 20 +- test/db1/erc.lcs | 20 +- test/db1/eref.lcs | 20 +- test/db1/ereftab.lcs | 20 +- test/db2/dbase.lcs | 20 +- test/db2/employee.lcs | 18 +- test/db2/empset.lcs | 18 +- test/db2/erc.lcs | 18 +- test/db2/eref.lcs | 18 +- test/db2/ereftab.lcs | 18 +- test/db3/bool.lcs | 20 +- test/db3/check.lcs | 22 +- test/db3/dbase.lcs | 20 +- test/db3/employee.lcs | 18 +- test/db3/empset.lcs | 18 +- test/db3/erc.lcs | 18 +- test/db3/eref.lcs | 18 +- test/db3/ereftab.lcs | 18 +- test/decl2.lcs | 12 +- test/enum.lcs | 16 +- test/glob.lcs | 12 +- test/help.out | 4 + test/impabstract.lcs | 12 +- test/iter.lcs | 12 +- test/macros.lcs | 12 +- test/macrosef.lcs | 12 +- test/modtest.lcs | 16 +- test/mut.lcs | 12 +- test/null6.lcd | 6 +- test/null6.lcs | 12 +- test/observer.lcs | 12 +- test/oldstyle.lcs | 12 +- test/outglob.lcs | 12 +- test/outparam.lcs | 18 +- test/repexpose.lcs | 12 +- test/special.lcs | 12 +- test/tests2.2/bool.lcs | 12 +- test/tests2.4/subdir/main.lcs | 12 +- test/tq.lcs | 12 +- test/ud2.lcs | 12 +- 89 files changed, 11408 insertions(+), 10861 deletions(-) diff --git a/src/Headers/cgrammar_tokens.h b/src/Headers/cgrammar_tokens.h index a8fec69..fcaf9ec 100644 --- a/src/Headers/cgrammar_tokens.h +++ b/src/Headers/cgrammar_tokens.h @@ -239,13 +239,14 @@ typedef union #define QINTEGRALTYPE 427 #define QUNSIGNEDINTEGRALTYPE 428 #define QSIGNEDINTEGRALTYPE 429 -#define IDENTIFIER 430 -#define NEW_IDENTIFIER 431 -#define TYPE_NAME_OR_ID 432 -#define CCONSTANT 433 -#define ITER_NAME 434 -#define ITER_ENDNAME 435 -#define TYPE_NAME 436 +#define QNULLTERMINATED 430 +#define IDENTIFIER 431 +#define NEW_IDENTIFIER 432 +#define TYPE_NAME_OR_ID 433 +#define CCONSTANT 434 +#define ITER_NAME 435 +#define ITER_ENDNAME 436 +#define TYPE_NAME 437 extern YYSTYPE yylval; diff --git a/src/Headers/flag_codes.gen b/src/Headers/flag_codes.gen index 3f6dda7..12e22c0 100644 --- a/src/Headers/flag_codes.gen +++ b/src/Headers/flag_codes.gen @@ -315,6 +315,8 @@ FLG_NAME, FLG_SPECIAL, FLG_NULL, + FLG_NULLTERMINATED, + FLG_NULLTERMINATEDWARNING, FLG_NULLDEREF, FLG_FCNDEREF, FLG_NULLPASS, diff --git a/src/Headers/flags.h b/src/Headers/flags.h index 3d8df02..d70e18c 100644 --- a/src/Headers/flags.h +++ b/src/Headers/flags.h @@ -1,7 +1,20 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. -** See ../LICENSE for license information. +** Copyright (c) Massachusetts Institute of Technology 1994-1998. +** All Rights Reserved. +** Unpublished rights reserved under the copyright laws of +** the United States. ** +** THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED +** OR IMPLIED. ANY USE IS AT YOUR OWN RISK. +** +** This code is distributed freely and may be used freely under the +** following conditions: +** +** 1. This notice may not be removed or altered. +** +** 2. Works derived from this code are not distributed for +** commercial gain without explicit permission from MIT +** (for permission contact lclint-request@sds.lcs.mit.edu). */ # ifndef FLAGS_H # define FLAGS_H @@ -15,7 +28,7 @@ typedef enum FK_EXPOSURE, FK_FORMAT, FK_GLOBAL, FK_GLOBALS, FK_HEADERS, FK_HELP, FK_IGNORERET, FK_INIT, FK_ITER, FK_LIBS, FK_LIMITS, FK_MACROS, FK_MEMORY, FK_MODIFIES, FK_NAMES, FK_NONE, - FK_NULL, FK_OPS, FK_PRED, FK_PREPROC, FK_SECRET, + FK_NULL, FK_NT, FK_OPS, FK_PRED, FK_PREPROC, FK_SECRET, FK_SUPPRESS, FK_SYNTAX, FK_TYPE, FK_TYPEEQ, FK_NUMBERS, FK_POINTER, FK_UNRECOG, FK_USE, FK_BOOL, FK_ALIAS, FK_PROTOS, FK_SPEC, diff --git a/src/Headers/herald.h b/src/Headers/herald.h index c63bb59..483b606 100644 --- a/src/Headers/herald.h +++ b/src/Headers/herald.h @@ -4,4 +4,4 @@ /*@constant observer char *LCL_PARSE_VERSION;@*/ # define LCL_PARSE_VERSION "LCLint 2.5m" /*@constant observer char *LCL_COMPILE;@*/ -# define LCL_COMPILE "Compiled using gcc -DSTDC_HEADERS=1 on FreeBSD shankly.cs.virginia.edu 3.2-RELEASE FreeBSD 3.2-RELEASE #0: Tue May 18 04:05:08 GMT 1999 jkh@cathair:/usr/src/sys/compile/GENERIC i386 by evans" +# define LCL_COMPILE "Compiled using gcc -DSTDC_HEADERS=1 on SunOS cobra.cs.Virginia.EDU 5.6 Generic_105181-13 sun4u sparc SUNW,Ultra-60 by drl7x" diff --git a/src/Headers/herald.last b/src/Headers/herald.last index d20494e..483b606 100644 --- a/src/Headers/herald.last +++ b/src/Headers/herald.last @@ -4,4 +4,4 @@ /*@constant observer char *LCL_PARSE_VERSION;@*/ # define LCL_PARSE_VERSION "LCLint 2.5m" /*@constant observer char *LCL_COMPILE;@*/ -# define LCL_COMPILE "Compiled using gcc on FreeBSD shankly.cs.virginia.edu 3.2-RELEASE FreeBSD 3.2-RELEASE #0: Tue May 18 04:05:08 GMT 1999 jkh@cathair:/usr/src/sys/compile/GENERIC i386 by evans" +# define LCL_COMPILE "Compiled using gcc -DSTDC_HEADERS=1 on SunOS cobra.cs.Virginia.EDU 5.6 Generic_105181-13 sun4u sparc SUNW,Ultra-60 by drl7x" diff --git a/src/Headers/llgrammar_gen.h b/src/Headers/llgrammar_gen.h index 842c367..1aff3d3 100644 --- a/src/Headers/llgrammar_gen.h +++ b/src/Headers/llgrammar_gen.h @@ -208,82 +208,41 @@ typedef union #define LLT_RELNULL 354 #define LLT_RELDEF 355 #define LLT_KILLREF 356 -#define LLT_TEMPREF 357 -#define LLT_NEWREF 358 -#define LLT_PRIVATE 359 -#define LLT_REQUIRES 360 -#define LLT_RESULT 361 -#define LLT_SIZEOF 362 -#define LLT_SPEC 363 -#define LLT_TAGGEDUNION 364 -#define LLT_THEN 365 -#define LLT_TYPE 366 -#define LLT_TYPEDEF 367 -#define LLT_UNCHANGED 368 -#define LLT_USES 369 -#define LLT_CHAR 370 -#define LLT_CONST 371 -#define LLT_DOUBLE 372 -#define LLT_ENUM 373 -#define LLT_FLOAT 374 -#define LLT_INT 375 -#define LLT_ITER 376 -#define LLT_YIELD 377 -#define LLT_LONG 378 -#define LLT_SHORT 379 -#define LLT_SIGNED 380 -#define LLT_UNKNOWN 381 -#define LLT_STRUCT 382 -#define LLT_TELIPSIS 383 -#define LLT_UNION 384 -#define LLT_UNSIGNED 385 -#define LLT_VOID 386 -#define LLT_VOLATILE 387 -#define LLT_PRINTFLIKE 388 -#define LLT_SCANFLIKE 389 -#define LLT_MESSAGELIKE 390 +#define LLT_NULLTERMINATED 357 +#define LLT_TEMPREF 358 +#define LLT_NEWREF 359 +#define LLT_PRIVATE 360 +#define LLT_REQUIRES 361 +#define LLT_RESULT 362 +#define LLT_SIZEOF 363 +#define LLT_SPEC 364 +#define LLT_TAGGEDUNION 365 +#define LLT_THEN 366 +#define LLT_TYPE 367 +#define LLT_TYPEDEF 368 +#define LLT_UNCHANGED 369 +#define LLT_USES 370 +#define LLT_CHAR 371 +#define LLT_CONST 372 +#define LLT_DOUBLE 373 +#define LLT_ENUM 374 +#define LLT_FLOAT 375 +#define LLT_INT 376 +#define LLT_ITER 377 +#define LLT_YIELD 378 +#define LLT_LONG 379 +#define LLT_SHORT 380 +#define LLT_SIGNED 381 +#define LLT_UNKNOWN 382 +#define LLT_STRUCT 383 +#define LLT_TELIPSIS 384 +#define LLT_UNION 385 +#define LLT_UNSIGNED 386 +#define LLT_VOID 387 +#define LLT_VOLATILE 388 +#define LLT_PRINTFLIKE 389 +#define LLT_SCANFLIKE 390 +#define LLT_MESSAGELIKE 391 extern YYSTYPE yllval; -/* -** Resets all flags in bison.head -*/ - - -/*@=allmacros@*/ -/*@=boolint@*/ -/*@=charint@*/ -/*@=macroparams@*/ -/*@=macroundef@*/ -/*@=unreachable@*/ -/*@=macrospec@*/ -/*@=varuse@*/ -/*@=ignorequals@*/ -/*@=macrostmt@*/ -/*@=noeffect@*/ -/*@=shadow@*/ -/*@=exitarg@*/ -/*@=macroredef@*/ -/*@=uniondef@*/ -/*@=compdef@*/ -/*@=matchfields@*/ -/*@=exportlocal@*/ -/*@=evalorderuncon@*/ -/*@=exportheader@*/ -/*@=typeuse@*/ -/*@=redecl@*/ -/*@=redef@*/ -/*@=noparams@*/ -/*@=ansireserved@*/ -/*@=fielduse@*/ -/*@=ifblock@*/ -/*@=elseifcomplete@*/ -/*@=whileblock@*/ -/*@=forblock@*/ -/*@=branchstate@*/ -/*@=readonlytrans@*/ -/*@=namechecks@*/ -/*@=usedef@*/ -/*@=systemunrecog@*/ -/*@=dependenttrans@*/ -/*@=unqualifiedtrans@*/ diff --git a/src/Headers/llgrammar_gen2.h b/src/Headers/llgrammar_gen2.h index 842c367..1aff3d3 100644 --- a/src/Headers/llgrammar_gen2.h +++ b/src/Headers/llgrammar_gen2.h @@ -208,82 +208,41 @@ typedef union #define LLT_RELNULL 354 #define LLT_RELDEF 355 #define LLT_KILLREF 356 -#define LLT_TEMPREF 357 -#define LLT_NEWREF 358 -#define LLT_PRIVATE 359 -#define LLT_REQUIRES 360 -#define LLT_RESULT 361 -#define LLT_SIZEOF 362 -#define LLT_SPEC 363 -#define LLT_TAGGEDUNION 364 -#define LLT_THEN 365 -#define LLT_TYPE 366 -#define LLT_TYPEDEF 367 -#define LLT_UNCHANGED 368 -#define LLT_USES 369 -#define LLT_CHAR 370 -#define LLT_CONST 371 -#define LLT_DOUBLE 372 -#define LLT_ENUM 373 -#define LLT_FLOAT 374 -#define LLT_INT 375 -#define LLT_ITER 376 -#define LLT_YIELD 377 -#define LLT_LONG 378 -#define LLT_SHORT 379 -#define LLT_SIGNED 380 -#define LLT_UNKNOWN 381 -#define LLT_STRUCT 382 -#define LLT_TELIPSIS 383 -#define LLT_UNION 384 -#define LLT_UNSIGNED 385 -#define LLT_VOID 386 -#define LLT_VOLATILE 387 -#define LLT_PRINTFLIKE 388 -#define LLT_SCANFLIKE 389 -#define LLT_MESSAGELIKE 390 +#define LLT_NULLTERMINATED 357 +#define LLT_TEMPREF 358 +#define LLT_NEWREF 359 +#define LLT_PRIVATE 360 +#define LLT_REQUIRES 361 +#define LLT_RESULT 362 +#define LLT_SIZEOF 363 +#define LLT_SPEC 364 +#define LLT_TAGGEDUNION 365 +#define LLT_THEN 366 +#define LLT_TYPE 367 +#define LLT_TYPEDEF 368 +#define LLT_UNCHANGED 369 +#define LLT_USES 370 +#define LLT_CHAR 371 +#define LLT_CONST 372 +#define LLT_DOUBLE 373 +#define LLT_ENUM 374 +#define LLT_FLOAT 375 +#define LLT_INT 376 +#define LLT_ITER 377 +#define LLT_YIELD 378 +#define LLT_LONG 379 +#define LLT_SHORT 380 +#define LLT_SIGNED 381 +#define LLT_UNKNOWN 382 +#define LLT_STRUCT 383 +#define LLT_TELIPSIS 384 +#define LLT_UNION 385 +#define LLT_UNSIGNED 386 +#define LLT_VOID 387 +#define LLT_VOLATILE 388 +#define LLT_PRINTFLIKE 389 +#define LLT_SCANFLIKE 390 +#define LLT_MESSAGELIKE 391 extern YYSTYPE yllval; -/* -** Resets all flags in bison.head -*/ - - -/*@=allmacros@*/ -/*@=boolint@*/ -/*@=charint@*/ -/*@=macroparams@*/ -/*@=macroundef@*/ -/*@=unreachable@*/ -/*@=macrospec@*/ -/*@=varuse@*/ -/*@=ignorequals@*/ -/*@=macrostmt@*/ -/*@=noeffect@*/ -/*@=shadow@*/ -/*@=exitarg@*/ -/*@=macroredef@*/ -/*@=uniondef@*/ -/*@=compdef@*/ -/*@=matchfields@*/ -/*@=exportlocal@*/ -/*@=evalorderuncon@*/ -/*@=exportheader@*/ -/*@=typeuse@*/ -/*@=redecl@*/ -/*@=redef@*/ -/*@=noparams@*/ -/*@=ansireserved@*/ -/*@=fielduse@*/ -/*@=ifblock@*/ -/*@=elseifcomplete@*/ -/*@=whileblock@*/ -/*@=forblock@*/ -/*@=branchstate@*/ -/*@=readonlytrans@*/ -/*@=namechecks@*/ -/*@=usedef@*/ -/*@=systemunrecog@*/ -/*@=dependenttrans@*/ -/*@=unqualifiedtrans@*/ diff --git a/src/Headers/local_constants.h b/src/Headers/local_constants.h index 865afaa..7583468 100644 --- a/src/Headers/local_constants.h +++ b/src/Headers/local_constants.h @@ -2,6 +2,6 @@ /*@constant observer char *SYSTEM_LIBDIR;@*/ # define SYSTEM_LIBDIR "/usr/include" /*@constant observer char *DEFAULT_LARCHPATH;@*/ -# define DEFAULT_LARCHPATH ".:/a/apollo.cs.Virginia.EDU/af10/evans/lclint-build/lclint-2.5m/lib" +# define DEFAULT_LARCHPATH ".:/a/apollo/af9/drl7x/bin/lclint-2.5m/lib" /*@constant observer char *DEFAULT_LCLIMPORTDIR;@*/ -# define DEFAULT_LCLIMPORTDIR "/a/apollo.cs.Virginia.EDU/af10/evans/lclint-build/lclint-2.5m/imports" +# define DEFAULT_LCLIMPORTDIR "/a/apollo/af9/drl7x/bin/lclint-2.5m/imports" diff --git a/src/Headers/local_constants.last b/src/Headers/local_constants.last index 75e573b..7583468 100644 --- a/src/Headers/local_constants.last +++ b/src/Headers/local_constants.last @@ -1,9 +1,7 @@ /* local_constants.h - created automatically by gmake localconstants */ -/*@constant observer char *DEFAULT_CPPCMD;@*/ -# define DEFAULT_CPPCMD /*@constant observer char *SYSTEM_LIBDIR;@*/ -# define SYSTEM_LIBDIR +# define SYSTEM_LIBDIR "/usr/include" /*@constant observer char *DEFAULT_LARCHPATH;@*/ -# define DEFAULT_LARCHPATH +# define DEFAULT_LARCHPATH ".:/a/apollo/af9/drl7x/bin/lclint-2.5m/lib" /*@constant observer char *DEFAULT_LCLIMPORTDIR;@*/ -# define DEFAULT_LCLIMPORTDIR +# define DEFAULT_LCLIMPORTDIR "/a/apollo/af9/drl7x/bin/lclint-2.5m/imports" diff --git a/src/Headers/qual.h b/src/Headers/qual.h index 25f7f92..a620e0c 100644 --- a/src/Headers/qual.h +++ b/src/Headers/qual.h @@ -25,7 +25,7 @@ typedef enum _quals { QU_OUT, QU_IN, QU_ONLY, QU_IMPONLY, QU_TEMP, QU_SHARED, QU_KEEP, QU_KEPT, QU_PARTIAL, QU_SPECIAL, - QU_NULL, QU_RELNULL, + QU_NULL, QU_RELNULL, QU_NULLTERMINATED, QU_EXPOSED, QU_RETURNED, QU_OBSERVER, QU_UNIQUE, QU_OWNED, QU_DEPENDENT, QU_RELDEF, QU_YIELD, @@ -50,7 +50,7 @@ typedef enum _quals { ** QSHORT QLONG QSIGNED QUNSIGNED ** augmented LCL qualifiers: ** QOUT QONLY QTEMP QSHARED QUNIQUE QYIELD -** QEXITS QMAYEXIT +** QEXITS QMAYEXIT QNULLTERMINATED */ extern qual qual_fromInt (int p_q) /*@*/ ; @@ -128,6 +128,10 @@ extern bool qual_isGlobalQual (/*@sef@*/ qual) /*@*/ ; extern bool qual_isImplied (/*@sef@*/ qual) /*@*/ ; extern bool qual_isExQual (/*@sef@*/ qual) /*@*/ ; extern bool qual_isAliasQual (/*@sef@*/ qual) /*@*/ ; +/* start modifications */ +extern bool qual_isNullTerminated (qual) /*@*/ ; +extern bool qual_isBufQualifier (qual) /*@*/ ; +/* end modifications */ # define qual_isUnknown(q) ((q) == QU_UNKNOWN) # define qual_isTrueNull(q) ((q) == QU_TRUENULL) @@ -187,6 +191,7 @@ extern bool qual_isAliasQual (/*@sef@*/ qual) /*@*/ ; # define qual_isUnchecked(q) ((q) == QU_UNCHECKED) # define qual_isUndef(q) ((q) == QU_UNDEF) # define qual_isKilled(q) ((q) == QU_KILLED) +# define qual_isNullTerminated(q) ((q) == QU_NULLTERMINATED) extern qual qual_createTrueNull (void) /*@*/ ; extern qual qual_createFalseNull (void) /*@*/ ; @@ -245,6 +250,7 @@ extern qual qual_createUnchecked (void) /*@*/ ; extern qual qual_createCheckedStrict (void) /*@*/ ; extern qual qual_createUndef (void) /*@*/ ; extern qual qual_createKilled (void) /*@*/ ; +extern qual qual_createNullTerminated (void) /*@*/ ; # ifndef NOLCL extern qual qual_createUnknown (void) /*@*/ ; @@ -316,6 +322,7 @@ extern qual qual_createMessageLike (void) /*@*/ ; # define qual_createUnchecked() (QU_UNCHECKED) # define qual_createUndef() (QU_UNDEF) # define qual_createKilled() (QU_KILLED) +# define qual_createNullTerminated() (QU_NULLTERMINATED) extern bool qual_isGlobCheck (/*@sef@*/ qual p_q) /*@*/ ; # define qual_isGlobCheck(q) \ @@ -343,6 +350,15 @@ extern bool qual_isGlobCheck (/*@sef@*/ qual p_q) /*@*/ ; (qual_isOut (q) || qual_isIn (q) || qual_isSpecial (q) \ || qual_isPartial (q) || qual_isRelDef (q)) +/* start modifications */ +/* This is used to check if we the qualifier matches any of the +len/size/nullterminated types */ + +# define qual_isBufQualifier(q) \ + (qual_isNullTerminated(q)) + +/* end of modification/s */ + # define qual_isGlobalQual(q) \ (qual_isUndef(q) || qual_isKilled (q)) diff --git a/src/Headers/qualList.h b/src/Headers/qualList.h index 51f7f36..a34f511 100644 --- a/src/Headers/qualList.h +++ b/src/Headers/qualList.h @@ -57,6 +57,15 @@ extern void qualList_clear (qualList p_q); extern bool qualList_hasAliasQualifier (qualList p_s); extern bool qualList_hasExposureQualifier (qualList p_s); +/* start modifications */ +extern bool qualList_hasNullTerminatedQualifier(qualList p_s); +extern bool qualList_hasBufQualifiers(qualList p_s); + +# define qualList_hasBufQualifiers(p_s) \ + (qualList_hasNullTerminatedQualifier(p_s)) + +/* end modification/s */ + # else # error "Multiple include" # endif diff --git a/src/Headers/sRef.h b/src/Headers/sRef.h index cfc2d71..978156b 100644 --- a/src/Headers/sRef.h +++ b/src/Headers/sRef.h @@ -104,6 +104,10 @@ struct _sRef sstate defstate; nstate nullstate; + /* start modifications: We keep a track of the buf state(nullterm info)*/ + struct _bbufinfo bufinfo; + /* end modifications */ + alkind aliaskind; alkind oaliaskind; @@ -580,6 +584,45 @@ extern void sRef_free (/*@only@*/ sRef p_s); extern void sRef_setObserver (sRef p_s, fileloc p_loc) /*@modifies p_s@*/ ; +/* start modifications */ +/* functions for making modification to null-term info */ +extern void sRef_setNullTerminatedStateInnerComplete(sRef s, struct _bbufinfo b, fileloc loc); +extern struct _bbufinfo sRef_getNullTerminatedState(sRef s); +extern void sRef_setNullTerminatedState (sRef p_s); +extern void sRef_setPossiblyNullTerminatedState (sRef p_s); +extern void sRef_setNotNullTerminatedState (sRef p_s); +extern void sRef_setSize(sRef p_s, int size); +extern void sRef_setLen(sRef p_s, int len); + +extern int sRef_getSize(sRef p_s); +#define sRef_getSize(p_s) \ + (p_s->bufinfo.size) + +extern int sRef_getLen(sRef p_s); +#define sRef_getLen(p_s) \ + (p_s->bufinfo.len) + +extern void sRef_hasBufStateInfo(sRef p_s); +# define sRef_hasBufStateInfo(p_s) \ + (sRef_isValid(p_s)) + +extern bool sRef_isNullTerminated(sRef p_s); +# define sRef_isNullTerminated(p_s) \ + ( sRef_hasBufStateInfo(p_s) ? (p_s->bufinfo.bufstate \ + == BB_NULLTERMINATED) : FALSE) + +extern bool sRef_isPossiblyNullTerminated(sRef p_s); +# define sRef_isPossiblyNullTerminated(p_s) \ + ( sRef_hasBufStateInfo(p_s) ? (p_s->bufinfo.bufstate \ + == BB_POSSIBLYNULLTERMINATED) : FALSE) + +extern bool sRef_isNotNullTerminated(sRef p_s); +# define sRef_isNotNullTerminated(p_s) \ + ( sRef_hasBufStateInfo(p_s) ? (p_s->bufinfo.bufstate \ + == BB_NOTNULLTERMINATED) : FALSE) + +/* end modifications */ + # else # error "Multiple include" # endif diff --git a/src/Headers/uentry.h b/src/Headers/uentry.h index 22a8f3d..07367ea 100644 --- a/src/Headers/uentry.h +++ b/src/Headers/uentry.h @@ -46,13 +46,29 @@ typedef enum CH_CHECKEDSTRICT } chkind; +/* start modifications */ +typedef enum _bbufstate { + BB_POSSIBLYNULLTERMINATED, /* buffer is possibly nullterm(can't decide statically) */ + BB_NULLTERMINATED, /*buffer is known to be nullterminated */ + BB_NOTNULLTERMINATED /* buffer is known to be not nullterm */ +} bbufstate; + +typedef struct _bbufinfo { + bbufstate bufstate; /* state of the buffer */ + int size; /* size of the buffer allocated */ + int len; /* len of the buffer VALID ONLY IF state is NULLTERM */ +} *bbufinfo ; + typedef struct _uvinfo { vkind kind; /* kind (parameter, specified) */ chkind checked; /* how is it checked */ sstate defstate; nstate nullstate; + bbufinfo bufinfo; /* is valid only if the entry is a variable and (a pointer + or array) */ } *uvinfo ; +/* end modifications */ typedef struct _udinfo { @@ -565,6 +581,36 @@ extern bool uentry_hasAccessType (uentry p_e); extern /*@exposed@*/ uentry uentry_makeUnrecognized (cstring p_c, /*@keep@*/ fileloc p_loc); + +/* start modifications */ +/* functions for making modification to null-term info */ +extern void uentry_setNullTerminatedState (uentry p_e); +extern void uentry_setPossiblyNullTerminatedState (uentry p_e); +extern void uentry_setNotNullTerminated (uentry p_e); +extern void uentry_setSize(uentry p_e, int size); +extern void uentry_setLen(uentry p_e, int len); + +extern bool uentry_hasBufStateInfo (uentry p_ue); +# define uentry_hasBufStateInfo(p_ue) \ + (((p_ue)->info->var->bufinfo != NULL) ? TRUE : FALSE) + +extern bool uentry_isNullTerminated(uentry p_ue); +# define uentry_isNullTerminated(p_ue) \ + ( uentry_hasBufStateInfo(p_ue) ? (p_ue->info->var->bufinfo->bufstate \ + == BB_NULLTERMINATED) : FALSE) + +extern bool uentry_isPossiblyNullTerminated(uentry p_ue); +# define uentry_isPossiblyNullTerminated(p_ue) \ + ( uentry_hasBufStateInfo(p_ue) ? (p_ue->info->var->bufinfo->bufstate \ + == BB_POSSIBLYNULLTERMINATED) : FALSE) + +extern bool uentry_isNotNullTerminated(uentry p_ue); +# define uentry_isNotNullTerminated(p_ue) \ + ( uentry_hasBufStateInfo(p_ue) ? (p_ue->info->var->bufinfo->bufstate \ + == BB_NOTNULLTERMINATED) : FALSE) + +/* end modifications */ + # ifdef DOANNOTS typedef enum { AN_UNKNOWN, AN_FCNRETURN, AN_FCNPARAM, AN_SUFIELD, AN_TDEFN, AN_GSVAR, AN_CONST, AN_LAST diff --git a/src/aliasChecks.c b/src/aliasChecks.c index 4711f85..904b16b 100644 --- a/src/aliasChecks.c +++ b/src/aliasChecks.c @@ -146,6 +146,25 @@ transferNullMessage (transferKind transferType) /*@*/ BADEXIT; } +static /*@observer@*/ cstring +transferNTMessage (transferKind transferType) /*@*/ +{ + switch (transferType) + { + case TT_FCNRETURN: + return (cstring_makeLiteralTemp ("returned as nullterminated")); + case TT_DOASSIGN: + case TT_FIELDASSIGN: + return (cstring_makeLiteralTemp ("assigned to nullterminated")); + case TT_GLOBINIT: + return (cstring_makeLiteralTemp ("initialized to nullterminated")); + case TT_FCNPASS: + return (cstring_makeLiteralTemp ("passed as nullterminated param")); + BADDEFAULT; + } + BADEXIT; +} + static /*@dependent@*/ exprNode atFunction = exprNode_undefined; static int atArgNo = 0; static int atNumArgs = 0; @@ -2009,6 +2028,7 @@ checkAssignTransfer (exprNode lhs, exprNode rhs) sRef srhs = exprNode_getSref (rhs); sRef base = sRef_getBaseSafe (slhs); nstate ns; + struct _bbufinfo bs; DPRINTF (("Check assign: %s = %s", exprNode_unparse (lhs), exprNode_unparse (rhs))); @@ -2059,6 +2079,9 @@ checkAssignTransfer (exprNode lhs, exprNode rhs) sRef_setExKind (slhs, sRef_getExKind (srhs), exprNode_loc (rhs)); } + /* We put the function to transfer NT states */ + bs = sRef_getNullTerminatedState (srhs); + sRef_setNullTerminatedStateInnerComplete (slhs, bs, exprNode_loc (rhs)); DPRINTF (("Done transfer: %s", sRef_unparseFull (slhs))); } @@ -2960,6 +2983,16 @@ checkTransferAux (exprNode fexp, sRef fref, bool ffix, setCodePoint (); + /*start modification David Larochelle */ + + if (!ffix && !tfix) + { + setCodePoint (); + checkTransferNullTerminatedAux (fref, fexp, ffix, tref, texp, tfix, + loc, transferType); + } + /*end modification */ + if (!ffix && !tfix) { setCodePoint (); @@ -3726,3 +3759,144 @@ bool canLoseLocalReference (sRef sr, fileloc loc) } +/*start modification */ + +/*added by David Larochelle 4/13/2000*/ + +/*this is modeled after checkTransferNullAux */ + + static void +checkTransferNullTerminatedAux (sRef fref, exprNode fexp, + /*@unused@*/ bool ffix, + sRef tref, exprNode texp, /*@unused@*/ bool tfix, + fileloc loc, transferKind transferType) +{ + alkind tkind = sRef_getAliasKind (tref); + ctype ttyp = ctype_realType (sRef_getType (tref)); + +/* DEBUG + printf ("checking for fexp-%s\n", exprNode_unparse(fexp)); + printf ("checking for texp-%s\n", exprNode_unparse(texp)); +*/ + + if (ctype_isUnknown (ttyp)) + { + ttyp = exprNode_getType (texp); + + if (ctype_isUnknown (ttyp)) + { + ttyp = exprNode_getType (fexp); + + if (ctype_isUnknown (ttyp)) + { + ttyp = sRef_getType (fref); + } + } + } + + if (ctype_isFunction (ttyp) && (transferType == TT_FCNRETURN)) + { + ttyp = ctype_returnValue (ttyp); + } + + /* + ** check for null terminated (don't need to check aliases??) + */ + + if (!sRef_isNullTerminated (fref) + && !usymtab_isGuarded (fref) + && ctype_isRealAP (ttyp)) + { + if (!alkind_isLocal (tkind) && !alkind_isFresh (tkind) + //this should be perhapsNullTerminated but I didn't want to write + && (sRef_isPossiblyNullTerminated (tref) || + sRef_isNullTerminated (tref)) + && !(transferType == TT_DOASSIGN)) + { + if (transferType == TT_GLOBINIT) + { + printf("-----------------------------------NULLTERMINATED ERROR1\n"); + if (sRef_isPossiblyNullTerminated (fref)) { + if (lloptgenerror + (FLG_NULLTERMINATEDWARNING, + message ("%s %q initialized to %s value: %q", + sRef_getScopeName (tref), + sRef_unparse (tref), + sRef_ntMessage (fref), + generateText (fexp, texp, tref, transferType)), + loc)) + { + + printf ("NULLTERMINATED REFERENCE ERROR\n"); + // printf ("First way\n"); + } + + } else { + + if (lloptgenerror + (FLG_NULLTERMINATED, + message ("%s %q initialized to %s value: %q", + sRef_getScopeName (tref), + sRef_unparse (tref), + sRef_ntMessage (fref), + generateText (fexp, texp, tref, transferType)), + loc)) + { + + printf ("NULLTERMINATED REFERENCE ERROR\n"); + // printf ("First way\n"); + } + + printf("-----------------------------\n\n"); + + } + } + else + { + printf("****************************NULLTERMINATED ERROR2\n"); + // ((transferType == TT_FCNPASS) ? FLG_NULLPASS : FLG_NULLRET, + + if (sRef_isPossiblyNullTerminated (fref)) + { + if (lloptgenerror + (FLG_NULLTERMINATEDWARNING, + message ("%q storage %q%s: %q", + cstring_capitalize (sRef_ntMessage (fref)), + sRef_unparseOpt (fref), + transferNTMessage (transferType), + generateText (fexp, texp, tref, transferType)), + loc)) + { + + printf ("NULLTERMINATED REFERENCE ERROR\n"); + // printf ("First way\n"); + } + + } else { + if (lloptgenerror + ((transferType == TT_FCNPASS) ? FLG_NULLTERMINATED: FLG_NULLTERMINATED, + message ("%q storage %q%s: %q", + cstring_capitalize (sRef_ntMessage (fref)), + sRef_unparseOpt (fref), + transferNTMessage (transferType), + generateText (fexp, texp, tref, transferType)), + loc)) + { + // sRef_showNullInfo (fref); + // sRef_setNullError (fref); + printf ("SYMBOL REFERENCED IS NOT NULLTERMINATED!\n"); + + } + printf("*******************************=\n\n"); + } + } + } + else + { + ; + } + } +} +/* end modification */ + + diff --git a/src/cgrammar.c.der b/src/cgrammar.c.der index d2240a5..7aa743a 100644 --- a/src/cgrammar.c.der +++ b/src/cgrammar.c.der @@ -91,145 +91,144 @@ #define TBAR 295 #define TQUEST 296 #define CSIZEOF 297 -#define CALIGNOF 298 -#define ARROW_OP 299 -#define CTYPEDEF 300 -#define COFFSETOF 301 -#define INC_OP 302 -#define DEC_OP 303 -#define LEFT_OP 304 -#define RIGHT_OP 305 -#define LE_OP 306 -#define GE_OP 307 -#define EQ_OP 308 -#define NE_OP 309 -#define AND_OP 310 -#define OR_OP 311 -#define MUL_ASSIGN 312 -#define DIV_ASSIGN 313 -#define MOD_ASSIGN 314 -#define ADD_ASSIGN 315 -#define SUB_ASSIGN 316 -#define LEFT_ASSIGN 317 -#define RIGHT_ASSIGN 318 -#define AND_ASSIGN 319 -#define XOR_ASSIGN 320 -#define OR_ASSIGN 321 -#define CSTRUCT 322 -#define CUNION 323 -#define CENUM 324 -#define VA_ARG 325 -#define VA_DCL 326 -#define QGLOBALS 327 -#define QMODIFIES 328 -#define QNOMODS 329 -#define QCONSTANT 330 -#define QFUNCTION 331 -#define QITER 332 -#define QDEFINES 333 -#define QUSES 334 -#define QALLOCATES 335 -#define QSETS 336 -#define QRELEASES 337 -#define QPRECLAUSE 338 -#define QPOSTCLAUSE 339 -#define QALT 340 -#define QUNDEF 341 -#define QKILLED 342 -#define QENDMACRO 343 -#define LLMACRO 344 -#define LLMACROITER 345 -#define LLMACROEND 346 -#define TENDMACRO 347 -#define QSWITCHBREAK 348 -#define QLOOPBREAK 349 -#define QINNERBREAK 350 -#define QSAFEBREAK 351 -#define QINNERCONTINUE 352 -#define QFALLTHROUGH 353 -#define QLINTNOTREACHED 354 -#define QLINTFALLTHROUGH 355 -#define QLINTFALLTHRU 356 -#define QARGSUSED 357 -#define QPRINTFLIKE 358 -#define QLINTPRINTFLIKE 359 -#define QSCANFLIKE 360 -#define QMESSAGELIKE 361 -#define QNOTREACHED 362 -#define QCONST 363 -#define QVOLATILE 364 -#define QINLINE 365 -#define QEXTENSION 366 -#define QEXTERN 367 -#define QSTATIC 368 -#define QAUTO 369 -#define QREGISTER 370 -#define QOUT 371 -#define QIN 372 -#define QYIELD 373 -#define QONLY 374 -#define QTEMP 375 -#define QSHARED 376 -#define QREF 377 -#define QUNIQUE 378 -#define QCHECKED 379 -#define QUNCHECKED 380 -#define QCHECKEDSTRICT 381 -#define QCHECKMOD 382 -#define QKEEP 383 -#define QKEPT 384 -#define QPARTIAL 385 -#define QSPECIAL 386 -#define QOWNED 387 -#define QDEPENDENT 388 -#define QRETURNED 389 -#define QEXPOSED 390 -#define QNULL 391 -#define QOBSERVER 392 -#define QISNULL 393 -#define QEXITS 394 -#define QMAYEXIT 395 -#define QNEVEREXIT 396 -#define QTRUEEXIT 397 -#define QFALSEEXIT 398 -#define QLONG 399 -#define QSIGNED 400 -#define QUNSIGNED 401 -#define QSHORT 402 -#define QUNUSED 403 -#define QSEF 404 -#define QNOTNULL 405 -#define QRELNULL 406 -#define QABSTRACT 407 -#define QCONCRETE 408 -#define QMUTABLE 409 -#define QIMMUTABLE 410 -#define QTRUENULL 411 -#define QFALSENULL 412 -#define QEXTERNAL 413 -#define QREFCOUNTED 414 -#define QREFS 415 -#define QNEWREF 416 -#define QTEMPREF 417 -#define QKILLREF 418 -#define QRELDEF 419 -#define CGCHAR 420 -#define CBOOL 421 -#define CINT 422 -#define CGFLOAT 423 -#define CDOUBLE 424 -#define CVOID 425 -#define QANYTYPE 426 -#define QINTEGRALTYPE 427 -#define QUNSIGNEDINTEGRALTYPE 428 -#define QSIGNEDINTEGRALTYPE 429 -#define IDENTIFIER 430 -#define NEW_IDENTIFIER 431 -#define TYPE_NAME_OR_ID 432 -#define CCONSTANT 433 -#define ITER_NAME 434 -#define ITER_ENDNAME 435 -#define TYPE_NAME 436 +#define ARROW_OP 298 +#define CTYPEDEF 299 +#define COFFSETOF 300 +#define INC_OP 301 +#define DEC_OP 302 +#define LEFT_OP 303 +#define RIGHT_OP 304 +#define LE_OP 305 +#define GE_OP 306 +#define EQ_OP 307 +#define NE_OP 308 +#define AND_OP 309 +#define OR_OP 310 +#define MUL_ASSIGN 311 +#define DIV_ASSIGN 312 +#define MOD_ASSIGN 313 +#define ADD_ASSIGN 314 +#define SUB_ASSIGN 315 +#define LEFT_ASSIGN 316 +#define RIGHT_ASSIGN 317 +#define AND_ASSIGN 318 +#define XOR_ASSIGN 319 +#define OR_ASSIGN 320 +#define CSTRUCT 321 +#define CUNION 322 +#define CENUM 323 +#define VA_ARG 324 +#define VA_DCL 325 +#define QGLOBALS 326 +#define QMODIFIES 327 +#define QNOMODS 328 +#define QCONSTANT 329 +#define QFUNCTION 330 +#define QITER 331 +#define QDEFINES 332 +#define QUSES 333 +#define QALLOCATES 334 +#define QSETS 335 +#define QRELEASES 336 +#define QPRECLAUSE 337 +#define QPOSTCLAUSE 338 +#define QALT 339 +#define QUNDEF 340 +#define QKILLED 341 +#define QENDMACRO 342 +#define LLMACRO 343 +#define LLMACROITER 344 +#define LLMACROEND 345 +#define TENDMACRO 346 +#define QSWITCHBREAK 347 +#define QLOOPBREAK 348 +#define QINNERBREAK 349 +#define QSAFEBREAK 350 +#define QINNERCONTINUE 351 +#define QFALLTHROUGH 352 +#define QLINTNOTREACHED 353 +#define QLINTFALLTHROUGH 354 +#define QLINTFALLTHRU 355 +#define QARGSUSED 356 +#define QPRINTFLIKE 357 +#define QLINTPRINTFLIKE 358 +#define QSCANFLIKE 359 +#define QMESSAGELIKE 360 +#define QNOTREACHED 361 +#define QCONST 362 +#define QVOLATILE 363 +#define QINLINE 364 +#define QEXTENSION 365 +#define QEXTERN 366 +#define QSTATIC 367 +#define QAUTO 368 +#define QREGISTER 369 +#define QOUT 370 +#define QIN 371 +#define QYIELD 372 +#define QONLY 373 +#define QTEMP 374 +#define QSHARED 375 +#define QREF 376 +#define QUNIQUE 377 +#define QCHECKED 378 +#define QUNCHECKED 379 +#define QCHECKEDSTRICT 380 +#define QCHECKMOD 381 +#define QKEEP 382 +#define QKEPT 383 +#define QPARTIAL 384 +#define QSPECIAL 385 +#define QOWNED 386 +#define QDEPENDENT 387 +#define QRETURNED 388 +#define QEXPOSED 389 +#define QNULL 390 +#define QOBSERVER 391 +#define QISNULL 392 +#define QEXITS 393 +#define QMAYEXIT 394 +#define QNEVEREXIT 395 +#define QTRUEEXIT 396 +#define QFALSEEXIT 397 +#define QLONG 398 +#define QSIGNED 399 +#define QUNSIGNED 400 +#define QSHORT 401 +#define QUNUSED 402 +#define QSEF 403 +#define QNOTNULL 404 +#define QRELNULL 405 +#define QABSTRACT 406 +#define QCONCRETE 407 +#define QMUTABLE 408 +#define QIMMUTABLE 409 +#define QTRUENULL 410 +#define QFALSENULL 411 +#define QEXTERNAL 412 +#define QREFCOUNTED 413 +#define QREFS 414 +#define QNEWREF 415 +#define QTEMPREF 416 +#define QKILLREF 417 +#define QRELDEF 418 +#define CGCHAR 419 +#define CBOOL 420 +#define CINT 421 +#define CGFLOAT 422 +#define CDOUBLE 423 +#define CVOID 424 +#define QANYTYPE 425 +#define QINTEGRALTYPE 426 +#define QUNSIGNEDINTEGRALTYPE 427 +#define QSIGNEDINTEGRALTYPE 428 +#define IDENTIFIER 429 +#define NEW_IDENTIFIER 430 +#define CCONSTANT 431 +#define ITER_NAME 432 +#define ITER_ENDNAME 433 +#define TYPE_NAME 434 +#define TYPE_NAME_OR_ID 435 #line 19 "cgrammar.y" @@ -271,22 +270,7 @@ extern void swallowMacro (void); # define SHOWCSYM FALSE void yyerror (char *s); -/* -** This is necessary, or else when the bison-generated code #include's malloc.h, -** there will be a parse error. -** -** Unfortunately, it means the error checking on malloc, etc. is lost for allocations -** in bison-generated files under Win32. -*/ - -# ifdef WIN32 -# undef malloc -# undef calloc -# undef realloc -# endif - - -#line 74 "cgrammar.y" +#line 59 "cgrammar.y" typedef union { lltok tok; @@ -308,7 +292,6 @@ typedef union /*@only@*/ enumNameList enumnamelist; /*@only@*/ exprNodeList alist; /*@only@*/ sRefSet srset; - /*@only@*/ cstringList cstringlist; } YYSTYPE; #ifndef YYDEBUG #define YYDEBUG 1 @@ -324,11 +307,11 @@ typedef union -#define YYFINAL 1158 +#define YYFINAL 1150 #define YYFLAG -32768 -#define YYNTBASE 182 +#define YYNTBASE 181 -#define YYTRANSLATE(x) ((unsigned)(x) <= 436 ? yytranslate[x] : 409) +#define YYTRANSLATE(x) ((unsigned)(x) <= 435 ? yytranslate[x] : 407) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -374,7 +357,7 @@ static const short yytranslate[] = { 0, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181 + 176, 177, 178, 179, 180 }; #if YYDEBUG != 0 @@ -395,325 +378,324 @@ static const short yyprhs[] = { 0, 393, 395, 399, 404, 407, 411, 415, 419, 421, 425, 427, 429, 431, 435, 437, 439, 441, 446, 450, 455, 462, 468, 474, 477, 480, 482, 486, 488, 491, 494, - 497, 500, 503, 506, 509, 512, 514, 516, 520, 522, - 532, 533, 537, 542, 545, 550, 553, 555, 560, 562, - 566, 570, 574, 576, 580, 584, 586, 590, 594, 596, - 600, 604, 608, 612, 614, 618, 622, 624, 628, 630, - 634, 636, 640, 642, 643, 648, 650, 651, 656, 658, - 659, 660, 668, 670, 674, 678, 682, 686, 690, 694, - 698, 702, 706, 710, 714, 716, 720, 721, 723, 725, - 727, 729, 731, 735, 736, 746, 747, 759, 762, 763, - 770, 771, 779, 784, 789, 790, 791, 794, 796, 801, - 802, 807, 809, 813, 818, 820, 824, 826, 828, 830, - 832, 834, 837, 840, 843, 846, 849, 852, 855, 858, - 861, 864, 867, 870, 873, 876, 879, 882, 885, 888, - 891, 894, 897, 900, 903, 906, 909, 912, 915, 918, - 921, 924, 927, 930, 933, 936, 939, 942, 945, 948, - 951, 954, 957, 960, 963, 966, 969, 971, 973, 975, - 977, 980, 983, 986, 989, 992, 995, 998, 1001, 1004, - 1007, 1010, 1013, 1016, 1019, 1023, 1025, 1030, 1032, 1036, - 1039, 1042, 1045, 1046, 1048, 1049, 1050, 1062, 1063, 1064, - 1076, 1083, 1090, 1091, 1092, 1103, 1104, 1105, 1116, 1122, - 1128, 1133, 1138, 1139, 1141, 1143, 1146, 1152, 1156, 1159, - 1164, 1166, 1170, 1175, 1182, 1183, 1192, 1197, 1199, 1203, - 1206, 1208, 1213, 1215, 1217, 1220, 1223, 1225, 1228, 1230, - 1233, 1235, 1237, 1239, 1242, 1244, 1247, 1250, 1254, 1256, - 1260, 1262, 1266, 1268, 1270, 1274, 1275, 1278, 1279, 1284, - 1289, 1291, 1293, 1296, 1298, 1300, 1303, 1304, 1306, 1312, - 1315, 1319, 1323, 1328, 1332, 1337, 1342, 1348, 1350, 1352, - 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372, - 1375, 1378, 1386, 1393, 1396, 1397, 1398, 1409, 1410, 1417, - 1419, 1421, 1423, 1425, 1428, 1430, 1432, 1434, 1436, 1438, - 1440, 1442, 1446, 1448, 1451, 1454, 1457, 1459, 1461, 1463, - 1465, 1467, 1469, 1471, 1473, 1475, 1477, 1481, 1483, 1485, - 1488, 1491, 1492, 1497, 1498, 1504, 1505, 1509, 1510, 1515, - 1519, 1522, 1526, 1527, 1528, 1529, 1530, 1531, 1533, 1536, - 1539, 1543, 1546, 1550, 1554, 1559, 1562, 1565, 1569, 1573, - 1578, 1580, 1583, 1585, 1588, 1590, 1593, 1595, 1598, 1600, - 1603, 1605, 1610, 1613, 1614, 1620, 1621, 1628, 1633, 1638, - 1639, 1640, 1651, 1653, 1654, 1659, 1661, 1663, 1665, 1667, - 1669, 1673, 1675, 1680, 1684, 1689, 1696, 1702, 1708, 1711, - 1714, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, - 1742, 1744, 1749, 1751, 1755, 1759, 1763, 1765, 1769, 1773, - 1775, 1779, 1783, 1785, 1789, 1793, 1797, 1801, 1803, 1807, - 1811, 1813, 1817, 1819, 1823, 1825, 1829, 1831, 1835, 1837, - 1841, 1843, 1844, 1845, 1853, 1855, 1859, 1863, 1867, 1871, - 1875, 1879, 1883, 1887, 1891, 1895, 1899, 1901, 1902, 1904, - 1907, 1915, 1918, 1921, 1929, 1936, 1939, 1943, 1946, 1950, - 1953, 1957, 1961, 1965, 1969, 1972, 1976, 1977, 1979, 1981, - 1983, 1985, 1987, 1989, 1991, 1993 + 497, 500, 503, 506, 509, 512, 514, 516, 526, 527, + 531, 536, 539, 541, 546, 548, 552, 556, 560, 562, + 566, 570, 572, 576, 580, 582, 586, 590, 594, 598, + 600, 604, 608, 610, 614, 616, 620, 622, 626, 628, + 629, 634, 636, 637, 642, 644, 645, 646, 654, 656, + 660, 664, 668, 672, 676, 680, 684, 688, 692, 696, + 700, 702, 706, 707, 709, 711, 713, 715, 717, 721, + 722, 732, 733, 745, 748, 749, 756, 757, 765, 770, + 775, 776, 777, 780, 782, 787, 788, 793, 795, 799, + 804, 806, 810, 812, 814, 816, 818, 820, 823, 826, + 829, 832, 835, 838, 841, 844, 847, 850, 853, 856, + 859, 862, 865, 868, 871, 874, 877, 880, 883, 886, + 889, 892, 895, 898, 901, 904, 907, 910, 913, 916, + 919, 922, 925, 928, 931, 934, 937, 940, 943, 946, + 949, 952, 955, 957, 959, 961, 963, 966, 969, 972, + 975, 978, 981, 984, 987, 990, 993, 996, 999, 1002, + 1005, 1009, 1011, 1016, 1018, 1022, 1025, 1028, 1031, 1032, + 1034, 1035, 1036, 1048, 1049, 1050, 1062, 1069, 1076, 1077, + 1078, 1089, 1090, 1091, 1102, 1108, 1114, 1119, 1124, 1125, + 1127, 1129, 1132, 1138, 1142, 1145, 1150, 1152, 1155, 1159, + 1166, 1167, 1176, 1181, 1183, 1187, 1190, 1192, 1197, 1199, + 1201, 1204, 1207, 1209, 1212, 1214, 1217, 1219, 1221, 1223, + 1226, 1228, 1231, 1234, 1238, 1240, 1244, 1246, 1250, 1252, + 1254, 1258, 1259, 1262, 1263, 1268, 1273, 1275, 1277, 1280, + 1282, 1284, 1287, 1288, 1290, 1296, 1299, 1303, 1307, 1312, + 1316, 1321, 1326, 1332, 1334, 1336, 1338, 1340, 1342, 1344, + 1346, 1348, 1350, 1352, 1354, 1356, 1359, 1362, 1370, 1377, + 1380, 1381, 1382, 1393, 1394, 1401, 1403, 1405, 1407, 1409, + 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1430, 1432, + 1435, 1438, 1441, 1443, 1445, 1447, 1449, 1451, 1453, 1455, + 1457, 1459, 1461, 1465, 1467, 1469, 1473, 1476, 1477, 1483, + 1484, 1491, 1492, 1497, 1498, 1504, 1508, 1511, 1515, 1516, + 1517, 1518, 1519, 1520, 1522, 1525, 1528, 1532, 1535, 1539, + 1543, 1548, 1551, 1554, 1558, 1562, 1567, 1569, 1572, 1574, + 1577, 1579, 1582, 1584, 1587, 1589, 1592, 1594, 1599, 1602, + 1603, 1609, 1610, 1617, 1622, 1627, 1628, 1629, 1640, 1642, + 1643, 1648, 1650, 1652, 1654, 1656, 1658, 1662, 1664, 1669, + 1673, 1678, 1685, 1691, 1697, 1700, 1703, 1705, 1708, 1711, + 1714, 1717, 1720, 1723, 1726, 1729, 1731, 1733, 1738, 1740, + 1744, 1748, 1752, 1754, 1758, 1762, 1764, 1768, 1772, 1774, + 1778, 1782, 1786, 1790, 1792, 1796, 1800, 1802, 1806, 1808, + 1812, 1814, 1818, 1820, 1824, 1826, 1830, 1832, 1833, 1834, + 1842, 1844, 1848, 1852, 1856, 1860, 1864, 1868, 1872, 1876, + 1880, 1884, 1888, 1890, 1891, 1893, 1896, 1904, 1907, 1910, + 1918, 1925, 1928, 1932, 1935, 1939, 1942, 1946, 1950, 1954, + 1958, 1961, 1965, 1966, 1968, 1970, 1972, 1974, 1976, 1978, + 1980 }; static const short yyrhs[] = { -1, - 183, 0, 184, 0, 183, 184, 0, 236, 405, 0, - 185, 0, 186, 0, 196, 0, 199, 0, 273, 0, - 1, 0, 75, 293, 306, 316, 306, 405, 281, 88, - 0, 75, 293, 306, 316, 306, 23, 281, 286, 285, - 405, 88, 0, 0, 76, 187, 188, 405, 88, 0, - 189, 0, 293, 306, 189, 0, 193, 0, 320, 193, - 0, 407, 0, 281, 24, 306, 316, 281, 25, 0, - 190, 26, 27, 0, 190, 26, 281, 272, 27, 306, - 0, 0, 190, 282, 24, 25, 191, 201, 0, 0, - 190, 282, 24, 317, 25, 192, 201, 0, 407, 0, - 281, 24, 306, 189, 281, 25, 0, 193, 26, 27, - 0, 193, 26, 281, 272, 27, 306, 0, 0, 193, - 282, 24, 25, 194, 203, 0, 0, 193, 282, 24, - 317, 25, 195, 203, 0, 0, 0, 77, 407, 24, - 317, 25, 197, 203, 198, 405, 88, 0, 89, 346, - 92, 0, 90, 333, 92, 0, 91, 334, 92, 0, - 89, 92, 0, 232, 0, 0, 202, 205, 0, 0, - 204, 206, 0, 213, 0, 207, 213, 0, 216, 0, - 207, 216, 0, 229, 0, 229, 207, 0, 209, 0, - 208, 21, 209, 0, 212, 210, 0, 406, 0, 176, - 0, 86, 0, 87, 0, 116, 0, 117, 0, 130, - 0, 0, 211, 212, 0, 0, 72, 214, 366, 405, - 88, 219, 0, 0, 72, 215, 208, 405, 88, 219, - 0, 74, 0, 220, 0, 0, 0, 72, 217, 366, - 405, 219, 0, 0, 72, 218, 208, 405, 219, 0, - 74, 0, 222, 0, 0, 220, 0, 0, 0, 73, - 221, 237, 0, 0, 73, 223, 238, 0, 78, 0, - 79, 0, 80, 0, 81, 0, 82, 0, 88, 0, - 88, 0, 83, 0, 84, 0, 119, 0, 137, 0, - 135, 0, 133, 0, 132, 0, 121, 0, 138, 0, - 150, 0, 0, 224, 306, 230, 243, 405, 226, 281, - 0, 0, 227, 306, 228, 231, 243, 405, 225, 281, - 0, 316, 0, 293, 306, 316, 0, 0, 19, 234, - 362, 0, 0, 366, 235, 355, 0, 200, 233, 0, - 241, 405, 88, 0, 405, 88, 0, 241, 405, 0, - 405, 0, 406, 0, 176, 0, 239, 26, 27, 0, - 239, 26, 240, 27, 0, 34, 239, 0, 24, 239, - 25, 0, 239, 28, 407, 0, 239, 44, 407, 0, - 239, 0, 178, 0, 239, 0, 241, 21, 239, 0, - 406, 0, 176, 0, 242, 26, 27, 0, 242, 26, - 240, 27, 0, 34, 242, 0, 24, 242, 25, 0, - 242, 28, 407, 0, 242, 44, 407, 0, 242, 0, - 243, 21, 242, 0, 406, 0, 176, 0, 178, 0, - 24, 270, 25, 0, 177, 0, 111, 0, 244, 0, - 245, 26, 270, 27, 0, 245, 24, 25, 0, 245, - 24, 246, 25, 0, 70, 24, 269, 21, 328, 25, - 0, 245, 306, 28, 407, 281, 0, 245, 306, 44, - 407, 281, 0, 245, 47, 0, 245, 48, 0, 269, - 0, 246, 21, 269, 0, 245, 0, 47, 247, 0, - 48, 247, 0, 29, 253, 0, 34, 253, 0, 33, - 253, 0, 32, 253, 0, 31, 253, 0, 30, 253, - 0, 250, 0, 249, 0, 248, 28, 407, 0, 407, - 0, 46, 281, 24, 328, 306, 21, 248, 25, 281, - 0, 0, 281, 251, 252, 0, 42, 24, 328, 25, - 0, 42, 247, 0, 43, 24, 328, 25, 0, 43, - 247, 0, 247, 0, 24, 328, 25, 253, 0, 253, - 0, 254, 34, 253, 0, 254, 35, 253, 0, 254, - 36, 253, 0, 254, 0, 255, 33, 254, 0, 255, - 32, 254, 0, 255, 0, 256, 49, 255, 0, 256, - 50, 255, 0, 256, 0, 257, 37, 256, 0, 257, - 38, 256, 0, 257, 51, 256, 0, 257, 52, 256, - 0, 257, 0, 258, 53, 257, 0, 258, 54, 257, - 0, 258, 0, 259, 29, 258, 0, 259, 0, 260, - 39, 259, 0, 260, 0, 261, 40, 260, 0, 261, - 0, 0, 262, 55, 263, 261, 0, 262, 0, 0, - 264, 56, 265, 262, 0, 264, 0, 0, 0, 264, - 41, 267, 270, 22, 268, 266, 0, 266, 0, 247, - 23, 269, 0, 247, 57, 269, 0, 247, 58, 269, - 0, 247, 59, 269, 0, 247, 60, 269, 0, 247, - 61, 269, 0, 247, 62, 269, 0, 247, 63, 269, - 0, 247, 64, 269, 0, 247, 65, 269, 0, 247, - 66, 269, 0, 269, 0, 270, 21, 269, 0, 0, - 270, 0, 266, 0, 274, 0, 71, 0, 279, 0, - 293, 281, 18, 0, 0, 293, 306, 316, 306, 275, - 281, 285, 18, 281, 0, 0, 293, 306, 316, 306, - 23, 276, 281, 286, 285, 18, 281, 0, 316, 306, - 0, 0, 316, 306, 23, 278, 281, 286, 0, 0, - 45, 293, 280, 306, 283, 281, 18, 0, 45, 293, - 281, 18, 0, 45, 283, 281, 18, 0, 0, 0, - 284, 281, 0, 277, 0, 283, 21, 306, 277, 0, - 0, 285, 21, 306, 277, 0, 269, 0, 19, 287, - 20, 0, 19, 287, 21, 20, 0, 286, 0, 287, - 21, 286, 0, 112, 0, 110, 0, 113, 0, 114, - 0, 115, 0, 108, 281, 0, 109, 281, 0, 116, - 281, 0, 117, 281, 0, 130, 281, 0, 131, 281, - 0, 132, 281, 0, 133, 281, 0, 118, 281, 0, - 120, 281, 0, 119, 281, 0, 128, 281, 0, 129, - 281, 0, 121, 281, 0, 123, 281, 0, 139, 281, - 0, 140, 281, 0, 142, 281, 0, 143, 281, 0, - 141, 281, 0, 136, 281, 0, 151, 281, 0, 134, - 281, 0, 135, 281, 0, 137, 281, 0, 124, 281, - 0, 127, 281, 0, 125, 281, 0, 126, 281, 0, - 156, 281, 0, 157, 281, 0, 148, 281, 0, 158, - 281, 0, 149, 281, 0, 152, 281, 0, 153, 281, - 0, 154, 281, 0, 155, 281, 0, 150, 281, 0, - 159, 281, 0, 160, 281, 0, 163, 281, 0, 164, - 281, 0, 161, 281, 0, 162, 281, 0, 147, 0, - 144, 0, 145, 0, 146, 0, 165, 306, 0, 167, - 306, 0, 166, 306, 0, 168, 306, 0, 169, 306, - 0, 170, 306, 0, 171, 306, 0, 172, 306, 0, - 173, 306, 0, 174, 306, 0, 408, 306, 0, 297, - 306, 0, 311, 306, 0, 290, 306, 0, 281, 293, - 281, 0, 295, 0, 295, 85, 294, 88, 0, 328, - 0, 328, 21, 294, 0, 288, 296, 0, 289, 296, - 0, 291, 296, 0, 0, 293, 0, 0, 0, 306, - 67, 407, 281, 19, 298, 359, 307, 360, 299, 20, - 0, 0, 0, 306, 68, 407, 281, 19, 300, 359, - 307, 360, 301, 20, 0, 306, 67, 407, 281, 19, - 20, 0, 306, 68, 407, 281, 19, 20, 0, 0, - 0, 306, 67, 281, 19, 302, 359, 307, 360, 303, - 20, 0, 0, 0, 306, 68, 281, 19, 304, 359, - 307, 360, 305, 20, 0, 306, 67, 281, 19, 20, - 0, 306, 68, 281, 19, 20, 0, 306, 67, 407, - 306, 0, 306, 68, 407, 306, 0, 0, 308, 0, - 199, 0, 307, 308, 0, 293, 306, 309, 281, 18, - 0, 293, 281, 18, 0, 310, 306, 0, 309, 21, - 310, 306, 0, 316, 0, 22, 281, 272, 0, 316, - 22, 281, 272, 0, 306, 69, 19, 313, 20, 281, - 0, 0, 306, 69, 407, 19, 312, 313, 20, 281, - 0, 306, 69, 407, 281, 0, 314, 0, 313, 21, - 314, 0, 313, 21, 0, 407, 0, 407, 23, 281, - 272, 0, 190, 0, 330, 0, 320, 181, 0, 320, - 315, 0, 190, 0, 320, 190, 0, 323, 0, 306, - 321, 0, 108, 0, 109, 0, 318, 0, 319, 318, - 0, 34, 0, 34, 319, 0, 34, 320, 0, 34, - 319, 320, 0, 322, 0, 322, 21, 5, 0, 407, - 0, 322, 21, 407, 0, 5, 0, 324, 0, 324, - 21, 5, 0, 0, 325, 327, 0, 0, 324, 21, - 326, 327, 0, 281, 293, 315, 281, 0, 407, 0, - 292, 0, 292, 329, 0, 320, 0, 331, 0, 320, - 331, 0, 0, 331, 0, 281, 24, 306, 329, 25, - 0, 26, 27, 0, 26, 272, 27, 0, 331, 26, - 27, 0, 331, 26, 272, 27, 0, 281, 24, 25, - 0, 281, 24, 323, 25, 0, 331, 281, 24, 25, - 0, 331, 281, 24, 323, 25, 0, 348, 0, 349, - 0, 352, 0, 355, 0, 368, 0, 371, 0, 402, - 0, 376, 0, 404, 0, 335, 0, 333, 0, 342, - 0, 335, 342, 0, 375, 335, 0, 401, 347, 11, - 24, 270, 25, 18, 0, 401, 347, 11, 24, 270, - 25, 0, 337, 342, 0, 0, 0, 13, 24, 271, - 18, 271, 18, 338, 271, 339, 25, 0, 0, 179, - 357, 24, 341, 379, 25, 0, 180, 0, 348, 0, - 349, 0, 352, 0, 344, 366, 0, 344, 0, 345, - 0, 368, 0, 343, 0, 336, 0, 340, 0, 404, - 0, 24, 342, 25, 0, 1, 0, 370, 342, 0, - 357, 19, 0, 361, 20, 0, 347, 0, 365, 0, - 348, 0, 349, 0, 352, 0, 356, 0, 369, 0, - 371, 0, 376, 0, 403, 0, 24, 347, 25, 0, - 404, 0, 1, 0, 407, 22, 0, 107, 332, 0, - 0, 6, 272, 350, 22, 0, 0, 98, 6, 272, - 351, 22, 0, 0, 7, 353, 22, 0, 0, 98, - 7, 354, 22, 0, 24, 355, 25, 0, 357, 363, - 0, 357, 364, 358, 0, 0, 0, 0, 0, 0, - 20, 0, 107, 20, 0, 367, 20, 0, 367, 107, - 20, 0, 366, 20, 0, 366, 107, 20, 0, 366, - 367, 20, 0, 366, 367, 107, 20, 0, 19, 362, - 0, 19, 20, 0, 19, 365, 20, 0, 19, 366, - 20, 0, 19, 366, 367, 20, 0, 347, 0, 365, - 347, 0, 273, 0, 366, 273, 0, 332, 0, 367, - 332, 0, 18, 0, 270, 18, 0, 18, 0, 270, - 18, 0, 270, 0, 8, 24, 270, 25, 0, 370, - 332, 0, 0, 370, 332, 9, 372, 332, 0, 0, - 10, 24, 270, 373, 25, 332, 0, 11, 24, 270, - 25, 0, 11, 24, 270, 25, 0, 0, 0, 179, - 377, 357, 24, 378, 379, 25, 355, 400, 358, 0, - 381, 0, 0, 379, 380, 21, 381, 0, 399, 0, - 406, 0, 177, 0, 176, 0, 178, 0, 24, 270, - 25, 0, 382, 0, 245, 26, 270, 27, 0, 245, - 24, 25, 0, 245, 24, 246, 25, 0, 70, 24, - 269, 21, 328, 25, 0, 245, 306, 28, 407, 281, - 0, 245, 306, 44, 407, 281, 0, 245, 47, 0, - 245, 48, 0, 383, 0, 47, 247, 0, 48, 247, - 0, 29, 253, 0, 34, 253, 0, 33, 253, 0, - 32, 253, 0, 31, 253, 0, 30, 253, 0, 250, - 0, 384, 0, 24, 328, 25, 253, 0, 385, 0, - 254, 34, 253, 0, 254, 35, 253, 0, 254, 36, - 253, 0, 386, 0, 255, 33, 254, 0, 255, 32, - 254, 0, 387, 0, 256, 49, 255, 0, 256, 50, - 255, 0, 388, 0, 257, 37, 256, 0, 257, 38, - 256, 0, 257, 51, 256, 0, 257, 52, 256, 0, - 389, 0, 258, 53, 257, 0, 258, 54, 257, 0, - 390, 0, 259, 29, 258, 0, 391, 0, 260, 39, - 259, 0, 392, 0, 261, 40, 260, 0, 393, 0, - 262, 55, 261, 0, 394, 0, 264, 56, 262, 0, - 395, 0, 0, 0, 264, 41, 397, 270, 22, 398, - 266, 0, 396, 0, 247, 23, 269, 0, 247, 57, - 269, 0, 247, 58, 269, 0, 247, 59, 269, 0, - 247, 60, 269, 0, 247, 61, 269, 0, 247, 62, - 269, 0, 247, 63, 269, 0, 247, 64, 269, 0, - 247, 65, 269, 0, 247, 66, 269, 0, 180, 0, - 0, 12, 0, 374, 332, 0, 401, 332, 11, 24, - 270, 25, 18, 0, 337, 332, 0, 374, 347, 0, - 401, 347, 11, 24, 270, 25, 18, 0, 401, 347, - 11, 24, 270, 25, 0, 337, 347, 0, 14, 407, - 18, 0, 15, 18, 0, 97, 15, 18, 0, 16, - 18, 0, 93, 16, 18, 0, 94, 16, 18, 0, - 95, 16, 18, 0, 96, 16, 18, 0, 17, 18, - 0, 17, 270, 18, 0, 0, 18, 0, 175, 0, - 176, 0, 179, 0, 180, 0, 406, 0, 177, 0, - 181, 0, 177, 0 + 182, 0, 183, 0, 182, 183, 0, 235, 403, 0, + 184, 0, 185, 0, 195, 0, 198, 0, 271, 0, + 1, 0, 74, 291, 304, 314, 304, 403, 279, 87, + 0, 74, 291, 304, 314, 304, 23, 279, 284, 283, + 403, 87, 0, 0, 75, 186, 187, 403, 87, 0, + 188, 0, 291, 304, 188, 0, 192, 0, 318, 192, + 0, 405, 0, 279, 24, 304, 314, 279, 25, 0, + 189, 26, 27, 0, 189, 26, 279, 270, 27, 304, + 0, 0, 189, 280, 24, 25, 190, 200, 0, 0, + 189, 280, 24, 315, 25, 191, 200, 0, 405, 0, + 279, 24, 304, 188, 279, 25, 0, 192, 26, 27, + 0, 192, 26, 279, 270, 27, 304, 0, 0, 192, + 280, 24, 25, 193, 202, 0, 0, 192, 280, 24, + 315, 25, 194, 202, 0, 0, 0, 76, 405, 24, + 315, 25, 196, 202, 197, 403, 87, 0, 88, 344, + 91, 0, 89, 331, 91, 0, 90, 332, 91, 0, + 88, 91, 0, 231, 0, 0, 201, 204, 0, 0, + 203, 205, 0, 212, 0, 206, 212, 0, 215, 0, + 206, 215, 0, 228, 0, 228, 206, 0, 208, 0, + 207, 21, 208, 0, 211, 209, 0, 404, 0, 175, + 0, 85, 0, 86, 0, 115, 0, 116, 0, 129, + 0, 0, 210, 211, 0, 0, 71, 213, 364, 403, + 87, 218, 0, 0, 71, 214, 207, 403, 87, 218, + 0, 73, 0, 219, 0, 0, 0, 71, 216, 364, + 403, 218, 0, 0, 71, 217, 207, 403, 218, 0, + 73, 0, 221, 0, 0, 219, 0, 0, 0, 72, + 220, 236, 0, 0, 72, 222, 237, 0, 77, 0, + 78, 0, 79, 0, 80, 0, 81, 0, 87, 0, + 87, 0, 82, 0, 83, 0, 118, 0, 136, 0, + 134, 0, 132, 0, 131, 0, 120, 0, 137, 0, + 149, 0, 0, 223, 304, 229, 242, 403, 225, 279, + 0, 0, 226, 304, 227, 230, 242, 403, 224, 279, + 0, 314, 0, 291, 304, 314, 0, 0, 19, 233, + 360, 0, 0, 364, 234, 353, 0, 199, 232, 0, + 240, 403, 87, 0, 403, 87, 0, 240, 403, 0, + 403, 0, 404, 0, 175, 0, 238, 26, 27, 0, + 238, 26, 239, 27, 0, 34, 238, 0, 24, 238, + 25, 0, 238, 28, 405, 0, 238, 43, 405, 0, + 238, 0, 176, 0, 238, 0, 240, 21, 238, 0, + 404, 0, 175, 0, 241, 26, 27, 0, 241, 26, + 239, 27, 0, 34, 241, 0, 24, 241, 25, 0, + 241, 28, 405, 0, 241, 43, 405, 0, 241, 0, + 242, 21, 241, 0, 404, 0, 175, 0, 176, 0, + 24, 268, 25, 0, 180, 0, 110, 0, 243, 0, + 244, 26, 268, 27, 0, 244, 24, 25, 0, 244, + 24, 245, 25, 0, 69, 24, 267, 21, 326, 25, + 0, 244, 304, 28, 405, 279, 0, 244, 304, 43, + 405, 279, 0, 244, 46, 0, 244, 47, 0, 267, + 0, 245, 21, 267, 0, 244, 0, 46, 246, 0, + 47, 246, 0, 29, 251, 0, 34, 251, 0, 33, + 251, 0, 32, 251, 0, 31, 251, 0, 30, 251, + 0, 248, 0, 247, 0, 45, 279, 24, 326, 304, + 21, 405, 25, 279, 0, 0, 279, 249, 250, 0, + 42, 24, 326, 25, 0, 42, 246, 0, 246, 0, + 24, 326, 25, 251, 0, 251, 0, 252, 34, 251, + 0, 252, 35, 251, 0, 252, 36, 251, 0, 252, + 0, 253, 33, 252, 0, 253, 32, 252, 0, 253, + 0, 254, 48, 253, 0, 254, 49, 253, 0, 254, + 0, 255, 37, 254, 0, 255, 38, 254, 0, 255, + 50, 254, 0, 255, 51, 254, 0, 255, 0, 256, + 52, 255, 0, 256, 53, 255, 0, 256, 0, 257, + 29, 256, 0, 257, 0, 258, 39, 257, 0, 258, + 0, 259, 40, 258, 0, 259, 0, 0, 260, 54, + 261, 259, 0, 260, 0, 0, 262, 55, 263, 260, + 0, 262, 0, 0, 0, 262, 41, 265, 268, 22, + 266, 264, 0, 264, 0, 246, 23, 267, 0, 246, + 56, 267, 0, 246, 57, 267, 0, 246, 58, 267, + 0, 246, 59, 267, 0, 246, 60, 267, 0, 246, + 61, 267, 0, 246, 62, 267, 0, 246, 63, 267, + 0, 246, 64, 267, 0, 246, 65, 267, 0, 267, + 0, 268, 21, 267, 0, 0, 268, 0, 264, 0, + 272, 0, 70, 0, 277, 0, 291, 279, 18, 0, + 0, 291, 304, 314, 304, 273, 279, 283, 18, 279, + 0, 0, 291, 304, 314, 304, 23, 274, 279, 284, + 283, 18, 279, 0, 314, 304, 0, 0, 314, 304, + 23, 276, 279, 284, 0, 0, 44, 291, 278, 304, + 281, 279, 18, 0, 44, 291, 279, 18, 0, 44, + 281, 279, 18, 0, 0, 0, 282, 279, 0, 275, + 0, 281, 21, 304, 275, 0, 0, 283, 21, 304, + 275, 0, 267, 0, 19, 285, 20, 0, 19, 285, + 21, 20, 0, 284, 0, 285, 21, 284, 0, 111, + 0, 109, 0, 112, 0, 113, 0, 114, 0, 107, + 279, 0, 108, 279, 0, 115, 279, 0, 116, 279, + 0, 129, 279, 0, 130, 279, 0, 131, 279, 0, + 132, 279, 0, 117, 279, 0, 119, 279, 0, 118, + 279, 0, 127, 279, 0, 128, 279, 0, 120, 279, + 0, 122, 279, 0, 138, 279, 0, 139, 279, 0, + 141, 279, 0, 142, 279, 0, 140, 279, 0, 135, + 279, 0, 150, 279, 0, 133, 279, 0, 134, 279, + 0, 136, 279, 0, 123, 279, 0, 126, 279, 0, + 124, 279, 0, 125, 279, 0, 155, 279, 0, 156, + 279, 0, 147, 279, 0, 157, 279, 0, 148, 279, + 0, 151, 279, 0, 152, 279, 0, 153, 279, 0, + 154, 279, 0, 149, 279, 0, 158, 279, 0, 159, + 279, 0, 162, 279, 0, 163, 279, 0, 160, 279, + 0, 161, 279, 0, 146, 0, 143, 0, 144, 0, + 145, 0, 164, 304, 0, 166, 304, 0, 165, 304, + 0, 167, 304, 0, 168, 304, 0, 169, 304, 0, + 170, 304, 0, 171, 304, 0, 172, 304, 0, 173, + 304, 0, 406, 304, 0, 295, 304, 0, 309, 304, + 0, 288, 304, 0, 279, 291, 279, 0, 293, 0, + 293, 84, 292, 87, 0, 326, 0, 326, 21, 292, + 0, 286, 294, 0, 287, 294, 0, 289, 294, 0, + 0, 291, 0, 0, 0, 304, 66, 405, 279, 19, + 296, 357, 305, 358, 297, 20, 0, 0, 0, 304, + 67, 405, 279, 19, 298, 357, 305, 358, 299, 20, + 0, 304, 66, 405, 279, 19, 20, 0, 304, 67, + 405, 279, 19, 20, 0, 0, 0, 304, 66, 279, + 19, 300, 357, 305, 358, 301, 20, 0, 0, 0, + 304, 67, 279, 19, 302, 357, 305, 358, 303, 20, + 0, 304, 66, 279, 19, 20, 0, 304, 67, 279, + 19, 20, 0, 304, 66, 405, 304, 0, 304, 67, + 405, 304, 0, 0, 306, 0, 198, 0, 305, 306, + 0, 291, 304, 307, 279, 18, 0, 291, 279, 18, + 0, 308, 304, 0, 307, 21, 308, 304, 0, 314, + 0, 22, 270, 0, 314, 22, 270, 0, 304, 68, + 19, 311, 20, 279, 0, 0, 304, 68, 405, 19, + 310, 311, 20, 279, 0, 304, 68, 405, 279, 0, + 312, 0, 311, 21, 312, 0, 311, 21, 0, 405, + 0, 405, 23, 279, 270, 0, 189, 0, 328, 0, + 318, 179, 0, 318, 313, 0, 189, 0, 318, 189, + 0, 321, 0, 304, 319, 0, 107, 0, 108, 0, + 316, 0, 317, 316, 0, 34, 0, 34, 317, 0, + 34, 318, 0, 34, 317, 318, 0, 320, 0, 320, + 21, 5, 0, 405, 0, 320, 21, 405, 0, 5, + 0, 322, 0, 322, 21, 5, 0, 0, 323, 325, + 0, 0, 322, 21, 324, 325, 0, 279, 291, 313, + 279, 0, 405, 0, 290, 0, 290, 327, 0, 318, + 0, 329, 0, 318, 329, 0, 0, 329, 0, 279, + 24, 304, 327, 25, 0, 26, 27, 0, 26, 270, + 27, 0, 329, 26, 27, 0, 329, 26, 270, 27, + 0, 279, 24, 25, 0, 279, 24, 321, 25, 0, + 329, 279, 24, 25, 0, 329, 279, 24, 321, 25, + 0, 346, 0, 347, 0, 350, 0, 353, 0, 366, + 0, 369, 0, 400, 0, 374, 0, 402, 0, 333, + 0, 331, 0, 340, 0, 333, 340, 0, 373, 333, + 0, 399, 345, 11, 24, 268, 25, 18, 0, 399, + 345, 11, 24, 268, 25, 0, 335, 340, 0, 0, + 0, 13, 24, 269, 18, 269, 18, 336, 269, 337, + 25, 0, 0, 177, 355, 24, 339, 377, 25, 0, + 178, 0, 346, 0, 347, 0, 350, 0, 342, 364, + 0, 342, 0, 343, 0, 366, 0, 341, 0, 334, + 0, 338, 0, 402, 0, 24, 340, 25, 0, 1, + 0, 368, 340, 0, 355, 19, 0, 359, 20, 0, + 345, 0, 363, 0, 346, 0, 347, 0, 350, 0, + 354, 0, 367, 0, 369, 0, 374, 0, 401, 0, + 24, 345, 25, 0, 402, 0, 1, 0, 405, 22, + 330, 0, 106, 330, 0, 0, 6, 270, 348, 22, + 330, 0, 0, 97, 6, 270, 349, 22, 330, 0, + 0, 7, 351, 22, 330, 0, 0, 97, 7, 352, + 22, 330, 0, 24, 353, 25, 0, 355, 361, 0, + 355, 362, 356, 0, 0, 0, 0, 0, 0, 20, + 0, 106, 20, 0, 365, 20, 0, 365, 106, 20, + 0, 364, 20, 0, 364, 106, 20, 0, 364, 365, + 20, 0, 364, 365, 106, 20, 0, 19, 360, 0, + 19, 20, 0, 19, 363, 20, 0, 19, 364, 20, + 0, 19, 364, 365, 20, 0, 345, 0, 363, 345, + 0, 271, 0, 364, 271, 0, 330, 0, 365, 330, + 0, 18, 0, 268, 18, 0, 18, 0, 268, 18, + 0, 268, 0, 8, 24, 268, 25, 0, 368, 330, + 0, 0, 368, 330, 9, 370, 330, 0, 0, 10, + 24, 268, 371, 25, 330, 0, 11, 24, 268, 25, + 0, 11, 24, 268, 25, 0, 0, 0, 177, 375, + 355, 24, 376, 377, 25, 353, 398, 356, 0, 379, + 0, 0, 377, 378, 21, 379, 0, 397, 0, 404, + 0, 180, 0, 175, 0, 176, 0, 24, 268, 25, + 0, 380, 0, 244, 26, 268, 27, 0, 244, 24, + 25, 0, 244, 24, 245, 25, 0, 69, 24, 267, + 21, 326, 25, 0, 244, 304, 28, 405, 279, 0, + 244, 304, 43, 405, 279, 0, 244, 46, 0, 244, + 47, 0, 381, 0, 46, 246, 0, 47, 246, 0, + 29, 251, 0, 34, 251, 0, 33, 251, 0, 32, + 251, 0, 31, 251, 0, 30, 251, 0, 248, 0, + 382, 0, 24, 326, 25, 251, 0, 383, 0, 252, + 34, 251, 0, 252, 35, 251, 0, 252, 36, 251, + 0, 384, 0, 253, 33, 252, 0, 253, 32, 252, + 0, 385, 0, 254, 48, 253, 0, 254, 49, 253, + 0, 386, 0, 255, 37, 254, 0, 255, 38, 254, + 0, 255, 50, 254, 0, 255, 51, 254, 0, 387, + 0, 256, 52, 255, 0, 256, 53, 255, 0, 388, + 0, 257, 29, 256, 0, 389, 0, 258, 39, 257, + 0, 390, 0, 259, 40, 258, 0, 391, 0, 260, + 54, 259, 0, 392, 0, 262, 55, 260, 0, 393, + 0, 0, 0, 262, 41, 395, 268, 22, 396, 264, + 0, 394, 0, 246, 23, 267, 0, 246, 56, 267, + 0, 246, 57, 267, 0, 246, 58, 267, 0, 246, + 59, 267, 0, 246, 60, 267, 0, 246, 61, 267, + 0, 246, 62, 267, 0, 246, 63, 267, 0, 246, + 64, 267, 0, 246, 65, 267, 0, 178, 0, 0, + 12, 0, 372, 330, 0, 399, 330, 11, 24, 268, + 25, 18, 0, 335, 330, 0, 372, 345, 0, 399, + 345, 11, 24, 268, 25, 18, 0, 399, 345, 11, + 24, 268, 25, 0, 335, 345, 0, 14, 405, 18, + 0, 15, 18, 0, 96, 15, 18, 0, 16, 18, + 0, 92, 16, 18, 0, 93, 16, 18, 0, 94, + 16, 18, 0, 95, 16, 18, 0, 17, 18, 0, + 17, 268, 18, 0, 0, 18, 0, 174, 0, 175, + 0, 177, 0, 178, 0, 174, 0, 179, 0, 180, + 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 232, 233, 236, 237, 240, 241, 242, 243, 244, 245, - 246, 249, 251, 255, 255, 260, 266, 270, 271, 275, - 276, 278, 280, 296, 300, 307, 311, 317, 318, 320, - 322, 338, 342, 349, 353, 359, 361, 361, 365, 366, - 367, 368, 371, 374, 375, 378, 379, 382, 383, 386, - 387, 390, 391, 394, 395, 398, 401, 402, 405, 406, - 407, 408, 409, 412, 413, 416, 416, 419, 419, 422, - 426, 427, 430, 430, 433, 433, 436, 440, 441, 444, - 445, 448, 454, 461, 467, 474, 475, 476, 477, 478, - 481, 484, 487, 488, 491, 492, 493, 494, 495, 496, - 497, 498, 501, 507, 514, 520, 529, 535, 539, 541, - 545, 548, 555, 563, 564, 567, 568, 571, 572, 573, - 574, 575, 576, 577, 578, 582, 583, 587, 588, 591, - 593, 595, 596, 597, 598, 599, 601, 605, 609, 621, - 622, 623, 624, 625, 626, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 640, 641, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 657, 658, 661, - 665, 666, 669, 670, 671, 672, 675, 676, 680, 681, - 682, 683, 686, 687, 688, 691, 692, 693, 696, 697, - 698, 699, 700, 703, 704, 705, 708, 709, 712, 713, - 717, 718, 721, 722, 727, 733, 734, 740, 746, 747, - 747, 749, 752, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 766, 767, 770, 771, 774, 779, - 780, 781, 784, 797, 801, 802, 805, 810, 811, 811, - 816, 817, 818, 819, 822, 825, 828, 831, 832, 835, - 836, 839, 840, 841, 845, 847, 856, 857, 858, 859, - 860, 863, 864, 865, 866, 867, 868, 869, 870, 871, - 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, - 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, - 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, - 902, 903, 904, 905, 906, 907, 910, 911, 912, 913, - 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, - 926, 927, 928, 929, 932, 936, 937, 941, 942, 946, - 947, 948, 951, 952, 955, 957, 959, 960, 962, 964, - 965, 967, 969, 971, 973, 974, 976, 978, 979, 981, - 983, 984, 987, 990, 991, 992, 995, 997, 1001, 1003, - 1007, 1008, 1009, 1013, 1015, 1015, 1017, 1020, 1022, 1024, - 1027, 1032, 1039, 1040, 1041, 1048, 1052, 1053, 1057, 1058, - 1061, 1062, 1065, 1066, 1069, 1070, 1071, 1072, 1075, 1076, - 1079, 1080, 1083, 1084, 1085, 1088, 1088, 1089, 1090, 1093, - 1105, 1121, 1122, 1125, 1126, 1127, 1130, 1131, 1134, 1136, - 1137, 1138, 1139, 1140, 1142, 1144, 1146, 1152, 1153, 1154, - 1155, 1156, 1157, 1158, 1159, 1160, 1163, 1166, 1169, 1170, - 1174, 1176, 1178, 1180, 1184, 1185, 1187, 1191, 1193, 1195, - 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, - 1208, 1209, 1210, 1213, 1219, 1222, 1225, 1226, 1229, 1230, - 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1242, - 1243, 1249, 1250, 1251, 1252, 1255, 1256, 1257, 1258, 1261, - 1262, 1266, 1269, 1272, 1275, 1278, 1281, 1284, 1285, 1286, - 1287, 1289, 1290, 1292, 1294, 1301, 1305, 1307, 1309, 1311, - 1315, 1316, 1319, 1320, 1323, 1324, 1327, 1328, 1331, 1332, - 1333, 1336, 1344, 1349, 1350, 1354, 1355, 1358, 1363, 1366, - 1367, 1368, 1376, 1377, 1377, 1381, 1382, 1383, 1394, 1401, - 1402, 1405, 1406, 1407, 1408, 1409, 1411, 1412, 1413, 1414, - 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, - 1429, 1430, 1433, 1434, 1435, 1436, 1439, 1440, 1441, 1444, - 1445, 1446, 1449, 1450, 1451, 1452, 1453, 1456, 1457, 1458, - 1461, 1462, 1465, 1466, 1470, 1471, 1474, 1475, 1478, 1479, - 1482, 1483, 1484, 1485, 1488, 1489, 1490, 1491, 1492, 1493, - 1494, 1495, 1496, 1497, 1498, 1499, 1502, 1503, 1506, 1509, - 1511, 1513, 1517, 1518, 1520, 1522, 1525, 1526, 1527, 1529, - 1530, 1531, 1532, 1533, 1534, 1535, 1538, 1539, 1542, 1545, - 1546, 1547, 1548, 1549, 1552, 1553 + 215, 216, 219, 220, 223, 224, 225, 226, 227, 228, + 229, 232, 234, 238, 238, 243, 249, 253, 254, 258, + 259, 261, 263, 279, 283, 290, 294, 300, 301, 303, + 305, 321, 325, 332, 336, 342, 344, 344, 348, 349, + 350, 351, 354, 357, 358, 361, 362, 365, 366, 369, + 370, 373, 374, 377, 378, 381, 384, 385, 388, 389, + 390, 391, 392, 395, 396, 399, 399, 402, 402, 405, + 409, 410, 413, 413, 416, 416, 419, 423, 424, 427, + 428, 431, 437, 444, 450, 457, 458, 459, 460, 461, + 464, 467, 470, 471, 474, 475, 476, 477, 478, 479, + 480, 481, 484, 490, 497, 503, 512, 518, 522, 524, + 528, 531, 538, 546, 547, 550, 551, 554, 555, 556, + 557, 558, 559, 560, 561, 565, 566, 570, 571, 574, + 576, 578, 579, 580, 581, 582, 584, 588, 592, 604, + 605, 606, 607, 608, 609, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 623, 624, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 640, 644, 645, + 648, 649, 652, 653, 657, 658, 659, 660, 663, 664, + 665, 668, 669, 670, 673, 674, 675, 676, 677, 680, + 681, 682, 685, 686, 689, 690, 694, 695, 698, 699, + 704, 710, 711, 717, 723, 724, 724, 726, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, + 743, 744, 747, 748, 751, 756, 757, 758, 761, 774, + 778, 779, 782, 787, 788, 788, 793, 794, 795, 796, + 799, 802, 805, 808, 809, 812, 813, 816, 817, 818, + 822, 824, 833, 834, 835, 836, 837, 840, 841, 842, + 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, + 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, + 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, + 883, 884, 887, 888, 889, 890, 893, 894, 895, 896, + 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, + 909, 913, 914, 918, 919, 923, 924, 925, 928, 929, + 932, 934, 936, 937, 939, 941, 942, 944, 946, 948, + 950, 951, 953, 955, 956, 958, 960, 961, 964, 967, + 968, 969, 972, 974, 978, 980, 984, 985, 986, 989, + 991, 991, 993, 996, 998, 1000, 1003, 1008, 1015, 1016, + 1017, 1024, 1028, 1029, 1033, 1034, 1037, 1038, 1041, 1042, + 1045, 1046, 1047, 1048, 1051, 1052, 1055, 1056, 1059, 1060, + 1061, 1064, 1064, 1065, 1066, 1069, 1081, 1097, 1098, 1101, + 1102, 1103, 1106, 1107, 1110, 1112, 1113, 1114, 1115, 1116, + 1118, 1120, 1122, 1128, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1139, 1142, 1145, 1146, 1150, 1152, 1154, 1156, + 1160, 1161, 1163, 1167, 1169, 1171, 1174, 1175, 1176, 1177, + 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1189, + 1195, 1198, 1201, 1202, 1205, 1206, 1207, 1208, 1209, 1210, + 1211, 1212, 1213, 1214, 1215, 1218, 1219, 1225, 1226, 1227, + 1228, 1231, 1232, 1233, 1234, 1237, 1238, 1242, 1245, 1248, + 1251, 1254, 1257, 1260, 1261, 1262, 1263, 1265, 1266, 1268, + 1270, 1277, 1281, 1283, 1285, 1287, 1291, 1292, 1295, 1296, + 1299, 1300, 1303, 1304, 1307, 1308, 1309, 1312, 1320, 1325, + 1326, 1330, 1331, 1334, 1339, 1342, 1343, 1344, 1352, 1353, + 1353, 1357, 1358, 1359, 1370, 1377, 1378, 1381, 1382, 1383, + 1384, 1385, 1387, 1388, 1389, 1390, 1393, 1394, 1395, 1396, + 1397, 1398, 1399, 1400, 1401, 1402, 1405, 1406, 1409, 1410, + 1411, 1412, 1415, 1416, 1417, 1420, 1421, 1422, 1425, 1426, + 1427, 1428, 1429, 1432, 1433, 1434, 1437, 1438, 1441, 1442, + 1446, 1447, 1450, 1451, 1454, 1455, 1458, 1459, 1460, 1461, + 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, + 1474, 1475, 1478, 1479, 1482, 1485, 1487, 1489, 1493, 1494, + 1496, 1498, 1501, 1502, 1503, 1505, 1506, 1507, 1508, 1509, + 1510, 1511, 1514, 1515, 1518, 1521, 1522, 1523, 1524, 1527, + 1528 }; #endif @@ -725,41 +707,40 @@ static const char * const yytname[] = { "$","error","$undefined.","BADTOK", "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA", "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND", "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC", -"TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP", -"DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP", -"MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN", -"RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM", -"VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER", -"QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE", -"QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO", -"QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH", -"QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE", -"QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE", -"QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN", -"QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED", -"QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED", -"QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT", -"QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT", -"QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE", -"QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF", -"QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE", -"QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","IDENTIFIER","NEW_IDENTIFIER", -"TYPE_NAME_OR_ID","CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file", -"externalDefs","externalDef","constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl", -"namedDeclBase","@2","@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7", -"macroDef","fcnDefHdr","optGlobMods","@8","optPlainGlobMods","@9","optGlobModsRest", -"optPlainGlobModsRest","specialClauses","globIdList","globIdListExpr","globId", -"globQual","optGlobQuals","optGlobModsAux","@10","@11","optPlainGlobModsAux", -"@12","@13","optMods","fcnMods","@14","fcnPlainMods","@15","specialTag","endStateTag", -"endSpecialTag","stateSpecialClause","specialClauseType","specialClause","@16", -"@17","fcnDefHdrAux","fcnBody","@18","@19","fcnDef","locModifies","locPlainModifies", -"modListExpr","mExpr","modList","specClauseListExpr","specClauseList","primaryExpr", -"postfixExpr","argumentExprList","unaryExpr","fieldDesignator","offsetofExpr", -"sizeofExpr","@20","sizeofExprAux","castExpr","timesExpr","plusExpr","shiftExpr", -"relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr","andExpr", -"@21","orExpr","@22","conditionalExpr","@23","@24","assignExpr","expr","optExpr", -"constantExpr","initializer","instanceDecl","@25","@26","namedInitializer","@27", -"typeDecl","@28","IsType","PushType","namedInitializerList","namedInitializerListAux", +"TBAR","TQUEST","CSIZEOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP","DEC_OP", +"LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP","MUL_ASSIGN", +"DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN","RIGHT_ASSIGN", +"AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM","VA_ARG","VA_DCL", +"QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER","QDEFINES", +"QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE","QALT","QUNDEF", +"QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO","QSWITCHBREAK", +"QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH","QLINTNOTREACHED", +"QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE","QLINTPRINTFLIKE", +"QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE","QINLINE","QEXTENSION", +"QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN","QYIELD","QONLY","QTEMP", +"QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED","QCHECKEDSTRICT","QCHECKMOD", +"QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED","QDEPENDENT","QRETURNED","QEXPOSED", +"QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT","QNEVEREXIT","QTRUEEXIT","QFALSEEXIT", +"QLONG","QSIGNED","QUNSIGNED","QSHORT","QUNUSED","QSEF","QNOTNULL","QRELNULL", +"QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE","QTRUENULL","QFALSENULL","QEXTERNAL", +"QREFCOUNTED","QREFS","QNEWREF","QTEMPREF","QKILLREF","QRELDEF","CGCHAR","CBOOL", +"CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE","QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE", +"QSIGNEDINTEGRALTYPE","IDENTIFIER","NEW_IDENTIFIER","CCONSTANT","ITER_NAME", +"ITER_ENDNAME","TYPE_NAME","TYPE_NAME_OR_ID","file","externalDefs","externalDef", +"constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2", +"@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr", +"optGlobMods","@8","optPlainGlobMods","@9","optGlobModsRest","optPlainGlobModsRest", +"specialClauses","globIdList","globIdListExpr","globId","globQual","optGlobQuals", +"optGlobModsAux","@10","@11","optPlainGlobModsAux","@12","@13","optMods","fcnMods", +"@14","fcnPlainMods","@15","specialTag","endStateTag","endSpecialTag","stateSpecialClause", +"specialClauseType","specialClause","@16","@17","fcnDefHdrAux","fcnBody","@18", +"@19","fcnDef","locModifies","locPlainModifies","modListExpr","mExpr","modList", +"specClauseListExpr","specClauseList","primaryExpr","postfixExpr","argumentExprList", +"unaryExpr","offsetofExpr","sizeofExpr","@20","sizeofExprAux","castExpr","timesExpr", +"plusExpr","shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr", +"bitorExpr","andExpr","@21","orExpr","@22","conditionalExpr","@23","@24","assignExpr", +"expr","optExpr","constantExpr","initializer","instanceDecl","@25","@26","namedInitializer", +"@27","typeDecl","@28","IsType","PushType","namedInitializerList","namedInitializerListAux", "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier", "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux", "optCompleteType","suSpc","@29","@30","@31","@32","@33","@34","@35","@36","NotType", @@ -784,69 +765,69 @@ static const char * const yytname[] = { "$","error","$undefined.","BADTOK", #endif static const short yyr1[] = { 0, - 182, 182, 183, 183, 184, 184, 184, 184, 184, 184, - 184, 185, 185, 187, 186, 188, 188, 189, 189, 190, - 190, 190, 190, 191, 190, 192, 190, 193, 193, 193, - 193, 194, 193, 195, 193, 197, 198, 196, 199, 199, - 199, 199, 200, 202, 201, 204, 203, 205, 205, 206, - 206, 207, 207, 208, 208, 209, 210, 210, 211, 211, - 211, 211, 211, 212, 212, 214, 213, 215, 213, 213, - 213, 213, 217, 216, 218, 216, 216, 216, 216, 219, - 219, 221, 220, 223, 222, 224, 224, 224, 224, 224, - 225, 226, 227, 227, 228, 228, 228, 228, 228, 228, - 228, 228, 230, 229, 231, 229, 232, 232, 234, 233, - 235, 233, 236, 237, 237, 238, 238, 239, 239, 239, - 239, 239, 239, 239, 239, 240, 240, 241, 241, 242, - 242, 242, 242, 242, 242, 242, 242, 243, 243, 244, - 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 246, 246, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 248, 248, 249, - 251, 250, 252, 252, 252, 252, 253, 253, 254, 254, - 254, 254, 255, 255, 255, 256, 256, 256, 257, 257, - 257, 257, 257, 258, 258, 258, 259, 259, 260, 260, - 261, 261, 262, 263, 262, 264, 265, 264, 266, 267, - 268, 266, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 270, 270, 271, 271, 272, 273, - 273, 273, 274, 275, 274, 276, 274, 277, 278, 277, - 280, 279, 279, 279, 281, 282, 283, 284, 284, 285, - 285, 286, 286, 286, 287, 287, 288, 288, 288, 288, - 288, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + 181, 181, 182, 182, 183, 183, 183, 183, 183, 183, + 183, 184, 184, 186, 185, 187, 187, 188, 188, 189, + 189, 189, 189, 190, 189, 191, 189, 192, 192, 192, + 192, 193, 192, 194, 192, 196, 197, 195, 198, 198, + 198, 198, 199, 201, 200, 203, 202, 204, 204, 205, + 205, 206, 206, 207, 207, 208, 209, 209, 210, 210, + 210, 210, 210, 211, 211, 213, 212, 214, 212, 212, + 212, 212, 216, 215, 217, 215, 215, 215, 215, 218, + 218, 220, 219, 222, 221, 223, 223, 223, 223, 223, + 224, 225, 226, 226, 227, 227, 227, 227, 227, 227, + 227, 227, 229, 228, 230, 228, 231, 231, 233, 232, + 234, 232, 235, 236, 236, 237, 237, 238, 238, 238, + 238, 238, 238, 238, 238, 239, 239, 240, 240, 241, + 241, 241, 241, 241, 241, 241, 241, 242, 242, 243, + 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 245, 245, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 247, 249, 248, + 250, 250, 251, 251, 252, 252, 252, 252, 253, 253, + 253, 254, 254, 254, 255, 255, 255, 255, 255, 256, + 256, 256, 257, 257, 258, 258, 259, 259, 260, 261, + 260, 262, 263, 262, 264, 265, 266, 264, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 268, 268, 269, 269, 270, 271, 271, 271, 272, 273, + 272, 274, 272, 275, 276, 275, 278, 277, 277, 277, + 279, 280, 281, 282, 282, 283, 283, 284, 284, 284, + 285, 285, 286, 286, 286, 286, 286, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 288, 288, 288, 288, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 290, 290, 290, 290, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 292, 293, 293, 294, 294, 295, - 295, 295, 296, 296, 298, 299, 297, 300, 301, 297, - 297, 297, 302, 303, 297, 304, 305, 297, 297, 297, - 297, 297, 306, 307, 307, 307, 308, 308, 309, 309, - 310, 310, 310, 311, 312, 311, 311, 313, 313, 313, - 314, 314, 315, 315, 315, 315, 316, 316, 317, 317, - 318, 318, 319, 319, 320, 320, 320, 320, 321, 321, - 322, 322, 323, 323, 323, 325, 324, 326, 324, 327, - 327, 328, 328, 329, 329, 329, 330, 330, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 333, 334, 335, 335, - 336, 336, 336, 336, 338, 339, 337, 341, 340, 340, - 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, - 342, 342, 342, 343, 344, 345, 346, 346, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 348, - 348, 350, 349, 351, 349, 353, 352, 354, 352, 355, - 355, 356, 357, 358, 359, 360, 361, 362, 362, 362, - 362, 362, 362, 362, 362, 363, 364, 364, 364, 364, - 365, 365, 366, 366, 367, 367, 368, 368, 369, 369, - 369, 370, 371, 372, 371, 373, 371, 374, 375, 377, - 378, 376, 379, 380, 379, 381, 381, 381, 381, 382, - 382, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, - 385, 385, 386, 386, 386, 386, 387, 387, 387, 388, - 388, 388, 389, 389, 389, 389, 389, 390, 390, 390, - 391, 391, 392, 392, 393, 393, 394, 394, 395, 395, - 396, 397, 398, 396, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 400, 400, 401, 402, - 402, 402, 403, 403, 403, 403, 404, 404, 404, 404, - 404, 404, 404, 404, 404, 404, 405, 405, 406, 407, - 407, 407, 407, 407, 408, 408 + 290, 291, 291, 292, 292, 293, 293, 293, 294, 294, + 296, 297, 295, 298, 299, 295, 295, 295, 300, 301, + 295, 302, 303, 295, 295, 295, 295, 295, 304, 305, + 305, 305, 306, 306, 307, 307, 308, 308, 308, 309, + 310, 309, 309, 311, 311, 311, 312, 312, 313, 313, + 313, 313, 314, 314, 315, 315, 316, 316, 317, 317, + 318, 318, 318, 318, 319, 319, 320, 320, 321, 321, + 321, 323, 322, 324, 322, 325, 325, 326, 326, 327, + 327, 327, 328, 328, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 331, 332, 333, 333, 334, 334, 334, 334, + 336, 337, 335, 339, 338, 338, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 341, + 342, 343, 344, 344, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 346, 346, 348, 347, 349, + 347, 351, 350, 352, 350, 353, 353, 354, 355, 356, + 357, 358, 359, 360, 360, 360, 360, 360, 360, 360, + 360, 361, 362, 362, 362, 362, 363, 363, 364, 364, + 365, 365, 366, 366, 367, 367, 367, 368, 369, 370, + 369, 371, 369, 372, 373, 375, 376, 374, 377, 378, + 377, 379, 379, 379, 379, 380, 380, 381, 381, 381, + 381, 381, 381, 381, 381, 381, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 383, 383, 384, 384, + 384, 384, 385, 385, 385, 386, 386, 386, 387, 387, + 387, 387, 387, 388, 388, 388, 389, 389, 390, 390, + 391, 391, 392, 392, 393, 393, 394, 395, 396, 394, + 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, + 397, 397, 398, 398, 399, 400, 400, 400, 401, 401, + 401, 401, 402, 402, 402, 402, 402, 402, 402, 402, + 402, 402, 403, 403, 404, 405, 405, 405, 405, 406, + 406 }; static const short yyr2[] = { 0, @@ -866,1644 +847,1614 @@ static const short yyr2[] = { 0, 1, 3, 4, 2, 3, 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1, 4, 3, 4, 6, 5, 5, 2, 2, 1, 3, 1, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 1, 3, 1, 9, - 0, 3, 4, 2, 4, 2, 1, 4, 1, 3, - 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, - 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, - 1, 3, 1, 0, 4, 1, 0, 4, 1, 0, - 0, 7, 1, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 1, 3, 0, 1, 1, 1, - 1, 1, 3, 0, 9, 0, 11, 2, 0, 6, - 0, 7, 4, 4, 0, 0, 2, 1, 4, 0, - 4, 1, 3, 4, 1, 3, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 9, 0, 3, + 4, 2, 1, 4, 1, 3, 3, 3, 1, 3, + 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, + 3, 3, 1, 3, 1, 3, 1, 3, 1, 0, + 4, 1, 0, 4, 1, 0, 0, 7, 1, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 3, 0, 1, 1, 1, 1, 1, 3, 0, + 9, 0, 11, 2, 0, 6, 0, 7, 4, 4, + 0, 0, 2, 1, 4, 0, 4, 1, 3, 4, + 1, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 1, 4, 1, 3, 2, - 2, 2, 0, 1, 0, 0, 11, 0, 0, 11, - 6, 6, 0, 0, 10, 0, 0, 10, 5, 5, - 4, 4, 0, 1, 1, 2, 5, 3, 2, 4, - 1, 3, 4, 6, 0, 8, 4, 1, 3, 2, - 1, 4, 1, 1, 2, 2, 1, 2, 1, 2, - 1, 1, 1, 2, 1, 2, 2, 3, 1, 3, - 1, 3, 1, 1, 3, 0, 2, 0, 4, 4, - 1, 1, 2, 1, 1, 2, 0, 1, 5, 2, - 3, 3, 4, 3, 4, 4, 5, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 7, 6, 2, 0, 0, 10, 0, 6, 1, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 2, 2, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 1, 2, - 2, 0, 4, 0, 5, 0, 3, 0, 4, 3, - 2, 3, 0, 0, 0, 0, 0, 1, 2, 2, - 3, 2, 3, 3, 4, 2, 2, 3, 3, 4, - 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, - 1, 4, 2, 0, 5, 0, 6, 4, 4, 0, - 0, 10, 1, 0, 4, 1, 1, 1, 1, 1, - 3, 1, 4, 3, 4, 6, 5, 5, 2, 2, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, - 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 0, 0, 7, 1, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 1, 0, 1, 2, - 7, 2, 2, 7, 6, 2, 3, 2, 3, 2, - 3, 3, 3, 3, 2, 3, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1 + 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 1, 4, 1, 3, 2, 2, 2, 0, 1, + 0, 0, 11, 0, 0, 11, 6, 6, 0, 0, + 10, 0, 0, 10, 5, 5, 4, 4, 0, 1, + 1, 2, 5, 3, 2, 4, 1, 2, 3, 6, + 0, 8, 4, 1, 3, 2, 1, 4, 1, 1, + 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, + 1, 2, 2, 3, 1, 3, 1, 3, 1, 1, + 3, 0, 2, 0, 4, 4, 1, 1, 2, 1, + 1, 2, 0, 1, 5, 2, 3, 3, 4, 3, + 4, 4, 5, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 7, 6, 2, + 0, 0, 10, 0, 6, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, + 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 1, 3, 2, 0, 5, 0, + 6, 0, 4, 0, 5, 3, 2, 3, 0, 0, + 0, 0, 0, 1, 2, 2, 3, 2, 3, 3, + 4, 2, 2, 3, 3, 4, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 4, 2, 0, + 5, 0, 6, 4, 4, 0, 0, 10, 1, 0, + 4, 1, 1, 1, 1, 1, 3, 1, 4, 3, + 4, 6, 5, 5, 2, 2, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 4, 1, 3, + 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, + 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, + 1, 3, 1, 3, 1, 3, 1, 0, 0, 7, + 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 1, 0, 1, 2, 7, 2, 2, 7, + 6, 2, 3, 2, 3, 2, 3, 3, 3, 3, + 2, 3, 0, 1, 1, 1, 1, 1, 1, 1, + 1 }; static const short yydefact[] = { 0, - 11, 385, 353, 231, 353, 14, 0, 0, 0, 0, - 245, 245, 258, 257, 259, 260, 261, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 308, 309, 310, 307, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 353, 353, 353, 353, 353, 353, - 353, 353, 353, 353, 619, 620, 624, 621, 622, 625, - 0, 3, 6, 7, 377, 8, 9, 353, 43, 617, - 10, 230, 232, 0, 333, 333, 353, 333, 353, 326, - 353, 0, 353, 107, 245, 623, 20, 353, 381, 382, - 383, 386, 387, 248, 245, 245, 241, 353, 626, 353, - 353, 624, 0, 469, 245, 476, 0, 0, 0, 599, - 0, 0, 0, 0, 245, 509, 0, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 0, 42, 0, 0, - 0, 0, 0, 0, 245, 145, 141, 144, 142, 520, - 146, 157, 177, 167, 166, 179, 183, 186, 189, 194, - 197, 199, 201, 203, 206, 209, 213, 225, 511, 171, - 0, 0, 501, 459, 460, 461, 462, 0, 0, 463, - 245, 464, 0, 465, 0, 466, 468, 140, 0, 453, - 0, 507, 0, 483, 440, 0, 0, 0, 449, 0, - 450, 429, 448, 445, 446, 441, 442, 443, 0, 0, - 447, 0, 0, 0, 451, 428, 0, 262, 263, 264, - 265, 270, 272, 271, 275, 276, 287, 289, 290, 288, - 273, 274, 266, 267, 268, 269, 284, 285, 282, 286, - 277, 278, 281, 279, 280, 293, 295, 300, 283, 296, - 297, 298, 299, 291, 292, 294, 301, 302, 305, 306, - 303, 304, 311, 313, 312, 314, 315, 316, 317, 318, - 319, 320, 4, 245, 0, 109, 113, 503, 353, 353, - 618, 5, 353, 334, 330, 331, 324, 332, 0, 245, - 245, 322, 245, 245, 0, 323, 378, 321, 384, 388, - 353, 0, 247, 353, 0, 238, 245, 617, 16, 18, - 0, 353, 245, 28, 396, 245, 141, 144, 177, 229, - 472, 140, 0, 245, 245, 245, 245, 0, 608, 610, - 615, 0, 0, 353, 402, 0, 0, 160, 165, 164, - 163, 162, 161, 0, 245, 158, 159, 245, 0, 0, - 0, 0, 0, 245, 478, 245, 471, 245, 418, 419, - 420, 421, 0, 422, 423, 245, 425, 245, 424, 426, - 483, 245, 245, 153, 154, 0, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 204, 210, 207, 510, 245, 0, 606, - 39, 0, 484, 502, 513, 603, 0, 470, 245, 0, - 0, 0, 508, 40, 430, 434, 444, 455, 456, 454, - 0, 0, 41, 22, 245, 396, 353, 245, 483, 504, - 245, 233, 108, 353, 0, 328, 0, 353, 0, 353, - 0, 245, 245, 244, 245, 243, 239, 353, 0, 245, - 0, 353, 245, 19, 393, 0, 0, 379, 394, 245, - 0, 0, 477, 0, 516, 0, 228, 0, 607, 616, - 143, 245, 245, 0, 404, 403, 405, 245, 467, 245, - 0, 611, 612, 613, 614, 609, 474, 0, 0, 602, - 353, 481, 600, 0, 0, 148, 0, 155, 0, 0, - 0, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 180, 181, 182, 185, 184, 187, 188, 190, - 191, 192, 193, 195, 196, 198, 200, 202, 245, 245, - 245, 226, 245, 245, 172, 497, 144, 501, 0, 353, - 482, 514, 0, 0, 452, 438, 0, 0, 24, 0, - 488, 245, 505, 110, 353, 245, 353, 483, 112, 245, - 234, 327, 245, 343, 0, 351, 346, 0, 352, 0, - 368, 371, 365, 367, 249, 245, 245, 617, 15, 30, - 245, 396, 245, 17, 380, 389, 391, 36, 398, 353, - 397, 401, 473, 512, 0, 518, 245, 325, 410, 0, - 396, 406, 245, 0, 178, 353, 245, 0, 479, 480, - 496, 0, 521, 245, 149, 147, 245, 245, 205, 0, - 208, 245, 174, 245, 176, 498, 499, 245, 245, 245, - 519, 245, 245, 353, 44, 26, 489, 492, 245, 245, - 490, 245, 506, 0, 236, 245, 329, 349, 485, 335, - 350, 485, 338, 245, 370, 245, 0, 0, 245, 245, - 245, 0, 32, 0, 245, 0, 46, 395, 245, 407, - 245, 0, 411, 414, 245, 0, 412, 0, 396, 0, - 0, 475, 245, 245, 156, 151, 152, 211, 0, 0, - 500, 515, 0, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 0, 141, 144, 142, 157, 177, 166, 183, - 186, 189, 194, 197, 199, 201, 203, 206, 0, 524, - 523, 532, 541, 551, 553, 557, 560, 563, 568, 571, - 573, 575, 577, 579, 581, 585, 526, 140, 0, 23, - 25, 72, 44, 493, 494, 245, 491, 21, 245, 250, - 353, 341, 485, 353, 342, 485, 364, 369, 245, 0, - 242, 245, 252, 240, 245, 0, 353, 46, 34, 0, - 390, 392, 37, 79, 399, 373, 0, 245, 407, 374, - 408, 517, 435, 0, 415, 413, 416, 0, 0, 150, - 0, 524, 245, 173, 175, 605, 0, 0, 160, 165, - 164, 163, 162, 161, 158, 159, 245, 245, 245, 153, - 154, 0, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 204, - 582, 207, 439, 0, 433, 66, 82, 70, 86, 87, - 88, 89, 90, 93, 94, 45, 72, 48, 71, 353, - 353, 52, 27, 495, 245, 0, 355, 353, 353, 354, - 353, 353, 353, 372, 245, 255, 0, 250, 12, 31, - 33, 46, 29, 617, 73, 84, 77, 47, 79, 50, - 78, 396, 400, 375, 376, 245, 409, 417, 0, 169, - 0, 483, 212, 604, 143, 245, 0, 148, 0, 0, - 0, 0, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 180, 181, 182, 185, 184, 187, 188, - 190, 191, 192, 193, 195, 196, 198, 200, 202, 578, - 245, 580, 245, 432, 353, 64, 617, 49, 103, 0, - 53, 250, 245, 353, 0, 245, 356, 344, 353, 347, - 353, 366, 253, 245, 617, 35, 0, 353, 64, 617, - 51, 245, 436, 245, 0, 601, 598, 178, 245, 149, - 147, 245, 245, 0, 525, 353, 59, 60, 61, 62, - 63, 617, 54, 64, 0, 0, 0, 119, 83, 128, - 617, 0, 118, 0, 95, 100, 99, 98, 97, 96, - 101, 102, 105, 0, 235, 245, 358, 245, 245, 353, - 361, 0, 336, 0, 339, 254, 256, 0, 38, 617, - 617, 85, 617, 117, 245, 0, 170, 168, 597, 484, - 0, 151, 152, 583, 0, 64, 0, 65, 58, 56, - 57, 0, 122, 0, 0, 0, 0, 0, 115, 0, - 0, 131, 138, 617, 130, 0, 245, 251, 245, 245, - 0, 359, 245, 345, 0, 348, 0, 13, 81, 81, - 116, 437, 522, 150, 245, 81, 55, 81, 123, 120, - 127, 126, 0, 124, 125, 129, 114, 0, 134, 0, - 0, 0, 0, 0, 617, 237, 362, 353, 357, 245, - 337, 340, 74, 80, 76, 584, 67, 69, 121, 135, - 132, 0, 136, 137, 139, 92, 245, 0, 360, 363, - 133, 104, 91, 245, 106, 0, 0, 0 + 11, 381, 349, 227, 349, 14, 0, 0, 0, 0, + 241, 241, 254, 253, 255, 256, 257, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 304, 305, 306, 303, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 619, 616, 617, 618, 620, 621, + 0, 3, 6, 7, 373, 8, 9, 349, 43, 613, + 10, 226, 228, 0, 329, 329, 349, 329, 349, 322, + 349, 0, 349, 107, 241, 20, 349, 377, 378, 379, + 382, 383, 244, 241, 241, 237, 349, 349, 349, 0, + 465, 241, 472, 0, 0, 0, 595, 0, 0, 0, + 0, 241, 505, 0, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 0, 42, 0, 0, 0, 0, 0, + 0, 241, 145, 615, 141, 142, 516, 144, 146, 157, + 173, 167, 166, 175, 179, 182, 185, 190, 193, 195, + 197, 199, 202, 205, 209, 221, 507, 169, 0, 0, + 497, 455, 456, 457, 458, 0, 0, 459, 241, 460, + 0, 461, 0, 462, 464, 140, 0, 449, 0, 503, + 0, 479, 436, 0, 0, 0, 445, 0, 446, 425, + 444, 441, 442, 437, 438, 439, 0, 0, 443, 0, + 0, 0, 447, 424, 0, 258, 259, 260, 261, 266, + 268, 267, 271, 272, 283, 285, 286, 284, 269, 270, + 262, 263, 264, 265, 280, 281, 278, 282, 273, 274, + 277, 275, 276, 289, 291, 296, 279, 292, 293, 294, + 295, 287, 288, 290, 297, 298, 301, 302, 299, 300, + 307, 309, 308, 310, 311, 312, 313, 314, 315, 316, + 4, 241, 0, 109, 113, 499, 349, 349, 614, 5, + 349, 330, 326, 327, 320, 328, 0, 241, 241, 318, + 241, 241, 0, 319, 374, 317, 380, 384, 349, 0, + 243, 349, 0, 234, 241, 613, 16, 18, 0, 349, + 241, 28, 392, 241, 615, 141, 173, 225, 468, 0, + 241, 241, 241, 223, 0, 604, 606, 611, 0, 0, + 349, 398, 0, 0, 160, 165, 164, 163, 162, 161, + 0, 241, 158, 159, 241, 0, 0, 0, 0, 0, + 241, 474, 241, 467, 241, 414, 415, 416, 417, 0, + 418, 419, 241, 421, 241, 420, 422, 479, 241, 241, + 153, 154, 0, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 200, 206, 203, 506, 241, 0, 602, 39, 0, 480, + 498, 509, 599, 0, 241, 241, 0, 0, 0, 504, + 40, 426, 430, 440, 451, 452, 450, 0, 0, 41, + 22, 241, 392, 349, 241, 479, 500, 241, 229, 108, + 349, 0, 324, 0, 349, 0, 349, 0, 241, 241, + 240, 241, 239, 235, 349, 0, 241, 0, 349, 241, + 19, 389, 0, 0, 375, 390, 241, 0, 0, 241, + 0, 512, 0, 224, 0, 603, 612, 143, 241, 241, + 0, 400, 399, 401, 241, 463, 241, 0, 607, 608, + 609, 610, 605, 470, 0, 0, 598, 349, 477, 596, + 0, 0, 148, 0, 155, 0, 0, 0, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 176, + 177, 178, 181, 180, 183, 184, 186, 187, 188, 189, + 191, 192, 194, 196, 198, 241, 241, 241, 222, 241, + 170, 493, 144, 497, 0, 349, 478, 510, 0, 466, + 0, 448, 434, 0, 0, 24, 0, 484, 241, 501, + 110, 349, 241, 349, 479, 112, 241, 230, 323, 241, + 339, 0, 347, 342, 0, 348, 0, 364, 367, 361, + 363, 245, 241, 241, 613, 15, 30, 241, 392, 241, + 17, 376, 385, 387, 36, 394, 349, 393, 397, 241, + 473, 508, 0, 514, 223, 321, 406, 0, 392, 402, + 241, 0, 174, 349, 241, 0, 241, 476, 492, 0, + 517, 241, 149, 147, 241, 241, 201, 0, 204, 241, + 172, 494, 495, 241, 241, 241, 515, 241, 241, 349, + 44, 26, 485, 488, 241, 241, 486, 241, 502, 0, + 232, 241, 325, 345, 481, 331, 346, 481, 334, 241, + 366, 241, 0, 0, 241, 241, 241, 0, 32, 0, + 241, 0, 46, 391, 241, 403, 469, 241, 0, 407, + 410, 241, 0, 408, 0, 392, 0, 0, 241, 475, + 241, 241, 156, 151, 152, 207, 0, 496, 511, 0, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 0, + 141, 142, 144, 157, 173, 166, 179, 182, 185, 190, + 193, 195, 197, 199, 202, 0, 520, 519, 528, 537, + 547, 549, 553, 556, 559, 564, 567, 569, 571, 573, + 575, 577, 581, 522, 140, 0, 23, 25, 72, 44, + 489, 490, 241, 487, 21, 241, 246, 349, 337, 481, + 349, 338, 481, 360, 365, 241, 0, 238, 241, 248, + 236, 241, 0, 349, 46, 34, 0, 386, 388, 37, + 79, 395, 369, 0, 241, 403, 370, 404, 513, 431, + 0, 411, 409, 412, 0, 0, 150, 471, 0, 520, + 241, 171, 601, 0, 0, 160, 165, 164, 163, 162, + 161, 158, 159, 241, 241, 241, 153, 154, 0, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 200, 578, 203, 435, + 0, 429, 66, 82, 70, 86, 87, 88, 89, 90, + 93, 94, 45, 72, 48, 71, 349, 349, 52, 27, + 491, 241, 0, 351, 349, 349, 350, 349, 349, 349, + 368, 241, 251, 0, 246, 12, 31, 33, 46, 29, + 613, 73, 84, 77, 47, 79, 50, 78, 392, 396, + 371, 372, 223, 405, 413, 0, 0, 479, 208, 600, + 143, 241, 0, 148, 0, 0, 0, 0, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 176, + 177, 178, 181, 180, 183, 184, 186, 187, 188, 189, + 191, 192, 194, 196, 198, 574, 241, 576, 241, 428, + 349, 64, 613, 49, 103, 0, 53, 246, 241, 349, + 0, 241, 352, 340, 349, 343, 349, 362, 249, 241, + 613, 35, 0, 349, 64, 613, 51, 241, 432, 241, + 597, 594, 174, 241, 149, 147, 241, 241, 0, 521, + 349, 59, 60, 61, 62, 63, 613, 54, 64, 0, + 0, 0, 119, 83, 128, 613, 0, 118, 0, 95, + 100, 99, 98, 97, 96, 101, 102, 105, 0, 231, + 241, 354, 241, 241, 349, 357, 0, 332, 0, 335, + 250, 252, 0, 38, 613, 613, 85, 613, 117, 241, + 0, 168, 593, 480, 0, 151, 152, 579, 0, 64, + 0, 65, 58, 56, 57, 0, 122, 0, 0, 0, + 0, 0, 115, 0, 0, 131, 138, 613, 130, 0, + 241, 247, 358, 241, 0, 355, 241, 341, 0, 344, + 0, 13, 81, 81, 116, 433, 518, 150, 241, 81, + 55, 81, 123, 120, 127, 126, 0, 124, 125, 129, + 114, 0, 134, 0, 0, 0, 0, 0, 613, 233, + 349, 353, 359, 333, 336, 74, 80, 76, 580, 67, + 69, 121, 135, 132, 0, 136, 137, 139, 92, 241, + 0, 356, 133, 104, 91, 241, 106, 0, 0, 0 }; -static const short yydefgoto[] = { 1156, - 81, 82, 83, 84, 121, 318, 319, 85, 655, 763, - 320, 788, 902, 86, 687, 904, 887, 88, 761, 762, - 793, 794, 876, 908, 877, 1012, 1013, 1070, 1014, 1015, - 878, 965, 966, 910, 988, 989, 1133, 1134, 967, 911, - 990, 880, 1154, 1147, 881, 1033, 882, 1024, 1086, 89, - 287, 447, 449, 90, 1019, 1052, 1020, 1113, 1021, 1083, - 1084, 161, 162, 517, 163, 919, 164, 165, 419, 555, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 549, 176, 551, 177, 550, 813, 178, 206, 488, 331, - 288, 92, 666, 769, 114, 597, 93, 314, 180, 285, - 115, 116, 886, 784, 897, 95, 96, 97, 98, 345, - 289, 455, 100, 295, 101, 773, 1095, 776, 1097, 669, - 1042, 672, 1044, 102, 889, 890, 1039, 1040, 103, 677, - 590, 591, 798, 118, 477, 111, 112, 105, 605, 606, - 478, 479, 480, 689, 611, 346, 804, 800, 497, 367, - 207, 227, 208, 209, 368, 916, 1056, 211, 652, 212, - 213, 214, 215, 182, 424, 369, 370, 482, 628, 371, - 333, 508, 372, 187, 373, 561, 771, 978, 220, 574, - 512, 423, 189, 575, 576, 374, 190, 191, 375, 649, - 615, 376, 223, 377, 381, 704, 740, 864, 741, 742, - 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, - 753, 754, 755, 756, 961, 1105, 757, 1060, 378, 379, - 196, 380, 292, 332, 199, 108 +static const short yydefgoto[] = { 1148, + 81, 82, 83, 84, 119, 316, 317, 85, 651, 760, + 318, 785, 899, 86, 683, 901, 884, 88, 758, 759, + 790, 791, 873, 905, 874, 1007, 1008, 1064, 1009, 1010, + 875, 961, 962, 907, 984, 985, 1126, 1127, 963, 908, + 986, 877, 1146, 1140, 878, 1028, 879, 1019, 1080, 89, + 285, 444, 446, 90, 1014, 1047, 1015, 1107, 1016, 1077, + 1078, 159, 160, 514, 161, 162, 163, 416, 551, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 546, + 174, 548, 175, 547, 811, 176, 204, 485, 329, 286, + 92, 662, 766, 113, 594, 93, 312, 178, 283, 114, + 115, 883, 781, 894, 95, 96, 97, 98, 342, 287, + 452, 100, 293, 101, 770, 1089, 773, 1091, 665, 1037, + 668, 1039, 102, 886, 887, 1034, 1035, 103, 673, 587, + 588, 795, 117, 474, 110, 111, 105, 602, 603, 475, + 476, 477, 685, 608, 343, 801, 797, 494, 364, 205, + 225, 206, 207, 365, 913, 1051, 209, 648, 210, 211, + 212, 213, 180, 421, 366, 367, 479, 626, 368, 330, + 505, 369, 185, 370, 557, 768, 974, 218, 571, 509, + 420, 187, 572, 573, 371, 188, 189, 372, 645, 613, + 373, 221, 374, 378, 702, 737, 861, 738, 739, 740, + 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 957, 1099, 754, 1054, 375, 376, 194, + 377, 290, 196, 197, 107 }; -static const short yypact[] = { 2004, --32768, 118, 5457,-32768, 6254,-32768, 781, 2949, 3313, 3313, +static const short yypact[] = { 1812, +-32768, 148, 5048,-32768, 6116,-32768, 432, 2708, 3070, 3070, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 1993,-32768,-32768,-32768, 236,-32768,-32768, 4898,-32768, 67, +-32768,-32768,-32768, 71, 5848, 5848,-32768, 5848, 89, 104, +-32768, 1025,-32768,-32768, 432,-32768,-32768,-32768,-32768,-32768, + 148,-32768,-32768, 178,-32768, 89,-32768,-32768, 5048, 183, +-32768, 5313,-32768, 221, 281, 290,-32768, 299, 432, 177, + 311, 755,-32768, 2348, 5313, 5313, 5313, 5313, 5313, 5313, +-32768, 5338, 5338, 362,-32768, 376, 388, 416, 422, 434, + 171, 4350,-32768, 436, 444,-32768, 464,-32768,-32768, 734, + 844,-32768,-32768,-32768, 1072, 197, 248, 637, 315, 472, + 470, 481, 483, 210,-32768,-32768, 132,-32768, 3112, 459, + 485,-32768,-32768,-32768,-32768, 525, 2750,-32768, 4350,-32768, + 3112,-32768, 3112,-32768,-32768,-32768, 539,-32768, 566,-32768, + 2528, 464, 562, 405, 517, 2889,-32768, 3070,-32768,-32768, +-32768, 5610,-32768,-32768,-32768,-32768, 597, 621,-32768, 3070, + 3070, 3112,-32768,-32768, 558,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 460,-32768,-32768,-32768, - 2186,-32768,-32768,-32768, 350,-32768,-32768, 5201,-32768, 123, --32768,-32768,-32768, 145, 6095, 6095,-32768, 6095, 176, 51, --32768, 557,-32768,-32768, 781,-32768,-32768,-32768,-32768,-32768, --32768, 118,-32768,-32768, 183,-32768, 176,-32768,-32768,-32768, - 5457,-32768, 208,-32768, 5072,-32768, 264, 271, 330,-32768, - 345, 781, 257, 366, 1104,-32768, 2544, 5072, 5072, 5072, - 5072, 5072, 5072,-32768, 5611, 5611, 382,-32768, 400, 429, - 436, 441, 451, 326, 4659,-32768, 483, 496,-32768, 501, --32768, 502, 884,-32768,-32768,-32768, 747, 601, 724, 650, - 807, 498, 459, 492, 485, 121,-32768,-32768, 313,-32768, - 3452, 477, 482,-32768,-32768,-32768,-32768, 533, 3088,-32768, - 4659,-32768, 3452,-32768, 3452,-32768,-32768, 569, 584,-32768, - 577,-32768, 2725, 501, 596, 338, 576, 3131,-32768, 3313, --32768,-32768,-32768, 5854,-32768,-32768,-32768,-32768, 656, 657, --32768, 3313, 3313, 3452,-32768,-32768, 592,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 629, 640,-32768,-32768,-32768, 89, 4743,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 665, 381,-32768,-32768, + 432, 432, 223,-32768, 236,-32768,-32768,-32768,-32768, 671, +-32768,-32768, 700, 701, 381, 67,-32768, 656, 703,-32768, + 432,-32768, 169, 5313,-32768,-32768,-32768,-32768,-32768, 712, + 5313, 5313, 5313, 5200, 719,-32768,-32768,-32768, 453, 506, + 5480, 491, 720, 726,-32768,-32768,-32768,-32768,-32768,-32768, + 735, 5313,-32768,-32768, 5313, 753, 786, 791, 794, 797, + 5313,-32768, 1381,-32768, 4350,-32768,-32768,-32768,-32768, 810, +-32768,-32768, 4350,-32768, 4350,-32768,-32768,-32768, 5219, 5313, +-32768,-32768, 112, 5313, 5313, 5313, 5313, 5313, 5313, 5313, + 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, + 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, +-32768,-32768,-32768,-32768, 5313, 776,-32768,-32768, 2168,-32768, +-32768, 831,-32768, 852, 4350, 5313, 603, 833, 853,-32768, +-32768,-32768,-32768, 5610,-32768,-32768,-32768, 1684, 861,-32768, +-32768, 5313, 253, 3249, 381, 862,-32768, 381,-32768, 530, + 6116, 808, 905, 908, 915, 917, 915, 432, 926, 381, +-32768, 381,-32768,-32768,-32768, 877, 919, 924,-32768, 381, + 656,-32768, 432, 946,-32768, 952, 432, 393, 954, 4350, + 642, 963, 648, 963, 968,-32768,-32768,-32768,-32768, 5244, + 967, 686,-32768, 691, 5313,-32768,-32768, 971,-32768,-32768, +-32768,-32768,-32768,-32768, 989, 976,-32768, 3249,-32768,-32768, + 1008, 1009,-32768, 670,-32768, 115, 432, 432,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 664, 673,-32768,-32768,-32768, 176, 5045, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 690, 559, --32768,-32768, 781, 781, 76,-32768, 350,-32768,-32768,-32768, --32768, 695,-32768,-32768, 697, 680, 559, 123,-32768, 373, - 693,-32768, 781,-32768, 91, 5072,-32768,-32768,-32768,-32768, --32768,-32768, 711, 5072, 5072, 5072, 1907, 735,-32768,-32768, --32768, 469, 443, 5724, 186, 718, 741,-32768,-32768,-32768, --32768,-32768,-32768, 737, 5072,-32768,-32768, 5072, 768, 770, - 777, 784, 802, 5072,-32768, 1933,-32768, 4659,-32768,-32768, --32768,-32768, 812,-32768,-32768, 4659,-32768, 4659,-32768,-32768, --32768, 3481, 5072,-32768,-32768, 106, 5072, 5072, 5072, 5072, - 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5072, 5072, 5072,-32768,-32768,-32768,-32768, 5072, 842,-32768, --32768, 2363,-32768,-32768, 828,-32768, 840,-32768, 5072, 629, - 814, 830,-32768,-32768,-32768,-32768, 5854,-32768,-32768,-32768, - 2906, 847,-32768,-32768, 5072, 97, 3554, 559, 851,-32768, - 559,-32768, 284, 6254, 778, 856, 868, 878, 886, 878, - 781, 900, 559,-32768, 559,-32768,-32768,-32768, 806, 905, - 929,-32768, 559, 373,-32768, 781, 912,-32768, 919, 781, - 98, 940,-32768, 446, 946, 512, 946, 951,-32768,-32768, --32768,-32768, 1472, 948, 404,-32768, 450, 5072,-32768,-32768, - 954,-32768,-32768,-32768,-32768,-32768,-32768, 955, 957,-32768, - 3554,-32768,-32768, 975, 969,-32768, 537,-32768, 371, 781, - 781,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 747, 747, 601, 601, 724, - 724, 724, 724, 650, 650, 807, 498, 459, 5072, 5072, - 5072,-32768, 5622, 5642,-32768,-32768, 5387,-32768, 3270, 3730, --32768,-32768, 974, 561,-32768,-32768, 977, 984,-32768, 989, --32768, 4082,-32768,-32768, 3906, 4125,-32768, 851,-32768,-32768, - 965,-32768,-32768, 1006, 1022,-32768, 1011, 1028,-32768, 882, --32768, 1000,-32768,-32768,-32768, 183,-32768, 137,-32768,-32768, - 5072, 171, 559,-32768,-32768, 1044,-32768,-32768, 1070, 6254, --32768,-32768,-32768,-32768, 1052,-32768, 1907,-32768,-32768, 1061, - 723, 450, 4217, 1056,-32768,-32768,-32768, 1067,-32768,-32768, --32768, 1071,-32768, 5072,-32768,-32768,-32768,-32768, 492, 888, - 485, 5072,-32768, 5072,-32768,-32768,-32768, 4260, 4659, 5072, --32768, 5653, 5072,-32768,-32768,-32768,-32768,-32768, 4303, 4438, --32768, 4481,-32768, 1069,-32768,-32768,-32768,-32768,-32768, 1076, --32768,-32768, 1077,-32768, 781,-32768, 781, 1087, 3366,-32768, --32768, 1081,-32768, 1084,-32768, 103,-32768,-32768, 781, 736, - 4659, 1092,-32768,-32768, 309, 1086,-32768, 1085, 126, 1093, - 1088,-32768, 5072, 5653,-32768,-32768,-32768,-32768, 1094, 1095, --32768,-32768, 563, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5611, 5611, 1097, 587, 631, 634, 761, 1125, 642, 783, - 963, 1003, 726, 1015, 1089, 1078, 1083, 1074, 201, 1099, +-32768,-32768, 1072, 1072, 197, 197, 248, 248, 248, 248, + 637, 637, 315, 472, 470, 5313, 5313, 5313,-32768, 5381, +-32768,-32768, 5956,-32768, 2931, 3424,-32768,-32768, 1012,-32768, + 727,-32768,-32768, 1028, 998,-32768, 1013,-32768, 3774,-32768, +-32768, 3599, 3816,-32768, 862,-32768,-32768, 1049,-32768,-32768, + 1035, 1052,-32768, 1062, 1064,-32768, 358,-32768, 1067,-32768, +-32768,-32768, 178,-32768, 327,-32768,-32768, 5313, 259, 381, +-32768,-32768, 1077,-32768,-32768, 1080, 6116,-32768,-32768, 4350, +-32768,-32768, 1079,-32768, 5200,-32768,-32768, 1070, 704, 691, + 5269, 1088,-32768,-32768,-32768, 1095, 4350,-32768,-32768, 1098, +-32768, 5313,-32768,-32768,-32768,-32768, 481, 451, 483, 5313, +-32768,-32768,-32768, 3952, 4350, 5313,-32768, 5406, 5313,-32768, +-32768,-32768,-32768,-32768, 3994, 4130,-32768, 4172,-32768, 1101, +-32768,-32768,-32768,-32768,-32768, 1081,-32768,-32768, 1082,-32768, + 432,-32768, 432, 1109, 4770,-32768,-32768, 1102,-32768, 1103, +-32768, 305,-32768,-32768, 432, 548,-32768, 4350, 1112,-32768, +-32768, 103, 1106,-32768, 1107, 107, 1114, 1108, 4350,-32768, + 5313, 5406,-32768,-32768,-32768,-32768, 1116,-32768,-32768, 740, + 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5338, 5338, 1119, + 747, 772, 778, 847, 1282, 806, 1075, 668, 799, 795, + 730, 1110, 1105, 1111, 1091, 275, 1125,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 684, 685,-32768, --32768, 1157,-32768,-32768,-32768, 4616,-32768,-32768,-32768,-32768, - 6184,-32768,-32768, 6184,-32768,-32768,-32768,-32768, 5072, 1051, --32768, 3366,-32768,-32768, 3366, 1037,-32768,-32768,-32768, 1105, --32768,-32768,-32768, 1306,-32768, 350, 1107,-32768, 692,-32768, - 450,-32768,-32768, 1114,-32768,-32768,-32768, 1115, 781,-32768, - 704, 1124, 5072,-32768,-32768, 1135, 719, 1130, 720, 725, - 779, 817, 819, 825, 831, 857, 5072, 4395, 5072, 875, - 913, 139, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, --32768, 5072,-32768, 1111, 1138, 72,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 987,-32768,-32768,-32768, --32768, 845,-32768,-32768, 3366, 478,-32768, 176, 5271,-32768, - 6184, 5271, 6184,-32768,-32768,-32768, 1053,-32768,-32768,-32768, --32768,-32768,-32768, 123, 138,-32768,-32768,-32768, 990,-32768, --32768, 636,-32768,-32768,-32768, 4916,-32768,-32768, 514,-32768, - 1139, 851,-32768,-32768, 938, 5072, 1140, 964, 966, 390, - 781, 781,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 985, 988, 991, 543, 983, 212, 456, - 354, 360, 393, 522, 398, 811, 132, 408, 260, 492, - 5072, 485, 5653,-32768, 5984, 62, 122,-32768,-32768, 833, --32768,-32768,-32768,-32768, 1141, 327,-32768,-32768, 5271,-32768, - 5271,-32768,-32768, 3227, 571,-32768, 1072, 5984, 62, 122, --32768, 617,-32768,-32768, 781,-32768, 992, 999,-32768, 1004, - 1007,-32768,-32768, 1062,-32768, 4889,-32768,-32768,-32768,-32768, --32768, 628,-32768, 62, 916, 60, 60,-32768,-32768, 266, - 665, 1079,-32768, 140,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 709,-32768, 559,-32768,-32768, 1143,-32768, - 1146, 1149,-32768, 1150,-32768,-32768,-32768, 1090,-32768, 4732, - 628,-32768, 665,-32768, 579, 1148,-32768,-32768,-32768,-32768, - 1151, 1012, 1023,-32768, 1091, 62, 1108,-32768,-32768,-32768, --32768, 117, 266, 381, 781, 781, 60, 1109,-32768, 140, - 140,-32768, 336, 750,-32768, 140,-32768,-32768, 5072, 327, - 1153,-32768,-32768,-32768, 1155,-32768, 1161,-32768, 1119, 1119, --32768,-32768,-32768, 1025, 5072, 1119,-32768, 1119,-32768,-32768, --32768, 266, 1166,-32768,-32768, 266,-32768, 457, 336, 445, - 781, 781, 140, 1112, 750,-32768,-32768,-32768,-32768, 5072, +-32768,-32768,-32768,-32768, 809, 814,-32768,-32768, 1076,-32768, +-32768,-32768, 4308,-32768,-32768,-32768,-32768, 6042,-32768,-32768, + 6042,-32768,-32768,-32768,-32768, 5313, 840,-32768, 4770,-32768, +-32768, 4770, 1074,-32768,-32768,-32768, 1137,-32768,-32768,-32768, + 1142,-32768, 236, 1140,-32768, 325,-32768, 691,-32768,-32768, + 1157,-32768,-32768,-32768, 1160, 432,-32768,-32768, 817, 1161, + 5313,-32768, 1147, 845, 1162, 857, 858, 859, 866, 912, + 935, 937, 938, 5313, 5294, 5313, 960, 962, 117, 5313, + 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, + 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, + 5313, 5313, 5313, 5313, 5313, 5313, 5313,-32768, 5313,-32768, + 1168, 1173, 95,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 1043,-32768,-32768,-32768,-32768, 997,-32768, +-32768, 4770, 477,-32768, 89, 4972,-32768, 6042, 4972, 6042, +-32768,-32768,-32768, 848,-32768,-32768,-32768,-32768,-32768,-32768, + 67, 105,-32768,-32768,-32768, 1048,-32768,-32768, 266,-32768, +-32768,-32768, 5200,-32768,-32768, 1167, 1175, 862,-32768,-32768, + 979, 5313, 1174, 982, 987, 191, 432, 432,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 999, + 1001, 1014, 907, 1007, 443, 594, 76, 521, 617, 742, + 609, 669, 570, 749, 313, 481, 5313, 483, 5406,-32768, + 5740, 502, 120,-32768,-32768, 674,-32768,-32768,-32768,-32768, + 1178, 62,-32768,-32768, 4972,-32768, 4972,-32768,-32768, 920, + 542,-32768, 1113, 5740, 502, 120,-32768, 57,-32768,-32768, +-32768, 1019, 1023,-32768, 1024, 1026,-32768,-32768, 867,-32768, + 4586,-32768,-32768,-32768,-32768,-32768, 550,-32768, 502, 723, + 74, 74,-32768,-32768, 382, 560, 1117,-32768, 93,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 571,-32768, + 381,-32768, 5313, 1177,-32768, 1179, 1183,-32768, 1185,-32768, +-32768,-32768, 1120,-32768, 4430, 550,-32768, 560,-32768, 310, + 1181,-32768,-32768,-32768, 1184, 1032, 1039,-32768, 1121, 502, + 1123,-32768,-32768,-32768,-32768, 283, 382, 186, 432, 432, + 74, 1139,-32768, 93, 93,-32768, 396, 580,-32768, 93, +-32768,-32768,-32768, 62, 1217,-32768, 5313,-32768, 1216,-32768, + 1218,-32768, 1165, 1165,-32768,-32768,-32768, 1041, 5313, 1165, +-32768, 1165,-32768,-32768,-32768, 382, 1213,-32768,-32768, 382, +-32768, 486, 396, 331, 432, 432, 93, 1154, 580,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 1168,-32768,-32768, 336,-32768,-32768, 1113,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 1177, 1199,-32768 +-32768,-32768,-32768,-32768, 1215,-32768,-32768, 396,-32768,-32768, + 1156,-32768,-32768,-32768,-32768,-32768,-32768, 1244, 1245,-32768 }; static const short yypgoto[] = {-32768, --32768, 1123,-32768,-32768,-32768,-32768, -388, -100,-32768,-32768, - 883,-32768,-32768,-32768,-32768,-32768, 112,-32768, 447,-32768, - -679,-32768,-32768,-32768, -693, 219, 147,-32768,-32768, 203, - 341,-32768,-32768, 310,-32768,-32768, -918, -659,-32768,-32768, +-32768, 1169,-32768,-32768,-32768,-32768, -453, -103,-32768,-32768, + 925,-32768,-32768,-32768,-32768,-32768, 80,-32768, 488,-32768, + -707,-32768,-32768,-32768, -703, 267, 196,-32768,-32768, 245, + 384,-32768,-32768, 353,-32768,-32768, -648, -689,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, -890, 100, 232, -942, - 141,-32768, -586, 397, 961,-32768,-32768, -580,-32768,-32768, - 581, -334, -333, -332, -331, -346, -365, -315, -532, -538, --32768, -572,-32768, -115,-32768,-32768, 1073, 1068, -534, -358, - 1,-32768,-32768,-32768, -461,-32768,-32768,-32768, 0, -274, - 767,-32768, -765, -694,-32768,-32768,-32768,-32768,-32768,-32768, - 165, 651,-32768, 414,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 756, -674, -782,-32768, 143,-32768,-32768, - 565, 568, 452, 8, -401, 1132,-32768, 42,-32768,-32768, - -552,-32768,-32768,-32768, 556, -287, 907,-32768, -488, 467, - 1240,-32768, 1030,-32768, 392,-32768,-32768,-32768,-32768, -97, --32768,-32768,-32768,-32768, 172, 1133, 1411,-32768,-32768, 1435, --32768,-32768, -357,-32768, 1336, 194, -568, -806,-32768, 745, --32768,-32768, 836, -84, -306, 6,-32768, 119, 69,-32768, --32768, 251,-32768, 476,-32768,-32768, 555,-32768, 297,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, -860, 146, 277, -858, + 184,-32768, -602, 442, 515,-32768, -556,-32768,-32768, 137, + -326, -311, -246, -330, -363, -362, -395, -530, -469,-32768, + -554,-32768, -78,-32768,-32768, 787, 836, -607, -355, 1, +-32768,-32768,-32768, -456,-32768,-32768,-32768, 0, -244, 811, +-32768, -782, -676,-32768,-32768,-32768,-32768,-32768,-32768, 128, + 690,-32768, 644,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 97, -669, -512,-32768, 188,-32768,-32768, 601, + 607, 487, 5, -374, 1176,-32768, 11,-32768,-32768, -553, +-32768,-32768,-32768, 600, -292, 947,-32768, -483, 1022, 1278, +-32768, 1069,-32768, 1060,-32768,-32768,-32768,-32768, -97,-32768, +-32768,-32768,-32768, 317, 1078, 1115,-32768,-32768, 1267,-32768, +-32768, -353,-32768, 635, 238, -529, -714,-32768, 785,-32768, +-32768, 876, -23, -446, 111,-32768, 174, 59,-32768,-32768, + 194,-32768, 220,-32768,-32768, 595,-32768, 337,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1556,-32768, --32768, 1646, -120, 231, 90,-32768 +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1321,-32768,-32768, + 1367, -302, -255, 68,-32768 }; -#define YYLAST 6435 +#define YYLAST 6296 static const short yytable[] = { 94, - 91, 595, 94, 290, 307, 507, 622, 104, 509, 330, - 228, 229, 641, 456, 221, 221, 639, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 113, 570, 471, 547, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 546, 727, 536, 537, 696, 538, - 539, 729, 540, 541, 542, 543, 192, 544, 545, 739, - 94, 91, 692, 1016, 604, 980, 568, 896, 104, 107, - 898, 579, 107, 1017, 461, 475, 123, 548, 299, 892, - 909, 475, 879, 774, 94, 431, 977, 791, 901, 977, - 435, 87, 436, 738, 312, 313, 315, 727, 418, 737, - 321, 569, 491, 729, 440, 1072, 1073, 222, 222, 437, - 475, 739, 985, 520, 620, 301, 344, 1118, 1119, 291, - 291, 1109, 1074, 354, 1075, 1016, 808, 1007, 1008, 521, - 807, 2, -572, 310, 291, 1017, -572, -68, -68, 680, - 1076, 415, 323, 1080, 99, 738, 931, 117, 293, 120, - 107, 737, 1043, 1081, 1045, 475, 416, 1009, 1010, 183, - 1145, 1135, 932, 1112, 409, 410, 1116, 1137, 971, 1138, - 972, 1011, 87, -245, 107, 683, 977, 469, 977, 471, - 684, 801, 344, 311, 891, 192, 1034, 893, 221, -245, - 324, 493, 626, 221, 685, 221, 979, 879, 981, 2, - 509, 338, 986, -75, -75, 109, 110, 221, 221, 1112, - 106, 325, -561, 106, 75, 1018, -561, 106, 198, 198, - 198, 861, 682, 401, 402, 99, -68, -68, 330, 192, - 75, 76, 122, 648, 78, 79, 862, 192, 193, 294, - 294, 192, 294, 192, 698, -353, -353, -353, 660, -353, - -353, -353, -353, -353, 339, -353, -353, 75, 76, 122, - -576, 78, 79, 445, -576, 322, 735, 334, 299, 1047, - 450, 1074, 192, 1075, 335, 456, 75, 1018, 412, 94, - 454, -353, 457, 459, -353, 734, -353, 453, 347, 1076, - 801, 106, -75, -75, 75, 1082, 94, 730, 731, 732, - 733, 222, 321, 962, 468, 344, 222, 960, 222, 330, - 417, 364, 365, 418, 493, 106, 736, 560, 735, 701, - 222, 222, 2, 435, 494, -353, -353, -353, 1038, -353, - -353, 106, 420, 336, 709, 433, 710, 734, 418, 696, - 2, 1120, 106, 1121, 426, 344, 427, 198, 337, 730, - 731, 732, 733, -246, -564, 284, 727, 330, -564, 1122, - -565, 993, 729, 340, -565, 198, 495, 193, 736, 107, - 739, 418, 458, 460, 462, 442, -246, 636, 470, 181, - 210, 210, 403, 404, 1016, 358, 107, 1110, 403, 404, - 418, 198, 324, -566, 1017, 359, 1001, -566, -569, 198, - 894, 198, -569, 198, 738, 198, 818, -245, -574, 493, - 737, 193, -574, 198, 405, 406, 411, 450, 198, 193, - 198, 403, 404, 193, 360, 193, 221, 94, 407, 408, - 94, 361, 198, 198, 198, 577, 362, 585, 580, 588, - 417, 594, 94, 418, 94, 363, 418, 491, 1016, 601, - 614, 1141, 321, -245, 193, 623, -562, 681, 1017, 610, - -562, 1140, 1120, 194, 1121, 330, 490, 401, 402, 418, - 192, 618, 958, -626, 494, 973, 624, 412, 974, 454, - 1122, 75, 76, 122, -620, 78, 79, 330, 492, 296, - 957, 298, 947, 948, 323, 949, 950, -624, 951, 952, - 953, 954, -621, 955, 956, 382, 411, 383, 181, -353, - 106, 413, 418, 106, 106, 106, 616, 107, 994, 414, - 107, 995, -567, 959, -626, -353, -567, 106, 384, 385, - 592, 422, 107, 106, 107, 75, 1018, 634, 1111, 222, - 450, 635, 324, -559, 997, 607, 622, -559, 421, 612, - 403, 404, 181, -457, 1088, 450, 398, 399, 400, 664, - 181, 418, 454, 418, 181, 651, 181, 816, 291, 796, - -623, 974, 2, 558, 210, 678, 679, 735, 198, 210, - 429, 210, 321, -404, 493, 428, 198, -529, 198, 637, - 638, -529, 194, 210, 210, 181, 734, -622, 492, 75, - 1018, 624, 1111, 303, 304, 305, 454, 192, 730, 731, - 732, 733, 401, 402, -626, -626, 706, 707, -626, -626, - 475, 344, 493, 344, 323, 291, 433, 736, 1066, 418, - 2, -528, 198, 491, -530, -528, 194, 425, -530, -353, - 694, -353, -550, 330, 194, 770, -550, 434, 194, -353, - 194, 198, 193, 777, 438, 779, 439, 198, 106, 785, - 786, 106, 291, 443, 790, 1077, 405, 406, 610, 797, - 444, 106, 324, 106, 494, 106, 446, 923, 796, 194, - 407, 408, 467, 106, -527, 418, 106, 452, -527, 865, - 106, 1061, 464, 344, 466, -245, 472, 493, 348, 349, - 350, 351, 352, 353, 418, 2, 1087, 475, 921, 974, - 1127, 799, 483, 75, 76, 122, 495, 78, 79, 418, - -544, 198, 498, 925, -544, -549, -353, 694, -353, -549, - 106, 106, 489, 75, 76, 122, -353, 78, 79, -245, - 500, 493, 851, 852, 592, 499, 592, 291, 885, 2, - 1123, 1150, 403, 404, 690, 792, 853, 854, 612, 107, - 398, 399, 400, 987, 828, 502, 829, 503, -353, 198, - 198, 75, 76, 122, 504, 78, 79, 913, 797, -548, - 624, 505, 198, -548, -353, 198, 198, 830, 831, 193, - -353, -353, -353, 181, -353, -353, 844, 845, 846, 506, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 511, -570, 210, 106, 510, -570, 562, -547, 565, -546, - 799, -547, 513, -546, 514, -545, 1022, 405, 406, -545, - 563, -542, 297, 566, 300, -542, 302, 567, 306, 409, - 410, 407, 408, 308, 1048, 582, 75, 76, 122, 1054, - 78, 79, 914, 316, 578, 317, 583, -543, 198, 198, - 1006, -543, 758, 553, 554, 1065, 584, 975, 107, 198, - 198, 1067, 198, 599, 982, -539, -245, 194, 920, -539, - 1078, 674, 675, 1050, 587, 106, 387, 106, 418, 708, - 75, 76, 122, 573, 78, 79, 106, 386, 593, 106, - 106, 198, 869, 870, 871, 872, 873, 874, 875, 1099, - 1100, 600, 1101, -540, 758, 888, 608, -540, 888, 609, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 181, 1025, 602, 1026, 307, 75, 76, 122, -531, 78, - 79, 613, -531, 1124, 1027, 1028, 418, 1029, 617, 1030, - 1031, 621, 1035, 330, 627, 94, 629, 573, 533, 534, - 535, 630, 1032, 1041, -534, 632, 634, 665, -534, 1136, - 1000, 797, 633, 1057, 847, 848, 198, 650, 454, 580, - 653, 1062, 1063, -558, 1148, -554, 450, -558, -555, -554, - 654, -556, -555, 656, 330, -556, 398, 399, 400, -552, - 1002, 1003, 676, -552, -535, 668, 573, -533, -535, 106, - 671, -533, -537, 1055, 194, 94, -537, 1089, 1091, 106, - 670, 573, 663, -538, 448, -536, 673, -538, 451, -536, - 450, 849, 850, 888, 797, 888, 888, 888, 866, 867, - 868, 905, 906, 907, 686, 107, 463, 855, 856, 465, - 895, 675, 983, 984, 688, 179, 691, 473, 625, 699, - 476, 107, 418, 1064, 1058, 329, 1126, 693, 702, 94, - 75, 1069, 1130, 768, 703, 772, 775, 1041, 329, 329, - 329, 329, 329, 329, 781, 356, 357, 787, 789, 803, - 805, 806, 810, 809, 663, 712, 858, 857, 814, 815, - 827, 341, 859, 863, 899, 107, 663, 326, 860, 903, - 912, 963, 138, 139, 140, 141, 142, 143, 917, 918, - 184, 216, 216, 888, 107, 888, 1152, 833, 922, 144, - 145, 146, 924, 1155, 926, 964, 996, 802, 1037, 1049, - 999, 106, 106, 1090, 1114, 1115, 1079, 1093, 1094, 1096, - 1129, 1059, 1102, 147, 1131, 1104, 1157, 1098, 1106, 107, - 1132, 834, 835, 836, 837, 838, 839, 840, 841, 842, - 843, 867, 1139, 758, 1151, 1108, 1117, 1023, 1158, 1146, - 1153, 476, 342, 283, 343, 474, 106, 1051, 581, 883, - 1143, 1144, 1107, 586, 156, 589, 1068, 968, 991, 1142, - 1023, 1053, 106, 598, 929, 106, 1125, 603, 866, 867, - 868, 596, 1128, 667, 869, 870, 871, 872, 873, 874, - 875, 780, 778, 309, 795, 1071, 1023, 1023, 179, 226, - 915, 496, 441, 1103, 1085, 631, 179, 559, 812, 1005, - 179, 0, 179, 0, 0, 0, 106, 0, 0, 184, - 430, 0, 0, 0, 0, 0, 0, 0, 75, 327, - 328, 159, 0, 0, 0, 106, 0, 0, 0, 0, - 0, 179, 0, 0, 0, 819, 820, 821, 822, 823, - 824, 0, 0, 0, 1023, 106, 106, 1023, 0, 0, - 1085, 1085, 0, 184, 0, 0, 1085, 0, 0, 0, - 106, 184, 0, 0, 329, 184, 0, 184, 0, 0, - 0, 0, 581, 0, 0, 216, 0, 0, 0, 0, - 216, 0, 216, 188, 219, 219, 0, 0, 0, 0, - 1023, 106, 106, 1085, 216, 216, 184, 476, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 0, 0, 695, 905, 906, 907, - 0, 700, 0, 869, 870, 871, 872, 873, 874, 875, - 0, 0, 0, 481, 0, 0, 0, 0, 0, 0, - 0, 484, 485, 486, 487, 329, 0, 0, 0, 760, - 0, 0, 0, 0, 0, 0, 0, 0, 185, 217, - 217, 0, 481, 0, 944, 945, 946, 0, 0, 0, - 501, 0, 0, 481, 0, 0, 0, 0, 0, 0, - 0, 0, 186, 218, 218, 0, 0, 0, 0, 0, - 519, 0, 0, 329, 518, 0, 0, 0, 329, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 832, 0, 0, 0, 0, 0, 0, 179, - 552, 0, 0, 0, 0, 326, 564, 0, 619, 0, - 138, 139, 140, 141, 142, 143, 998, 0, 0, 329, - 0, 329, 0, 643, 645, 0, 188, 144, 145, 146, - 0, 0, 0, 0, 188, 0, 0, 0, 188, 0, - 188, 0, 0, 0, 0, 0, 0, 0, 219, 432, - 0, 147, 900, 219, 0, 219, 0, 185, 0, 0, - 0, 0, 0, 0, 184, 0, 0, 219, 219, 188, - 0, 329, 0, 195, 224, 224, 0, 0, 0, 0, - 0, 186, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 329, 0, 0, 0, 0, 0, 0, - 0, 185, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 0, 185, 0, 185, 0, 0, 0, 0, - 0, 0, 728, 217, 0, 186, 0, 640, 217, 0, - 217, 0, 0, 186, 0, 0, 179, 186, 0, 186, - 0, 0, 217, 217, 185, 969, 970, 218, 0, 0, - 0, 0, 218, 976, 218, 0, 75, 327, 328, 159, - 0, 0, 0, 197, 225, 225, 218, 218, 186, 0, - 0, 0, 0, 0, 728, 0, 0, 992, 0, 0, - 0, 0, 0, 0, 0, 329, 329, 329, 329, 329, - 329, 825, 826, 0, 487, 0, 0, 0, 0, 0, - 0, 184, 195, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 705, 0, 0, 481, - 0, 481, 0, 0, 0, 0, 515, 713, 0, 0, - 759, 0, 0, 0, 0, 0, 0, 0, 0, 1036, - 0, 0, 0, 0, 0, 0, 195, 0, 0, 329, - 0, 0, 0, 0, 195, 0, 0, 0, 195, 0, - 195, 783, 0, 0, 0, 0, 0, 188, 224, 0, - 0, 0, 0, 224, 0, 224, 0, 0, 0, 0, - 811, 0, 0, 329, 0, 0, 219, 224, 224, 195, - 0, 817, 197, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, - 0, 0, 0, 0, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 0, 329, 0, 0, 0, 197, 0, 0, 0, - 0, 0, 185, 0, 197, 0, 0, 0, 197, 0, - 197, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 0, 217, 0, 225, 783, 225, 186, 783, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 225, 225, 197, - 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, - 0, 0, 0, 1149, 0, 0, 329, 0, 0, 0, - 0, 0, 0, 0, 188, 0, 930, 0, 0, 927, - 518, 0, 0, 0, 0, 933, 934, 935, 936, 937, - 938, 939, 940, 941, 942, 943, 0, 0, 0, 0, - 0, 0, 0, 728, -227, 0, 0, 0, 0, 0, - 326, 0, 0, 0, 0, 138, 139, 140, 141, 142, - 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -483, 144, 145, 146, 0, 366, 783, 0, 0, - 0, 138, 139, 140, 141, 142, 143, 0, 0, 185, - 0, 0, 0, 0, 0, 0, 147, 195, 144, 145, - 146, 0, 0, 487, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 186, 0, 0, 224, 0, 0, 0, - 0, 0, 147, -1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -245, 1004, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 156, 0, 0, 0, 0, 3, 329, - 0, 0, 0, 0, 0, 0, 783, 0, 0, 0, - 0, 0, 0, 0, 0, 329, 0, 197, 0, 0, - -353, -353, -353, 0, 4, 0, 0, 0, 5, 6, - 7, 75, 327, 328, 159, 0, 225, 0, 0, 0, - 329, 0, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 75, 327, 328, - 159, 11, 12, 13, 195, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 0, 78, 79, 80, -2, 1, 0, 0, 0, + 91, 305, 94, 592, 104, 504, 453, 689, 620, 506, + 226, 227, 112, 466, 545, 637, 601, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 328, 543, 724, 544, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 288, 693, 190, 106, 567, 876, + 106, 533, 534, 468, 120, 541, 542, 898, 639, 87, + 94, 91, 490, 1033, 289, 104, 565, 906, 535, 536, + 2, 726, 576, 736, 291, 2, -560, 1011, 297, 724, + -560, 889, 893, 428, 94, 895, -241, 1012, 432, 644, + 433, 472, 981, 310, 311, 313, 1074, 734, 319, 219, + 219, 308, 437, 400, 401, 656, 1075, 99, 490, 321, + 116, 804, 118, 341, 618, 415, 2, 289, 771, 517, + 351, 634, 805, 1011, 927, 726, 681, 736, 106, 414, + 1066, 1067, 415, 1012, 518, 537, 538, 539, 540, 928, + 87, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 734, 106, 472, 976, 967, 361, 362, 735, -68, + -68, 2, 220, 220, 876, 1029, 322, 299, 434, -75, + -75, 982, 190, 295, 336, 298, 335, 300, 309, 304, + 341, 191, 798, 306, 624, 968, 323, 1106, 99, 1011, + 1110, 415, 1104, 314, 315, 1112, 1113, 996, 975, 1012, + 977, 506, 292, 292, 680, 292, 468, 192, 398, 399, + 75, 76, 735, 77, 78, 75, 76, 190, 77, 78, + 888, 458, 678, 890, 331, 190, 320, 325, 1013, 190, + 412, 190, 733, 1106, 108, 109, 383, 472, 1138, -242, + 1038, 282, 1040, 472, 413, 695, 325, 1076, -68, -68, + 472, 345, 346, 347, 348, 349, 350, 566, -75, -75, + 190, 442, 328, 679, 731, 732, 297, 453, 447, -349, + 691, -349, 677, 325, 1013, 400, 401, 94, 451, -349, + 454, 456, 450, 1042, 332, 989, 733, 1103, 1068, 788, + 1069, 219, 798, 333, 94, 858, 219, 730, 219, 465, + 319, 727, 334, 341, 181, 1070, 956, 191, 337, 859, + 219, 219, 698, -572, -400, 490, 728, -572, 731, 732, + 432, 491, -349, -349, 289, -349, -349, 707, -241, 676, + 490, 409, 492, 192, 1011, 693, 724, 1134, 2, 325, + 1013, 1105, 341, 328, 1012, 106, 406, 407, 455, 457, + 459, 730, 191, 973, 220, 727, 973, 670, 671, 220, + 191, 220, 106, 445, 191, 355, 191, 448, 322, 958, + 728, 356, 755, 220, 220, 556, 75, 76, 192, 77, + 78, 729, 726, 357, 736, 460, 192, 1068, 462, 1069, + 192, 328, 192, 415, 2, 191, 470, 488, 815, 473, + 891, 1114, 430, 1115, 1070, 415, -349, -349, 734, -349, + -349, 358, -349, -349, 447, -349, -349, 359, 1116, -349, + -349, 192, -349, -349, 94, 1128, 755, 94, 360, 574, + 344, 1130, 577, 1131, 582, 729, 585, -619, 591, 94, + 955, 94, 973, -557, 973, -616, 598, -557, 489, 319, + 487, 415, 706, 415, 398, 399, 607, 190, 75, 76, + 321, 77, 78, 75, 76, -617, 77, 78, 616, 735, + 953, 491, 954, 622, 969, 417, 451, 970, 75, 76, + 408, 77, 78, 911, 325, 1013, 1105, 423, 409, 424, + 1133, 1114, 106, 1115, -241, 106, 490, 943, 944, 328, + 410, 951, 952, 414, 2, 589, 415, 106, 1116, 106, + 488, 530, 531, 532, 945, 946, 411, 322, 439, 473, + 604, -561, 328, 419, 609, -561, 578, -349, 219, 418, + -349, 583, -349, 586, 75, 76, 447, 77, 78, 289, + 425, 595, 970, 733, 992, 600, 620, 289, 400, 401, + 1060, -241, 447, 490, 1082, -453, 660, 289, 489, 451, + 1071, 2, 793, -618, 635, 636, 1002, 1003, 1081, 426, + -568, 970, 674, 675, -568, 731, 732, 289, 983, 319, + 1117, 947, 948, 949, 950, 75, 76, 431, 77, 78, + 321, 220, 191, 190, -558, 435, 1004, 1005, -558, 622, + 430, 406, 407, 415, 451, 398, 399, 488, 730, -565, + 1006, 623, 727, -565, 704, 705, 327, -562, 192, 341, + 436, -562, 186, 217, 217, 402, 403, 728, 440, 327, + 327, 327, 327, 327, 327, 441, 353, 354, 404, 405, + 1017, 767, 415, 443, 400, 401, 612, 322, 415, 774, + 578, 776, 614, 402, 403, 782, 783, 1083, 1043, -242, + 787, 467, 449, 1049, 607, 794, 404, 405, 461, -566, + 632, 491, 793, -566, 633, 473, 796, 328, 1059, 844, + 845, 1055, 492, 755, 1061, 402, 403, 1018, 472, -241, + 341, 490, 729, 1072, -241, 692, 621, 463, 404, 405, + 697, 75, 76, 464, 77, 78, 469, -349, 691, -349, + 1018, 1123, 919, 480, 686, 554, 486, -349, 589, 294, + 589, 296, 1093, 1094, 495, 1095, 757, 415, 191, 789, + 496, 647, 609, 106, 1065, 1018, 1018, 379, 497, 380, + 415, -349, -563, 1079, 813, 882, -563, -525, 186, -570, + 499, -525, 338, -570, 192, 1118, -349, 408, 324, 381, + 382, 852, 853, 135, 136, 137, 138, 139, 140, 400, + 401, 1020, -526, 1021, 910, 794, -526, 622, -524, 141, + 142, 143, -524, 500, 1022, 1023, 796, 1024, 501, 1025, + 1026, 502, 1018, 186, 503, 1018, 1141, 550, 1079, 1079, + 829, 186, 1027, 144, 1079, 186, -546, 186, 508, -523, + -546, 848, 849, -523, 415, 217, 429, 415, 862, 558, + 217, 917, 217, 177, 850, 851, 846, 847, 816, 817, + 818, 819, 820, 821, 217, 217, 186, 562, 1018, 892, + 671, 1079, 559, 106, 153, 415, 384, 979, 980, 921, + 825, 564, 826, 916, -349, 327, 563, -540, -545, -544, + 897, -540, -545, -544, 971, 575, -543, 415, 1058, -349, + -543, 978, 827, 828, 579, 885, 325, 1063, 885, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 580, 581, -555, 325, 326, + 156, -555, -542, -241, 158, 584, -542, 1001, 779, 1041, + 395, 396, 397, 324, 590, 597, 305, 599, 135, 136, + 137, 138, 139, 140, 328, -541, 327, -538, -539, -541, + 1045, -538, -539, 596, 141, 142, 143, 339, 1030, 340, + 605, 94, 606, 965, 966, 610, 1036, 940, 941, 942, + -535, 972, -536, 415, -535, 615, -536, 794, 144, 1052, + 619, 625, 577, 451, 997, 998, 1056, 1057, 1050, -527, + 628, 447, -530, -527, 327, 988, -530, 632, 328, 327, + 627, 995, 512, 885, 177, 885, 885, 885, 630, -550, + 1129, -551, 177, -550, 650, -551, 177, -554, 177, 153, + 94, -554, 631, 1085, -552, 646, 427, 652, -552, 106, + 395, 396, 397, -548, -531, 447, -529, -548, -531, 794, + -529, 649, -533, 186, 664, 106, -533, 177, 993, -534, + 327, -532, 327, -534, 641, -532, 1031, 179, 208, 208, + 666, 661, 217, 866, 867, 868, 869, 870, 871, 872, + 1120, 667, 669, 94, 684, 182, 214, 214, 1036, 672, + 301, 302, 303, 325, 326, 156, 690, 682, 106, 158, + 769, 772, 885, 688, 885, 395, 396, 397, 841, 842, + 843, 696, 327, 863, 864, 865, 699, 106, 902, 903, + 904, 701, 183, 215, 215, 765, 778, 786, 784, 800, + 802, 1086, 807, 803, 806, 327, 1108, 1109, 854, 1144, + 812, 498, 824, 855, 857, 1147, 863, 864, 865, 860, + 856, 106, 866, 867, 868, 869, 870, 871, 872, 478, + 896, 900, 725, 909, 920, 515, 481, 482, 483, 484, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 914, 1136, 1137, 915, 918, 922, 478, 959, 186, + 960, 990, 991, 179, 994, 1032, 1053, 1084, 478, 1044, + 1087, 549, 1088, 1073, 1090, 1096, 1092, 1100, 1098, 1102, + 422, 182, 902, 903, 904, 516, 725, 1142, 866, 867, + 868, 869, 870, 871, 872, 1111, 327, 327, 327, 327, + 327, 327, 822, 823, 1122, 1124, 864, 1125, 179, 1132, + 1139, 1143, 1145, 1149, 1150, 471, 179, 880, 183, 281, + 179, 1046, 179, 1062, 177, 1101, 182, 964, 987, 1135, + 208, 561, 1048, 1119, 182, 208, 925, 208, 182, 663, + 182, 1121, 593, 777, 184, 216, 216, 775, 214, 208, + 208, 179, 912, 214, 792, 214, 307, 224, 493, 438, + 327, 1097, 629, 183, 555, 1000, 810, 214, 214, 182, + 0, 183, 0, 0, 830, 183, 0, 183, 0, 0, + 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, + 215, 0, 215, 0, 0, 327, 0, 0, 193, 222, + 222, 0, 0, 0, 215, 215, 183, 831, 832, 833, + 834, 835, 836, 837, 838, 839, 840, 0, 0, 0, + 0, 0, 0, 0, 0, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 0, 327, 195, 223, 223, 0, 0, 0, + 0, 0, 638, 0, 0, 0, 507, 0, 0, 0, + 177, 0, 0, 0, 510, 0, 511, 0, 0, -479, + 184, 0, 0, 0, 363, 0, 0, 0, 0, 135, + 136, 137, 138, 139, 140, 0, 0, 0, 703, 0, + 0, 0, 0, 0, 0, 141, 142, 143, 0, 0, + 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, + 0, 0, 0, 0, 0, 184, 560, 0, 0, 144, + 484, 0, 0, 184, 193, 0, 0, 184, 0, 184, + 0, 780, 0, 0, 0, 570, 0, 216, 0, 0, + 0, 0, 216, 725, 216, 478, 0, 0, 179, 0, + 0, 710, 0, 0, 756, 0, 216, 216, 184, 0, + 153, 0, 0, 0, 0, 0, 182, 208, 0, 193, + 195, 611, 0, 0, 0, 0, 0, 193, 0, 0, + 0, 193, 0, 193, 0, 214, 0, 0, 0, 0, + 0, 222, 0, 0, 0, 0, 222, 0, 222, 570, + 0, 0, 0, 183, 0, 0, 809, 0, 0, 0, + 222, 222, 193, 0, 0, 195, 814, 327, 0, 0, + 0, 0, 215, 195, 325, 326, 156, 195, 0, 195, + 158, 0, 0, 0, 0, 780, 0, 223, 780, 0, + 0, 0, 223, 0, 223, 0, 0, 570, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 223, 195, 0, + 0, 0, 0, 570, 659, 0, 0, 0, 0, 0, + 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, + 923, 515, 0, 327, 179, 0, 929, 930, 931, 932, + 933, 934, 935, 936, 937, 938, 939, 0, 0, 0, + 0, 687, 182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 197, 0, 0, 0, 0, -245, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 926, 0, 0, 0, 659, 709, 0, 780, 183, + 0, 0, 0, 0, 0, 0, 0, 659, 0, 0, + 0, 0, 0, 0, 198, 184, 0, 0, 0, 122, + 123, 124, 0, 0, 199, 127, 128, 129, 130, 131, + 132, 200, -427, -427, 216, 0, 0, 201, -427, 799, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 0, + 808, 0, 0, 0, 0, -241, 0, 0, 141, 142, + 143, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 0, 0, 0, 0, 0, 0, 0, 0, 484, 0, + 0, 0, 144, 0, 0, 0, 0, 0, 222, 0, + 0, 0, 0, 0, 0, 0, 780, 0, 0, 0, + 0, 0, 0, 0, -427, 146, 147, 148, 149, 150, + 151, 0, 0, 0, 0, 195, 0, 0, 0, 152, + 0, 0, 999, 153, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -241, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 154, 155, 156, + 202, 203, 0, 158, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 0, -349, -349, -349, + 0, 4, 0, 0, 0, 5, 6, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, + 13, 195, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 0, 77, 78, + 79, 80, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -241, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -353, -353, -353, 0, 4, 0, 0, 0, - 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 9, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -349, -349, + -349, 0, 4, 0, 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 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, 124, 78, 79, 80, 0, 125, 126, - 127, 0, 128, 129, 130, 131, 132, 133, 134, 135, - 136, -483, 556, 0, 0, 0, 137, 0, 0, 0, - 0, 138, 139, 140, 141, 142, 143, 0, 0, 0, - 0, 0, 0, 0, -245, -245, 0, 3, 144, 145, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -353, - -353, -353, 147, 4, 0, 0, 0, 0, 0, 0, + 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 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, 121, 77, + 78, 79, 80, 122, 123, 124, 0, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -479, 552, 0, 0, + 0, 134, 0, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, -241, + 0, 3, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 150, 151, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 11, 12, 13, 156, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 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, 157, 557, - 159, 160, 79, 80, 124, 0, 0, 0, 0, 125, - 126, 127, 0, 128, 129, 130, 131, 132, 133, 134, - 135, 136, -483, 0, 0, 0, 0, 137, 0, 0, - 0, 0, 138, 139, 140, 141, 142, 143, 0, 0, - 0, 0, 0, 0, 0, -245, -245, 0, 0, 144, - 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -349, -349, -349, 144, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 147, 148, 149, 150, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 152, 11, 12, 13, 153, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 0, 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, 154, 155, 156, 157, 78, 79, 553, 121, 0, + 0, 0, 0, 122, 123, 124, 0, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -479, 0, 0, 0, + 0, 134, 0, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, -241, + 0, 0, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -245, -245, -245, 147, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -241, -241, -241, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 149, 150, 151, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, - 155, -245, -245, -245, 156, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, 0, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, 0, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, 75, 157, - 158, 159, 160, 79, -245, 200, 0, 0, 0, 0, - 125, 126, 127, 0, 0, 201, 130, 131, 132, 133, - 134, 135, 202, -483, -487, 0, 0, 0, 203, 0, - 0, 0, 0, 138, 139, 140, 141, 142, 143, 0, - 0, 0, 0, 0, 0, 0, -245, -245, 0, 0, - 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 147, 148, 149, 150, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 152, -241, -241, -241, 153, -241, -241, + -241, -241, -241, -241, -241, -241, -241, -241, 0, -241, + -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, -241, -241, -241, 0, -241, -241, -241, -241, -241, + -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, 154, 155, 156, 157, 78, -241, 158, 198, 0, + 0, 0, 0, 122, 123, 124, 0, 0, 199, 127, + 128, 129, 130, 131, 132, 200, -479, -483, 0, 0, + 0, 201, 0, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, -241, + 0, 0, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -245, -245, -245, 147, 0, 0, 0, 0, 0, + 0, 0, 0, -241, -241, -241, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 155, -245, -245, -245, 156, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, 0, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, 0, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, -245, 75, - 157, 158, 159, 204, 205, -245, 200, 0, 0, 0, - 0, 125, 126, 127, 0, 0, 201, 130, 131, 132, - 133, 134, 135, 202, -431, -431, 0, 0, 0, 203, - -431, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 0, 0, 0, 0, 0, 0, -245, -245, 124, - 0, 144, 145, 146, 125, 126, 127, 0, 128, 129, - 130, 131, 132, 133, 134, 135, 136, -483, 0, 0, - 0, 0, 137, 0, 0, 147, 0, 138, 139, 140, - 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, - -245, -245, 0, 0, 144, 145, 146, -431, 149, 150, - 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 0, 156, 0, 147, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 147, 148, 149, 150, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 152, -241, -241, -241, 153, -241, -241, + -241, -241, -241, -241, -241, -241, -241, -241, 0, -241, + -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, -241, -241, -241, 0, -241, -241, -241, -241, -241, + -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, + -241, 154, 155, 156, 202, 203, -241, 158, 121, 0, + 0, 0, 0, 122, 123, 124, 0, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -479, 0, 0, 0, + 0, 134, 0, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 0, 0, 0, 0, -241, + 121, 0, 141, 142, 143, 122, 123, 124, 0, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -479, 0, + 0, 0, 0, 134, 0, 0, 144, 0, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, -241, 0, 0, 141, 142, 143, 0, 145, 146, + 147, 148, 149, 150, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 152, 0, 0, 0, 153, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 148, 149, 150, 151, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 0, 0, 156, + -454, 146, 147, 148, 149, 150, 151, 0, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 157, 158, 159, 204, 205, 0, 0, 124, 0, - 0, 0, 0, 125, 126, 127, 0, 128, 129, 130, - 131, 132, 133, 134, 135, 136, -483, 0, 0, 0, - 0, 137, 0, 0, 0, 0, 138, 139, 140, 141, - 142, 143, 0, 75, 157, 158, 159, 160, 79, -245, - -245, 200, 0, 144, 145, 146, 125, 126, 127, 0, - 0, 201, 130, 131, 132, 133, 134, 135, 202, -483, - -487, 0, 0, 0, 203, 0, 0, 147, 0, 138, - 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 0, -245, -245, 0, 0, 144, 145, 146, -458, - 149, 150, 151, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 0, 156, 0, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 154, 155, 156, 157, 78, 0, 158, 0, 198, + 0, 0, 0, 0, 122, 123, 124, 0, 0, 199, + 127, 128, 129, 130, 131, 132, 200, -479, -483, 0, + 0, 0, 201, 0, 0, 0, 0, 135, 136, 137, + 138, 139, 140, 154, 155, 156, 157, 78, 0, 158, + -241, 121, 0, 141, 142, 143, 122, 123, 124, 0, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -479, + 642, 0, 0, 0, 134, 0, 0, 144, 0, 135, + 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, + 0, 0, -241, 0, 0, 141, 142, 143, 0, -423, + 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, + 0, 0, 0, 0, 152, 0, 0, 0, 153, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -427, 149, 150, 151, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 0, 156, 0, 0, 0, 782, 1046, 0, 0, 0, - 326, 0, 0, 0, 0, 138, 139, 140, 141, 142, - 143, 0, 75, 157, 158, 159, 160, 79, 0, 0, - 124, 0, 144, 145, 146, 125, 126, 127, 0, 128, - 129, 130, 131, 132, 133, 134, 135, 136, -483, 646, - 0, 0, 0, 137, 0, 0, 147, 0, 138, 139, - 140, 141, 142, 143, 0, 75, 157, 158, 159, 204, - 205, -245, -245, 200, 0, 144, 145, 146, 125, 126, - 127, 0, 0, 201, 130, 131, 132, 133, 134, 135, - 202, -483, -487, 0, 0, 0, 203, 156, 0, 147, - 0, 138, 139, 140, 141, 142, 143, 0, 0, 0, - 0, 0, 0, 0, -245, -245, 0, 0, 144, 145, - 146, 0, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, - 156, 0, 147, 0, 782, 0, 0, 0, 0, 326, - 0, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 75, 327, 328, 159, 149, 150, 151, 152, 153, - 154, 144, 145, 146, 0, 0, 0, 0, 0, 155, - 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 75, 157, 158, 159, 160, 79, - 0, 0, 124, 0, 0, 0, 0, 125, 126, 127, - 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, - -483, 0, 0, 0, 0, 137, 156, 0, 0, 0, - 138, 139, 140, 141, 142, 143, 0, 75, 157, 158, - 159, 204, 205, -245, -245, 0, 0, 144, 145, 146, - 0, 0, 0, 0, 326, 516, 0, 0, 0, 138, - 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 147, 0, 0, 0, 0, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 327, 328, 159, 149, 150, 151, 152, 153, 154, - 147, 0, 0, 0, 0, 0, 0, 0, 155, 125, - 126, 127, 156, 128, 129, 130, 131, 132, 133, 134, - 135, 202, -483, 571, 0, 0, 0, 366, 0, 0, - 0, 0, 138, 139, 140, 141, 142, 143, 0, 0, - 0, 156, 0, 0, 0, -245, -245, 0, 3, 144, - 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 146, 147, 148, 149, 150, 151, 0, 0, + 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, + 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 4, 0, 75, 157, 158, 159, - 160, 79, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 149, 150, 151, 152, - 153, 154, 0, 0, 0, 75, 327, 328, 159, 0, - 572, 11, 12, 13, 156, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 157, - 557, 159, 160, 79, 80, 125, 126, 127, 0, 128, - 129, 130, 131, 132, 133, 134, 135, 202, -483, 647, - 0, 0, 0, 366, 0, 0, 0, 0, 138, 139, - 140, 141, 142, 143, 0, 0, 0, 0, 0, 0, - 0, -245, -245, 0, 3, 144, 145, 146, 0, 0, + 0, 0, 154, 155, 156, 202, 203, 0, 158, 0, + 198, 0, 0, 0, 0, 122, 123, 124, 0, 0, + 199, 127, 128, 129, 130, 131, 132, 200, -479, -483, + 0, 0, 0, 201, 0, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 154, 155, 156, 157, 78, 0, + 158, -241, 121, 0, 141, 142, 143, 122, 123, 124, + 0, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -479, 0, 0, 0, 0, 134, 0, 0, 144, 0, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, -241, 0, 0, 141, 142, 143, 0, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 0, 0, 153, + 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 146, 147, 148, 149, 150, 151, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, + 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 11, 12, 13, - 156, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 0, 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, 157, 557, 159, 160, 79, - 80, 125, 126, 127, 0, 128, 129, 130, 131, 132, - 133, 134, 135, 202, -483, 658, 0, 0, 0, 366, - 0, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 0, 0, 0, 0, 0, 0, -245, -245, 0, - 3, 144, 145, 146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 154, 155, 156, 202, 203, 0, 158, + 0, 0, 0, 0, 122, 123, 124, 0, 125, 126, + 127, 128, 129, 130, 131, 132, 200, -479, 568, 0, + 0, 0, 363, 0, 0, 0, 0, 135, 136, 137, + 138, 139, 140, 0, 0, 154, 155, 156, 157, 78, + -241, 158, 3, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 144, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, - 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 659, 11, 12, 13, 156, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 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, 157, 557, 159, 160, 79, 80, 125, 126, 127, - 0, 128, 129, 130, 131, 132, 133, 134, 135, 202, - -483, 657, 0, 0, 0, 366, 0, 0, 0, 0, - 138, 139, 140, 141, 142, 143, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 144, 145, 146, - 125, 126, 127, 0, 128, 129, 130, 131, 132, 133, - 134, 135, 202, -483, 661, 0, 0, 0, 366, 0, - 0, 147, 0, 138, 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 144, 145, 146, 0, 149, 150, 151, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, - 0, 0, 156, 0, 147, 0, 0, 0, 0, 0, + 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, + 0, 0, 0, 0, 569, 11, 12, 13, 153, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 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, 154, 155, 156, 157, 78, 79, 553, 122, + 123, 124, 0, 125, 126, 127, 128, 129, 130, 131, + 132, 200, -479, 643, 0, 0, 0, 363, 0, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, -241, 0, 3, 141, 142, + 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 144, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 0, 0, 0, 0, 0, 0, 152, + 11, 12, 13, 153, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 0, 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, 154, 155, 156, + 157, 78, 79, 553, 122, 123, 124, 0, 125, 126, + 127, 128, 129, 130, 131, 132, 200, -479, 654, 0, + 0, 0, 363, 0, 0, 0, 0, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + -241, 0, 3, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 662, 0, 0, 0, 156, 0, 0, 0, 0, - 326, 0, 0, 697, 0, 138, 139, 140, 141, 142, - 143, 0, 0, 0, 0, 0, 75, 157, 158, 159, - 160, 79, 144, 145, 146, 125, 126, 127, 0, 128, - 129, 130, 131, 132, 133, 134, 135, 202, -483, 711, - 0, 0, 0, 366, 0, 0, 147, 0, 138, 139, - 140, 141, 142, 143, 0, 0, 0, 0, 0, 75, - 157, 158, 159, 160, 79, 144, 145, 146, 125, 126, - 127, 0, 128, 129, 130, 131, 132, 133, 134, 135, - 202, -483, 764, 0, 0, 0, 366, 156, 0, 147, - 0, 138, 139, 140, 141, 142, 143, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 144, 145, - 146, 0, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, - 156, 0, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 144, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 327, 328, 159, 149, 150, 151, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 0, 0, 0, 156, 0, 0, 0, 0, 326, 928, - 0, 0, 0, 138, 139, 140, 141, 142, 143, 0, - 0, 0, 0, 0, 75, 157, 158, 159, 160, 79, - 144, 145, 146, 125, 126, 127, 0, 128, 129, 130, - 131, 132, 133, 134, 135, 202, -483, 765, 0, 0, - 0, 366, 0, 0, 147, 0, 138, 139, 140, 141, - 142, 143, 0, 0, 0, 0, 0, 75, 157, 158, - 159, 160, 79, 144, 145, 146, 125, 126, 127, 0, - 128, 129, 130, 131, 132, 133, 134, 135, 202, -483, - 767, 0, 0, 0, 366, 156, 0, 147, 0, 138, - 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 144, 145, 146, 0, - 149, 150, 151, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 766, 0, 0, 0, 156, 0, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 327, 328, 159, 149, 150, 151, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 157, 158, 159, 160, 79, 0, 0, - 0, 125, 126, 127, 0, 128, 129, 130, 131, 132, - 133, 134, 135, 202, -483, 884, 0, 0, 0, 366, - 0, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 0, 0, 0, 0, 75, 157, 158, 159, 160, - 79, 144, 145, 146, 125, 126, 127, 0, 128, 129, - 130, 131, 132, 133, 134, 135, 202, -483, 0, 0, - 0, 0, 366, 0, 0, 147, 0, 138, 139, 140, - 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 144, 145, 146, 0, 149, 150, - 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 0, 156, 0, 147, 0, + 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, + 0, 0, 0, 0, 655, 11, 12, 13, 153, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 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, 154, 155, 156, 157, 78, 79, 553, 122, + 123, 124, 0, 125, 126, 127, 128, 129, 130, 131, + 132, 200, -479, 653, 0, 0, 0, 363, 0, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 141, 142, + 143, 122, 123, 124, 0, 125, 126, 127, 128, 129, + 130, 131, 132, 200, -479, 657, 0, 0, 0, 363, + 0, 0, 144, 0, 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 149, 150, 151, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 0, 0, 156, - 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 141, 142, 143, 0, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 0, 0, 0, 0, 0, 0, 152, + 0, 0, 0, 153, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 157, 158, 159, 160, 79, 0, 0, -353, -353, - -353, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, + 149, 150, 151, 0, 0, 0, 0, 0, 0, 0, + 0, 658, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 154, 155, 156, + 157, 78, 0, 158, 0, 0, 0, 122, 123, 124, + 0, 125, 126, 127, 128, 129, 130, 131, 132, 200, + -479, 708, 0, 0, 0, 363, 0, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 154, + 155, 156, 157, 78, 0, 158, 141, 142, 143, 122, + 123, 124, 0, 125, 126, 127, 128, 129, 130, 131, + 132, 200, -479, 761, 0, 0, 0, 363, 0, 0, + 144, 0, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 141, 142, + 143, 0, 0, 146, 147, 148, 149, 150, 151, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, + 0, 153, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 157, 158, 159, 160, 79, 11, - 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 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, 291, 0, 119, 0, - 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 0, 0, 0, 0, 0, 0, 152, + 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 326, - -227, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 144, 145, 146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -617, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 154, 155, 156, 157, 78, + 0, 158, 0, 0, 0, 122, 123, 124, 0, 125, + 126, 127, 128, 129, 130, 131, 132, 200, -479, 762, + 0, 0, 0, 363, 0, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 154, 155, 156, + 157, 78, 0, 158, 141, 142, 143, 122, 123, 124, + 0, 125, 126, 127, 128, 129, 130, 131, 132, 200, + -479, 764, 0, 0, 0, 363, 0, 0, 144, 0, + 135, 136, 137, 138, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 142, 143, 0, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, + 0, 0, 0, 0, 0, 763, 0, 0, 0, 153, + 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 146, 147, 148, 149, 150, 151, 0, + 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, + 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 154, 155, 156, 157, 78, 0, 158, + 0, 0, 0, 122, 123, 124, 0, 125, 126, 127, + 128, 129, 130, 131, 132, 200, -479, 881, 0, 0, + 0, 363, 0, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 0, 0, 154, 155, 156, 157, 78, + 0, 158, 141, 142, 143, 122, 123, 124, 0, 125, + 126, 127, 128, 129, 130, 131, 132, 200, -479, 0, + 0, 0, 0, 363, 0, 0, 144, 0, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 141, 142, 143, 0, 0, 146, + 147, 148, 149, 150, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 152, 0, 0, 0, 153, 144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 146, 147, 148, 149, 150, 151, 289, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 0, 0, 153, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, + 0, 154, 155, 156, 157, 78, 0, 158, 0, 0, + 0, 0, 0, 0, 0, -349, -349, -349, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 154, 155, 156, 157, 78, 0, 158, 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 156, 39, 40, 41, + 33, 34, 35, 36, 37, 38, 0, 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, -111, 0, 119, 0, 0, -111, 80, + 72, 73, 74, 289, 0, 0, 0, 0, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 75, 327, 328, 159, 0, 326, 0, 0, 0, 0, - 138, 139, 140, 141, 142, 143, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4, 0, 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -613, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 156, 39, 40, 41, 42, 43, 44, 45, + 37, 38, 0, 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, 286, - 0, 119, 0, 0, 0, 80, 0, 0, 0, 0, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 0, + 0, -111, 0, 0, 79, 80, -111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 75, 327, 328, 159, + 0, 0, 0, 0, 0, 0, 3, 0, 779, 0, + 0, 0, 0, 324, 0, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 153, + 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, 284, 0, 0, 0, + 0, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 325, 326, 156, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -486, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, + 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -482, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 12, 13, 0, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 0, 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, -241, 0, 0, 0, 0, 79, 80, 11, 12, + 13, 2, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 0, 0, 119, 11, 12, - 13, 80, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, -624, 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, 0, 0, 119, 0, 0, - 0, 80, 0, -626, -626, -626, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -626, 0, 0, 0, 0, 0, 0, 0, 0, - -245, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, -626, -626, -626, 0, -626, -626, - -626, -626, -626, -626, -626, -626, -626, -626, 0, -626, - -626, -626, -626, -626, -626, -626, -626, -626, -626, -626, - -626, -626, -626, -626, 0, -626, -626, -626, -626, -626, - -626, -626, -626, -626, -626, -626, -626, -626, -626, -626, - -626, -626, -626, -626, -626, -626, -626, -626, -626, -626, - -626, -626, -626, -626, -626, -626, -626, -626, -626, -626, - -626, 0, 0, 0, 11, 12, 13, -626, 14, 15, + 70, 71, 72, 73, 74, 0, 0, 0, 0, 0, + 79, 80, 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 355, 78, 79, 80, 0, 138, - 139, 140, 141, 142, 143, 642, 0, 0, 0, 0, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 0, - 0, 0, 0, 0, 0, 644, 0, 144, 145, 146, - 138, 139, 140, 141, 142, 143, 714, 0, 0, 0, - 147, 715, 716, 717, 718, 719, 720, 144, 145, 146, - 0, 147, 0, 0, 0, 0, 0, 0, 144, 721, - 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 723, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, + 74, 75, 76, 324, 77, 78, 79, 80, 135, 136, + 137, 138, 139, 140, 0, 0, 0, 0, 0, 0, + 0, -241, 324, 513, 141, 142, 143, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 141, 142, 143, 0, 324, 144, 0, + 617, 0, 135, 136, 137, 138, 139, 140, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 144, 141, 142, + 143, 0, 324, 0, 0, 694, 0, 135, 136, 137, + 138, 139, 140, 0, 0, 0, 0, 0, 0, 153, + 0, 0, 144, 141, 142, 143, 0, 324, 924, 0, + 0, 0, 135, 136, 137, 138, 139, 140, 153, 0, + 0, 0, 0, 0, 0, 0, 324, 144, 141, 142, + 143, 135, 136, 137, 138, 139, 140, 0, 0, 0, + 0, 0, 0, 153, 0, 0, 0, 141, 142, 143, + 0, 352, 144, 0, 0, 0, 135, 136, 137, 138, + 139, 140, 0, 325, 326, 156, 0, 0, 153, 158, + 0, 144, 141, 142, 143, 0, 0, 0, 0, 0, + 0, 0, 325, 326, 156, 0, 0, 0, 158, 0, + 0, 0, 0, 153, 640, 0, 144, 0, 0, 135, + 136, 137, 138, 139, 140, 0, 0, 325, 326, 156, + 0, 0, 153, 158, 0, 141, 142, 143, 0, 711, + 0, 0, 0, 0, 712, 713, 714, 715, 716, 717, + 0, 0, 325, 326, 156, 0, 0, 153, 158, 144, + 141, 718, 719, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 325, 326, 156, + 0, 0, 0, 158, 720, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 325, 326, 156, 0, + 153, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 156, 0, -171, -171, 0, 0, 0, + 0, 325, 326, 156, 0, 153, 0, 158, 0, 0, + 0, -169, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 325, 326, 156, 0, 0, 0, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, + 721, 722, 0, 0, 0, 723, 11, 12, 13, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 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, 3, 0, 0, 0, 0, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75, 327, 328, 159, 0, - 0, 0, 0, 0, 0, 0, 75, 327, 328, 159, + 0, 0, 0, 0, 0, -349, -349, -349, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 75, 327, 328, 159, - 0, 0, 0, 0, 0, 0, 0, 75, 724, 725, - 726, 11, 12, 13, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 3, 0, - 119, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -353, -353, -353, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 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, 3, 0, 0, 0, 0, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 3, 0, - 119, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 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, -349, -349, -349, 0, 0, 79, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 0, 0, - 119, -353, -353, -353, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 12, 13, 0, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 0, 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, -621, -621, -621, 0, 0, 79, 80, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, + 0, 0, -621, -621, -621, 0, -621, -621, -621, -621, + -621, -621, -621, -621, -621, -621, 0, -621, -621, -621, + -621, -621, -621, -621, -621, -621, -621, -621, -621, -621, + -621, -621, 0, -621, -621, -621, -621, -621, -621, -621, + -621, -621, -621, -621, -621, -621, -621, -621, -621, -621, + -621, -621, -621, -621, -621, -621, -621, -621, -621, -621, + -621, -621, -621, -621, -621, -621, -621, -621, -621, 8, + 9, 10, 0, 0, -621, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, + 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 0, 0, 0, 0, 0, + 79, 80, 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 0, - 0, 119, 8, 9, 10, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 0, 0, - 119, 11, 12, 13, 80, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 0, 0, - 119, 0, 0, 0, 80 + 0, 0, 0, 0, 79, 80 }; static const short yycheck[] = { 0, - 0, 463, 3, 88, 105, 364, 495, 0, 366, 125, - 11, 12, 551, 301, 9, 10, 549, 18, 19, 20, + 0, 105, 3, 460, 0, 361, 299, 615, 492, 363, + 11, 12, 2, 316, 410, 546, 470, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 2, 446, 320, 412, 48, 49, 50, + 41, 42, 43, 122, 408, 648, 409, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 411, 652, 401, 402, 621, 403, - 404, 652, 405, 406, 407, 408, 8, 409, 410, 652, - 81, 81, 617, 24, 473, 892, 445, 782, 81, 0, - 785, 449, 3, 34, 19, 5, 7, 413, 99, 774, - 794, 5, 762, 672, 105, 203, 889, 5, 788, 892, - 208, 0, 210, 652, 115, 116, 117, 704, 21, 652, - 121, 25, 25, 704, 222, 1016, 1017, 9, 10, 214, - 5, 704, 898, 28, 493, 85, 137, 1080, 1081, 18, - 18, 25, 26, 144, 28, 24, 699, 86, 87, 44, - 25, 34, 21, 112, 18, 34, 25, 86, 87, 23, - 44, 41, 121, 24, 0, 704, 28, 3, 24, 5, - 81, 704, 979, 34, 981, 5, 56, 116, 117, 8, - 1123, 1100, 44, 1074, 53, 54, 1077, 1106, 882, 1108, - 885, 130, 81, 18, 105, 25, 979, 318, 981, 474, - 602, 690, 203, 21, 773, 137, 972, 776, 203, 24, - 121, 26, 500, 208, 603, 210, 891, 877, 893, 34, - 578, 132, 902, 86, 87, 108, 109, 222, 223, 1120, - 0, 24, 21, 3, 175, 176, 25, 7, 8, 9, - 10, 41, 601, 32, 33, 81, 175, 176, 364, 181, - 175, 176, 177, 560, 179, 180, 56, 189, 8, 95, - 96, 193, 98, 195, 623, 175, 176, 177, 575, 179, - 180, 175, 176, 177, 18, 179, 180, 175, 176, 177, - 21, 179, 180, 284, 25, 121, 652, 24, 289, 984, - 290, 26, 224, 28, 24, 583, 175, 176, 39, 300, - 301, 18, 303, 304, 21, 652, 23, 300, 137, 44, - 799, 81, 175, 176, 175, 176, 317, 652, 652, 652, - 652, 203, 323, 862, 317, 326, 208, 860, 210, 445, - 18, 6, 7, 21, 26, 105, 652, 422, 704, 627, - 222, 223, 34, 441, 345, 175, 176, 177, 22, 179, - 180, 121, 181, 24, 642, 18, 644, 704, 21, 912, - 34, 26, 132, 28, 193, 366, 195, 137, 24, 704, - 704, 704, 704, 24, 21, 26, 963, 493, 25, 44, - 21, 916, 963, 18, 25, 155, 345, 137, 704, 300, - 963, 21, 303, 304, 305, 224, 24, 27, 26, 8, - 9, 10, 49, 50, 24, 24, 317, 27, 49, 50, - 21, 181, 323, 21, 34, 16, 27, 25, 21, 189, - 779, 191, 25, 193, 963, 195, 714, 24, 21, 26, - 963, 181, 25, 203, 37, 38, 29, 437, 208, 189, - 210, 49, 50, 193, 16, 195, 441, 448, 51, 52, - 451, 16, 222, 223, 224, 448, 16, 458, 451, 460, - 18, 462, 463, 21, 465, 15, 21, 25, 24, 470, - 25, 27, 473, 24, 224, 26, 21, 598, 34, 480, - 25, 25, 26, 8, 28, 601, 18, 32, 33, 21, - 422, 492, 858, 34, 495, 18, 497, 39, 21, 500, - 44, 175, 176, 177, 22, 179, 180, 623, 344, 96, - 857, 98, 847, 848, 473, 849, 850, 22, 851, 852, - 853, 854, 22, 855, 856, 24, 29, 26, 137, 28, - 300, 40, 21, 303, 304, 305, 25, 448, 25, 55, - 451, 28, 21, 859, 85, 44, 25, 317, 47, 48, - 461, 19, 463, 323, 465, 175, 176, 21, 178, 441, - 560, 25, 473, 21, 922, 476, 1055, 25, 92, 480, - 49, 50, 181, 92, 1036, 575, 34, 35, 36, 580, - 189, 21, 583, 21, 193, 25, 195, 25, 18, 690, - 22, 21, 34, 422, 203, 596, 597, 963, 368, 208, - 24, 210, 603, 25, 26, 22, 376, 21, 378, 520, - 521, 25, 137, 222, 223, 224, 963, 22, 454, 175, - 176, 622, 178, 67, 68, 69, 627, 559, 963, 963, - 963, 963, 32, 33, 175, 176, 637, 638, 179, 180, - 5, 642, 26, 644, 603, 18, 18, 963, 21, 21, - 34, 21, 422, 25, 21, 25, 181, 191, 25, 24, - 25, 26, 21, 779, 189, 666, 25, 92, 193, 34, - 195, 441, 422, 674, 19, 676, 20, 447, 448, 680, - 681, 451, 18, 92, 685, 21, 37, 38, 689, 690, - 27, 461, 603, 463, 695, 465, 24, 813, 799, 224, - 51, 52, 23, 473, 21, 21, 476, 18, 25, 25, - 480, 999, 18, 714, 18, 24, 24, 26, 138, 139, - 140, 141, 142, 143, 21, 34, 18, 5, 25, 21, - 1089, 690, 22, 175, 176, 177, 695, 179, 180, 21, - 21, 511, 25, 25, 25, 21, 24, 25, 26, 25, - 520, 521, 18, 175, 176, 177, 34, 179, 180, 24, - 24, 26, 37, 38, 675, 25, 677, 18, 769, 34, - 21, 1130, 49, 50, 610, 686, 51, 52, 689, 690, - 34, 35, 36, 904, 24, 18, 26, 18, 28, 559, - 560, 175, 176, 177, 18, 179, 180, 798, 799, 21, - 801, 18, 572, 25, 44, 575, 576, 47, 48, 559, - 175, 176, 177, 422, 179, 180, 34, 35, 36, 18, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 19, 21, 441, 603, 368, 25, 9, 21, 25, 21, - 799, 25, 376, 25, 378, 21, 967, 37, 38, 25, - 11, 21, 97, 24, 99, 25, 101, 11, 103, 53, - 54, 51, 52, 108, 985, 88, 175, 176, 177, 990, - 179, 180, 181, 118, 24, 120, 21, 21, 648, 649, - 965, 25, 652, 42, 43, 1006, 19, 888, 799, 659, - 660, 1012, 662, 88, 895, 21, 19, 422, 809, 25, - 1021, 20, 21, 988, 19, 675, 23, 677, 21, 22, - 175, 176, 177, 447, 179, 180, 686, 162, 19, 689, - 690, 691, 78, 79, 80, 81, 82, 83, 84, 1050, - 1051, 27, 1053, 21, 704, 771, 25, 25, 774, 21, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 559, 119, 24, 121, 1055, 175, 176, 177, 21, 179, - 180, 22, 25, 1084, 132, 133, 21, 135, 18, 137, - 138, 24, 973, 1089, 21, 976, 22, 511, 398, 399, - 400, 25, 150, 976, 21, 11, 21, 23, 25, 1105, - 25, 992, 24, 994, 32, 33, 766, 24, 999, 992, - 24, 1002, 1003, 21, 1125, 21, 1006, 25, 21, 25, - 27, 21, 25, 25, 1130, 25, 34, 35, 36, 21, - 931, 932, 23, 25, 21, 20, 560, 21, 25, 799, - 20, 25, 21, 992, 559, 1036, 25, 1038, 1039, 809, - 19, 575, 576, 21, 289, 21, 19, 25, 293, 25, - 1050, 49, 50, 889, 1055, 891, 892, 893, 72, 73, - 74, 72, 73, 74, 21, 976, 311, 53, 54, 314, - 20, 21, 20, 21, 5, 8, 25, 322, 498, 24, - 325, 992, 21, 22, 995, 125, 1087, 27, 22, 1090, - 175, 176, 1093, 25, 24, 20, 20, 1090, 138, 139, - 140, 141, 142, 143, 18, 145, 146, 27, 25, 18, - 25, 27, 25, 21, 648, 649, 39, 29, 25, 25, - 24, 18, 40, 25, 88, 1036, 660, 24, 55, 25, - 24, 21, 29, 30, 31, 32, 33, 34, 25, 25, - 8, 9, 10, 979, 1055, 981, 1147, 23, 25, 46, - 47, 48, 18, 1154, 25, 18, 18, 691, 18, 88, - 21, 931, 932, 21, 1075, 1076, 88, 22, 20, 20, - 18, 180, 25, 70, 20, 25, 0, 88, 88, 1090, - 20, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 73, 27, 963, 27, 88, 88, 967, 0, 88, - 88, 446, 135, 81, 137, 323, 976, 989, 453, 763, - 1121, 1122, 1066, 458, 111, 460, 1014, 877, 909, 1120, - 990, 990, 992, 468, 828, 995, 1086, 472, 72, 73, - 74, 465, 1090, 583, 78, 79, 80, 81, 82, 83, - 84, 677, 675, 112, 689, 1015, 1016, 1017, 181, 10, - 799, 345, 223, 1060, 1024, 511, 189, 422, 704, 963, - 193, -1, 195, -1, -1, -1, 1036, -1, -1, 137, - 203, -1, -1, -1, -1, -1, -1, -1, 175, 176, - 177, 178, -1, -1, -1, 1055, -1, -1, -1, -1, - -1, 224, -1, -1, -1, 715, 716, 717, 718, 719, - 720, -1, -1, -1, 1074, 1075, 1076, 1077, -1, -1, - 1080, 1081, -1, 181, -1, -1, 1086, -1, -1, -1, - 1090, 189, -1, -1, 364, 193, -1, 195, -1, -1, - -1, -1, 577, -1, -1, 203, -1, -1, -1, -1, - 208, -1, 210, 8, 9, 10, -1, -1, -1, -1, - 1120, 1121, 1122, 1123, 222, 223, 224, 602, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, 621, 72, 73, 74, - -1, 626, -1, 78, 79, 80, 81, 82, 83, 84, - -1, -1, -1, 326, -1, -1, -1, -1, -1, -1, - -1, 334, 335, 336, 337, 445, -1, -1, -1, 654, - -1, -1, -1, -1, -1, -1, -1, -1, 8, 9, - 10, -1, 355, -1, 844, 845, 846, -1, -1, -1, - 358, -1, -1, 366, -1, -1, -1, -1, -1, -1, - -1, -1, 8, 9, 10, -1, -1, -1, -1, -1, - 383, -1, -1, 493, 382, -1, -1, -1, 498, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 727, -1, -1, -1, -1, -1, -1, 422, - 418, -1, -1, -1, -1, 24, 429, -1, 27, -1, - 29, 30, 31, 32, 33, 34, 926, -1, -1, 549, - -1, 551, -1, 553, 554, -1, 181, 46, 47, 48, - -1, -1, -1, -1, 189, -1, -1, -1, 193, -1, - 195, -1, -1, -1, -1, -1, -1, -1, 203, 204, - -1, 70, 787, 208, -1, 210, -1, 137, -1, -1, - -1, -1, -1, -1, 422, -1, -1, 222, 223, 224, - -1, 601, -1, 8, 9, 10, -1, -1, -1, -1, - -1, 137, -1, 441, -1, -1, -1, -1, -1, -1, - -1, -1, 111, 623, -1, -1, -1, -1, -1, -1, - -1, 181, -1, -1, -1, -1, -1, -1, -1, 189, - -1, -1, -1, 193, -1, 195, -1, -1, -1, -1, - -1, -1, 652, 203, -1, 181, -1, 550, 208, -1, - 210, -1, -1, 189, -1, -1, 559, 193, -1, 195, - -1, -1, 222, 223, 224, 880, 881, 203, -1, -1, - -1, -1, 208, 888, 210, -1, 175, 176, 177, 178, - -1, -1, -1, 8, 9, 10, 222, 223, 224, -1, - -1, -1, -1, -1, 704, -1, -1, 912, -1, -1, - -1, -1, -1, -1, -1, 715, 716, 717, 718, 719, - 720, 721, 722, -1, 617, -1, -1, -1, -1, -1, - -1, 559, 137, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 634, -1, -1, 642, - -1, 644, -1, -1, -1, -1, 381, 650, -1, -1, - 653, -1, -1, -1, -1, -1, -1, -1, -1, 974, - -1, -1, -1, -1, -1, -1, 181, -1, -1, 779, - -1, -1, -1, -1, 189, -1, -1, -1, 193, -1, - 195, 679, -1, -1, -1, -1, -1, 422, 203, -1, - -1, -1, -1, 208, -1, 210, -1, -1, -1, -1, - 703, -1, -1, 813, -1, -1, 441, 222, 223, 224, - -1, 714, 137, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1040, -1, -1, -1, -1, - -1, -1, -1, -1, 844, 845, 846, 847, 848, 849, - 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, - 860, -1, 862, -1, -1, -1, 181, -1, -1, -1, - -1, -1, 422, -1, 189, -1, -1, -1, 193, -1, - 195, -1, -1, -1, -1, -1, -1, -1, 203, -1, - -1, 441, -1, 208, 782, 210, 422, 785, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 222, 223, 224, - -1, -1, -1, -1, -1, 441, -1, -1, -1, -1, - -1, -1, -1, 1128, -1, -1, 926, -1, -1, -1, - -1, -1, -1, -1, 559, -1, 829, -1, -1, 827, - 828, -1, -1, -1, -1, 833, 834, 835, 836, 837, - 838, 839, 840, 841, 842, 843, -1, -1, -1, -1, - -1, -1, -1, 963, 18, -1, -1, -1, -1, -1, - 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 19, 46, 47, 48, -1, 24, 885, -1, -1, - -1, 29, 30, 31, 32, 33, 34, -1, -1, 559, - -1, -1, -1, -1, -1, -1, 70, 422, 46, 47, - 48, -1, -1, 916, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 559, -1, -1, 441, -1, -1, -1, - -1, -1, 70, 0, 1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 24, 961, -1, - -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, - -1, -1, -1, 111, -1, -1, -1, -1, 45, 1089, - -1, -1, -1, -1, -1, -1, 984, -1, -1, -1, - -1, -1, -1, -1, -1, 1105, -1, 422, -1, -1, - 67, 68, 69, -1, 71, -1, -1, -1, 75, 76, - 77, 175, 176, 177, 178, -1, 441, -1, -1, -1, - 1130, -1, 89, 90, 91, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 175, 176, 177, - 178, 108, 109, 110, 559, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, -1, 179, 180, 181, 0, 1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 559, -1, -1, -1, -1, 24, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, + 61, 62, 63, 64, 88, 619, 8, 0, 443, 759, + 3, 398, 399, 318, 7, 406, 407, 785, 548, 0, + 81, 81, 26, 22, 18, 81, 442, 791, 400, 401, + 34, 648, 446, 648, 24, 34, 21, 24, 99, 702, + 25, 771, 779, 201, 105, 782, 18, 34, 206, 556, + 208, 5, 895, 114, 115, 116, 24, 648, 119, 9, + 10, 111, 220, 48, 49, 572, 34, 0, 26, 119, + 3, 25, 5, 134, 490, 21, 34, 18, 668, 28, + 141, 27, 696, 24, 28, 702, 600, 702, 81, 18, + 1011, 1012, 21, 34, 43, 402, 403, 404, 405, 43, + 81, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 702, 105, 5, 889, 879, 6, 7, 648, 85, + 86, 34, 9, 10, 874, 968, 119, 84, 212, 85, + 86, 899, 134, 97, 18, 99, 129, 101, 21, 103, + 201, 8, 686, 107, 497, 882, 24, 1068, 81, 24, + 1071, 21, 27, 117, 118, 1074, 1075, 27, 888, 34, + 890, 575, 95, 96, 599, 98, 471, 8, 32, 33, + 174, 175, 702, 177, 178, 174, 175, 179, 177, 178, + 770, 19, 598, 773, 24, 187, 119, 174, 175, 191, + 41, 193, 648, 1114, 107, 108, 160, 5, 1117, 24, + 975, 26, 977, 5, 55, 621, 174, 175, 174, 175, + 5, 135, 136, 137, 138, 139, 140, 25, 174, 175, + 222, 282, 361, 25, 648, 648, 287, 580, 288, 24, + 25, 26, 595, 174, 175, 48, 49, 298, 299, 34, + 301, 302, 298, 980, 24, 913, 702, 25, 26, 5, + 28, 201, 796, 24, 315, 41, 206, 648, 208, 315, + 321, 648, 24, 324, 8, 43, 857, 134, 18, 55, + 220, 221, 625, 21, 25, 26, 648, 25, 702, 702, + 438, 342, 174, 175, 18, 177, 178, 640, 24, 23, + 26, 39, 342, 134, 24, 909, 959, 27, 34, 174, + 175, 176, 363, 442, 34, 298, 52, 53, 301, 302, + 303, 702, 179, 886, 201, 702, 889, 20, 21, 206, + 187, 208, 315, 287, 191, 24, 193, 291, 321, 859, + 702, 16, 648, 220, 221, 419, 174, 175, 179, 177, + 178, 648, 959, 16, 959, 309, 187, 26, 312, 28, + 191, 490, 193, 21, 34, 222, 320, 25, 711, 323, + 776, 26, 18, 28, 43, 21, 174, 175, 959, 177, + 178, 16, 174, 175, 434, 177, 178, 16, 43, 174, + 175, 222, 177, 178, 445, 1094, 702, 448, 15, 445, + 134, 1100, 448, 1102, 455, 702, 457, 22, 459, 460, + 856, 462, 975, 21, 977, 22, 467, 25, 341, 470, + 18, 21, 22, 21, 32, 33, 477, 419, 174, 175, + 470, 177, 178, 174, 175, 22, 177, 178, 489, 959, + 854, 492, 855, 494, 18, 179, 497, 21, 174, 175, + 29, 177, 178, 179, 174, 175, 176, 191, 39, 193, + 25, 26, 445, 28, 24, 448, 26, 844, 845, 598, + 40, 852, 853, 18, 34, 458, 21, 460, 43, 462, + 25, 395, 396, 397, 846, 847, 54, 470, 222, 443, + 473, 21, 621, 19, 477, 25, 450, 18, 438, 91, + 21, 455, 23, 457, 174, 175, 556, 177, 178, 18, + 22, 465, 21, 959, 918, 469, 1050, 18, 48, 49, + 21, 24, 572, 26, 1031, 91, 577, 18, 451, 580, + 21, 34, 686, 22, 517, 518, 85, 86, 18, 24, + 21, 21, 593, 594, 25, 959, 959, 18, 901, 600, + 21, 848, 849, 850, 851, 174, 175, 91, 177, 178, + 600, 438, 419, 555, 21, 19, 115, 116, 25, 620, + 18, 52, 53, 21, 625, 32, 33, 25, 959, 21, + 129, 495, 959, 25, 635, 636, 122, 21, 419, 640, + 20, 25, 8, 9, 10, 37, 38, 959, 91, 135, + 136, 137, 138, 139, 140, 27, 142, 143, 50, 51, + 963, 662, 21, 24, 48, 49, 25, 600, 21, 670, + 574, 672, 25, 37, 38, 676, 677, 1033, 981, 24, + 681, 26, 18, 986, 685, 686, 50, 51, 18, 21, + 21, 692, 796, 25, 25, 599, 686, 776, 1001, 32, + 33, 994, 692, 959, 1007, 37, 38, 963, 5, 24, + 711, 26, 959, 1016, 24, 619, 26, 18, 50, 51, + 624, 174, 175, 23, 177, 178, 24, 24, 25, 26, + 986, 1087, 811, 22, 607, 419, 18, 34, 671, 96, + 673, 98, 1045, 1046, 25, 1048, 650, 21, 555, 682, + 25, 25, 685, 686, 1010, 1011, 1012, 24, 24, 26, + 21, 28, 21, 1019, 25, 766, 25, 21, 134, 21, + 18, 25, 18, 25, 555, 1078, 43, 29, 24, 46, + 47, 52, 53, 29, 30, 31, 32, 33, 34, 48, + 49, 118, 21, 120, 795, 796, 25, 798, 21, 45, + 46, 47, 25, 18, 131, 132, 796, 134, 18, 136, + 137, 18, 1068, 179, 18, 1071, 1119, 42, 1074, 1075, + 724, 187, 149, 69, 1080, 191, 21, 193, 19, 21, + 25, 37, 38, 25, 21, 201, 202, 21, 25, 9, + 206, 25, 208, 8, 50, 51, 48, 49, 712, 713, + 714, 715, 716, 717, 220, 221, 222, 25, 1114, 20, + 21, 1117, 11, 796, 110, 21, 23, 20, 21, 25, + 24, 11, 26, 806, 28, 361, 24, 21, 21, 21, + 784, 25, 25, 25, 885, 24, 21, 21, 22, 43, + 25, 892, 46, 47, 87, 768, 174, 175, 771, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 21, 19, 21, 174, 175, + 176, 25, 21, 19, 180, 19, 25, 961, 19, 20, + 34, 35, 36, 24, 19, 27, 1050, 24, 29, 30, + 31, 32, 33, 34, 1033, 21, 442, 21, 21, 25, + 984, 25, 25, 87, 45, 46, 47, 132, 969, 134, + 25, 972, 21, 877, 878, 22, 972, 841, 842, 843, + 21, 885, 21, 21, 25, 18, 25, 988, 69, 990, + 24, 21, 988, 994, 927, 928, 997, 998, 988, 21, + 25, 1001, 21, 25, 490, 909, 25, 21, 1087, 495, + 22, 25, 378, 886, 179, 888, 889, 890, 11, 21, + 1099, 21, 187, 25, 27, 25, 191, 21, 193, 110, + 1031, 25, 24, 1034, 21, 24, 201, 25, 25, 972, + 34, 35, 36, 21, 21, 1045, 21, 25, 25, 1050, + 25, 24, 21, 419, 20, 988, 25, 222, 922, 21, + 546, 21, 548, 25, 550, 25, 970, 8, 9, 10, + 19, 23, 438, 77, 78, 79, 80, 81, 82, 83, + 1081, 20, 19, 1084, 5, 8, 9, 10, 1084, 23, + 66, 67, 68, 174, 175, 176, 27, 21, 1031, 180, + 20, 20, 975, 25, 977, 34, 35, 36, 34, 35, + 36, 24, 598, 71, 72, 73, 22, 1050, 71, 72, + 73, 24, 8, 9, 10, 25, 18, 25, 27, 18, + 25, 1035, 25, 27, 21, 621, 1069, 1070, 29, 1140, + 25, 355, 24, 39, 54, 1146, 71, 72, 73, 25, + 40, 1084, 77, 78, 79, 80, 81, 82, 83, 324, + 87, 25, 648, 24, 18, 379, 331, 332, 333, 334, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 25, 1115, 1116, 25, 25, 25, 352, 21, 555, + 18, 25, 18, 134, 21, 18, 178, 21, 363, 87, + 22, 415, 20, 87, 20, 25, 87, 87, 25, 87, + 189, 134, 71, 72, 73, 380, 702, 1121, 77, 78, + 79, 80, 81, 82, 83, 87, 712, 713, 714, 715, + 716, 717, 718, 719, 18, 20, 72, 20, 179, 27, + 87, 27, 87, 0, 0, 321, 187, 760, 134, 81, + 191, 985, 193, 1009, 419, 1060, 179, 874, 906, 1114, + 201, 426, 986, 1080, 187, 206, 825, 208, 191, 580, + 193, 1084, 462, 673, 8, 9, 10, 671, 201, 220, + 221, 222, 796, 206, 685, 208, 111, 10, 342, 221, + 776, 1054, 508, 179, 419, 959, 702, 220, 221, 222, + -1, 187, -1, -1, 23, 191, -1, 193, -1, -1, + -1, -1, -1, -1, -1, 201, -1, -1, -1, -1, + 206, -1, 208, -1, -1, 811, -1, -1, 8, 9, + 10, -1, -1, -1, 220, 221, 222, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, -1, -1, -1, + -1, -1, -1, -1, -1, 841, 842, 843, 844, 845, + 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, + 856, 857, -1, 859, 8, 9, 10, -1, -1, -1, + -1, -1, 547, -1, -1, -1, 365, -1, -1, -1, + 555, -1, -1, -1, 373, -1, 375, -1, -1, 19, + 134, -1, -1, -1, 24, -1, -1, -1, -1, 29, + 30, 31, 32, 33, 34, -1, -1, -1, 632, -1, + -1, -1, -1, -1, -1, 45, 46, 47, -1, -1, + -1, -1, -1, -1, -1, -1, 922, -1, -1, -1, + -1, -1, -1, -1, -1, 179, 425, -1, -1, 69, + 615, -1, -1, 187, 134, -1, -1, 191, -1, 193, + -1, 675, -1, -1, -1, 444, -1, 201, -1, -1, + -1, -1, 206, 959, 208, 640, -1, -1, 419, -1, + -1, 646, -1, -1, 649, -1, 220, 221, 222, -1, + 110, -1, -1, -1, -1, -1, 419, 438, -1, 179, + 134, 480, -1, -1, -1, -1, -1, 187, -1, -1, + -1, 191, -1, 193, -1, 438, -1, -1, -1, -1, + -1, 201, -1, -1, -1, -1, 206, -1, 208, 508, + -1, -1, -1, 419, -1, -1, 701, -1, -1, -1, + 220, 221, 222, -1, -1, 179, 711, 1033, -1, -1, + -1, -1, 438, 187, 174, 175, 176, 191, -1, 193, + 180, -1, -1, -1, -1, 779, -1, 201, 782, -1, + -1, -1, 206, -1, 208, -1, -1, 556, -1, -1, + -1, -1, -1, -1, -1, -1, 220, 221, 222, -1, + -1, -1, -1, 572, 573, -1, -1, -1, -1, -1, + -1, 1087, -1, -1, -1, -1, -1, -1, -1, -1, + 824, 825, -1, 1099, 555, -1, 830, 831, 832, 833, + 834, 835, 836, 837, 838, 839, 840, -1, -1, -1, + -1, 610, 555, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 627, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 826, -1, -1, -1, 644, 645, -1, 882, 555, + -1, -1, -1, -1, -1, -1, -1, 656, -1, -1, + -1, -1, -1, -1, 1, 419, -1, -1, -1, 6, + 7, 8, -1, -1, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 438, -1, -1, 24, 25, 688, + -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, + 699, -1, -1, -1, -1, 42, -1, -1, 45, 46, + 47, -1, -1, -1, -1, -1, -1, -1, -1, 419, + -1, -1, -1, -1, -1, -1, -1, -1, 913, -1, + -1, -1, 69, -1, -1, -1, -1, -1, 438, -1, + -1, -1, -1, -1, -1, -1, 980, -1, -1, -1, + -1, -1, -1, -1, 91, 92, 93, 94, 95, 96, + 97, -1, -1, -1, -1, 419, -1, -1, -1, 106, + -1, -1, 957, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 438, -1, -1, -1, -1, -1, + -1, 0, 1, -1, -1, -1, -1, -1, -1, -1, + -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 44, -1, 174, 175, 176, + 177, 178, -1, 180, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 555, -1, 66, 67, 68, + -1, 70, -1, -1, -1, 74, 75, 76, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, + 89, 90, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 107, 108, + 109, 555, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, -1, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, -1, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, + 179, 180, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 67, 68, 69, -1, 71, -1, -1, -1, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 1, 179, 180, 181, -1, 6, 7, - 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, - -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, 42, 43, -1, 45, 46, 47, - 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, - 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, + 68, -1, 70, -1, -1, -1, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, - 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 88, 89, 90, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, -1, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, -1, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 1, -1, -1, -1, -1, 6, - 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, -1, -1, -1, -1, 24, -1, -1, - -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, -1, -1, -1, 42, 43, -1, -1, 46, - 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, - 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 1, -1, -1, -1, -1, - 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, - 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, + 168, 169, 170, 171, 172, 173, 174, 175, 1, 177, + 178, 179, 180, 6, 7, 8, -1, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, + -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, + -1, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 67, 68, 69, 70, -1, -1, -1, -1, -1, + -1, -1, -1, 66, 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 1, -1, -1, -1, - -1, 6, 7, 8, -1, -1, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, - 25, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, -1, -1, 42, 43, 1, - -1, 46, 47, 48, 6, 7, 8, -1, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, - -1, -1, 24, -1, -1, 70, -1, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, - 42, 43, -1, -1, 46, 47, 48, 92, 93, 94, - 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, - -1, -1, 107, -1, -1, -1, 111, -1, 70, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, + 93, 94, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, -1, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 1, -1, + -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, + -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, + -1, -1, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 66, 67, 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 92, 93, 94, 95, 96, 97, 98, -1, -1, -1, - -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, + 93, 94, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, -1, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 1, -1, + -1, -1, -1, 6, 7, 8, -1, -1, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, + -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, + -1, -1, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 66, 67, 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 175, 176, 177, 178, 179, 180, -1, -1, 1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, + 93, 94, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, -1, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, -1, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 1, -1, -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, - 33, 34, -1, 175, 176, 177, 178, 179, 180, 42, - 43, 1, -1, 46, 47, 48, 6, 7, 8, -1, - -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, -1, 24, -1, -1, 70, -1, 29, + 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, + 1, -1, 45, 46, 47, 6, 7, 8, -1, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, + -1, -1, -1, 24, -1, -1, 69, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, 42, -1, -1, 45, 46, 47, -1, 91, 92, + 93, 94, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, -1, 106, -1, -1, -1, 110, 69, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 91, 92, 93, 94, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, -1, 106, -1, -1, -1, 110, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 174, 175, 176, 177, 178, -1, 180, -1, 1, + -1, -1, -1, -1, 6, 7, 8, -1, -1, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, + 32, 33, 34, 174, 175, 176, 177, 178, -1, 180, + 42, 1, -1, 45, 46, 47, 6, 7, 8, -1, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, -1, -1, -1, 24, -1, -1, 69, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, - -1, -1, 42, 43, -1, -1, 46, 47, 48, 92, - 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, - -1, -1, -1, -1, 107, -1, -1, -1, 111, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 42, -1, -1, 45, 46, 47, -1, 91, + 92, 93, 94, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, -1, 106, -1, -1, -1, 110, 69, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 92, 93, 94, 95, 96, 97, 98, -1, - -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, - -1, 111, -1, -1, -1, 19, 20, -1, -1, -1, - 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, - 34, -1, 175, 176, 177, 178, 179, 180, -1, -1, - 1, -1, 46, 47, 48, 6, 7, 8, -1, 10, + -1, -1, 92, 93, 94, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, + 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 174, 175, 176, 177, 178, -1, 180, -1, + 1, -1, -1, -1, -1, 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, 70, -1, 29, 30, - 31, 32, 33, 34, -1, 175, 176, 177, 178, 179, - 180, 42, 43, 1, -1, 46, 47, 48, 6, 7, - 8, -1, -1, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, -1, 24, 111, -1, 70, - -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, 42, 43, -1, -1, 46, 47, - 48, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, - 111, -1, 70, -1, 19, -1, -1, -1, -1, 24, - -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, 175, 176, 177, 178, 93, 94, 95, 96, 97, - 98, 46, 47, 48, -1, -1, -1, -1, -1, 107, - -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, - -1, -1, -1, -1, 175, 176, 177, 178, 179, 180, - -1, -1, 1, -1, -1, -1, -1, 6, 7, 8, + -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, + 31, 32, 33, 34, 174, 175, 176, 177, 178, -1, + 180, 42, 1, -1, 45, 46, 47, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, -1, -1, -1, -1, 24, 111, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, 175, 176, 177, - 178, 179, 180, 42, 43, -1, -1, 46, 47, 48, - -1, -1, -1, -1, 24, 25, -1, -1, -1, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, - -1, 70, -1, -1, -1, -1, 46, 47, 48, -1, + 19, -1, -1, -1, -1, 24, -1, -1, 69, -1, + 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, + -1, -1, -1, 42, -1, -1, 45, 46, 47, -1, + -1, 92, 93, 94, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, -1, 106, -1, -1, -1, 110, + 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 92, 93, 94, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, -1, 106, -1, -1, + -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 174, 175, 176, 177, 178, -1, 180, + -1, -1, -1, -1, 6, 7, 8, -1, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, + 32, 33, 34, -1, -1, 174, 175, 176, 177, 178, + 42, 180, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 175, 176, 177, 178, 93, 94, 95, 96, 97, 98, - 70, -1, -1, -1, -1, -1, -1, -1, 107, 6, - 7, 8, 111, 10, 11, 12, 13, 14, 15, 16, + -1, -1, -1, -1, -1, -1, -1, 69, 70, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 92, 93, 94, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, -1, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, -1, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 6, + 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, 111, -1, -1, -1, 42, 43, -1, 45, 46, - 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 42, -1, 44, 45, 46, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 70, 71, -1, 175, 176, 177, 178, - 179, 180, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, - 97, 98, -1, -1, -1, 175, 176, 177, 178, -1, + -1, -1, 69, 70, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 92, 93, 94, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, + 117, 118, 119, 120, -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, + -1, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 6, 7, 8, -1, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, 42, 43, -1, 45, 46, 47, 48, -1, -1, + 177, 178, 179, 180, 6, 7, 8, -1, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, + 42, -1, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 6, 7, 8, -1, 10, 11, 12, 13, 14, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 92, 93, 94, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, -1, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, -1, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 6, + 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, + -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 45, 46, + 47, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, - -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, - 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, + -1, -1, 69, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, + 45, 46, 47, -1, -1, 92, 93, 94, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, -1, 106, + -1, -1, -1, 110, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, - 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 6, 7, 8, + -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, + -1, 106, -1, -1, -1, 110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 174, 175, 176, + 177, 178, -1, 180, -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 46, 47, 48, - 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, 70, -1, 29, 30, 31, 32, 33, 34, -1, + 29, 30, 31, 32, 33, 34, -1, -1, -1, 174, + 175, 176, 177, 178, -1, 180, 45, 46, 47, 6, + 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, + 69, -1, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 45, 46, + 47, -1, -1, 92, 93, 94, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, -1, 106, -1, -1, + -1, 110, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 46, 47, 48, -1, 93, 94, 95, 96, 97, 98, - -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, - -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 92, 93, 94, 95, 96, + 97, -1, -1, -1, -1, -1, -1, -1, -1, 106, + -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, - 24, -1, -1, 27, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, -1, 175, 176, 177, 178, - 179, 180, 46, 47, 48, 6, 7, 8, -1, 10, + -1, -1, -1, -1, -1, 174, 175, 176, 177, 178, + -1, 180, -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, 70, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, 175, - 176, 177, 178, 179, 180, 46, 47, 48, 6, 7, - 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, -1, 24, 111, -1, 70, - -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 46, 47, - 48, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, - 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, 174, 175, 176, + 177, 178, -1, 180, 45, 46, 47, 6, 7, 8, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, -1, -1, -1, 24, -1, -1, 69, -1, + 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 45, 46, 47, -1, + -1, 92, 93, 94, 95, 96, 97, -1, -1, -1, + -1, -1, -1, -1, -1, 106, -1, -1, -1, 110, + 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 175, 176, 177, 178, 93, 94, 95, 96, 97, - 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, - -1, -1, -1, 111, -1, -1, -1, -1, 24, 25, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, 175, 176, 177, 178, 179, 180, - 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, 92, 93, 94, 95, 96, 97, -1, + -1, -1, -1, -1, -1, -1, -1, 106, -1, -1, + -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 174, 175, 176, 177, 178, -1, 180, + -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, 175, 176, 177, - 178, 179, 180, 46, 47, 48, 6, 7, 8, -1, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, -1, 24, 111, -1, 70, -1, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 46, 47, 48, -1, - 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, - -1, -1, -1, -1, 107, -1, -1, -1, 111, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, - 176, 177, 178, 93, 94, 95, 96, 97, 98, -1, - -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, - -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, 174, 175, 176, 177, 178, + -1, 180, 45, 46, 47, 6, 7, 8, -1, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, + -1, -1, -1, 24, -1, -1, 69, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 45, 46, 47, -1, -1, 92, + 93, 94, 95, 96, 97, -1, -1, -1, -1, -1, + -1, -1, -1, 106, -1, -1, -1, 110, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 175, 176, 177, 178, 179, 180, -1, -1, - -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, - -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, 175, 176, 177, 178, 179, - 180, 46, 47, 48, 6, 7, 8, -1, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, - -1, -1, 24, -1, -1, 70, -1, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 46, 47, 48, -1, 93, 94, - 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, - -1, -1, 107, -1, -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, - -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, - -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, - -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, + -1, 92, 93, 94, 95, 96, 97, 18, -1, -1, + -1, -1, -1, -1, -1, 106, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 175, 176, 177, 178, 179, 180, -1, -1, 67, 68, - 69, -1, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, 174, 175, 176, 177, 178, -1, 180, -1, -1, + -1, -1, -1, -1, -1, 66, 67, 68, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 175, 176, 177, 178, 179, 180, 108, - 109, 110, -1, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 18, -1, 177, -1, - -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 174, 175, 176, 177, 178, -1, 180, + -1, -1, -1, -1, -1, -1, 107, 108, 109, -1, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, -1, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 18, -1, -1, -1, -1, 179, 180, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 45, -1, -1, -1, -1, -1, 24, - 25, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, - -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 111, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 19, -1, 177, -1, -1, 24, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, - 175, 176, 177, 178, -1, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 71, -1, 46, 47, 48, + -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 107, 108, 109, -1, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, -1, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, -1, + -1, 19, -1, -1, 179, 180, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 111, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 19, - -1, 177, -1, -1, -1, 181, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 44, -1, 19, -1, + -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, -1, 70, -1, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, 175, 176, 177, 178, + -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, + 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, -1, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 110, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 19, -1, -1, -1, + -1, 179, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 44, -1, 174, 175, 176, -1, -1, -1, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 108, 109, - 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, -1, -1, 177, 108, 109, - 110, 181, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 22, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, -1, -1, 177, -1, -1, - -1, 181, -1, 67, 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, - 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 34, -1, -1, -1, 108, 109, 110, -1, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, -1, -1, -1, 108, 109, 110, 181, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 24, 179, 180, 181, -1, 29, - 30, 31, 32, 33, 34, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, 46, 47, 48, -1, - -1, -1, -1, -1, -1, 24, -1, 46, 47, 48, - 29, 30, 31, 32, 33, 34, 24, -1, -1, -1, - 70, 29, 30, 31, 32, 33, 34, 46, 47, 48, - -1, 70, -1, -1, -1, -1, -1, -1, 46, 47, - 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 111, 70, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, + -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 107, 108, 109, -1, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, -1, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 24, -1, -1, -1, -1, 179, 180, 107, 108, + 109, 34, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, -1, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, -1, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, -1, -1, -1, -1, -1, + 179, 180, -1, -1, 107, 108, 109, -1, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, -1, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 24, 177, 178, 179, 180, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, 42, 24, 25, 45, 46, 47, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 45, 46, 47, -1, 24, 69, -1, + 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 69, 45, 46, + 47, -1, 24, -1, -1, 27, -1, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, -1, -1, 110, + -1, -1, 69, 45, 46, 47, -1, 24, 25, -1, + -1, -1, 29, 30, 31, 32, 33, 34, 110, -1, + -1, -1, -1, -1, -1, -1, 24, 69, 45, 46, + 47, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, -1, -1, 110, -1, -1, -1, 45, 46, 47, + -1, 24, 69, -1, -1, -1, 29, 30, 31, 32, + 33, 34, -1, 174, 175, 176, -1, -1, 110, 180, + -1, 69, 45, 46, 47, -1, -1, -1, -1, -1, + -1, -1, 174, 175, 176, -1, -1, -1, 180, -1, + -1, -1, -1, 110, 24, -1, 69, -1, -1, 29, + 30, 31, 32, 33, 34, -1, -1, 174, 175, 176, + -1, -1, 110, 180, -1, 45, 46, 47, -1, 24, + -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, + -1, -1, 174, 175, 176, -1, -1, 110, 180, 69, + 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 174, 175, 176, + -1, -1, -1, 180, 69, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 174, 175, 176, -1, + 110, -1, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 111, -1, 42, 43, -1, -1, -1, + -1, 174, 175, 176, -1, 110, -1, 180, -1, -1, + -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 175, 176, 177, 178, -1, - -1, -1, -1, -1, -1, -1, 175, 176, 177, 178, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 175, 176, 177, 178, - -1, -1, -1, -1, -1, -1, -1, 175, 176, 177, - 178, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 45, -1, - 177, -1, -1, -1, 181, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 174, 175, 176, -1, -1, -1, + 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, + 175, 176, -1, -1, -1, 180, 107, 108, 109, -1, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, -1, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 44, -1, -1, -1, -1, 179, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 67, 68, 69, -1, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 66, 67, 68, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 45, -1, - 177, -1, -1, -1, 181, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 107, 108, 109, -1, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, -1, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 44, -1, -1, -1, -1, 179, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, -1, -1, - 177, 67, 68, 69, 181, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 107, 108, 109, -1, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, -1, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 66, 67, 68, -1, -1, 179, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, -1, - -1, 177, 89, 90, 91, 181, -1, -1, -1, -1, + -1, -1, -1, -1, 107, 108, 109, -1, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, -1, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, -1, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 66, 67, 68, -1, -1, 179, 180, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, -1, -1, - 177, 108, 109, 110, 181, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, -1, -1, - 177, -1, -1, -1, 181 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 107, 108, 109, -1, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, -1, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 88, + 89, 90, -1, -1, 179, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 107, 108, + 109, -1, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, -1, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, -1, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, -1, -1, -1, -1, -1, + 179, 180, 107, 108, 109, -1, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, -1, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, -1, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, -1, + -1, -1, -1, -1, 179, 180 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/misc/bison.simple" +#line 3 "/usr/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -2696,7 +2647,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/usr/share/misc/bison.simple" +#line 196 "/usr/share/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 *. @@ -3001,52 +2952,52 @@ yyreduce: switch (yyn) { case 5: -#line 240 "cgrammar.y" +#line 223 "cgrammar.y" { uentry_clearDecl (); ; break;} case 6: -#line 241 "cgrammar.y" +#line 224 "cgrammar.y" { uentry_clearDecl (); ; break;} case 7: -#line 242 "cgrammar.y" +#line 225 "cgrammar.y" { uentry_clearDecl (); ; break;} case 8: -#line 243 "cgrammar.y" +#line 226 "cgrammar.y" { uentry_clearDecl (); ; break;} case 9: -#line 244 "cgrammar.y" +#line 227 "cgrammar.y" { uentry_clearDecl (); ; break;} case 10: -#line 245 "cgrammar.y" +#line 228 "cgrammar.y" { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ; break;} case 11: -#line 246 "cgrammar.y" +#line 229 "cgrammar.y" { uentry_clearDecl (); ; break;} case 12: -#line 250 "cgrammar.y" +#line 233 "cgrammar.y" { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ; break;} case 13: -#line 252 "cgrammar.y" +#line 235 "cgrammar.y" { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ; break;} case 14: -#line 255 "cgrammar.y" +#line 238 "cgrammar.y" { context_enterFunctionDecl (); ; break;} case 15: -#line 256 "cgrammar.y" +#line 239 "cgrammar.y" { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); context_exitFunctionDecl (); ; break;} case 16: -#line 261 "cgrammar.y" +#line 244 "cgrammar.y" { qtype qint = qtype_create (ctype_int); yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); @@ -3054,27 +3005,27 @@ case 16: ; break;} case 17: -#line 267 "cgrammar.y" +#line 250 "cgrammar.y" { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; break;} case 19: -#line 272 "cgrammar.y" +#line 255 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; break;} case 20: -#line 275 "cgrammar.y" +#line 258 "cgrammar.y" { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; break;} case 21: -#line 277 "cgrammar.y" +#line 260 "cgrammar.y" { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ; break;} case 22: -#line 279 "cgrammar.y" +#line 262 "cgrammar.y" { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ; break;} case 23: -#line 281 "cgrammar.y" +#line 264 "cgrammar.y" { int value; @@ -3092,12 +3043,12 @@ case 23: ; break;} case 24: -#line 297 "cgrammar.y" +#line 280 "cgrammar.y" { setCurrentParams (uentryList_missingParams); ; break;} case 25: -#line 300 "cgrammar.y" +#line 283 "cgrammar.y" { /* need to support globals and modifies here! */ ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), uentryList_makeMissingParams ()); @@ -3107,31 +3058,31 @@ case 25: ; break;} case 26: -#line 308 "cgrammar.y" +#line 291 "cgrammar.y" { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 27: -#line 311 "cgrammar.y" +#line 294 "cgrammar.y" { clearCurrentParams (); yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist)); context_popLoc (); ; break;} case 28: -#line 317 "cgrammar.y" +#line 300 "cgrammar.y" { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; break;} case 29: -#line 319 "cgrammar.y" +#line 302 "cgrammar.y" { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ; break;} case 30: -#line 321 "cgrammar.y" +#line 304 "cgrammar.y" { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ; break;} case 31: -#line 323 "cgrammar.y" +#line 306 "cgrammar.y" { int value; @@ -3149,12 +3100,12 @@ case 31: ; break;} case 32: -#line 339 "cgrammar.y" +#line 322 "cgrammar.y" { setCurrentParams (uentryList_missingParams); ; break;} case 33: -#line 342 "cgrammar.y" +#line 325 "cgrammar.y" { /* need to support globals and modifies here! */ ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), uentryList_makeMissingParams ()); @@ -3164,166 +3115,166 @@ case 33: ; break;} case 34: -#line 350 "cgrammar.y" +#line 333 "cgrammar.y" { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 35: -#line 353 "cgrammar.y" +#line 336 "cgrammar.y" { clearCurrentParams (); yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist)); context_popLoc (); ; break;} case 36: -#line 360 "cgrammar.y" +#line 343 "cgrammar.y" { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 37: -#line 361 "cgrammar.y" +#line 344 "cgrammar.y" { clearCurrentParams (); ; break;} case 38: -#line 362 "cgrammar.y" +#line 345 "cgrammar.y" { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ; break;} case 39: -#line 365 "cgrammar.y" +#line 348 "cgrammar.y" { exprNode_checkMacroBody (yyvsp[-1].expr); ; break;} case 40: -#line 366 "cgrammar.y" +#line 349 "cgrammar.y" { exprNode_checkIterBody (yyvsp[-1].expr); ; break;} case 41: -#line 367 "cgrammar.y" +#line 350 "cgrammar.y" { exprNode_checkIterEnd (yyvsp[-1].expr); ; break;} case 42: -#line 368 "cgrammar.y" +#line 351 "cgrammar.y" { exprChecks_checkEmptyMacroBody (); ; break;} case 43: -#line 371 "cgrammar.y" +#line 354 "cgrammar.y" { declareFunction (yyvsp[0].ntyp); ; break;} case 44: -#line 374 "cgrammar.y" +#line 357 "cgrammar.y" { setProcessingGlobMods (); ; break;} case 45: -#line 375 "cgrammar.y" +#line 358 "cgrammar.y" { clearProcessingGlobMods (); ; break;} case 46: -#line 378 "cgrammar.y" +#line 361 "cgrammar.y" { setProcessingGlobMods (); ; break;} case 47: -#line 379 "cgrammar.y" +#line 362 "cgrammar.y" { clearProcessingGlobMods (); ; break;} case 54: -#line 394 "cgrammar.y" +#line 377 "cgrammar.y" { ; ; break;} case 55: -#line 395 "cgrammar.y" +#line 378 "cgrammar.y" { ; ; break;} case 56: -#line 398 "cgrammar.y" +#line 381 "cgrammar.y" { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ; break;} case 57: -#line 401 "cgrammar.y" +#line 384 "cgrammar.y" { yyval.sr = uentry_getSref (yyvsp[0].entry); ; break;} case 58: -#line 402 "cgrammar.y" +#line 385 "cgrammar.y" { yyval.sr = globListUnrecognized (yyvsp[0].cname); ; break;} case 59: -#line 405 "cgrammar.y" +#line 388 "cgrammar.y" { yyval.typequal = qual_createUndef (); ; break;} case 60: -#line 406 "cgrammar.y" +#line 389 "cgrammar.y" { yyval.typequal = qual_createKilled (); ; break;} case 61: -#line 407 "cgrammar.y" +#line 390 "cgrammar.y" { yyval.typequal = qual_createOut (); ; break;} case 62: -#line 408 "cgrammar.y" +#line 391 "cgrammar.y" { yyval.typequal = qual_createIn (); ; break;} case 63: -#line 409 "cgrammar.y" +#line 392 "cgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} case 64: -#line 412 "cgrammar.y" +#line 395 "cgrammar.y" { yyval.tquallist = qualList_undefined; ; break;} case 65: -#line 413 "cgrammar.y" +#line 396 "cgrammar.y" { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ; break;} case 66: -#line 416 "cgrammar.y" +#line 399 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 67: -#line 418 "cgrammar.y" +#line 401 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 68: -#line 419 "cgrammar.y" +#line 402 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 69: -#line 421 "cgrammar.y" +#line 404 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 70: -#line 423 "cgrammar.y" +#line 406 "cgrammar.y" { setFunctionNoGlobals (); setFunctionModifies (sRefSet_single (sRef_makeNothing ())); ; break;} case 73: -#line 430 "cgrammar.y" +#line 413 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 74: -#line 432 "cgrammar.y" +#line 415 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 75: -#line 433 "cgrammar.y" +#line 416 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 76: -#line 435 "cgrammar.y" +#line 418 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 77: -#line 437 "cgrammar.y" +#line 420 "cgrammar.y" { setFunctionNoGlobals (); setFunctionModifies (sRefSet_single (sRef_makeNothing ())); ; break;} case 82: -#line 449 "cgrammar.y" +#line 432 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 83: -#line 454 "cgrammar.y" +#line 437 "cgrammar.y" { setFunctionModifies (yyvsp[0].srset); exitParamsTemp (); sRef_clearGlobalScopeSafe (); @@ -3331,14 +3282,14 @@ case 83: ; break;} case 84: -#line 462 "cgrammar.y" +#line 445 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 85: -#line 467 "cgrammar.y" +#line 450 "cgrammar.y" { setFunctionModifies (yyvsp[0].srset); exitParamsTemp (); sRef_clearGlobalScopeSafe (); @@ -3346,39 +3297,39 @@ case 85: ; break;} case 95: -#line 491 "cgrammar.y" +#line 474 "cgrammar.y" { yyval.sck = SP_ISONLY; ; break;} case 96: -#line 492 "cgrammar.y" +#line 475 "cgrammar.y" { yyval.sck = SP_ISOBSERVER; ; break;} case 97: -#line 493 "cgrammar.y" +#line 476 "cgrammar.y" { yyval.sck = SP_ISEXPOSED; ; break;} case 98: -#line 494 "cgrammar.y" +#line 477 "cgrammar.y" { yyval.sck = SP_ISDEPENDENT; ; break;} case 99: -#line 495 "cgrammar.y" +#line 478 "cgrammar.y" { yyval.sck = SP_ISOWNED; ; break;} case 100: -#line 496 "cgrammar.y" +#line 479 "cgrammar.y" { yyval.sck = SP_ISSHARED; ; break;} case 101: -#line 497 "cgrammar.y" +#line 480 "cgrammar.y" { yyval.sck = SP_ISNULL; ; break;} case 102: -#line 498 "cgrammar.y" +#line 481 "cgrammar.y" { yyval.sck = SP_ISNOTNULL; ; break;} case 103: -#line 502 "cgrammar.y" +#line 485 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); @@ -3386,7 +3337,7 @@ case 103: ; break;} case 104: -#line 508 "cgrammar.y" +#line 491 "cgrammar.y" { setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok); exitParamsTemp (); @@ -3395,7 +3346,7 @@ case 104: ; break;} case 105: -#line 515 "cgrammar.y" +#line 498 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); @@ -3403,7 +3354,7 @@ case 105: ; break;} case 106: -#line 521 "cgrammar.y" +#line 504 "cgrammar.y" { setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok); exitParamsTemp (); @@ -3412,7 +3363,7 @@ case 106: ; break;} case 107: -#line 530 "cgrammar.y" +#line 513 "cgrammar.y" { qtype qint = qtype_create (ctype_int); yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); @@ -3420,26 +3371,26 @@ case 107: ; break;} case 108: -#line 536 "cgrammar.y" +#line 519 "cgrammar.y" { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; break;} case 109: -#line 539 "cgrammar.y" +#line 522 "cgrammar.y" { checkDoneParams (); context_enterInnerContext (); ; break;} case 110: -#line 541 "cgrammar.y" +#line 524 "cgrammar.y" { exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; break;} case 111: -#line 546 "cgrammar.y" +#line 529 "cgrammar.y" { doneParams (); context_enterInnerContext (); ; break;} case 112: -#line 548 "cgrammar.y" +#line 531 "cgrammar.y" { context_exitInner (yyvsp[0].expr); exprNode_checkFunctionBody (yyvsp[0].expr); @@ -3447,7 +3398,7 @@ case 112: ; break;} case 113: -#line 556 "cgrammar.y" +#line 539 "cgrammar.y" { context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); exprNode_checkFunction (context_getHeader (), yyvsp[0].expr); @@ -3455,111 +3406,111 @@ case 113: ; break;} case 114: -#line 563 "cgrammar.y" +#line 546 "cgrammar.y" { yyval.srset = yyvsp[-2].srset; ; break;} case 115: -#line 564 "cgrammar.y" +#line 547 "cgrammar.y" { yyval.srset = sRefSet_new (); ; break;} case 116: -#line 567 "cgrammar.y" +#line 550 "cgrammar.y" { yyval.srset = yyvsp[-1].srset; ; break;} case 117: -#line 568 "cgrammar.y" +#line 551 "cgrammar.y" { yyval.srset = sRefSet_new (); ; break;} case 118: -#line 571 "cgrammar.y" +#line 554 "cgrammar.y" { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ; break;} case 119: -#line 572 "cgrammar.y" +#line 555 "cgrammar.y" { yyval.sr = fixModifiesId (yyvsp[0].cname); ; break;} case 120: -#line 573 "cgrammar.y" +#line 556 "cgrammar.y" { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ; break;} case 121: -#line 574 "cgrammar.y" +#line 557 "cgrammar.y" { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ; break;} case 122: -#line 575 "cgrammar.y" +#line 558 "cgrammar.y" { yyval.sr = modListPointer (yyvsp[0].sr); ; break;} case 123: -#line 576 "cgrammar.y" +#line 559 "cgrammar.y" { yyval.sr = yyvsp[-1].sr; ; break;} case 124: -#line 577 "cgrammar.y" +#line 560 "cgrammar.y" { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 125: -#line 578 "cgrammar.y" +#line 561 "cgrammar.y" { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 126: -#line 582 "cgrammar.y" +#line 565 "cgrammar.y" { yyval.sr = yyvsp[0].sr; ; break;} case 127: -#line 583 "cgrammar.y" +#line 566 "cgrammar.y" { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ; break;} case 128: -#line 587 "cgrammar.y" +#line 570 "cgrammar.y" { yyval.srset = sRefSet_single (yyvsp[0].sr); ; break;} case 129: -#line 588 "cgrammar.y" +#line 571 "cgrammar.y" { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ; break;} case 130: -#line 592 "cgrammar.y" +#line 575 "cgrammar.y" { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ; break;} case 131: -#line 594 "cgrammar.y" +#line 577 "cgrammar.y" { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ; break;} case 132: -#line 595 "cgrammar.y" +#line 578 "cgrammar.y" { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ; break;} case 133: -#line 596 "cgrammar.y" +#line 579 "cgrammar.y" { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ; break;} case 134: -#line 597 "cgrammar.y" +#line 580 "cgrammar.y" { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ; break;} case 135: -#line 598 "cgrammar.y" +#line 581 "cgrammar.y" { yyval.sr = yyvsp[-1].sr; ; break;} case 136: -#line 599 "cgrammar.y" +#line 582 "cgrammar.y" { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 137: -#line 601 "cgrammar.y" +#line 584 "cgrammar.y" { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 138: -#line 606 "cgrammar.y" +#line 589 "cgrammar.y" { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } else { yyval.srset = sRefSet_undefined; } ; break;} case 139: -#line 610 "cgrammar.y" +#line 593 "cgrammar.y" { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); @@ -3571,837 +3522,821 @@ case 139: ; break;} case 140: -#line 621 "cgrammar.y" +#line 604 "cgrammar.y" { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ; break;} case 141: -#line 622 "cgrammar.y" +#line 605 "cgrammar.y" { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ; break;} case 143: -#line 624 "cgrammar.y" +#line 607 "cgrammar.y" { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} case 144: -#line 625 "cgrammar.y" -{ yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ; +#line 608 "cgrammar.y" +{ yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].ctyp)); ; break;} case 145: -#line 626 "cgrammar.y" +#line 609 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 147: -#line 630 "cgrammar.y" +#line 613 "cgrammar.y" { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; break;} case 148: -#line 631 "cgrammar.y" +#line 614 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; break;} case 149: -#line 632 "cgrammar.y" +#line 615 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ; break;} case 150: -#line 633 "cgrammar.y" +#line 616 "cgrammar.y" { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; break;} case 151: -#line 634 "cgrammar.y" +#line 617 "cgrammar.y" { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 152: -#line 635 "cgrammar.y" +#line 618 "cgrammar.y" { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 153: -#line 636 "cgrammar.y" +#line 619 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 154: -#line 637 "cgrammar.y" +#line 620 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 155: -#line 640 "cgrammar.y" +#line 623 "cgrammar.y" { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 156: -#line 641 "cgrammar.y" +#line 624 "cgrammar.y" { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ; break;} case 158: -#line 645 "cgrammar.y" +#line 628 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 159: -#line 646 "cgrammar.y" +#line 629 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 160: -#line 647 "cgrammar.y" +#line 630 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 161: -#line 648 "cgrammar.y" +#line 631 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 162: -#line 649 "cgrammar.y" +#line 632 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 163: -#line 650 "cgrammar.y" +#line 633 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 164: -#line 651 "cgrammar.y" +#line 634 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 165: -#line 652 "cgrammar.y" +#line 635 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 166: -#line 653 "cgrammar.y" +#line 636 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 167: -#line 654 "cgrammar.y" +#line 637 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 168: -#line 657 "cgrammar.y" -{ yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ; +#line 641 "cgrammar.y" +{ yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cname); ; break;} case 169: -#line 658 "cgrammar.y" -{ yyval.cstringlist = cstringList_single (yyvsp[0].cname); ; - break;} -case 170: -#line 662 "cgrammar.y" -{ yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ; - break;} -case 171: -#line 665 "cgrammar.y" +#line 644 "cgrammar.y" { context_setProtectVars (); ; break;} -case 172: -#line 666 "cgrammar.y" +case 170: +#line 645 "cgrammar.y" { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ; break;} -case 173: -#line 669 "cgrammar.y" +case 171: +#line 648 "cgrammar.y" { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ; break;} -case 174: -#line 670 "cgrammar.y" +case 172: +#line 649 "cgrammar.y" { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ; break;} -case 175: -#line 671 "cgrammar.y" -{ yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ; +case 174: +#line 654 "cgrammar.y" +{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; break;} case 176: -#line 672 "cgrammar.y" -{ yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ; +#line 658 "cgrammar.y" +{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; + break;} +case 177: +#line 659 "cgrammar.y" +{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 178: -#line 677 "cgrammar.y" -{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; +#line 660 "cgrammar.y" +{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 180: -#line 681 "cgrammar.y" +#line 664 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 181: -#line 682 "cgrammar.y" +#line 665 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 182: -#line 683 "cgrammar.y" +case 183: +#line 669 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 184: -#line 687 "cgrammar.y" +#line 670 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 185: -#line 688 "cgrammar.y" +case 186: +#line 674 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 187: -#line 692 "cgrammar.y" +#line 675 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 188: -#line 693 "cgrammar.y" +#line 676 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 190: -#line 697 "cgrammar.y" +case 189: +#line 677 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 191: -#line 698 "cgrammar.y" +#line 681 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 192: -#line 699 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 193: -#line 700 "cgrammar.y" +#line 682 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 195: -#line 704 "cgrammar.y" +case 194: +#line 686 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 196: -#line 705 "cgrammar.y" +#line 690 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 198: -#line 709 "cgrammar.y" +#line 695 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 200: -#line 713 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 202: -#line 718 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 204: -#line 723 "cgrammar.y" +#line 700 "cgrammar.y" { exprNode_produceGuards (yyvsp[-1].expr); context_enterAndClause (yyvsp[-1].expr); ; break;} -case 205: -#line 727 "cgrammar.y" +case 201: +#line 704 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); context_exitAndClause (yyval.expr, yyvsp[0].expr); ; break;} -case 207: -#line 735 "cgrammar.y" +case 203: +#line 712 "cgrammar.y" { exprNode_produceGuards (yyvsp[-1].expr); context_enterOrClause (yyvsp[-1].expr); ; break;} -case 208: -#line 740 "cgrammar.y" +case 204: +#line 717 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); context_exitOrClause (yyval.expr, yyvsp[0].expr); ; break;} -case 210: -#line 747 "cgrammar.y" +case 206: +#line 724 "cgrammar.y" { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; break;} -case 211: -#line 748 "cgrammar.y" +case 207: +#line 725 "cgrammar.y" { context_enterFalseClause (yyvsp[-4].expr); ; break;} -case 212: -#line 749 "cgrammar.y" +case 208: +#line 726 "cgrammar.y" { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} -case 214: -#line 753 "cgrammar.y" +case 210: +#line 730 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 215: -#line 754 "cgrammar.y" +case 211: +#line 731 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 216: -#line 755 "cgrammar.y" +case 212: +#line 732 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 217: -#line 756 "cgrammar.y" +case 213: +#line 733 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 218: -#line 757 "cgrammar.y" +case 214: +#line 734 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 219: -#line 758 "cgrammar.y" +case 215: +#line 735 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 220: -#line 759 "cgrammar.y" +case 216: +#line 736 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 221: -#line 760 "cgrammar.y" +case 217: +#line 737 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 222: -#line 761 "cgrammar.y" +case 218: +#line 738 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 223: -#line 762 "cgrammar.y" +case 219: +#line 739 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 224: -#line 763 "cgrammar.y" +case 220: +#line 740 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 226: -#line 767 "cgrammar.y" +case 222: +#line 744 "cgrammar.y" { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ; break;} -case 227: -#line 770 "cgrammar.y" +case 223: +#line 747 "cgrammar.y" { yyval.expr = exprNode_undefined; ; break;} -case 230: -#line 779 "cgrammar.y" +case 226: +#line 756 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} -case 231: -#line 780 "cgrammar.y" +case 227: +#line 757 "cgrammar.y" { doVaDcl (); yyval.expr = exprNode_makeError (); ; break;} -case 232: -#line 781 "cgrammar.y" +case 228: +#line 758 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} -case 233: -#line 784 "cgrammar.y" +case 229: +#line 761 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} -case 234: -#line 798 "cgrammar.y" +case 230: +#line 775 "cgrammar.y" { setProcessingVars (yyvsp[-3].qtyp); processNamedDecl (yyvsp[-1].ntyp); ; break;} -case 235: -#line 801 "cgrammar.y" +case 231: +#line 778 "cgrammar.y" { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ; break;} -case 236: -#line 803 "cgrammar.y" +case 232: +#line 780 "cgrammar.y" { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ; break;} -case 237: -#line 806 "cgrammar.y" +case 233: +#line 783 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); unsetProcessingVars (); ; break;} -case 238: -#line 810 "cgrammar.y" +case 234: +#line 787 "cgrammar.y" { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ; break;} -case 239: -#line 811 "cgrammar.y" +case 235: +#line 788 "cgrammar.y" { processNamedDecl (yyvsp[-2].ntyp); ; break;} -case 240: -#line 812 "cgrammar.y" +case 236: +#line 789 "cgrammar.y" { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ; break;} -case 241: -#line 816 "cgrammar.y" +case 237: +#line 793 "cgrammar.y" { setProcessingTypedef (yyvsp[0].qtyp); ; break;} -case 242: -#line 817 "cgrammar.y" +case 238: +#line 794 "cgrammar.y" { unsetProcessingTypedef (); ; break;} -case 243: -#line 818 "cgrammar.y" +case 239: +#line 795 "cgrammar.y" { /* in the ANSI grammar, semantics unclear */ ; break;} -case 244: -#line 819 "cgrammar.y" +case 240: +#line 796 "cgrammar.y" { /* in the ANSI grammar, semantics unclear */ ; break;} -case 245: -#line 822 "cgrammar.y" +case 241: +#line 799 "cgrammar.y" { g_expectingTypeName = TRUE; ; break;} -case 246: -#line 825 "cgrammar.y" +case 242: +#line 802 "cgrammar.y" { g_expectingTypeName = TRUE; context_pushLoc (); ; break;} -case 247: -#line 828 "cgrammar.y" +case 243: +#line 805 "cgrammar.y" { ; ; break;} -case 248: -#line 831 "cgrammar.y" +case 244: +#line 808 "cgrammar.y" { ; ; break;} -case 249: -#line 832 "cgrammar.y" +case 245: +#line 809 "cgrammar.y" { ; ; break;} -case 250: -#line 835 "cgrammar.y" +case 246: +#line 812 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} -case 251: -#line 836 "cgrammar.y" +case 247: +#line 813 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ; break;} -case 253: -#line 840 "cgrammar.y" +case 249: +#line 817 "cgrammar.y" { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ; break;} -case 254: -#line 841 "cgrammar.y" +case 250: +#line 818 "cgrammar.y" { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ; break;} -case 255: -#line 846 "cgrammar.y" +case 251: +#line 823 "cgrammar.y" { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; break;} -case 256: -#line 848 "cgrammar.y" +case 252: +#line 825 "cgrammar.y" { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ; break;} -case 257: -#line 856 "cgrammar.y" +case 253: +#line 833 "cgrammar.y" { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ; break;} -case 258: -#line 857 "cgrammar.y" +case 254: +#line 834 "cgrammar.y" { yyval.typequal = qual_createInline (); ; break;} -case 259: -#line 858 "cgrammar.y" +case 255: +#line 835 "cgrammar.y" { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ; break;} -case 260: -#line 859 "cgrammar.y" +case 256: +#line 836 "cgrammar.y" { yyval.typequal = qual_createAuto (); ; break;} -case 261: -#line 860 "cgrammar.y" +case 257: +#line 837 "cgrammar.y" { yyval.typequal = qual_createRegister (); ; break;} -case 262: -#line 863 "cgrammar.y" +case 258: +#line 840 "cgrammar.y" { yyval.typequal = qual_createConst (); ; break;} -case 263: -#line 864 "cgrammar.y" +case 259: +#line 841 "cgrammar.y" { yyval.typequal = qual_createVolatile (); ; break;} -case 264: -#line 865 "cgrammar.y" +case 260: +#line 842 "cgrammar.y" { yyval.typequal = qual_createOut (); ; break;} -case 265: -#line 866 "cgrammar.y" +case 261: +#line 843 "cgrammar.y" { yyval.typequal = qual_createIn (); ; break;} -case 266: -#line 867 "cgrammar.y" +case 262: +#line 844 "cgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} -case 267: -#line 868 "cgrammar.y" +case 263: +#line 845 "cgrammar.y" { yyval.typequal = qual_createSpecial (); ; break;} -case 268: -#line 869 "cgrammar.y" +case 264: +#line 846 "cgrammar.y" { yyval.typequal = qual_createOwned (); ; break;} -case 269: -#line 870 "cgrammar.y" +case 265: +#line 847 "cgrammar.y" { yyval.typequal = qual_createDependent (); ; break;} -case 270: -#line 871 "cgrammar.y" +case 266: +#line 848 "cgrammar.y" { yyval.typequal = qual_createYield (); ; break;} -case 271: -#line 872 "cgrammar.y" +case 267: +#line 849 "cgrammar.y" { yyval.typequal = qual_createTemp (); ; break;} -case 272: -#line 873 "cgrammar.y" +case 268: +#line 850 "cgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} -case 273: -#line 874 "cgrammar.y" +case 269: +#line 851 "cgrammar.y" { yyval.typequal = qual_createKeep (); ; break;} -case 274: -#line 875 "cgrammar.y" +case 270: +#line 852 "cgrammar.y" { yyval.typequal = qual_createKept (); ; break;} -case 275: -#line 876 "cgrammar.y" +case 271: +#line 853 "cgrammar.y" { yyval.typequal = qual_createShared (); ; break;} -case 276: -#line 877 "cgrammar.y" +case 272: +#line 854 "cgrammar.y" { yyval.typequal = qual_createUnique (); ; break;} -case 277: -#line 878 "cgrammar.y" +case 273: +#line 855 "cgrammar.y" { yyval.typequal = qual_createExits (); ; break;} -case 278: -#line 879 "cgrammar.y" +case 274: +#line 856 "cgrammar.y" { yyval.typequal = qual_createMayExit (); ; break;} -case 279: -#line 880 "cgrammar.y" +case 275: +#line 857 "cgrammar.y" { yyval.typequal = qual_createTrueExit (); ; break;} -case 280: -#line 881 "cgrammar.y" +case 276: +#line 858 "cgrammar.y" { yyval.typequal = qual_createFalseExit (); ; break;} -case 281: -#line 882 "cgrammar.y" +case 277: +#line 859 "cgrammar.y" { yyval.typequal = qual_createNeverExit (); ; break;} -case 282: -#line 883 "cgrammar.y" +case 278: +#line 860 "cgrammar.y" { yyval.typequal = qual_createNull (); ; break;} -case 283: -#line 884 "cgrammar.y" +case 279: +#line 861 "cgrammar.y" { yyval.typequal = qual_createRelNull (); ; break;} -case 284: -#line 885 "cgrammar.y" +case 280: +#line 862 "cgrammar.y" { yyval.typequal = qual_createReturned (); ; break;} -case 285: -#line 886 "cgrammar.y" +case 281: +#line 863 "cgrammar.y" { yyval.typequal = qual_createExposed (); ; break;} -case 286: -#line 887 "cgrammar.y" +case 282: +#line 864 "cgrammar.y" { yyval.typequal = qual_createObserver (); ; break;} -case 287: -#line 888 "cgrammar.y" +case 283: +#line 865 "cgrammar.y" { yyval.typequal = qual_createChecked (); ; break;} -case 288: -#line 889 "cgrammar.y" +case 284: +#line 866 "cgrammar.y" { yyval.typequal = qual_createCheckMod (); ; break;} -case 289: -#line 890 "cgrammar.y" +case 285: +#line 867 "cgrammar.y" { yyval.typequal = qual_createUnchecked (); ; break;} -case 290: -#line 891 "cgrammar.y" +case 286: +#line 868 "cgrammar.y" { yyval.typequal = qual_createCheckedStrict (); ; break;} -case 291: -#line 892 "cgrammar.y" +case 287: +#line 869 "cgrammar.y" { yyval.typequal = qual_createTrueNull (); ; break;} -case 292: -#line 893 "cgrammar.y" +case 288: +#line 870 "cgrammar.y" { yyval.typequal = qual_createFalseNull (); ; break;} -case 293: -#line 894 "cgrammar.y" +case 289: +#line 871 "cgrammar.y" { yyval.typequal = qual_createUnused (); ; break;} -case 294: -#line 895 "cgrammar.y" +case 290: +#line 872 "cgrammar.y" { yyval.typequal = qual_createExternal (); ; break;} -case 295: -#line 896 "cgrammar.y" +case 291: +#line 873 "cgrammar.y" { yyval.typequal = qual_createSef (); ; break;} -case 296: -#line 897 "cgrammar.y" +case 292: +#line 874 "cgrammar.y" { yyval.typequal = qual_createAbstract (); ; break;} -case 297: -#line 898 "cgrammar.y" +case 293: +#line 875 "cgrammar.y" { yyval.typequal = qual_createConcrete (); ; break;} -case 298: -#line 899 "cgrammar.y" +case 294: +#line 876 "cgrammar.y" { yyval.typequal = qual_createMutable (); ; break;} -case 299: -#line 900 "cgrammar.y" +case 295: +#line 877 "cgrammar.y" { yyval.typequal = qual_createImmutable (); ; break;} -case 300: -#line 901 "cgrammar.y" +case 296: +#line 878 "cgrammar.y" { yyval.typequal = qual_createNotNull (); ; break;} -case 301: -#line 902 "cgrammar.y" +case 297: +#line 879 "cgrammar.y" { yyval.typequal = qual_createRefCounted (); ; break;} -case 302: -#line 903 "cgrammar.y" +case 298: +#line 880 "cgrammar.y" { yyval.typequal = qual_createRefs (); ; break;} -case 303: -#line 904 "cgrammar.y" +case 299: +#line 881 "cgrammar.y" { yyval.typequal = qual_createKillRef (); ; break;} -case 304: -#line 905 "cgrammar.y" +case 300: +#line 882 "cgrammar.y" { yyval.typequal = qual_createRelDef (); ; break;} -case 305: -#line 906 "cgrammar.y" +case 301: +#line 883 "cgrammar.y" { yyval.typequal = qual_createNewRef (); ; break;} -case 306: -#line 907 "cgrammar.y" +case 302: +#line 884 "cgrammar.y" { yyval.typequal = qual_createTempRef (); ; break;} -case 307: -#line 910 "cgrammar.y" +case 303: +#line 887 "cgrammar.y" { yyval.typequal = qual_createShort (); ; break;} -case 308: -#line 911 "cgrammar.y" +case 304: +#line 888 "cgrammar.y" { yyval.typequal = qual_createLong (); ; break;} -case 309: -#line 912 "cgrammar.y" +case 305: +#line 889 "cgrammar.y" { yyval.typequal = qual_createSigned (); ; break;} -case 310: -#line 913 "cgrammar.y" +case 306: +#line 890 "cgrammar.y" { yyval.typequal = qual_createUnsigned (); ; break;} -case 317: -#line 922 "cgrammar.y" +case 313: +#line 899 "cgrammar.y" { yyval.ctyp = ctype_unknown; ; break;} -case 318: -#line 923 "cgrammar.y" +case 314: +#line 900 "cgrammar.y" { yyval.ctyp = ctype_anyintegral; ; break;} -case 319: -#line 924 "cgrammar.y" +case 315: +#line 901 "cgrammar.y" { yyval.ctyp = ctype_unsignedintegral; ; break;} -case 320: -#line 925 "cgrammar.y" +case 316: +#line 902 "cgrammar.y" { yyval.ctyp = ctype_signedintegral; ; break;} -case 324: -#line 929 "cgrammar.y" +case 320: +#line 906 "cgrammar.y" { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ; break;} -case 325: -#line 933 "cgrammar.y" +case 321: +#line 910 "cgrammar.y" { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ; break;} -case 326: -#line 936 "cgrammar.y" +case 322: +#line 913 "cgrammar.y" { yyval.qtyp = yyvsp[0].qtyp; ; break;} -case 327: -#line 938 "cgrammar.y" +case 323: +#line 915 "cgrammar.y" { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ; break;} -case 329: -#line 943 "cgrammar.y" +case 325: +#line 920 "cgrammar.y" { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ; break;} -case 330: -#line 946 "cgrammar.y" +case 326: +#line 923 "cgrammar.y" { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; break;} -case 331: -#line 947 "cgrammar.y" +case 327: +#line 924 "cgrammar.y" { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; break;} -case 332: -#line 948 "cgrammar.y" +case 328: +#line 925 "cgrammar.y" { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ; break;} -case 333: -#line 951 "cgrammar.y" +case 329: +#line 928 "cgrammar.y" { yyval.qtyp = qtype_unknown (); ; break;} -case 334: -#line 952 "cgrammar.y" +case 330: +#line 929 "cgrammar.y" { yyval.qtyp = yyvsp[0].qtyp; ; break;} -case 335: -#line 955 "cgrammar.y" +case 331: +#line 932 "cgrammar.y" { sRef_setGlobalScopeSafe (); ; break;} -case 336: -#line 957 "cgrammar.y" +case 332: +#line 934 "cgrammar.y" { sRef_clearGlobalScopeSafe (); ; break;} -case 337: -#line 959 "cgrammar.y" +case 333: +#line 936 "cgrammar.y" { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ; break;} -case 338: -#line 960 "cgrammar.y" +case 334: +#line 937 "cgrammar.y" { sRef_setGlobalScopeSafe (); ; break;} -case 339: -#line 962 "cgrammar.y" +case 335: +#line 939 "cgrammar.y" { sRef_clearGlobalScopeSafe (); ; break;} -case 340: -#line 964 "cgrammar.y" +case 336: +#line 941 "cgrammar.y" { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ; break;} -case 341: -#line 966 "cgrammar.y" +case 337: +#line 943 "cgrammar.y" { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ; break;} -case 342: -#line 968 "cgrammar.y" +case 338: +#line 945 "cgrammar.y" { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ; break;} -case 343: -#line 969 "cgrammar.y" +case 339: +#line 946 "cgrammar.y" { sRef_setGlobalScopeSafe (); ; break;} -case 344: -#line 971 "cgrammar.y" +case 340: +#line 948 "cgrammar.y" { sRef_clearGlobalScopeSafe (); ; break;} -case 345: -#line 973 "cgrammar.y" +case 341: +#line 950 "cgrammar.y" { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ; break;} -case 346: -#line 974 "cgrammar.y" +case 342: +#line 951 "cgrammar.y" { sRef_setGlobalScopeSafe (); ; break;} -case 347: -#line 976 "cgrammar.y" +case 343: +#line 953 "cgrammar.y" { sRef_clearGlobalScopeSafe (); ; break;} -case 348: -#line 978 "cgrammar.y" +case 344: +#line 955 "cgrammar.y" { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ; break;} -case 349: -#line 980 "cgrammar.y" +case 345: +#line 957 "cgrammar.y" { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ; break;} -case 350: -#line 982 "cgrammar.y" +case 346: +#line 959 "cgrammar.y" { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ; break;} -case 351: -#line 983 "cgrammar.y" +case 347: +#line 960 "cgrammar.y" { yyval.ctyp = handleStruct (yyvsp[-1].cname); ; break;} -case 352: -#line 984 "cgrammar.y" +case 348: +#line 961 "cgrammar.y" { yyval.ctyp = handleUnion (yyvsp[-1].cname); ; break;} -case 353: -#line 987 "cgrammar.y" +case 349: +#line 964 "cgrammar.y" { g_expectingTypeName = FALSE; ; break;} -case 355: -#line 991 "cgrammar.y" +case 351: +#line 968 "cgrammar.y" { yyval.flist = uentryList_undefined; /* bogus! */ ; break;} -case 356: -#line 992 "cgrammar.y" +case 352: +#line 969 "cgrammar.y" { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ; break;} -case 357: -#line 996 "cgrammar.y" +case 353: +#line 973 "cgrammar.y" { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ; break;} -case 358: -#line 998 "cgrammar.y" +case 354: +#line 975 "cgrammar.y" { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ; break;} -case 359: -#line 1002 "cgrammar.y" +case 355: +#line 979 "cgrammar.y" { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ; break;} -case 360: -#line 1004 "cgrammar.y" +case 356: +#line 981 "cgrammar.y" { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ; break;} -case 361: -#line 1007 "cgrammar.y" +case 357: +#line 984 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; ; break;} -case 362: -#line 1008 "cgrammar.y" +case 358: +#line 985 "cgrammar.y" { yyval.ntyp = idDecl_undefined; ; break;} -case 363: -#line 1009 "cgrammar.y" -{ yyval.ntyp = yyvsp[-3].ntyp; ; +case 359: +#line 986 "cgrammar.y" +{ yyval.ntyp = yyvsp[-2].ntyp; ; break;} -case 364: -#line 1014 "cgrammar.y" +case 360: +#line 990 "cgrammar.y" { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ; break;} -case 365: -#line 1015 "cgrammar.y" +case 361: +#line 991 "cgrammar.y" { context_pushLoc (); ; break;} -case 366: -#line 1016 "cgrammar.y" +case 362: +#line 992 "cgrammar.y" { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ; break;} -case 367: -#line 1017 "cgrammar.y" +case 363: +#line 993 "cgrammar.y" { yyval.ctyp = handleEnum (yyvsp[-1].cname); ; break;} -case 368: -#line 1021 "cgrammar.y" +case 364: +#line 997 "cgrammar.y" { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ; break;} -case 369: -#line 1023 "cgrammar.y" +case 365: +#line 999 "cgrammar.y" { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ; break;} -case 371: -#line 1028 "cgrammar.y" +case 367: +#line 1004 "cgrammar.y" { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown); usymtab_supGlobalEntry (ue); yyval.cname = yyvsp[0].cname; ; break;} -case 372: -#line 1033 "cgrammar.y" -{ uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr); +case 368: +#line 1009 "cgrammar.y" +{ uentry ue = uentry_makeEnumConstant (yyvsp[-3].cname, ctype_unknown); usymtab_supGlobalEntry (ue); yyval.cname = yyvsp[-3].cname; ; break;} -case 374: -#line 1040 "cgrammar.y" +case 370: +#line 1016 "cgrammar.y" { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ; break;} -case 375: -#line 1042 "cgrammar.y" +case 371: +#line 1018 "cgrammar.y" { qtype qt = qtype_unknown (); @@ -4409,92 +4344,92 @@ case 375: yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt); ; break;} -case 376: -#line 1049 "cgrammar.y" +case 372: +#line 1025 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; break;} -case 378: -#line 1054 "cgrammar.y" +case 374: +#line 1030 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; break;} -case 379: -#line 1057 "cgrammar.y" +case 375: +#line 1033 "cgrammar.y" { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ; break;} -case 380: -#line 1058 "cgrammar.y" +case 376: +#line 1034 "cgrammar.y" { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ; break;} -case 381: -#line 1061 "cgrammar.y" +case 377: +#line 1037 "cgrammar.y" { /* ignored for now */; ; break;} -case 382: -#line 1062 "cgrammar.y" +case 378: +#line 1038 "cgrammar.y" { ; ; break;} -case 383: -#line 1065 "cgrammar.y" +case 379: +#line 1041 "cgrammar.y" { ; ; break;} -case 384: -#line 1066 "cgrammar.y" +case 380: +#line 1042 "cgrammar.y" { ; ; break;} -case 385: -#line 1069 "cgrammar.y" +case 381: +#line 1045 "cgrammar.y" { yyval.count = 1; ; break;} -case 386: -#line 1070 "cgrammar.y" +case 382: +#line 1046 "cgrammar.y" { yyval.count = 1; ; break;} -case 387: -#line 1071 "cgrammar.y" +case 383: +#line 1047 "cgrammar.y" { yyval.count = 1 + yyvsp[0].count; ; break;} -case 388: -#line 1072 "cgrammar.y" +case 384: +#line 1048 "cgrammar.y" { yyval.count = 1 + yyvsp[0].count; ; break;} -case 390: -#line 1076 "cgrammar.y" +case 386: +#line 1052 "cgrammar.y" { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; break;} -case 391: -#line 1079 "cgrammar.y" +case 387: +#line 1055 "cgrammar.y" { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; break;} -case 392: -#line 1080 "cgrammar.y" +case 388: +#line 1056 "cgrammar.y" { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; break;} -case 393: -#line 1083 "cgrammar.y" +case 389: +#line 1059 "cgrammar.y" { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ; break;} -case 395: -#line 1085 "cgrammar.y" +case 391: +#line 1061 "cgrammar.y" { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; break;} -case 396: -#line 1088 "cgrammar.y" +case 392: +#line 1064 "cgrammar.y" { storeLoc (); ; break;} -case 397: -#line 1088 "cgrammar.y" +case 393: +#line 1064 "cgrammar.y" { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ; break;} -case 398: -#line 1089 "cgrammar.y" +case 394: +#line 1065 "cgrammar.y" { storeLoc (); ; break;} -case 399: -#line 1090 "cgrammar.y" +case 395: +#line 1066 "cgrammar.y" { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ; break;} -case 400: -#line 1094 "cgrammar.y" +case 396: +#line 1070 "cgrammar.y" { if (isFlipOldStyle ()) { @@ -4507,8 +4442,8 @@ case 400: yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); ; break;} -case 401: -#line 1106 "cgrammar.y" +case 397: +#line 1082 "cgrammar.y" { idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ()); @@ -4523,383 +4458,383 @@ case 401: idDecl_free (tparam); ; break;} -case 403: -#line 1122 "cgrammar.y" +case 399: +#line 1098 "cgrammar.y" { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ; break;} -case 404: -#line 1125 "cgrammar.y" +case 400: +#line 1101 "cgrammar.y" { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ; break;} -case 406: -#line 1127 "cgrammar.y" +case 402: +#line 1103 "cgrammar.y" { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ; break;} -case 407: -#line 1130 "cgrammar.y" +case 403: +#line 1106 "cgrammar.y" { yyval.ctyp = ctype_unknown; ; break;} -case 409: -#line 1135 "cgrammar.y" +case 405: +#line 1111 "cgrammar.y" { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ; break;} -case 410: -#line 1136 "cgrammar.y" +case 406: +#line 1112 "cgrammar.y" { yyval.ctyp = ctype_makeArray (ctype_unknown); ; break;} -case 411: -#line 1137 "cgrammar.y" +case 407: +#line 1113 "cgrammar.y" { yyval.ctyp = ctype_makeArray (ctype_unknown); ; break;} -case 412: -#line 1138 "cgrammar.y" +case 408: +#line 1114 "cgrammar.y" { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ; break;} -case 413: -#line 1139 "cgrammar.y" +case 409: +#line 1115 "cgrammar.y" { yyval.ctyp = ctype_makeArray (yyvsp[-3].ctyp); ; break;} -case 414: -#line 1141 "cgrammar.y" +case 410: +#line 1117 "cgrammar.y" { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ; break;} -case 415: -#line 1143 "cgrammar.y" +case 411: +#line 1119 "cgrammar.y" { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ; break;} -case 416: -#line 1145 "cgrammar.y" +case 412: +#line 1121 "cgrammar.y" { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ; break;} -case 417: -#line 1147 "cgrammar.y" +case 413: +#line 1123 "cgrammar.y" { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ; break;} -case 427: -#line 1163 "cgrammar.y" +case 423: +#line 1139 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} -case 430: -#line 1171 "cgrammar.y" +case 426: +#line 1147 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 431: -#line 1175 "cgrammar.y" +case 427: +#line 1151 "cgrammar.y" { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 432: -#line 1177 "cgrammar.y" +case 428: +#line 1153 "cgrammar.y" { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ; break;} -case 433: -#line 1179 "cgrammar.y" +case 429: +#line 1155 "cgrammar.y" { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; break;} -case 434: -#line 1181 "cgrammar.y" +case 430: +#line 1157 "cgrammar.y" { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 435: -#line 1185 "cgrammar.y" +case 431: +#line 1161 "cgrammar.y" { context_setProtectVars (); ; break;} -case 436: -#line 1185 "cgrammar.y" +case 432: +#line 1161 "cgrammar.y" { context_sizeofReleaseVars (); ; break;} -case 437: -#line 1187 "cgrammar.y" +case 433: +#line 1163 "cgrammar.y" { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); context_enterForClause (yyvsp[-5].expr); ; break;} -case 438: -#line 1192 "cgrammar.y" +case 434: +#line 1168 "cgrammar.y" { setProcessingIterVars (yyvsp[-2].entry); ; break;} -case 439: -#line 1194 "cgrammar.y" +case 435: +#line 1170 "cgrammar.y" { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ; break;} -case 440: -#line 1195 "cgrammar.y" +case 436: +#line 1171 "cgrammar.y" { yyval.expr = exprNode_createId (yyvsp[0].entry); ; break;} -case 444: -#line 1201 "cgrammar.y" +case 440: +#line 1177 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} -case 452: -#line 1209 "cgrammar.y" +case 448: +#line 1185 "cgrammar.y" { yyval.expr = yyvsp[-1].expr; ; break;} -case 453: -#line 1210 "cgrammar.y" +case 449: +#line 1186 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} -case 454: -#line 1214 "cgrammar.y" +case 450: +#line 1190 "cgrammar.y" { /* don't: context_exitTrueClause ($1, $2); */ yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 455: -#line 1219 "cgrammar.y" +case 451: +#line 1195 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} -case 456: -#line 1222 "cgrammar.y" +case 452: +#line 1198 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} -case 467: -#line 1237 "cgrammar.y" +case 463: +#line 1213 "cgrammar.y" { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} -case 469: -#line 1239 "cgrammar.y" +case 465: +#line 1215 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} -case 470: -#line 1242 "cgrammar.y" -{ yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ; +case 466: +#line 1218 "cgrammar.y" +{ yyval.expr = exprNode_labelStatement (yyvsp[-2].cname, yyvsp[0].expr); ; break;} -case 471: -#line 1243 "cgrammar.y" +case 467: +#line 1219 "cgrammar.y" { yyval.expr = exprNode_notReached (yyvsp[0].expr); ; break;} -case 472: -#line 1249 "cgrammar.y" +case 468: +#line 1225 "cgrammar.y" { context_enterCaseClause (yyvsp[0].expr); ; break;} -case 473: -#line 1250 "cgrammar.y" -{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ; +case 469: +#line 1226 "cgrammar.y" +{ yyval.expr = exprNode_caseStatement (yyvsp[-3].expr, yyvsp[0].expr, FALSE); ; break;} -case 474: -#line 1251 "cgrammar.y" +case 470: +#line 1227 "cgrammar.y" { context_enterCaseClause (yyvsp[0].expr); ; break;} -case 475: -#line 1252 "cgrammar.y" -{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ; +case 471: +#line 1228 "cgrammar.y" +{ yyval.expr = exprNode_caseStatement (yyvsp[-3].expr, yyvsp[0].expr, TRUE); ; break;} -case 476: -#line 1255 "cgrammar.y" +case 472: +#line 1231 "cgrammar.y" { context_enterCaseClause (exprNode_undefined); ; break;} -case 477: -#line 1256 "cgrammar.y" -{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ; +case 473: +#line 1232 "cgrammar.y" +{ yyval.expr = exprNode_defaultStatement (yyvsp[-3].tok, yyvsp[0].expr, FALSE); ; break;} -case 478: -#line 1257 "cgrammar.y" +case 474: +#line 1233 "cgrammar.y" { context_enterCaseClause (exprNode_undefined); ; break;} -case 479: -#line 1258 "cgrammar.y" -{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ; +case 475: +#line 1234 "cgrammar.y" +{ yyval.expr = exprNode_defaultStatement (yyvsp[-3].tok, yyvsp[0].expr, TRUE); ; break;} -case 480: -#line 1261 "cgrammar.y" +case 476: +#line 1237 "cgrammar.y" { yyval.expr = yyvsp[-1].expr; ; break;} -case 481: -#line 1263 "cgrammar.y" +case 477: +#line 1239 "cgrammar.y" { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; break;} -case 482: -#line 1266 "cgrammar.y" +case 478: +#line 1242 "cgrammar.y" { yyval.expr = yyvsp[-1].expr; ; break;} -case 483: -#line 1269 "cgrammar.y" +case 479: +#line 1245 "cgrammar.y" { context_enterInnerContext (); ; break;} -case 484: -#line 1272 "cgrammar.y" +case 480: +#line 1248 "cgrammar.y" { context_exitInnerPlain (); ; break;} -case 485: -#line 1275 "cgrammar.y" +case 481: +#line 1251 "cgrammar.y" { context_enterStructInnerContext (); ; break;} -case 486: -#line 1278 "cgrammar.y" +case 482: +#line 1254 "cgrammar.y" { context_exitStructInnerContext (); ; break;} -case 487: -#line 1281 "cgrammar.y" +case 483: +#line 1257 "cgrammar.y" { context_exitInnerSafe (); ; break;} -case 488: -#line 1284 "cgrammar.y" +case 484: +#line 1260 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} -case 489: -#line 1285 "cgrammar.y" +case 485: +#line 1261 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ; break;} -case 490: -#line 1286 "cgrammar.y" +case 486: +#line 1262 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} -case 491: -#line 1288 "cgrammar.y" +case 487: +#line 1264 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; break;} -case 492: -#line 1289 "cgrammar.y" +case 488: +#line 1265 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} -case 493: -#line 1291 "cgrammar.y" +case 489: +#line 1267 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; break;} -case 494: -#line 1293 "cgrammar.y" +case 490: +#line 1269 "cgrammar.y" { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; break;} -case 495: -#line 1295 "cgrammar.y" +case 491: +#line 1271 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), lltok_getLoc (yyvsp[-1].tok))); ; break;} -case 496: -#line 1302 "cgrammar.y" +case 492: +#line 1278 "cgrammar.y" { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ; break;} -case 497: -#line 1306 "cgrammar.y" +case 493: +#line 1282 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} -case 498: -#line 1308 "cgrammar.y" +case 494: +#line 1284 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} -case 499: -#line 1310 "cgrammar.y" +case 495: +#line 1286 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} -case 500: -#line 1312 "cgrammar.y" +case 496: +#line 1288 "cgrammar.y" { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; break;} -case 502: -#line 1316 "cgrammar.y" +case 498: +#line 1292 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 503: -#line 1319 "cgrammar.y" +case 499: +#line 1295 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} -case 504: -#line 1320 "cgrammar.y" +case 500: +#line 1296 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 505: -#line 1323 "cgrammar.y" +case 501: +#line 1299 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} -case 506: -#line 1324 "cgrammar.y" +case 502: +#line 1300 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 507: -#line 1327 "cgrammar.y" +case 503: +#line 1303 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} -case 508: -#line 1328 "cgrammar.y" +case 504: +#line 1304 "cgrammar.y" { yyval.expr = exprNode_statement (yyvsp[-1].expr); ; break;} -case 509: -#line 1331 "cgrammar.y" +case 505: +#line 1307 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} -case 510: -#line 1332 "cgrammar.y" +case 506: +#line 1308 "cgrammar.y" { yyval.expr = exprNode_statement (yyvsp[-1].expr); ; break;} -case 511: -#line 1333 "cgrammar.y" +case 507: +#line 1309 "cgrammar.y" { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ; break;} -case 512: -#line 1337 "cgrammar.y" +case 508: +#line 1313 "cgrammar.y" { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; break;} -case 513: -#line 1345 "cgrammar.y" +case 509: +#line 1321 "cgrammar.y" { context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr); yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 514: -#line 1349 "cgrammar.y" +case 510: +#line 1325 "cgrammar.y" { context_enterFalseClause (yyvsp[-2].expr); ; break;} -case 515: -#line 1350 "cgrammar.y" +case 511: +#line 1326 "cgrammar.y" { context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} -case 516: -#line 1354 "cgrammar.y" +case 512: +#line 1330 "cgrammar.y" { context_enterSwitch (yyvsp[0].expr); ; break;} -case 517: -#line 1355 "cgrammar.y" +case 513: +#line 1331 "cgrammar.y" { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ; break;} -case 518: -#line 1359 "cgrammar.y" +case 514: +#line 1335 "cgrammar.y" { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ; break;} -case 519: -#line 1363 "cgrammar.y" +case 515: +#line 1339 "cgrammar.y" { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ; break;} -case 520: -#line 1366 "cgrammar.y" +case 516: +#line 1342 "cgrammar.y" { context_enterIterClause (); ; break;} -case 521: -#line 1367 "cgrammar.y" +case 517: +#line 1343 "cgrammar.y" { setProcessingIterVars (yyvsp[-3].entry); ; break;} -case 522: -#line 1370 "cgrammar.y" +case 518: +#line 1346 "cgrammar.y" { yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry); ; break;} -case 523: -#line 1376 "cgrammar.y" +case 519: +#line 1352 "cgrammar.y" { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; break;} -case 524: -#line 1377 "cgrammar.y" +case 520: +#line 1353 "cgrammar.y" { nextIterParam (); ; break;} -case 525: -#line 1378 "cgrammar.y" +case 521: +#line 1354 "cgrammar.y" { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ; break;} -case 526: -#line 1381 "cgrammar.y" +case 522: +#line 1357 "cgrammar.y" { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ; break;} -case 527: -#line 1382 "cgrammar.y" +case 523: +#line 1358 "cgrammar.y" { yyval.expr = exprNode_iterId (yyvsp[0].entry); ; break;} -case 528: -#line 1383 "cgrammar.y" -{ uentry ue = coerceIterId (yyvsp[0].cname); +case 524: +#line 1359 "cgrammar.y" +{ uentry ue = coerceIterId (yyvsp[0].ctyp); if (uentry_isValid (ue)) { @@ -4911,321 +4846,313 @@ case 528: } ; break;} -case 529: -#line 1394 "cgrammar.y" +case 525: +#line 1370 "cgrammar.y" { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ; break;} -case 531: -#line 1402 "cgrammar.y" +case 527: +#line 1378 "cgrammar.y" { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} -case 533: -#line 1406 "cgrammar.y" +case 529: +#line 1382 "cgrammar.y" { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; break;} -case 534: -#line 1407 "cgrammar.y" +case 530: +#line 1383 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; break;} -case 535: -#line 1408 "cgrammar.y" +case 531: +#line 1384 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ; break;} -case 536: -#line 1410 "cgrammar.y" +case 532: +#line 1386 "cgrammar.y" { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; break;} -case 537: -#line 1411 "cgrammar.y" +case 533: +#line 1387 "cgrammar.y" { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} -case 538: -#line 1412 "cgrammar.y" +case 534: +#line 1388 "cgrammar.y" { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} -case 539: -#line 1413 "cgrammar.y" +case 535: +#line 1389 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} -case 540: -#line 1414 "cgrammar.y" +case 536: +#line 1390 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} -case 542: -#line 1418 "cgrammar.y" +case 538: +#line 1394 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 543: -#line 1419 "cgrammar.y" +case 539: +#line 1395 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 544: -#line 1420 "cgrammar.y" +case 540: +#line 1396 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 545: -#line 1421 "cgrammar.y" +case 541: +#line 1397 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 546: -#line 1422 "cgrammar.y" +case 542: +#line 1398 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 547: -#line 1423 "cgrammar.y" +case 543: +#line 1399 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 548: -#line 1424 "cgrammar.y" +case 544: +#line 1400 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 549: -#line 1425 "cgrammar.y" +case 545: +#line 1401 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 550: -#line 1426 "cgrammar.y" +case 546: +#line 1402 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} -case 552: -#line 1430 "cgrammar.y" +case 548: +#line 1406 "cgrammar.y" { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; break;} +case 550: +#line 1410 "cgrammar.y" +{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; + break;} +case 551: +#line 1411 "cgrammar.y" +{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; + break;} +case 552: +#line 1412 "cgrammar.y" +{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; + break;} case 554: -#line 1434 "cgrammar.y" +#line 1416 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 555: -#line 1435 "cgrammar.y" +#line 1417 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 556: -#line 1436 "cgrammar.y" +case 557: +#line 1421 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 558: -#line 1440 "cgrammar.y" +#line 1422 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 559: -#line 1441 "cgrammar.y" +case 560: +#line 1426 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 561: -#line 1445 "cgrammar.y" +#line 1427 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 562: -#line 1446 "cgrammar.y" +#line 1428 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 564: -#line 1450 "cgrammar.y" +case 563: +#line 1429 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 565: -#line 1451 "cgrammar.y" +#line 1433 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 566: -#line 1452 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 567: -#line 1453 "cgrammar.y" +#line 1434 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 569: -#line 1457 "cgrammar.y" +case 568: +#line 1438 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 570: -#line 1458 "cgrammar.y" +#line 1442 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 572: -#line 1462 "cgrammar.y" +#line 1447 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 574: -#line 1466 "cgrammar.y" +#line 1451 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 576: -#line 1471 "cgrammar.y" +#line 1455 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 578: -#line 1475 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; +#line 1459 "cgrammar.y" +{ context_enterTrueClause (yyvsp[-1].expr); ; + break;} +case 579: +#line 1460 "cgrammar.y" +{ context_enterFalseClause (yyvsp[-4].expr); ; break;} case 580: -#line 1479 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; +#line 1461 "cgrammar.y" +{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 582: -#line 1483 "cgrammar.y" -{ context_enterTrueClause (yyvsp[-1].expr); ; +#line 1465 "cgrammar.y" +{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 583: -#line 1484 "cgrammar.y" -{ context_enterFalseClause (yyvsp[-4].expr); ; +#line 1466 "cgrammar.y" +{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 584: -#line 1485 "cgrammar.y" -{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; +#line 1467 "cgrammar.y" +{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; + break;} +case 585: +#line 1468 "cgrammar.y" +{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 586: -#line 1489 "cgrammar.y" +#line 1469 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 587: -#line 1490 "cgrammar.y" +#line 1470 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 588: -#line 1491 "cgrammar.y" +#line 1471 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 589: -#line 1492 "cgrammar.y" +#line 1472 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 590: -#line 1493 "cgrammar.y" +#line 1473 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 591: -#line 1494 "cgrammar.y" +#line 1474 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 592: -#line 1495 "cgrammar.y" +#line 1475 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 593: -#line 1496 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; +#line 1478 "cgrammar.y" +{ yyval.entry = yyvsp[0].entry; ; break;} case 594: -#line 1497 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; +#line 1479 "cgrammar.y" +{ yyval.entry = uentry_undefined; ; break;} case 595: -#line 1498 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; +#line 1482 "cgrammar.y" +{ context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ; break;} case 596: -#line 1499 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; +#line 1486 "cgrammar.y" +{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 597: -#line 1502 "cgrammar.y" -{ yyval.entry = yyvsp[0].entry; ; +#line 1488 "cgrammar.y" +{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ; break;} case 598: -#line 1503 "cgrammar.y" -{ yyval.entry = uentry_undefined; ; +#line 1490 "cgrammar.y" +{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 599: -#line 1506 "cgrammar.y" -{ context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ; +#line 1493 "cgrammar.y" +{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 600: -#line 1510 "cgrammar.y" -{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; +#line 1495 "cgrammar.y" +{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ; break;} case 601: -#line 1512 "cgrammar.y" -{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ; +#line 1497 "cgrammar.y" +{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; break;} case 602: -#line 1514 "cgrammar.y" +#line 1498 "cgrammar.y" { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 603: -#line 1517 "cgrammar.y" -{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 604: -#line 1519 "cgrammar.y" -{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ; - break;} -case 605: -#line 1521 "cgrammar.y" -{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; - break;} -case 606: -#line 1522 "cgrammar.y" -{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 607: -#line 1525 "cgrammar.y" +#line 1501 "cgrammar.y" { yyval.expr = exprNode_goto (yyvsp[-1].cname); ; break;} -case 608: -#line 1526 "cgrammar.y" +case 604: +#line 1502 "cgrammar.y" { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ; break;} -case 609: -#line 1528 "cgrammar.y" +case 605: +#line 1504 "cgrammar.y" { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ; break;} -case 610: -#line 1529 "cgrammar.y" +case 606: +#line 1505 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ; break;} -case 611: -#line 1530 "cgrammar.y" +case 607: +#line 1506 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ; break;} -case 612: -#line 1531 "cgrammar.y" +case 608: +#line 1507 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ; break;} -case 613: -#line 1532 "cgrammar.y" +case 609: +#line 1508 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ; break;} -case 614: -#line 1533 "cgrammar.y" +case 610: +#line 1509 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ; break;} -case 615: -#line 1534 "cgrammar.y" +case 611: +#line 1510 "cgrammar.y" { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ; break;} -case 616: -#line 1535 "cgrammar.y" +case 612: +#line 1511 "cgrammar.y" { yyval.expr = exprNode_return (yyvsp[-1].expr); ; break;} -case 618: -#line 1539 "cgrammar.y" +case 614: +#line 1515 "cgrammar.y" { ; ; break;} -case 621: -#line 1546 "cgrammar.y" +case 617: +#line 1522 "cgrammar.y" { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} -case 622: -#line 1547 "cgrammar.y" +case 618: +#line 1523 "cgrammar.y" { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} -case 623: -#line 1548 "cgrammar.y" +case 619: +#line 1524 "cgrammar.y" { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} -case 624: -#line 1549 "cgrammar.y" -{ yyval.cname = yyvsp[0].cname; ; - break;} -case 626: -#line 1553 "cgrammar.y" -{ yyval.ctyp = ctype_unknown; ; - break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/usr/share/misc/bison.simple" +#line 498 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -5421,7 +5348,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 1555 "cgrammar.y" +#line 1530 "cgrammar.y" /*@-redecl@*/ diff --git a/src/cgrammar.tab.c b/src/cgrammar.tab.c index 647957a..0102760 100644 --- a/src/cgrammar.tab.c +++ b/src/cgrammar.tab.c @@ -177,13 +177,14 @@ #define QINTEGRALTYPE 427 #define QUNSIGNEDINTEGRALTYPE 428 #define QSIGNEDINTEGRALTYPE 429 -#define IDENTIFIER 430 -#define NEW_IDENTIFIER 431 -#define TYPE_NAME_OR_ID 432 -#define CCONSTANT 433 -#define ITER_NAME 434 -#define ITER_ENDNAME 435 -#define TYPE_NAME 436 +#define QNULLTERMINATED 430 +#define IDENTIFIER 431 +#define NEW_IDENTIFIER 432 +#define TYPE_NAME_OR_ID 433 +#define CCONSTANT 434 +#define ITER_NAME 435 +#define ITER_ENDNAME 436 +#define TYPE_NAME 437 #line 19 "cgrammar.y" @@ -239,8 +240,9 @@ void yyerror (char *s); # undef realloc # endif +void checkandsetBufState(idDecl id, exprNode is); -#line 74 "cgrammar.y" +#line 75 "cgrammar.y" typedef union { lltok tok; @@ -278,11 +280,11 @@ typedef union -#define YYFINAL 1158 +#define YYFINAL 1160 #define YYFLAG -32768 -#define YYNTBASE 182 +#define YYNTBASE 183 -#define YYTRANSLATE(x) ((unsigned)(x) <= 436 ? yytranslate[x] : 409) +#define YYTRANSLATE(x) ((unsigned)(x) <= 437 ? yytranslate[x] : 410) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -328,7 +330,7 @@ static const short yytranslate[] = { 0, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181 + 176, 177, 178, 179, 180, 181, 182 }; #if YYDEBUG != 0 @@ -363,311 +365,311 @@ static const short yyprhs[] = { 0, 861, 864, 867, 870, 873, 876, 879, 882, 885, 888, 891, 894, 897, 900, 903, 906, 909, 912, 915, 918, 921, 924, 927, 930, 933, 936, 939, 942, 945, 948, - 951, 954, 957, 960, 963, 966, 969, 971, 973, 975, - 977, 980, 983, 986, 989, 992, 995, 998, 1001, 1004, - 1007, 1010, 1013, 1016, 1019, 1023, 1025, 1030, 1032, 1036, - 1039, 1042, 1045, 1046, 1048, 1049, 1050, 1062, 1063, 1064, - 1076, 1083, 1090, 1091, 1092, 1103, 1104, 1105, 1116, 1122, - 1128, 1133, 1138, 1139, 1141, 1143, 1146, 1152, 1156, 1159, - 1164, 1166, 1170, 1175, 1182, 1183, 1192, 1197, 1199, 1203, - 1206, 1208, 1213, 1215, 1217, 1220, 1223, 1225, 1228, 1230, - 1233, 1235, 1237, 1239, 1242, 1244, 1247, 1250, 1254, 1256, - 1260, 1262, 1266, 1268, 1270, 1274, 1275, 1278, 1279, 1284, - 1289, 1291, 1293, 1296, 1298, 1300, 1303, 1304, 1306, 1312, - 1315, 1319, 1323, 1328, 1332, 1337, 1342, 1348, 1350, 1352, - 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372, - 1375, 1378, 1386, 1393, 1396, 1397, 1398, 1409, 1410, 1417, - 1419, 1421, 1423, 1425, 1428, 1430, 1432, 1434, 1436, 1438, - 1440, 1442, 1446, 1448, 1451, 1454, 1457, 1459, 1461, 1463, - 1465, 1467, 1469, 1471, 1473, 1475, 1477, 1481, 1483, 1485, - 1488, 1491, 1492, 1497, 1498, 1504, 1505, 1509, 1510, 1515, - 1519, 1522, 1526, 1527, 1528, 1529, 1530, 1531, 1533, 1536, - 1539, 1543, 1546, 1550, 1554, 1559, 1562, 1565, 1569, 1573, - 1578, 1580, 1583, 1585, 1588, 1590, 1593, 1595, 1598, 1600, - 1603, 1605, 1610, 1613, 1614, 1620, 1621, 1628, 1633, 1638, - 1639, 1640, 1651, 1653, 1654, 1659, 1661, 1663, 1665, 1667, - 1669, 1673, 1675, 1680, 1684, 1689, 1696, 1702, 1708, 1711, - 1714, 1716, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, - 1742, 1744, 1749, 1751, 1755, 1759, 1763, 1765, 1769, 1773, - 1775, 1779, 1783, 1785, 1789, 1793, 1797, 1801, 1803, 1807, - 1811, 1813, 1817, 1819, 1823, 1825, 1829, 1831, 1835, 1837, - 1841, 1843, 1844, 1845, 1853, 1855, 1859, 1863, 1867, 1871, - 1875, 1879, 1883, 1887, 1891, 1895, 1899, 1901, 1902, 1904, - 1907, 1915, 1918, 1921, 1929, 1936, 1939, 1943, 1946, 1950, - 1953, 1957, 1961, 1965, 1969, 1972, 1976, 1977, 1979, 1981, - 1983, 1985, 1987, 1989, 1991, 1993 + 951, 954, 957, 960, 963, 966, 969, 972, 974, 976, + 978, 980, 983, 986, 989, 992, 995, 998, 1001, 1004, + 1007, 1010, 1013, 1016, 1019, 1022, 1026, 1028, 1033, 1035, + 1039, 1042, 1045, 1048, 1049, 1051, 1052, 1053, 1065, 1066, + 1067, 1079, 1086, 1093, 1094, 1095, 1106, 1107, 1108, 1119, + 1125, 1131, 1136, 1141, 1142, 1144, 1146, 1149, 1155, 1159, + 1162, 1167, 1169, 1173, 1178, 1185, 1186, 1195, 1200, 1202, + 1206, 1209, 1211, 1216, 1218, 1220, 1223, 1226, 1228, 1231, + 1233, 1236, 1238, 1240, 1242, 1245, 1247, 1250, 1253, 1257, + 1259, 1263, 1265, 1269, 1271, 1273, 1277, 1278, 1281, 1282, + 1287, 1292, 1294, 1296, 1299, 1301, 1303, 1306, 1307, 1309, + 1315, 1318, 1322, 1326, 1331, 1335, 1340, 1345, 1351, 1353, + 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373, + 1375, 1378, 1381, 1389, 1396, 1399, 1400, 1401, 1412, 1413, + 1420, 1422, 1424, 1426, 1428, 1431, 1433, 1435, 1437, 1439, + 1441, 1443, 1445, 1449, 1451, 1454, 1457, 1460, 1462, 1464, + 1466, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1484, 1486, + 1488, 1491, 1494, 1495, 1500, 1501, 1507, 1508, 1512, 1513, + 1518, 1522, 1525, 1529, 1530, 1531, 1532, 1533, 1534, 1536, + 1539, 1542, 1546, 1549, 1553, 1557, 1562, 1565, 1568, 1572, + 1576, 1581, 1583, 1586, 1588, 1591, 1593, 1596, 1598, 1601, + 1603, 1606, 1608, 1613, 1616, 1617, 1623, 1624, 1631, 1636, + 1641, 1642, 1643, 1654, 1656, 1657, 1662, 1664, 1666, 1668, + 1670, 1672, 1676, 1678, 1683, 1687, 1692, 1699, 1705, 1711, + 1714, 1717, 1719, 1722, 1725, 1728, 1731, 1734, 1737, 1740, + 1743, 1745, 1747, 1752, 1754, 1758, 1762, 1766, 1768, 1772, + 1776, 1778, 1782, 1786, 1788, 1792, 1796, 1800, 1804, 1806, + 1810, 1814, 1816, 1820, 1822, 1826, 1828, 1832, 1834, 1838, + 1840, 1844, 1846, 1847, 1848, 1856, 1858, 1862, 1866, 1870, + 1874, 1878, 1882, 1886, 1890, 1894, 1898, 1902, 1904, 1905, + 1907, 1910, 1918, 1921, 1924, 1932, 1939, 1942, 1946, 1949, + 1953, 1956, 1960, 1964, 1968, 1972, 1975, 1979, 1980, 1982, + 1984, 1986, 1988, 1990, 1992, 1994, 1996 }; static const short yyrhs[] = { -1, - 183, 0, 184, 0, 183, 184, 0, 236, 405, 0, - 185, 0, 186, 0, 196, 0, 199, 0, 273, 0, - 1, 0, 75, 293, 306, 316, 306, 405, 281, 88, - 0, 75, 293, 306, 316, 306, 23, 281, 286, 285, - 405, 88, 0, 0, 76, 187, 188, 405, 88, 0, - 189, 0, 293, 306, 189, 0, 193, 0, 320, 193, - 0, 407, 0, 281, 24, 306, 316, 281, 25, 0, - 190, 26, 27, 0, 190, 26, 281, 272, 27, 306, - 0, 0, 190, 282, 24, 25, 191, 201, 0, 0, - 190, 282, 24, 317, 25, 192, 201, 0, 407, 0, - 281, 24, 306, 189, 281, 25, 0, 193, 26, 27, - 0, 193, 26, 281, 272, 27, 306, 0, 0, 193, - 282, 24, 25, 194, 203, 0, 0, 193, 282, 24, - 317, 25, 195, 203, 0, 0, 0, 77, 407, 24, - 317, 25, 197, 203, 198, 405, 88, 0, 89, 346, - 92, 0, 90, 333, 92, 0, 91, 334, 92, 0, - 89, 92, 0, 232, 0, 0, 202, 205, 0, 0, - 204, 206, 0, 213, 0, 207, 213, 0, 216, 0, - 207, 216, 0, 229, 0, 229, 207, 0, 209, 0, - 208, 21, 209, 0, 212, 210, 0, 406, 0, 176, + 184, 0, 185, 0, 184, 185, 0, 237, 406, 0, + 186, 0, 187, 0, 197, 0, 200, 0, 274, 0, + 1, 0, 75, 294, 307, 317, 307, 406, 282, 88, + 0, 75, 294, 307, 317, 307, 23, 282, 287, 286, + 406, 88, 0, 0, 76, 188, 189, 406, 88, 0, + 190, 0, 294, 307, 190, 0, 194, 0, 321, 194, + 0, 408, 0, 282, 24, 307, 317, 282, 25, 0, + 191, 26, 27, 0, 191, 26, 282, 273, 27, 307, + 0, 0, 191, 283, 24, 25, 192, 202, 0, 0, + 191, 283, 24, 318, 25, 193, 202, 0, 408, 0, + 282, 24, 307, 190, 282, 25, 0, 194, 26, 27, + 0, 194, 26, 282, 273, 27, 307, 0, 0, 194, + 283, 24, 25, 195, 204, 0, 0, 194, 283, 24, + 318, 25, 196, 204, 0, 0, 0, 77, 408, 24, + 318, 25, 198, 204, 199, 406, 88, 0, 89, 347, + 92, 0, 90, 334, 92, 0, 91, 335, 92, 0, + 89, 92, 0, 233, 0, 0, 203, 206, 0, 0, + 205, 207, 0, 214, 0, 208, 214, 0, 217, 0, + 208, 217, 0, 230, 0, 230, 208, 0, 210, 0, + 209, 21, 210, 0, 213, 211, 0, 407, 0, 177, 0, 86, 0, 87, 0, 116, 0, 117, 0, 130, - 0, 0, 211, 212, 0, 0, 72, 214, 366, 405, - 88, 219, 0, 0, 72, 215, 208, 405, 88, 219, - 0, 74, 0, 220, 0, 0, 0, 72, 217, 366, - 405, 219, 0, 0, 72, 218, 208, 405, 219, 0, - 74, 0, 222, 0, 0, 220, 0, 0, 0, 73, - 221, 237, 0, 0, 73, 223, 238, 0, 78, 0, + 0, 0, 212, 213, 0, 0, 72, 215, 367, 406, + 88, 220, 0, 0, 72, 216, 209, 406, 88, 220, + 0, 74, 0, 221, 0, 0, 0, 72, 218, 367, + 406, 220, 0, 0, 72, 219, 209, 406, 220, 0, + 74, 0, 223, 0, 0, 221, 0, 0, 0, 73, + 222, 238, 0, 0, 73, 224, 239, 0, 78, 0, 79, 0, 80, 0, 81, 0, 82, 0, 88, 0, 88, 0, 83, 0, 84, 0, 119, 0, 137, 0, 135, 0, 133, 0, 132, 0, 121, 0, 138, 0, - 150, 0, 0, 224, 306, 230, 243, 405, 226, 281, - 0, 0, 227, 306, 228, 231, 243, 405, 225, 281, - 0, 316, 0, 293, 306, 316, 0, 0, 19, 234, - 362, 0, 0, 366, 235, 355, 0, 200, 233, 0, - 241, 405, 88, 0, 405, 88, 0, 241, 405, 0, - 405, 0, 406, 0, 176, 0, 239, 26, 27, 0, - 239, 26, 240, 27, 0, 34, 239, 0, 24, 239, - 25, 0, 239, 28, 407, 0, 239, 44, 407, 0, - 239, 0, 178, 0, 239, 0, 241, 21, 239, 0, - 406, 0, 176, 0, 242, 26, 27, 0, 242, 26, - 240, 27, 0, 34, 242, 0, 24, 242, 25, 0, - 242, 28, 407, 0, 242, 44, 407, 0, 242, 0, - 243, 21, 242, 0, 406, 0, 176, 0, 178, 0, - 24, 270, 25, 0, 177, 0, 111, 0, 244, 0, - 245, 26, 270, 27, 0, 245, 24, 25, 0, 245, - 24, 246, 25, 0, 70, 24, 269, 21, 328, 25, - 0, 245, 306, 28, 407, 281, 0, 245, 306, 44, - 407, 281, 0, 245, 47, 0, 245, 48, 0, 269, - 0, 246, 21, 269, 0, 245, 0, 47, 247, 0, - 48, 247, 0, 29, 253, 0, 34, 253, 0, 33, - 253, 0, 32, 253, 0, 31, 253, 0, 30, 253, - 0, 250, 0, 249, 0, 248, 28, 407, 0, 407, - 0, 46, 281, 24, 328, 306, 21, 248, 25, 281, - 0, 0, 281, 251, 252, 0, 42, 24, 328, 25, - 0, 42, 247, 0, 43, 24, 328, 25, 0, 43, - 247, 0, 247, 0, 24, 328, 25, 253, 0, 253, - 0, 254, 34, 253, 0, 254, 35, 253, 0, 254, - 36, 253, 0, 254, 0, 255, 33, 254, 0, 255, - 32, 254, 0, 255, 0, 256, 49, 255, 0, 256, - 50, 255, 0, 256, 0, 257, 37, 256, 0, 257, - 38, 256, 0, 257, 51, 256, 0, 257, 52, 256, - 0, 257, 0, 258, 53, 257, 0, 258, 54, 257, - 0, 258, 0, 259, 29, 258, 0, 259, 0, 260, - 39, 259, 0, 260, 0, 261, 40, 260, 0, 261, - 0, 0, 262, 55, 263, 261, 0, 262, 0, 0, - 264, 56, 265, 262, 0, 264, 0, 0, 0, 264, - 41, 267, 270, 22, 268, 266, 0, 266, 0, 247, - 23, 269, 0, 247, 57, 269, 0, 247, 58, 269, - 0, 247, 59, 269, 0, 247, 60, 269, 0, 247, - 61, 269, 0, 247, 62, 269, 0, 247, 63, 269, - 0, 247, 64, 269, 0, 247, 65, 269, 0, 247, - 66, 269, 0, 269, 0, 270, 21, 269, 0, 0, - 270, 0, 266, 0, 274, 0, 71, 0, 279, 0, - 293, 281, 18, 0, 0, 293, 306, 316, 306, 275, - 281, 285, 18, 281, 0, 0, 293, 306, 316, 306, - 23, 276, 281, 286, 285, 18, 281, 0, 316, 306, - 0, 0, 316, 306, 23, 278, 281, 286, 0, 0, - 45, 293, 280, 306, 283, 281, 18, 0, 45, 293, - 281, 18, 0, 45, 283, 281, 18, 0, 0, 0, - 284, 281, 0, 277, 0, 283, 21, 306, 277, 0, - 0, 285, 21, 306, 277, 0, 269, 0, 19, 287, - 20, 0, 19, 287, 21, 20, 0, 286, 0, 287, - 21, 286, 0, 112, 0, 110, 0, 113, 0, 114, - 0, 115, 0, 108, 281, 0, 109, 281, 0, 116, - 281, 0, 117, 281, 0, 130, 281, 0, 131, 281, - 0, 132, 281, 0, 133, 281, 0, 118, 281, 0, - 120, 281, 0, 119, 281, 0, 128, 281, 0, 129, - 281, 0, 121, 281, 0, 123, 281, 0, 139, 281, - 0, 140, 281, 0, 142, 281, 0, 143, 281, 0, - 141, 281, 0, 136, 281, 0, 151, 281, 0, 134, - 281, 0, 135, 281, 0, 137, 281, 0, 124, 281, - 0, 127, 281, 0, 125, 281, 0, 126, 281, 0, - 156, 281, 0, 157, 281, 0, 148, 281, 0, 158, - 281, 0, 149, 281, 0, 152, 281, 0, 153, 281, - 0, 154, 281, 0, 155, 281, 0, 150, 281, 0, - 159, 281, 0, 160, 281, 0, 163, 281, 0, 164, - 281, 0, 161, 281, 0, 162, 281, 0, 147, 0, - 144, 0, 145, 0, 146, 0, 165, 306, 0, 167, - 306, 0, 166, 306, 0, 168, 306, 0, 169, 306, - 0, 170, 306, 0, 171, 306, 0, 172, 306, 0, - 173, 306, 0, 174, 306, 0, 408, 306, 0, 297, - 306, 0, 311, 306, 0, 290, 306, 0, 281, 293, - 281, 0, 295, 0, 295, 85, 294, 88, 0, 328, - 0, 328, 21, 294, 0, 288, 296, 0, 289, 296, - 0, 291, 296, 0, 0, 293, 0, 0, 0, 306, - 67, 407, 281, 19, 298, 359, 307, 360, 299, 20, - 0, 0, 0, 306, 68, 407, 281, 19, 300, 359, - 307, 360, 301, 20, 0, 306, 67, 407, 281, 19, - 20, 0, 306, 68, 407, 281, 19, 20, 0, 0, - 0, 306, 67, 281, 19, 302, 359, 307, 360, 303, - 20, 0, 0, 0, 306, 68, 281, 19, 304, 359, - 307, 360, 305, 20, 0, 306, 67, 281, 19, 20, - 0, 306, 68, 281, 19, 20, 0, 306, 67, 407, - 306, 0, 306, 68, 407, 306, 0, 0, 308, 0, - 199, 0, 307, 308, 0, 293, 306, 309, 281, 18, - 0, 293, 281, 18, 0, 310, 306, 0, 309, 21, - 310, 306, 0, 316, 0, 22, 281, 272, 0, 316, - 22, 281, 272, 0, 306, 69, 19, 313, 20, 281, - 0, 0, 306, 69, 407, 19, 312, 313, 20, 281, - 0, 306, 69, 407, 281, 0, 314, 0, 313, 21, - 314, 0, 313, 21, 0, 407, 0, 407, 23, 281, - 272, 0, 190, 0, 330, 0, 320, 181, 0, 320, - 315, 0, 190, 0, 320, 190, 0, 323, 0, 306, - 321, 0, 108, 0, 109, 0, 318, 0, 319, 318, - 0, 34, 0, 34, 319, 0, 34, 320, 0, 34, - 319, 320, 0, 322, 0, 322, 21, 5, 0, 407, - 0, 322, 21, 407, 0, 5, 0, 324, 0, 324, - 21, 5, 0, 0, 325, 327, 0, 0, 324, 21, - 326, 327, 0, 281, 293, 315, 281, 0, 407, 0, - 292, 0, 292, 329, 0, 320, 0, 331, 0, 320, - 331, 0, 0, 331, 0, 281, 24, 306, 329, 25, - 0, 26, 27, 0, 26, 272, 27, 0, 331, 26, - 27, 0, 331, 26, 272, 27, 0, 281, 24, 25, - 0, 281, 24, 323, 25, 0, 331, 281, 24, 25, - 0, 331, 281, 24, 323, 25, 0, 348, 0, 349, - 0, 352, 0, 355, 0, 368, 0, 371, 0, 402, - 0, 376, 0, 404, 0, 335, 0, 333, 0, 342, - 0, 335, 342, 0, 375, 335, 0, 401, 347, 11, - 24, 270, 25, 18, 0, 401, 347, 11, 24, 270, - 25, 0, 337, 342, 0, 0, 0, 13, 24, 271, - 18, 271, 18, 338, 271, 339, 25, 0, 0, 179, - 357, 24, 341, 379, 25, 0, 180, 0, 348, 0, - 349, 0, 352, 0, 344, 366, 0, 344, 0, 345, - 0, 368, 0, 343, 0, 336, 0, 340, 0, 404, - 0, 24, 342, 25, 0, 1, 0, 370, 342, 0, - 357, 19, 0, 361, 20, 0, 347, 0, 365, 0, - 348, 0, 349, 0, 352, 0, 356, 0, 369, 0, - 371, 0, 376, 0, 403, 0, 24, 347, 25, 0, - 404, 0, 1, 0, 407, 22, 0, 107, 332, 0, - 0, 6, 272, 350, 22, 0, 0, 98, 6, 272, - 351, 22, 0, 0, 7, 353, 22, 0, 0, 98, - 7, 354, 22, 0, 24, 355, 25, 0, 357, 363, - 0, 357, 364, 358, 0, 0, 0, 0, 0, 0, - 20, 0, 107, 20, 0, 367, 20, 0, 367, 107, - 20, 0, 366, 20, 0, 366, 107, 20, 0, 366, - 367, 20, 0, 366, 367, 107, 20, 0, 19, 362, - 0, 19, 20, 0, 19, 365, 20, 0, 19, 366, - 20, 0, 19, 366, 367, 20, 0, 347, 0, 365, - 347, 0, 273, 0, 366, 273, 0, 332, 0, 367, - 332, 0, 18, 0, 270, 18, 0, 18, 0, 270, - 18, 0, 270, 0, 8, 24, 270, 25, 0, 370, - 332, 0, 0, 370, 332, 9, 372, 332, 0, 0, - 10, 24, 270, 373, 25, 332, 0, 11, 24, 270, - 25, 0, 11, 24, 270, 25, 0, 0, 0, 179, - 377, 357, 24, 378, 379, 25, 355, 400, 358, 0, - 381, 0, 0, 379, 380, 21, 381, 0, 399, 0, - 406, 0, 177, 0, 176, 0, 178, 0, 24, 270, - 25, 0, 382, 0, 245, 26, 270, 27, 0, 245, - 24, 25, 0, 245, 24, 246, 25, 0, 70, 24, - 269, 21, 328, 25, 0, 245, 306, 28, 407, 281, - 0, 245, 306, 44, 407, 281, 0, 245, 47, 0, - 245, 48, 0, 383, 0, 47, 247, 0, 48, 247, - 0, 29, 253, 0, 34, 253, 0, 33, 253, 0, - 32, 253, 0, 31, 253, 0, 30, 253, 0, 250, - 0, 384, 0, 24, 328, 25, 253, 0, 385, 0, - 254, 34, 253, 0, 254, 35, 253, 0, 254, 36, - 253, 0, 386, 0, 255, 33, 254, 0, 255, 32, - 254, 0, 387, 0, 256, 49, 255, 0, 256, 50, - 255, 0, 388, 0, 257, 37, 256, 0, 257, 38, - 256, 0, 257, 51, 256, 0, 257, 52, 256, 0, - 389, 0, 258, 53, 257, 0, 258, 54, 257, 0, - 390, 0, 259, 29, 258, 0, 391, 0, 260, 39, - 259, 0, 392, 0, 261, 40, 260, 0, 393, 0, - 262, 55, 261, 0, 394, 0, 264, 56, 262, 0, - 395, 0, 0, 0, 264, 41, 397, 270, 22, 398, - 266, 0, 396, 0, 247, 23, 269, 0, 247, 57, - 269, 0, 247, 58, 269, 0, 247, 59, 269, 0, - 247, 60, 269, 0, 247, 61, 269, 0, 247, 62, - 269, 0, 247, 63, 269, 0, 247, 64, 269, 0, - 247, 65, 269, 0, 247, 66, 269, 0, 180, 0, - 0, 12, 0, 374, 332, 0, 401, 332, 11, 24, - 270, 25, 18, 0, 337, 332, 0, 374, 347, 0, - 401, 347, 11, 24, 270, 25, 18, 0, 401, 347, - 11, 24, 270, 25, 0, 337, 347, 0, 14, 407, - 18, 0, 15, 18, 0, 97, 15, 18, 0, 16, - 18, 0, 93, 16, 18, 0, 94, 16, 18, 0, - 95, 16, 18, 0, 96, 16, 18, 0, 17, 18, - 0, 17, 270, 18, 0, 0, 18, 0, 175, 0, - 176, 0, 179, 0, 180, 0, 406, 0, 177, 0, - 181, 0, 177, 0 + 150, 0, 0, 225, 307, 231, 244, 406, 227, 282, + 0, 0, 228, 307, 229, 232, 244, 406, 226, 282, + 0, 317, 0, 294, 307, 317, 0, 0, 19, 235, + 363, 0, 0, 367, 236, 356, 0, 201, 234, 0, + 242, 406, 88, 0, 406, 88, 0, 242, 406, 0, + 406, 0, 407, 0, 177, 0, 240, 26, 27, 0, + 240, 26, 241, 27, 0, 34, 240, 0, 24, 240, + 25, 0, 240, 28, 408, 0, 240, 44, 408, 0, + 240, 0, 179, 0, 240, 0, 242, 21, 240, 0, + 407, 0, 177, 0, 243, 26, 27, 0, 243, 26, + 241, 27, 0, 34, 243, 0, 24, 243, 25, 0, + 243, 28, 408, 0, 243, 44, 408, 0, 243, 0, + 244, 21, 243, 0, 407, 0, 177, 0, 179, 0, + 24, 271, 25, 0, 178, 0, 111, 0, 245, 0, + 246, 26, 271, 27, 0, 246, 24, 25, 0, 246, + 24, 247, 25, 0, 70, 24, 270, 21, 329, 25, + 0, 246, 307, 28, 408, 282, 0, 246, 307, 44, + 408, 282, 0, 246, 47, 0, 246, 48, 0, 270, + 0, 247, 21, 270, 0, 246, 0, 47, 248, 0, + 48, 248, 0, 29, 254, 0, 34, 254, 0, 33, + 254, 0, 32, 254, 0, 31, 254, 0, 30, 254, + 0, 251, 0, 250, 0, 249, 28, 408, 0, 408, + 0, 46, 282, 24, 329, 307, 21, 249, 25, 282, + 0, 0, 282, 252, 253, 0, 42, 24, 329, 25, + 0, 42, 248, 0, 43, 24, 329, 25, 0, 43, + 248, 0, 248, 0, 24, 329, 25, 254, 0, 254, + 0, 255, 34, 254, 0, 255, 35, 254, 0, 255, + 36, 254, 0, 255, 0, 256, 33, 255, 0, 256, + 32, 255, 0, 256, 0, 257, 49, 256, 0, 257, + 50, 256, 0, 257, 0, 258, 37, 257, 0, 258, + 38, 257, 0, 258, 51, 257, 0, 258, 52, 257, + 0, 258, 0, 259, 53, 258, 0, 259, 54, 258, + 0, 259, 0, 260, 29, 259, 0, 260, 0, 261, + 39, 260, 0, 261, 0, 262, 40, 261, 0, 262, + 0, 0, 263, 55, 264, 262, 0, 263, 0, 0, + 265, 56, 266, 263, 0, 265, 0, 0, 0, 265, + 41, 268, 271, 22, 269, 267, 0, 267, 0, 248, + 23, 270, 0, 248, 57, 270, 0, 248, 58, 270, + 0, 248, 59, 270, 0, 248, 60, 270, 0, 248, + 61, 270, 0, 248, 62, 270, 0, 248, 63, 270, + 0, 248, 64, 270, 0, 248, 65, 270, 0, 248, + 66, 270, 0, 270, 0, 271, 21, 270, 0, 0, + 271, 0, 267, 0, 275, 0, 71, 0, 280, 0, + 294, 282, 18, 0, 0, 294, 307, 317, 307, 276, + 282, 286, 18, 282, 0, 0, 294, 307, 317, 307, + 23, 277, 282, 287, 286, 18, 282, 0, 317, 307, + 0, 0, 317, 307, 23, 279, 282, 287, 0, 0, + 45, 294, 281, 307, 284, 282, 18, 0, 45, 294, + 282, 18, 0, 45, 284, 282, 18, 0, 0, 0, + 285, 282, 0, 278, 0, 284, 21, 307, 278, 0, + 0, 286, 21, 307, 278, 0, 270, 0, 19, 288, + 20, 0, 19, 288, 21, 20, 0, 287, 0, 288, + 21, 287, 0, 112, 0, 110, 0, 113, 0, 114, + 0, 115, 0, 108, 282, 0, 109, 282, 0, 116, + 282, 0, 117, 282, 0, 130, 282, 0, 131, 282, + 0, 132, 282, 0, 133, 282, 0, 118, 282, 0, + 120, 282, 0, 119, 282, 0, 128, 282, 0, 129, + 282, 0, 121, 282, 0, 123, 282, 0, 139, 282, + 0, 140, 282, 0, 142, 282, 0, 143, 282, 0, + 141, 282, 0, 136, 282, 0, 151, 282, 0, 134, + 282, 0, 135, 282, 0, 137, 282, 0, 124, 282, + 0, 127, 282, 0, 125, 282, 0, 126, 282, 0, + 156, 282, 0, 157, 282, 0, 148, 282, 0, 158, + 282, 0, 149, 282, 0, 152, 282, 0, 153, 282, + 0, 154, 282, 0, 155, 282, 0, 150, 282, 0, + 159, 282, 0, 160, 282, 0, 163, 282, 0, 164, + 282, 0, 161, 282, 0, 162, 282, 0, 175, 282, + 0, 147, 0, 144, 0, 145, 0, 146, 0, 165, + 307, 0, 167, 307, 0, 166, 307, 0, 168, 307, + 0, 169, 307, 0, 170, 307, 0, 171, 307, 0, + 172, 307, 0, 173, 307, 0, 174, 307, 0, 409, + 307, 0, 298, 307, 0, 312, 307, 0, 291, 307, + 0, 282, 294, 282, 0, 296, 0, 296, 85, 295, + 88, 0, 329, 0, 329, 21, 295, 0, 289, 297, + 0, 290, 297, 0, 292, 297, 0, 0, 294, 0, + 0, 0, 307, 67, 408, 282, 19, 299, 360, 308, + 361, 300, 20, 0, 0, 0, 307, 68, 408, 282, + 19, 301, 360, 308, 361, 302, 20, 0, 307, 67, + 408, 282, 19, 20, 0, 307, 68, 408, 282, 19, + 20, 0, 0, 0, 307, 67, 282, 19, 303, 360, + 308, 361, 304, 20, 0, 0, 0, 307, 68, 282, + 19, 305, 360, 308, 361, 306, 20, 0, 307, 67, + 282, 19, 20, 0, 307, 68, 282, 19, 20, 0, + 307, 67, 408, 307, 0, 307, 68, 408, 307, 0, + 0, 309, 0, 200, 0, 308, 309, 0, 294, 307, + 310, 282, 18, 0, 294, 282, 18, 0, 311, 307, + 0, 310, 21, 311, 307, 0, 317, 0, 22, 282, + 273, 0, 317, 22, 282, 273, 0, 307, 69, 19, + 314, 20, 282, 0, 0, 307, 69, 408, 19, 313, + 314, 20, 282, 0, 307, 69, 408, 282, 0, 315, + 0, 314, 21, 315, 0, 314, 21, 0, 408, 0, + 408, 23, 282, 273, 0, 191, 0, 331, 0, 321, + 182, 0, 321, 316, 0, 191, 0, 321, 191, 0, + 324, 0, 307, 322, 0, 108, 0, 109, 0, 319, + 0, 320, 319, 0, 34, 0, 34, 320, 0, 34, + 321, 0, 34, 320, 321, 0, 323, 0, 323, 21, + 5, 0, 408, 0, 323, 21, 408, 0, 5, 0, + 325, 0, 325, 21, 5, 0, 0, 326, 328, 0, + 0, 325, 21, 327, 328, 0, 282, 294, 316, 282, + 0, 408, 0, 293, 0, 293, 330, 0, 321, 0, + 332, 0, 321, 332, 0, 0, 332, 0, 282, 24, + 307, 330, 25, 0, 26, 27, 0, 26, 273, 27, + 0, 332, 26, 27, 0, 332, 26, 273, 27, 0, + 282, 24, 25, 0, 282, 24, 324, 25, 0, 332, + 282, 24, 25, 0, 332, 282, 24, 324, 25, 0, + 349, 0, 350, 0, 353, 0, 356, 0, 369, 0, + 372, 0, 403, 0, 377, 0, 405, 0, 336, 0, + 334, 0, 343, 0, 336, 343, 0, 376, 336, 0, + 402, 348, 11, 24, 271, 25, 18, 0, 402, 348, + 11, 24, 271, 25, 0, 338, 343, 0, 0, 0, + 13, 24, 272, 18, 272, 18, 339, 272, 340, 25, + 0, 0, 180, 358, 24, 342, 380, 25, 0, 181, + 0, 349, 0, 350, 0, 353, 0, 345, 367, 0, + 345, 0, 346, 0, 369, 0, 344, 0, 337, 0, + 341, 0, 405, 0, 24, 343, 25, 0, 1, 0, + 371, 343, 0, 358, 19, 0, 362, 20, 0, 348, + 0, 366, 0, 349, 0, 350, 0, 353, 0, 357, + 0, 370, 0, 372, 0, 377, 0, 404, 0, 24, + 348, 25, 0, 405, 0, 1, 0, 408, 22, 0, + 107, 333, 0, 0, 6, 273, 351, 22, 0, 0, + 98, 6, 273, 352, 22, 0, 0, 7, 354, 22, + 0, 0, 98, 7, 355, 22, 0, 24, 356, 25, + 0, 358, 364, 0, 358, 365, 359, 0, 0, 0, + 0, 0, 0, 20, 0, 107, 20, 0, 368, 20, + 0, 368, 107, 20, 0, 367, 20, 0, 367, 107, + 20, 0, 367, 368, 20, 0, 367, 368, 107, 20, + 0, 19, 363, 0, 19, 20, 0, 19, 366, 20, + 0, 19, 367, 20, 0, 19, 367, 368, 20, 0, + 348, 0, 366, 348, 0, 274, 0, 367, 274, 0, + 333, 0, 368, 333, 0, 18, 0, 271, 18, 0, + 18, 0, 271, 18, 0, 271, 0, 8, 24, 271, + 25, 0, 371, 333, 0, 0, 371, 333, 9, 373, + 333, 0, 0, 10, 24, 271, 374, 25, 333, 0, + 11, 24, 271, 25, 0, 11, 24, 271, 25, 0, + 0, 0, 180, 378, 358, 24, 379, 380, 25, 356, + 401, 359, 0, 382, 0, 0, 380, 381, 21, 382, + 0, 400, 0, 407, 0, 178, 0, 177, 0, 179, + 0, 24, 271, 25, 0, 383, 0, 246, 26, 271, + 27, 0, 246, 24, 25, 0, 246, 24, 247, 25, + 0, 70, 24, 270, 21, 329, 25, 0, 246, 307, + 28, 408, 282, 0, 246, 307, 44, 408, 282, 0, + 246, 47, 0, 246, 48, 0, 384, 0, 47, 248, + 0, 48, 248, 0, 29, 254, 0, 34, 254, 0, + 33, 254, 0, 32, 254, 0, 31, 254, 0, 30, + 254, 0, 251, 0, 385, 0, 24, 329, 25, 254, + 0, 386, 0, 255, 34, 254, 0, 255, 35, 254, + 0, 255, 36, 254, 0, 387, 0, 256, 33, 255, + 0, 256, 32, 255, 0, 388, 0, 257, 49, 256, + 0, 257, 50, 256, 0, 389, 0, 258, 37, 257, + 0, 258, 38, 257, 0, 258, 51, 257, 0, 258, + 52, 257, 0, 390, 0, 259, 53, 258, 0, 259, + 54, 258, 0, 391, 0, 260, 29, 259, 0, 392, + 0, 261, 39, 260, 0, 393, 0, 262, 40, 261, + 0, 394, 0, 263, 55, 262, 0, 395, 0, 265, + 56, 263, 0, 396, 0, 0, 0, 265, 41, 398, + 271, 22, 399, 267, 0, 397, 0, 248, 23, 270, + 0, 248, 57, 270, 0, 248, 58, 270, 0, 248, + 59, 270, 0, 248, 60, 270, 0, 248, 61, 270, + 0, 248, 62, 270, 0, 248, 63, 270, 0, 248, + 64, 270, 0, 248, 65, 270, 0, 248, 66, 270, + 0, 181, 0, 0, 12, 0, 375, 333, 0, 402, + 333, 11, 24, 271, 25, 18, 0, 338, 333, 0, + 375, 348, 0, 402, 348, 11, 24, 271, 25, 18, + 0, 402, 348, 11, 24, 271, 25, 0, 338, 348, + 0, 14, 408, 18, 0, 15, 18, 0, 97, 15, + 18, 0, 16, 18, 0, 93, 16, 18, 0, 94, + 16, 18, 0, 95, 16, 18, 0, 96, 16, 18, + 0, 17, 18, 0, 17, 271, 18, 0, 0, 18, + 0, 176, 0, 177, 0, 180, 0, 181, 0, 407, + 0, 178, 0, 182, 0, 178, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 232, 233, 236, 237, 240, 241, 242, 243, 244, 245, - 246, 249, 251, 255, 255, 260, 266, 270, 271, 275, - 276, 278, 280, 296, 300, 307, 311, 317, 318, 320, - 322, 338, 342, 349, 353, 359, 361, 361, 365, 366, - 367, 368, 371, 374, 375, 378, 379, 382, 383, 386, - 387, 390, 391, 394, 395, 398, 401, 402, 405, 406, - 407, 408, 409, 412, 413, 416, 416, 419, 419, 422, - 426, 427, 430, 430, 433, 433, 436, 440, 441, 444, - 445, 448, 454, 461, 467, 474, 475, 476, 477, 478, - 481, 484, 487, 488, 491, 492, 493, 494, 495, 496, - 497, 498, 501, 507, 514, 520, 529, 535, 539, 541, - 545, 548, 555, 563, 564, 567, 568, 571, 572, 573, - 574, 575, 576, 577, 578, 582, 583, 587, 588, 591, - 593, 595, 596, 597, 598, 599, 601, 605, 609, 621, - 622, 623, 624, 625, 626, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 640, 641, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 657, 658, 661, - 665, 666, 669, 670, 671, 672, 675, 676, 680, 681, - 682, 683, 686, 687, 688, 691, 692, 693, 696, 697, - 698, 699, 700, 703, 704, 705, 708, 709, 712, 713, - 717, 718, 721, 722, 727, 733, 734, 740, 746, 747, - 747, 749, 752, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 766, 767, 770, 771, 774, 779, - 780, 781, 784, 797, 801, 802, 805, 810, 811, 811, - 816, 817, 818, 819, 822, 825, 828, 831, 832, 835, - 836, 839, 840, 841, 845, 847, 856, 857, 858, 859, - 860, 863, 864, 865, 866, 867, 868, 869, 870, 871, - 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, - 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, - 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, - 902, 903, 904, 905, 906, 907, 910, 911, 912, 913, - 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, - 926, 927, 928, 929, 932, 936, 937, 941, 942, 946, - 947, 948, 951, 952, 955, 957, 959, 960, 962, 964, - 965, 967, 969, 971, 973, 974, 976, 978, 979, 981, - 983, 984, 987, 990, 991, 992, 995, 997, 1001, 1003, - 1007, 1008, 1009, 1013, 1015, 1015, 1017, 1020, 1022, 1024, - 1027, 1032, 1039, 1040, 1041, 1048, 1052, 1053, 1057, 1058, - 1061, 1062, 1065, 1066, 1069, 1070, 1071, 1072, 1075, 1076, - 1079, 1080, 1083, 1084, 1085, 1088, 1088, 1089, 1090, 1093, - 1105, 1121, 1122, 1125, 1126, 1127, 1130, 1131, 1134, 1136, - 1137, 1138, 1139, 1140, 1142, 1144, 1146, 1152, 1153, 1154, - 1155, 1156, 1157, 1158, 1159, 1160, 1163, 1166, 1169, 1170, - 1174, 1176, 1178, 1180, 1184, 1185, 1187, 1191, 1193, 1195, - 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, - 1208, 1209, 1210, 1213, 1219, 1222, 1225, 1226, 1229, 1230, - 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1242, - 1243, 1249, 1250, 1251, 1252, 1255, 1256, 1257, 1258, 1261, - 1262, 1266, 1269, 1272, 1275, 1278, 1281, 1284, 1285, 1286, - 1287, 1289, 1290, 1292, 1294, 1301, 1305, 1307, 1309, 1311, - 1315, 1316, 1319, 1320, 1323, 1324, 1327, 1328, 1331, 1332, - 1333, 1336, 1344, 1349, 1350, 1354, 1355, 1358, 1363, 1366, - 1367, 1368, 1376, 1377, 1377, 1381, 1382, 1383, 1394, 1401, - 1402, 1405, 1406, 1407, 1408, 1409, 1411, 1412, 1413, 1414, - 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, - 1429, 1430, 1433, 1434, 1435, 1436, 1439, 1440, 1441, 1444, - 1445, 1446, 1449, 1450, 1451, 1452, 1453, 1456, 1457, 1458, - 1461, 1462, 1465, 1466, 1470, 1471, 1474, 1475, 1478, 1479, - 1482, 1483, 1484, 1485, 1488, 1489, 1490, 1491, 1492, 1493, - 1494, 1495, 1496, 1497, 1498, 1499, 1502, 1503, 1506, 1509, - 1511, 1513, 1517, 1518, 1520, 1522, 1525, 1526, 1527, 1529, - 1530, 1531, 1532, 1533, 1534, 1535, 1538, 1539, 1542, 1545, - 1546, 1547, 1548, 1549, 1552, 1553 + 234, 235, 238, 239, 242, 243, 244, 245, 246, 247, + 248, 251, 253, 257, 257, 262, 268, 272, 273, 277, + 278, 280, 282, 298, 302, 309, 313, 319, 320, 322, + 324, 340, 344, 351, 355, 361, 363, 363, 367, 368, + 369, 370, 373, 376, 377, 380, 381, 384, 385, 388, + 389, 392, 393, 396, 397, 400, 403, 404, 407, 408, + 409, 410, 411, 414, 415, 418, 418, 421, 421, 424, + 428, 429, 432, 432, 435, 435, 438, 442, 443, 446, + 447, 450, 456, 463, 469, 476, 477, 478, 479, 480, + 483, 486, 489, 490, 493, 494, 495, 496, 497, 498, + 499, 500, 503, 509, 516, 522, 531, 537, 541, 543, + 547, 550, 557, 565, 566, 569, 570, 573, 574, 575, + 576, 577, 578, 579, 580, 584, 585, 589, 590, 593, + 595, 597, 598, 599, 600, 601, 603, 607, 611, 623, + 624, 625, 626, 627, 628, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 642, 643, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 659, 660, 663, + 667, 668, 671, 672, 673, 674, 677, 678, 682, 683, + 684, 685, 688, 689, 690, 693, 694, 695, 698, 699, + 700, 701, 702, 705, 706, 707, 710, 711, 714, 715, + 719, 720, 723, 724, 729, 735, 736, 742, 748, 749, + 749, 751, 754, 755, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 765, 768, 769, 772, 773, 776, 781, + 782, 783, 786, 799, 803, 804, 807, 812, 813, 813, + 818, 819, 820, 821, 824, 827, 830, 833, 834, 837, + 838, 841, 842, 843, 847, 849, 858, 859, 860, 861, + 862, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, + 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, + 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, + 904, 905, 906, 907, 908, 909, 910, 913, 914, 915, + 916, 919, 920, 921, 922, 923, 924, 925, 926, 927, + 928, 929, 930, 931, 932, 935, 939, 940, 944, 945, + 949, 950, 951, 954, 955, 958, 960, 962, 963, 965, + 967, 968, 970, 972, 974, 976, 977, 979, 981, 982, + 984, 986, 987, 990, 993, 994, 995, 998, 1000, 1004, + 1006, 1010, 1011, 1012, 1016, 1018, 1018, 1020, 1023, 1025, + 1027, 1030, 1035, 1042, 1043, 1044, 1051, 1055, 1056, 1060, + 1061, 1064, 1065, 1068, 1069, 1072, 1073, 1074, 1075, 1078, + 1079, 1082, 1083, 1086, 1087, 1088, 1091, 1091, 1092, 1093, + 1096, 1108, 1124, 1125, 1128, 1129, 1130, 1133, 1134, 1137, + 1139, 1140, 1141, 1142, 1143, 1145, 1147, 1149, 1155, 1156, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1166, 1169, 1172, + 1173, 1177, 1179, 1181, 1183, 1187, 1188, 1190, 1194, 1196, + 1198, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, + 1210, 1211, 1212, 1213, 1216, 1222, 1225, 1228, 1229, 1232, + 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, + 1245, 1246, 1252, 1253, 1254, 1255, 1258, 1259, 1260, 1261, + 1264, 1265, 1269, 1272, 1275, 1278, 1281, 1284, 1287, 1288, + 1289, 1290, 1292, 1293, 1295, 1297, 1304, 1308, 1310, 1312, + 1314, 1318, 1319, 1322, 1323, 1326, 1327, 1330, 1331, 1334, + 1335, 1336, 1339, 1347, 1352, 1353, 1357, 1358, 1361, 1366, + 1369, 1370, 1371, 1379, 1380, 1380, 1384, 1385, 1386, 1397, + 1404, 1405, 1408, 1409, 1410, 1411, 1412, 1414, 1415, 1416, + 1417, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, + 1429, 1432, 1433, 1436, 1437, 1438, 1439, 1442, 1443, 1444, + 1447, 1448, 1449, 1452, 1453, 1454, 1455, 1456, 1459, 1460, + 1461, 1464, 1465, 1468, 1469, 1473, 1474, 1477, 1478, 1481, + 1482, 1485, 1486, 1487, 1488, 1491, 1492, 1493, 1494, 1495, + 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1505, 1506, 1509, + 1512, 1514, 1516, 1520, 1521, 1523, 1525, 1528, 1529, 1530, + 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1541, 1542, 1545, + 1548, 1549, 1550, 1551, 1552, 1555, 1556 }; #endif @@ -697,23 +699,23 @@ static const char * const yytname[] = { "$","error","$undefined.","BADTOK", "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE", "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF", "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE", -"QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","IDENTIFIER","NEW_IDENTIFIER", -"TYPE_NAME_OR_ID","CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file", -"externalDefs","externalDef","constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl", -"namedDeclBase","@2","@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7", -"macroDef","fcnDefHdr","optGlobMods","@8","optPlainGlobMods","@9","optGlobModsRest", -"optPlainGlobModsRest","specialClauses","globIdList","globIdListExpr","globId", -"globQual","optGlobQuals","optGlobModsAux","@10","@11","optPlainGlobModsAux", -"@12","@13","optMods","fcnMods","@14","fcnPlainMods","@15","specialTag","endStateTag", -"endSpecialTag","stateSpecialClause","specialClauseType","specialClause","@16", -"@17","fcnDefHdrAux","fcnBody","@18","@19","fcnDef","locModifies","locPlainModifies", -"modListExpr","mExpr","modList","specClauseListExpr","specClauseList","primaryExpr", -"postfixExpr","argumentExprList","unaryExpr","fieldDesignator","offsetofExpr", -"sizeofExpr","@20","sizeofExprAux","castExpr","timesExpr","plusExpr","shiftExpr", -"relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr","andExpr", -"@21","orExpr","@22","conditionalExpr","@23","@24","assignExpr","expr","optExpr", -"constantExpr","initializer","instanceDecl","@25","@26","namedInitializer","@27", -"typeDecl","@28","IsType","PushType","namedInitializerList","namedInitializerListAux", +"QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED", +"IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID","CCONSTANT","ITER_NAME","ITER_ENDNAME", +"TYPE_NAME","file","externalDefs","externalDef","constantDecl","fcnDecl","@1", +"plainFcn","plainNamedDecl","namedDeclBase","@2","@3","plainNamedDeclBase","@4", +"@5","iterDecl","@6","@7","macroDef","fcnDefHdr","optGlobMods","@8","optPlainGlobMods", +"@9","optGlobModsRest","optPlainGlobModsRest","specialClauses","globIdList", +"globIdListExpr","globId","globQual","optGlobQuals","optGlobModsAux","@10","@11", +"optPlainGlobModsAux","@12","@13","optMods","fcnMods","@14","fcnPlainMods","@15", +"specialTag","endStateTag","endSpecialTag","stateSpecialClause","specialClauseType", +"specialClause","@16","@17","fcnDefHdrAux","fcnBody","@18","@19","fcnDef","locModifies", +"locPlainModifies","modListExpr","mExpr","modList","specClauseListExpr","specClauseList", +"primaryExpr","postfixExpr","argumentExprList","unaryExpr","fieldDesignator", +"offsetofExpr","sizeofExpr","@20","sizeofExprAux","castExpr","timesExpr","plusExpr", +"shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr", +"andExpr","@21","orExpr","@22","conditionalExpr","@23","@24","assignExpr","expr", +"optExpr","constantExpr","initializer","instanceDecl","@25","@26","namedInitializer", +"@27","typeDecl","@28","IsType","PushType","namedInitializerList","namedInitializerListAux", "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier", "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux", "optCompleteType","suSpc","@29","@30","@31","@32","@33","@34","@35","@36","NotType", @@ -738,69 +740,69 @@ static const char * const yytname[] = { "$","error","$undefined.","BADTOK", #endif static const short yyr1[] = { 0, - 182, 182, 183, 183, 184, 184, 184, 184, 184, 184, - 184, 185, 185, 187, 186, 188, 188, 189, 189, 190, - 190, 190, 190, 191, 190, 192, 190, 193, 193, 193, - 193, 194, 193, 195, 193, 197, 198, 196, 199, 199, - 199, 199, 200, 202, 201, 204, 203, 205, 205, 206, - 206, 207, 207, 208, 208, 209, 210, 210, 211, 211, - 211, 211, 211, 212, 212, 214, 213, 215, 213, 213, - 213, 213, 217, 216, 218, 216, 216, 216, 216, 219, - 219, 221, 220, 223, 222, 224, 224, 224, 224, 224, - 225, 226, 227, 227, 228, 228, 228, 228, 228, 228, - 228, 228, 230, 229, 231, 229, 232, 232, 234, 233, - 235, 233, 236, 237, 237, 238, 238, 239, 239, 239, - 239, 239, 239, 239, 239, 240, 240, 241, 241, 242, - 242, 242, 242, 242, 242, 242, 242, 243, 243, 244, - 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 246, 246, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 248, 248, 249, - 251, 250, 252, 252, 252, 252, 253, 253, 254, 254, - 254, 254, 255, 255, 255, 256, 256, 256, 257, 257, - 257, 257, 257, 258, 258, 258, 259, 259, 260, 260, - 261, 261, 262, 263, 262, 264, 265, 264, 266, 267, - 268, 266, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 270, 270, 271, 271, 272, 273, - 273, 273, 274, 275, 274, 276, 274, 277, 278, 277, - 280, 279, 279, 279, 281, 282, 283, 284, 284, 285, - 285, 286, 286, 286, 287, 287, 288, 288, 288, 288, - 288, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 289, 289, 289, 289, 290, 290, 290, 290, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 292, 293, 293, 294, 294, 295, - 295, 295, 296, 296, 298, 299, 297, 300, 301, 297, - 297, 297, 302, 303, 297, 304, 305, 297, 297, 297, - 297, 297, 306, 307, 307, 307, 308, 308, 309, 309, - 310, 310, 310, 311, 312, 311, 311, 313, 313, 313, - 314, 314, 315, 315, 315, 315, 316, 316, 317, 317, - 318, 318, 319, 319, 320, 320, 320, 320, 321, 321, - 322, 322, 323, 323, 323, 325, 324, 326, 324, 327, - 327, 328, 328, 329, 329, 329, 330, 330, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 333, 334, 335, 335, - 336, 336, 336, 336, 338, 339, 337, 341, 340, 340, - 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, - 342, 342, 342, 343, 344, 345, 346, 346, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 348, - 348, 350, 349, 351, 349, 353, 352, 354, 352, 355, - 355, 356, 357, 358, 359, 360, 361, 362, 362, 362, - 362, 362, 362, 362, 362, 363, 364, 364, 364, 364, - 365, 365, 366, 366, 367, 367, 368, 368, 369, 369, - 369, 370, 371, 372, 371, 373, 371, 374, 375, 377, - 378, 376, 379, 380, 379, 381, 381, 381, 381, 382, - 382, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, - 385, 385, 386, 386, 386, 386, 387, 387, 387, 388, - 388, 388, 389, 389, 389, 389, 389, 390, 390, 390, - 391, 391, 392, 392, 393, 393, 394, 394, 395, 395, - 396, 397, 398, 396, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 400, 400, 401, 402, - 402, 402, 403, 403, 403, 403, 404, 404, 404, 404, - 404, 404, 404, 404, 404, 404, 405, 405, 406, 407, - 407, 407, 407, 407, 408, 408 + 183, 183, 184, 184, 185, 185, 185, 185, 185, 185, + 185, 186, 186, 188, 187, 189, 189, 190, 190, 191, + 191, 191, 191, 192, 191, 193, 191, 194, 194, 194, + 194, 195, 194, 196, 194, 198, 199, 197, 200, 200, + 200, 200, 201, 203, 202, 205, 204, 206, 206, 207, + 207, 208, 208, 209, 209, 210, 211, 211, 212, 212, + 212, 212, 212, 213, 213, 215, 214, 216, 214, 214, + 214, 214, 218, 217, 219, 217, 217, 217, 217, 220, + 220, 222, 221, 224, 223, 225, 225, 225, 225, 225, + 226, 227, 228, 228, 229, 229, 229, 229, 229, 229, + 229, 229, 231, 230, 232, 230, 233, 233, 235, 234, + 236, 234, 237, 238, 238, 239, 239, 240, 240, 240, + 240, 240, 240, 240, 240, 241, 241, 242, 242, 243, + 243, 243, 243, 243, 243, 243, 243, 244, 244, 245, + 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 247, 247, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 249, 249, 250, + 252, 251, 253, 253, 253, 253, 254, 254, 255, 255, + 255, 255, 256, 256, 256, 257, 257, 257, 258, 258, + 258, 258, 258, 259, 259, 259, 260, 260, 261, 261, + 262, 262, 263, 264, 263, 265, 266, 265, 267, 268, + 269, 267, 270, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, 270, 271, 271, 272, 272, 273, 274, + 274, 274, 275, 276, 275, 277, 275, 278, 279, 278, + 281, 280, 280, 280, 282, 283, 284, 285, 285, 286, + 286, 287, 287, 287, 288, 288, 289, 289, 289, 289, + 289, 290, 290, 290, 290, 290, 290, 290, 290, 290, + 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, + 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, + 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, + 290, 290, 290, 290, 290, 290, 290, 291, 291, 291, + 291, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 293, 294, 294, 295, 295, + 296, 296, 296, 297, 297, 299, 300, 298, 301, 302, + 298, 298, 298, 303, 304, 298, 305, 306, 298, 298, + 298, 298, 298, 307, 308, 308, 308, 309, 309, 310, + 310, 311, 311, 311, 312, 313, 312, 312, 314, 314, + 314, 315, 315, 316, 316, 316, 316, 317, 317, 318, + 318, 319, 319, 320, 320, 321, 321, 321, 321, 322, + 322, 323, 323, 324, 324, 324, 326, 325, 327, 325, + 328, 328, 329, 329, 330, 330, 330, 331, 331, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 333, 333, + 333, 333, 333, 333, 333, 333, 333, 334, 335, 336, + 336, 337, 337, 337, 337, 339, 340, 338, 342, 341, + 341, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 344, 345, 346, 347, 347, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 349, 349, 351, 350, 352, 350, 354, 353, 355, 353, + 356, 356, 357, 358, 359, 360, 361, 362, 363, 363, + 363, 363, 363, 363, 363, 363, 364, 365, 365, 365, + 365, 366, 366, 367, 367, 368, 368, 369, 369, 370, + 370, 370, 371, 372, 373, 372, 374, 372, 375, 376, + 378, 379, 377, 380, 381, 380, 382, 382, 382, 382, + 383, 383, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 385, 385, 385, 385, 385, 385, 385, 385, 385, + 385, 386, 386, 387, 387, 387, 387, 388, 388, 388, + 389, 389, 389, 390, 390, 390, 390, 390, 391, 391, + 391, 392, 392, 393, 393, 394, 394, 395, 395, 396, + 396, 397, 398, 399, 397, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 401, 401, 402, + 403, 403, 403, 404, 404, 404, 404, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 406, 406, 407, + 408, 408, 408, 408, 408, 409, 409 }; static const short yyr2[] = { 0, @@ -834,1240 +836,1265 @@ static const short yyr2[] = { 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, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 1, 4, 1, 3, 2, - 2, 2, 0, 1, 0, 0, 11, 0, 0, 11, - 6, 6, 0, 0, 10, 0, 0, 10, 5, 5, - 4, 4, 0, 1, 1, 2, 5, 3, 2, 4, - 1, 3, 4, 6, 0, 8, 4, 1, 3, 2, - 1, 4, 1, 1, 2, 2, 1, 2, 1, 2, - 1, 1, 1, 2, 1, 2, 2, 3, 1, 3, - 1, 3, 1, 1, 3, 0, 2, 0, 4, 4, - 1, 1, 2, 1, 1, 2, 0, 1, 5, 2, - 3, 3, 4, 3, 4, 4, 5, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 7, 6, 2, 0, 0, 10, 0, 6, 1, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 2, 2, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 1, 2, - 2, 0, 4, 0, 5, 0, 3, 0, 4, 3, - 2, 3, 0, 0, 0, 0, 0, 1, 2, 2, - 3, 2, 3, 3, 4, 2, 2, 3, 3, 4, - 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, - 1, 4, 2, 0, 5, 0, 6, 4, 4, 0, - 0, 10, 1, 0, 4, 1, 1, 1, 1, 1, - 3, 1, 4, 3, 4, 6, 5, 5, 2, 2, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 4, 1, 3, 3, 3, 1, 3, 3, 1, - 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 0, 0, 7, 1, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 1, 0, 1, 2, - 7, 2, 2, 7, 6, 2, 3, 2, 3, 2, - 3, 3, 3, 3, 2, 3, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 1, 4, 1, 3, + 2, 2, 2, 0, 1, 0, 0, 11, 0, 0, + 11, 6, 6, 0, 0, 10, 0, 0, 10, 5, + 5, 4, 4, 0, 1, 1, 2, 5, 3, 2, + 4, 1, 3, 4, 6, 0, 8, 4, 1, 3, + 2, 1, 4, 1, 1, 2, 2, 1, 2, 1, + 2, 1, 1, 1, 2, 1, 2, 2, 3, 1, + 3, 1, 3, 1, 1, 3, 0, 2, 0, 4, + 4, 1, 1, 2, 1, 1, 2, 0, 1, 5, + 2, 3, 3, 4, 3, 4, 4, 5, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 7, 6, 2, 0, 0, 10, 0, 6, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, + 2, 2, 0, 4, 0, 5, 0, 3, 0, 4, + 3, 2, 3, 0, 0, 0, 0, 0, 1, 2, + 2, 3, 2, 3, 3, 4, 2, 2, 3, 3, + 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, + 2, 1, 4, 2, 0, 5, 0, 6, 4, 4, + 0, 0, 10, 1, 0, 4, 1, 1, 1, 1, + 1, 3, 1, 4, 3, 4, 6, 5, 5, 2, + 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 4, 1, 3, 3, 3, 1, 3, 3, + 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 0, 0, 7, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 1, 0, 1, + 2, 7, 2, 2, 7, 6, 2, 3, 2, 3, + 2, 3, 3, 3, 3, 2, 3, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1 }; static const short yydefact[] = { 0, - 11, 385, 353, 231, 353, 14, 0, 0, 0, 0, + 11, 386, 354, 231, 354, 14, 0, 0, 0, 0, 245, 245, 258, 257, 259, 260, 261, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 308, 309, 310, 307, 245, 245, 245, + 245, 245, 245, 309, 310, 311, 308, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 354, 354, 354, 354, 354, 354, + 354, 354, 354, 354, 245, 620, 621, 625, 622, 623, + 626, 0, 3, 6, 7, 378, 8, 9, 354, 43, + 618, 10, 230, 232, 0, 334, 334, 354, 334, 354, + 327, 354, 0, 354, 107, 245, 624, 20, 354, 382, + 383, 384, 387, 388, 248, 245, 245, 241, 354, 627, + 354, 354, 625, 0, 470, 245, 477, 0, 0, 0, + 600, 0, 0, 0, 0, 245, 510, 0, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 0, 42, 0, + 0, 0, 0, 0, 0, 245, 145, 141, 144, 142, + 521, 146, 157, 177, 167, 166, 179, 183, 186, 189, + 194, 197, 199, 201, 203, 206, 209, 213, 225, 512, + 171, 0, 0, 502, 460, 461, 462, 463, 0, 0, + 464, 245, 465, 0, 466, 0, 467, 469, 140, 0, + 454, 0, 508, 0, 484, 441, 0, 0, 0, 450, + 0, 451, 430, 449, 446, 447, 442, 443, 444, 0, + 0, 448, 0, 0, 0, 452, 429, 0, 262, 263, + 264, 265, 270, 272, 271, 275, 276, 287, 289, 290, + 288, 273, 274, 266, 267, 268, 269, 284, 285, 282, + 286, 277, 278, 281, 279, 280, 293, 295, 300, 283, + 296, 297, 298, 299, 291, 292, 294, 301, 302, 305, + 306, 303, 304, 312, 314, 313, 315, 316, 317, 318, + 319, 320, 321, 307, 4, 245, 0, 109, 113, 504, + 354, 354, 619, 5, 354, 335, 331, 332, 325, 333, + 0, 245, 245, 323, 245, 245, 0, 324, 379, 322, + 385, 389, 354, 0, 247, 354, 0, 238, 245, 618, + 16, 18, 0, 354, 245, 28, 397, 245, 141, 144, + 177, 229, 473, 140, 0, 245, 245, 245, 245, 0, + 609, 611, 616, 0, 0, 354, 403, 0, 0, 160, + 165, 164, 163, 162, 161, 0, 245, 158, 159, 245, + 0, 0, 0, 0, 0, 245, 479, 245, 472, 245, + 419, 420, 421, 422, 0, 423, 424, 245, 426, 245, + 425, 427, 484, 245, 245, 153, 154, 0, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 353, 353, 353, 353, 353, 353, - 353, 353, 353, 353, 619, 620, 624, 621, 622, 625, - 0, 3, 6, 7, 377, 8, 9, 353, 43, 617, - 10, 230, 232, 0, 333, 333, 353, 333, 353, 326, - 353, 0, 353, 107, 245, 623, 20, 353, 381, 382, - 383, 386, 387, 248, 245, 245, 241, 353, 626, 353, - 353, 624, 0, 469, 245, 476, 0, 0, 0, 599, - 0, 0, 0, 0, 245, 509, 0, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 0, 42, 0, 0, - 0, 0, 0, 0, 245, 145, 141, 144, 142, 520, - 146, 157, 177, 167, 166, 179, 183, 186, 189, 194, - 197, 199, 201, 203, 206, 209, 213, 225, 511, 171, - 0, 0, 501, 459, 460, 461, 462, 0, 0, 463, - 245, 464, 0, 465, 0, 466, 468, 140, 0, 453, - 0, 507, 0, 483, 440, 0, 0, 0, 449, 0, - 450, 429, 448, 445, 446, 441, 442, 443, 0, 0, - 447, 0, 0, 0, 451, 428, 0, 262, 263, 264, - 265, 270, 272, 271, 275, 276, 287, 289, 290, 288, - 273, 274, 266, 267, 268, 269, 284, 285, 282, 286, - 277, 278, 281, 279, 280, 293, 295, 300, 283, 296, - 297, 298, 299, 291, 292, 294, 301, 302, 305, 306, - 303, 304, 311, 313, 312, 314, 315, 316, 317, 318, - 319, 320, 4, 245, 0, 109, 113, 503, 353, 353, - 618, 5, 353, 334, 330, 331, 324, 332, 0, 245, - 245, 322, 245, 245, 0, 323, 378, 321, 384, 388, - 353, 0, 247, 353, 0, 238, 245, 617, 16, 18, - 0, 353, 245, 28, 396, 245, 141, 144, 177, 229, - 472, 140, 0, 245, 245, 245, 245, 0, 608, 610, - 615, 0, 0, 353, 402, 0, 0, 160, 165, 164, - 163, 162, 161, 0, 245, 158, 159, 245, 0, 0, - 0, 0, 0, 245, 478, 245, 471, 245, 418, 419, - 420, 421, 0, 422, 423, 245, 425, 245, 424, 426, - 483, 245, 245, 153, 154, 0, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 204, 210, 207, 511, 245, + 0, 607, 39, 0, 485, 503, 514, 604, 0, 471, + 245, 0, 0, 0, 509, 40, 431, 435, 445, 456, + 457, 455, 0, 0, 41, 22, 245, 397, 354, 245, + 484, 505, 245, 233, 108, 354, 0, 329, 0, 354, + 0, 354, 0, 245, 245, 244, 245, 243, 239, 354, + 0, 245, 0, 354, 245, 19, 394, 0, 0, 380, + 395, 245, 0, 0, 478, 0, 517, 0, 228, 0, + 608, 617, 143, 245, 245, 0, 405, 404, 406, 245, + 468, 245, 0, 612, 613, 614, 615, 610, 475, 0, + 0, 603, 354, 482, 601, 0, 0, 148, 0, 155, + 0, 0, 0, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 180, 181, 182, 185, 184, 187, + 188, 190, 191, 192, 193, 195, 196, 198, 200, 202, + 245, 245, 245, 226, 245, 245, 172, 498, 144, 502, + 0, 354, 483, 515, 0, 0, 453, 439, 0, 0, + 24, 0, 489, 245, 506, 110, 354, 245, 354, 484, + 112, 245, 234, 328, 245, 344, 0, 352, 347, 0, + 353, 0, 369, 372, 366, 368, 249, 245, 245, 618, + 15, 30, 245, 397, 245, 17, 381, 390, 392, 36, + 399, 354, 398, 402, 474, 513, 0, 519, 245, 326, + 411, 0, 397, 407, 245, 0, 178, 354, 245, 0, + 480, 481, 497, 0, 522, 245, 149, 147, 245, 245, + 205, 0, 208, 245, 174, 245, 176, 499, 500, 245, + 245, 245, 520, 245, 245, 354, 44, 26, 490, 493, + 245, 245, 491, 245, 507, 0, 236, 245, 330, 350, + 486, 336, 351, 486, 339, 245, 371, 245, 0, 0, + 245, 245, 245, 0, 32, 0, 245, 0, 46, 396, + 245, 408, 245, 0, 412, 415, 245, 0, 413, 0, + 397, 0, 0, 476, 245, 245, 156, 151, 152, 211, + 0, 0, 501, 516, 0, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 0, 141, 144, 142, 157, 177, + 166, 183, 186, 189, 194, 197, 199, 201, 203, 206, + 0, 525, 524, 533, 542, 552, 554, 558, 561, 564, + 569, 572, 574, 576, 578, 580, 582, 586, 527, 140, + 0, 23, 25, 72, 44, 494, 495, 245, 492, 21, + 245, 250, 354, 342, 486, 354, 343, 486, 365, 370, + 245, 0, 242, 245, 252, 240, 245, 0, 354, 46, + 34, 0, 391, 393, 37, 79, 400, 374, 0, 245, + 408, 375, 409, 518, 436, 0, 416, 414, 417, 0, + 0, 150, 0, 525, 245, 173, 175, 606, 0, 0, + 160, 165, 164, 163, 162, 161, 158, 159, 245, 245, + 245, 153, 154, 0, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 204, 210, 207, 510, 245, 0, 606, - 39, 0, 484, 502, 513, 603, 0, 470, 245, 0, - 0, 0, 508, 40, 430, 434, 444, 455, 456, 454, - 0, 0, 41, 22, 245, 396, 353, 245, 483, 504, - 245, 233, 108, 353, 0, 328, 0, 353, 0, 353, - 0, 245, 245, 244, 245, 243, 239, 353, 0, 245, - 0, 353, 245, 19, 393, 0, 0, 379, 394, 245, - 0, 0, 477, 0, 516, 0, 228, 0, 607, 616, - 143, 245, 245, 0, 404, 403, 405, 245, 467, 245, - 0, 611, 612, 613, 614, 609, 474, 0, 0, 602, - 353, 481, 600, 0, 0, 148, 0, 155, 0, 0, - 0, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 180, 181, 182, 185, 184, 187, 188, 190, - 191, 192, 193, 195, 196, 198, 200, 202, 245, 245, - 245, 226, 245, 245, 172, 497, 144, 501, 0, 353, - 482, 514, 0, 0, 452, 438, 0, 0, 24, 0, - 488, 245, 505, 110, 353, 245, 353, 483, 112, 245, - 234, 327, 245, 343, 0, 351, 346, 0, 352, 0, - 368, 371, 365, 367, 249, 245, 245, 617, 15, 30, - 245, 396, 245, 17, 380, 389, 391, 36, 398, 353, - 397, 401, 473, 512, 0, 518, 245, 325, 410, 0, - 396, 406, 245, 0, 178, 353, 245, 0, 479, 480, - 496, 0, 521, 245, 149, 147, 245, 245, 205, 0, - 208, 245, 174, 245, 176, 498, 499, 245, 245, 245, - 519, 245, 245, 353, 44, 26, 489, 492, 245, 245, - 490, 245, 506, 0, 236, 245, 329, 349, 485, 335, - 350, 485, 338, 245, 370, 245, 0, 0, 245, 245, - 245, 0, 32, 0, 245, 0, 46, 395, 245, 407, - 245, 0, 411, 414, 245, 0, 412, 0, 396, 0, - 0, 475, 245, 245, 156, 151, 152, 211, 0, 0, - 500, 515, 0, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 0, 141, 144, 142, 157, 177, 166, 183, - 186, 189, 194, 197, 199, 201, 203, 206, 0, 524, - 523, 532, 541, 551, 553, 557, 560, 563, 568, 571, - 573, 575, 577, 579, 581, 585, 526, 140, 0, 23, - 25, 72, 44, 493, 494, 245, 491, 21, 245, 250, - 353, 341, 485, 353, 342, 485, 364, 369, 245, 0, - 242, 245, 252, 240, 245, 0, 353, 46, 34, 0, - 390, 392, 37, 79, 399, 373, 0, 245, 407, 374, - 408, 517, 435, 0, 415, 413, 416, 0, 0, 150, - 0, 524, 245, 173, 175, 605, 0, 0, 160, 165, - 164, 163, 162, 161, 158, 159, 245, 245, 245, 153, - 154, 0, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 204, - 582, 207, 439, 0, 433, 66, 82, 70, 86, 87, - 88, 89, 90, 93, 94, 45, 72, 48, 71, 353, - 353, 52, 27, 495, 245, 0, 355, 353, 353, 354, - 353, 353, 353, 372, 245, 255, 0, 250, 12, 31, - 33, 46, 29, 617, 73, 84, 77, 47, 79, 50, - 78, 396, 400, 375, 376, 245, 409, 417, 0, 169, - 0, 483, 212, 604, 143, 245, 0, 148, 0, 0, - 0, 0, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 180, 181, 182, 185, 184, 187, 188, - 190, 191, 192, 193, 195, 196, 198, 200, 202, 578, - 245, 580, 245, 432, 353, 64, 617, 49, 103, 0, - 53, 250, 245, 353, 0, 245, 356, 344, 353, 347, - 353, 366, 253, 245, 617, 35, 0, 353, 64, 617, - 51, 245, 436, 245, 0, 601, 598, 178, 245, 149, - 147, 245, 245, 0, 525, 353, 59, 60, 61, 62, - 63, 617, 54, 64, 0, 0, 0, 119, 83, 128, - 617, 0, 118, 0, 95, 100, 99, 98, 97, 96, - 101, 102, 105, 0, 235, 245, 358, 245, 245, 353, - 361, 0, 336, 0, 339, 254, 256, 0, 38, 617, - 617, 85, 617, 117, 245, 0, 170, 168, 597, 484, - 0, 151, 152, 583, 0, 64, 0, 65, 58, 56, - 57, 0, 122, 0, 0, 0, 0, 0, 115, 0, - 0, 131, 138, 617, 130, 0, 245, 251, 245, 245, - 0, 359, 245, 345, 0, 348, 0, 13, 81, 81, - 116, 437, 522, 150, 245, 81, 55, 81, 123, 120, - 127, 126, 0, 124, 125, 129, 114, 0, 134, 0, - 0, 0, 0, 0, 617, 237, 362, 353, 357, 245, - 337, 340, 74, 80, 76, 584, 67, 69, 121, 135, - 132, 0, 136, 137, 139, 92, 245, 0, 360, 363, - 133, 104, 91, 245, 106, 0, 0, 0 + 245, 204, 583, 207, 440, 0, 434, 66, 82, 70, + 86, 87, 88, 89, 90, 93, 94, 45, 72, 48, + 71, 354, 354, 52, 27, 496, 245, 0, 356, 354, + 354, 355, 354, 354, 354, 373, 245, 255, 0, 250, + 12, 31, 33, 46, 29, 618, 73, 84, 77, 47, + 79, 50, 78, 397, 401, 376, 377, 245, 410, 418, + 0, 169, 0, 484, 212, 605, 143, 245, 0, 148, + 0, 0, 0, 0, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 180, 181, 182, 185, 184, + 187, 188, 190, 191, 192, 193, 195, 196, 198, 200, + 202, 579, 245, 581, 245, 433, 354, 64, 618, 49, + 103, 0, 53, 250, 245, 354, 0, 245, 357, 345, + 354, 348, 354, 367, 253, 245, 618, 35, 0, 354, + 64, 618, 51, 245, 437, 245, 0, 602, 599, 178, + 245, 149, 147, 245, 245, 0, 526, 354, 59, 60, + 61, 62, 63, 618, 54, 64, 0, 0, 0, 119, + 83, 128, 618, 0, 118, 0, 95, 100, 99, 98, + 97, 96, 101, 102, 105, 0, 235, 245, 359, 245, + 245, 354, 362, 0, 337, 0, 340, 254, 256, 0, + 38, 618, 618, 85, 618, 117, 245, 0, 170, 168, + 598, 485, 0, 151, 152, 584, 0, 64, 0, 65, + 58, 56, 57, 0, 122, 0, 0, 0, 0, 0, + 115, 0, 0, 131, 138, 618, 130, 0, 245, 251, + 245, 245, 0, 360, 245, 346, 0, 349, 0, 13, + 81, 81, 116, 438, 523, 150, 245, 81, 55, 81, + 123, 120, 127, 126, 0, 124, 125, 129, 114, 0, + 134, 0, 0, 0, 0, 0, 618, 237, 363, 354, + 358, 245, 338, 341, 74, 80, 76, 585, 67, 69, + 121, 135, 132, 0, 136, 137, 139, 92, 245, 0, + 361, 364, 133, 104, 91, 245, 106, 0, 0, 0 }; -static const short yydefgoto[] = { 1156, - 81, 82, 83, 84, 121, 318, 319, 85, 655, 763, - 320, 788, 902, 86, 687, 904, 887, 88, 761, 762, - 793, 794, 876, 908, 877, 1012, 1013, 1070, 1014, 1015, - 878, 965, 966, 910, 988, 989, 1133, 1134, 967, 911, - 990, 880, 1154, 1147, 881, 1033, 882, 1024, 1086, 89, - 287, 447, 449, 90, 1019, 1052, 1020, 1113, 1021, 1083, - 1084, 161, 162, 517, 163, 919, 164, 165, 419, 555, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 549, 176, 551, 177, 550, 813, 178, 206, 488, 331, - 288, 92, 666, 769, 114, 597, 93, 314, 180, 285, - 115, 116, 886, 784, 897, 95, 96, 97, 98, 345, - 289, 455, 100, 295, 101, 773, 1095, 776, 1097, 669, - 1042, 672, 1044, 102, 889, 890, 1039, 1040, 103, 677, - 590, 591, 798, 118, 477, 111, 112, 105, 605, 606, - 478, 479, 480, 689, 611, 346, 804, 800, 497, 367, - 207, 227, 208, 209, 368, 916, 1056, 211, 652, 212, - 213, 214, 215, 182, 424, 369, 370, 482, 628, 371, - 333, 508, 372, 187, 373, 561, 771, 978, 220, 574, - 512, 423, 189, 575, 576, 374, 190, 191, 375, 649, - 615, 376, 223, 377, 381, 704, 740, 864, 741, 742, - 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, - 753, 754, 755, 756, 961, 1105, 757, 1060, 378, 379, - 196, 380, 292, 332, 199, 108 +static const short yydefgoto[] = { 1158, + 82, 83, 84, 85, 122, 320, 321, 86, 657, 765, + 322, 790, 904, 87, 689, 906, 889, 89, 763, 764, + 795, 796, 878, 910, 879, 1014, 1015, 1072, 1016, 1017, + 880, 967, 968, 912, 990, 991, 1135, 1136, 969, 913, + 992, 882, 1156, 1149, 883, 1035, 884, 1026, 1088, 90, + 289, 449, 451, 91, 1021, 1054, 1022, 1115, 1023, 1085, + 1086, 162, 163, 519, 164, 921, 165, 166, 421, 557, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 551, 177, 553, 178, 552, 815, 179, 207, 490, 333, + 290, 93, 668, 771, 115, 599, 94, 316, 181, 287, + 116, 117, 888, 786, 899, 96, 97, 98, 99, 347, + 291, 457, 101, 297, 102, 775, 1097, 778, 1099, 671, + 1044, 674, 1046, 103, 891, 892, 1041, 1042, 104, 679, + 592, 593, 800, 119, 479, 112, 113, 106, 607, 608, + 480, 481, 482, 691, 613, 348, 806, 802, 499, 369, + 208, 228, 209, 210, 370, 918, 1058, 212, 654, 213, + 214, 215, 216, 183, 426, 371, 372, 484, 630, 373, + 335, 510, 374, 188, 375, 563, 773, 980, 221, 576, + 514, 425, 190, 577, 578, 376, 191, 192, 377, 651, + 617, 378, 224, 379, 383, 706, 742, 866, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, + 755, 756, 757, 758, 963, 1107, 759, 1062, 380, 381, + 197, 382, 294, 334, 200, 109 }; -static const short yypact[] = { 2004, --32768, 118, 5457,-32768, 6254,-32768, 781, 2949, 3313, 3313, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +static const short yypact[] = { 1939, +-32768, 336, 5570,-32768, 6381,-32768, 592, 2889, 3255, 3255, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 460,-32768,-32768,-32768, - 2186,-32768,-32768,-32768, 350,-32768,-32768, 5201,-32768, 123, --32768,-32768,-32768, 145, 6095, 6095,-32768, 6095, 176, 51, --32768, 557,-32768,-32768, 781,-32768,-32768,-32768,-32768,-32768, --32768, 118,-32768,-32768, 183,-32768, 176,-32768,-32768,-32768, - 5457,-32768, 208,-32768, 5072,-32768, 264, 271, 330,-32768, - 345, 781, 257, 366, 1104,-32768, 2544, 5072, 5072, 5072, - 5072, 5072, 5072,-32768, 5611, 5611, 382,-32768, 400, 429, - 436, 441, 451, 326, 4659,-32768, 483, 496,-32768, 501, --32768, 502, 884,-32768,-32768,-32768, 747, 601, 724, 650, - 807, 498, 459, 492, 485, 121,-32768,-32768, 313,-32768, - 3452, 477, 482,-32768,-32768,-32768,-32768, 533, 3088,-32768, - 4659,-32768, 3452,-32768, 3452,-32768,-32768, 569, 584,-32768, - 577,-32768, 2725, 501, 596, 338, 576, 3131,-32768, 3313, --32768,-32768,-32768, 5854,-32768,-32768,-32768,-32768, 656, 657, --32768, 3313, 3313, 3452,-32768,-32768, 592,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 420,-32768,-32768, +-32768, 2122,-32768,-32768,-32768, 148,-32768,-32768, 5154,-32768, + 109,-32768,-32768,-32768, 170, 6220, 6220,-32768, 6220, 213, + 158,-32768, 730,-32768,-32768, 592,-32768,-32768,-32768,-32768, +-32768,-32768, 336,-32768,-32768, 234,-32768, 213,-32768,-32768, +-32768, 5570,-32768, 252,-32768, 5581,-32768, 270, 289, 309, +-32768, 319, 592, 355, 391, 1018,-32768, 2482, 5581, 5581, + 5581, 5581, 5581, 5581,-32768, 5732, 5732, 392,-32768, 408, + 441, 450, 469, 453, 277, 4608,-32768, 468, 499,-32768, + 504,-32768, 758, 871,-32768,-32768,-32768, 1010, 555, 665, + 329, 738, 507, 512, 498, 501, 143,-32768,-32768, 133, +-32768, 3395, 474, 479,-32768,-32768,-32768,-32768, 560, 3029, +-32768, 4608,-32768, 3395,-32768, 3395,-32768,-32768, 573, 582, +-32768, 612,-32768, 2664, 504, 590, 477, 550, 3072,-32768, + 3255,-32768,-32768,-32768, 5977,-32768,-32768,-32768,-32768, 633, + 647,-32768, 3255, 3255, 3395,-32768,-32768, 580,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 664, 673,-32768,-32768,-32768, 176, 5045, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 690, 559, --32768,-32768, 781, 781, 76,-32768, 350,-32768,-32768,-32768, --32768, 695,-32768,-32768, 697, 680, 559, 123,-32768, 373, - 693,-32768, 781,-32768, 91, 5072,-32768,-32768,-32768,-32768, --32768,-32768, 711, 5072, 5072, 5072, 1907, 735,-32768,-32768, --32768, 469, 443, 5724, 186, 718, 741,-32768,-32768,-32768, --32768,-32768,-32768, 737, 5072,-32768,-32768, 5072, 768, 770, - 777, 784, 802, 5072,-32768, 1933,-32768, 4659,-32768,-32768, --32768,-32768, 812,-32768,-32768, 4659,-32768, 4659,-32768,-32768, --32768, 3481, 5072,-32768,-32768, 106, 5072, 5072, 5072, 5072, - 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5072, 5072, 5072,-32768,-32768,-32768,-32768, 5072, 842,-32768, --32768, 2363,-32768,-32768, 828,-32768, 840,-32768, 5072, 629, - 814, 830,-32768,-32768,-32768,-32768, 5854,-32768,-32768,-32768, - 2906, 847,-32768,-32768, 5072, 97, 3554, 559, 851,-32768, - 559,-32768, 284, 6254, 778, 856, 868, 878, 886, 878, - 781, 900, 559,-32768, 559,-32768,-32768,-32768, 806, 905, - 929,-32768, 559, 373,-32768, 781, 912,-32768, 919, 781, - 98, 940,-32768, 446, 946, 512, 946, 951,-32768,-32768, --32768,-32768, 1472, 948, 404,-32768, 450, 5072,-32768,-32768, - 954,-32768,-32768,-32768,-32768,-32768,-32768, 955, 957,-32768, - 3554,-32768,-32768, 975, 969,-32768, 537,-32768, 371, 781, - 781,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 747, 747, 601, 601, 724, - 724, 724, 724, 650, 650, 807, 498, 459, 5072, 5072, - 5072,-32768, 5622, 5642,-32768,-32768, 5387,-32768, 3270, 3730, --32768,-32768, 974, 561,-32768,-32768, 977, 984,-32768, 989, --32768, 4082,-32768,-32768, 3906, 4125,-32768, 851,-32768,-32768, - 965,-32768,-32768, 1006, 1022,-32768, 1011, 1028,-32768, 882, --32768, 1000,-32768,-32768,-32768, 183,-32768, 137,-32768,-32768, - 5072, 171, 559,-32768,-32768, 1044,-32768,-32768, 1070, 6254, --32768,-32768,-32768,-32768, 1052,-32768, 1907,-32768,-32768, 1061, - 723, 450, 4217, 1056,-32768,-32768,-32768, 1067,-32768,-32768, --32768, 1071,-32768, 5072,-32768,-32768,-32768,-32768, 492, 888, - 485, 5072,-32768, 5072,-32768,-32768,-32768, 4260, 4659, 5072, --32768, 5653, 5072,-32768,-32768,-32768,-32768,-32768, 4303, 4438, --32768, 4481,-32768, 1069,-32768,-32768,-32768,-32768,-32768, 1076, --32768,-32768, 1077,-32768, 781,-32768, 781, 1087, 3366,-32768, --32768, 1081,-32768, 1084,-32768, 103,-32768,-32768, 781, 736, - 4659, 1092,-32768,-32768, 309, 1086,-32768, 1085, 126, 1093, - 1088,-32768, 5072, 5653,-32768,-32768,-32768,-32768, 1094, 1095, --32768,-32768, 563, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5611, 5611, 1097, 587, 631, 634, 761, 1125, 642, 783, - 963, 1003, 726, 1015, 1089, 1078, 1083, 1074, 201, 1099, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 684, 685,-32768, --32768, 1157,-32768,-32768,-32768, 4616,-32768,-32768,-32768,-32768, - 6184,-32768,-32768, 6184,-32768,-32768,-32768,-32768, 5072, 1051, --32768, 3366,-32768,-32768, 3366, 1037,-32768,-32768,-32768, 1105, --32768,-32768,-32768, 1306,-32768, 350, 1107,-32768, 692,-32768, - 450,-32768,-32768, 1114,-32768,-32768,-32768, 1115, 781,-32768, - 704, 1124, 5072,-32768,-32768, 1135, 719, 1130, 720, 725, - 779, 817, 819, 825, 831, 857, 5072, 4395, 5072, 875, - 913, 139, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, - 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, --32768, 5072,-32768, 1111, 1138, 72,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 987,-32768,-32768,-32768, --32768, 845,-32768,-32768, 3366, 478,-32768, 176, 5271,-32768, - 6184, 5271, 6184,-32768,-32768,-32768, 1053,-32768,-32768,-32768, --32768,-32768,-32768, 123, 138,-32768,-32768,-32768, 990,-32768, --32768, 636,-32768,-32768,-32768, 4916,-32768,-32768, 514,-32768, - 1139, 851,-32768,-32768, 938, 5072, 1140, 964, 966, 390, - 781, 781,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 985, 988, 991, 543, 983, 212, 456, - 354, 360, 393, 522, 398, 811, 132, 408, 260, 492, - 5072, 485, 5653,-32768, 5984, 62, 122,-32768,-32768, 833, --32768,-32768,-32768,-32768, 1141, 327,-32768,-32768, 5271,-32768, - 5271,-32768,-32768, 3227, 571,-32768, 1072, 5984, 62, 122, --32768, 617,-32768,-32768, 781,-32768, 992, 999,-32768, 1004, - 1007,-32768,-32768, 1062,-32768, 4889,-32768,-32768,-32768,-32768, --32768, 628,-32768, 62, 916, 60, 60,-32768,-32768, 266, - 665, 1079,-32768, 140,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 709,-32768, 559,-32768,-32768, 1143,-32768, - 1146, 1149,-32768, 1150,-32768,-32768,-32768, 1090,-32768, 4732, - 628,-32768, 665,-32768, 579, 1148,-32768,-32768,-32768,-32768, - 1151, 1012, 1023,-32768, 1091, 62, 1108,-32768,-32768,-32768, --32768, 117, 266, 381, 781, 781, 60, 1109,-32768, 140, - 140,-32768, 336, 750,-32768, 140,-32768,-32768, 5072, 327, - 1153,-32768,-32768,-32768, 1155,-32768, 1161,-32768, 1119, 1119, --32768,-32768,-32768, 1025, 5072, 1119,-32768, 1119,-32768,-32768, --32768, 266, 1166,-32768,-32768, 266,-32768, 457, 336, 445, - 781, 781, 140, 1112, 750,-32768,-32768,-32768,-32768, 5072, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 1168,-32768,-32768, 336,-32768,-32768, 1113,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 1177, 1199,-32768 +-32768,-32768,-32768,-32768,-32768, 652, 650,-32768,-32768,-32768, + 213, 4997,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 676, 68,-32768,-32768, 592, 592, 293,-32768, 148,-32768, +-32768,-32768,-32768, 683,-32768,-32768, 689, 663, 68, 109, +-32768, 364, 703,-32768, 592,-32768, -1, 5581,-32768,-32768, +-32768,-32768,-32768,-32768, 719, 5581, 5581, 5581, 1481, 729, +-32768,-32768,-32768, 485, 681, 5846, 305, 739, 751,-32768, +-32768,-32768,-32768,-32768,-32768, 759, 5581,-32768,-32768, 5581, + 786, 820, 822, 827, 842, 5581,-32768, 4867,-32768, 4608, +-32768,-32768,-32768,-32768, 843,-32768,-32768, 4608,-32768, 4608, +-32768,-32768,-32768, 1509, 5581,-32768,-32768, 98, 5581, 5581, + 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, + 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, + 5581, 5581, 5581, 5581, 5581,-32768,-32768,-32768,-32768, 5581, + 768,-32768,-32768, 2300,-32768,-32768, 858,-32768, 881,-32768, + 5581, 705, 844, 878,-32768,-32768,-32768,-32768, 5977,-32768, +-32768,-32768, 2846, 899,-32768,-32768, 5581, 181, 3497, 68, + 893,-32768, 68,-32768, 342, 6381, 864, 961, 968, 981, + 1044, 981, 592, 1048, 68,-32768, 68,-32768,-32768,-32768, + 924, 1002, 1013,-32768, 68, 364,-32768, 592, 1031,-32768, + 1022, 592, 244, 1052,-32768, 427, 1059, 458, 1059, 1086, +-32768,-32768,-32768,-32768, 1685, 1060, 411,-32768, 425, 5581, +-32768,-32768, 1078,-32768,-32768,-32768,-32768,-32768,-32768, 1087, + 1083,-32768, 3497,-32768,-32768, 1099, 1088,-32768, 516,-32768, + 123, 592, 592,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1010, 1010, 555, + 555, 665, 665, 665, 665, 329, 329, 738, 507, 512, + 5581, 5581, 5581,-32768, 5743, 5763,-32768,-32768, 5341,-32768, + 3212, 3674,-32768,-32768, 1106, 588,-32768,-32768, 1107, 1105, +-32768, 1108,-32768, 4028,-32768,-32768, 3851, 4071,-32768, 893, +-32768,-32768, 1111,-32768,-32768, 1115, 1117,-32768, 1118, 1121, +-32768, 800,-32768, 1114,-32768,-32768,-32768, 234,-32768, 303, +-32768,-32768, 5581, 377, 68,-32768,-32768, 1122,-32768,-32768, + 1137, 6381,-32768,-32768,-32768,-32768, 1125,-32768, 1481,-32768, +-32768, 1119, 685, 425, 1768, 1130,-32768,-32768,-32768, 1140, +-32768,-32768,-32768, 1135,-32768, 5581,-32768,-32768,-32768,-32768, + 498, 806, 501, 5581,-32768, 5581,-32768,-32768,-32768, 4207, + 4608, 5581,-32768, 5774, 5581,-32768,-32768,-32768,-32768,-32768, + 4250, 4386,-32768, 4429,-32768, 1139,-32768,-32768,-32768,-32768, +-32768, 1145,-32768,-32768, 1147,-32768, 592,-32768, 592, 1150, + 5498,-32768,-32768, 1144,-32768, 1148,-32768, 39,-32768,-32768, + 592, 637, 4608, 1154,-32768,-32768, 114, 1153,-32768, 1171, + 96, 1181, 1178,-32768, 5581, 5774,-32768,-32768,-32768,-32768, + 1179, 1180,-32768,-32768, 660, 5581, 5581, 5581, 5581, 5581, + 5581, 5581, 5732, 5732, 1151, 725, 756, 791, 824, 1062, + 809, 1026, 914, 836, 565, 1037, 1177, 1170, 1172, 1155, + 194, 1188,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 814, + 826,-32768,-32768, 1109,-32768,-32768,-32768, 4565,-32768,-32768, +-32768,-32768, 6310,-32768,-32768, 6310,-32768,-32768,-32768,-32768, + 5581, 1066,-32768, 5498,-32768,-32768, 5498, 1126,-32768,-32768, +-32768, 1191,-32768,-32768,-32768, 1152,-32768, 148, 1193,-32768, + 353,-32768, 425,-32768,-32768, 1197,-32768,-32768,-32768, 1198, + 592,-32768, 828, 1203, 5581,-32768,-32768, 1200, 833, 1213, + 856, 857, 884, 890, 891, 933, 938, 939, 5581, 3424, + 5581, 940, 945, 190, 5581, 5581, 5581, 5581, 5581, 5581, + 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, + 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, + 5581, 5581,-32768, 5581,-32768, 1219, 1223, -14,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1005,-32768, +-32768,-32768,-32768, 860,-32768,-32768, 5498, 543,-32768, 213, + 5225,-32768, 6310, 5225, 6310,-32768,-32768,-32768, 1081,-32768, +-32768,-32768,-32768,-32768,-32768, 109, 21,-32768,-32768,-32768, + 1024,-32768,-32768, 396,-32768,-32768,-32768, 5024,-32768,-32768, + 598,-32768, 1224, 893,-32768,-32768, 946, 5581, 1222, 964, + 982, 376, 592, 592,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 985, 992, 993, 956, 963, + 495, 589, 668, 699, 704, 740, 804, 862, 659, 586, + 74, 498, 5581, 501, 5774,-32768, 6108, 503, 91,-32768, +-32768, 1020,-32768,-32768,-32768,-32768, 1226, 97,-32768,-32768, + 5225,-32768, 5225,-32768,-32768, 1788, 632,-32768, 1157, 6108, + 503, 91,-32768, 478,-32768,-32768, 592,-32768, 1065, 994, +-32768, 1001, 1007,-32768,-32768, 1072,-32768, 4840,-32768,-32768, +-32768,-32768,-32768, 644,-32768, 503, 930, 113, 113,-32768, +-32768, 235, 734, 1159,-32768, 119,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 801,-32768, 68,-32768,-32768, + 1227,-32768, 1229, 1232,-32768, 1233,-32768,-32768,-32768, 1161, +-32768, 4682, 644,-32768, 734,-32768, 369, 1231,-32768,-32768, +-32768,-32768, 1237, 1009, 1014,-32768, 1166, 503, 1169,-32768, +-32768,-32768,-32768, 139, 235, 169, 592, 592, 113, 1183, +-32768, 119, 119,-32768, 290, 955,-32768, 119,-32768,-32768, + 5581, 97, 1248,-32768,-32768,-32768, 1252,-32768, 1253,-32768, + 1195, 1195,-32768,-32768,-32768, 1033, 5581, 1195,-32768, 1195, +-32768,-32768,-32768, 235, 1249,-32768,-32768, 235,-32768, 452, + 290, 404, 592, 592, 119, 1187, 955,-32768,-32768,-32768, +-32768, 5581,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 1251,-32768,-32768, 290,-32768,-32768, 1192, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1279, 1281,-32768 }; static const short yypgoto[] = {-32768, --32768, 1123,-32768,-32768,-32768,-32768, -388, -100,-32768,-32768, - 883,-32768,-32768,-32768,-32768,-32768, 112,-32768, 447,-32768, - -679,-32768,-32768,-32768, -693, 219, 147,-32768,-32768, 203, - 341,-32768,-32768, 310,-32768,-32768, -918, -659,-32768,-32768, +-32768, 1201,-32768,-32768,-32768,-32768, -395, -101,-32768,-32768, + 960,-32768,-32768,-32768,-32768,-32768, 88,-32768, 521,-32768, + -716,-32768,-32768,-32768, -715, 296, 220,-32768,-32768, 273, + 415,-32768,-32768, 379,-32768,-32768, -897, -698,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, -890, 100, 232, -942, - 141,-32768, -586, 397, 961,-32768,-32768, -580,-32768,-32768, - 581, -334, -333, -332, -331, -346, -365, -315, -532, -538, --32768, -572,-32768, -115,-32768,-32768, 1073, 1068, -534, -358, - 1,-32768,-32768,-32768, -461,-32768,-32768,-32768, 0, -274, - 767,-32768, -765, -694,-32768,-32768,-32768,-32768,-32768,-32768, - 165, 651,-32768, 414,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 756, -674, -782,-32768, 143,-32768,-32768, - 565, 568, 452, 8, -401, 1132,-32768, 42,-32768,-32768, - -552,-32768,-32768,-32768, 556, -287, 907,-32768, -488, 467, - 1240,-32768, 1030,-32768, 392,-32768,-32768,-32768,-32768, -97, --32768,-32768,-32768,-32768, 172, 1133, 1411,-32768,-32768, 1435, --32768,-32768, -357,-32768, 1336, 194, -568, -806,-32768, 745, --32768,-32768, 836, -84, -306, 6,-32768, 119, 69,-32768, --32768, 251,-32768, 476,-32768,-32768, 555,-32768, 297,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, -449, 177, 308, -954, + 215,-32768, -567, 472, 929,-32768,-32768, -565,-32768,-32768, + 17, -357, -337, -331, -314, -317, -397, -322, -447, -540, +-32768, -551,-32768, -112,-32768,-32768, 1046, 1025, -604, -295, + 1,-32768,-32768,-32768, -463,-32768,-32768,-32768, 0, -252, + 845,-32768, -766, -664,-32768,-32768,-32768,-32768,-32768,-32768, + 130, 724,-32768, 412,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 853, -665, -745,-32768, 218,-32768,-32768, + 638, 634, 515, 8, -403, 1205,-32768, 65,-32768,-32768, + -607,-32768,-32768,-32768, 628, -293, 973,-32768, -490, 318, + 1311,-32768, 1098,-32768, 584,-32768,-32768,-32768,-32768, -99, +-32768,-32768,-32768,-32768, 217, 1073, 1176,-32768,-32768, 1283, +-32768,-32768, -359,-32768, 76, 262, -538, -721,-32768, 812, +-32768,-32768, 902, -83, -306, 223,-32768, 232, 57,-32768, +-32768, 160,-32768, 214,-32768,-32768, 622,-32768, 380,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1556,-32768, --32768, 1646, -120, 231, 90,-32768 +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1399,-32768, +-32768, 1480, -229, 182, 426,-32768 }; -#define YYLAST 6435 - - -static const short yytable[] = { 94, - 91, 595, 94, 290, 307, 507, 622, 104, 509, 330, - 228, 229, 641, 456, 221, 221, 639, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 113, 570, 471, 547, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 546, 727, 536, 537, 696, 538, - 539, 729, 540, 541, 542, 543, 192, 544, 545, 739, - 94, 91, 692, 1016, 604, 980, 568, 896, 104, 107, - 898, 579, 107, 1017, 461, 475, 123, 548, 299, 892, - 909, 475, 879, 774, 94, 431, 977, 791, 901, 977, - 435, 87, 436, 738, 312, 313, 315, 727, 418, 737, - 321, 569, 491, 729, 440, 1072, 1073, 222, 222, 437, - 475, 739, 985, 520, 620, 301, 344, 1118, 1119, 291, - 291, 1109, 1074, 354, 1075, 1016, 808, 1007, 1008, 521, - 807, 2, -572, 310, 291, 1017, -572, -68, -68, 680, - 1076, 415, 323, 1080, 99, 738, 931, 117, 293, 120, - 107, 737, 1043, 1081, 1045, 475, 416, 1009, 1010, 183, - 1145, 1135, 932, 1112, 409, 410, 1116, 1137, 971, 1138, - 972, 1011, 87, -245, 107, 683, 977, 469, 977, 471, - 684, 801, 344, 311, 891, 192, 1034, 893, 221, -245, - 324, 493, 626, 221, 685, 221, 979, 879, 981, 2, - 509, 338, 986, -75, -75, 109, 110, 221, 221, 1112, - 106, 325, -561, 106, 75, 1018, -561, 106, 198, 198, - 198, 861, 682, 401, 402, 99, -68, -68, 330, 192, - 75, 76, 122, 648, 78, 79, 862, 192, 193, 294, - 294, 192, 294, 192, 698, -353, -353, -353, 660, -353, - -353, -353, -353, -353, 339, -353, -353, 75, 76, 122, - -576, 78, 79, 445, -576, 322, 735, 334, 299, 1047, - 450, 1074, 192, 1075, 335, 456, 75, 1018, 412, 94, - 454, -353, 457, 459, -353, 734, -353, 453, 347, 1076, - 801, 106, -75, -75, 75, 1082, 94, 730, 731, 732, - 733, 222, 321, 962, 468, 344, 222, 960, 222, 330, - 417, 364, 365, 418, 493, 106, 736, 560, 735, 701, - 222, 222, 2, 435, 494, -353, -353, -353, 1038, -353, - -353, 106, 420, 336, 709, 433, 710, 734, 418, 696, - 2, 1120, 106, 1121, 426, 344, 427, 198, 337, 730, - 731, 732, 733, -246, -564, 284, 727, 330, -564, 1122, - -565, 993, 729, 340, -565, 198, 495, 193, 736, 107, - 739, 418, 458, 460, 462, 442, -246, 636, 470, 181, - 210, 210, 403, 404, 1016, 358, 107, 1110, 403, 404, - 418, 198, 324, -566, 1017, 359, 1001, -566, -569, 198, - 894, 198, -569, 198, 738, 198, 818, -245, -574, 493, - 737, 193, -574, 198, 405, 406, 411, 450, 198, 193, - 198, 403, 404, 193, 360, 193, 221, 94, 407, 408, - 94, 361, 198, 198, 198, 577, 362, 585, 580, 588, - 417, 594, 94, 418, 94, 363, 418, 491, 1016, 601, - 614, 1141, 321, -245, 193, 623, -562, 681, 1017, 610, - -562, 1140, 1120, 194, 1121, 330, 490, 401, 402, 418, - 192, 618, 958, -626, 494, 973, 624, 412, 974, 454, - 1122, 75, 76, 122, -620, 78, 79, 330, 492, 296, - 957, 298, 947, 948, 323, 949, 950, -624, 951, 952, - 953, 954, -621, 955, 956, 382, 411, 383, 181, -353, - 106, 413, 418, 106, 106, 106, 616, 107, 994, 414, - 107, 995, -567, 959, -626, -353, -567, 106, 384, 385, - 592, 422, 107, 106, 107, 75, 1018, 634, 1111, 222, - 450, 635, 324, -559, 997, 607, 622, -559, 421, 612, - 403, 404, 181, -457, 1088, 450, 398, 399, 400, 664, - 181, 418, 454, 418, 181, 651, 181, 816, 291, 796, - -623, 974, 2, 558, 210, 678, 679, 735, 198, 210, - 429, 210, 321, -404, 493, 428, 198, -529, 198, 637, - 638, -529, 194, 210, 210, 181, 734, -622, 492, 75, - 1018, 624, 1111, 303, 304, 305, 454, 192, 730, 731, - 732, 733, 401, 402, -626, -626, 706, 707, -626, -626, - 475, 344, 493, 344, 323, 291, 433, 736, 1066, 418, - 2, -528, 198, 491, -530, -528, 194, 425, -530, -353, - 694, -353, -550, 330, 194, 770, -550, 434, 194, -353, - 194, 198, 193, 777, 438, 779, 439, 198, 106, 785, - 786, 106, 291, 443, 790, 1077, 405, 406, 610, 797, - 444, 106, 324, 106, 494, 106, 446, 923, 796, 194, - 407, 408, 467, 106, -527, 418, 106, 452, -527, 865, - 106, 1061, 464, 344, 466, -245, 472, 493, 348, 349, - 350, 351, 352, 353, 418, 2, 1087, 475, 921, 974, - 1127, 799, 483, 75, 76, 122, 495, 78, 79, 418, - -544, 198, 498, 925, -544, -549, -353, 694, -353, -549, - 106, 106, 489, 75, 76, 122, -353, 78, 79, -245, - 500, 493, 851, 852, 592, 499, 592, 291, 885, 2, - 1123, 1150, 403, 404, 690, 792, 853, 854, 612, 107, - 398, 399, 400, 987, 828, 502, 829, 503, -353, 198, - 198, 75, 76, 122, 504, 78, 79, 913, 797, -548, - 624, 505, 198, -548, -353, 198, 198, 830, 831, 193, - -353, -353, -353, 181, -353, -353, 844, 845, 846, 506, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 511, -570, 210, 106, 510, -570, 562, -547, 565, -546, - 799, -547, 513, -546, 514, -545, 1022, 405, 406, -545, - 563, -542, 297, 566, 300, -542, 302, 567, 306, 409, - 410, 407, 408, 308, 1048, 582, 75, 76, 122, 1054, - 78, 79, 914, 316, 578, 317, 583, -543, 198, 198, - 1006, -543, 758, 553, 554, 1065, 584, 975, 107, 198, - 198, 1067, 198, 599, 982, -539, -245, 194, 920, -539, - 1078, 674, 675, 1050, 587, 106, 387, 106, 418, 708, - 75, 76, 122, 573, 78, 79, 106, 386, 593, 106, - 106, 198, 869, 870, 871, 872, 873, 874, 875, 1099, - 1100, 600, 1101, -540, 758, 888, 608, -540, 888, 609, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 181, 1025, 602, 1026, 307, 75, 76, 122, -531, 78, - 79, 613, -531, 1124, 1027, 1028, 418, 1029, 617, 1030, - 1031, 621, 1035, 330, 627, 94, 629, 573, 533, 534, - 535, 630, 1032, 1041, -534, 632, 634, 665, -534, 1136, - 1000, 797, 633, 1057, 847, 848, 198, 650, 454, 580, - 653, 1062, 1063, -558, 1148, -554, 450, -558, -555, -554, - 654, -556, -555, 656, 330, -556, 398, 399, 400, -552, - 1002, 1003, 676, -552, -535, 668, 573, -533, -535, 106, - 671, -533, -537, 1055, 194, 94, -537, 1089, 1091, 106, - 670, 573, 663, -538, 448, -536, 673, -538, 451, -536, - 450, 849, 850, 888, 797, 888, 888, 888, 866, 867, - 868, 905, 906, 907, 686, 107, 463, 855, 856, 465, - 895, 675, 983, 984, 688, 179, 691, 473, 625, 699, - 476, 107, 418, 1064, 1058, 329, 1126, 693, 702, 94, - 75, 1069, 1130, 768, 703, 772, 775, 1041, 329, 329, - 329, 329, 329, 329, 781, 356, 357, 787, 789, 803, - 805, 806, 810, 809, 663, 712, 858, 857, 814, 815, - 827, 341, 859, 863, 899, 107, 663, 326, 860, 903, - 912, 963, 138, 139, 140, 141, 142, 143, 917, 918, - 184, 216, 216, 888, 107, 888, 1152, 833, 922, 144, - 145, 146, 924, 1155, 926, 964, 996, 802, 1037, 1049, - 999, 106, 106, 1090, 1114, 1115, 1079, 1093, 1094, 1096, - 1129, 1059, 1102, 147, 1131, 1104, 1157, 1098, 1106, 107, - 1132, 834, 835, 836, 837, 838, 839, 840, 841, 842, - 843, 867, 1139, 758, 1151, 1108, 1117, 1023, 1158, 1146, - 1153, 476, 342, 283, 343, 474, 106, 1051, 581, 883, - 1143, 1144, 1107, 586, 156, 589, 1068, 968, 991, 1142, - 1023, 1053, 106, 598, 929, 106, 1125, 603, 866, 867, - 868, 596, 1128, 667, 869, 870, 871, 872, 873, 874, - 875, 780, 778, 309, 795, 1071, 1023, 1023, 179, 226, - 915, 496, 441, 1103, 1085, 631, 179, 559, 812, 1005, - 179, 0, 179, 0, 0, 0, 106, 0, 0, 184, - 430, 0, 0, 0, 0, 0, 0, 0, 75, 327, - 328, 159, 0, 0, 0, 106, 0, 0, 0, 0, - 0, 179, 0, 0, 0, 819, 820, 821, 822, 823, - 824, 0, 0, 0, 1023, 106, 106, 1023, 0, 0, - 1085, 1085, 0, 184, 0, 0, 1085, 0, 0, 0, - 106, 184, 0, 0, 329, 184, 0, 184, 0, 0, - 0, 0, 581, 0, 0, 216, 0, 0, 0, 0, - 216, 0, 216, 188, 219, 219, 0, 0, 0, 0, - 1023, 106, 106, 1085, 216, 216, 184, 476, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 0, 0, 695, 905, 906, 907, - 0, 700, 0, 869, 870, 871, 872, 873, 874, 875, - 0, 0, 0, 481, 0, 0, 0, 0, 0, 0, - 0, 484, 485, 486, 487, 329, 0, 0, 0, 760, - 0, 0, 0, 0, 0, 0, 0, 0, 185, 217, - 217, 0, 481, 0, 944, 945, 946, 0, 0, 0, - 501, 0, 0, 481, 0, 0, 0, 0, 0, 0, - 0, 0, 186, 218, 218, 0, 0, 0, 0, 0, - 519, 0, 0, 329, 518, 0, 0, 0, 329, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 832, 0, 0, 0, 0, 0, 0, 179, - 552, 0, 0, 0, 0, 326, 564, 0, 619, 0, - 138, 139, 140, 141, 142, 143, 998, 0, 0, 329, - 0, 329, 0, 643, 645, 0, 188, 144, 145, 146, - 0, 0, 0, 0, 188, 0, 0, 0, 188, 0, - 188, 0, 0, 0, 0, 0, 0, 0, 219, 432, - 0, 147, 900, 219, 0, 219, 0, 185, 0, 0, - 0, 0, 0, 0, 184, 0, 0, 219, 219, 188, - 0, 329, 0, 195, 224, 224, 0, 0, 0, 0, - 0, 186, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 329, 0, 0, 0, 0, 0, 0, - 0, 185, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 0, 185, 0, 185, 0, 0, 0, 0, - 0, 0, 728, 217, 0, 186, 0, 640, 217, 0, - 217, 0, 0, 186, 0, 0, 179, 186, 0, 186, - 0, 0, 217, 217, 185, 969, 970, 218, 0, 0, - 0, 0, 218, 976, 218, 0, 75, 327, 328, 159, - 0, 0, 0, 197, 225, 225, 218, 218, 186, 0, - 0, 0, 0, 0, 728, 0, 0, 992, 0, 0, - 0, 0, 0, 0, 0, 329, 329, 329, 329, 329, - 329, 825, 826, 0, 487, 0, 0, 0, 0, 0, - 0, 184, 195, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 705, 0, 0, 481, - 0, 481, 0, 0, 0, 0, 515, 713, 0, 0, - 759, 0, 0, 0, 0, 0, 0, 0, 0, 1036, - 0, 0, 0, 0, 0, 0, 195, 0, 0, 329, - 0, 0, 0, 0, 195, 0, 0, 0, 195, 0, - 195, 783, 0, 0, 0, 0, 0, 188, 224, 0, - 0, 0, 0, 224, 0, 224, 0, 0, 0, 0, - 811, 0, 0, 329, 0, 0, 219, 224, 224, 195, - 0, 817, 197, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, - 0, 0, 0, 0, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 0, 329, 0, 0, 0, 197, 0, 0, 0, - 0, 0, 185, 0, 197, 0, 0, 0, 197, 0, - 197, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 0, 217, 0, 225, 783, 225, 186, 783, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 225, 225, 197, - 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, - 0, 0, 0, 1149, 0, 0, 329, 0, 0, 0, - 0, 0, 0, 0, 188, 0, 930, 0, 0, 927, - 518, 0, 0, 0, 0, 933, 934, 935, 936, 937, - 938, 939, 940, 941, 942, 943, 0, 0, 0, 0, - 0, 0, 0, 728, -227, 0, 0, 0, 0, 0, - 326, 0, 0, 0, 0, 138, 139, 140, 141, 142, - 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -483, 144, 145, 146, 0, 366, 783, 0, 0, - 0, 138, 139, 140, 141, 142, 143, 0, 0, 185, - 0, 0, 0, 0, 0, 0, 147, 195, 144, 145, - 146, 0, 0, 487, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 186, 0, 0, 224, 0, 0, 0, - 0, 0, 147, -1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -245, 1004, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 156, 0, 0, 0, 0, 3, 329, - 0, 0, 0, 0, 0, 0, 783, 0, 0, 0, - 0, 0, 0, 0, 0, 329, 0, 197, 0, 0, - -353, -353, -353, 0, 4, 0, 0, 0, 5, 6, - 7, 75, 327, 328, 159, 0, 225, 0, 0, 0, - 329, 0, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 75, 327, 328, - 159, 11, 12, 13, 195, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 0, 78, 79, 80, -2, 1, 0, 0, 0, +#define YYLAST 6563 + + +static const short yytable[] = { 95, + 92, 597, 95, 477, 309, 292, 624, 105, 511, 458, + 229, 230, 643, 332, 694, 698, 549, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 793, 572, 538, 539, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 193, 881, 114, 540, 541, 473, + 509, -68, -68, 903, 284, 542, 543, 544, 545, 606, + 911, 95, 92, 189, 220, 220, 729, 88, 731, 105, + 471, 581, 550, 810, -577, 548, 546, 547, -577, 301, + 477, 2, 741, 641, 433, 95, -75, -75, 293, 437, + 894, 438, 414, 740, 1018, 314, 315, 317, 1040, 898, + 809, 323, 900, 442, 1019, 522, 293, 1120, 1121, 100, + 2, 439, 118, 987, 121, 776, 1018, 346, 729, 495, + 731, 523, 1082, 420, 356, 979, 1019, 2, 979, 638, + 419, 570, 1083, 420, 741, 350, 351, 352, 353, 354, + 355, -68, -68, 1111, 1076, 740, 1077, 194, 973, 88, + 1147, -246, 982, 286, -354, -354, -354, 312, -354, -354, + 881, 107, 1078, 417, 107, 477, 325, 988, 107, 199, + 199, 199, 1018, 295, 193, 1112, -75, -75, 418, 622, + 686, 803, 1019, 346, 1137, 571, 739, 1036, 628, 687, + 1139, 100, 1140, 189, 76, 77, 123, 933, 79, 80, + 511, 195, 974, 473, 184, 296, 296, 981, 296, 983, + -245, 222, 222, 934, 863, 979, 893, 979, 193, 895, + 223, 223, 303, 76, 77, 123, 193, 79, 80, 864, + 193, 324, 193, 332, 313, 650, 737, 189, 739, 1045, + 1076, 1047, 1077, 107, 420, 189, 76, 1020, 493, 189, + 662, 189, 76, 77, 123, 327, 79, 80, 1078, 220, + 434, 193, 366, 367, 220, 447, 220, 107, 76, 1020, + 301, 458, 452, 336, 76, 1084, 732, 194, 220, 220, + 189, 95, 456, 107, 459, 461, 698, 684, 737, 455, + 803, 463, 337, 995, 107, 1122, 733, 1123, 95, 199, + 293, 1049, 734, 964, 323, 682, 470, 346, -245, 700, + 495, 738, 338, 1124, 332, 703, 736, 199, 2, 735, + 562, 194, 339, 437, 76, 1020, 496, 1113, 732, 194, + 711, 195, 712, 194, 349, 194, -354, -354, -354, -354, + -354, -354, -354, 199, -354, 407, 408, 346, 733, 2, + 683, 199, 341, 199, 734, 199, -245, 199, 495, 409, + 410, 477, 332, 738, 194, 199, 2, -246, 736, 472, + 199, 735, 199, -405, 495, 195, 420, 729, 422, 731, + 477, 685, 1003, 195, 199, 199, 199, 195, 342, 195, + 428, 497, 429, 741, 962, 360, 535, 536, 537, -354, + 696, -354, 820, 361, 740, 108, 222, 1018, 108, -354, + 1143, 222, 124, 222, -245, 223, 495, 1019, 195, 452, + 223, 444, 223, 110, 111, 222, 222, 420, -245, 95, + 625, 616, 95, -627, 223, 223, 362, 579, 517, 587, + 582, 590, 960, 596, 95, 363, 95, 365, 76, 77, + 123, 603, 79, 80, 323, 494, 1142, 1122, 420, 1123, + 193, 612, 618, 107, 364, 896, 107, 107, 107, -621, + 332, 949, 950, 620, 435, 1124, 496, 420, 626, 189, + 107, 456, 492, 495, -627, 420, 107, 108, 298, 427, + 300, 2, 332, 951, 952, -562, 627, 739, 220, -562, + -625, 953, 954, 955, 956, -622, 403, 404, 76, 77, + 123, 108, 79, 80, 916, 413, 636, 415, 961, 325, + 637, 959, 957, 958, 76, 77, 123, 326, 79, 80, + 414, 199, -354, -354, -354, 416, -354, -354, 340, 199, + 975, 199, 452, 976, 999, 423, 624, 737, 1074, 1075, + -458, -354, -354, -354, 1090, -354, -354, 452, 424, 76, + 1020, 666, 1113, 194, 456, 494, 403, 404, 1009, 1010, + 798, 182, 211, 211, -624, -627, -627, 680, 681, -627, + -627, 853, 854, 430, 323, 199, -575, 732, 420, -563, + -575, -623, 653, -563, 413, 855, 856, 193, 1011, 1012, + 403, 404, 996, 626, 199, 997, 1114, 733, 456, 1118, + 199, 107, 1013, 734, 107, 431, 189, 195, 708, 709, + 560, 436, 738, 346, 107, 346, 107, 736, 107, 293, + 735, 440, 976, 76, 77, 123, 107, 79, 80, 107, + -245, 293, 495, 107, 1068, 222, 441, 772, 332, 325, + 2, 445, 1114, 448, 223, 779, 989, 781, 446, -573, + 420, 787, 788, -573, 818, 469, 792, 512, -565, 477, + 612, 799, -565, 454, 199, 515, 496, 516, 419, 798, + 466, 420, 925, 107, 107, 493, 468, 1063, -354, 696, + -354, 411, 412, 405, 406, 346, 405, 406, -354, -566, + 194, 182, 435, -566, -567, 420, 474, 108, -567, 493, + 460, 462, 464, 821, 822, 823, 824, 825, 826, 1024, + 485, 692, 199, 199, 108, -530, 491, 405, 406, -530, + 326, 293, 405, 406, 1079, 199, 801, 1050, 199, 199, + -568, 497, 1056, 500, -568, 182, 575, 76, 77, 123, + 887, 79, 80, 182, 195, 501, -529, 182, 1067, 182, + -529, 384, 502, 385, 1069, -354, 107, 211, 405, 406, + 411, 412, 211, 1080, 211, 1129, 305, 306, 307, 915, + 799, -354, 626, 504, 386, 387, 211, 211, 182, 555, + 556, -531, 76, 77, 123, -531, 79, 80, 1089, 676, + 677, 976, 1101, 1102, -570, 1103, 420, 710, -570, -551, + 575, 199, 199, -551, -528, 760, 1152, 505, -528, 506, + 407, 408, 199, 199, 507, 199, 420, 830, 420, 831, + 867, -354, 923, 420, 409, 410, 1126, 927, 107, 508, + 107, 513, 946, 947, 948, 801, 564, -354, 567, 107, + 832, 833, 107, 107, 199, 108, -545, -550, 108, 575, + -545, -550, -571, 1008, 851, 852, -571, 760, 594, 977, + 108, 565, 108, 389, 575, 665, 984, 1150, 407, 408, + 326, 568, 890, 609, -549, 890, 1052, 614, -549, 569, + -548, -547, 409, 410, -548, -547, 580, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 871, 872, 873, + 874, 875, 876, 877, 1000, 849, 850, 639, 640, 199, + 299, 584, 302, -546, 304, 309, 308, -546, -543, -544, + -540, 310, -543, -544, -540, -541, -532, 665, 714, -541, + -532, 318, 293, 319, 1037, 1125, -560, 95, 332, 665, + -560, 585, 107, -559, -535, 1043, 586, -559, -535, 400, + 401, 402, 107, 799, 1138, 1059, 400, 401, 402, -245, + 456, 582, 636, 1064, 1065, -555, 1002, 182, 452, -555, + 804, 601, -556, -557, -553, 388, -556, -557, -553, 332, + 890, -536, 890, 890, 890, -536, 211, -534, 602, -538, + 326, -534, 180, -538, -539, 343, 604, 95, -539, 1091, + 1093, 328, 611, 400, 401, 402, 139, 140, 141, 142, + 143, 144, 452, -537, 331, 610, 799, -537, 1057, 846, + 847, 848, 589, 145, 146, 147, 595, 331, 331, 331, + 331, 331, 331, 615, 358, 359, 868, 869, 870, 420, + 185, 217, 217, 623, 835, 897, 677, 148, 1128, 857, + 858, 95, 420, 1066, 1132, 907, 908, 909, 629, 1043, + 985, 986, 594, 619, 594, 76, 1071, 632, 631, 634, + 890, 635, 890, 794, 107, 107, 614, 108, 836, 837, + 838, 839, 840, 841, 842, 843, 844, 845, 157, 652, + 655, 656, 658, 667, 670, 672, 678, 673, 1027, 675, + 1028, 690, 688, 450, 182, 695, 760, 453, 1154, 693, + 1025, 1029, 1030, 701, 1031, 1157, 1032, 1033, 705, 107, + 344, 704, 345, 770, 774, 465, 777, 783, 467, 1034, + 789, 805, 791, 1025, 829, 107, 475, 807, 107, 478, + 868, 869, 870, 186, 218, 218, 871, 872, 873, 874, + 875, 876, 877, 76, 329, 330, 160, 808, 1073, 1025, + 1025, 811, 812, 816, 817, 859, 180, 1087, 860, 862, + 185, 861, 865, 901, 180, 905, 914, 926, 180, 107, + 180, 919, 920, 907, 908, 909, 108, 924, 432, 871, + 872, 873, 874, 875, 876, 877, 922, 928, 107, 965, + 966, 998, 1001, 1039, 1051, 1061, 1081, 1092, 1100, 180, + 1095, 1096, 1098, 1108, 185, 1104, 1110, 1025, 107, 107, + 1025, 1106, 185, 1087, 1087, 1131, 185, 869, 185, 1087, + 1119, 1133, 1134, 107, 1148, 1141, 217, 1153, 1159, 1155, + 1160, 217, 285, 217, 476, 885, 1053, 1109, 1070, 993, + 187, 219, 219, 970, 331, 217, 217, 185, 1144, 1055, + 478, 931, 1127, 1025, 107, 107, 1087, 583, 669, 1130, + 780, 598, 588, 186, 591, 917, 782, 311, 797, 498, + 227, 443, 600, 1105, 633, 561, 605, 814, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 1007, 0, 0, 0, 0, 0, + 0, 0, 483, 0, 0, 0, 0, 186, 1004, 1005, + 486, 487, 488, 489, 0, 186, 0, 0, 0, 186, + 0, 186, 0, 0, 0, 331, 0, 0, 0, 218, + 0, 483, 0, 0, 218, 0, 218, 0, 0, 0, + 0, 0, 483, 0, 0, 0, 0, 0, 218, 218, + 186, 0, 0, 108, 0, 503, 196, 225, 225, 521, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, + 187, 0, 1060, 331, 0, 0, 0, 0, 331, 520, + 0, 583, 0, 0, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 0, 0, 0, 180, 0, + 0, 0, 0, 0, 0, 566, 478, 0, 0, 0, + 0, 0, 0, 108, 187, 554, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 697, 187, 0, 187, 331, + 702, 331, 108, 645, 647, 0, 219, 198, 226, 226, + 0, 219, 0, 219, 0, 0, 185, 0, -227, 0, + 0, 0, 1116, 1117, 328, 219, 219, 187, 762, 139, + 140, 141, 142, 143, 144, 217, 0, 108, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 146, 147, 0, + 0, 331, 328, 518, 0, 0, 196, 139, 140, 141, + 142, 143, 144, 0, 0, 0, 0, 0, 1145, 1146, + 148, 0, 0, 331, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 197, 0, 0, 0, 0, -245, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 642, 0, 148, 0, + 196, 834, 730, 0, 0, 180, 0, 0, 196, 0, + 0, 157, 196, 0, 196, 0, 0, 0, 0, 186, + 0, 0, 225, 0, 0, 0, 0, 225, 0, 225, + 0, 0, 0, 0, 0, 0, 0, 198, 218, 157, + 0, 225, 225, 196, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 185, 730, 0, 0, 0, 0, 0, + 0, 902, 0, 489, 0, 331, 331, 331, 331, 331, + 331, 827, 828, 0, 0, 0, 76, 329, 330, 160, + 0, 198, 0, 0, 0, 0, 0, 0, 483, 198, + 483, 0, 0, 198, 0, 198, 715, 0, 0, 761, + 0, 707, 0, 226, 76, 329, 330, 160, 226, 0, + 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 226, 226, 198, 0, 187, 0, 328, 331, + 0, 621, 0, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 0, 219, 785, 0, 0, 813, + 145, 146, 147, 0, 971, 972, 186, 0, 0, 0, + 819, 0, 978, 331, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 994, 0, 0, 0, + 0, 0, 0, 0, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 328, 331, 0, 699, 157, 139, 140, 141, 142, + 143, 144, 0, 0, 0, 0, 784, 1048, 0, 0, + 0, 328, 0, 145, 146, 147, 139, 140, 141, 142, + 143, 144, 196, 0, 0, 0, 0, 0, 1038, 785, + 0, 0, 785, 145, 146, 147, 0, 148, 0, 0, + 0, 225, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 932, 331, 148, 0, 0, + 76, 329, 330, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 929, 520, 0, 0, 157, 0, + 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, + 945, 0, 0, 730, 1094, 0, 0, 0, 157, 0, + 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 785, 0, 0, 0, 0, 0, -1, 1, + 0, 0, 489, 76, 329, 330, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, + 0, 0, -245, 76, 329, 330, 160, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1151, 3, 0, 0, 0, 1006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -353, -353, -353, 0, 4, 0, 0, 0, - 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 9, 10, 0, 0, 0, + 0, 0, 0, 0, 0, -354, -354, -354, 0, 4, + 0, 0, 0, 5, 6, 7, 0, 0, 0, 331, + 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, + 0, 785, 0, 0, 0, 331, 0, 0, 0, 0, + 198, 0, 0, 0, 0, 0, 11, 12, 13, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 331, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 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, 0, 79, 80, + 81, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 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, 124, 78, 79, 80, 0, 125, 126, - 127, 0, 128, 129, 130, 131, 132, 133, 134, 135, - 136, -483, 556, 0, 0, 0, 137, 0, 0, 0, - 0, 138, 139, 140, 141, 142, 143, 0, 0, 0, - 0, 0, 0, 0, -245, -245, 0, 3, 144, 145, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -353, - -353, -353, 147, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -245, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 150, 151, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 11, 12, 13, 156, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 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, 157, 557, - 159, 160, 79, 80, 124, 0, 0, 0, 0, 125, - 126, 127, 0, 128, 129, 130, 131, 132, 133, 134, - 135, 136, -483, 0, 0, 0, 0, 137, 0, 0, - 0, 0, 138, 139, 140, 141, 142, 143, 0, 0, - 0, 0, 0, 0, 0, -245, -245, 0, 0, 144, - 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -354, -354, + -354, 0, 4, 0, 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -245, -245, -245, 147, 0, 0, 0, 0, 0, 0, + 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 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, + 125, 79, 80, 81, 0, 126, 127, 128, 0, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -484, 558, + 0, 0, 0, 138, 0, 0, 0, 0, 139, 140, + 141, 142, 143, 144, 0, 0, 0, 0, 0, 0, + 0, -245, -245, 0, 3, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 149, 150, 151, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, - 155, -245, -245, -245, 156, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, 0, -245, -245, -245, -245, + 0, 0, 0, 0, 0, 0, -354, -354, -354, 148, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 156, 11, 12, 13, + 157, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 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, 158, 559, 160, 161, + 80, 81, 125, 0, 0, 0, 0, 126, 127, 128, + 0, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -484, 0, 0, 0, 0, 138, 0, 0, 0, 0, + 139, 140, 141, 142, 143, 144, 0, 0, 0, 0, + 0, 0, 0, -245, -245, 0, 0, 145, 146, 147, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -245, -245, + -245, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 151, 152, 153, 154, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 156, -245, + -245, -245, 157, -245, -245, -245, -245, -245, -245, -245, + -245, -245, -245, 0, -245, -245, -245, -245, -245, -245, + -245, -245, -245, -245, -245, -245, -245, -245, -245, 0, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, 0, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, 75, 157, - 158, 159, 160, 79, -245, 200, 0, 0, 0, 0, - 125, 126, 127, 0, 0, 201, 130, 131, 132, 133, - 134, 135, 202, -483, -487, 0, 0, 0, 203, 0, - 0, 0, 0, 138, 139, 140, 141, 142, 143, 0, - 0, 0, 0, 0, 0, 0, -245, -245, 0, 0, - 144, 145, 146, 0, 0, 0, 0, 0, 0, 0, + -245, -245, -245, -245, -245, -245, -245, 76, 158, 159, + 160, 161, 80, -245, 201, 0, 0, 0, 0, 126, + 127, 128, 0, 0, 202, 131, 132, 133, 134, 135, + 136, 203, -484, -488, 0, 0, 0, 204, 0, 0, + 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, + 0, 0, 0, 0, 0, -245, -245, 0, 0, 145, + 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -245, -245, -245, 147, 0, 0, 0, 0, 0, + -245, -245, -245, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 155, -245, -245, -245, 156, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, 0, -245, -245, -245, + 0, 0, 0, 0, 0, 0, 150, 151, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 156, -245, -245, -245, 157, -245, -245, -245, -245, -245, + -245, -245, -245, -245, -245, 0, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, 0, -245, -245, -245, -245, -245, -245, -245, + -245, 0, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, - -245, -245, -245, -245, -245, -245, -245, -245, -245, 75, - 157, 158, 159, 204, 205, -245, 200, 0, 0, 0, - 0, 125, 126, 127, 0, 0, 201, 130, 131, 132, - 133, 134, 135, 202, -431, -431, 0, 0, 0, 203, - -431, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 0, 0, 0, 0, 0, 0, -245, -245, 124, - 0, 144, 145, 146, 125, 126, 127, 0, 128, 129, - 130, 131, 132, 133, 134, 135, 136, -483, 0, 0, - 0, 0, 137, 0, 0, 147, 0, 138, 139, 140, - 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, - -245, -245, 0, 0, 144, 145, 146, -431, 149, 150, - 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 0, 156, 0, 147, 0, + -245, -245, -245, -245, -245, -245, -245, -245, -245, 76, + 158, 159, 160, 205, 206, -245, 201, 0, 0, 0, + 0, 126, 127, 128, 0, 0, 202, 131, 132, 133, + 134, 135, 136, 203, -432, -432, 0, 0, 0, 204, + -432, 0, 0, 0, 139, 140, 141, 142, 143, 144, + 0, 0, 0, 0, 0, 0, 0, -245, -245, 125, + 0, 145, 146, 147, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -484, 0, 0, + 0, 0, 138, 0, 0, 148, 0, 139, 140, 141, + 142, 143, 144, 0, 0, 0, 0, 0, 0, 0, + -245, -245, 0, 0, 145, 146, 147, -432, 150, 151, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 0, 0, 0, 157, 0, 148, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 149, 150, 151, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 148, 149, 150, 151, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 76, 158, 159, 160, 205, 206, 0, 0, 125, + 0, 0, 0, 0, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -484, 0, 0, + 0, 0, 138, 0, 0, 0, 0, 139, 140, 141, + 142, 143, 144, 0, 76, 158, 159, 160, 161, 80, + -245, -245, 201, 0, 145, 146, 147, 126, 127, 128, + 0, 0, 202, 131, 132, 133, 134, 135, 136, 203, + -484, -488, 0, 0, 0, 204, 0, 0, 148, 0, + 139, 140, 141, 142, 143, 144, 0, 0, 0, 0, + 0, 0, 0, -245, -245, 0, 0, 145, 146, 147, + -459, 150, 151, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 157, + 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 157, 158, 159, 204, 205, 0, 0, 124, 0, - 0, 0, 0, 125, 126, 127, 0, 128, 129, 130, - 131, 132, 133, 134, 135, 136, -483, 0, 0, 0, - 0, 137, 0, 0, 0, 0, 138, 139, 140, 141, - 142, 143, 0, 75, 157, 158, 159, 160, 79, -245, - -245, 200, 0, 144, 145, 146, 125, 126, 127, 0, - 0, 201, 130, 131, 132, 133, 134, 135, 202, -483, - -487, 0, 0, 0, 203, 0, 0, 147, 0, 138, - 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 0, -245, -245, 0, 0, 144, 145, 146, -458, - 149, 150, 151, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 0, 156, 0, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -428, 150, 151, 152, 153, 154, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 76, 158, 159, 160, 161, 80, + 0, 0, 125, 0, 0, 0, 0, 126, 127, 128, + 0, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -484, 648, 0, 0, 0, 138, 0, 0, 0, 0, + 139, 140, 141, 142, 143, 144, 0, 76, 158, 159, + 160, 205, 206, -245, -245, 201, 0, 145, 146, 147, + 126, 127, 128, 0, 0, 202, 131, 132, 133, 134, + 135, 136, 203, -484, -488, 0, 0, 0, 204, 0, + 0, 148, 0, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 0, 0, -245, -245, 0, 0, + 145, 146, 147, 0, 150, 151, 152, 153, 154, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, + 0, 0, 157, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -427, 149, 150, 151, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 0, 156, 0, 0, 0, 782, 1046, 0, 0, 0, - 326, 0, 0, 0, 0, 138, 139, 140, 141, 142, - 143, 0, 75, 157, 158, 159, 160, 79, 0, 0, - 124, 0, 144, 145, 146, 125, 126, 127, 0, 128, - 129, 130, 131, 132, 133, 134, 135, 136, -483, 646, - 0, 0, 0, 137, 0, 0, 147, 0, 138, 139, - 140, 141, 142, 143, 0, 75, 157, 158, 159, 204, - 205, -245, -245, 200, 0, 144, 145, 146, 125, 126, - 127, 0, 0, 201, 130, 131, 132, 133, 134, 135, - 202, -483, -487, 0, 0, 0, 203, 156, 0, 147, - 0, 138, 139, 140, 141, 142, 143, 0, 0, 0, - 0, 0, 0, 0, -245, -245, 0, 0, 144, 145, - 146, 0, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, - 156, 0, 147, 0, 782, 0, 0, 0, 0, 326, - 0, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 75, 327, 328, 159, 149, 150, 151, 152, 153, - 154, 144, 145, 146, 0, 0, 0, 0, 0, 155, - 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 75, 157, 158, 159, 160, 79, - 0, 0, 124, 0, 0, 0, 0, 125, 126, 127, - 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, - -483, 0, 0, 0, 0, 137, 156, 0, 0, 0, - 138, 139, 140, 141, 142, 143, 0, 75, 157, 158, - 159, 204, 205, -245, -245, 0, 0, 144, 145, 146, - 0, 0, 0, 0, 326, 516, 0, 0, 0, 138, - 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 147, 0, 0, 0, 0, 144, 145, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 156, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 327, 328, 159, 149, 150, 151, 152, 153, 154, - 147, 0, 0, 0, 0, 0, 0, 0, 155, 125, - 126, 127, 156, 128, 129, 130, 131, 132, 133, 134, - 135, 202, -483, 571, 0, 0, 0, 366, 0, 0, - 0, 0, 138, 139, 140, 141, 142, 143, 0, 0, - 0, 156, 0, 0, 0, -245, -245, 0, 3, 144, - 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 158, 159, + 160, 161, 80, 0, 0, 125, 0, 0, 0, 0, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, + 135, 136, 137, -484, 0, 0, 0, 0, 138, 0, + 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, + 76, 158, 159, 160, 205, 206, -245, -245, 0, 0, + 145, 146, 147, 0, 0, 0, 0, 328, 930, 0, + 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, + 0, 0, 0, 0, 148, 0, 0, 0, 0, 145, + 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, + 153, 154, 155, 148, 0, 0, 0, 0, 0, 0, + 0, 156, 126, 127, 128, 157, 129, 130, 131, 132, + 133, 134, 135, 136, 203, -484, 573, 0, 0, 0, + 368, 0, 0, 0, 0, 139, 140, 141, 142, 143, + 144, 0, 0, 0, 157, 0, 0, 0, -245, -245, + 0, 3, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 147, 4, 0, 75, 157, 158, 159, - 160, 79, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 149, 150, 151, 152, - 153, 154, 0, 0, 0, 75, 327, 328, 159, 0, - 572, 11, 12, 13, 156, 14, 15, 16, 17, 18, + 0, 0, 0, 0, 0, 0, 148, 4, 0, 0, + 76, 158, 159, 160, 161, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, + 151, 152, 153, 154, 155, 0, 0, 0, 0, 76, + 329, 330, 160, 574, 11, 12, 13, 157, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 0, 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, 158, 559, 160, 161, 80, 81, 126, + 127, 128, 0, 129, 130, 131, 132, 133, 134, 135, + 136, 203, -484, 649, 0, 0, 0, 368, 0, 0, + 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, + 0, 0, 0, 0, 0, -245, -245, 0, 3, 145, + 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 151, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 11, 12, 13, 157, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 157, - 557, 159, 160, 79, 80, 125, 126, 127, 0, 128, - 129, 130, 131, 132, 133, 134, 135, 202, -483, 647, - 0, 0, 0, 366, 0, 0, 0, 0, 138, 139, - 140, 141, 142, 143, 0, 0, 0, 0, 0, 0, - 0, -245, -245, 0, 3, 144, 145, 146, 0, 0, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 158, 559, 160, 161, 80, 81, 126, 127, 128, 0, + 129, 130, 131, 132, 133, 134, 135, 136, 203, -484, + 660, 0, 0, 0, 368, 0, 0, 0, 0, 139, + 140, 141, 142, 143, 144, 0, 0, 0, 0, 0, + 0, 0, -245, -245, 0, 3, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 11, 12, 13, - 156, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 0, 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, 157, 557, 159, 160, 79, - 80, 125, 126, 127, 0, 128, 129, 130, 131, 132, - 133, 134, 135, 202, -483, 658, 0, 0, 0, 366, - 0, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 0, 0, 0, 0, 0, 0, -245, -245, 0, - 3, 144, 145, 146, 0, 0, 0, 0, 0, 0, + 148, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 4, 0, 0, 0, + 0, 0, 0, 150, 151, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 661, 11, 12, + 13, 157, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 158, 559, 160, + 161, 80, 81, 126, 127, 128, 0, 129, 130, 131, + 132, 133, 134, 135, 136, 203, -484, 659, 0, 0, + 0, 368, 0, 0, 0, 0, 139, 140, 141, 142, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 146, 147, 126, 127, 128, 0, + 129, 130, 131, 132, 133, 134, 135, 136, 203, -484, + 663, 0, 0, 0, 368, 0, 0, 148, 0, 139, + 140, 141, 142, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 146, 147, 0, + 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 0, 0, 0, 157, 0, + 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, - 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 659, 11, 12, 13, 156, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 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, 157, 557, 159, 160, 79, 80, 125, 126, 127, - 0, 128, 129, 130, 131, 132, 133, 134, 135, 202, - -483, 657, 0, 0, 0, 366, 0, 0, 0, 0, - 138, 139, 140, 141, 142, 143, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 144, 145, 146, - 125, 126, 127, 0, 128, 129, 130, 131, 132, 133, - 134, 135, 202, -483, 661, 0, 0, 0, 366, 0, - 0, 147, 0, 138, 139, 140, 141, 142, 143, 0, + 0, 0, 0, 150, 151, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 664, 0, 0, + 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 158, 159, 160, 161, 80, 0, + 0, 0, 126, 127, 128, 0, 129, 130, 131, 132, + 133, 134, 135, 136, 203, -484, 713, 0, 0, 0, + 368, 0, 0, 0, 0, 139, 140, 141, 142, 143, + 144, 0, 0, 0, 0, 0, 76, 158, 159, 160, + 161, 80, 145, 146, 147, 126, 127, 128, 0, 129, + 130, 131, 132, 133, 134, 135, 136, 203, -484, 766, + 0, 0, 0, 368, 0, 0, 148, 0, 139, 140, + 141, 142, 143, 144, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 145, 146, 147, 0, 150, + 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 0, 0, 0, 157, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 144, 145, 146, 0, 149, 150, 151, 152, 153, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, - 0, 0, 156, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 662, 0, 0, 0, 156, 0, 0, 0, 0, - 326, 0, 0, 697, 0, 138, 139, 140, 141, 142, - 143, 0, 0, 0, 0, 0, 75, 157, 158, 159, - 160, 79, 144, 145, 146, 125, 126, 127, 0, 128, - 129, 130, 131, 132, 133, 134, 135, 202, -483, 711, - 0, 0, 0, 366, 0, 0, 147, 0, 138, 139, - 140, 141, 142, 143, 0, 0, 0, 0, 0, 75, - 157, 158, 159, 160, 79, 144, 145, 146, 125, 126, - 127, 0, 128, 129, 130, 131, 132, 133, 134, 135, - 202, -483, 764, 0, 0, 0, 366, 156, 0, 147, - 0, 138, 139, 140, 141, 142, 143, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 144, 145, - 146, 0, 149, 150, 151, 152, 153, 154, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, - 156, 0, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 327, 328, 159, 149, 150, 151, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 0, 0, 0, 156, 0, 0, 0, 0, 326, 928, - 0, 0, 0, 138, 139, 140, 141, 142, 143, 0, - 0, 0, 0, 0, 75, 157, 158, 159, 160, 79, - 144, 145, 146, 125, 126, 127, 0, 128, 129, 130, - 131, 132, 133, 134, 135, 202, -483, 765, 0, 0, - 0, 366, 0, 0, 147, 0, 138, 139, 140, 141, - 142, 143, 0, 0, 0, 0, 0, 75, 157, 158, - 159, 160, 79, 144, 145, 146, 125, 126, 127, 0, - 128, 129, 130, 131, 132, 133, 134, 135, 202, -483, - 767, 0, 0, 0, 366, 156, 0, 147, 0, 138, - 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 144, 145, 146, 0, - 149, 150, 151, 152, 153, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 766, 0, 0, 0, 156, 0, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 327, 328, 159, 149, 150, 151, 152, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, - 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 76, 158, 159, 160, 161, 80, 0, 0, + 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, + 134, 135, 136, 203, -484, 767, 0, 0, 0, 368, + 0, 0, 0, 0, 139, 140, 141, 142, 143, 144, + 0, 0, 0, 0, 0, 76, 158, 159, 160, 161, + 80, 145, 146, 147, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 134, 135, 136, 203, -484, 769, 0, + 0, 0, 368, 0, 0, 148, 0, 139, 140, 141, + 142, 143, 144, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 145, 146, 147, 0, 150, 151, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 768, 0, 0, 0, 157, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 157, 158, 159, 160, 79, 0, 0, - 0, 125, 126, 127, 0, 128, 129, 130, 131, 132, - 133, 134, 135, 202, -483, 884, 0, 0, 0, 366, - 0, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 0, 0, 0, 0, 75, 157, 158, 159, 160, - 79, 144, 145, 146, 125, 126, 127, 0, 128, 129, - 130, 131, 132, 133, 134, 135, 202, -483, 0, 0, - 0, 0, 366, 0, 0, 147, 0, 138, 139, 140, - 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 144, 145, 146, 0, 149, 150, - 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 0, 156, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 149, 150, 151, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 0, 0, 156, + 0, 150, 151, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 157, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 76, 158, 159, 160, 161, 80, 0, 0, 0, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, + 135, 136, 203, -484, 886, 0, 0, 0, 368, 0, + 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 76, 158, 159, 160, 161, 80, + 145, 146, 147, 126, 127, 128, 0, 129, 130, 131, + 132, 133, 134, 135, 136, 203, -484, 0, 0, 0, + 0, 368, 0, 0, 148, 0, 139, 140, 141, 142, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 146, 147, 0, 150, 151, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 156, 0, 0, 0, 157, 0, 148, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, + 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 157, 158, 159, 160, 79, 0, 0, -353, -353, - -353, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 76, 158, 159, 160, 161, 80, 0, 0, -354, -354, + -354, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 157, 158, 159, 160, 79, 11, + 0, 0, 0, 76, 158, 159, 160, 161, 80, 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 291, 0, 119, 0, - 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 326, - -227, 0, 0, 0, 138, 139, 140, 141, 142, 143, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 144, 145, 146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -617, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 156, 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, -111, 0, 119, 0, 0, -111, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 75, 327, 328, 159, 0, 326, 0, 0, 0, 0, - 138, 139, 140, 141, 142, 143, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4, 0, 144, 145, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 156, 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, 286, - 0, 119, 0, 0, 0, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 75, 327, 328, 159, + 69, 70, 71, 72, 73, 74, 75, 293, 0, 120, + 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, -484, 0, 0, 0, 0, + 368, 0, 0, 0, 0, 139, 140, 141, 142, 143, + 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 145, 146, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -618, 0, 0, + 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, + 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 157, 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, -111, 0, 120, 0, 0, + -111, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -486, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 0, 0, 119, 11, 12, - 13, 80, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, -624, 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, 0, 0, 119, 0, 0, - 0, 80, 0, -626, -626, -626, 0, 0, 0, 0, + 0, 3, 76, 329, 330, 160, 0, 328, -227, 0, + 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 0, 145, + 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -626, 0, 0, 0, 0, 0, 0, 0, 0, - -245, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, -626, -626, -626, 0, -626, -626, - -626, -626, -626, -626, -626, -626, -626, -626, 0, -626, - -626, -626, -626, -626, -626, -626, -626, -626, -626, -626, - -626, -626, -626, -626, 0, -626, -626, -626, -626, -626, - -626, -626, -626, -626, -626, -626, -626, -626, -626, -626, - -626, -626, -626, -626, -626, -626, -626, -626, -626, -626, - -626, -626, -626, -626, -626, -626, -626, -626, -626, -626, - -626, 0, 0, 0, 11, 12, 13, -626, 14, 15, + 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, + 35, 36, 37, 38, 157, 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, 355, 78, 79, 80, 0, 138, - 139, 140, 141, 142, 143, 642, 0, 0, 0, 0, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 0, - 0, 0, 0, 0, 0, 644, 0, 144, 145, 146, - 138, 139, 140, 141, 142, 143, 714, 0, 0, 0, - 147, 715, 716, 717, 718, 719, 720, 144, 145, 146, - 0, 147, 0, 0, 0, 0, 0, 0, 144, 721, - 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 723, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, + 74, 75, 288, 0, 120, 0, 0, 0, 81, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 76, + 329, 330, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 156, 0, -171, -171, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75, 327, 328, 159, 0, - 0, 0, 0, 0, 0, 0, 75, 327, 328, 159, + 0, 0, 0, 0, -487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 75, 327, 328, 159, - 0, 0, 0, 0, 0, 0, 0, 75, 724, 725, - 726, 11, 12, 13, 0, 14, 15, 16, 17, 18, + 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 3, 0, - 119, 0, 0, 0, 80, 0, 0, 0, 0, 0, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 0, + 0, 120, 11, 12, 13, 81, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, -625, 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, + 0, 0, 120, 0, 0, 0, 81, -627, -627, -627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -353, -353, -353, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -627, -627, + -627, 0, -627, -627, -627, -627, -627, -627, -627, -627, + -627, -627, 0, -627, -627, -627, -627, -627, -627, -627, + -627, -627, -627, -627, -627, -627, -627, -627, 0, -627, + -627, -627, -627, -627, -627, -627, -627, -627, -627, -627, + -627, -627, -627, -627, -627, -627, -627, -627, -627, -627, + -627, -627, -627, -627, -627, -627, -627, -627, -627, -627, + -627, -627, -627, -627, -627, -627, 784, 0, 0, 0, + 0, 328, -627, 0, 0, 0, 139, 140, 141, 142, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 3, 0, - 119, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, -245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 328, 0, 0, 0, 157, 139, + 140, 141, 142, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 0, 0, - 119, -353, -353, -353, 80, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 329, 330, 160, 11, 12, 13, + 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 157, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 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, 0, 79, + 80, 81, 0, 0, 0, 357, 76, 329, 330, 160, + 139, 140, 141, 142, 143, 144, 644, 0, 0, 0, + 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 0, 0, 0, 0, 0, 0, 646, 0, 145, 146, + 147, 139, 140, 141, 142, 143, 144, 716, 0, 0, + 0, 148, 717, 718, 719, 720, 721, 722, 145, 146, + 147, 0, 148, 0, 0, 0, 0, 0, 0, 145, + 723, 724, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 725, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, -171, -171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 329, 330, + 160, 0, 0, 0, 0, 0, 0, 0, 76, 329, + 330, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 329, + 330, 160, 0, 0, 0, 0, 0, 0, 0, 76, + 726, 727, 728, 11, 12, 13, 0, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 0, 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, 3, 0, 120, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 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, 0, - 0, 119, 8, 9, 10, 80, 0, 0, 0, 0, + 0, 0, 0, -354, -354, -354, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 0, 0, - 119, 11, 12, 13, 80, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 0, 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, 0, 0, - 119, 0, 0, 0, 80 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11, 12, 13, 0, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 0, 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, 3, 0, 120, 0, 0, 0, 81, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 12, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 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, 0, 0, 120, -354, -354, -354, 81, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, + 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 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, 0, 0, 120, 8, 9, + 10, 81, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, + 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 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, 0, 0, 120, 11, 12, + 13, 81, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 0, 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, 0, 0, 120, 0, + 0, 0, 81 }; static const short yycheck[] = { 0, - 0, 463, 3, 88, 105, 364, 495, 0, 366, 125, - 11, 12, 551, 301, 9, 10, 549, 18, 19, 20, + 0, 465, 3, 5, 106, 89, 497, 0, 368, 303, + 11, 12, 553, 126, 619, 623, 414, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 2, 446, 320, 412, 48, 49, 50, + 41, 42, 43, 5, 448, 403, 404, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 411, 652, 401, 402, 621, 403, - 404, 652, 405, 406, 407, 408, 8, 409, 410, 652, - 81, 81, 617, 24, 473, 892, 445, 782, 81, 0, - 785, 449, 3, 34, 19, 5, 7, 413, 99, 774, - 794, 5, 762, 672, 105, 203, 889, 5, 788, 892, - 208, 0, 210, 652, 115, 116, 117, 704, 21, 652, - 121, 25, 25, 704, 222, 1016, 1017, 9, 10, 214, - 5, 704, 898, 28, 493, 85, 137, 1080, 1081, 18, - 18, 25, 26, 144, 28, 24, 699, 86, 87, 44, - 25, 34, 21, 112, 18, 34, 25, 86, 87, 23, - 44, 41, 121, 24, 0, 704, 28, 3, 24, 5, - 81, 704, 979, 34, 981, 5, 56, 116, 117, 8, - 1123, 1100, 44, 1074, 53, 54, 1077, 1106, 882, 1108, - 885, 130, 81, 18, 105, 25, 979, 318, 981, 474, - 602, 690, 203, 21, 773, 137, 972, 776, 203, 24, - 121, 26, 500, 208, 603, 210, 891, 877, 893, 34, - 578, 132, 902, 86, 87, 108, 109, 222, 223, 1120, - 0, 24, 21, 3, 175, 176, 25, 7, 8, 9, - 10, 41, 601, 32, 33, 81, 175, 176, 364, 181, - 175, 176, 177, 560, 179, 180, 56, 189, 8, 95, - 96, 193, 98, 195, 623, 175, 176, 177, 575, 179, - 180, 175, 176, 177, 18, 179, 180, 175, 176, 177, - 21, 179, 180, 284, 25, 121, 652, 24, 289, 984, - 290, 26, 224, 28, 24, 583, 175, 176, 39, 300, - 301, 18, 303, 304, 21, 652, 23, 300, 137, 44, - 799, 81, 175, 176, 175, 176, 317, 652, 652, 652, - 652, 203, 323, 862, 317, 326, 208, 860, 210, 445, - 18, 6, 7, 21, 26, 105, 652, 422, 704, 627, - 222, 223, 34, 441, 345, 175, 176, 177, 22, 179, - 180, 121, 181, 24, 642, 18, 644, 704, 21, 912, - 34, 26, 132, 28, 193, 366, 195, 137, 24, 704, - 704, 704, 704, 24, 21, 26, 963, 493, 25, 44, - 21, 916, 963, 18, 25, 155, 345, 137, 704, 300, - 963, 21, 303, 304, 305, 224, 24, 27, 26, 8, - 9, 10, 49, 50, 24, 24, 317, 27, 49, 50, - 21, 181, 323, 21, 34, 16, 27, 25, 21, 189, - 779, 191, 25, 193, 963, 195, 714, 24, 21, 26, - 963, 181, 25, 203, 37, 38, 29, 437, 208, 189, - 210, 49, 50, 193, 16, 195, 441, 448, 51, 52, - 451, 16, 222, 223, 224, 448, 16, 458, 451, 460, - 18, 462, 463, 21, 465, 15, 21, 25, 24, 470, - 25, 27, 473, 24, 224, 26, 21, 598, 34, 480, - 25, 25, 26, 8, 28, 601, 18, 32, 33, 21, - 422, 492, 858, 34, 495, 18, 497, 39, 21, 500, - 44, 175, 176, 177, 22, 179, 180, 623, 344, 96, - 857, 98, 847, 848, 473, 849, 850, 22, 851, 852, - 853, 854, 22, 855, 856, 24, 29, 26, 137, 28, - 300, 40, 21, 303, 304, 305, 25, 448, 25, 55, - 451, 28, 21, 859, 85, 44, 25, 317, 47, 48, - 461, 19, 463, 323, 465, 175, 176, 21, 178, 441, - 560, 25, 473, 21, 922, 476, 1055, 25, 92, 480, - 49, 50, 181, 92, 1036, 575, 34, 35, 36, 580, - 189, 21, 583, 21, 193, 25, 195, 25, 18, 690, - 22, 21, 34, 422, 203, 596, 597, 963, 368, 208, - 24, 210, 603, 25, 26, 22, 376, 21, 378, 520, - 521, 25, 137, 222, 223, 224, 963, 22, 454, 175, - 176, 622, 178, 67, 68, 69, 627, 559, 963, 963, - 963, 963, 32, 33, 175, 176, 637, 638, 179, 180, - 5, 642, 26, 644, 603, 18, 18, 963, 21, 21, - 34, 21, 422, 25, 21, 25, 181, 191, 25, 24, - 25, 26, 21, 779, 189, 666, 25, 92, 193, 34, - 195, 441, 422, 674, 19, 676, 20, 447, 448, 680, - 681, 451, 18, 92, 685, 21, 37, 38, 689, 690, - 27, 461, 603, 463, 695, 465, 24, 813, 799, 224, - 51, 52, 23, 473, 21, 21, 476, 18, 25, 25, - 480, 999, 18, 714, 18, 24, 24, 26, 138, 139, - 140, 141, 142, 143, 21, 34, 18, 5, 25, 21, - 1089, 690, 22, 175, 176, 177, 695, 179, 180, 21, - 21, 511, 25, 25, 25, 21, 24, 25, 26, 25, - 520, 521, 18, 175, 176, 177, 34, 179, 180, 24, - 24, 26, 37, 38, 675, 25, 677, 18, 769, 34, - 21, 1130, 49, 50, 610, 686, 51, 52, 689, 690, - 34, 35, 36, 904, 24, 18, 26, 18, 28, 559, - 560, 175, 176, 177, 18, 179, 180, 798, 799, 21, - 801, 18, 572, 25, 44, 575, 576, 47, 48, 559, - 175, 176, 177, 422, 179, 180, 34, 35, 36, 18, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 19, 21, 441, 603, 368, 25, 9, 21, 25, 21, - 799, 25, 376, 25, 378, 21, 967, 37, 38, 25, - 11, 21, 97, 24, 99, 25, 101, 11, 103, 53, - 54, 51, 52, 108, 985, 88, 175, 176, 177, 990, - 179, 180, 181, 118, 24, 120, 21, 21, 648, 649, - 965, 25, 652, 42, 43, 1006, 19, 888, 799, 659, - 660, 1012, 662, 88, 895, 21, 19, 422, 809, 25, - 1021, 20, 21, 988, 19, 675, 23, 677, 21, 22, - 175, 176, 177, 447, 179, 180, 686, 162, 19, 689, - 690, 691, 78, 79, 80, 81, 82, 83, 84, 1050, - 1051, 27, 1053, 21, 704, 771, 25, 25, 774, 21, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 559, 119, 24, 121, 1055, 175, 176, 177, 21, 179, - 180, 22, 25, 1084, 132, 133, 21, 135, 18, 137, - 138, 24, 973, 1089, 21, 976, 22, 511, 398, 399, - 400, 25, 150, 976, 21, 11, 21, 23, 25, 1105, - 25, 992, 24, 994, 32, 33, 766, 24, 999, 992, - 24, 1002, 1003, 21, 1125, 21, 1006, 25, 21, 25, - 27, 21, 25, 25, 1130, 25, 34, 35, 36, 21, - 931, 932, 23, 25, 21, 20, 560, 21, 25, 799, - 20, 25, 21, 992, 559, 1036, 25, 1038, 1039, 809, - 19, 575, 576, 21, 289, 21, 19, 25, 293, 25, - 1050, 49, 50, 889, 1055, 891, 892, 893, 72, 73, - 74, 72, 73, 74, 21, 976, 311, 53, 54, 314, - 20, 21, 20, 21, 5, 8, 25, 322, 498, 24, - 325, 992, 21, 22, 995, 125, 1087, 27, 22, 1090, - 175, 176, 1093, 25, 24, 20, 20, 1090, 138, 139, - 140, 141, 142, 143, 18, 145, 146, 27, 25, 18, - 25, 27, 25, 21, 648, 649, 39, 29, 25, 25, - 24, 18, 40, 25, 88, 1036, 660, 24, 55, 25, - 24, 21, 29, 30, 31, 32, 33, 34, 25, 25, - 8, 9, 10, 979, 1055, 981, 1147, 23, 25, 46, - 47, 48, 18, 1154, 25, 18, 18, 691, 18, 88, - 21, 931, 932, 21, 1075, 1076, 88, 22, 20, 20, - 18, 180, 25, 70, 20, 25, 0, 88, 88, 1090, - 20, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 73, 27, 963, 27, 88, 88, 967, 0, 88, - 88, 446, 135, 81, 137, 323, 976, 989, 453, 763, - 1121, 1122, 1066, 458, 111, 460, 1014, 877, 909, 1120, - 990, 990, 992, 468, 828, 995, 1086, 472, 72, 73, - 74, 465, 1090, 583, 78, 79, 80, 81, 82, 83, - 84, 677, 675, 112, 689, 1015, 1016, 1017, 181, 10, - 799, 345, 223, 1060, 1024, 511, 189, 422, 704, 963, - 193, -1, 195, -1, -1, -1, 1036, -1, -1, 137, - 203, -1, -1, -1, -1, -1, -1, -1, 175, 176, - 177, 178, -1, -1, -1, 1055, -1, -1, -1, -1, - -1, 224, -1, -1, -1, 715, 716, 717, 718, 719, - 720, -1, -1, -1, 1074, 1075, 1076, 1077, -1, -1, - 1080, 1081, -1, 181, -1, -1, 1086, -1, -1, -1, - 1090, 189, -1, -1, 364, 193, -1, 195, -1, -1, - -1, -1, 577, -1, -1, 203, -1, -1, -1, -1, - 208, -1, 210, 8, 9, 10, -1, -1, -1, -1, - 1120, 1121, 1122, 1123, 222, 223, 224, 602, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, -1, -1, 621, 72, 73, 74, - -1, 626, -1, 78, 79, 80, 81, 82, 83, 84, - -1, -1, -1, 326, -1, -1, -1, -1, -1, -1, - -1, 334, 335, 336, 337, 445, -1, -1, -1, 654, - -1, -1, -1, -1, -1, -1, -1, -1, 8, 9, - 10, -1, 355, -1, 844, 845, 846, -1, -1, -1, - 358, -1, -1, 366, -1, -1, -1, -1, -1, -1, - -1, -1, 8, 9, 10, -1, -1, -1, -1, -1, - 383, -1, -1, 493, 382, -1, -1, -1, 498, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 727, -1, -1, -1, -1, -1, -1, 422, - 418, -1, -1, -1, -1, 24, 429, -1, 27, -1, - 29, 30, 31, 32, 33, 34, 926, -1, -1, 549, - -1, 551, -1, 553, 554, -1, 181, 46, 47, 48, - -1, -1, -1, -1, 189, -1, -1, -1, 193, -1, - 195, -1, -1, -1, -1, -1, -1, -1, 203, 204, - -1, 70, 787, 208, -1, 210, -1, 137, -1, -1, - -1, -1, -1, -1, 422, -1, -1, 222, 223, 224, - -1, 601, -1, 8, 9, 10, -1, -1, -1, -1, - -1, 137, -1, 441, -1, -1, -1, -1, -1, -1, - -1, -1, 111, 623, -1, -1, -1, -1, -1, -1, - -1, 181, -1, -1, -1, -1, -1, -1, -1, 189, - -1, -1, -1, 193, -1, 195, -1, -1, -1, -1, - -1, -1, 652, 203, -1, 181, -1, 550, 208, -1, - 210, -1, -1, 189, -1, -1, 559, 193, -1, 195, - -1, -1, 222, 223, 224, 880, 881, 203, -1, -1, - -1, -1, 208, 888, 210, -1, 175, 176, 177, 178, - -1, -1, -1, 8, 9, 10, 222, 223, 224, -1, - -1, -1, -1, -1, 704, -1, -1, 912, -1, -1, - -1, -1, -1, -1, -1, 715, 716, 717, 718, 719, - 720, 721, 722, -1, 617, -1, -1, -1, -1, -1, - -1, 559, 137, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 634, -1, -1, 642, - -1, 644, -1, -1, -1, -1, 381, 650, -1, -1, - 653, -1, -1, -1, -1, -1, -1, -1, -1, 974, - -1, -1, -1, -1, -1, -1, 181, -1, -1, 779, - -1, -1, -1, -1, 189, -1, -1, -1, 193, -1, - 195, 679, -1, -1, -1, -1, -1, 422, 203, -1, - -1, -1, -1, 208, -1, 210, -1, -1, -1, -1, - 703, -1, -1, 813, -1, -1, 441, 222, 223, 224, - -1, 714, 137, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1040, -1, -1, -1, -1, - -1, -1, -1, -1, 844, 845, 846, 847, 848, 849, - 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, - 860, -1, 862, -1, -1, -1, 181, -1, -1, -1, - -1, -1, 422, -1, 189, -1, -1, -1, 193, -1, - 195, -1, -1, -1, -1, -1, -1, -1, 203, -1, - -1, 441, -1, 208, 782, 210, 422, 785, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 222, 223, 224, - -1, -1, -1, -1, -1, 441, -1, -1, -1, -1, - -1, -1, -1, 1128, -1, -1, 926, -1, -1, -1, - -1, -1, -1, -1, 559, -1, 829, -1, -1, 827, - 828, -1, -1, -1, -1, 833, 834, 835, 836, 837, - 838, 839, 840, 841, 842, 843, -1, -1, -1, -1, - -1, -1, -1, 963, 18, -1, -1, -1, -1, -1, - 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 19, 46, 47, 48, -1, 24, 885, -1, -1, - -1, 29, 30, 31, 32, 33, 34, -1, -1, 559, - -1, -1, -1, -1, -1, -1, 70, 422, 46, 47, - 48, -1, -1, 916, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 559, -1, -1, 441, -1, -1, -1, - -1, -1, 70, 0, 1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 24, 961, -1, - -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, - -1, -1, -1, 111, -1, -1, -1, -1, 45, 1089, - -1, -1, -1, -1, -1, -1, 984, -1, -1, -1, - -1, -1, -1, -1, -1, 1105, -1, 422, -1, -1, - 67, 68, 69, -1, 71, -1, -1, -1, 75, 76, - 77, 175, 176, 177, 178, -1, 441, -1, -1, -1, - 1130, -1, 89, 90, 91, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 175, 176, 177, - 178, 108, 109, 110, 559, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, -1, 179, 180, 181, 0, 1, -1, -1, -1, + 61, 62, 63, 64, 8, 764, 2, 405, 406, 322, + 366, 86, 87, 790, 75, 407, 408, 409, 410, 475, + 796, 82, 82, 8, 9, 10, 654, 0, 654, 82, + 320, 451, 415, 701, 21, 413, 411, 412, 25, 100, + 5, 34, 654, 551, 204, 106, 86, 87, 18, 209, + 776, 211, 39, 654, 24, 116, 117, 118, 22, 784, + 25, 122, 787, 223, 34, 28, 18, 1082, 1083, 0, + 34, 215, 3, 900, 5, 674, 24, 138, 706, 26, + 706, 44, 24, 21, 145, 891, 34, 34, 894, 27, + 18, 447, 34, 21, 706, 139, 140, 141, 142, 143, + 144, 176, 177, 25, 26, 706, 28, 8, 884, 82, + 1125, 24, 894, 26, 176, 177, 178, 113, 180, 181, + 879, 0, 44, 41, 3, 5, 122, 904, 7, 8, + 9, 10, 24, 24, 138, 27, 176, 177, 56, 495, + 604, 692, 34, 204, 1102, 25, 654, 974, 502, 605, + 1108, 82, 1110, 138, 176, 177, 178, 28, 180, 181, + 580, 8, 887, 476, 8, 96, 97, 893, 99, 895, + 18, 9, 10, 44, 41, 981, 775, 983, 182, 778, + 9, 10, 85, 176, 177, 178, 190, 180, 181, 56, + 194, 122, 196, 366, 21, 562, 654, 182, 706, 981, + 26, 983, 28, 82, 21, 190, 176, 177, 25, 194, + 577, 196, 176, 177, 178, 24, 180, 181, 44, 204, + 205, 225, 6, 7, 209, 286, 211, 106, 176, 177, + 291, 585, 292, 24, 176, 177, 654, 138, 223, 224, + 225, 302, 303, 122, 305, 306, 914, 603, 706, 302, + 801, 19, 24, 918, 133, 26, 654, 28, 319, 138, + 18, 986, 654, 864, 325, 23, 319, 328, 24, 625, + 26, 654, 24, 44, 447, 629, 654, 156, 34, 654, + 424, 182, 24, 443, 176, 177, 347, 179, 706, 190, + 644, 138, 646, 194, 138, 196, 176, 177, 178, 18, + 180, 181, 21, 182, 23, 37, 38, 368, 706, 34, + 600, 190, 18, 192, 706, 194, 24, 196, 26, 51, + 52, 5, 495, 706, 225, 204, 34, 24, 706, 26, + 209, 706, 211, 25, 26, 182, 21, 965, 182, 965, + 5, 25, 27, 190, 223, 224, 225, 194, 18, 196, + 194, 347, 196, 965, 862, 24, 400, 401, 402, 24, + 25, 26, 716, 16, 965, 0, 204, 24, 3, 34, + 27, 209, 7, 211, 24, 204, 26, 34, 225, 439, + 209, 225, 211, 108, 109, 223, 224, 21, 24, 450, + 26, 25, 453, 34, 223, 224, 16, 450, 383, 460, + 453, 462, 860, 464, 465, 16, 467, 15, 176, 177, + 178, 472, 180, 181, 475, 346, 25, 26, 21, 28, + 424, 482, 25, 302, 16, 781, 305, 306, 307, 22, + 603, 849, 850, 494, 18, 44, 497, 21, 499, 424, + 319, 502, 18, 26, 85, 21, 325, 82, 97, 192, + 99, 34, 625, 851, 852, 21, 500, 965, 443, 25, + 22, 853, 854, 855, 856, 22, 32, 33, 176, 177, + 178, 106, 180, 181, 182, 29, 21, 40, 861, 475, + 25, 859, 857, 858, 176, 177, 178, 122, 180, 181, + 39, 370, 176, 177, 178, 55, 180, 181, 133, 378, + 18, 380, 562, 21, 924, 92, 1057, 965, 1018, 1019, + 92, 176, 177, 178, 1038, 180, 181, 577, 19, 176, + 177, 582, 179, 424, 585, 456, 32, 33, 86, 87, + 692, 8, 9, 10, 22, 176, 177, 598, 599, 180, + 181, 37, 38, 22, 605, 424, 21, 965, 21, 21, + 25, 22, 25, 25, 29, 51, 52, 561, 116, 117, + 32, 33, 25, 624, 443, 28, 1076, 965, 629, 1079, + 449, 450, 130, 965, 453, 24, 561, 424, 639, 640, + 424, 92, 965, 644, 463, 646, 465, 965, 467, 18, + 965, 19, 21, 176, 177, 178, 475, 180, 181, 478, + 24, 18, 26, 482, 21, 443, 20, 668, 781, 605, + 34, 92, 1122, 24, 443, 676, 906, 678, 27, 21, + 21, 682, 683, 25, 25, 23, 687, 370, 21, 5, + 691, 692, 25, 18, 513, 378, 697, 380, 18, 801, + 18, 21, 815, 522, 523, 25, 18, 1001, 24, 25, + 26, 53, 54, 49, 50, 716, 49, 50, 34, 21, + 561, 138, 18, 25, 21, 21, 24, 302, 25, 25, + 305, 306, 307, 717, 718, 719, 720, 721, 722, 969, + 22, 612, 561, 562, 319, 21, 18, 49, 50, 25, + 325, 18, 49, 50, 21, 574, 692, 987, 577, 578, + 21, 697, 992, 25, 25, 182, 449, 176, 177, 178, + 771, 180, 181, 190, 561, 25, 21, 194, 1008, 196, + 25, 24, 24, 26, 1014, 28, 605, 204, 49, 50, + 53, 54, 209, 1023, 211, 1091, 67, 68, 69, 800, + 801, 44, 803, 18, 47, 48, 223, 224, 225, 42, + 43, 21, 176, 177, 178, 25, 180, 181, 18, 20, + 21, 21, 1052, 1053, 21, 1055, 21, 22, 25, 21, + 513, 650, 651, 25, 21, 654, 1132, 18, 25, 18, + 37, 38, 661, 662, 18, 664, 21, 24, 21, 26, + 25, 28, 25, 21, 51, 52, 1086, 25, 677, 18, + 679, 19, 846, 847, 848, 801, 9, 44, 25, 688, + 47, 48, 691, 692, 693, 450, 21, 21, 453, 562, + 25, 25, 21, 967, 49, 50, 25, 706, 463, 890, + 465, 11, 467, 23, 577, 578, 897, 1127, 37, 38, + 475, 24, 773, 478, 21, 776, 990, 482, 25, 11, + 21, 21, 51, 52, 25, 25, 24, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 78, 79, 80, + 81, 82, 83, 84, 928, 32, 33, 522, 523, 768, + 98, 88, 100, 21, 102, 1057, 104, 25, 21, 21, + 21, 109, 25, 25, 25, 21, 21, 650, 651, 25, + 25, 119, 18, 121, 975, 21, 21, 978, 1091, 662, + 25, 21, 801, 21, 21, 978, 19, 25, 25, 34, + 35, 36, 811, 994, 1107, 996, 34, 35, 36, 19, + 1001, 994, 21, 1004, 1005, 21, 25, 424, 1008, 25, + 693, 88, 21, 21, 21, 163, 25, 25, 25, 1132, + 891, 21, 893, 894, 895, 25, 443, 21, 27, 21, + 605, 25, 8, 25, 21, 18, 24, 1038, 25, 1040, + 1041, 24, 21, 34, 35, 36, 29, 30, 31, 32, + 33, 34, 1052, 21, 126, 25, 1057, 25, 994, 34, + 35, 36, 19, 46, 47, 48, 19, 139, 140, 141, + 142, 143, 144, 22, 146, 147, 72, 73, 74, 21, + 8, 9, 10, 24, 23, 20, 21, 70, 1089, 53, + 54, 1092, 21, 22, 1095, 72, 73, 74, 21, 1092, + 20, 21, 677, 18, 679, 176, 177, 25, 22, 11, + 981, 24, 983, 688, 933, 934, 691, 692, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 111, 24, + 24, 27, 25, 23, 20, 19, 23, 20, 119, 19, + 121, 5, 21, 291, 561, 27, 965, 295, 1149, 25, + 969, 132, 133, 24, 135, 1156, 137, 138, 24, 978, + 136, 22, 138, 25, 20, 313, 20, 18, 316, 150, + 27, 18, 25, 992, 24, 994, 324, 25, 997, 327, + 72, 73, 74, 8, 9, 10, 78, 79, 80, 81, + 82, 83, 84, 176, 177, 178, 179, 27, 1017, 1018, + 1019, 21, 25, 25, 25, 29, 182, 1026, 39, 55, + 138, 40, 25, 88, 190, 25, 24, 18, 194, 1038, + 196, 25, 25, 72, 73, 74, 801, 25, 204, 78, + 79, 80, 81, 82, 83, 84, 811, 25, 1057, 21, + 18, 18, 21, 18, 88, 181, 88, 21, 88, 225, + 22, 20, 20, 88, 182, 25, 88, 1076, 1077, 1078, + 1079, 25, 190, 1082, 1083, 18, 194, 73, 196, 1088, + 88, 20, 20, 1092, 88, 27, 204, 27, 0, 88, + 0, 209, 82, 211, 325, 765, 991, 1068, 1016, 911, + 8, 9, 10, 879, 366, 223, 224, 225, 1122, 992, + 448, 830, 1088, 1122, 1123, 1124, 1125, 455, 585, 1092, + 677, 467, 460, 138, 462, 801, 679, 113, 691, 347, + 10, 224, 470, 1062, 513, 424, 474, 706, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 965, -1, -1, -1, -1, -1, + -1, -1, 328, -1, -1, -1, -1, 182, 933, 934, + 336, 337, 338, 339, -1, 190, -1, -1, -1, 194, + -1, 196, -1, -1, -1, 447, -1, -1, -1, 204, + -1, 357, -1, -1, 209, -1, 211, -1, -1, -1, + -1, -1, 368, -1, -1, -1, -1, -1, 223, 224, + 225, -1, -1, 978, -1, 360, 8, 9, 10, 385, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 994, + 138, -1, 997, 495, -1, -1, -1, -1, 500, 384, + -1, 579, -1, -1, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, -1, -1, -1, 424, -1, + -1, -1, -1, -1, -1, 431, 604, -1, -1, -1, + -1, -1, -1, 1038, 182, 420, -1, -1, -1, -1, + -1, -1, 190, -1, -1, 623, 194, -1, 196, 551, + 628, 553, 1057, 555, 556, -1, 204, 8, 9, 10, + -1, 209, -1, 211, -1, -1, 424, -1, 18, -1, + -1, -1, 1077, 1078, 24, 223, 224, 225, 656, 29, + 30, 31, 32, 33, 34, 443, -1, 1092, -1, -1, + -1, -1, -1, -1, -1, -1, 46, 47, 48, -1, + -1, 603, 24, 25, -1, -1, 138, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, -1, 1123, 1124, + 70, -1, -1, 625, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 559, -1, -1, -1, -1, 24, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, + -1, -1, -1, -1, -1, -1, 552, -1, 70, -1, + 182, 729, 654, -1, -1, 561, -1, -1, 190, -1, + -1, 111, 194, -1, 196, -1, -1, -1, -1, 424, + -1, -1, 204, -1, -1, -1, -1, 209, -1, 211, + -1, -1, -1, -1, -1, -1, -1, 138, 443, 111, + -1, 223, 224, 225, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 561, 706, -1, -1, -1, -1, -1, + -1, 789, -1, 619, -1, 717, 718, 719, 720, 721, + 722, 723, 724, -1, -1, -1, 176, 177, 178, 179, + -1, 182, -1, -1, -1, -1, -1, -1, 644, 190, + 646, -1, -1, 194, -1, 196, 652, -1, -1, 655, + -1, 636, -1, 204, 176, 177, 178, 179, 209, -1, + 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 223, 224, 225, -1, 424, -1, 24, 781, + -1, 27, -1, 29, 30, 31, 32, 33, 34, -1, + -1, -1, -1, -1, -1, 443, 681, -1, -1, 705, + 46, 47, 48, -1, 882, 883, 561, -1, -1, -1, + 716, -1, 890, 815, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 914, -1, -1, -1, + -1, -1, -1, -1, 846, 847, 848, 849, 850, 851, + 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, + 862, 24, 864, -1, 27, 111, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, 19, 20, -1, -1, + -1, 24, -1, 46, 47, 48, 29, 30, 31, 32, + 33, 34, 424, -1, -1, -1, -1, -1, 976, 784, + -1, -1, 787, 46, 47, 48, -1, 70, -1, -1, + -1, 443, -1, 561, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 831, 928, 70, -1, -1, + 176, 177, 178, 179, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 829, 830, -1, -1, 111, -1, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, + 845, -1, -1, 965, 1042, -1, -1, -1, 111, -1, + -1, -1, -1, 424, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 443, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 887, -1, -1, -1, -1, -1, 0, 1, + -1, -1, 918, 176, 177, 178, 179, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 561, + -1, -1, 24, 176, 177, 178, 179, -1, -1, -1, + -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1130, 45, -1, -1, -1, 963, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 67, 68, 69, -1, 71, -1, -1, -1, - 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, + -1, -1, -1, -1, -1, 67, 68, 69, -1, 71, + -1, -1, -1, 75, 76, 77, -1, -1, -1, 1091, + -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, + -1, 986, -1, -1, -1, 1107, -1, -1, -1, -1, + 561, -1, -1, -1, -1, -1, 108, 109, 110, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 1132, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, -1, 180, 181, + 182, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 1, 179, 180, 181, -1, 6, 7, - 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, - -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, 42, 43, -1, 45, 46, 47, - 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, - 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, - 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 1, -1, -1, -1, -1, 6, - 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, -1, -1, -1, -1, 24, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, + 69, -1, 71, -1, -1, -1, 75, 76, 77, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 108, + 109, 110, -1, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 1, 180, 181, 182, -1, 6, 7, 8, -1, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, 42, 43, -1, 45, 46, 47, 48, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, + -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 1, -1, -1, -1, -1, 6, 7, 8, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, -1, -1, -1, -1, 24, -1, -1, -1, -1, + 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, + -1, -1, -1, 42, 43, -1, -1, 46, 47, 48, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, + -1, -1, -1, -1, -1, -1, -1, -1, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 1, -1, -1, -1, -1, 6, + 7, 8, -1, -1, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, @@ -2083,25 +2110,7 @@ static const short yycheck[] = { 0, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 1, -1, -1, -1, -1, - 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, - 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 67, 68, 69, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 1, -1, -1, -1, + 177, 178, 179, 180, 181, 182, 1, -1, -1, -1, -1, 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, 25, -1, -1, -1, 29, 30, 31, 32, 33, 34, @@ -2119,64 +2128,82 @@ static const short yycheck[] = { 0, -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 175, 176, 177, 178, 179, 180, -1, -1, 1, -1, - -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, - -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, - 33, 34, -1, 175, 176, 177, 178, 179, 180, 42, - 43, 1, -1, 46, 47, 48, 6, 7, 8, -1, - -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, -1, 24, -1, -1, 70, -1, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, - -1, -1, 42, 43, -1, -1, 46, 47, 48, 92, - 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, - -1, -1, -1, -1, 107, -1, -1, -1, 111, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 176, 177, 178, 179, 180, 181, -1, -1, 1, + -1, -1, -1, -1, 6, 7, 8, -1, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, + -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, + 32, 33, 34, -1, 176, 177, 178, 179, 180, 181, + 42, 43, 1, -1, 46, 47, 48, 6, 7, 8, + -1, -1, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, -1, -1, -1, 24, -1, -1, 70, -1, + 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, + -1, -1, -1, 42, 43, -1, -1, 46, 47, 48, + 92, 93, 94, 95, 96, 97, 98, -1, -1, -1, + -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, + -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 92, 93, 94, 95, 96, 97, 98, -1, - -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, - -1, 111, -1, -1, -1, 19, 20, -1, -1, -1, - 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, - 34, -1, 175, 176, 177, 178, 179, 180, -1, -1, - 1, -1, 46, 47, 48, 6, 7, 8, -1, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, 70, -1, 29, 30, - 31, 32, 33, 34, -1, 175, 176, 177, 178, 179, - 180, 42, 43, 1, -1, 46, 47, 48, 6, 7, - 8, -1, -1, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, -1, 24, 111, -1, 70, - -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, 42, 43, -1, -1, 46, 47, - 48, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, - 111, -1, 70, -1, 19, -1, -1, -1, -1, 24, - -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, 175, 176, 177, 178, 93, 94, 95, 96, 97, - 98, 46, 47, 48, -1, -1, -1, -1, -1, 107, - -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, - -1, -1, -1, -1, 175, 176, 177, 178, 179, 180, + -1, -1, -1, 92, 93, 94, 95, 96, 97, 98, + -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, + -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 176, 177, 178, 179, 180, 181, -1, -1, 1, -1, -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, -1, -1, -1, -1, 24, 111, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, 175, 176, 177, - 178, 179, 180, 42, 43, -1, -1, 46, 47, 48, - -1, -1, -1, -1, 24, 25, -1, -1, -1, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, - -1, 70, -1, -1, -1, -1, 46, 47, 48, -1, + 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, + 29, 30, 31, 32, 33, 34, -1, 176, 177, 178, + 179, 180, 181, 42, 43, 1, -1, 46, 47, 48, + 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, + -1, 70, -1, 29, 30, 31, 32, 33, 34, -1, + -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, + 46, 47, 48, -1, 93, 94, 95, 96, 97, 98, + -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, + -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 175, 176, 177, 178, 93, 94, 95, 96, 97, 98, - 70, -1, -1, -1, -1, -1, -1, -1, 107, 6, - 7, 8, 111, 10, 11, 12, 13, 14, 15, 16, + -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, + -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 176, 177, 178, + 179, 180, 181, -1, -1, 1, -1, -1, -1, -1, + 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, + -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, + 176, 177, 178, 179, 180, 181, 42, 43, -1, -1, + 46, 47, 48, -1, -1, -1, -1, 24, 25, -1, + -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, -1, 70, -1, -1, -1, -1, 46, + 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + 96, 97, 98, 70, -1, -1, -1, -1, -1, -1, + -1, 107, 6, 7, 8, 111, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 34, -1, -1, -1, 111, -1, -1, -1, 42, 43, + -1, 45, 46, 47, 48, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 70, 71, -1, -1, + 176, 177, 178, 179, 180, 181, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, + 94, 95, 96, 97, 98, -1, -1, -1, -1, 176, + 177, 178, 179, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 6, + 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, 111, -1, -1, -1, 42, 43, -1, 45, 46, + -1, -1, -1, -1, -1, 42, 43, -1, 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 70, 71, -1, 175, 176, 177, 178, - 179, 180, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, - 97, 98, -1, -1, -1, 175, 176, 177, 178, -1, + 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, @@ -2184,163 +2211,165 @@ static const short yycheck[] = { 0, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 6, 7, 8, -1, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, 42, 43, -1, 45, 46, 47, 48, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 6, 7, 8, -1, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, - -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, - 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, - 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 6, 7, 8, - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 46, 47, 48, - 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, 70, -1, 29, 30, 31, 32, 33, 34, -1, + 177, 178, 179, 180, 181, 182, 6, 7, 8, -1, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, + 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, + -1, -1, 42, 43, -1, 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 46, 47, 48, -1, 93, 94, 95, 96, 97, 98, - -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, - -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, - 24, -1, -1, 27, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, -1, 175, 176, 177, 178, - 179, 180, 46, 47, 48, 6, 7, 8, -1, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, 70, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, 175, - 176, 177, 178, 179, 180, 46, 47, 48, 6, 7, - 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, -1, 24, 111, -1, 70, - -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 46, 47, - 48, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, - 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 175, 176, 177, 178, 93, 94, 95, 96, 97, - 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, - -1, -1, -1, 111, -1, -1, -1, -1, 24, 25, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, 175, 176, 177, 178, 179, 180, - 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, 93, 94, 95, 96, 97, 98, -1, + -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, 175, 176, 177, - 178, 179, 180, 46, 47, 48, 6, 7, 8, -1, + -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, -1, 24, 111, -1, 70, -1, 29, + 20, -1, -1, -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, 47, 48, -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, - 176, 177, 178, 93, 94, 95, 96, 97, 98, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 175, 176, 177, 178, 179, 180, -1, -1, + -1, -1, -1, 176, 177, 178, 179, 180, 181, -1, + -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, 176, 177, 178, 179, + 180, 181, 46, 47, 48, 6, 7, 8, -1, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, 24, -1, -1, 70, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 46, 47, 48, -1, 93, + 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, + -1, -1, -1, 107, -1, -1, -1, 111, -1, 70, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, + -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, + 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 176, 177, 178, 179, 180, 181, -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, 175, 176, 177, 178, 179, - 180, 46, 47, 48, 6, 7, 8, -1, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, + -1, -1, -1, -1, -1, 176, 177, 178, 179, 180, + 181, 46, 47, 48, 6, 7, 8, -1, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, 47, 48, -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 176, 177, 178, 179, 180, 181, -1, -1, -1, + 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, + -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, + -1, -1, -1, -1, 176, 177, 178, 179, 180, 181, + 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, + -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 46, 47, 48, -1, 93, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, + -1, 107, -1, -1, -1, 111, -1, 70, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, + 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, + -1, -1, -1, -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 175, 176, 177, 178, 179, 180, -1, -1, 67, 68, + 176, 177, 178, 179, 180, 181, -1, -1, 67, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 175, 176, 177, 178, 179, 180, 108, + -1, -1, -1, 176, 177, 178, 179, 180, 181, 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 18, -1, 177, -1, - -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, + 169, 170, 171, 172, 173, 174, 175, 18, -1, 178, + -1, -1, -1, 182, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 45, -1, -1, -1, -1, -1, 24, - 25, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, - -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, - -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 111, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 19, -1, 177, -1, -1, 24, 181, + -1, -1, -1, -1, 45, 19, -1, -1, -1, -1, + 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 71, -1, 46, 47, 48, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, + -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 108, 109, 110, + -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 111, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 19, -1, 178, -1, -1, + 24, 182, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, - 175, 176, 177, 178, -1, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 71, -1, 46, 47, 48, + -1, 45, 176, 177, 178, 179, -1, 24, 25, -1, + -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 71, -1, 46, + 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 108, 109, 110, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 111, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 19, -1, 178, -1, -1, -1, 182, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 45, 176, + 177, 178, 179, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, + -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, + -1, 178, 108, 109, 110, 182, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 111, 139, 140, 141, 142, 143, 144, 145, + 136, 137, 22, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 19, - -1, 177, -1, -1, -1, 181, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, 175, 176, 177, 178, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + -1, -1, 178, -1, -1, -1, 182, 67, 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, @@ -2348,116 +2377,115 @@ static const short yycheck[] = { 0, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, -1, -1, 177, 108, 109, - 110, 181, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 22, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, -1, -1, 177, -1, -1, - -1, 181, -1, 67, 68, 69, -1, -1, -1, -1, + 170, 171, 172, 173, 174, 175, 19, -1, -1, -1, + -1, 24, 182, -1, -1, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, - 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 34, -1, -1, -1, 108, 109, 110, -1, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, -1, -1, -1, 108, 109, 110, 181, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 24, 179, 180, 181, -1, 29, - 30, 31, 32, 33, 34, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, 46, 47, 48, -1, - -1, -1, -1, -1, -1, 24, -1, 46, 47, 48, - 29, 30, 31, 32, 33, 34, 24, -1, -1, -1, - 70, 29, 30, 31, 32, 33, 34, 46, 47, 48, - -1, 70, -1, -1, -1, -1, -1, -1, 46, 47, - 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 111, 70, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 111, -1, 42, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 175, 176, 177, 178, -1, - -1, -1, -1, -1, -1, -1, 175, 176, 177, 178, + -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 34, 24, -1, -1, -1, 111, 29, + 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 175, 176, 177, 178, - -1, -1, -1, -1, -1, -1, -1, 175, 176, 177, - 178, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 45, -1, - 177, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 67, 68, 69, -1, 71, -1, -1, -1, -1, -1, + 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 176, 177, 178, 179, 108, 109, 110, + -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 111, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, -1, 180, + 181, 182, -1, -1, -1, 24, 176, 177, 178, 179, + 29, 30, 31, 32, 33, 34, 24, -1, -1, -1, + -1, 29, 30, 31, 32, 33, 34, 46, 47, 48, + -1, -1, -1, -1, -1, -1, 24, -1, 46, 47, + 48, 29, 30, 31, 32, 33, 34, 24, -1, -1, + -1, 70, 29, 30, 31, 32, 33, 34, 46, 47, + 48, -1, 70, -1, -1, -1, -1, -1, -1, 46, + 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 111, 70, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 111, -1, -1, 42, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 45, -1, - 177, -1, -1, -1, 181, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 176, 177, 178, + 179, -1, -1, -1, -1, -1, -1, -1, 176, 177, + 178, 179, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, 177, + 178, 179, -1, -1, -1, -1, -1, -1, -1, 176, + 177, 178, 179, 108, 109, 110, -1, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 45, -1, 178, -1, -1, -1, 182, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, + -1, -1, -1, 67, 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, -1, -1, - 177, 67, 68, 69, 181, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 108, 109, 110, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 45, -1, 178, -1, -1, -1, 182, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, -1, - -1, 177, 89, 90, 91, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, -1, -1, - 177, 108, 109, 110, 181, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, -1, -1, - 177, -1, -1, -1, 181 + -1, -1, -1, -1, -1, 108, 109, 110, -1, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, -1, -1, 178, 67, 68, 69, 182, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 108, 109, 110, + -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, -1, -1, 178, 89, 90, + 91, 182, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 108, 109, 110, + -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, -1, -1, 178, 108, 109, + 110, 182, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, -1, -1, 178, -1, + -1, -1, 182 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/misc/bison.simple" +#line 3 "/gnu/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -2650,7 +2678,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/usr/share/misc/bison.simple" +#line 196 "/gnu/share/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 *. @@ -2955,52 +2983,52 @@ yyreduce: switch (yyn) { case 5: -#line 240 "cgrammar.y" +#line 242 "cgrammar.y" { uentry_clearDecl (); ; break;} case 6: -#line 241 "cgrammar.y" +#line 243 "cgrammar.y" { uentry_clearDecl (); ; break;} case 7: -#line 242 "cgrammar.y" +#line 244 "cgrammar.y" { uentry_clearDecl (); ; break;} case 8: -#line 243 "cgrammar.y" +#line 245 "cgrammar.y" { uentry_clearDecl (); ; break;} case 9: -#line 244 "cgrammar.y" +#line 246 "cgrammar.y" { uentry_clearDecl (); ; break;} case 10: -#line 245 "cgrammar.y" +#line 247 "cgrammar.y" { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ; break;} case 11: -#line 246 "cgrammar.y" +#line 248 "cgrammar.y" { uentry_clearDecl (); ; break;} case 12: -#line 250 "cgrammar.y" +#line 252 "cgrammar.y" { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ; break;} case 13: -#line 252 "cgrammar.y" +#line 254 "cgrammar.y" { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ; break;} case 14: -#line 255 "cgrammar.y" +#line 257 "cgrammar.y" { context_enterFunctionDecl (); ; break;} case 15: -#line 256 "cgrammar.y" +#line 258 "cgrammar.y" { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); context_exitFunctionDecl (); ; break;} case 16: -#line 261 "cgrammar.y" +#line 263 "cgrammar.y" { qtype qint = qtype_create (ctype_int); yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); @@ -3008,27 +3036,27 @@ case 16: ; break;} case 17: -#line 267 "cgrammar.y" +#line 269 "cgrammar.y" { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; break;} case 19: -#line 272 "cgrammar.y" +#line 274 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; break;} case 20: -#line 275 "cgrammar.y" +#line 277 "cgrammar.y" { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; break;} case 21: -#line 277 "cgrammar.y" +#line 279 "cgrammar.y" { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ; break;} case 22: -#line 279 "cgrammar.y" +#line 281 "cgrammar.y" { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ; break;} case 23: -#line 281 "cgrammar.y" +#line 283 "cgrammar.y" { int value; @@ -3046,12 +3074,12 @@ case 23: ; break;} case 24: -#line 297 "cgrammar.y" +#line 299 "cgrammar.y" { setCurrentParams (uentryList_missingParams); ; break;} case 25: -#line 300 "cgrammar.y" +#line 302 "cgrammar.y" { /* need to support globals and modifies here! */ ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), uentryList_makeMissingParams ()); @@ -3061,31 +3089,31 @@ case 25: ; break;} case 26: -#line 308 "cgrammar.y" +#line 310 "cgrammar.y" { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 27: -#line 311 "cgrammar.y" +#line 313 "cgrammar.y" { clearCurrentParams (); yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist)); context_popLoc (); ; break;} case 28: -#line 317 "cgrammar.y" +#line 319 "cgrammar.y" { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; break;} case 29: -#line 319 "cgrammar.y" +#line 321 "cgrammar.y" { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ; break;} case 30: -#line 321 "cgrammar.y" +#line 323 "cgrammar.y" { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ; break;} case 31: -#line 323 "cgrammar.y" +#line 325 "cgrammar.y" { int value; @@ -3103,12 +3131,12 @@ case 31: ; break;} case 32: -#line 339 "cgrammar.y" +#line 341 "cgrammar.y" { setCurrentParams (uentryList_missingParams); ; break;} case 33: -#line 342 "cgrammar.y" +#line 344 "cgrammar.y" { /* need to support globals and modifies here! */ ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), uentryList_makeMissingParams ()); @@ -3118,166 +3146,166 @@ case 33: ; break;} case 34: -#line 350 "cgrammar.y" +#line 352 "cgrammar.y" { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 35: -#line 353 "cgrammar.y" +#line 355 "cgrammar.y" { clearCurrentParams (); yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist)); context_popLoc (); ; break;} case 36: -#line 360 "cgrammar.y" +#line 362 "cgrammar.y" { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 37: -#line 361 "cgrammar.y" +#line 363 "cgrammar.y" { clearCurrentParams (); ; break;} case 38: -#line 362 "cgrammar.y" +#line 364 "cgrammar.y" { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ; break;} case 39: -#line 365 "cgrammar.y" +#line 367 "cgrammar.y" { exprNode_checkMacroBody (yyvsp[-1].expr); ; break;} case 40: -#line 366 "cgrammar.y" +#line 368 "cgrammar.y" { exprNode_checkIterBody (yyvsp[-1].expr); ; break;} case 41: -#line 367 "cgrammar.y" +#line 369 "cgrammar.y" { exprNode_checkIterEnd (yyvsp[-1].expr); ; break;} case 42: -#line 368 "cgrammar.y" +#line 370 "cgrammar.y" { exprChecks_checkEmptyMacroBody (); ; break;} case 43: -#line 371 "cgrammar.y" +#line 373 "cgrammar.y" { declareFunction (yyvsp[0].ntyp); ; break;} case 44: -#line 374 "cgrammar.y" +#line 376 "cgrammar.y" { setProcessingGlobMods (); ; break;} case 45: -#line 375 "cgrammar.y" +#line 377 "cgrammar.y" { clearProcessingGlobMods (); ; break;} case 46: -#line 378 "cgrammar.y" +#line 380 "cgrammar.y" { setProcessingGlobMods (); ; break;} case 47: -#line 379 "cgrammar.y" +#line 381 "cgrammar.y" { clearProcessingGlobMods (); ; break;} case 54: -#line 394 "cgrammar.y" +#line 396 "cgrammar.y" { ; ; break;} case 55: -#line 395 "cgrammar.y" +#line 397 "cgrammar.y" { ; ; break;} case 56: -#line 398 "cgrammar.y" +#line 400 "cgrammar.y" { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ; break;} case 57: -#line 401 "cgrammar.y" +#line 403 "cgrammar.y" { yyval.sr = uentry_getSref (yyvsp[0].entry); ; break;} case 58: -#line 402 "cgrammar.y" +#line 404 "cgrammar.y" { yyval.sr = globListUnrecognized (yyvsp[0].cname); ; break;} case 59: -#line 405 "cgrammar.y" +#line 407 "cgrammar.y" { yyval.typequal = qual_createUndef (); ; break;} case 60: -#line 406 "cgrammar.y" +#line 408 "cgrammar.y" { yyval.typequal = qual_createKilled (); ; break;} case 61: -#line 407 "cgrammar.y" +#line 409 "cgrammar.y" { yyval.typequal = qual_createOut (); ; break;} case 62: -#line 408 "cgrammar.y" +#line 410 "cgrammar.y" { yyval.typequal = qual_createIn (); ; break;} case 63: -#line 409 "cgrammar.y" +#line 411 "cgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} case 64: -#line 412 "cgrammar.y" +#line 414 "cgrammar.y" { yyval.tquallist = qualList_undefined; ; break;} case 65: -#line 413 "cgrammar.y" +#line 415 "cgrammar.y" { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ; break;} case 66: -#line 416 "cgrammar.y" +#line 418 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 67: -#line 418 "cgrammar.y" +#line 420 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 68: -#line 419 "cgrammar.y" +#line 421 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 69: -#line 421 "cgrammar.y" +#line 423 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 70: -#line 423 "cgrammar.y" +#line 425 "cgrammar.y" { setFunctionNoGlobals (); setFunctionModifies (sRefSet_single (sRef_makeNothing ())); ; break;} case 73: -#line 430 "cgrammar.y" +#line 432 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 74: -#line 432 "cgrammar.y" +#line 434 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 75: -#line 433 "cgrammar.y" +#line 435 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 76: -#line 435 "cgrammar.y" +#line 437 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 77: -#line 437 "cgrammar.y" +#line 439 "cgrammar.y" { setFunctionNoGlobals (); setFunctionModifies (sRefSet_single (sRef_makeNothing ())); ; break;} case 82: -#line 449 "cgrammar.y" +#line 451 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 83: -#line 454 "cgrammar.y" +#line 456 "cgrammar.y" { setFunctionModifies (yyvsp[0].srset); exitParamsTemp (); sRef_clearGlobalScopeSafe (); @@ -3285,14 +3313,14 @@ case 83: ; break;} case 84: -#line 462 "cgrammar.y" +#line 464 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 85: -#line 467 "cgrammar.y" +#line 469 "cgrammar.y" { setFunctionModifies (yyvsp[0].srset); exitParamsTemp (); sRef_clearGlobalScopeSafe (); @@ -3300,39 +3328,39 @@ case 85: ; break;} case 95: -#line 491 "cgrammar.y" +#line 493 "cgrammar.y" { yyval.sck = SP_ISONLY; ; break;} case 96: -#line 492 "cgrammar.y" +#line 494 "cgrammar.y" { yyval.sck = SP_ISOBSERVER; ; break;} case 97: -#line 493 "cgrammar.y" +#line 495 "cgrammar.y" { yyval.sck = SP_ISEXPOSED; ; break;} case 98: -#line 494 "cgrammar.y" +#line 496 "cgrammar.y" { yyval.sck = SP_ISDEPENDENT; ; break;} case 99: -#line 495 "cgrammar.y" +#line 497 "cgrammar.y" { yyval.sck = SP_ISOWNED; ; break;} case 100: -#line 496 "cgrammar.y" +#line 498 "cgrammar.y" { yyval.sck = SP_ISSHARED; ; break;} case 101: -#line 497 "cgrammar.y" +#line 499 "cgrammar.y" { yyval.sck = SP_ISNULL; ; break;} case 102: -#line 498 "cgrammar.y" +#line 500 "cgrammar.y" { yyval.sck = SP_ISNOTNULL; ; break;} case 103: -#line 502 "cgrammar.y" +#line 504 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); @@ -3340,7 +3368,7 @@ case 103: ; break;} case 104: -#line 508 "cgrammar.y" +#line 510 "cgrammar.y" { setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok); exitParamsTemp (); @@ -3349,7 +3377,7 @@ case 104: ; break;} case 105: -#line 515 "cgrammar.y" +#line 517 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); @@ -3357,7 +3385,7 @@ case 105: ; break;} case 106: -#line 521 "cgrammar.y" +#line 523 "cgrammar.y" { setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok); exitParamsTemp (); @@ -3366,7 +3394,7 @@ case 106: ; break;} case 107: -#line 530 "cgrammar.y" +#line 532 "cgrammar.y" { qtype qint = qtype_create (ctype_int); yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); @@ -3374,26 +3402,26 @@ case 107: ; break;} case 108: -#line 536 "cgrammar.y" +#line 538 "cgrammar.y" { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; break;} case 109: -#line 539 "cgrammar.y" +#line 541 "cgrammar.y" { checkDoneParams (); context_enterInnerContext (); ; break;} case 110: -#line 541 "cgrammar.y" +#line 543 "cgrammar.y" { exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; break;} case 111: -#line 546 "cgrammar.y" +#line 548 "cgrammar.y" { doneParams (); context_enterInnerContext (); ; break;} case 112: -#line 548 "cgrammar.y" +#line 550 "cgrammar.y" { context_exitInner (yyvsp[0].expr); exprNode_checkFunctionBody (yyvsp[0].expr); @@ -3401,7 +3429,7 @@ case 112: ; break;} case 113: -#line 556 "cgrammar.y" +#line 558 "cgrammar.y" { context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); exprNode_checkFunction (context_getHeader (), yyvsp[0].expr); @@ -3409,111 +3437,111 @@ case 113: ; break;} case 114: -#line 563 "cgrammar.y" +#line 565 "cgrammar.y" { yyval.srset = yyvsp[-2].srset; ; break;} case 115: -#line 564 "cgrammar.y" +#line 566 "cgrammar.y" { yyval.srset = sRefSet_new (); ; break;} case 116: -#line 567 "cgrammar.y" +#line 569 "cgrammar.y" { yyval.srset = yyvsp[-1].srset; ; break;} case 117: -#line 568 "cgrammar.y" +#line 570 "cgrammar.y" { yyval.srset = sRefSet_new (); ; break;} case 118: -#line 571 "cgrammar.y" +#line 573 "cgrammar.y" { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ; break;} case 119: -#line 572 "cgrammar.y" +#line 574 "cgrammar.y" { yyval.sr = fixModifiesId (yyvsp[0].cname); ; break;} case 120: -#line 573 "cgrammar.y" +#line 575 "cgrammar.y" { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ; break;} case 121: -#line 574 "cgrammar.y" +#line 576 "cgrammar.y" { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ; break;} case 122: -#line 575 "cgrammar.y" +#line 577 "cgrammar.y" { yyval.sr = modListPointer (yyvsp[0].sr); ; break;} case 123: -#line 576 "cgrammar.y" +#line 578 "cgrammar.y" { yyval.sr = yyvsp[-1].sr; ; break;} case 124: -#line 577 "cgrammar.y" +#line 579 "cgrammar.y" { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 125: -#line 578 "cgrammar.y" +#line 580 "cgrammar.y" { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 126: -#line 582 "cgrammar.y" +#line 584 "cgrammar.y" { yyval.sr = yyvsp[0].sr; ; break;} case 127: -#line 583 "cgrammar.y" +#line 585 "cgrammar.y" { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ; break;} case 128: -#line 587 "cgrammar.y" +#line 589 "cgrammar.y" { yyval.srset = sRefSet_single (yyvsp[0].sr); ; break;} case 129: -#line 588 "cgrammar.y" +#line 590 "cgrammar.y" { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ; break;} case 130: -#line 592 "cgrammar.y" +#line 594 "cgrammar.y" { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ; break;} case 131: -#line 594 "cgrammar.y" +#line 596 "cgrammar.y" { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ; break;} case 132: -#line 595 "cgrammar.y" +#line 597 "cgrammar.y" { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ; break;} case 133: -#line 596 "cgrammar.y" +#line 598 "cgrammar.y" { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ; break;} case 134: -#line 597 "cgrammar.y" +#line 599 "cgrammar.y" { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ; break;} case 135: -#line 598 "cgrammar.y" +#line 600 "cgrammar.y" { yyval.sr = yyvsp[-1].sr; ; break;} case 136: -#line 599 "cgrammar.y" +#line 601 "cgrammar.y" { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 137: -#line 601 "cgrammar.y" +#line 603 "cgrammar.y" { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 138: -#line 606 "cgrammar.y" +#line 608 "cgrammar.y" { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } else { yyval.srset = sRefSet_undefined; } ; break;} case 139: -#line 610 "cgrammar.y" +#line 612 "cgrammar.y" { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); @@ -3525,837 +3553,849 @@ case 139: ; break;} case 140: -#line 621 "cgrammar.y" +#line 623 "cgrammar.y" { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ; break;} case 141: -#line 622 "cgrammar.y" +#line 624 "cgrammar.y" { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ; break;} +case 142: +#line 625 "cgrammar.y" +{ yyval.expr = yyvsp[0].expr; ; + break;} case 143: -#line 624 "cgrammar.y" +#line 626 "cgrammar.y" { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} case 144: -#line 625 "cgrammar.y" +#line 627 "cgrammar.y" { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ; break;} case 145: -#line 626 "cgrammar.y" +#line 628 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 147: -#line 630 "cgrammar.y" +#line 632 "cgrammar.y" { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; break;} case 148: -#line 631 "cgrammar.y" +#line 633 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; break;} case 149: -#line 632 "cgrammar.y" +#line 634 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ; break;} case 150: -#line 633 "cgrammar.y" +#line 635 "cgrammar.y" { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; break;} case 151: -#line 634 "cgrammar.y" +#line 636 "cgrammar.y" { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 152: -#line 635 "cgrammar.y" +#line 637 "cgrammar.y" { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 153: -#line 636 "cgrammar.y" +#line 638 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 154: -#line 637 "cgrammar.y" +#line 639 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 155: -#line 640 "cgrammar.y" +#line 642 "cgrammar.y" { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 156: -#line 641 "cgrammar.y" +#line 643 "cgrammar.y" { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ; break;} case 158: -#line 645 "cgrammar.y" +#line 647 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 159: -#line 646 "cgrammar.y" +#line 648 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 160: -#line 647 "cgrammar.y" +#line 649 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 161: -#line 648 "cgrammar.y" +#line 650 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 162: -#line 649 "cgrammar.y" +#line 651 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 163: -#line 650 "cgrammar.y" +#line 652 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 164: -#line 651 "cgrammar.y" +#line 653 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 165: -#line 652 "cgrammar.y" +#line 654 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 166: -#line 653 "cgrammar.y" +#line 655 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 167: -#line 654 "cgrammar.y" +#line 656 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 168: -#line 657 "cgrammar.y" +#line 659 "cgrammar.y" { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ; break;} case 169: -#line 658 "cgrammar.y" +#line 660 "cgrammar.y" { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ; break;} case 170: -#line 662 "cgrammar.y" +#line 664 "cgrammar.y" { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ; break;} case 171: -#line 665 "cgrammar.y" +#line 667 "cgrammar.y" { context_setProtectVars (); ; break;} case 172: -#line 666 "cgrammar.y" +#line 668 "cgrammar.y" { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ; break;} case 173: -#line 669 "cgrammar.y" +#line 671 "cgrammar.y" { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ; break;} case 174: -#line 670 "cgrammar.y" +#line 672 "cgrammar.y" { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ; break;} case 175: -#line 671 "cgrammar.y" +#line 673 "cgrammar.y" { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ; break;} case 176: -#line 672 "cgrammar.y" +#line 674 "cgrammar.y" { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ; break;} case 178: -#line 677 "cgrammar.y" +#line 679 "cgrammar.y" { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; break;} case 180: -#line 681 "cgrammar.y" +#line 683 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 181: -#line 682 "cgrammar.y" +#line 684 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 182: -#line 683 "cgrammar.y" +#line 685 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 184: -#line 687 "cgrammar.y" +#line 689 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 185: -#line 688 "cgrammar.y" +#line 690 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 187: -#line 692 "cgrammar.y" +#line 694 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 188: -#line 693 "cgrammar.y" +#line 695 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 190: -#line 697 "cgrammar.y" +#line 699 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 191: -#line 698 "cgrammar.y" +#line 700 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 192: -#line 699 "cgrammar.y" +#line 701 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 193: -#line 700 "cgrammar.y" +#line 702 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 195: -#line 704 "cgrammar.y" +#line 706 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 196: -#line 705 "cgrammar.y" +#line 707 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 198: -#line 709 "cgrammar.y" +#line 711 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 200: -#line 713 "cgrammar.y" +#line 715 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 202: -#line 718 "cgrammar.y" +#line 720 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 204: -#line 723 "cgrammar.y" +#line 725 "cgrammar.y" { exprNode_produceGuards (yyvsp[-1].expr); context_enterAndClause (yyvsp[-1].expr); ; break;} case 205: -#line 727 "cgrammar.y" +#line 729 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); context_exitAndClause (yyval.expr, yyvsp[0].expr); ; break;} case 207: -#line 735 "cgrammar.y" +#line 737 "cgrammar.y" { exprNode_produceGuards (yyvsp[-1].expr); context_enterOrClause (yyvsp[-1].expr); ; break;} case 208: -#line 740 "cgrammar.y" +#line 742 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); context_exitOrClause (yyval.expr, yyvsp[0].expr); ; break;} case 210: -#line 747 "cgrammar.y" +#line 749 "cgrammar.y" { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; break;} case 211: -#line 748 "cgrammar.y" +#line 750 "cgrammar.y" { context_enterFalseClause (yyvsp[-4].expr); ; break;} case 212: -#line 749 "cgrammar.y" +#line 751 "cgrammar.y" { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 214: -#line 753 "cgrammar.y" +#line 755 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 215: -#line 754 "cgrammar.y" +#line 756 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 216: -#line 755 "cgrammar.y" +#line 757 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 217: -#line 756 "cgrammar.y" +#line 758 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 218: -#line 757 "cgrammar.y" +#line 759 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 219: -#line 758 "cgrammar.y" +#line 760 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 220: -#line 759 "cgrammar.y" +#line 761 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 221: -#line 760 "cgrammar.y" +#line 762 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 222: -#line 761 "cgrammar.y" +#line 763 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 223: -#line 762 "cgrammar.y" +#line 764 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 224: -#line 763 "cgrammar.y" +#line 765 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 226: -#line 767 "cgrammar.y" +#line 769 "cgrammar.y" { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 227: -#line 770 "cgrammar.y" +#line 772 "cgrammar.y" { yyval.expr = exprNode_undefined; ; break;} case 230: -#line 779 "cgrammar.y" +#line 781 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 231: -#line 780 "cgrammar.y" +#line 782 "cgrammar.y" { doVaDcl (); yyval.expr = exprNode_makeError (); ; break;} case 232: -#line 781 "cgrammar.y" +#line 783 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 233: -#line 784 "cgrammar.y" +#line 786 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 234: -#line 798 "cgrammar.y" +#line 800 "cgrammar.y" { setProcessingVars (yyvsp[-3].qtyp); processNamedDecl (yyvsp[-1].ntyp); ; break;} case 235: -#line 801 "cgrammar.y" +#line 803 "cgrammar.y" { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ; break;} case 236: -#line 803 "cgrammar.y" +#line 805 "cgrammar.y" { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ; break;} case 237: -#line 806 "cgrammar.y" +#line 808 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); unsetProcessingVars (); ; break;} case 238: -#line 810 "cgrammar.y" +#line 812 "cgrammar.y" { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ; break;} case 239: -#line 811 "cgrammar.y" +#line 813 "cgrammar.y" { processNamedDecl (yyvsp[-2].ntyp); ; break;} case 240: -#line 812 "cgrammar.y" +#line 814 "cgrammar.y" { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ; break;} case 241: -#line 816 "cgrammar.y" +#line 818 "cgrammar.y" { setProcessingTypedef (yyvsp[0].qtyp); ; break;} case 242: -#line 817 "cgrammar.y" +#line 819 "cgrammar.y" { unsetProcessingTypedef (); ; break;} case 243: -#line 818 "cgrammar.y" +#line 820 "cgrammar.y" { /* in the ANSI grammar, semantics unclear */ ; break;} case 244: -#line 819 "cgrammar.y" +#line 821 "cgrammar.y" { /* in the ANSI grammar, semantics unclear */ ; break;} case 245: -#line 822 "cgrammar.y" +#line 824 "cgrammar.y" { g_expectingTypeName = TRUE; ; break;} case 246: -#line 825 "cgrammar.y" +#line 827 "cgrammar.y" { g_expectingTypeName = TRUE; context_pushLoc (); ; break;} case 247: -#line 828 "cgrammar.y" +#line 830 "cgrammar.y" { ; ; break;} case 248: -#line 831 "cgrammar.y" +#line 833 "cgrammar.y" { ; ; break;} case 249: -#line 832 "cgrammar.y" +#line 834 "cgrammar.y" { ; ; break;} case 250: -#line 835 "cgrammar.y" +#line 837 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 251: -#line 836 "cgrammar.y" +#line 838 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ; break;} +case 252: +#line 841 "cgrammar.y" +{ yyval.expr = yyvsp[0].expr; ; + break;} case 253: -#line 840 "cgrammar.y" +#line 842 "cgrammar.y" { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ; break;} case 254: -#line 841 "cgrammar.y" +#line 843 "cgrammar.y" { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ; break;} case 255: -#line 846 "cgrammar.y" +#line 848 "cgrammar.y" { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 256: -#line 848 "cgrammar.y" +#line 850 "cgrammar.y" { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ; break;} case 257: -#line 856 "cgrammar.y" +#line 858 "cgrammar.y" { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ; break;} case 258: -#line 857 "cgrammar.y" +#line 859 "cgrammar.y" { yyval.typequal = qual_createInline (); ; break;} case 259: -#line 858 "cgrammar.y" +#line 860 "cgrammar.y" { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ; break;} case 260: -#line 859 "cgrammar.y" +#line 861 "cgrammar.y" { yyval.typequal = qual_createAuto (); ; break;} case 261: -#line 860 "cgrammar.y" +#line 862 "cgrammar.y" { yyval.typequal = qual_createRegister (); ; break;} case 262: -#line 863 "cgrammar.y" +#line 865 "cgrammar.y" { yyval.typequal = qual_createConst (); ; break;} case 263: -#line 864 "cgrammar.y" +#line 866 "cgrammar.y" { yyval.typequal = qual_createVolatile (); ; break;} case 264: -#line 865 "cgrammar.y" +#line 867 "cgrammar.y" { yyval.typequal = qual_createOut (); ; break;} case 265: -#line 866 "cgrammar.y" +#line 868 "cgrammar.y" { yyval.typequal = qual_createIn (); ; break;} case 266: -#line 867 "cgrammar.y" +#line 869 "cgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} case 267: -#line 868 "cgrammar.y" +#line 870 "cgrammar.y" { yyval.typequal = qual_createSpecial (); ; break;} case 268: -#line 869 "cgrammar.y" +#line 871 "cgrammar.y" { yyval.typequal = qual_createOwned (); ; break;} case 269: -#line 870 "cgrammar.y" +#line 872 "cgrammar.y" { yyval.typequal = qual_createDependent (); ; break;} case 270: -#line 871 "cgrammar.y" +#line 873 "cgrammar.y" { yyval.typequal = qual_createYield (); ; break;} case 271: -#line 872 "cgrammar.y" +#line 874 "cgrammar.y" { yyval.typequal = qual_createTemp (); ; break;} case 272: -#line 873 "cgrammar.y" +#line 875 "cgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 273: -#line 874 "cgrammar.y" +#line 876 "cgrammar.y" { yyval.typequal = qual_createKeep (); ; break;} case 274: -#line 875 "cgrammar.y" +#line 877 "cgrammar.y" { yyval.typequal = qual_createKept (); ; break;} case 275: -#line 876 "cgrammar.y" +#line 878 "cgrammar.y" { yyval.typequal = qual_createShared (); ; break;} case 276: -#line 877 "cgrammar.y" +#line 879 "cgrammar.y" { yyval.typequal = qual_createUnique (); ; break;} case 277: -#line 878 "cgrammar.y" +#line 880 "cgrammar.y" { yyval.typequal = qual_createExits (); ; break;} case 278: -#line 879 "cgrammar.y" +#line 881 "cgrammar.y" { yyval.typequal = qual_createMayExit (); ; break;} case 279: -#line 880 "cgrammar.y" +#line 882 "cgrammar.y" { yyval.typequal = qual_createTrueExit (); ; break;} case 280: -#line 881 "cgrammar.y" +#line 883 "cgrammar.y" { yyval.typequal = qual_createFalseExit (); ; break;} case 281: -#line 882 "cgrammar.y" +#line 884 "cgrammar.y" { yyval.typequal = qual_createNeverExit (); ; break;} case 282: -#line 883 "cgrammar.y" +#line 885 "cgrammar.y" { yyval.typequal = qual_createNull (); ; break;} case 283: -#line 884 "cgrammar.y" +#line 886 "cgrammar.y" { yyval.typequal = qual_createRelNull (); ; break;} case 284: -#line 885 "cgrammar.y" +#line 887 "cgrammar.y" { yyval.typequal = qual_createReturned (); ; break;} case 285: -#line 886 "cgrammar.y" +#line 888 "cgrammar.y" { yyval.typequal = qual_createExposed (); ; break;} case 286: -#line 887 "cgrammar.y" +#line 889 "cgrammar.y" { yyval.typequal = qual_createObserver (); ; break;} case 287: -#line 888 "cgrammar.y" +#line 890 "cgrammar.y" { yyval.typequal = qual_createChecked (); ; break;} case 288: -#line 889 "cgrammar.y" +#line 891 "cgrammar.y" { yyval.typequal = qual_createCheckMod (); ; break;} case 289: -#line 890 "cgrammar.y" +#line 892 "cgrammar.y" { yyval.typequal = qual_createUnchecked (); ; break;} case 290: -#line 891 "cgrammar.y" +#line 893 "cgrammar.y" { yyval.typequal = qual_createCheckedStrict (); ; break;} case 291: -#line 892 "cgrammar.y" +#line 894 "cgrammar.y" { yyval.typequal = qual_createTrueNull (); ; break;} case 292: -#line 893 "cgrammar.y" +#line 895 "cgrammar.y" { yyval.typequal = qual_createFalseNull (); ; break;} case 293: -#line 894 "cgrammar.y" +#line 896 "cgrammar.y" { yyval.typequal = qual_createUnused (); ; break;} case 294: -#line 895 "cgrammar.y" +#line 897 "cgrammar.y" { yyval.typequal = qual_createExternal (); ; break;} case 295: -#line 896 "cgrammar.y" +#line 898 "cgrammar.y" { yyval.typequal = qual_createSef (); ; break;} case 296: -#line 897 "cgrammar.y" +#line 899 "cgrammar.y" { yyval.typequal = qual_createAbstract (); ; break;} case 297: -#line 898 "cgrammar.y" +#line 900 "cgrammar.y" { yyval.typequal = qual_createConcrete (); ; break;} case 298: -#line 899 "cgrammar.y" +#line 901 "cgrammar.y" { yyval.typequal = qual_createMutable (); ; break;} case 299: -#line 900 "cgrammar.y" +#line 902 "cgrammar.y" { yyval.typequal = qual_createImmutable (); ; break;} case 300: -#line 901 "cgrammar.y" +#line 903 "cgrammar.y" { yyval.typequal = qual_createNotNull (); ; break;} case 301: -#line 902 "cgrammar.y" +#line 904 "cgrammar.y" { yyval.typequal = qual_createRefCounted (); ; break;} case 302: -#line 903 "cgrammar.y" +#line 905 "cgrammar.y" { yyval.typequal = qual_createRefs (); ; break;} case 303: -#line 904 "cgrammar.y" +#line 906 "cgrammar.y" { yyval.typequal = qual_createKillRef (); ; break;} case 304: -#line 905 "cgrammar.y" +#line 907 "cgrammar.y" { yyval.typequal = qual_createRelDef (); ; break;} case 305: -#line 906 "cgrammar.y" +#line 908 "cgrammar.y" { yyval.typequal = qual_createNewRef (); ; break;} case 306: -#line 907 "cgrammar.y" +#line 909 "cgrammar.y" { yyval.typequal = qual_createTempRef (); ; break;} case 307: #line 910 "cgrammar.y" -{ yyval.typequal = qual_createShort (); ; +{ yyval.typequal = qual_createNullTerminated (); ; break;} case 308: -#line 911 "cgrammar.y" -{ yyval.typequal = qual_createLong (); ; +#line 913 "cgrammar.y" +{ yyval.typequal = qual_createShort (); ; break;} case 309: -#line 912 "cgrammar.y" -{ yyval.typequal = qual_createSigned (); ; +#line 914 "cgrammar.y" +{ yyval.typequal = qual_createLong (); ; break;} case 310: -#line 913 "cgrammar.y" +#line 915 "cgrammar.y" +{ yyval.typequal = qual_createSigned (); ; + break;} +case 311: +#line 916 "cgrammar.y" { yyval.typequal = qual_createUnsigned (); ; break;} -case 317: -#line 922 "cgrammar.y" +case 318: +#line 925 "cgrammar.y" { yyval.ctyp = ctype_unknown; ; break;} -case 318: -#line 923 "cgrammar.y" +case 319: +#line 926 "cgrammar.y" { yyval.ctyp = ctype_anyintegral; ; break;} -case 319: -#line 924 "cgrammar.y" +case 320: +#line 927 "cgrammar.y" { yyval.ctyp = ctype_unsignedintegral; ; break;} -case 320: -#line 925 "cgrammar.y" +case 321: +#line 928 "cgrammar.y" { yyval.ctyp = ctype_signedintegral; ; break;} -case 324: -#line 929 "cgrammar.y" -{ yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ; - break;} case 325: -#line 933 "cgrammar.y" -{ yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ; +#line 932 "cgrammar.y" +{ yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ; break;} case 326: #line 936 "cgrammar.y" -{ yyval.qtyp = yyvsp[0].qtyp; ; +{ yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ; break;} case 327: -#line 938 "cgrammar.y" -{ yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ; +#line 939 "cgrammar.y" +{ yyval.qtyp = yyvsp[0].qtyp; ; break;} -case 329: -#line 943 "cgrammar.y" -{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ; +case 328: +#line 941 "cgrammar.y" +{ yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ; break;} case 330: #line 946 "cgrammar.y" -{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; +{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ; break;} case 331: -#line 947 "cgrammar.y" +#line 949 "cgrammar.y" { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; break;} case 332: -#line 948 "cgrammar.y" -{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ; +#line 950 "cgrammar.y" +{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; break;} case 333: #line 951 "cgrammar.y" -{ yyval.qtyp = qtype_unknown (); ; +{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ; break;} case 334: -#line 952 "cgrammar.y" -{ yyval.qtyp = yyvsp[0].qtyp; ; +#line 954 "cgrammar.y" +{ yyval.qtyp = qtype_unknown (); ; break;} case 335: #line 955 "cgrammar.y" -{ sRef_setGlobalScopeSafe (); ; +{ yyval.qtyp = yyvsp[0].qtyp; ; break;} case 336: -#line 957 "cgrammar.y" -{ sRef_clearGlobalScopeSafe (); ; +#line 958 "cgrammar.y" +{ sRef_setGlobalScopeSafe (); ; break;} case 337: -#line 959 "cgrammar.y" -{ yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ; +#line 960 "cgrammar.y" +{ sRef_clearGlobalScopeSafe (); ; break;} case 338: -#line 960 "cgrammar.y" -{ sRef_setGlobalScopeSafe (); ; +#line 962 "cgrammar.y" +{ yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ; break;} case 339: -#line 962 "cgrammar.y" -{ sRef_clearGlobalScopeSafe (); ; +#line 963 "cgrammar.y" +{ sRef_setGlobalScopeSafe (); ; break;} case 340: -#line 964 "cgrammar.y" -{ yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ; +#line 965 "cgrammar.y" +{ sRef_clearGlobalScopeSafe (); ; break;} case 341: -#line 966 "cgrammar.y" -{ yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ; +#line 967 "cgrammar.y" +{ yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ; break;} case 342: -#line 968 "cgrammar.y" -{ yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ; +#line 969 "cgrammar.y" +{ yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ; break;} case 343: -#line 969 "cgrammar.y" -{ sRef_setGlobalScopeSafe (); ; +#line 971 "cgrammar.y" +{ yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ; break;} case 344: -#line 971 "cgrammar.y" -{ sRef_clearGlobalScopeSafe (); ; +#line 972 "cgrammar.y" +{ sRef_setGlobalScopeSafe (); ; break;} case 345: -#line 973 "cgrammar.y" -{ yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ; +#line 974 "cgrammar.y" +{ sRef_clearGlobalScopeSafe (); ; break;} case 346: -#line 974 "cgrammar.y" -{ sRef_setGlobalScopeSafe (); ; +#line 976 "cgrammar.y" +{ yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ; break;} case 347: -#line 976 "cgrammar.y" -{ sRef_clearGlobalScopeSafe (); ; +#line 977 "cgrammar.y" +{ sRef_setGlobalScopeSafe (); ; break;} case 348: -#line 978 "cgrammar.y" -{ yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ; +#line 979 "cgrammar.y" +{ sRef_clearGlobalScopeSafe (); ; break;} case 349: -#line 980 "cgrammar.y" -{ yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ; +#line 981 "cgrammar.y" +{ yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ; break;} case 350: -#line 982 "cgrammar.y" -{ yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ; +#line 983 "cgrammar.y" +{ yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ; break;} case 351: -#line 983 "cgrammar.y" -{ yyval.ctyp = handleStruct (yyvsp[-1].cname); ; +#line 985 "cgrammar.y" +{ yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ; break;} case 352: -#line 984 "cgrammar.y" -{ yyval.ctyp = handleUnion (yyvsp[-1].cname); ; +#line 986 "cgrammar.y" +{ yyval.ctyp = handleStruct (yyvsp[-1].cname); ; break;} case 353: #line 987 "cgrammar.y" -{ g_expectingTypeName = FALSE; ; +{ yyval.ctyp = handleUnion (yyvsp[-1].cname); ; break;} -case 355: -#line 991 "cgrammar.y" -{ yyval.flist = uentryList_undefined; /* bogus! */ ; +case 354: +#line 990 "cgrammar.y" +{ g_expectingTypeName = FALSE; ; break;} case 356: -#line 992 "cgrammar.y" -{ yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ; +#line 994 "cgrammar.y" +{ yyval.flist = uentryList_undefined; /* bogus! */ ; break;} case 357: -#line 996 "cgrammar.y" -{ yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ; +#line 995 "cgrammar.y" +{ yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ; break;} case 358: -#line 998 "cgrammar.y" -{ yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ; +#line 999 "cgrammar.y" +{ yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ; break;} case 359: -#line 1002 "cgrammar.y" -{ yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ; +#line 1001 "cgrammar.y" +{ yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ; break;} case 360: -#line 1004 "cgrammar.y" -{ yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ; +#line 1005 "cgrammar.y" +{ yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ; break;} case 361: #line 1007 "cgrammar.y" -{ yyval.ntyp = yyvsp[0].ntyp; ; +{ yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ; break;} case 362: -#line 1008 "cgrammar.y" -{ yyval.ntyp = idDecl_undefined; ; +#line 1010 "cgrammar.y" +{ yyval.ntyp = yyvsp[0].ntyp; ; break;} case 363: -#line 1009 "cgrammar.y" -{ yyval.ntyp = yyvsp[-3].ntyp; ; +#line 1011 "cgrammar.y" +{ yyval.ntyp = idDecl_undefined; ; break;} case 364: -#line 1014 "cgrammar.y" -{ yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ; +#line 1012 "cgrammar.y" +{ yyval.ntyp = yyvsp[-3].ntyp; ; break;} case 365: -#line 1015 "cgrammar.y" -{ context_pushLoc (); ; +#line 1017 "cgrammar.y" +{ yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ; break;} case 366: -#line 1016 "cgrammar.y" -{ context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ; +#line 1018 "cgrammar.y" +{ context_pushLoc (); ; break;} case 367: -#line 1017 "cgrammar.y" -{ yyval.ctyp = handleEnum (yyvsp[-1].cname); ; +#line 1019 "cgrammar.y" +{ context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ; break;} case 368: -#line 1021 "cgrammar.y" -{ yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ; +#line 1020 "cgrammar.y" +{ yyval.ctyp = handleEnum (yyvsp[-1].cname); ; break;} case 369: -#line 1023 "cgrammar.y" +#line 1024 "cgrammar.y" +{ yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ; + break;} +case 370: +#line 1026 "cgrammar.y" { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ; break;} -case 371: -#line 1028 "cgrammar.y" +case 372: +#line 1031 "cgrammar.y" { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown); usymtab_supGlobalEntry (ue); yyval.cname = yyvsp[0].cname; ; break;} -case 372: -#line 1033 "cgrammar.y" +case 373: +#line 1036 "cgrammar.y" { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr); usymtab_supGlobalEntry (ue); yyval.cname = yyvsp[-3].cname; ; break;} -case 374: -#line 1040 "cgrammar.y" +case 375: +#line 1043 "cgrammar.y" { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ; break;} -case 375: -#line 1042 "cgrammar.y" +case 376: +#line 1045 "cgrammar.y" { qtype qt = qtype_unknown (); @@ -4363,92 +4403,92 @@ case 375: yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt); ; break;} -case 376: -#line 1049 "cgrammar.y" -{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; - break;} -case 378: -#line 1054 "cgrammar.y" +case 377: +#line 1052 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; break;} case 379: #line 1057 "cgrammar.y" -{ yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ; +{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; break;} case 380: -#line 1058 "cgrammar.y" -{ yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ; +#line 1060 "cgrammar.y" +{ yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ; break;} case 381: #line 1061 "cgrammar.y" -{ /* ignored for now */; ; +{ yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ; break;} case 382: -#line 1062 "cgrammar.y" -{ ; ; +#line 1064 "cgrammar.y" +{ /* ignored for now */; ; break;} case 383: #line 1065 "cgrammar.y" { ; ; break;} case 384: -#line 1066 "cgrammar.y" +#line 1068 "cgrammar.y" { ; ; break;} case 385: #line 1069 "cgrammar.y" -{ yyval.count = 1; ; +{ ; ; break;} case 386: -#line 1070 "cgrammar.y" +#line 1072 "cgrammar.y" { yyval.count = 1; ; break;} case 387: -#line 1071 "cgrammar.y" -{ yyval.count = 1 + yyvsp[0].count; ; +#line 1073 "cgrammar.y" +{ yyval.count = 1; ; break;} case 388: -#line 1072 "cgrammar.y" +#line 1074 "cgrammar.y" { yyval.count = 1 + yyvsp[0].count; ; break;} -case 390: -#line 1076 "cgrammar.y" -{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; +case 389: +#line 1075 "cgrammar.y" +{ yyval.count = 1 + yyvsp[0].count; ; break;} case 391: #line 1079 "cgrammar.y" -{ yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; +{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; break;} case 392: -#line 1080 "cgrammar.y" -{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; +#line 1082 "cgrammar.y" +{ yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; break;} case 393: #line 1083 "cgrammar.y" -{ yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ; +{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; break;} -case 395: -#line 1085 "cgrammar.y" -{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; +case 394: +#line 1086 "cgrammar.y" +{ yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ; break;} case 396: #line 1088 "cgrammar.y" -{ storeLoc (); ; +{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; break;} case 397: -#line 1088 "cgrammar.y" -{ yyval.entrylist = uentryList_single (yyvsp[0].oentry); ; +#line 1091 "cgrammar.y" +{ storeLoc (); ; break;} case 398: -#line 1089 "cgrammar.y" -{ storeLoc (); ; +#line 1091 "cgrammar.y" +{ yyval.entrylist = uentryList_single (yyvsp[0].oentry); ; break;} case 399: -#line 1090 "cgrammar.y" -{ yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ; +#line 1092 "cgrammar.y" +{ storeLoc (); ; break;} case 400: -#line 1094 "cgrammar.y" +#line 1093 "cgrammar.y" +{ yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ; + break;} +case 401: +#line 1097 "cgrammar.y" { if (isFlipOldStyle ()) { @@ -4461,8 +4501,8 @@ case 400: yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); ; break;} -case 401: -#line 1106 "cgrammar.y" +case 402: +#line 1109 "cgrammar.y" { idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ()); @@ -4477,382 +4517,382 @@ case 401: idDecl_free (tparam); ; break;} -case 403: -#line 1122 "cgrammar.y" -{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ; - break;} case 404: #line 1125 "cgrammar.y" -{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ; +{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ; break;} -case 406: -#line 1127 "cgrammar.y" -{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ; +case 405: +#line 1128 "cgrammar.y" +{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ; break;} case 407: #line 1130 "cgrammar.y" -{ yyval.ctyp = ctype_unknown; ; +{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ; break;} -case 409: -#line 1135 "cgrammar.y" -{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ; +case 408: +#line 1133 "cgrammar.y" +{ yyval.ctyp = ctype_unknown; ; break;} case 410: -#line 1136 "cgrammar.y" -{ yyval.ctyp = ctype_makeArray (ctype_unknown); ; +#line 1138 "cgrammar.y" +{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ; break;} case 411: -#line 1137 "cgrammar.y" +#line 1139 "cgrammar.y" { yyval.ctyp = ctype_makeArray (ctype_unknown); ; break;} case 412: -#line 1138 "cgrammar.y" -{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ; +#line 1140 "cgrammar.y" +{ yyval.ctyp = ctype_makeArray (ctype_unknown); ; break;} case 413: -#line 1139 "cgrammar.y" -{ yyval.ctyp = ctype_makeArray (yyvsp[-3].ctyp); ; +#line 1141 "cgrammar.y" +{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ; break;} case 414: -#line 1141 "cgrammar.y" -{ yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ; +#line 1142 "cgrammar.y" +{ yyval.ctyp = ctype_makeArray (yyvsp[-3].ctyp); ; break;} case 415: -#line 1143 "cgrammar.y" -{ yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ; +#line 1144 "cgrammar.y" +{ yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ; break;} case 416: -#line 1145 "cgrammar.y" -{ yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ; +#line 1146 "cgrammar.y" +{ yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ; break;} case 417: -#line 1147 "cgrammar.y" +#line 1148 "cgrammar.y" +{ yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ; + break;} +case 418: +#line 1150 "cgrammar.y" { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ; break;} -case 427: -#line 1163 "cgrammar.y" +case 428: +#line 1166 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} -case 430: -#line 1171 "cgrammar.y" +case 431: +#line 1174 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 431: -#line 1175 "cgrammar.y" +case 432: +#line 1178 "cgrammar.y" { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 432: -#line 1177 "cgrammar.y" +case 433: +#line 1180 "cgrammar.y" { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ; break;} -case 433: -#line 1179 "cgrammar.y" +case 434: +#line 1182 "cgrammar.y" { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; break;} -case 434: -#line 1181 "cgrammar.y" +case 435: +#line 1184 "cgrammar.y" { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 435: -#line 1185 "cgrammar.y" +case 436: +#line 1188 "cgrammar.y" { context_setProtectVars (); ; break;} -case 436: -#line 1185 "cgrammar.y" +case 437: +#line 1188 "cgrammar.y" { context_sizeofReleaseVars (); ; break;} -case 437: -#line 1187 "cgrammar.y" +case 438: +#line 1190 "cgrammar.y" { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); context_enterForClause (yyvsp[-5].expr); ; break;} -case 438: -#line 1192 "cgrammar.y" +case 439: +#line 1195 "cgrammar.y" { setProcessingIterVars (yyvsp[-2].entry); ; break;} -case 439: -#line 1194 "cgrammar.y" +case 440: +#line 1197 "cgrammar.y" { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ; break;} -case 440: -#line 1195 "cgrammar.y" +case 441: +#line 1198 "cgrammar.y" { yyval.expr = exprNode_createId (yyvsp[0].entry); ; break;} -case 444: -#line 1201 "cgrammar.y" +case 445: +#line 1204 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} -case 452: -#line 1209 "cgrammar.y" +case 453: +#line 1212 "cgrammar.y" { yyval.expr = yyvsp[-1].expr; ; break;} -case 453: -#line 1210 "cgrammar.y" +case 454: +#line 1213 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} -case 454: -#line 1214 "cgrammar.y" +case 455: +#line 1217 "cgrammar.y" { /* don't: context_exitTrueClause ($1, $2); */ yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 455: -#line 1219 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; - break;} case 456: #line 1222 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} -case 467: -#line 1237 "cgrammar.y" -{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; +case 457: +#line 1225 "cgrammar.y" +{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} -case 469: -#line 1239 "cgrammar.y" -{ yyval.expr = exprNode_makeError (); ; +case 468: +#line 1240 "cgrammar.y" +{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} case 470: #line 1242 "cgrammar.y" -{ yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ; +{ yyval.expr = exprNode_makeError (); ; break;} case 471: -#line 1243 "cgrammar.y" -{ yyval.expr = exprNode_notReached (yyvsp[0].expr); ; +#line 1245 "cgrammar.y" +{ yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ; break;} case 472: -#line 1249 "cgrammar.y" -{ context_enterCaseClause (yyvsp[0].expr); ; +#line 1246 "cgrammar.y" +{ yyval.expr = exprNode_notReached (yyvsp[0].expr); ; break;} case 473: -#line 1250 "cgrammar.y" -{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ; +#line 1252 "cgrammar.y" +{ context_enterCaseClause (yyvsp[0].expr); ; break;} case 474: -#line 1251 "cgrammar.y" -{ context_enterCaseClause (yyvsp[0].expr); ; +#line 1253 "cgrammar.y" +{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ; break;} case 475: -#line 1252 "cgrammar.y" -{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ; +#line 1254 "cgrammar.y" +{ context_enterCaseClause (yyvsp[0].expr); ; break;} case 476: #line 1255 "cgrammar.y" -{ context_enterCaseClause (exprNode_undefined); ; +{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ; break;} case 477: -#line 1256 "cgrammar.y" -{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ; +#line 1258 "cgrammar.y" +{ context_enterCaseClause (exprNode_undefined); ; break;} case 478: -#line 1257 "cgrammar.y" -{ context_enterCaseClause (exprNode_undefined); ; +#line 1259 "cgrammar.y" +{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ; break;} case 479: -#line 1258 "cgrammar.y" -{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ; +#line 1260 "cgrammar.y" +{ context_enterCaseClause (exprNode_undefined); ; break;} case 480: #line 1261 "cgrammar.y" -{ yyval.expr = yyvsp[-1].expr; ; +{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ; break;} case 481: -#line 1263 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; +#line 1264 "cgrammar.y" +{ yyval.expr = yyvsp[-1].expr; ; break;} case 482: #line 1266 "cgrammar.y" -{ yyval.expr = yyvsp[-1].expr; ; +{ yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; break;} case 483: #line 1269 "cgrammar.y" -{ context_enterInnerContext (); ; +{ yyval.expr = yyvsp[-1].expr; ; break;} case 484: #line 1272 "cgrammar.y" -{ context_exitInnerPlain (); ; +{ context_enterInnerContext (); ; break;} case 485: #line 1275 "cgrammar.y" -{ context_enterStructInnerContext (); ; +{ context_exitInnerPlain (); ; break;} case 486: #line 1278 "cgrammar.y" -{ context_exitStructInnerContext (); ; +{ context_enterStructInnerContext (); ; break;} case 487: #line 1281 "cgrammar.y" -{ context_exitInnerSafe (); ; +{ context_exitStructInnerContext (); ; break;} case 488: #line 1284 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; +{ context_exitInnerSafe (); ; break;} case 489: -#line 1285 "cgrammar.y" -{ yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ; +#line 1287 "cgrammar.y" +{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 490: -#line 1286 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; - break;} -case 491: #line 1288 "cgrammar.y" -{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; +{ yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ; break;} -case 492: +case 491: #line 1289 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} -case 493: +case 492: #line 1291 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; break;} +case 493: +#line 1292 "cgrammar.y" +{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; + break;} case 494: -#line 1293 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; +#line 1294 "cgrammar.y" +{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; break;} case 495: -#line 1295 "cgrammar.y" +#line 1296 "cgrammar.y" +{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; + break;} +case 496: +#line 1298 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), lltok_getLoc (yyvsp[-1].tok))); ; break;} -case 496: -#line 1302 "cgrammar.y" -{ yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ; - break;} case 497: -#line 1306 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; +#line 1305 "cgrammar.y" +{ yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ; break;} case 498: -#line 1308 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; +#line 1309 "cgrammar.y" +{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 499: -#line 1310 "cgrammar.y" +#line 1311 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} case 500: -#line 1312 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; +#line 1313 "cgrammar.y" +{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} -case 502: -#line 1316 "cgrammar.y" -{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; +case 501: +#line 1315 "cgrammar.y" +{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; break;} case 503: #line 1319 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; +{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 504: -#line 1320 "cgrammar.y" -{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; +#line 1322 "cgrammar.y" +{ yyval.expr = yyvsp[0].expr; ; break;} case 505: #line 1323 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; +{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 506: -#line 1324 "cgrammar.y" -{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; +#line 1326 "cgrammar.y" +{ yyval.expr = yyvsp[0].expr; ; break;} case 507: #line 1327 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; +{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 508: -#line 1328 "cgrammar.y" -{ yyval.expr = exprNode_statement (yyvsp[-1].expr); ; +#line 1330 "cgrammar.y" +{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 509: #line 1331 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; +{ yyval.expr = exprNode_statement (yyvsp[-1].expr); ; break;} case 510: -#line 1332 "cgrammar.y" -{ yyval.expr = exprNode_statement (yyvsp[-1].expr); ; +#line 1334 "cgrammar.y" +{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 511: -#line 1333 "cgrammar.y" -{ yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ; +#line 1335 "cgrammar.y" +{ yyval.expr = exprNode_statement (yyvsp[-1].expr); ; break;} case 512: -#line 1337 "cgrammar.y" -{ yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; +#line 1336 "cgrammar.y" +{ yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ; break;} case 513: -#line 1345 "cgrammar.y" +#line 1340 "cgrammar.y" +{ yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; + break;} +case 514: +#line 1348 "cgrammar.y" { context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr); yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); ; break;} -case 514: -#line 1349 "cgrammar.y" +case 515: +#line 1352 "cgrammar.y" { context_enterFalseClause (yyvsp[-2].expr); ; break;} -case 515: -#line 1350 "cgrammar.y" +case 516: +#line 1353 "cgrammar.y" { context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} -case 516: -#line 1354 "cgrammar.y" -{ context_enterSwitch (yyvsp[0].expr); ; - break;} case 517: -#line 1355 "cgrammar.y" -{ yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ; +#line 1357 "cgrammar.y" +{ context_enterSwitch (yyvsp[0].expr); ; break;} case 518: -#line 1359 "cgrammar.y" -{ yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ; +#line 1358 "cgrammar.y" +{ yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 519: -#line 1363 "cgrammar.y" -{ yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ; +#line 1362 "cgrammar.y" +{ yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ; break;} case 520: #line 1366 "cgrammar.y" -{ context_enterIterClause (); ; +{ yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ; break;} case 521: -#line 1367 "cgrammar.y" -{ setProcessingIterVars (yyvsp[-3].entry); ; +#line 1369 "cgrammar.y" +{ context_enterIterClause (); ; break;} case 522: #line 1370 "cgrammar.y" +{ setProcessingIterVars (yyvsp[-3].entry); ; + break;} +case 523: +#line 1373 "cgrammar.y" { yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry); ; break;} -case 523: -#line 1376 "cgrammar.y" -{ yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; - break;} case 524: -#line 1377 "cgrammar.y" -{ nextIterParam (); ; +#line 1379 "cgrammar.y" +{ yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 525: -#line 1378 "cgrammar.y" -{ yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ; +#line 1380 "cgrammar.y" +{ nextIterParam (); ; break;} case 526: #line 1381 "cgrammar.y" -{ yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ; +{ yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ; break;} case 527: -#line 1382 "cgrammar.y" -{ yyval.expr = exprNode_iterId (yyvsp[0].entry); ; +#line 1384 "cgrammar.y" +{ yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ; break;} case 528: -#line 1383 "cgrammar.y" +#line 1385 "cgrammar.y" +{ yyval.expr = exprNode_iterId (yyvsp[0].entry); ; + break;} +case 529: +#line 1386 "cgrammar.y" { uentry ue = coerceIterId (yyvsp[0].cname); if (uentry_isValid (ue)) @@ -4865,321 +4905,321 @@ case 528: } ; break;} -case 529: -#line 1394 "cgrammar.y" +case 530: +#line 1397 "cgrammar.y" { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ; break;} -case 531: -#line 1402 "cgrammar.y" +case 532: +#line 1405 "cgrammar.y" { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} -case 533: -#line 1406 "cgrammar.y" -{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; - break;} case 534: -#line 1407 "cgrammar.y" -{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; +#line 1409 "cgrammar.y" +{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; break;} case 535: -#line 1408 "cgrammar.y" -{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ; +#line 1410 "cgrammar.y" +{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; break;} case 536: -#line 1410 "cgrammar.y" -{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; +#line 1411 "cgrammar.y" +{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ; break;} case 537: -#line 1411 "cgrammar.y" -{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; +#line 1413 "cgrammar.y" +{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; break;} case 538: -#line 1412 "cgrammar.y" -{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; +#line 1414 "cgrammar.y" +{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 539: -#line 1413 "cgrammar.y" -{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; +#line 1415 "cgrammar.y" +{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 540: -#line 1414 "cgrammar.y" +#line 1416 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} -case 542: -#line 1418 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; +case 541: +#line 1417 "cgrammar.y" +{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 543: -#line 1419 "cgrammar.y" +#line 1421 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 544: -#line 1420 "cgrammar.y" +#line 1422 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 545: -#line 1421 "cgrammar.y" +#line 1423 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 546: -#line 1422 "cgrammar.y" +#line 1424 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 547: -#line 1423 "cgrammar.y" +#line 1425 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 548: -#line 1424 "cgrammar.y" +#line 1426 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 549: -#line 1425 "cgrammar.y" +#line 1427 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 550: -#line 1426 "cgrammar.y" +#line 1428 "cgrammar.y" +{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; + break;} +case 551: +#line 1429 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} -case 552: -#line 1430 "cgrammar.y" +case 553: +#line 1433 "cgrammar.y" { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; break;} -case 554: -#line 1434 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} case 555: -#line 1435 "cgrammar.y" +#line 1437 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 556: -#line 1436 "cgrammar.y" +#line 1438 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 558: -#line 1440 "cgrammar.y" +case 557: +#line 1439 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 559: -#line 1441 "cgrammar.y" +#line 1443 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 561: -#line 1445 "cgrammar.y" +case 560: +#line 1444 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 562: -#line 1446 "cgrammar.y" +#line 1448 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 564: -#line 1450 "cgrammar.y" +case 563: +#line 1449 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 565: -#line 1451 "cgrammar.y" +#line 1453 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 566: -#line 1452 "cgrammar.y" +#line 1454 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 567: -#line 1453 "cgrammar.y" +#line 1455 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 569: -#line 1457 "cgrammar.y" +case 568: +#line 1456 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 570: -#line 1458 "cgrammar.y" +#line 1460 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 572: -#line 1462 "cgrammar.y" +case 571: +#line 1461 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 574: -#line 1466 "cgrammar.y" +case 573: +#line 1465 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 576: -#line 1471 "cgrammar.y" +case 575: +#line 1469 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 578: -#line 1475 "cgrammar.y" +case 577: +#line 1474 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 580: -#line 1479 "cgrammar.y" +case 579: +#line 1478 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} -case 582: -#line 1483 "cgrammar.y" -{ context_enterTrueClause (yyvsp[-1].expr); ; +case 581: +#line 1482 "cgrammar.y" +{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 583: -#line 1484 "cgrammar.y" -{ context_enterFalseClause (yyvsp[-4].expr); ; +#line 1486 "cgrammar.y" +{ context_enterTrueClause (yyvsp[-1].expr); ; break;} case 584: -#line 1485 "cgrammar.y" -{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; +#line 1487 "cgrammar.y" +{ context_enterFalseClause (yyvsp[-4].expr); ; break;} -case 586: -#line 1489 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; +case 585: +#line 1488 "cgrammar.y" +{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 587: -#line 1490 "cgrammar.y" +#line 1492 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 588: -#line 1491 "cgrammar.y" +#line 1493 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 589: -#line 1492 "cgrammar.y" +#line 1494 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 590: -#line 1493 "cgrammar.y" +#line 1495 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 591: -#line 1494 "cgrammar.y" +#line 1496 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 592: -#line 1495 "cgrammar.y" +#line 1497 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 593: -#line 1496 "cgrammar.y" +#line 1498 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 594: -#line 1497 "cgrammar.y" +#line 1499 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 595: -#line 1498 "cgrammar.y" +#line 1500 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 596: -#line 1499 "cgrammar.y" +#line 1501 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 597: #line 1502 "cgrammar.y" -{ yyval.entry = yyvsp[0].entry; ; +{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 598: -#line 1503 "cgrammar.y" -{ yyval.entry = uentry_undefined; ; +#line 1505 "cgrammar.y" +{ yyval.entry = yyvsp[0].entry; ; break;} case 599: #line 1506 "cgrammar.y" -{ context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ; +{ yyval.entry = uentry_undefined; ; break;} case 600: -#line 1510 "cgrammar.y" -{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; +#line 1509 "cgrammar.y" +{ context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ; break;} case 601: -#line 1512 "cgrammar.y" -{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ; +#line 1513 "cgrammar.y" +{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 602: -#line 1514 "cgrammar.y" -{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; +#line 1515 "cgrammar.y" +{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ; break;} case 603: #line 1517 "cgrammar.y" -{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; +{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 604: -#line 1519 "cgrammar.y" -{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ; +#line 1520 "cgrammar.y" +{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 605: -#line 1521 "cgrammar.y" -{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; +#line 1522 "cgrammar.y" +{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ; break;} case 606: -#line 1522 "cgrammar.y" -{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; +#line 1524 "cgrammar.y" +{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; break;} case 607: #line 1525 "cgrammar.y" -{ yyval.expr = exprNode_goto (yyvsp[-1].cname); ; +{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 608: -#line 1526 "cgrammar.y" -{ yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ; +#line 1528 "cgrammar.y" +{ yyval.expr = exprNode_goto (yyvsp[-1].cname); ; break;} case 609: -#line 1528 "cgrammar.y" -{ yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ; +#line 1529 "cgrammar.y" +{ yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ; break;} case 610: -#line 1529 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ; +#line 1531 "cgrammar.y" +{ yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ; break;} case 611: -#line 1530 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ; +#line 1532 "cgrammar.y" +{ yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ; break;} case 612: -#line 1531 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ; +#line 1533 "cgrammar.y" +{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ; break;} case 613: -#line 1532 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ; +#line 1534 "cgrammar.y" +{ yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ; break;} case 614: -#line 1533 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ; +#line 1535 "cgrammar.y" +{ yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ; break;} case 615: -#line 1534 "cgrammar.y" -{ yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ; +#line 1536 "cgrammar.y" +{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ; break;} case 616: -#line 1535 "cgrammar.y" +#line 1537 "cgrammar.y" +{ yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ; + break;} +case 617: +#line 1538 "cgrammar.y" { yyval.expr = exprNode_return (yyvsp[-1].expr); ; break;} -case 618: -#line 1539 "cgrammar.y" +case 619: +#line 1542 "cgrammar.y" { ; ; break;} -case 621: -#line 1546 "cgrammar.y" -{ yyval.cname = uentry_getName (yyvsp[0].entry); ; - break;} case 622: -#line 1547 "cgrammar.y" +#line 1549 "cgrammar.y" { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} case 623: -#line 1548 "cgrammar.y" +#line 1550 "cgrammar.y" { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} case 624: -#line 1549 "cgrammar.y" +#line 1551 "cgrammar.y" +{ yyval.cname = uentry_getName (yyvsp[0].entry); ; + break;} +case 625: +#line 1552 "cgrammar.y" { yyval.cname = yyvsp[0].cname; ; break;} -case 626: -#line 1553 "cgrammar.y" +case 627: +#line 1556 "cgrammar.y" { yyval.ctyp = ctype_unknown; ; break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/usr/share/misc/bison.simple" +#line 498 "/gnu/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -5375,7 +5415,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 1555 "cgrammar.y" +#line 1558 "cgrammar.y" /*@-redecl@*/ @@ -5422,15 +5462,11 @@ void yyerror (/*@unused@*/ char *s) } } +void printState (idDecl t) { + cstring id = idDecl_getName (t); + uentry ue = usymtab_lookupSafe (id); - - - - - - - - - - - + sRef s = uentry_getSref (ue); + + printf("State = %d\n", s->bufinfo.bufstate); +} diff --git a/src/cgrammar.tab.h b/src/cgrammar.tab.h index 7a10c8a..e0bb586 100644 --- a/src/cgrammar.tab.h +++ b/src/cgrammar.tab.h @@ -193,13 +193,14 @@ typedef union #define QINTEGRALTYPE 427 #define QUNSIGNEDINTEGRALTYPE 428 #define QSIGNEDINTEGRALTYPE 429 -#define IDENTIFIER 430 -#define NEW_IDENTIFIER 431 -#define TYPE_NAME_OR_ID 432 -#define CCONSTANT 433 -#define ITER_NAME 434 -#define ITER_ENDNAME 435 -#define TYPE_NAME 436 +#define QNULLTERMINATED 430 +#define IDENTIFIER 431 +#define NEW_IDENTIFIER 432 +#define TYPE_NAME_OR_ID 433 +#define CCONSTANT 434 +#define ITER_NAME 435 +#define ITER_ENDNAME 436 +#define TYPE_NAME 437 extern YYSTYPE yylval; diff --git a/src/cgrammar.y b/src/cgrammar.y index c059139..0d0e558 100644 --- a/src/cgrammar.y +++ b/src/cgrammar.y @@ -69,6 +69,7 @@ void yyerror (char *s); # undef realloc # endif +void checkandsetBufState(idDecl id, exprNode is); %} %union @@ -160,6 +161,7 @@ void yyerror (char *s); %token QREFCOUNTED QREFS QNEWREF QTEMPREF QKILLREF QRELDEF %token CGCHAR CBOOL CINT CGFLOAT CDOUBLE CVOID %token QANYTYPE QINTEGRALTYPE QUNSIGNEDINTEGRALTYPE QSIGNEDINTEGRALTYPE +%token QNULLTERMINATED /* identifiers, literals */ %token IDENTIFIER @@ -620,7 +622,7 @@ specClauseList primaryExpr : id { $$ = exprNode_fromIdentifier ($1); } | NEW_IDENTIFIER { $$ = exprNode_fromUIO ($1); } - | CCONSTANT + | CCONSTANT { $$ = $1; } | TLPAREN expr TRPAREN { $$ = exprNode_addParens ($1, $2); } | TYPE_NAME_OR_ID { $$ = exprNode_fromIdentifier (coerceId ($1)); } | QEXTENSION { $$ = exprNode_makeError (); } @@ -836,7 +838,7 @@ optDeclarators | optDeclarators TCOMMA NotType namedInitializer { $$ = exprNode_concat ($1, $4); } init - : assignExpr + : assignExpr { $$ = $1; } | TLBRACE initList TRBRACE { $$ = exprNode_makeInitBlock ($1, $2); } | TLBRACE initList TCOMMA TRBRACE { $$ = exprNode_makeInitBlock ($1, $2); } @@ -905,6 +907,7 @@ typeQualifier | QRELDEF IsType { $$ = qual_createRelDef (); } | QNEWREF IsType { $$ = qual_createNewRef (); } | QTEMPREF IsType { $$ = qual_createTempRef (); } + | QNULLTERMINATED IsType { $$ = qual_createNullTerminated (); } typeModifier : QSHORT { $$ = qual_createShort (); } @@ -1598,15 +1601,11 @@ void yyerror (/*@unused@*/ char *s) } } +void printState (idDecl t) { + cstring id = idDecl_getName (t); + uentry ue = usymtab_lookupSafe (id); - - - - - - - - - - - + sRef s = uentry_getSref (ue); + + printf("State = %d\n", s->bufinfo.bufstate); +} diff --git a/src/cscanner.c.der b/src/cscanner.c.der index 574fac0..386088f 100644 --- a/src/cscanner.c.der +++ b/src/cscanner.c.der @@ -365,66 +365,65 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 177 -#define YY_END_OF_BUFFER 178 -static yyconst short int yy_accept[509] = +#define YY_NUM_RULES 168 +#define YY_END_OF_BUFFER 169 +static yyconst short int yy_accept[500] = { 0, - 0, 0, 178, 176, 156, 157, 144, 176, 3, 79, - 150, 143, 176, 138, 139, 148, 147, 135, 146, 142, - 149, 94, 94, 136, 132, 151, 137, 152, 155, 176, - 140, 175, 141, 153, 79, 79, 79, 79, 79, 79, + 0, 0, 169, 167, 147, 148, 135, 167, 3, 79, + 141, 134, 167, 129, 130, 139, 138, 126, 137, 133, + 140, 88, 88, 127, 123, 142, 128, 143, 146, 167, + 131, 166, 132, 144, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 133, 154, 134, 145, 131, - 0, 42, 0, 2, 79, 117, 173, 174, 126, 118, - 0, 0, 115, 123, 113, 124, 114, 125, 0, 107, - 1, 116, 110, 87, 0, 96, 95, 0, 94, 122, - 128, 130, 129, 121, 0, 0, 0, 119, 79, 79, + 79, 79, 79, 79, 79, 124, 145, 125, 136, 122, + 0, 42, 0, 2, 79, 108, 164, 165, 117, 109, + 0, 0, 106, 114, 104, 115, 105, 116, 0, 98, + 1, 107, 101, 84, 0, 90, 89, 0, 88, 113, + 119, 121, 120, 112, 0, 0, 0, 110, 79, 79, 79, 79, 79, 79, 79, 79, 9, 79, 79, 79, 79, 79, 79, 79, 13, 44, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 120, 127, 0, 0, 2, 101, - 4, 0, 105, 106, 107, 0, 108, 109, 89, 88, - 0, 104, 97, 98, 98, 80, 112, 111, 163, 164, - 161, 166, 171, 162, 172, 167, 170, 165, 168, 169, - 0, 0, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 11, - - 79, 79, 27, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 43, 79, 79, 79, 79, 79, 79, - 74, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 111, 118, 0, 0, 2, 92, + 4, 0, 96, 97, 98, 0, 99, 100, 86, 85, + 0, 95, 91, 91, 80, 103, 102, 154, 155, 152, + 157, 162, 153, 163, 158, 161, 156, 159, 160, 0, + 0, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 11, 79, + + 79, 27, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 43, 79, 79, 79, 79, 79, 79, 74, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 0, 42, 0, 0, 107, 0, 105, 106, - 0, 110, 90, 91, 91, 102, 103, 100, 99, 81, - 83, 160, 0, 0, 79, 79, 39, 79, 6, 29, - 79, 79, 79, 79, 79, 79, 10, 25, 79, 79, - 79, 79, 12, 79, 79, 79, 51, 79, 31, 79, - 79, 52, 79, 79, 68, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 0, 42, 0, 0, 98, 0, 96, 97, 0, + 101, 87, 87, 93, 94, 81, 82, 151, 0, 0, + 79, 79, 39, 79, 6, 29, 79, 79, 79, 79, + 79, 79, 10, 25, 79, 79, 79, 79, 12, 79, + 79, 79, 51, 79, 31, 79, 79, 52, 79, 79, + 68, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 26, 79, 79, 79, 0, 107, 93, 92, 82, 84, - 84, 0, 159, 79, 79, 5, 79, 36, 79, 79, - 79, 79, 79, 79, 79, 30, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 69, 79, 79, 79, 79, - 79, 79, 79, 32, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 77, 24, 79, 79, 79, 79, - 79, 18, 76, 86, 85, 158, 79, 79, 79, 79, - 79, 79, 79, 28, 79, 38, 79, 21, 79, 54, - - 78, 79, 60, 79, 79, 79, 79, 79, 79, 58, - 79, 14, 75, 34, 15, 79, 41, 22, 17, 79, - 79, 79, 79, 79, 72, 19, 20, 79, 37, 47, - 64, 79, 79, 8, 79, 59, 79, 79, 79, 62, - 53, 79, 79, 45, 79, 79, 57, 79, 46, 61, - 79, 23, 79, 79, 79, 79, 65, 7, 79, 73, - 79, 79, 70, 16, 79, 40, 79, 55, 79, 33, - 35, 79, 71, 56, 79, 79, 79, 67, 79, 79, - 79, 63, 79, 79, 79, 79, 79, 79, 79, 48, - 79, 79, 66, 79, 79, 79, 79, 79, 79, 79, - - 79, 79, 79, 50, 79, 79, 49, 0 + 79, 79, 79, 79, 79, 79, 26, 79, 79, 79, + 0, 98, 83, 83, 0, 150, 79, 79, 5, 79, + 36, 79, 79, 79, 79, 79, 79, 79, 30, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 69, 79, + 79, 79, 79, 79, 79, 79, 32, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 77, 24, 79, + 79, 79, 79, 79, 18, 76, 149, 79, 79, 79, + 79, 79, 79, 79, 28, 79, 38, 79, 21, 79, + 54, 78, 79, 60, 79, 79, 79, 79, 79, 79, + + 58, 79, 14, 75, 34, 15, 79, 41, 22, 17, + 79, 79, 79, 79, 79, 72, 19, 20, 79, 37, + 47, 64, 79, 79, 8, 79, 59, 79, 79, 79, + 62, 53, 79, 79, 45, 79, 79, 57, 79, 46, + 61, 79, 23, 79, 79, 79, 79, 65, 7, 79, + 73, 79, 79, 70, 16, 79, 40, 79, 55, 79, + 33, 35, 79, 71, 56, 79, 79, 79, 67, 79, + 79, 79, 63, 79, 79, 79, 79, 79, 79, 79, + 48, 79, 79, 66, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 50, 79, 79, 49, 0 + } ; static yyconst int yy_ec[256] = @@ -471,129 +470,127 @@ static yyconst int yy_meta[79] = 2, 2, 2, 2, 1, 1, 1, 1 } ; -static yyconst short int yy_base[516] = +static yyconst short int yy_base[507] = { 0, - 0, 0, 659, 660, 660, 660, 633, 73, 0, 0, - 55, 71, 610, 660, 660, 631, 67, 660, 68, 66, - 74, 80, 85, 660, 660, 65, 630, 82, 660, 91, - 660, 660, 660, 629, 603, 28, 586, 67, 40, 65, - 72, 587, 88, 55, 586, 79, 101, 598, 593, 103, - 90, 584, 51, 588, 586, 660, 113, 660, 660, 660, - 133, 163, 641, 0, 0, 660, 660, 660, 660, 660, - 100, 139, 660, 660, 660, 660, 660, 660, 625, 155, - 660, 660, 162, 172, 164, 160, 142, 0, 204, 617, - 660, 660, 660, 616, 245, 603, 603, 660, 585, 564, - - 568, 580, 567, 122, 570, 141, 563, 564, 561, 144, - 568, 564, 561, 558, 0, 99, 562, 569, 562, 559, - 550, 552, 558, 551, 561, 555, 547, 551, 547, 174, - 556, 135, 158, 556, 154, 551, 547, 539, 542, 184, - 556, 167, 546, 549, 660, 660, 242, 153, 0, 660, - 660, 235, 660, 660, 251, 243, 660, 660, 233, 230, - 241, 272, 165, 660, 234, 261, 660, 660, 660, 562, - 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, - 563, 564, 536, 531, 534, 546, 541, 529, 541, 200, - 542, 537, 539, 535, 527, 524, 532, 519, 534, 0, - - 520, 524, 527, 512, 515, 518, 521, 511, 513, 514, - 519, 506, 499, 0, 516, 502, 516, 509, 246, 498, - 0, 500, 499, 501, 508, 509, 493, 491, 491, 493, - 502, 501, 497, 499, 489, 493, 484, 203, 496, 498, - 487, 486, 271, 308, 543, 278, 296, 304, 660, 660, - 306, 314, 254, 660, 277, 660, 660, 660, 660, 295, - 279, 660, 517, 505, 480, 469, 0, 481, 0, 0, - 480, 471, 479, 468, 473, 474, 0, 0, 467, 467, - 477, 463, 0, 467, 472, 467, 0, 287, 0, 472, - 457, 0, 459, 469, 0, 469, 463, 457, 453, 464, - - 449, 451, 461, 447, 459, 449, 453, 452, 457, 456, - 442, 444, 452, 450, 448, 440, 445, 446, 434, 446, - 0, 430, 442, 442, 323, 325, 660, 660, 294, 660, - 305, 467, 660, 427, 428, 0, 293, 0, 429, 430, - 436, 434, 433, 424, 423, 0, 430, 418, 422, 428, - 426, 424, 418, 408, 409, 0, 425, 406, 406, 417, - 411, 408, 416, 0, 415, 412, 416, 413, 397, 406, - 408, 393, 406, 407, 0, 0, 396, 404, 400, 395, - 396, 0, 0, 660, 660, 660, 386, 398, 398, 387, - 381, 381, 393, 0, 393, 395, 376, 0, 393, 0, - - 0, 387, 0, 381, 386, 376, 378, 375, 382, 0, - 375, 0, 0, 376, 0, 373, 0, 0, 0, 377, - 371, 375, 370, 374, 0, 0, 0, 367, 0, 0, - 360, 372, 370, 0, 361, 0, 362, 361, 360, 0, - 0, 354, 363, 0, 350, 351, 0, 353, 0, 0, - 345, 0, 347, 343, 339, 325, 0, 0, 317, 0, - 323, 315, 0, 0, 327, 0, 312, 0, 325, 319, - 0, 311, 0, 0, 303, 320, 318, 0, 309, 312, - 304, 0, 311, 299, 312, 307, 294, 304, 286, 0, - 300, 292, 0, 278, 254, 236, 250, 176, 186, 174, - - 151, 158, 128, 0, 48, 28, 0, 660, 386, 390, - 394, 399, 403, 405, 410 + 0, 0, 641, 642, 642, 642, 615, 73, 0, 0, + 55, 71, 592, 642, 642, 613, 67, 642, 68, 66, + 74, 80, 85, 642, 642, 65, 612, 82, 642, 91, + 642, 642, 642, 611, 585, 28, 568, 67, 40, 65, + 72, 569, 88, 55, 568, 79, 101, 580, 575, 103, + 90, 566, 51, 570, 568, 642, 113, 642, 642, 642, + 133, 163, 623, 0, 0, 642, 642, 642, 642, 642, + 100, 139, 642, 642, 642, 642, 642, 642, 607, 155, + 642, 642, 162, 172, 164, 117, 141, 0, 204, 599, + 642, 642, 642, 598, 245, 585, 585, 642, 567, 546, + + 550, 562, 549, 145, 552, 141, 545, 546, 543, 144, + 550, 546, 543, 540, 0, 99, 544, 551, 544, 541, + 532, 534, 540, 533, 543, 537, 529, 533, 529, 174, + 538, 156, 158, 538, 162, 533, 529, 521, 524, 184, + 538, 140, 528, 531, 642, 642, 242, 172, 0, 642, + 642, 235, 642, 642, 251, 243, 642, 642, 192, 193, + 246, 272, 642, 642, 233, 642, 642, 642, 544, 642, + 642, 642, 642, 642, 642, 642, 642, 642, 642, 545, + 546, 518, 513, 516, 528, 523, 511, 523, 228, 524, + 519, 521, 517, 509, 506, 514, 501, 516, 0, 502, + + 506, 509, 494, 497, 500, 503, 493, 495, 496, 501, + 488, 481, 0, 498, 484, 498, 491, 214, 480, 0, + 482, 481, 483, 490, 491, 475, 473, 473, 475, 484, + 483, 479, 481, 471, 475, 466, 246, 478, 480, 469, + 468, 215, 307, 525, 278, 283, 300, 642, 642, 302, + 304, 642, 642, 642, 642, 249, 265, 642, 499, 487, + 462, 451, 0, 463, 0, 0, 462, 453, 461, 450, + 455, 456, 0, 0, 449, 449, 459, 445, 0, 449, + 454, 449, 0, 272, 0, 454, 439, 0, 441, 451, + 0, 451, 445, 439, 435, 446, 431, 433, 443, 429, + + 441, 431, 435, 434, 439, 438, 424, 426, 434, 432, + 430, 422, 427, 428, 416, 428, 0, 412, 424, 424, + 309, 314, 642, 642, 449, 642, 409, 410, 0, 281, + 0, 411, 412, 418, 416, 415, 406, 405, 0, 412, + 400, 404, 410, 408, 406, 400, 390, 391, 0, 407, + 388, 388, 399, 393, 390, 398, 0, 397, 394, 398, + 395, 379, 388, 390, 375, 388, 389, 0, 0, 378, + 386, 382, 377, 378, 0, 0, 642, 368, 380, 380, + 369, 363, 363, 375, 0, 375, 377, 358, 0, 375, + 0, 0, 369, 0, 363, 368, 358, 360, 357, 364, + + 0, 357, 0, 0, 358, 0, 355, 0, 0, 0, + 359, 353, 357, 352, 356, 0, 0, 0, 349, 0, + 0, 342, 354, 352, 0, 343, 0, 344, 334, 330, + 0, 0, 320, 327, 0, 314, 308, 0, 310, 0, + 0, 311, 0, 316, 315, 313, 299, 0, 0, 298, + 0, 303, 295, 0, 0, 307, 0, 293, 0, 305, + 299, 0, 291, 0, 0, 283, 301, 299, 0, 290, + 293, 286, 0, 292, 280, 293, 290, 276, 286, 264, + 0, 280, 257, 0, 250, 204, 189, 198, 174, 178, + 161, 137, 148, 100, 0, 48, 28, 0, 642, 375, + + 379, 383, 388, 392, 394, 399 } ; -static yyconst short int yy_def[516] = +static yyconst short int yy_def[507] = { 0, - 508, 1, 508, 508, 508, 508, 508, 509, 510, 511, - 508, 508, 512, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 508, 508, 508, 508, 508, - 509, 508, 509, 513, 511, 508, 508, 508, 508, 508, - 512, 512, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 514, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 508, 508, 508, 515, 513, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 514, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 515, 508, 515, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 508, 508, 508, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 0, 508, 508, - 508, 508, 508, 508, 508 + 499, 1, 499, 499, 499, 499, 499, 500, 501, 502, + 499, 499, 503, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 499, 499, 499, 499, 499, + 500, 499, 500, 504, 502, 499, 499, 499, 499, 499, + 503, 503, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 505, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 502, 502, + + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 499, 499, 499, 506, 504, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 505, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 506, 499, 506, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 499, 499, 499, 499, 499, 499, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 499, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 0, 499, + + 499, 499, 499, 499, 499, 499 } ; -static yyconst short int yy_nxt[739] = +static yyconst short int yy_nxt[721] = { 0, 4, 5, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, @@ -603,82 +600,80 @@ static yyconst short int yy_nxt[739] = 36, 37, 38, 39, 40, 41, 42, 10, 43, 44, 45, 10, 46, 47, 48, 49, 50, 51, 52, 53, 54, 10, 55, 10, 56, 57, 58, 59, 62, 66, - 69, 74, 507, 79, 76, 80, 80, 81, 90, 91, + 69, 74, 498, 79, 76, 80, 80, 81, 90, 91, 100, 75, 77, 78, 106, 70, 101, 83, 82, 84, 84, 141, 83, 107, 89, 89, 93, 94, 95, 118, - 150, 85, 506, 119, 142, 86, 85, 103, 96, 63, + 150, 85, 497, 119, 142, 86, 85, 103, 96, 63, 86, 87, 111, 88, 104, 108, 87, 109, 97, 67, 105, 68, 112, 121, 85, 113, 110, 145, 62, 85, - 86, 508, 122, 115, 137, 86, 72, 123, 87, 71, - 116, 88, 124, 87, 117, 138, 125, 131, 244, 202, - 132, 133, 139, 126, 147, 147, 203, 134, 148, 127, - 135, 128, 188, 136, 80, 80, 189, 165, 161, 63, - 161, 155, 155, 162, 162, 222, 152, 153, 146, 83, - 154, 84, 84, 156, 157, 163, 191, 158, 223, 245, - - 505, 164, 165, 85, 227, 192, 258, 159, 196, 152, - 153, 197, 504, 160, 224, 154, 156, 157, 503, 228, - 163, 83, 158, 89, 89, 239, 85, 240, 164, 217, - 218, 225, 159, 258, 219, 85, 233, 234, 502, 86, - 160, 220, 235, 147, 147, 87, 501, 148, 500, 246, - 236, 246, 237, 319, 247, 247, 320, 251, 85, 251, - 162, 162, 252, 252, 86, 255, 272, 273, 253, 259, - 155, 155, 87, 169, 254, 170, 244, 171, 172, 173, - 174, 175, 248, 249, 176, 177, 250, 178, 179, 180, - 255, 162, 162, 253, 259, 327, 260, 247, 247, 300, - - 499, 254, 261, 498, 256, 248, 249, 257, 301, 147, - 147, 250, 328, 148, 331, 247, 247, 245, 325, 497, - 325, 260, 327, 326, 326, 252, 252, 256, 153, 261, - 329, 154, 257, 252, 252, 384, 330, 328, 496, 331, - 385, 350, 326, 326, 326, 326, 157, 389, 495, 158, - 494, 153, 351, 493, 390, 329, 154, 249, 492, 491, - 250, 490, 384, 330, 489, 385, 488, 487, 486, 157, - 485, 484, 483, 482, 158, 481, 480, 479, 478, 477, - 249, 476, 475, 474, 473, 250, 61, 61, 61, 61, - 61, 64, 472, 471, 64, 65, 470, 65, 65, 71, - - 71, 469, 71, 71, 149, 468, 149, 149, 166, 166, - 243, 243, 243, 243, 243, 467, 466, 465, 464, 463, - 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, - 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, - 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, - 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, - 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, - 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, - 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, - 392, 391, 388, 387, 386, 383, 382, 381, 380, 379, - - 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, - 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, - 358, 357, 356, 355, 354, 353, 352, 349, 348, 347, - 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, - 336, 335, 334, 333, 332, 508, 324, 323, 322, 321, - 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, - 308, 307, 306, 305, 304, 303, 302, 299, 298, 297, - 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, - 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, - 276, 275, 274, 271, 270, 269, 268, 267, 266, 265, - - 264, 263, 262, 242, 241, 238, 232, 231, 230, 229, - 226, 221, 216, 215, 214, 213, 212, 211, 210, 209, - 208, 207, 206, 205, 204, 201, 200, 199, 198, 195, - 194, 193, 190, 187, 186, 185, 184, 183, 182, 181, - 168, 167, 151, 508, 144, 143, 140, 130, 129, 120, - 114, 102, 99, 98, 92, 73, 72, 60, 508, 3, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508 + 86, 499, 122, 115, 137, 86, 72, 123, 87, 71, + 116, 88, 124, 87, 117, 138, 125, 131, 163, 201, + 132, 133, 139, 126, 147, 147, 202, 134, 148, 127, + 135, 128, 496, 136, 80, 80, 164, 243, 161, 63, + 161, 155, 155, 162, 162, 163, 152, 153, 146, 83, + 154, 84, 84, 156, 157, 187, 190, 158, 238, 188, + + 239, 164, 495, 85, 494, 191, 221, 159, 195, 152, + 153, 196, 226, 160, 223, 154, 156, 157, 244, 222, + 243, 83, 158, 89, 89, 493, 85, 227, 253, 216, + 217, 224, 159, 252, 218, 85, 232, 233, 492, 86, + 160, 219, 234, 147, 147, 87, 491, 148, 490, 245, + 235, 245, 236, 253, 246, 246, 489, 250, 85, 250, + 252, 244, 251, 251, 86, 162, 162, 296, 256, 488, + 155, 155, 87, 168, 257, 169, 297, 170, 171, 172, + 173, 174, 247, 248, 175, 176, 249, 177, 178, 179, + 323, 162, 162, 256, 268, 269, 315, 246, 246, 316, + + 324, 257, 246, 246, 254, 247, 248, 255, 147, 147, + 487, 249, 148, 486, 321, 153, 321, 323, 154, 322, + 322, 251, 251, 251, 251, 324, 343, 254, 322, 322, + 485, 484, 255, 322, 322, 380, 157, 344, 153, 158, + 483, 482, 381, 154, 481, 480, 248, 479, 478, 249, + 477, 476, 475, 474, 473, 472, 471, 470, 469, 157, + 468, 467, 466, 465, 158, 464, 463, 462, 461, 248, + 460, 459, 458, 457, 249, 61, 61, 61, 61, 61, + 64, 456, 455, 64, 65, 454, 65, 65, 71, 71, + 453, 71, 71, 149, 452, 149, 149, 165, 165, 242, + + 242, 242, 242, 242, 451, 450, 449, 448, 447, 446, + 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, + 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, + 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, + 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, + 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, + 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, + 385, 384, 383, 382, 379, 378, 377, 376, 375, 374, + 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, + 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, + + 353, 352, 351, 350, 349, 348, 347, 346, 345, 342, + 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, + 331, 330, 329, 328, 327, 326, 325, 499, 320, 319, + 318, 317, 314, 313, 312, 311, 310, 309, 308, 307, + 306, 305, 304, 303, 302, 301, 300, 299, 298, 295, + 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, + 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, + 274, 273, 272, 271, 270, 267, 266, 265, 264, 263, + 262, 261, 260, 259, 258, 241, 240, 237, 231, 230, + 229, 228, 225, 220, 215, 214, 213, 212, 211, 210, + + 209, 208, 207, 206, 205, 204, 203, 200, 199, 198, + 197, 194, 193, 192, 189, 186, 185, 184, 183, 182, + 181, 180, 167, 166, 151, 499, 144, 143, 140, 130, + 129, 120, 114, 102, 99, 98, 92, 73, 72, 60, + 499, 3, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499 } ; -static yyconst short int yy_chk[739] = +static yyconst short int yy_chk[721] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -688,79 +683,77 @@ static yyconst short int yy_chk[739] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 11, - 12, 17, 506, 20, 19, 20, 20, 21, 26, 26, + 12, 17, 497, 20, 19, 20, 20, 21, 26, 26, 36, 17, 19, 19, 39, 12, 36, 22, 21, 22, 22, 53, 23, 39, 23, 23, 28, 28, 30, 44, - 71, 22, 505, 44, 53, 22, 23, 38, 30, 8, + 71, 22, 496, 44, 53, 22, 23, 38, 30, 8, 23, 22, 41, 22, 38, 40, 23, 40, 30, 11, 38, 11, 41, 46, 22, 41, 40, 57, 61, 23, 22, 72, 46, 43, 51, 23, 71, 46, 22, 72, - 43, 22, 47, 23, 43, 51, 47, 50, 148, 116, + 43, 22, 47, 23, 43, 51, 47, 50, 86, 116, 50, 50, 51, 47, 62, 62, 116, 50, 62, 47, - 50, 47, 104, 50, 80, 80, 104, 87, 85, 61, - 85, 83, 83, 85, 85, 132, 80, 80, 57, 84, - 80, 84, 84, 83, 83, 86, 106, 83, 132, 148, - - 503, 86, 87, 84, 135, 106, 163, 84, 110, 80, - 80, 110, 502, 84, 133, 80, 83, 83, 501, 135, - 86, 89, 83, 89, 89, 142, 84, 142, 86, 130, - 130, 133, 84, 163, 130, 89, 140, 140, 500, 89, - 84, 130, 140, 147, 147, 89, 499, 147, 498, 152, - 140, 152, 140, 238, 152, 152, 238, 156, 89, 156, - 161, 161, 156, 156, 89, 160, 190, 190, 159, 165, - 155, 155, 89, 95, 159, 95, 243, 95, 95, 95, + 50, 47, 494, 50, 80, 80, 87, 148, 85, 61, + 85, 83, 83, 85, 85, 86, 80, 80, 57, 84, + 80, 84, 84, 83, 83, 104, 106, 83, 142, 104, + + 142, 87, 493, 84, 492, 106, 132, 84, 110, 80, + 80, 110, 135, 84, 133, 80, 83, 83, 148, 132, + 242, 89, 83, 89, 89, 491, 84, 135, 160, 130, + 130, 133, 84, 159, 130, 89, 140, 140, 490, 89, + 84, 130, 140, 147, 147, 89, 489, 147, 488, 152, + 140, 152, 140, 160, 152, 152, 487, 156, 89, 156, + 159, 242, 156, 156, 89, 161, 161, 218, 165, 486, + 155, 155, 89, 95, 165, 95, 218, 95, 95, 95, 95, 95, 155, 155, 95, 95, 155, 95, 95, 95, - 160, 162, 162, 159, 165, 253, 166, 246, 246, 219, - - 497, 159, 166, 496, 162, 155, 155, 162, 219, 244, - 244, 155, 255, 244, 261, 247, 247, 243, 248, 495, - 248, 166, 253, 248, 248, 251, 251, 162, 247, 166, - 260, 247, 162, 252, 252, 329, 260, 255, 494, 261, - 331, 288, 325, 325, 326, 326, 252, 337, 492, 252, - 491, 247, 288, 489, 337, 260, 247, 326, 488, 487, - 326, 486, 329, 260, 485, 331, 484, 483, 481, 252, - 480, 479, 477, 476, 252, 475, 472, 470, 469, 467, - 326, 465, 462, 461, 459, 326, 509, 509, 509, 509, - 509, 510, 456, 455, 510, 511, 454, 511, 511, 512, - - 512, 453, 512, 512, 513, 451, 513, 513, 514, 514, - 515, 515, 515, 515, 515, 448, 446, 445, 443, 442, - 439, 438, 437, 435, 433, 432, 431, 428, 424, 423, - 422, 421, 420, 416, 414, 411, 409, 408, 407, 406, - 405, 404, 402, 399, 397, 396, 395, 393, 392, 391, - 390, 389, 388, 387, 381, 380, 379, 378, 377, 374, - 373, 372, 371, 370, 369, 368, 367, 366, 365, 363, - 362, 361, 360, 359, 358, 357, 355, 354, 353, 352, - 351, 350, 349, 348, 347, 345, 344, 343, 342, 341, - 340, 339, 335, 334, 332, 324, 323, 322, 320, 319, - - 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, - 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, - 298, 297, 296, 294, 293, 291, 290, 286, 285, 284, - 282, 281, 280, 279, 276, 275, 274, 273, 272, 271, - 268, 266, 265, 264, 263, 245, 242, 241, 240, 239, - 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, - 227, 226, 225, 224, 223, 222, 220, 218, 217, 216, - 215, 213, 212, 211, 210, 209, 208, 207, 206, 205, - 204, 203, 202, 201, 199, 198, 197, 196, 195, 194, - 193, 192, 191, 189, 188, 187, 186, 185, 184, 183, - - 182, 181, 170, 144, 143, 141, 139, 138, 137, 136, - 134, 131, 129, 128, 127, 126, 125, 124, 123, 122, - 121, 120, 119, 118, 117, 114, 113, 112, 111, 109, - 108, 107, 105, 103, 102, 101, 100, 99, 97, 96, - 94, 90, 79, 63, 55, 54, 52, 49, 48, 45, - 42, 37, 35, 34, 27, 16, 13, 7, 3, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508 + 256, 162, 162, 165, 189, 189, 237, 245, 245, 237, + + 257, 165, 246, 246, 162, 155, 155, 162, 243, 243, + 485, 155, 243, 483, 247, 246, 247, 256, 246, 247, + 247, 250, 250, 251, 251, 257, 284, 162, 321, 321, + 482, 480, 162, 322, 322, 330, 251, 284, 246, 251, + 479, 478, 330, 246, 477, 476, 322, 475, 474, 322, + 472, 471, 470, 468, 467, 466, 463, 461, 460, 251, + 458, 456, 453, 452, 251, 450, 447, 446, 445, 322, + 444, 442, 439, 437, 322, 500, 500, 500, 500, 500, + 501, 436, 434, 501, 502, 433, 502, 502, 503, 503, + 430, 503, 503, 504, 429, 504, 504, 505, 505, 506, + + 506, 506, 506, 506, 428, 426, 424, 423, 422, 419, + 415, 414, 413, 412, 411, 407, 405, 402, 400, 399, + 398, 397, 396, 395, 393, 390, 388, 387, 386, 384, + 383, 382, 381, 380, 379, 378, 374, 373, 372, 371, + 370, 367, 366, 365, 364, 363, 362, 361, 360, 359, + 358, 356, 355, 354, 353, 352, 351, 350, 348, 347, + 346, 345, 344, 343, 342, 341, 340, 338, 337, 336, + 335, 334, 333, 332, 328, 327, 325, 320, 319, 318, + 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, + 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, + + 296, 295, 294, 293, 292, 290, 289, 287, 286, 282, + 281, 280, 278, 277, 276, 275, 272, 271, 270, 269, + 268, 267, 264, 262, 261, 260, 259, 244, 241, 240, + 239, 238, 236, 235, 234, 233, 232, 231, 230, 229, + 228, 227, 226, 225, 224, 223, 222, 221, 219, 217, + 216, 215, 214, 212, 211, 210, 209, 208, 207, 206, + 205, 204, 203, 202, 201, 200, 198, 197, 196, 195, + 194, 193, 192, 191, 190, 188, 187, 186, 185, 184, + 183, 182, 181, 180, 169, 144, 143, 141, 139, 138, + 137, 136, 134, 131, 129, 128, 127, 126, 125, 124, + + 123, 122, 121, 120, 119, 118, 117, 114, 113, 112, + 111, 109, 108, 107, 105, 103, 102, 101, 100, 99, + 97, 96, 94, 90, 79, 63, 55, 54, 52, 49, + 48, 45, 42, 37, 35, 34, 27, 16, 13, 7, + 3, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 499, 499 } ; static yy_state_type yy_last_accepting_state; @@ -869,7 +862,6 @@ static double processFloat (void); static /*@only@*/ exprNode processString (void); static long processDec (void); static long processHex (void); -static long processOctal (void); static int processIdentifier (/*@only@*/ cstring) /*@globals undef lastidprocessed@*/ ; static bool processHashIdentifier (/*@only@*/ cstring) @@ -951,7 +943,7 @@ static void setTokLengthT (size_t len) } # include "flex.head" -#line 872 "lex.yy.c" +#line 864 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1102,10 +1094,10 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 190 "cscanner.l" +#line 189 "cscanner.l" -#line 1026 "lex.yy.c" +#line 1018 "lex.yy.c" if ( yy_init ) { @@ -1156,13 +1148,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 509 ) + if ( yy_current_state >= 500 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 660 ); + while ( yy_base[yy_current_state] != 642 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1190,12 +1182,12 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 192 "cscanner.l" +#line 191 "cscanner.l" { llfatalbug (cstring_makeLiteral ("Comment in pre-processor output")); } YY_BREAK case 2: YY_RULE_SETUP -#line 194 "cscanner.l" +#line 193 "cscanner.l" { context_saveLocation (); setTokLength (longUnsigned_toInt (mstring_length (yytext))); @@ -1223,7 +1215,7 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 218 "cscanner.l" +#line 217 "cscanner.l" { if (handleSpecial (yytext)) { setTokLength (1); RETURN_TOK (0); @@ -1232,385 +1224,385 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 223 "cscanner.l" +#line 222 "cscanner.l" { setTokLength (3); RETURN_TOK (CTOK_ELIPSIS); } YY_BREAK case 5: YY_RULE_SETUP -#line 224 "cscanner.l" +#line 223 "cscanner.l" { setTokLength (5); RETURN_TOK (BREAK); } YY_BREAK case 6: YY_RULE_SETUP -#line 225 "cscanner.l" +#line 224 "cscanner.l" { setTokLength (4); RETURN_TOK (CASE); } YY_BREAK case 7: YY_RULE_SETUP -#line 226 "cscanner.l" +#line 225 "cscanner.l" { setTokLength (8); RETURN_TOK (CONTINUE); } YY_BREAK case 8: YY_RULE_SETUP -#line 227 "cscanner.l" +#line 226 "cscanner.l" { setTokLength (7); RETURN_TOK (DEFAULT); } YY_BREAK case 9: YY_RULE_SETUP -#line 228 "cscanner.l" +#line 227 "cscanner.l" { setTokLength (2); RETURN_TOK (DO); } YY_BREAK case 10: YY_RULE_SETUP -#line 229 "cscanner.l" +#line 228 "cscanner.l" { setTokLength (4); RETURN_TOK (CELSE); } YY_BREAK case 11: YY_RULE_SETUP -#line 230 "cscanner.l" +#line 229 "cscanner.l" { setTokLength (3); RETURN_TOK (CFOR); } YY_BREAK case 12: YY_RULE_SETUP -#line 231 "cscanner.l" +#line 230 "cscanner.l" { setTokLength (4); RETURN_TOK (GOTO); } YY_BREAK case 13: YY_RULE_SETUP -#line 232 "cscanner.l" +#line 231 "cscanner.l" { setTokLength (2); RETURN_TOK (CIF); } YY_BREAK case 14: YY_RULE_SETUP -#line 233 "cscanner.l" +#line 232 "cscanner.l" { setTokLength (6); RETURN_TOK (RETURN); } YY_BREAK case 15: YY_RULE_SETUP -#line 234 "cscanner.l" +#line 233 "cscanner.l" { setTokLength (6); RETURN_TOK (CSIZEOF); } YY_BREAK case 16: YY_RULE_SETUP -#line 235 "cscanner.l" +#line 234 "cscanner.l" { setTokLength (8); RETURN_TOK (COFFSETOF); } YY_BREAK case 17: YY_RULE_SETUP -#line 236 "cscanner.l" +#line 235 "cscanner.l" { setTokLength (6); RETURN_TOK (SWITCH); } YY_BREAK case 18: YY_RULE_SETUP -#line 237 "cscanner.l" +#line 236 "cscanner.l" { setTokLength (5); RETURN_TOK (WHILE); } YY_BREAK case 19: YY_RULE_SETUP -#line 238 "cscanner.l" +#line 237 "cscanner.l" { setTokLength (6); RETURN_TOK (VA_ARG); } YY_BREAK case 20: YY_RULE_SETUP -#line 239 "cscanner.l" +#line 238 "cscanner.l" { setTokLength (6); RETURN_TOK (VA_DCL); } YY_BREAK case 21: YY_RULE_SETUP -#line 240 "cscanner.l" +#line 239 "cscanner.l" { /* gcc extension...this might not be appropriate */ setTokLength (6); RETURN_TOK (QINLINE); } YY_BREAK case 22: YY_RULE_SETUP -#line 244 "cscanner.l" +#line 243 "cscanner.l" { setTokLength (6); RETURN_TOK (CSTRUCT); } YY_BREAK case 23: YY_RULE_SETUP -#line 245 "cscanner.l" +#line 244 "cscanner.l" { setTokLength (7); RETURN_TOK (CTYPEDEF); } YY_BREAK case 24: YY_RULE_SETUP -#line 247 "cscanner.l" +#line 246 "cscanner.l" { setTokLength (5); RETURN_TOK (CUNION); } YY_BREAK case 25: YY_RULE_SETUP -#line 248 "cscanner.l" +#line 247 "cscanner.l" { setTokLength (4); RETURN_TOK (CENUM); } YY_BREAK case 26: YY_RULE_SETUP -#line 250 "cscanner.l" +#line 249 "cscanner.l" { setTokLength (4); RETURN_TYPE (CVOID, ctype_void); } YY_BREAK case 27: YY_RULE_SETUP -#line 251 "cscanner.l" +#line 250 "cscanner.l" { setTokLength (3); RETURN_TYPE (CINT, ctype_int); } YY_BREAK case 28: YY_RULE_SETUP -#line 252 "cscanner.l" +#line 251 "cscanner.l" { setTokLength (6); RETURN_TYPE (CDOUBLE, ctype_double); } YY_BREAK case 29: YY_RULE_SETUP -#line 253 "cscanner.l" +#line 252 "cscanner.l" { setTokLength (4); RETURN_TYPE (CGCHAR, ctype_char); } YY_BREAK case 30: YY_RULE_SETUP -#line 254 "cscanner.l" +#line 253 "cscanner.l" { setTokLength (5); RETURN_TYPE (CGFLOAT, ctype_float); } YY_BREAK case 31: YY_RULE_SETUP -#line 256 "cscanner.l" +#line 255 "cscanner.l" { setTokLength (4); RETURN_TOK (QLONG); } YY_BREAK case 32: YY_RULE_SETUP -#line 257 "cscanner.l" +#line 256 "cscanner.l" { setTokLength (5); RETURN_TOK (QSHORT); } YY_BREAK case 33: YY_RULE_SETUP -#line 258 "cscanner.l" +#line 257 "cscanner.l" { setTokLength (8); RETURN_TOK (QUNSIGNED); } YY_BREAK case 34: YY_RULE_SETUP -#line 259 "cscanner.l" +#line 258 "cscanner.l" { setTokLength (6); RETURN_TOK (QSIGNED); } YY_BREAK case 35: YY_RULE_SETUP -#line 261 "cscanner.l" +#line 260 "cscanner.l" { setTokLength (8); RETURN_TOK (QVOLATILE); } YY_BREAK case 36: YY_RULE_SETUP -#line 262 "cscanner.l" +#line 261 "cscanner.l" { setTokLength (5); RETURN_TOK (QCONST); } YY_BREAK /* some systems expect this! [gack!] */ case 37: YY_RULE_SETUP -#line 265 "cscanner.l" +#line 264 "cscanner.l" { setTokLength (7); RETURN_TOK (QCONST); } YY_BREAK case 38: YY_RULE_SETUP -#line 267 "cscanner.l" +#line 266 "cscanner.l" { setTokLength (6); RETURN_TOK (QEXTERN); } YY_BREAK case 39: YY_RULE_SETUP -#line 268 "cscanner.l" +#line 267 "cscanner.l" { setTokLength (4); RETURN_TOK (QAUTO); } YY_BREAK case 40: YY_RULE_SETUP -#line 269 "cscanner.l" +#line 268 "cscanner.l" { setTokLength (8); RETURN_TOK (QREGISTER); } YY_BREAK case 41: YY_RULE_SETUP -#line 270 "cscanner.l" +#line 269 "cscanner.l" { setTokLength (6); RETURN_TOK (QSTATIC); } YY_BREAK case 42: YY_RULE_SETUP -#line 272 "cscanner.l" +#line 271 "cscanner.l" { RETURN_EXPR (processString ()); } YY_BREAK case 43: YY_RULE_SETUP -#line 273 "cscanner.l" +#line 272 "cscanner.l" { return (processSpec (QOUT)); } YY_BREAK case 44: YY_RULE_SETUP -#line 274 "cscanner.l" +#line 273 "cscanner.l" { return (processSpec (QIN)); } YY_BREAK case 45: YY_RULE_SETUP -#line 275 "cscanner.l" +#line 274 "cscanner.l" { return (processSpec (QPARTIAL)); } YY_BREAK case 46: YY_RULE_SETUP -#line 276 "cscanner.l" +#line 275 "cscanner.l" { return (processSpec (QSPECIAL)); } YY_BREAK case 47: YY_RULE_SETUP -#line 277 "cscanner.l" +#line 276 "cscanner.l" { return (processSpec (QANYTYPE)); } YY_BREAK case 48: YY_RULE_SETUP -#line 278 "cscanner.l" +#line 277 "cscanner.l" { return (processSpec (QINTEGRALTYPE)); } YY_BREAK case 49: YY_RULE_SETUP -#line 279 "cscanner.l" +#line 278 "cscanner.l" { return (processSpec (QUNSIGNEDINTEGRALTYPE)); } YY_BREAK case 50: YY_RULE_SETUP -#line 280 "cscanner.l" +#line 279 "cscanner.l" { return (processSpec (QSIGNEDINTEGRALTYPE)); } YY_BREAK case 51: YY_RULE_SETUP -#line 281 "cscanner.l" +#line 280 "cscanner.l" { return (processSpec (QKEEP)); } YY_BREAK case 52: YY_RULE_SETUP -#line 282 "cscanner.l" +#line 281 "cscanner.l" { return (processSpec (QNULL)); } YY_BREAK case 53: YY_RULE_SETUP -#line 283 "cscanner.l" +#line 282 "cscanner.l" { return (processSpec (QNOTNULL)); } YY_BREAK case 54: YY_RULE_SETUP -#line 284 "cscanner.l" +#line 283 "cscanner.l" { return (processSpec (QISNULL)); } YY_BREAK case 55: YY_RULE_SETUP -#line 285 "cscanner.l" +#line 284 "cscanner.l" { return (processSpec (QTRUENULL)); } YY_BREAK case 56: YY_RULE_SETUP -#line 286 "cscanner.l" +#line 285 "cscanner.l" { return (processSpec (QFALSENULL)); } YY_BREAK case 57: YY_RULE_SETUP -#line 287 "cscanner.l" +#line 286 "cscanner.l" { return (processSpec (QRELNULL)); } YY_BREAK case 58: YY_RULE_SETUP -#line 288 "cscanner.l" +#line 287 "cscanner.l" { return (processSpec (QRELDEF)); } YY_BREAK case 59: YY_RULE_SETUP -#line 289 "cscanner.l" +#line 288 "cscanner.l" { return (processSpec (QEXPOSED)); } YY_BREAK case 60: YY_RULE_SETUP -#line 290 "cscanner.l" +#line 289 "cscanner.l" { return (processSpec (QNEWREF)); } YY_BREAK case 61: YY_RULE_SETUP -#line 291 "cscanner.l" +#line 290 "cscanner.l" { return (processSpec (QTEMPREF)); } YY_BREAK case 62: YY_RULE_SETUP -#line 292 "cscanner.l" +#line 291 "cscanner.l" { return (processSpec (QKILLREF)); } YY_BREAK case 63: YY_RULE_SETUP -#line 293 "cscanner.l" +#line 292 "cscanner.l" { return (processSpec (QREFCOUNTED)); } YY_BREAK case 64: YY_RULE_SETUP -#line 294 "cscanner.l" +#line 293 "cscanner.l" { return (processSpec (QCHECKED)); } YY_BREAK case 65: YY_RULE_SETUP -#line 295 "cscanner.l" +#line 294 "cscanner.l" { return (processSpec (QCHECKMOD)); } YY_BREAK case 66: YY_RULE_SETUP -#line 296 "cscanner.l" +#line 295 "cscanner.l" { return (processSpec (QCHECKEDSTRICT)); } YY_BREAK case 67: YY_RULE_SETUP -#line 297 "cscanner.l" +#line 296 "cscanner.l" { return (processSpec (QUNCHECKED)); } YY_BREAK case 68: YY_RULE_SETUP -#line 298 "cscanner.l" +#line 297 "cscanner.l" { return (processSpec (QONLY)); } YY_BREAK case 69: YY_RULE_SETUP -#line 299 "cscanner.l" +#line 298 "cscanner.l" { return (processSpec (QOWNED)); } YY_BREAK case 70: YY_RULE_SETUP -#line 300 "cscanner.l" +#line 299 "cscanner.l" { return (processSpec (QOBSERVER)); } YY_BREAK case 71: YY_RULE_SETUP -#line 301 "cscanner.l" +#line 300 "cscanner.l" { return (processSpec (QDEPENDENT)); } YY_BREAK case 72: YY_RULE_SETUP -#line 302 "cscanner.l" +#line 301 "cscanner.l" { return (processSpec (QUNUSED)); } YY_BREAK case 73: YY_RULE_SETUP -#line 303 "cscanner.l" +#line 302 "cscanner.l" { return (processSpec (QEXTERNAL)); } YY_BREAK case 74: YY_RULE_SETUP -#line 304 "cscanner.l" +#line 303 "cscanner.l" { return (processSpec (QSEF)); } YY_BREAK case 75: YY_RULE_SETUP -#line 305 "cscanner.l" +#line 304 "cscanner.l" { return (processSpec (QSHARED)); } YY_BREAK case 76: YY_RULE_SETUP -#line 306 "cscanner.l" +#line 305 "cscanner.l" { return (processSpec (QYIELD)); } YY_BREAK case 77: YY_RULE_SETUP -#line 307 "cscanner.l" +#line 306 "cscanner.l" { return (processSpec (QUNDEF)); } YY_BREAK case 78: YY_RULE_SETUP -#line 308 "cscanner.l" +#line 307 "cscanner.l" { return (processSpec (QKILLED)); } YY_BREAK case 79: YY_RULE_SETUP -#line 309 "cscanner.l" +#line 308 "cscanner.l" { int tok; context_saveLocation (); setTokLength (longUnsigned_toInt (mstring_length (yytext))); @@ -1623,424 +1615,370 @@ YY_RULE_SETUP YY_BREAK case 80: YY_RULE_SETUP -#line 318 "cscanner.l" +#line 317 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_int, processHex ()); /* evs 2000-05-17 was ctype_uint */ + RETURN_INT (ctype_uint, processHex ()); } YY_BREAK case 81: YY_RULE_SETUP -#line 321 "cscanner.l" +#line 320 "cscanner.l" { setTokLengthT (mstring_length (yytext)); RETURN_INT (ctype_lint, processHex ()); } YY_BREAK case 82: YY_RULE_SETUP -#line 323 "cscanner.l" +#line 322 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_llint, processHex ()); } + RETURN_INT (ctype_uint, processHex ()); } YY_BREAK case 83: YY_RULE_SETUP -#line 325 "cscanner.l" +#line 324 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_uint, processHex ()); } + RETURN_INT (ctype_ulint, processHex ()); } YY_BREAK case 84: YY_RULE_SETUP -#line 327 "cscanner.l" +#line 326 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ulint, processHex ()); } + RETURN_INT (ctype_int, processDec ()); } YY_BREAK case 85: YY_RULE_SETUP -#line 329 "cscanner.l" +#line 328 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ullint, processHex ()); } + RETURN_INT (ctype_uint, processDec ()); } YY_BREAK case 86: YY_RULE_SETUP -#line 331 "cscanner.l" +#line 330 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ullint, processHex ()); } + RETURN_INT (ctype_lint, processDec ()); } YY_BREAK case 87: YY_RULE_SETUP -#line 333 "cscanner.l" +#line 332 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_int, processOctal ()); } + RETURN_INT (ctype_ulint, processDec ()); } YY_BREAK case 88: YY_RULE_SETUP -#line 335 "cscanner.l" +#line 334 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_uint, processOctal ()); } + RETURN_INT (ctype_int, processDec ()); } YY_BREAK case 89: YY_RULE_SETUP -#line 337 "cscanner.l" +#line 336 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_lint, processOctal ()); } + RETURN_INT (ctype_uint, processDec ()); } YY_BREAK case 90: YY_RULE_SETUP -#line 339 "cscanner.l" +#line 338 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_llint, processOctal ()); } + RETURN_INT (ctype_lint, processDec ()); } YY_BREAK case 91: YY_RULE_SETUP -#line 341 "cscanner.l" +#line 340 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ulint, processOctal ()); } + RETURN_INT (ctype_ulint, processDec ()); } YY_BREAK case 92: YY_RULE_SETUP -#line 343 "cscanner.l" +#line 342 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ullint, processOctal ()); } + RETURN_CHAR (processChar ()); } YY_BREAK case 93: YY_RULE_SETUP -#line 345 "cscanner.l" +#line 344 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ullint, processOctal ()); } + RETURN_FLOAT (ctype_float, processFloat ()); } YY_BREAK case 94: YY_RULE_SETUP -#line 347 "cscanner.l" +#line 346 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_int, processDec ()); } + RETURN_FLOAT (ctype_ldouble, processFloat ()); } YY_BREAK case 95: YY_RULE_SETUP -#line 349 "cscanner.l" +#line 348 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_uint, processDec ()); } + RETURN_FLOAT (ctype_double, processFloat ()); } YY_BREAK case 96: YY_RULE_SETUP #line 351 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_lint, processDec ()); } + RETURN_FLOAT (ctype_float, processFloat ()); } YY_BREAK case 97: YY_RULE_SETUP #line 353 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_llint, processDec ()); } + RETURN_FLOAT (ctype_ldouble, processFloat ()); } YY_BREAK case 98: YY_RULE_SETUP #line 355 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ulint, processDec ()); } + RETURN_FLOAT (ctype_double, processFloat ()); } YY_BREAK case 99: YY_RULE_SETUP -#line 357 "cscanner.l" +#line 358 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ullint, processDec ()); } + RETURN_FLOAT (ctype_float, processFloat ()); } YY_BREAK case 100: YY_RULE_SETUP -#line 359 "cscanner.l" +#line 360 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ullint, processDec ()); } + RETURN_FLOAT (ctype_ldouble, processFloat ()); } YY_BREAK case 101: YY_RULE_SETUP -#line 361 "cscanner.l" +#line 362 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_CHAR (processChar ()); } + RETURN_FLOAT (ctype_double, processFloat ()); } YY_BREAK case 102: YY_RULE_SETUP -#line 363 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_float, processFloat ()); } - YY_BREAK -case 103: -YY_RULE_SETUP #line 365 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_ldouble, processFloat ()); } - YY_BREAK -case 104: -YY_RULE_SETUP -#line 367 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_double, processFloat ()); } - YY_BREAK -case 105: -YY_RULE_SETUP -#line 370 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_float, processFloat ()); } - YY_BREAK -case 106: -YY_RULE_SETUP -#line 372 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_ldouble, processFloat ()); } - YY_BREAK -case 107: -YY_RULE_SETUP -#line 374 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_double, processFloat ()); } - YY_BREAK -case 108: -YY_RULE_SETUP -#line 377 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_float, processFloat ()); } - YY_BREAK -case 109: -YY_RULE_SETUP -#line 379 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_ldouble, processFloat ()); } - YY_BREAK -case 110: -YY_RULE_SETUP -#line 381 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_double, processFloat ()); } - YY_BREAK -case 111: -YY_RULE_SETUP -#line 384 "cscanner.l" { setTokLength (3); RETURN_TOK (RIGHT_ASSIGN); } YY_BREAK -case 112: +case 103: YY_RULE_SETUP -#line 385 "cscanner.l" +#line 366 "cscanner.l" { setTokLength (3); RETURN_TOK (LEFT_ASSIGN); } YY_BREAK -case 113: +case 104: YY_RULE_SETUP -#line 386 "cscanner.l" +#line 367 "cscanner.l" { setTokLength (2); RETURN_TOK (ADD_ASSIGN); } YY_BREAK -case 114: +case 105: YY_RULE_SETUP -#line 387 "cscanner.l" +#line 368 "cscanner.l" { setTokLength (2); RETURN_TOK (SUB_ASSIGN); } YY_BREAK -case 115: +case 106: YY_RULE_SETUP -#line 388 "cscanner.l" +#line 369 "cscanner.l" { setTokLength (2); RETURN_TOK (MUL_ASSIGN); } YY_BREAK -case 116: +case 107: YY_RULE_SETUP -#line 389 "cscanner.l" +#line 370 "cscanner.l" { setTokLength (2); RETURN_TOK (DIV_ASSIGN); } YY_BREAK -case 117: +case 108: YY_RULE_SETUP -#line 390 "cscanner.l" +#line 371 "cscanner.l" { setTokLength (2); RETURN_TOK (MOD_ASSIGN); } YY_BREAK -case 118: +case 109: YY_RULE_SETUP -#line 391 "cscanner.l" +#line 372 "cscanner.l" { setTokLength (2); RETURN_TOK (AND_ASSIGN); } YY_BREAK -case 119: +case 110: YY_RULE_SETUP -#line 392 "cscanner.l" +#line 373 "cscanner.l" { setTokLength (2); RETURN_TOK (XOR_ASSIGN); } YY_BREAK -case 120: +case 111: YY_RULE_SETUP -#line 393 "cscanner.l" +#line 374 "cscanner.l" { setTokLength (2); RETURN_TOK (OR_ASSIGN); } YY_BREAK -case 121: +case 112: YY_RULE_SETUP -#line 394 "cscanner.l" +#line 375 "cscanner.l" { setTokLength (2); RETURN_TOK (RIGHT_OP); } YY_BREAK -case 122: +case 113: YY_RULE_SETUP -#line 395 "cscanner.l" +#line 376 "cscanner.l" { setTokLength (2); RETURN_TOK (LEFT_OP); } YY_BREAK -case 123: +case 114: YY_RULE_SETUP -#line 396 "cscanner.l" +#line 377 "cscanner.l" { setTokLength (2); RETURN_TOK (INC_OP); } YY_BREAK -case 124: +case 115: YY_RULE_SETUP -#line 397 "cscanner.l" +#line 378 "cscanner.l" { setTokLength (2); RETURN_TOK (DEC_OP); } YY_BREAK -case 125: +case 116: YY_RULE_SETUP -#line 398 "cscanner.l" +#line 379 "cscanner.l" { setTokLength (2); RETURN_TOK (ARROW_OP); } YY_BREAK -case 126: +case 117: YY_RULE_SETUP -#line 399 "cscanner.l" +#line 380 "cscanner.l" { setTokLength (2); RETURN_TOK (AND_OP); } YY_BREAK -case 127: +case 118: YY_RULE_SETUP -#line 400 "cscanner.l" +#line 381 "cscanner.l" { setTokLength (2); RETURN_TOK (OR_OP); } YY_BREAK -case 128: +case 119: YY_RULE_SETUP -#line 401 "cscanner.l" +#line 382 "cscanner.l" { setTokLength (2); RETURN_TOK (LE_OP); } YY_BREAK -case 129: +case 120: YY_RULE_SETUP -#line 402 "cscanner.l" +#line 383 "cscanner.l" { setTokLength (2); RETURN_TOK (GE_OP); } YY_BREAK -case 130: +case 121: YY_RULE_SETUP -#line 403 "cscanner.l" +#line 384 "cscanner.l" { setTokLength (2); RETURN_TOK (EQ_OP); } YY_BREAK -case 131: +case 122: YY_RULE_SETUP -#line 404 "cscanner.l" +#line 385 "cscanner.l" { setTokLength (2); RETURN_TOK (NE_OP); } YY_BREAK -case 132: +case 123: YY_RULE_SETUP -#line 405 "cscanner.l" +#line 386 "cscanner.l" { setTokLength (1); RETURN_TOK (TSEMI); } YY_BREAK -case 133: +case 124: YY_RULE_SETUP -#line 406 "cscanner.l" +#line 387 "cscanner.l" { setTokLength (1); RETURN_TOK (TLBRACE); } YY_BREAK -case 134: +case 125: YY_RULE_SETUP -#line 407 "cscanner.l" +#line 388 "cscanner.l" { setTokLength (1); RETURN_TOK (TRBRACE); } YY_BREAK -case 135: +case 126: YY_RULE_SETUP -#line 408 "cscanner.l" +#line 389 "cscanner.l" { setTokLength (1); RETURN_TOK (TCOMMA); } YY_BREAK -case 136: +case 127: YY_RULE_SETUP -#line 409 "cscanner.l" +#line 390 "cscanner.l" { setTokLength (1); RETURN_TOK (TCOLON); } YY_BREAK -case 137: +case 128: YY_RULE_SETUP -#line 410 "cscanner.l" +#line 391 "cscanner.l" { setTokLength (1); RETURN_TOK (TASSIGN); } YY_BREAK -case 138: +case 129: YY_RULE_SETUP -#line 411 "cscanner.l" +#line 392 "cscanner.l" { setTokLength (1); RETURN_TOK (TLPAREN); } YY_BREAK -case 139: +case 130: YY_RULE_SETUP -#line 412 "cscanner.l" +#line 393 "cscanner.l" { setTokLength (1); RETURN_TOK (TRPAREN); } YY_BREAK -case 140: +case 131: YY_RULE_SETUP -#line 413 "cscanner.l" +#line 394 "cscanner.l" { setTokLength (1); RETURN_TOK (TLSQBR); } YY_BREAK -case 141: +case 132: YY_RULE_SETUP -#line 414 "cscanner.l" +#line 395 "cscanner.l" { setTokLength (1); RETURN_TOK (TRSQBR); } YY_BREAK -case 142: +case 133: YY_RULE_SETUP -#line 415 "cscanner.l" +#line 396 "cscanner.l" { setTokLength (1); RETURN_TOK (TDOT); } YY_BREAK -case 143: +case 134: YY_RULE_SETUP -#line 416 "cscanner.l" +#line 397 "cscanner.l" { setTokLength (1); RETURN_TOK (TAMPERSAND); } YY_BREAK -case 144: +case 135: YY_RULE_SETUP -#line 417 "cscanner.l" +#line 398 "cscanner.l" { setTokLength (1); RETURN_TOK (TEXCL); } YY_BREAK -case 145: +case 136: YY_RULE_SETUP -#line 420 "cscanner.l" +#line 401 "cscanner.l" { setTokLength (1); RETURN_TOK (TTILDE); } YY_BREAK -case 146: +case 137: YY_RULE_SETUP -#line 421 "cscanner.l" +#line 402 "cscanner.l" { setTokLength (1); RETURN_TOK (TMINUS); } YY_BREAK -case 147: +case 138: YY_RULE_SETUP -#line 422 "cscanner.l" +#line 403 "cscanner.l" { setTokLength (1); RETURN_TOK (TPLUS); } YY_BREAK -case 148: +case 139: YY_RULE_SETUP -#line 423 "cscanner.l" +#line 404 "cscanner.l" { setTokLength (1); RETURN_TOK (TMULT); } YY_BREAK -case 149: +case 140: YY_RULE_SETUP -#line 424 "cscanner.l" +#line 405 "cscanner.l" { setTokLength (1); RETURN_TOK (TDIV); } YY_BREAK -case 150: +case 141: YY_RULE_SETUP -#line 425 "cscanner.l" +#line 406 "cscanner.l" { setTokLength (1); RETURN_TOK (TPERCENT); } YY_BREAK -case 151: +case 142: YY_RULE_SETUP -#line 426 "cscanner.l" +#line 407 "cscanner.l" { setTokLength (1); RETURN_TOK (TLT); } YY_BREAK -case 152: +case 143: YY_RULE_SETUP -#line 427 "cscanner.l" +#line 408 "cscanner.l" { setTokLength (1); RETURN_TOK (TGT); } YY_BREAK -case 153: +case 144: YY_RULE_SETUP -#line 428 "cscanner.l" +#line 409 "cscanner.l" { setTokLength (1); RETURN_TOK (TCIRC); } YY_BREAK -case 154: +case 145: YY_RULE_SETUP -#line 429 "cscanner.l" +#line 410 "cscanner.l" { setTokLength (1); RETURN_TOK (TBAR); } YY_BREAK -case 155: +case 146: YY_RULE_SETUP -#line 430 "cscanner.l" +#line 411 "cscanner.l" { setTokLength (1); RETURN_TOK (TQUEST); } YY_BREAK -case 156: +case 147: YY_RULE_SETUP -#line 432 "cscanner.l" +#line 413 "cscanner.l" { incColumn (); } YY_BREAK -case 157: +case 148: YY_RULE_SETUP -#line 433 "cscanner.l" +#line 414 "cscanner.l" { context_incLineno (); if (continueLine) { @@ -2058,9 +1996,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 149: YY_RULE_SETUP -#line 449 "cscanner.l" +#line 430 "cscanner.l" { setTokLength (6); if (processMacro ()) { @@ -2079,9 +2017,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 150: YY_RULE_SETUP -#line 466 "cscanner.l" +#line 447 "cscanner.l" { if (context_inHeader () || context_inFunction ()) { handleMacro (); @@ -2119,79 +2057,79 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 151: YY_RULE_SETUP -#line 502 "cscanner.l" +#line 483 "cscanner.l" { setTokLength (4); lldiagmsg (ctype_unparseTable ()); } YY_BREAK -case 161: +case 152: YY_RULE_SETUP -#line 503 "cscanner.l" +#line 484 "cscanner.l" { setTokLength (3); lldiagmsg (message ("%q: *** marker ***", fileloc_unparse (g_currentloc))); } YY_BREAK -case 162: +case 153: YY_RULE_SETUP -#line 506 "cscanner.l" +#line 487 "cscanner.l" { setTokLength (3); usymtab_printLocal (); } YY_BREAK -case 163: +case 154: YY_RULE_SETUP -#line 507 "cscanner.l" +#line 488 "cscanner.l" { setTokLength (3); lldiagmsg (usymtab_unparseAliases ()); } YY_BREAK -case 164: +case 155: YY_RULE_SETUP -#line 508 "cscanner.l" +#line 489 "cscanner.l" { setTokLength (3); lldiagmsg (context_unparse ()); } YY_BREAK -case 165: +case 156: YY_RULE_SETUP -#line 509 "cscanner.l" +#line 490 "cscanner.l" { setTokLength (3); lldiagmsg (context_unparseClauses ()); } YY_BREAK -case 166: +case 157: YY_RULE_SETUP -#line 510 "cscanner.l" +#line 491 "cscanner.l" { setTokLength (3); usymtab_printGuards (); } YY_BREAK -case 167: +case 158: YY_RULE_SETUP -#line 511 "cscanner.l" +#line 492 "cscanner.l" { setTokLength (3); usymtab_printOut (); } YY_BREAK -case 168: +case 159: YY_RULE_SETUP -#line 512 "cscanner.l" +#line 493 "cscanner.l" { setTokLength (3); usymtab_printAll (); } YY_BREAK -case 169: +case 160: YY_RULE_SETUP -#line 513 "cscanner.l" +#line 494 "cscanner.l" { setTokLength (3); usymtab_printComplete (); } YY_BREAK -case 170: +case 161: YY_RULE_SETUP -#line 514 "cscanner.l" +#line 495 "cscanner.l" { setTokLength (3); usymtab_printTypes (); } YY_BREAK -case 171: +case 162: YY_RULE_SETUP -#line 515 "cscanner.l" +#line 496 "cscanner.l" { setTokLength (3); lldiagmsg (usymtab_unparseStack ()); } YY_BREAK -case 172: +case 163: YY_RULE_SETUP -#line 516 "cscanner.l" +#line 497 "cscanner.l" { setTokLength (3); lldiagmsg (message ("Can modify: %q", sRefSet_unparse (context_modList ()))); } YY_BREAK -case 173: +case 164: YY_RULE_SETUP -#line 520 "cscanner.l" +#line 501 "cscanner.l" { /* BEFORE_COMMENT_MARKER */ int tok; incColumn (); incColumn (); @@ -2202,22 +2140,22 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 165: YY_RULE_SETUP -#line 529 "cscanner.l" +#line 510 "cscanner.l" { /* AFTER_COMMENT_MARKER */ setTokLength (2); inSpecPart = FALSE; RETURN_TOK (QENDMACRO); } YY_BREAK -case 175: +case 166: YY_RULE_SETUP -#line 533 "cscanner.l" +#line 514 "cscanner.l" { incColumn (); continueLine = TRUE; } YY_BREAK -case 176: +case 167: YY_RULE_SETUP -#line 534 "cscanner.l" +#line 515 "cscanner.l" { incColumn (); voptgenerror (FLG_SYNTAX, @@ -2226,12 +2164,12 @@ YY_RULE_SETUP g_currentloc); } YY_BREAK -case 177: +case 168: YY_RULE_SETUP -#line 541 "cscanner.l" +#line 522 "cscanner.l" ECHO; YY_BREAK -#line 2152 "lex.yy.c" +#line 2090 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2523,7 +2461,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 509 ) + if ( yy_current_state >= 500 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2558,11 +2496,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 509 ) + if ( yy_current_state >= 500 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 508); + yy_is_jam = (yy_current_state == 499); return yy_is_jam ? 0 : yy_current_state; } @@ -3117,7 +3055,7 @@ int main() return 0; } #endif -#line 541 "cscanner.l" +#line 522 "cscanner.l" struct skeyword @@ -4393,25 +4331,16 @@ static bool handleSpecial (char *yyt) } else { - if (mstring_equal (ol, "")) { - DPRINTF (("Empty pp command!")); - /* - ** evs 2000-05-16: This is a horrible kludge, to get around a bug (well, difficulty) in the pre-processor. - ** We handle a plain # in the input file, by echoing it, and ignoring it in the post-pp-file. - */ - mstring_free (ol); - return FALSE; - } else { - if (!reportcpp) - { - - } else { - llbug (message ("File contains preprocessor command: #%s", + if (!reportcpp) + { + llerror (FLG_SYNTAX, + message ("File contains preprocessor command: #%s. " + "Check LCLINT_CPPCMD environment variable. " + "(Further instances unreported)", cstring_fromChars (ol))); - reportcpp = TRUE; - } - } - + reportcpp = TRUE; + } + sfree (ol); return TRUE; } @@ -4428,6 +4357,7 @@ static int handleLlSpecial () char *os; int tok; int charsread = 0; + bool isstart = FALSE; while (((ic = ninput ()) != 0) && isalpha (ic)) { @@ -4462,12 +4392,12 @@ static int handleLlSpecial () { tokLength = charsread; sfree (os); - inSpecPart = TRUE; - return tok; + inSpecPart = TRUE; + return tok; } - + /* Add rest of the comment */ - + if (ic != 0 && ic != EOF) { c = (char) ic; @@ -4951,28 +4881,50 @@ static /*@only@*/ cstring makeIdentifier (char *s) return (id); } -/*@observer@*/ /*@dependent@*/ uentry coerceId (cstring cn) +/*@observer@*/ /*@dependent@*/ uentry coerceId (ctype c) { + cstring cn = LastIdentifier (); + + if (!(usymtab_exists (cn))) { - fileloc loc = fileloc_createExternal (); - - /* - ** We need to put this in a global scope, otherwise the sRef will be deallocated. - */ - - uentry ce = uentry_makeUnrecognized (cn, loc); - - if (!context_inIterEnd ()) + if (ctype_isUnknown (c)) + { + uentry ce; + fileloc loc = fileloc_createExternal (); + bool infunc = sRef_modInFunction (); + + if (infunc) + { + sRef_setGlobalScope (); + } + + ce = uentry_makeVariableLoc (cn, c); + uentry_setDefined (ce, loc); + fileloc_free (loc); + + if (!context_inIterEnd ()) + { + voptgenerror + (FLG_SYSTEMUNRECOG, + message ("Unrecognized (possibly system) identifier: %q", + uentry_getName (ce)), + uentry_whereLast (ce)); + } + + uentry_setHasNameError (ce); + ce = usymtab_supReturnFileEntry (ce); + + if (infunc) + { + sRef_clearGlobalScope (); + } + } + else { - voptgenerror - (FLG_SYSTEMUNRECOG, - message ("Unrecognized (possibly system) identifier: %q", - uentry_getName (ce)), - g_currentloc); + llcontbug (message ("coerceId: bad call: %t", c)); + return (uentry_makeVariableLoc (cn, ctype_unknown)); } - - return ce; } return (usymtab_lookup (cn)); @@ -4982,11 +4934,21 @@ static /*@only@*/ cstring makeIdentifier (char *s) ** like, coerceId, but doesn't supercede for iters */ -/*@observer@*/ uentry coerceIterId (cstring cn) +/*@observer@*/ uentry coerceIterId (ctype c) { + cstring cn = LastIdentifier (); + if (!(usymtab_exists (cn))) { - return uentry_undefined; + if (ctype_isUnknown (c)) + { + return uentry_undefined; + } + else + { + llcontbug (message ("coerceId: bad call: %t", c)); + return (uentry_makeVariableLoc (cn, ctype_unknown)); + } } return (usymtab_lookup (cn)); @@ -5000,9 +4962,7 @@ static /*@only@*/ cstring makeIdentifier (char *s) static int processIdentifier (cstring id) { uentry le; - - DPRINTF (("Process identifier: %s", id)); - + context_clearJustPopped (); lastidprocessed = id; @@ -5025,15 +4985,12 @@ static int processIdentifier (cstring id) } } - /* Consider handling: Defined by C99 as static const char __func__[] */ - if (context_getFlag (FLG_GNUEXTENSIONS)) { int tok = BADTOK; if (cstring_equalLit (id, "__stdcall") - || cstring_equalLit (id, "__cdecl") - || cstring_equalLit (id, "__extension__")) + || cstring_equalLit (id, "__cdecl")) { return BADTOK; } @@ -5053,21 +5010,8 @@ static int processIdentifier (cstring id) { tok = QCONST; } - else if (cstring_equalLit (id, "__alignof__")) - { - tok = CALIGNOF; /* alignof is parsed like sizeof */ - } - else if (cstring_equalLit (id, "__FUNCTION__") - || cstring_equalLit (id, "__PRETTY_FUNCTION__")) - { - /* These tokens hold the name of the current function as strings */ - yylval.expr = exprNode_stringLiteral (id, fileloc_copy (g_currentloc)); - tokLength = 0; - lastWasString = TRUE; - tok = CCONSTANT; - return tok; - } else if (cstring_equalLit (id, "__attribute__") + || cstring_equalLit (id, "__extension__") || cstring_equalLit (id, "__asm__") || cstring_equalLit (id, "_asm") || cstring_equalLit (id, "__asm") @@ -5167,7 +5111,15 @@ static int processIdentifier (cstring id) || (usebraces && ic == '}') || (!useparens && !usebraces)); - return BADTOK; + if (cstring_equalLit (id, "__extension__")) + { + tokLength = 0; + tok = QEXTENSION; + } + else + { + return BADTOK; + } } else if (cstring_equalLit (id, "inline") || cstring_equalLit (id, "__inline") @@ -5206,6 +5158,7 @@ static int processIdentifier (cstring id) if (g_expectingTypeName && (cstring_firstChar (id) == '_') && (cstring_secondChar (id) == '_')) { + yylval.ctyp = ctype_unknown; return (TYPE_NAME_OR_ID); } @@ -5321,7 +5274,7 @@ char processChar () if (fchar != '\\') return fchar; next = *(yytext + 2); - + switch (next) { case 'n': return '\n'; @@ -5344,68 +5297,15 @@ double processFloat () static long processHex () { - int index = 2; - long val = 0; - llassert (yytext[0] == '0' && (yytext[1] == 'X' || yytext[1] == 'x')); - while (yytext[index] != '\0') { - int tval; - char c = yytext[index]; - - if (c >= '0' && c <= '9') { - tval = (int) c - (int) '0'; - } else if (c >= 'A' && c <= 'F') { - tval = (int) c - (int) 'A' + 10; - } else if (c >= 'a' && c <= 'f') { - tval = (int) c - (int) 'a' + 10; - } else { - voptgenerror - (FLG_SYNTAX, - message ("Invalid character (%c) in hex constant: %s", - c, cstring_fromChars (yytext)), - g_currentloc); - break; - } - - val = (val * 16) + tval; - index++; - } - - DPRINTF (("Hex constant: %s = %ld", yytext, val)); - return val; -} - -static -long processOctal () -{ - int index = 1; - long val = 0; - - llassert (yytext[0] == '0' && yytext[1] != 'X' && yytext[1] != 'x'); - - while (yytext[index] != '\0') { - int tval; - char c = yytext[index]; - - if (c >= '0' && c <= '7') { - tval = (int) c - (int) '0'; - } else { - voptgenerror - (FLG_SYNTAX, - message ("Invalid character (%c) in octal constant: %s", - c, cstring_fromChars (yytext)), - g_currentloc); - break; - } - - val = (val * 8) + tval; - index++; - } + /* + ** Note: this does not get the correct value, but we only care + ** is it is non-zero. + */ - DPRINTF (("Octal constant: %s = %ld", yytext, val)); - return val; + return (atol (yytext + 2)); } static diff --git a/src/cscanner.l b/src/cscanner.l index 0eb50f2..9b0ab16 100644 --- a/src/cscanner.l +++ b/src/cscanner.l @@ -306,6 +306,7 @@ static void setTokLengthT (size_t len) "yield" { return (processSpec (QYIELD)); } "undef" { return (processSpec (QUNDEF)); } "killed" { return (processSpec (QKILLED)); } +"nullterminated" { return (processSpec (QNULLTERMINATED));} {Letter}({Letter}|{Digit})* { int tok; context_saveLocation (); setTokLength (longUnsigned_toInt (mstring_length (yytext))); @@ -607,6 +608,7 @@ struct skeyword s_keytable[] = { { "killref", QKILLREF } , { "null", QNULL } , { "relnull", QRELNULL } , + { "nullterminated", QNULLTERMINATED }, { "reldef", QRELDEF } , { "observer", QOBSERVER } , { "exits", QEXITS } , diff --git a/src/exprNode.c b/src/exprNode.c index 923457b..6110585 100644 --- a/src/exprNode.c +++ b/src/exprNode.c @@ -737,8 +737,18 @@ exprNode_stringLiteral (/*@only@*/ cstring t, /*@only@*/ fileloc loc) e->val = multiVal_makeString (cstring_fromCharsO (s)); e->edata = exprData_makeLiteral (t); e->sref = sRef_makeType (ctype_string); + /* Start modifications */ + /* This expr is null terminated, so we set the len and size */ + sRef_setNullTerminatedState(e->sref); + /* + TPRINTF("Len is set to : %d\n\n", strlen((char *)multiVal_forceString(e->val))); + TPRINTF("Size is set to : %d\n\n", strlen((char *)multiVal_forceString(e->val))); + TPRINTF("State is set to: %d\n\n", e->sref->bufinfo.bufstate); + */ + sRef_setLen(e->sref, strlen((char *)multiVal_forceString(e->val))); + sRef_setSize(e->sref, strlen((char *)multiVal_forceString(e->val))); - if (context_getFlag (FLG_READONLYSTRINGS)) + if (context_getFlag (FLG_READONLYSTRINGS)) { sRef_setAliasKind (e->sref, AK_STATIC, fileloc_undefined); sRef_setExKind (e->sref, XO_OBSERVER, loc); @@ -3584,6 +3594,50 @@ exprNode_postOp (/*@only@*/ exprNode e, /*@only@*/ lltok op) exprNode_checkModify (e, ret); + /* start modifications */ + /* added by Seejo on 4/16/2000 */ + + /* Arithmetic operations on pointers wil modify the size/len/null terminated + status */ + if ((sRef_isPossiblyNullTerminated (e->sref)) || (sRef_isNullTerminated(e->sref))) { + + ret->sref = sRef_copy (e->sref); + + /* Operator : ++ */ + if (lltok_getTok (op) == INC_OP) { + if (sRef_getSize(e->sref) > 0) { + + sRef_setSize (ret->sref, sRef_getSize(e->sref) - 1); + + if (sRef_getLen(e->sref) == 1) { /* i.e. the first character is \0 */ + /* Assumption: there is only 1 \0 in the buffer */ + /* This will not be correct if there are 2 \0's in the buffer */ + sRef_setNotNullTerminatedState(ret->sref); + sRef_resetLen(ret->sref); + } else { + sRef_setNullTerminatedState(ret->sref); + sRef_setLen (ret->sref, sRef_getLen(e->sref) - 1); + } + if (sRef_isNullTerminated (ret->sref)) + printf ("ret->sref is Null Terminated\n"); + else if (sRef_isPossiblyNullTerminated (ret->sref)) + printf ("ret->sref is Possibly Null Terminated\n"); + else if (sRef_isNotNullTerminated (ret->sref)) + printf ("ret->sref is Not Null Terminated\n"); + } + } + + /* Operator : -- */ + if (lltok_getTok (op) == DEC_OP) { + if (sRef_getSize(e->sref) >= 0) { + sRef_setSize (ret->sref, sRef_getSize(e->sref) + 1); + sRef_setLen (ret->sref, sRef_getLen(e->sref) + 1); + } + } + } + + /* end modifications */ + return ret; } @@ -3666,7 +3720,45 @@ exprNode_preOp (/*@only@*/ exprNode e, /*@only@*/ lltok op) } ret->typ = ctype_int; } - + + /* start modifications */ + /* added by Seejo on 4/16/2000 */ + + /* Arithmetic operations on pointers wil modify the size/len/null terminated + status */ + if ((sRef_isPossiblyNullTerminated (e->sref)) || (sRef_isNullTerminated(e->sref))) { + + ret->sref = sRef_copy (e->sref); + + /* Operator : ++ */ + if (lltok_getTok (op) == INC_OP) { + if (sRef_getSize(e->sref) > 0) { + + sRef_setSize (ret->sref, sRef_getSize(e->sref) - 1); + + if (sRef_getLen(e->sref) == 1) { /* i.e. the first character is \0 */ + /* Assumption: there is only 1 \0 in the buffer */ + /* This will not be correct if there are 2 \0's in the buffer */ + sRef_setNotNullTerminatedState(ret->sref); + sRef_resetLen (ret->sref); + } else { + sRef_setNullTerminatedState(ret->sref); + sRef_setLen (ret->sref, sRef_getLen(e->sref) - 1); + } + } + } + + /* Operator : -- */ + if (lltok_getTok (op) == DEC_OP) { + if (sRef_getSize(e->sref) >= 0) { + sRef_setSize (ret->sref, sRef_getSize(e->sref) + 1); + sRef_setLen (ret->sref, sRef_getLen(e->sref) + 1); + } + } + } + + /* end modifications */ + checkMod = TRUE; break; @@ -4496,6 +4588,47 @@ exprNode_makeOp (/*@keep@*/ exprNode e1, /*@keep@*/ exprNode e2, ret->sref = sRef_copy (e1->sref); + /* start modifications */ + /* added by Seejo on 4/16/2000 */ + + /* Arithmetic operations on pointers wil modify the size/len/null terminated + status */ + if ((sRef_isPossiblyNullTerminated (e1->sref)) || (sRef_isNullTerminated(e1->sref))) { + //if (sRef_isKnown (e->sref)) { + //ret->sref = sRef_makeAddress (e->sref); + //} + + int val = (int) multiVal_forceInt (e2->val); + + /* Operator : + or += */ + if ((lltok_getTok (op) == TPLUS) || (lltok_getTok(op) == ADD_ASSIGN)) { + if (sRef_getSize(e1->sref) >= val) {/* Incrementing the pointer by + val should not result in a + size < 0 (size = 0 is ok !) */ + + sRef_setSize (ret->sref, sRef_getSize(e1->sref) - val); + + if (sRef_getLen(e1->sref) == val) { /* i.e. the character at posn val is \0 */ + sRef_setNotNullTerminatedState(ret->sref); + sRef_resetLen (ret->sref); + } else { + sRef_setNullTerminatedState(ret->sref); + sRef_setLen (ret->sref, sRef_getLen(e1->sref) - val); + } + } + } + + /* Operator : - or -= */ + if ((lltok_getTok (op) == TMINUS) || (lltok_getTok (op) == SUB_ASSIGN)) { + if (sRef_getSize(e1->sref) >= 0) { + sRef_setSize (ret->sref, sRef_getSize(e1->sref) + val); + sRef_setLen (ret->sref, sRef_getLen(e1->sref) + val); + } + } + } + + /* end modifications */ + sRef_setNullError (ret->sref); /* @@ -4538,6 +4671,48 @@ exprNode_makeOp (/*@keep@*/ exprNode e1, /*@keep@*/ exprNode e2, ret->sref = sRef_copy (e2->sref); + /* start modifications */ + /* added by Seejo on 4/16/2000 */ + + /* Arithmetic operations on pointers wil modify the size/len/null terminated + status */ + + if ((sRef_isPossiblyNullTerminated (e2->sref)) || (sRef_isNullTerminated(e2->sref))) { + //if (sRef_isKnown (e->sref)) { + //ret->sref = sRef_makeAddress (e->sref); + //} + + int val = (int) multiVal_forceInt (e1->val); + + /* Operator : + or += */ + if ((lltok_getTok (op) == TPLUS) || (lltok_getTok(op) == ADD_ASSIGN)) { + if (sRef_getSize(e2->sref) >= val) {/* Incrementing the pointer by + val should not result in a + size < 0 (size = 0 is ok !) */ + + sRef_setSize (ret->sref, sRef_getSize(e2->sref) - val); + + if (sRef_getLen(e2->sref) == val) { /* i.e. the character at posn val is \0 */ + sRef_setNotNullTerminatedState(ret->sref); + sRef_resetLen (ret->sref); + } else { + sRef_setNullTerminatedState(ret->sref); + sRef_setLen (ret->sref, sRef_getLen(e2->sref) - val); + } + } + } + + /* Operator : - or -= */ + if ((lltok_getTok (op) == TMINUS) || (lltok_getTok (op) == SUB_ASSIGN)) { + if (sRef_getSize(e2->sref) >= 0) { + sRef_setSize (ret->sref, sRef_getSize(e2->sref) + val); + sRef_setLen (ret->sref, sRef_getLen(e2->sref) + val); + } + } + } + + /* end modifications */ + sRef_setNullError (ret->sref); /* diff --git a/src/flags.def b/src/flags.def index fb59d95..2ac6865 100644 --- a/src/flags.def +++ b/src/flags.def @@ -2756,6 +2756,22 @@ NULL, NULL, "nullref, nullassign, and nullstate).", 0, 0 }, +{ + FK_NT, FK_MEMORY, modeFlag, + "nullterminated", + FLG_NULLTERMINATED, + "misuse of nullterminated allocation", + "A possibly non-nullterminated string/memory is used/referenced as a nullterminated one, ", + 0, 0 +}, +{ + FK_NT, FK_MEMORY, modeFlag, + "nullterminated", + FLG_NULLTERMINATEDWARNING, + "misuse of nullterminated allocation", + "WARNING:A user annotated non-nullterminated buffer is used/referenced as a nullterminated one, ", + 0, 0 +}, { FK_NULL, FK_MEMORY, modeFlag, "nullderef", diff --git a/src/lclscanline.c b/src/lclscanline.c index d79bdd3..0500b50 100644 --- a/src/lclscanline.c +++ b/src/lclscanline.c @@ -1853,6 +1853,7 @@ LCLScanLineInit (void) (void) LCLReserveToken (LLT_NEWREF, "newref"); (void) LCLReserveToken (LLT_TEMPREF, "tempref"); (void) LCLReserveToken (LLT_KILLREF, "killref"); + (void) LCLReserveToken (LLT_NULLTERMINATED, "nullterminated"); (void) LCLReserveToken (LLT_EXITS, "exits"); (void) LCLReserveToken (LLT_MAYEXIT, "mayexit"); (void) LCLReserveToken (LLT_TRUEEXIT, "trueexit"); diff --git a/src/lex.yy.c b/src/lex.yy.c index 5fef860..24eeda7 100644 --- a/src/lex.yy.c +++ b/src/lex.yy.c @@ -282,66 +282,67 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 177 -#define YY_END_OF_BUFFER 178 -static yyconst short int yy_accept[509] = +#define YY_NUM_RULES 178 +#define YY_END_OF_BUFFER 179 +static yyconst short int yy_accept[519] = { 0, - 0, 0, 178, 176, 156, 157, 144, 176, 3, 79, - 150, 143, 176, 138, 139, 148, 147, 135, 146, 142, - 149, 94, 94, 136, 132, 151, 137, 152, 155, 176, - 140, 175, 141, 153, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 133, 154, 134, 145, 131, - 0, 42, 0, 2, 79, 117, 173, 174, 126, 118, - 0, 0, 115, 123, 113, 124, 114, 125, 0, 107, - 1, 116, 110, 87, 0, 96, 95, 0, 94, 122, - 128, 130, 129, 121, 0, 0, 0, 119, 79, 79, - - 79, 79, 79, 79, 79, 79, 9, 79, 79, 79, - 79, 79, 79, 79, 13, 44, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 120, 127, 0, 0, 2, 101, - 4, 0, 105, 106, 107, 0, 108, 109, 89, 88, - 0, 104, 97, 98, 98, 80, 112, 111, 163, 164, - 161, 166, 171, 162, 172, 167, 170, 165, 168, 169, - 0, 0, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 11, - - 79, 79, 27, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 43, 79, 79, 79, 79, 79, 79, - 74, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 0, 42, 0, 0, 107, 0, 105, 106, - 0, 110, 90, 91, 91, 102, 103, 100, 99, 81, - 83, 160, 0, 0, 79, 79, 39, 79, 6, 29, - 79, 79, 79, 79, 79, 79, 10, 25, 79, 79, - 79, 79, 12, 79, 79, 79, 51, 79, 31, 79, - 79, 52, 79, 79, 68, 79, 79, 79, 79, 79, - - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 26, 79, 79, 79, 0, 107, 93, 92, 82, 84, - 84, 0, 159, 79, 79, 5, 79, 36, 79, 79, - 79, 79, 79, 79, 79, 30, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 69, 79, 79, 79, 79, - 79, 79, 79, 32, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 77, 24, 79, 79, 79, 79, - 79, 18, 76, 86, 85, 158, 79, 79, 79, 79, - 79, 79, 79, 28, 79, 38, 79, 21, 79, 54, - - 78, 79, 60, 79, 79, 79, 79, 79, 79, 58, - 79, 14, 75, 34, 15, 79, 41, 22, 17, 79, - 79, 79, 79, 79, 72, 19, 20, 79, 37, 47, - 64, 79, 79, 8, 79, 59, 79, 79, 79, 62, - 53, 79, 79, 45, 79, 79, 57, 79, 46, 61, - 79, 23, 79, 79, 79, 79, 65, 7, 79, 73, - 79, 79, 70, 16, 79, 40, 79, 55, 79, 33, - 35, 79, 71, 56, 79, 79, 79, 67, 79, 79, - 79, 63, 79, 79, 79, 79, 79, 79, 79, 48, - 79, 79, 66, 79, 79, 79, 79, 79, 79, 79, - - 79, 79, 79, 50, 79, 79, 49, 0 + 0, 0, 179, 177, 157, 158, 145, 177, 3, 80, + 151, 144, 177, 139, 140, 149, 148, 136, 147, 143, + 150, 95, 95, 137, 133, 152, 138, 153, 156, 177, + 141, 176, 142, 154, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 134, 155, 135, 146, 132, + 0, 42, 0, 2, 80, 118, 174, 175, 127, 119, + 0, 0, 116, 124, 114, 125, 115, 126, 0, 108, + 1, 117, 111, 88, 0, 97, 96, 0, 95, 123, + 129, 131, 130, 122, 0, 0, 0, 120, 80, 80, + + 80, 80, 80, 80, 80, 80, 9, 80, 80, 80, + 80, 80, 80, 80, 13, 44, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 121, 128, 0, 0, 2, 102, + 4, 0, 106, 107, 108, 0, 109, 110, 90, 89, + 0, 105, 98, 99, 99, 81, 113, 112, 164, 165, + 162, 167, 172, 163, 173, 168, 171, 166, 169, 170, + 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 11, + + 80, 80, 27, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 43, 80, 80, 80, 80, 80, 80, + 74, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 0, 42, 0, 0, 108, 0, 106, 107, + 0, 111, 91, 92, 92, 103, 104, 101, 100, 82, + 84, 161, 0, 0, 80, 80, 39, 80, 6, 29, + 80, 80, 80, 80, 80, 80, 10, 25, 80, 80, + 80, 80, 12, 80, 80, 80, 51, 80, 31, 80, + 80, 52, 80, 80, 68, 80, 80, 80, 80, 80, + + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 26, 80, 80, 80, 0, 108, 94, 93, 83, 85, + 85, 0, 160, 80, 80, 5, 80, 36, 80, 80, + 80, 80, 80, 80, 80, 30, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 69, 80, 80, 80, + 80, 80, 80, 80, 32, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 77, 24, 80, 80, 80, + 80, 80, 18, 76, 87, 86, 159, 80, 80, 80, + 80, 80, 80, 80, 28, 80, 38, 80, 21, 80, + + 54, 78, 80, 60, 80, 80, 80, 80, 80, 80, + 80, 58, 80, 14, 75, 34, 15, 80, 41, 22, + 17, 80, 80, 80, 80, 80, 72, 19, 20, 80, + 37, 47, 64, 80, 80, 8, 80, 59, 80, 80, + 80, 62, 53, 80, 80, 80, 45, 80, 80, 57, + 80, 46, 61, 80, 23, 80, 80, 80, 80, 65, + 7, 80, 73, 80, 80, 80, 70, 16, 80, 40, + 80, 55, 80, 33, 35, 80, 71, 56, 80, 80, + 80, 80, 67, 80, 80, 80, 80, 63, 80, 80, + 80, 80, 80, 80, 80, 80, 48, 80, 80, 80, + + 66, 80, 80, 80, 79, 80, 80, 80, 80, 80, + 80, 80, 80, 50, 80, 80, 49, 0 } ; static yyconst int yy_ec[256] = @@ -388,129 +389,131 @@ static yyconst int yy_meta[79] = 2, 2, 2, 2, 1, 1, 1, 1 } ; -static yyconst short int yy_base[516] = +static yyconst short int yy_base[526] = { 0, - 0, 0, 659, 660, 660, 660, 633, 73, 0, 0, - 55, 71, 610, 660, 660, 631, 67, 660, 68, 66, - 74, 80, 85, 660, 660, 65, 630, 82, 660, 91, - 660, 660, 660, 629, 603, 28, 586, 67, 40, 65, - 72, 587, 88, 55, 586, 79, 101, 598, 593, 103, - 90, 584, 51, 588, 586, 660, 113, 660, 660, 660, - 133, 163, 641, 0, 0, 660, 660, 660, 660, 660, - 100, 139, 660, 660, 660, 660, 660, 660, 625, 155, - 660, 660, 162, 172, 164, 160, 142, 0, 204, 617, - 660, 660, 660, 616, 245, 603, 603, 660, 585, 564, - - 568, 580, 567, 122, 570, 141, 563, 564, 561, 144, - 568, 564, 561, 558, 0, 99, 562, 569, 562, 559, - 550, 552, 558, 551, 561, 555, 547, 551, 547, 174, - 556, 135, 158, 556, 154, 551, 547, 539, 542, 184, - 556, 167, 546, 549, 660, 660, 242, 153, 0, 660, - 660, 235, 660, 660, 251, 243, 660, 660, 233, 230, - 241, 272, 165, 660, 234, 261, 660, 660, 660, 562, - 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, - 563, 564, 536, 531, 534, 546, 541, 529, 541, 200, - 542, 537, 539, 535, 527, 524, 532, 519, 534, 0, - - 520, 524, 527, 512, 515, 518, 521, 511, 513, 514, - 519, 506, 499, 0, 516, 502, 516, 509, 246, 498, - 0, 500, 499, 501, 508, 509, 493, 491, 491, 493, - 502, 501, 497, 499, 489, 493, 484, 203, 496, 498, - 487, 486, 271, 308, 543, 278, 296, 304, 660, 660, - 306, 314, 254, 660, 277, 660, 660, 660, 660, 295, - 279, 660, 517, 505, 480, 469, 0, 481, 0, 0, - 480, 471, 479, 468, 473, 474, 0, 0, 467, 467, - 477, 463, 0, 467, 472, 467, 0, 287, 0, 472, - 457, 0, 459, 469, 0, 469, 463, 457, 453, 464, - - 449, 451, 461, 447, 459, 449, 453, 452, 457, 456, - 442, 444, 452, 450, 448, 440, 445, 446, 434, 446, - 0, 430, 442, 442, 323, 325, 660, 660, 294, 660, - 305, 467, 660, 427, 428, 0, 293, 0, 429, 430, - 436, 434, 433, 424, 423, 0, 430, 418, 422, 428, - 426, 424, 418, 408, 409, 0, 425, 406, 406, 417, - 411, 408, 416, 0, 415, 412, 416, 413, 397, 406, - 408, 393, 406, 407, 0, 0, 396, 404, 400, 395, - 396, 0, 0, 660, 660, 660, 386, 398, 398, 387, - 381, 381, 393, 0, 393, 395, 376, 0, 393, 0, - - 0, 387, 0, 381, 386, 376, 378, 375, 382, 0, - 375, 0, 0, 376, 0, 373, 0, 0, 0, 377, - 371, 375, 370, 374, 0, 0, 0, 367, 0, 0, - 360, 372, 370, 0, 361, 0, 362, 361, 360, 0, - 0, 354, 363, 0, 350, 351, 0, 353, 0, 0, - 345, 0, 347, 343, 339, 325, 0, 0, 317, 0, - 323, 315, 0, 0, 327, 0, 312, 0, 325, 319, - 0, 311, 0, 0, 303, 320, 318, 0, 309, 312, - 304, 0, 311, 299, 312, 307, 294, 304, 286, 0, - 300, 292, 0, 278, 254, 236, 250, 176, 186, 174, - - 151, 158, 128, 0, 48, 28, 0, 660, 386, 390, + 0, 0, 669, 670, 670, 670, 643, 73, 0, 0, + 55, 71, 620, 670, 670, 641, 67, 670, 68, 66, + 74, 80, 85, 670, 670, 65, 640, 82, 670, 91, + 670, 670, 670, 639, 613, 28, 596, 67, 40, 65, + 72, 597, 88, 55, 596, 79, 101, 608, 603, 103, + 90, 594, 51, 598, 596, 670, 113, 670, 670, 670, + 133, 163, 651, 0, 0, 670, 670, 670, 670, 670, + 100, 139, 670, 670, 670, 670, 670, 670, 635, 155, + 670, 670, 162, 172, 164, 160, 142, 0, 204, 627, + 670, 670, 670, 626, 245, 613, 613, 670, 595, 574, + + 578, 590, 577, 122, 580, 141, 573, 574, 571, 144, + 578, 574, 571, 568, 0, 99, 572, 579, 572, 569, + 560, 562, 568, 561, 571, 565, 557, 561, 557, 174, + 566, 135, 158, 566, 154, 561, 557, 549, 552, 184, + 566, 167, 556, 559, 670, 670, 242, 153, 0, 670, + 670, 235, 670, 670, 251, 243, 670, 670, 233, 230, + 241, 272, 165, 670, 234, 261, 670, 670, 670, 572, + 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, + 573, 574, 546, 541, 544, 556, 551, 539, 551, 200, + 552, 547, 549, 545, 537, 534, 542, 529, 544, 0, + + 530, 534, 537, 522, 525, 528, 531, 521, 523, 524, + 529, 516, 509, 0, 526, 512, 526, 519, 246, 508, + 0, 510, 509, 511, 518, 519, 503, 501, 501, 503, + 512, 511, 507, 509, 499, 503, 494, 203, 506, 508, + 497, 496, 271, 308, 553, 278, 296, 304, 670, 670, + 306, 314, 254, 670, 277, 670, 670, 670, 670, 295, + 279, 670, 527, 515, 490, 479, 0, 491, 0, 0, + 490, 481, 489, 478, 483, 484, 0, 0, 477, 477, + 487, 473, 0, 477, 482, 477, 0, 287, 0, 482, + 467, 467, 468, 478, 0, 478, 472, 466, 462, 473, + + 458, 460, 470, 456, 468, 458, 462, 461, 466, 465, + 451, 453, 461, 459, 457, 449, 454, 455, 443, 455, + 0, 439, 451, 451, 323, 325, 670, 670, 294, 670, + 305, 476, 670, 436, 437, 0, 293, 0, 438, 439, + 445, 443, 442, 433, 432, 0, 439, 427, 431, 437, + 435, 433, 427, 432, 416, 417, 0, 433, 414, 414, + 425, 419, 416, 424, 0, 423, 420, 424, 421, 405, + 414, 416, 401, 414, 415, 0, 0, 404, 412, 408, + 403, 404, 0, 0, 670, 670, 670, 394, 406, 406, + 395, 389, 389, 401, 0, 401, 403, 384, 0, 401, + + 0, 0, 395, 0, 389, 383, 393, 383, 385, 382, + 389, 0, 382, 0, 0, 383, 0, 380, 0, 0, + 0, 384, 378, 382, 377, 381, 0, 0, 0, 374, + 0, 0, 367, 379, 377, 0, 368, 0, 369, 368, + 367, 0, 0, 365, 360, 369, 0, 356, 357, 0, + 359, 0, 0, 360, 0, 365, 365, 363, 349, 0, + 0, 348, 0, 345, 334, 338, 0, 0, 339, 0, + 325, 0, 331, 325, 0, 317, 0, 0, 309, 317, + 325, 323, 0, 314, 317, 309, 322, 0, 315, 303, + 316, 313, 299, 299, 307, 292, 0, 304, 303, 294, + + 0, 295, 278, 254, 0, 236, 250, 176, 186, 174, + 151, 158, 128, 0, 48, 28, 0, 670, 386, 390, 394, 399, 403, 405, 410 } ; -static yyconst short int yy_def[516] = +static yyconst short int yy_def[526] = { 0, - 508, 1, 508, 508, 508, 508, 508, 509, 510, 511, - 508, 508, 512, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 508, 508, 508, 508, 508, - 509, 508, 509, 513, 511, 508, 508, 508, 508, 508, - 512, 512, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 514, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 508, 508, 508, 515, 513, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 514, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 515, 508, 515, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 508, 508, 508, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 0, 508, 508, - 508, 508, 508, 508, 508 + 518, 1, 518, 518, 518, 518, 518, 519, 520, 521, + 518, 518, 522, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 518, 518, 518, 518, 518, + 519, 518, 519, 523, 521, 518, 518, 518, 518, 518, + 522, 522, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 524, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 521, 521, + + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 518, 518, 518, 525, 523, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 524, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 525, 518, 525, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 518, 518, 518, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + + 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 521, 521, 0, 518, 518, + 518, 518, 518, 518, 518 } ; -static yyconst short int yy_nxt[739] = +static yyconst short int yy_nxt[749] = { 0, 4, 5, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, @@ -520,44 +523,45 @@ static yyconst short int yy_nxt[739] = 36, 37, 38, 39, 40, 41, 42, 10, 43, 44, 45, 10, 46, 47, 48, 49, 50, 51, 52, 53, 54, 10, 55, 10, 56, 57, 58, 59, 62, 66, - 69, 74, 507, 79, 76, 80, 80, 81, 90, 91, + 69, 74, 517, 79, 76, 80, 80, 81, 90, 91, 100, 75, 77, 78, 106, 70, 101, 83, 82, 84, 84, 141, 83, 107, 89, 89, 93, 94, 95, 118, - 150, 85, 506, 119, 142, 86, 85, 103, 96, 63, + 150, 85, 516, 119, 142, 86, 85, 103, 96, 63, 86, 87, 111, 88, 104, 108, 87, 109, 97, 67, 105, 68, 112, 121, 85, 113, 110, 145, 62, 85, - 86, 508, 122, 115, 137, 86, 72, 123, 87, 71, + 86, 518, 122, 115, 137, 86, 72, 123, 87, 71, 116, 88, 124, 87, 117, 138, 125, 131, 244, 202, 132, 133, 139, 126, 147, 147, 203, 134, 148, 127, 135, 128, 188, 136, 80, 80, 189, 165, 161, 63, 161, 155, 155, 162, 162, 222, 152, 153, 146, 83, 154, 84, 84, 156, 157, 163, 191, 158, 223, 245, - 505, 164, 165, 85, 227, 192, 258, 159, 196, 152, - 153, 197, 504, 160, 224, 154, 156, 157, 503, 228, + 515, 164, 165, 85, 227, 192, 258, 159, 196, 152, + 153, 197, 514, 160, 224, 154, 156, 157, 513, 228, 163, 83, 158, 89, 89, 239, 85, 240, 164, 217, - 218, 225, 159, 258, 219, 85, 233, 234, 502, 86, - 160, 220, 235, 147, 147, 87, 501, 148, 500, 246, + 218, 225, 159, 258, 219, 85, 233, 234, 512, 86, + 160, 220, 235, 147, 147, 87, 511, 148, 510, 246, 236, 246, 237, 319, 247, 247, 320, 251, 85, 251, 162, 162, 252, 252, 86, 255, 272, 273, 253, 259, 155, 155, 87, 169, 254, 170, 244, 171, 172, 173, 174, 175, 248, 249, 176, 177, 250, 178, 179, 180, 255, 162, 162, 253, 259, 327, 260, 247, 247, 300, - 499, 254, 261, 498, 256, 248, 249, 257, 301, 147, - 147, 250, 328, 148, 331, 247, 247, 245, 325, 497, + 509, 254, 261, 508, 256, 248, 249, 257, 301, 147, + 147, 250, 328, 148, 331, 247, 247, 245, 325, 507, 325, 260, 327, 326, 326, 252, 252, 256, 153, 261, - 329, 154, 257, 252, 252, 384, 330, 328, 496, 331, - 385, 350, 326, 326, 326, 326, 157, 389, 495, 158, - 494, 153, 351, 493, 390, 329, 154, 249, 492, 491, - 250, 490, 384, 330, 489, 385, 488, 487, 486, 157, - 485, 484, 483, 482, 158, 481, 480, 479, 478, 477, - 249, 476, 475, 474, 473, 250, 61, 61, 61, 61, - 61, 64, 472, 471, 64, 65, 470, 65, 65, 71, - - 71, 469, 71, 71, 149, 468, 149, 149, 166, 166, - 243, 243, 243, 243, 243, 467, 466, 465, 464, 463, + 329, 154, 257, 252, 252, 385, 330, 328, 506, 331, + 386, 350, 326, 326, 326, 326, 157, 390, 505, 158, + 504, 153, 351, 503, 391, 329, 154, 249, 502, 501, + 250, 500, 385, 330, 499, 386, 498, 497, 496, 157, + 495, 494, 493, 492, 158, 491, 490, 489, 488, 487, + 249, 486, 485, 484, 483, 250, 61, 61, 61, 61, + 61, 64, 482, 481, 64, 65, 480, 65, 65, 71, + + 71, 479, 71, 71, 149, 478, 149, 149, 166, 166, + 243, 243, 243, 243, 243, 477, 476, 475, 474, 473, + 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, @@ -565,37 +569,37 @@ static yyconst short int yy_nxt[739] = 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, - 392, 391, 388, 387, 386, 383, 382, 381, 380, 379, + 392, 389, 388, 387, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, - 336, 335, 334, 333, 332, 508, 324, 323, 322, 321, + 336, 335, 334, 333, 332, 518, 324, 323, 322, 321, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, - 276, 275, 274, 271, 270, 269, 268, 267, 266, 265, + 276, 275, 274, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 242, 241, 238, 232, 231, 230, 229, 226, 221, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 201, 200, 199, 198, 195, 194, 193, 190, 187, 186, 185, 184, 183, 182, 181, - 168, 167, 151, 508, 144, 143, 140, 130, 129, 120, - 114, 102, 99, 98, 92, 73, 72, 60, 508, 3, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508 + 168, 167, 151, 518, 144, 143, 140, 130, 129, 120, + 114, 102, 99, 98, 92, 73, 72, 60, 518, 3, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518 } ; -static yyconst short int yy_chk[739] = +static yyconst short int yy_chk[749] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -605,11 +609,11 @@ static yyconst short int yy_chk[739] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 11, - 12, 17, 506, 20, 19, 20, 20, 21, 26, 26, + 12, 17, 516, 20, 19, 20, 20, 21, 26, 26, 36, 17, 19, 19, 39, 12, 36, 22, 21, 22, 22, 53, 23, 39, 23, 23, 28, 28, 30, 44, - 71, 22, 505, 44, 53, 22, 23, 38, 30, 8, + 71, 22, 515, 44, 53, 22, 23, 38, 30, 8, 23, 22, 41, 22, 38, 40, 23, 40, 30, 11, 38, 11, 41, 46, 22, 41, 40, 57, 61, 23, 22, 72, 46, 43, 51, 23, 71, 46, 22, 72, @@ -619,65 +623,66 @@ static yyconst short int yy_chk[739] = 85, 83, 83, 85, 85, 132, 80, 80, 57, 84, 80, 84, 84, 83, 83, 86, 106, 83, 132, 148, - 503, 86, 87, 84, 135, 106, 163, 84, 110, 80, - 80, 110, 502, 84, 133, 80, 83, 83, 501, 135, + 513, 86, 87, 84, 135, 106, 163, 84, 110, 80, + 80, 110, 512, 84, 133, 80, 83, 83, 511, 135, 86, 89, 83, 89, 89, 142, 84, 142, 86, 130, - 130, 133, 84, 163, 130, 89, 140, 140, 500, 89, - 84, 130, 140, 147, 147, 89, 499, 147, 498, 152, + 130, 133, 84, 163, 130, 89, 140, 140, 510, 89, + 84, 130, 140, 147, 147, 89, 509, 147, 508, 152, 140, 152, 140, 238, 152, 152, 238, 156, 89, 156, 161, 161, 156, 156, 89, 160, 190, 190, 159, 165, 155, 155, 89, 95, 159, 95, 243, 95, 95, 95, 95, 95, 155, 155, 95, 95, 155, 95, 95, 95, 160, 162, 162, 159, 165, 253, 166, 246, 246, 219, - 497, 159, 166, 496, 162, 155, 155, 162, 219, 244, - 244, 155, 255, 244, 261, 247, 247, 243, 248, 495, + 507, 159, 166, 506, 162, 155, 155, 162, 219, 244, + 244, 155, 255, 244, 261, 247, 247, 243, 248, 504, 248, 166, 253, 248, 248, 251, 251, 162, 247, 166, - 260, 247, 162, 252, 252, 329, 260, 255, 494, 261, - 331, 288, 325, 325, 326, 326, 252, 337, 492, 252, - 491, 247, 288, 489, 337, 260, 247, 326, 488, 487, - 326, 486, 329, 260, 485, 331, 484, 483, 481, 252, - 480, 479, 477, 476, 252, 475, 472, 470, 469, 467, - 326, 465, 462, 461, 459, 326, 509, 509, 509, 509, - 509, 510, 456, 455, 510, 511, 454, 511, 511, 512, - - 512, 453, 512, 512, 513, 451, 513, 513, 514, 514, - 515, 515, 515, 515, 515, 448, 446, 445, 443, 442, - 439, 438, 437, 435, 433, 432, 431, 428, 424, 423, - 422, 421, 420, 416, 414, 411, 409, 408, 407, 406, - 405, 404, 402, 399, 397, 396, 395, 393, 392, 391, - 390, 389, 388, 387, 381, 380, 379, 378, 377, 374, - 373, 372, 371, 370, 369, 368, 367, 366, 365, 363, - 362, 361, 360, 359, 358, 357, 355, 354, 353, 352, - 351, 350, 349, 348, 347, 345, 344, 343, 342, 341, - 340, 339, 335, 334, 332, 324, 323, 322, 320, 319, - - 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, - 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, - 298, 297, 296, 294, 293, 291, 290, 286, 285, 284, + 260, 247, 162, 252, 252, 329, 260, 255, 503, 261, + 331, 288, 325, 325, 326, 326, 252, 337, 502, 252, + 500, 247, 288, 499, 337, 260, 247, 326, 498, 496, + 326, 495, 329, 260, 494, 331, 493, 492, 491, 252, + 490, 489, 487, 486, 252, 485, 484, 482, 481, 480, + 326, 479, 476, 474, 473, 326, 519, 519, 519, 519, + 519, 520, 471, 469, 520, 521, 466, 521, 521, 522, + + 522, 465, 522, 522, 523, 464, 523, 523, 524, 524, + 525, 525, 525, 525, 525, 462, 459, 458, 457, 456, + 454, 451, 449, 448, 446, 445, 444, 441, 440, 439, + 437, 435, 434, 433, 430, 426, 425, 424, 423, 422, + 418, 416, 413, 411, 410, 409, 408, 407, 406, 405, + 403, 400, 398, 397, 396, 394, 393, 392, 391, 390, + 389, 388, 382, 381, 380, 379, 378, 375, 374, 373, + 372, 371, 370, 369, 368, 367, 366, 364, 363, 362, + 361, 360, 359, 358, 356, 355, 354, 353, 352, 351, + 350, 349, 348, 347, 345, 344, 343, 342, 341, 340, + + 339, 335, 334, 332, 324, 323, 322, 320, 319, 318, + 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, + 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, + 297, 296, 294, 293, 292, 291, 290, 286, 285, 284, 282, 281, 280, 279, 276, 275, 274, 273, 272, 271, 268, 266, 265, 264, 263, 245, 242, 241, 240, 239, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 220, 218, 217, 216, 215, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 199, 198, 197, 196, 195, 194, - 193, 192, 191, 189, 188, 187, 186, 185, 184, 183, + 193, 192, 191, 189, 188, 187, 186, 185, 184, 183, 182, 181, 170, 144, 143, 141, 139, 138, 137, 136, 134, 131, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 114, 113, 112, 111, 109, 108, 107, 105, 103, 102, 101, 100, 99, 97, 96, 94, 90, 79, 63, 55, 54, 52, 49, 48, 45, - 42, 37, 35, 34, 27, 16, 13, 7, 3, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508 + 42, 37, 35, 34, 27, 16, 13, 7, 3, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518 } ; static yy_state_type yy_last_accepting_state; @@ -868,7 +873,7 @@ static void setTokLengthT (size_t len) } # include "flex.head" -#line 872 "lex.yy.c" +#line 877 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1022,7 +1027,7 @@ YY_DECL #line 190 "cscanner.l" -#line 1026 "lex.yy.c" +#line 1031 "lex.yy.c" if ( yy_init ) { @@ -1073,13 +1078,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 509 ) + if ( yy_current_state >= 519 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 660 ); + while ( yy_base[yy_current_state] != 670 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1528,6 +1533,11 @@ YY_RULE_SETUP case 79: YY_RULE_SETUP #line 309 "cscanner.l" +{ return (processSpec (QNULLTERMINATED));} + YY_BREAK +case 80: +YY_RULE_SETUP +#line 310 "cscanner.l" { int tok; context_saveLocation (); setTokLength (longUnsigned_toInt (mstring_length (yytext))); @@ -1538,426 +1548,426 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 318 "cscanner.l" +#line 319 "cscanner.l" { setTokLengthT (mstring_length (yytext)); RETURN_INT (ctype_int, processHex ()); /* evs 2000-05-17 was ctype_uint */ } YY_BREAK -case 81: -YY_RULE_SETUP -#line 321 "cscanner.l" -{ setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_lint, processHex ()); } - YY_BREAK case 82: YY_RULE_SETUP -#line 323 "cscanner.l" +#line 322 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_llint, processHex ()); } + RETURN_INT (ctype_lint, processHex ()); } YY_BREAK case 83: YY_RULE_SETUP -#line 325 "cscanner.l" +#line 324 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_uint, processHex ()); } + RETURN_INT (ctype_llint, processHex ()); } YY_BREAK case 84: YY_RULE_SETUP -#line 327 "cscanner.l" +#line 326 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ulint, processHex ()); } + RETURN_INT (ctype_uint, processHex ()); } YY_BREAK case 85: YY_RULE_SETUP -#line 329 "cscanner.l" +#line 328 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ullint, processHex ()); } + RETURN_INT (ctype_ulint, processHex ()); } YY_BREAK case 86: YY_RULE_SETUP -#line 331 "cscanner.l" +#line 330 "cscanner.l" { setTokLengthT (mstring_length (yytext)); RETURN_INT (ctype_ullint, processHex ()); } YY_BREAK case 87: YY_RULE_SETUP -#line 333 "cscanner.l" +#line 332 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_int, processOctal ()); } + RETURN_INT (ctype_ullint, processHex ()); } YY_BREAK case 88: YY_RULE_SETUP -#line 335 "cscanner.l" +#line 334 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_uint, processOctal ()); } + RETURN_INT (ctype_int, processOctal ()); } YY_BREAK case 89: YY_RULE_SETUP -#line 337 "cscanner.l" +#line 336 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_lint, processOctal ()); } + RETURN_INT (ctype_uint, processOctal ()); } YY_BREAK case 90: YY_RULE_SETUP -#line 339 "cscanner.l" +#line 338 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_llint, processOctal ()); } + RETURN_INT (ctype_lint, processOctal ()); } YY_BREAK case 91: YY_RULE_SETUP -#line 341 "cscanner.l" +#line 340 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ulint, processOctal ()); } + RETURN_INT (ctype_llint, processOctal ()); } YY_BREAK case 92: YY_RULE_SETUP -#line 343 "cscanner.l" +#line 342 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ullint, processOctal ()); } + RETURN_INT (ctype_ulint, processOctal ()); } YY_BREAK case 93: YY_RULE_SETUP -#line 345 "cscanner.l" +#line 344 "cscanner.l" { setTokLengthT (mstring_length (yytext)); RETURN_INT (ctype_ullint, processOctal ()); } YY_BREAK case 94: YY_RULE_SETUP -#line 347 "cscanner.l" +#line 346 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_int, processDec ()); } + RETURN_INT (ctype_ullint, processOctal ()); } YY_BREAK case 95: YY_RULE_SETUP -#line 349 "cscanner.l" +#line 348 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_uint, processDec ()); } + RETURN_INT (ctype_int, processDec ()); } YY_BREAK case 96: YY_RULE_SETUP -#line 351 "cscanner.l" +#line 350 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_lint, processDec ()); } + RETURN_INT (ctype_uint, processDec ()); } YY_BREAK case 97: YY_RULE_SETUP -#line 353 "cscanner.l" +#line 352 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_llint, processDec ()); } + RETURN_INT (ctype_lint, processDec ()); } YY_BREAK case 98: YY_RULE_SETUP -#line 355 "cscanner.l" +#line 354 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ulint, processDec ()); } + RETURN_INT (ctype_llint, processDec ()); } YY_BREAK case 99: YY_RULE_SETUP -#line 357 "cscanner.l" +#line 356 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_INT (ctype_ullint, processDec ()); } + RETURN_INT (ctype_ulint, processDec ()); } YY_BREAK case 100: YY_RULE_SETUP -#line 359 "cscanner.l" +#line 358 "cscanner.l" { setTokLengthT (mstring_length (yytext)); RETURN_INT (ctype_ullint, processDec ()); } YY_BREAK case 101: YY_RULE_SETUP -#line 361 "cscanner.l" +#line 360 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_CHAR (processChar ()); } + RETURN_INT (ctype_ullint, processDec ()); } YY_BREAK case 102: YY_RULE_SETUP -#line 363 "cscanner.l" +#line 362 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_float, processFloat ()); } + RETURN_CHAR (processChar ()); } YY_BREAK case 103: YY_RULE_SETUP -#line 365 "cscanner.l" +#line 364 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_ldouble, processFloat ()); } + RETURN_FLOAT (ctype_float, processFloat ()); } YY_BREAK case 104: YY_RULE_SETUP -#line 367 "cscanner.l" +#line 366 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_double, processFloat ()); } + RETURN_FLOAT (ctype_ldouble, processFloat ()); } YY_BREAK case 105: YY_RULE_SETUP -#line 370 "cscanner.l" +#line 368 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_float, processFloat ()); } + RETURN_FLOAT (ctype_double, processFloat ()); } YY_BREAK case 106: YY_RULE_SETUP -#line 372 "cscanner.l" +#line 371 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_ldouble, processFloat ()); } + RETURN_FLOAT (ctype_float, processFloat ()); } YY_BREAK case 107: YY_RULE_SETUP -#line 374 "cscanner.l" +#line 373 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_double, processFloat ()); } + RETURN_FLOAT (ctype_ldouble, processFloat ()); } YY_BREAK case 108: YY_RULE_SETUP -#line 377 "cscanner.l" +#line 375 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_float, processFloat ()); } + RETURN_FLOAT (ctype_double, processFloat ()); } YY_BREAK case 109: YY_RULE_SETUP -#line 379 "cscanner.l" +#line 378 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_ldouble, processFloat ()); } + RETURN_FLOAT (ctype_float, processFloat ()); } YY_BREAK case 110: YY_RULE_SETUP -#line 381 "cscanner.l" +#line 380 "cscanner.l" { setTokLengthT (mstring_length (yytext)); - RETURN_FLOAT (ctype_double, processFloat ()); } + RETURN_FLOAT (ctype_ldouble, processFloat ()); } YY_BREAK case 111: YY_RULE_SETUP -#line 384 "cscanner.l" -{ setTokLength (3); RETURN_TOK (RIGHT_ASSIGN); } +#line 382 "cscanner.l" +{ setTokLengthT (mstring_length (yytext)); + RETURN_FLOAT (ctype_double, processFloat ()); } YY_BREAK case 112: YY_RULE_SETUP #line 385 "cscanner.l" -{ setTokLength (3); RETURN_TOK (LEFT_ASSIGN); } +{ setTokLength (3); RETURN_TOK (RIGHT_ASSIGN); } YY_BREAK case 113: YY_RULE_SETUP #line 386 "cscanner.l" -{ setTokLength (2); RETURN_TOK (ADD_ASSIGN); } +{ setTokLength (3); RETURN_TOK (LEFT_ASSIGN); } YY_BREAK case 114: YY_RULE_SETUP #line 387 "cscanner.l" -{ setTokLength (2); RETURN_TOK (SUB_ASSIGN); } +{ setTokLength (2); RETURN_TOK (ADD_ASSIGN); } YY_BREAK case 115: YY_RULE_SETUP #line 388 "cscanner.l" -{ setTokLength (2); RETURN_TOK (MUL_ASSIGN); } +{ setTokLength (2); RETURN_TOK (SUB_ASSIGN); } YY_BREAK case 116: YY_RULE_SETUP #line 389 "cscanner.l" -{ setTokLength (2); RETURN_TOK (DIV_ASSIGN); } +{ setTokLength (2); RETURN_TOK (MUL_ASSIGN); } YY_BREAK case 117: YY_RULE_SETUP #line 390 "cscanner.l" -{ setTokLength (2); RETURN_TOK (MOD_ASSIGN); } +{ setTokLength (2); RETURN_TOK (DIV_ASSIGN); } YY_BREAK case 118: YY_RULE_SETUP #line 391 "cscanner.l" -{ setTokLength (2); RETURN_TOK (AND_ASSIGN); } +{ setTokLength (2); RETURN_TOK (MOD_ASSIGN); } YY_BREAK case 119: YY_RULE_SETUP #line 392 "cscanner.l" -{ setTokLength (2); RETURN_TOK (XOR_ASSIGN); } +{ setTokLength (2); RETURN_TOK (AND_ASSIGN); } YY_BREAK case 120: YY_RULE_SETUP #line 393 "cscanner.l" -{ setTokLength (2); RETURN_TOK (OR_ASSIGN); } +{ setTokLength (2); RETURN_TOK (XOR_ASSIGN); } YY_BREAK case 121: YY_RULE_SETUP #line 394 "cscanner.l" -{ setTokLength (2); RETURN_TOK (RIGHT_OP); } +{ setTokLength (2); RETURN_TOK (OR_ASSIGN); } YY_BREAK case 122: YY_RULE_SETUP #line 395 "cscanner.l" -{ setTokLength (2); RETURN_TOK (LEFT_OP); } +{ setTokLength (2); RETURN_TOK (RIGHT_OP); } YY_BREAK case 123: YY_RULE_SETUP #line 396 "cscanner.l" -{ setTokLength (2); RETURN_TOK (INC_OP); } +{ setTokLength (2); RETURN_TOK (LEFT_OP); } YY_BREAK case 124: YY_RULE_SETUP #line 397 "cscanner.l" -{ setTokLength (2); RETURN_TOK (DEC_OP); } +{ setTokLength (2); RETURN_TOK (INC_OP); } YY_BREAK case 125: YY_RULE_SETUP #line 398 "cscanner.l" -{ setTokLength (2); RETURN_TOK (ARROW_OP); } +{ setTokLength (2); RETURN_TOK (DEC_OP); } YY_BREAK case 126: YY_RULE_SETUP #line 399 "cscanner.l" -{ setTokLength (2); RETURN_TOK (AND_OP); } +{ setTokLength (2); RETURN_TOK (ARROW_OP); } YY_BREAK case 127: YY_RULE_SETUP #line 400 "cscanner.l" -{ setTokLength (2); RETURN_TOK (OR_OP); } +{ setTokLength (2); RETURN_TOK (AND_OP); } YY_BREAK case 128: YY_RULE_SETUP #line 401 "cscanner.l" -{ setTokLength (2); RETURN_TOK (LE_OP); } +{ setTokLength (2); RETURN_TOK (OR_OP); } YY_BREAK case 129: YY_RULE_SETUP #line 402 "cscanner.l" -{ setTokLength (2); RETURN_TOK (GE_OP); } +{ setTokLength (2); RETURN_TOK (LE_OP); } YY_BREAK case 130: YY_RULE_SETUP #line 403 "cscanner.l" -{ setTokLength (2); RETURN_TOK (EQ_OP); } +{ setTokLength (2); RETURN_TOK (GE_OP); } YY_BREAK case 131: YY_RULE_SETUP #line 404 "cscanner.l" -{ setTokLength (2); RETURN_TOK (NE_OP); } +{ setTokLength (2); RETURN_TOK (EQ_OP); } YY_BREAK case 132: YY_RULE_SETUP #line 405 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TSEMI); } +{ setTokLength (2); RETURN_TOK (NE_OP); } YY_BREAK case 133: YY_RULE_SETUP #line 406 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TLBRACE); } +{ setTokLength (1); RETURN_TOK (TSEMI); } YY_BREAK case 134: YY_RULE_SETUP #line 407 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TRBRACE); } +{ setTokLength (1); RETURN_TOK (TLBRACE); } YY_BREAK case 135: YY_RULE_SETUP #line 408 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TCOMMA); } +{ setTokLength (1); RETURN_TOK (TRBRACE); } YY_BREAK case 136: YY_RULE_SETUP #line 409 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TCOLON); } +{ setTokLength (1); RETURN_TOK (TCOMMA); } YY_BREAK case 137: YY_RULE_SETUP #line 410 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TASSIGN); } +{ setTokLength (1); RETURN_TOK (TCOLON); } YY_BREAK case 138: YY_RULE_SETUP #line 411 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TLPAREN); } +{ setTokLength (1); RETURN_TOK (TASSIGN); } YY_BREAK case 139: YY_RULE_SETUP #line 412 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TRPAREN); } +{ setTokLength (1); RETURN_TOK (TLPAREN); } YY_BREAK case 140: YY_RULE_SETUP #line 413 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TLSQBR); } +{ setTokLength (1); RETURN_TOK (TRPAREN); } YY_BREAK case 141: YY_RULE_SETUP #line 414 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TRSQBR); } +{ setTokLength (1); RETURN_TOK (TLSQBR); } YY_BREAK case 142: YY_RULE_SETUP #line 415 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TDOT); } +{ setTokLength (1); RETURN_TOK (TRSQBR); } YY_BREAK case 143: YY_RULE_SETUP #line 416 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TAMPERSAND); } +{ setTokLength (1); RETURN_TOK (TDOT); } YY_BREAK case 144: YY_RULE_SETUP #line 417 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TEXCL); } +{ setTokLength (1); RETURN_TOK (TAMPERSAND); } YY_BREAK case 145: YY_RULE_SETUP -#line 420 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TTILDE); } +#line 418 "cscanner.l" +{ setTokLength (1); RETURN_TOK (TEXCL); } YY_BREAK case 146: YY_RULE_SETUP #line 421 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TMINUS); } +{ setTokLength (1); RETURN_TOK (TTILDE); } YY_BREAK case 147: YY_RULE_SETUP #line 422 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TPLUS); } +{ setTokLength (1); RETURN_TOK (TMINUS); } YY_BREAK case 148: YY_RULE_SETUP #line 423 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TMULT); } +{ setTokLength (1); RETURN_TOK (TPLUS); } YY_BREAK case 149: YY_RULE_SETUP #line 424 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TDIV); } +{ setTokLength (1); RETURN_TOK (TMULT); } YY_BREAK case 150: YY_RULE_SETUP #line 425 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TPERCENT); } +{ setTokLength (1); RETURN_TOK (TDIV); } YY_BREAK case 151: YY_RULE_SETUP #line 426 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TLT); } +{ setTokLength (1); RETURN_TOK (TPERCENT); } YY_BREAK case 152: YY_RULE_SETUP #line 427 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TGT); } +{ setTokLength (1); RETURN_TOK (TLT); } YY_BREAK case 153: YY_RULE_SETUP #line 428 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TCIRC); } +{ setTokLength (1); RETURN_TOK (TGT); } YY_BREAK case 154: YY_RULE_SETUP #line 429 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TBAR); } +{ setTokLength (1); RETURN_TOK (TCIRC); } YY_BREAK case 155: YY_RULE_SETUP #line 430 "cscanner.l" -{ setTokLength (1); RETURN_TOK (TQUEST); } +{ setTokLength (1); RETURN_TOK (TBAR); } YY_BREAK case 156: YY_RULE_SETUP -#line 432 "cscanner.l" -{ incColumn (); } +#line 431 "cscanner.l" +{ setTokLength (1); RETURN_TOK (TQUEST); } YY_BREAK case 157: YY_RULE_SETUP #line 433 "cscanner.l" +{ incColumn (); } + YY_BREAK +case 158: +YY_RULE_SETUP +#line 434 "cscanner.l" { context_incLineno (); if (continueLine) { @@ -1975,9 +1985,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 449 "cscanner.l" +#line 450 "cscanner.l" { setTokLength (6); if (processMacro ()) { @@ -1996,9 +2006,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 466 "cscanner.l" +#line 467 "cscanner.l" { if (context_inHeader () || context_inFunction ()) { handleMacro (); @@ -2036,79 +2046,79 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 502 "cscanner.l" +#line 503 "cscanner.l" { setTokLength (4); lldiagmsg (ctype_unparseTable ()); } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 503 "cscanner.l" +#line 504 "cscanner.l" { setTokLength (3); lldiagmsg (message ("%q: *** marker ***", fileloc_unparse (g_currentloc))); } YY_BREAK -case 162: -YY_RULE_SETUP -#line 506 "cscanner.l" -{ setTokLength (3); usymtab_printLocal (); } - YY_BREAK case 163: YY_RULE_SETUP #line 507 "cscanner.l" -{ setTokLength (3); lldiagmsg (usymtab_unparseAliases ()); } +{ setTokLength (3); usymtab_printLocal (); } YY_BREAK case 164: YY_RULE_SETUP #line 508 "cscanner.l" -{ setTokLength (3); lldiagmsg (context_unparse ()); } +{ setTokLength (3); lldiagmsg (usymtab_unparseAliases ()); } YY_BREAK case 165: YY_RULE_SETUP #line 509 "cscanner.l" -{ setTokLength (3); lldiagmsg (context_unparseClauses ()); } +{ setTokLength (3); lldiagmsg (context_unparse ()); } YY_BREAK case 166: YY_RULE_SETUP #line 510 "cscanner.l" -{ setTokLength (3); usymtab_printGuards (); } +{ setTokLength (3); lldiagmsg (context_unparseClauses ()); } YY_BREAK case 167: YY_RULE_SETUP #line 511 "cscanner.l" -{ setTokLength (3); usymtab_printOut (); } +{ setTokLength (3); usymtab_printGuards (); } YY_BREAK case 168: YY_RULE_SETUP #line 512 "cscanner.l" -{ setTokLength (3); usymtab_printAll (); } +{ setTokLength (3); usymtab_printOut (); } YY_BREAK case 169: YY_RULE_SETUP #line 513 "cscanner.l" -{ setTokLength (3); usymtab_printComplete (); } +{ setTokLength (3); usymtab_printAll (); } YY_BREAK case 170: YY_RULE_SETUP #line 514 "cscanner.l" -{ setTokLength (3); usymtab_printTypes (); } +{ setTokLength (3); usymtab_printComplete (); } YY_BREAK case 171: YY_RULE_SETUP #line 515 "cscanner.l" -{ setTokLength (3); lldiagmsg (usymtab_unparseStack ()); } +{ setTokLength (3); usymtab_printTypes (); } YY_BREAK case 172: YY_RULE_SETUP #line 516 "cscanner.l" +{ setTokLength (3); lldiagmsg (usymtab_unparseStack ()); } + YY_BREAK +case 173: +YY_RULE_SETUP +#line 517 "cscanner.l" { setTokLength (3); lldiagmsg (message ("Can modify: %q", sRefSet_unparse (context_modList ()))); } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 520 "cscanner.l" +#line 521 "cscanner.l" { /* BEFORE_COMMENT_MARKER */ int tok; incColumn (); incColumn (); @@ -2119,22 +2129,22 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 529 "cscanner.l" +#line 530 "cscanner.l" { /* AFTER_COMMENT_MARKER */ setTokLength (2); inSpecPart = FALSE; RETURN_TOK (QENDMACRO); } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 533 "cscanner.l" +#line 534 "cscanner.l" { incColumn (); continueLine = TRUE; } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 534 "cscanner.l" +#line 535 "cscanner.l" { incColumn (); voptgenerror (FLG_SYNTAX, @@ -2143,12 +2153,12 @@ YY_RULE_SETUP g_currentloc); } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 541 "cscanner.l" +#line 542 "cscanner.l" ECHO; YY_BREAK -#line 2152 "lex.yy.c" +#line 2162 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2440,7 +2450,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 509 ) + if ( yy_current_state >= 519 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2475,11 +2485,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 509 ) + if ( yy_current_state >= 519 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 508); + yy_is_jam = (yy_current_state == 518); return yy_is_jam ? 0 : yy_current_state; } @@ -3034,7 +3044,7 @@ int main() return 0; } #endif -#line 541 "cscanner.l" +#line 542 "cscanner.l" struct skeyword @@ -3104,6 +3114,7 @@ struct skeyword s_keytable[] = { { "killref", QKILLREF } , { "null", QNULL } , { "relnull", QRELNULL } , + { "nullterminated", QNULLTERMINATED }, { "reldef", QRELDEF } , { "observer", QOBSERVER } , { "exits", QEXITS } , diff --git a/src/llgrammar.c b/src/llgrammar.c index d7b1154..af5a504 100644 --- a/src/llgrammar.c +++ b/src/llgrammar.c @@ -157,40 +157,41 @@ #define LLT_RELNULL 354 #define LLT_RELDEF 355 #define LLT_KILLREF 356 -#define LLT_TEMPREF 357 -#define LLT_NEWREF 358 -#define LLT_PRIVATE 359 -#define LLT_REQUIRES 360 -#define LLT_RESULT 361 -#define LLT_SIZEOF 362 -#define LLT_SPEC 363 -#define LLT_TAGGEDUNION 364 -#define LLT_THEN 365 -#define LLT_TYPE 366 -#define LLT_TYPEDEF 367 -#define LLT_UNCHANGED 368 -#define LLT_USES 369 -#define LLT_CHAR 370 -#define LLT_CONST 371 -#define LLT_DOUBLE 372 -#define LLT_ENUM 373 -#define LLT_FLOAT 374 -#define LLT_INT 375 -#define LLT_ITER 376 -#define LLT_YIELD 377 -#define LLT_LONG 378 -#define LLT_SHORT 379 -#define LLT_SIGNED 380 -#define LLT_UNKNOWN 381 -#define LLT_STRUCT 382 -#define LLT_TELIPSIS 383 -#define LLT_UNION 384 -#define LLT_UNSIGNED 385 -#define LLT_VOID 386 -#define LLT_VOLATILE 387 -#define LLT_PRINTFLIKE 388 -#define LLT_SCANFLIKE 389 -#define LLT_MESSAGELIKE 390 +#define LLT_NULLTERMINATED 357 +#define LLT_TEMPREF 358 +#define LLT_NEWREF 359 +#define LLT_PRIVATE 360 +#define LLT_REQUIRES 361 +#define LLT_RESULT 362 +#define LLT_SIZEOF 363 +#define LLT_SPEC 364 +#define LLT_TAGGEDUNION 365 +#define LLT_THEN 366 +#define LLT_TYPE 367 +#define LLT_TYPEDEF 368 +#define LLT_UNCHANGED 369 +#define LLT_USES 370 +#define LLT_CHAR 371 +#define LLT_CONST 372 +#define LLT_DOUBLE 373 +#define LLT_ENUM 374 +#define LLT_FLOAT 375 +#define LLT_INT 376 +#define LLT_ITER 377 +#define LLT_YIELD 378 +#define LLT_LONG 379 +#define LLT_SHORT 380 +#define LLT_SIGNED 381 +#define LLT_UNKNOWN 382 +#define LLT_STRUCT 383 +#define LLT_TELIPSIS 384 +#define LLT_UNION 385 +#define LLT_UNSIGNED 386 +#define LLT_VOID 387 +#define LLT_VOLATILE 388 +#define LLT_PRINTFLIKE 389 +#define LLT_SCANFLIKE 390 +#define LLT_MESSAGELIKE 391 #line 36 "llgrammar.y" @@ -314,11 +315,11 @@ typedef union -#define YYFINAL 683 +#define YYFINAL 684 #define YYFLAG -32768 -#define YYNTBASE 136 +#define YYNTBASE 137 -#define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 290) +#define YYTRANSLATE(x) ((unsigned)(x) <= 391 ? yytranslate[x] : 291) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -359,7 +360,8 @@ static const short yytranslate[] = { 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135 + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136 }; #if YYDEBUG != 0 @@ -387,200 +389,200 @@ static const short yyprhs[] = { 0, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, - 664, 666, 668, 670, 673, 679, 681, 684, 686, 689, - 690, 697, 698, 705, 708, 711, 712, 714, 716, 719, - 723, 725, 729, 730, 732, 739, 742, 744, 748, 750, - 752, 754, 758, 761, 764, 768, 773, 775, 779, 782, - 785, 789, 794, 796, 799, 802, 806, 811, 814, 817, - 820, 823, 827, 829, 830, 832, 836, 839, 841, 843, - 846, 850, 854, 859, 862, 866, 873, 875, 878, 881, - 885, 889, 894, 899, 905, 909, 914, 919, 925, 928, - 931, 935, 939, 941, 943, 945, 947, 949, 951, 953, - 954, 956, 958, 962, 964, 966, 971, 972, 974, 976, - 980, 982, 984, 991, 993, 997, 999, 1004, 1008, 1012, - 1014, 1017, 1020, 1022, 1024, 1026, 1029, 1031, 1034, 1037, - 1041, 1043, 1045, 1048, 1051, 1055, 1057, 1060, 1064, 1066, - 1072, 1076, 1081, 1084, 1088, 1091, 1093, 1097, 1101, 1103, - 1108, 1110, 1113, 1117, 1121, 1125, 1130, 1134, 1136, 1140, - 1142, 1144, 1146, 1148, 1150, 1152, 1157, 1162, 1167, 1172, - 1179, 1184, 1186, 1188, 1190, 1192, 1194, 1197, 1198, 1202, - 1204, 1208, 1212, 1217, 1219, 1221, 1223, 1225, 1227, 1229, - 1231, 1233 + 664, 666, 668, 670, 672, 675, 681, 683, 686, 688, + 691, 692, 699, 700, 707, 710, 713, 714, 716, 718, + 721, 725, 727, 731, 732, 734, 741, 744, 746, 750, + 752, 754, 756, 760, 763, 766, 770, 775, 777, 781, + 784, 787, 791, 796, 798, 801, 804, 808, 813, 816, + 819, 822, 825, 829, 831, 832, 834, 838, 841, 843, + 845, 848, 852, 856, 861, 864, 868, 875, 877, 880, + 883, 887, 891, 896, 901, 907, 911, 916, 921, 927, + 930, 933, 937, 941, 943, 945, 947, 949, 951, 953, + 955, 956, 958, 960, 964, 966, 968, 973, 974, 976, + 978, 982, 984, 986, 993, 995, 999, 1001, 1006, 1010, + 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033, 1036, + 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062, 1066, + 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099, 1103, + 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136, 1138, + 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164, 1169, + 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199, 1200, + 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227, 1229, + 1231, 1233, 1235 }; static const short yyrhs[] = { -1, - 138, 137, 140, 0, 0, 138, 139, 0, 143, 0, - 144, 0, 0, 145, 141, 0, 150, 141, 0, 0, - 141, 142, 0, 145, 0, 150, 0, 144, 0, 57, - 174, 7, 0, 114, 178, 7, 0, 153, 0, 154, - 0, 155, 0, 157, 0, 160, 0, 146, 0, 121, - 284, 10, 147, 37, 7, 0, 0, 148, 0, 149, - 0, 148, 32, 149, 0, 122, 243, 0, 243, 0, - 0, 108, 151, 152, 0, 153, 0, 154, 0, 155, - 0, 157, 0, 50, 226, 188, 7, 0, 226, 188, - 7, 0, 116, 226, 188, 7, 0, 132, 226, 188, - 7, 0, 162, 0, 171, 0, 133, 0, 134, 0, - 135, 0, 0, 226, 239, 190, 158, 34, 192, 194, - 198, 199, 200, 203, 204, 35, 0, 0, 156, 226, - 239, 190, 159, 34, 192, 194, 198, 199, 200, 203, - 204, 35, 0, 0, 48, 286, 10, 205, 37, 190, - 161, 34, 194, 199, 208, 203, 35, 0, 48, 283, - 286, 7, 0, 0, 0, 62, 163, 111, 20, 164, - 213, 0, 0, 0, 62, 165, 97, 111, 20, 166, - 213, 0, 0, 0, 97, 62, 167, 111, 20, 168, - 213, 0, 0, 0, 56, 169, 111, 20, 170, 213, - 0, 0, 0, 112, 226, 172, 218, 173, 7, 0, - 229, 7, 0, 237, 7, 0, 175, 0, 174, 32, - 175, 0, 177, 0, 3, 177, 3, 0, 43, 0, - 177, 0, 176, 32, 177, 0, 282, 0, 179, 0, - 178, 32, 179, 0, 288, 0, 288, 10, 181, 37, - 0, 10, 180, 37, 0, 10, 180, 37, 10, 181, - 37, 0, 288, 0, 180, 32, 288, 0, 183, 0, - 182, 0, 182, 32, 183, 0, 244, 0, 182, 32, - 244, 0, 184, 0, 183, 32, 184, 0, 244, 53, - 222, 0, 244, 53, 185, 0, 244, 53, 185, 255, - 0, 289, 0, 248, 0, 187, 0, 259, 0, 189, - 0, 188, 32, 189, 0, 239, 0, 239, 33, 186, - 0, 0, 190, 191, 0, 226, 188, 7, 0, 64, - 7, 0, 65, 7, 0, 0, 192, 193, 0, 104, - 226, 188, 7, 0, 0, 60, 195, 7, 0, 196, - 0, 195, 32, 196, 0, 284, 31, 197, 46, 259, - 0, 284, 46, 259, 0, 226, 0, 0, 49, 258, - 7, 0, 0, 105, 258, 7, 0, 0, 61, 63, - 7, 0, 61, 45, 7, 0, 61, 201, 7, 0, - 202, 0, 201, 32, 202, 0, 259, 0, 227, 0, - 66, 227, 0, 64, 0, 65, 0, 0, 52, 258, - 7, 0, 0, 48, 258, 7, 0, 0, 206, 0, - 207, 0, 128, 0, 207, 32, 128, 0, 243, 0, - 207, 32, 243, 0, 0, 47, 34, 209, 35, 0, - 47, 34, 209, 7, 35, 0, 210, 0, 10, 209, - 37, 0, 209, 6, 0, 209, 8, 209, 0, 209, - 7, 209, 0, 283, 10, 211, 37, 0, 283, 10, - 37, 0, 284, 33, 283, 10, 37, 0, 284, 33, - 283, 10, 211, 37, 0, 212, 0, 211, 32, 212, - 0, 276, 0, 284, 0, 3, 212, 0, 212, 3, - 0, 212, 3, 212, 0, 10, 212, 37, 0, 283, - 10, 37, 0, 283, 10, 211, 37, 0, 7, 0, - 34, 214, 35, 0, 34, 176, 35, 7, 0, 34, - 35, 7, 0, 0, 214, 157, 0, 0, 216, 0, - 0, 58, 217, 278, 10, 258, 37, 0, 219, 0, - 218, 32, 219, 0, 0, 239, 220, 221, 0, 0, - 34, 215, 35, 0, 131, 0, 115, 0, 117, 0, - 119, 0, 120, 0, 123, 0, 124, 0, 125, 0, - 130, 0, 126, 0, 222, 0, 223, 222, 0, 20, - 0, 223, 0, 67, 0, 78, 0, 68, 0, 69, + 139, 138, 141, 0, 0, 139, 140, 0, 144, 0, + 145, 0, 0, 146, 142, 0, 151, 142, 0, 0, + 142, 143, 0, 146, 0, 151, 0, 145, 0, 57, + 175, 7, 0, 115, 179, 7, 0, 154, 0, 155, + 0, 156, 0, 158, 0, 161, 0, 147, 0, 122, + 285, 10, 148, 37, 7, 0, 0, 149, 0, 150, + 0, 149, 32, 150, 0, 123, 244, 0, 244, 0, + 0, 109, 152, 153, 0, 154, 0, 155, 0, 156, + 0, 158, 0, 50, 227, 189, 7, 0, 227, 189, + 7, 0, 117, 227, 189, 7, 0, 133, 227, 189, + 7, 0, 163, 0, 172, 0, 134, 0, 135, 0, + 136, 0, 0, 227, 240, 191, 159, 34, 193, 195, + 199, 200, 201, 204, 205, 35, 0, 0, 157, 227, + 240, 191, 160, 34, 193, 195, 199, 200, 201, 204, + 205, 35, 0, 0, 48, 287, 10, 206, 37, 191, + 162, 34, 195, 200, 209, 204, 35, 0, 48, 284, + 287, 7, 0, 0, 0, 62, 164, 112, 20, 165, + 214, 0, 0, 0, 62, 166, 97, 112, 20, 167, + 214, 0, 0, 0, 97, 62, 168, 112, 20, 169, + 214, 0, 0, 0, 56, 170, 112, 20, 171, 214, + 0, 0, 0, 113, 227, 173, 219, 174, 7, 0, + 230, 7, 0, 238, 7, 0, 176, 0, 175, 32, + 176, 0, 178, 0, 3, 178, 3, 0, 43, 0, + 178, 0, 177, 32, 178, 0, 283, 0, 180, 0, + 179, 32, 180, 0, 289, 0, 289, 10, 182, 37, + 0, 10, 181, 37, 0, 10, 181, 37, 10, 182, + 37, 0, 289, 0, 181, 32, 289, 0, 184, 0, + 183, 0, 183, 32, 184, 0, 245, 0, 183, 32, + 245, 0, 185, 0, 184, 32, 185, 0, 245, 53, + 223, 0, 245, 53, 186, 0, 245, 53, 186, 256, + 0, 290, 0, 249, 0, 188, 0, 260, 0, 190, + 0, 189, 32, 190, 0, 240, 0, 240, 33, 187, + 0, 0, 191, 192, 0, 227, 189, 7, 0, 64, + 7, 0, 65, 7, 0, 0, 193, 194, 0, 105, + 227, 189, 7, 0, 0, 60, 196, 7, 0, 197, + 0, 196, 32, 197, 0, 285, 31, 198, 46, 260, + 0, 285, 46, 260, 0, 227, 0, 0, 49, 259, + 7, 0, 0, 106, 259, 7, 0, 0, 61, 63, + 7, 0, 61, 45, 7, 0, 61, 202, 7, 0, + 203, 0, 202, 32, 203, 0, 260, 0, 228, 0, + 66, 228, 0, 64, 0, 65, 0, 0, 52, 259, + 7, 0, 0, 48, 259, 7, 0, 0, 207, 0, + 208, 0, 129, 0, 208, 32, 129, 0, 244, 0, + 208, 32, 244, 0, 0, 47, 34, 210, 35, 0, + 47, 34, 210, 7, 35, 0, 211, 0, 10, 210, + 37, 0, 210, 6, 0, 210, 8, 210, 0, 210, + 7, 210, 0, 284, 10, 212, 37, 0, 284, 10, + 37, 0, 285, 33, 284, 10, 37, 0, 285, 33, + 284, 10, 212, 37, 0, 213, 0, 212, 32, 213, + 0, 277, 0, 285, 0, 3, 213, 0, 213, 3, + 0, 213, 3, 213, 0, 10, 213, 37, 0, 284, + 10, 37, 0, 284, 10, 212, 37, 0, 7, 0, + 34, 215, 35, 0, 34, 177, 35, 7, 0, 34, + 35, 7, 0, 0, 215, 158, 0, 0, 217, 0, + 0, 58, 218, 279, 10, 259, 37, 0, 220, 0, + 219, 32, 220, 0, 0, 240, 221, 222, 0, 0, + 34, 216, 35, 0, 132, 0, 116, 0, 118, 0, + 120, 0, 121, 0, 124, 0, 125, 0, 126, 0, + 131, 0, 127, 0, 223, 0, 224, 223, 0, 20, + 0, 224, 0, 67, 0, 78, 0, 68, 0, 69, 0, 71, 0, 72, 0, 73, 0, 74, 0, 95, 0, 79, 0, 80, 0, 82, 0, 83, 0, 81, 0, 75, 0, 76, 0, 77, 0, 87, 0, 88, 0, 89, 0, 90, 0, 91, 0, 99, 0, 100, - 0, 97, 0, 98, 0, 103, 0, 101, 0, 92, - 0, 93, 0, 94, 0, 96, 0, 70, 0, 84, - 0, 85, 0, 224, 0, 229, 0, 237, 0, 225, - 226, 0, 8, 227, 31, 227, 8, 0, 226, 0, - 226, 228, 0, 6, 0, 228, 6, 0, 0, 127, - 232, 230, 34, 233, 35, 0, 0, 129, 232, 231, - 34, 233, 35, 0, 127, 285, 0, 129, 285, 0, - 0, 285, 0, 234, 0, 233, 234, 0, 226, 235, - 7, 0, 239, 0, 235, 32, 239, 0, 0, 32, - 0, 118, 232, 34, 238, 236, 35, 0, 118, 285, - 0, 25, 0, 238, 32, 25, 0, 241, 0, 240, - 0, 284, 0, 10, 240, 37, 0, 6, 240, 0, - 240, 247, 0, 240, 10, 37, 0, 240, 10, 206, - 37, 0, 20, 0, 10, 241, 37, 0, 6, 241, - 0, 241, 247, 0, 241, 10, 37, 0, 241, 10, - 206, 37, 0, 20, 0, 6, 242, 0, 242, 247, - 0, 242, 10, 37, 0, 242, 10, 206, 37, 0, - 226, 242, 0, 226, 240, 0, 226, 245, 0, 226, - 245, 0, 66, 226, 245, 0, 248, 0, 0, 246, - 0, 10, 246, 37, 0, 6, 246, 0, 6, 0, - 247, 0, 246, 247, 0, 246, 10, 37, 0, 10, - 206, 37, 0, 246, 10, 206, 37, 0, 11, 36, - 0, 11, 187, 36, 0, 55, 27, 110, 27, 51, - 27, 0, 251, 0, 27, 251, 0, 251, 27, 0, - 27, 251, 27, 0, 249, 252, 250, 0, 27, 249, - 252, 250, 0, 249, 252, 250, 27, 0, 27, 249, - 252, 250, 27, 0, 11, 252, 36, 0, 11, 252, - 36, 27, 0, 27, 11, 252, 36, 0, 27, 11, - 252, 36, 27, 0, 12, 282, 0, 26, 282, 0, - 27, 12, 282, 0, 27, 26, 282, 0, 22, 0, - 34, 0, 23, 0, 35, 0, 263, 0, 14, 0, - 39, 0, 0, 253, 0, 27, 0, 253, 254, 27, - 0, 32, 0, 24, 0, 31, 256, 26, 287, 0, - 0, 257, 0, 287, 0, 257, 32, 287, 0, 259, - 0, 260, 0, 55, 260, 110, 260, 51, 260, 0, - 261, 0, 260, 14, 260, 0, 262, 0, 277, 10, - 258, 37, 0, 262, 39, 262, 0, 262, 33, 262, - 0, 264, 0, 267, 265, 0, 267, 266, 0, 3, - 0, 6, 0, 267, 0, 263, 264, 0, 263, 0, - 265, 263, 0, 263, 267, 0, 266, 263, 267, 0, - 272, 0, 268, 0, 268, 272, 0, 272, 268, 0, - 272, 268, 272, 0, 269, 0, 269, 272, 0, 270, - 31, 287, 0, 270, 0, 11, 271, 36, 31, 287, - 0, 11, 271, 36, 0, 11, 36, 31, 287, 0, - 11, 36, 0, 249, 271, 250, 0, 249, 250, 0, - 259, 0, 271, 254, 259, 0, 10, 260, 37, 0, - 284, 0, 289, 10, 273, 37, 0, 275, 0, 272, - 274, 0, 272, 12, 282, 0, 272, 26, 282, 0, - 272, 11, 36, 0, 272, 11, 273, 36, 0, 272, - 31, 287, 0, 260, 0, 273, 32, 260, 0, 28, - 0, 29, 0, 30, 0, 38, 0, 276, 0, 106, - 0, 54, 10, 273, 37, 0, 113, 10, 44, 37, - 0, 113, 10, 201, 37, 0, 107, 10, 259, 37, - 0, 59, 10, 259, 32, 259, 37, 0, 107, 10, - 226, 37, 0, 42, 0, 43, 0, 40, 0, 41, - 0, 278, 0, 277, 278, 0, 0, 21, 279, 280, - 0, 281, 0, 280, 32, 281, 0, 284, 31, 197, - 0, 284, 31, 66, 197, 0, 25, 0, 20, 0, - 25, 0, 25, 0, 282, 0, 282, 0, 282, 0, - 282, 0, 282, 0 + 0, 97, 0, 98, 0, 104, 0, 101, 0, 92, + 0, 93, 0, 94, 0, 96, 0, 70, 0, 102, + 0, 84, 0, 85, 0, 225, 0, 230, 0, 238, + 0, 226, 227, 0, 8, 228, 31, 228, 8, 0, + 227, 0, 227, 229, 0, 6, 0, 229, 6, 0, + 0, 128, 233, 231, 34, 234, 35, 0, 0, 130, + 233, 232, 34, 234, 35, 0, 128, 286, 0, 130, + 286, 0, 0, 286, 0, 235, 0, 234, 235, 0, + 227, 236, 7, 0, 240, 0, 236, 32, 240, 0, + 0, 32, 0, 119, 233, 34, 239, 237, 35, 0, + 119, 286, 0, 25, 0, 239, 32, 25, 0, 242, + 0, 241, 0, 285, 0, 10, 241, 37, 0, 6, + 241, 0, 241, 248, 0, 241, 10, 37, 0, 241, + 10, 207, 37, 0, 20, 0, 10, 242, 37, 0, + 6, 242, 0, 242, 248, 0, 242, 10, 37, 0, + 242, 10, 207, 37, 0, 20, 0, 6, 243, 0, + 243, 248, 0, 243, 10, 37, 0, 243, 10, 207, + 37, 0, 227, 243, 0, 227, 241, 0, 227, 246, + 0, 227, 246, 0, 66, 227, 246, 0, 249, 0, + 0, 247, 0, 10, 247, 37, 0, 6, 247, 0, + 6, 0, 248, 0, 247, 248, 0, 247, 10, 37, + 0, 10, 207, 37, 0, 247, 10, 207, 37, 0, + 11, 36, 0, 11, 188, 36, 0, 55, 27, 111, + 27, 51, 27, 0, 252, 0, 27, 252, 0, 252, + 27, 0, 27, 252, 27, 0, 250, 253, 251, 0, + 27, 250, 253, 251, 0, 250, 253, 251, 27, 0, + 27, 250, 253, 251, 27, 0, 11, 253, 36, 0, + 11, 253, 36, 27, 0, 27, 11, 253, 36, 0, + 27, 11, 253, 36, 27, 0, 12, 283, 0, 26, + 283, 0, 27, 12, 283, 0, 27, 26, 283, 0, + 22, 0, 34, 0, 23, 0, 35, 0, 264, 0, + 14, 0, 39, 0, 0, 254, 0, 27, 0, 254, + 255, 27, 0, 32, 0, 24, 0, 31, 257, 26, + 288, 0, 0, 258, 0, 288, 0, 258, 32, 288, + 0, 260, 0, 261, 0, 55, 261, 111, 261, 51, + 261, 0, 262, 0, 261, 14, 261, 0, 263, 0, + 278, 10, 259, 37, 0, 263, 39, 263, 0, 263, + 33, 263, 0, 265, 0, 268, 266, 0, 268, 267, + 0, 3, 0, 6, 0, 268, 0, 264, 265, 0, + 264, 0, 266, 264, 0, 264, 268, 0, 267, 264, + 268, 0, 273, 0, 269, 0, 269, 273, 0, 273, + 269, 0, 273, 269, 273, 0, 270, 0, 270, 273, + 0, 271, 31, 288, 0, 271, 0, 11, 272, 36, + 31, 288, 0, 11, 272, 36, 0, 11, 36, 31, + 288, 0, 11, 36, 0, 250, 272, 251, 0, 250, + 251, 0, 260, 0, 272, 255, 260, 0, 10, 261, + 37, 0, 285, 0, 290, 10, 274, 37, 0, 276, + 0, 273, 275, 0, 273, 12, 283, 0, 273, 26, + 283, 0, 273, 11, 36, 0, 273, 11, 274, 36, + 0, 273, 31, 288, 0, 261, 0, 274, 32, 261, + 0, 28, 0, 29, 0, 30, 0, 38, 0, 277, + 0, 107, 0, 54, 10, 274, 37, 0, 114, 10, + 44, 37, 0, 114, 10, 202, 37, 0, 108, 10, + 260, 37, 0, 59, 10, 260, 32, 260, 37, 0, + 108, 10, 227, 37, 0, 42, 0, 43, 0, 40, + 0, 41, 0, 279, 0, 278, 279, 0, 0, 21, + 280, 281, 0, 282, 0, 281, 32, 282, 0, 285, + 31, 198, 0, 285, 31, 66, 198, 0, 25, 0, + 20, 0, 25, 0, 25, 0, 283, 0, 283, 0, + 283, 0, 283, 0, 283, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 382, 383, 386, 387, 390, 391, 394, 395, 396, 399, - 400, 403, 404, 405, 408, 414, 418, 420, 422, 424, - 426, 428, 432, 436, 437, 440, 442, 446, 447, 450, - 451, 454, 456, 458, 460, 464, 468, 470, 472, 476, - 477, 480, 481, 482, 485, 486, 493, 495, 506, 508, - 511, 515, 515, 516, 517, 517, 519, 520, 521, 522, - 523, 523, 524, 527, 528, 529, 530, 532, 548, 550, - 554, 555, 557, 560, 561, 564, 568, 570, 574, 576, - 578, 580, 584, 585, 588, 590, 592, 595, 597, 600, - 602, 605, 606, 607, 611, 612, 614, 616, 619, 621, - 625, 626, 629, 631, 635, 636, 637, 640, 641, 644, - 648, 649, 652, 653, 656, 657, 659, 662, 663, 666, - 667, 670, 671, 672, 673, 676, 677, 680, 681, 682, - 683, 684, 687, 688, 691, 692, 695, 696, 699, 700, - 701, 704, 705, 708, 709, 710, 713, 714, 717, 722, - 728, 736, 738, 740, 742, 746, 747, 750, 751, 752, - 753, 754, 755, 756, 758, 762, 763, 764, 765, 768, - 769, 772, 773, 776, 776, 785, 786, 790, 791, 794, - 795, 798, 799, 800, 801, 802, 803, 804, 805, 806, - 807, 815, 816, 821, 823, 829, 830, 831, 832, 833, - 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, - 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, - 866, 868, 870, 872, 874, 883, 884, 889, 890, 893, - 895, 897, 899, 901, 903, 907, 908, 911, 912, 917, - 920, 922, 926, 927, 930, 932, 936, 937, 947, 948, - 951, 952, 953, 954, 955, 956, 959, 960, 961, 962, - 963, 964, 973, 974, 975, 976, 977, 983, 984, 985, - 995, 996, 997, 1002, 1003, 1006, 1007, 1008, 1009, 1010, - 1011, 1012, 1013, 1016, 1017, 1020, 1022, 1024, 1026, 1028, - 1031, 1033, 1035, 1037, 1039, 1041, 1049, 1051, 1053, 1056, - 1059, 1062, 1067, 1068, 1071, 1072, 1075, 1076, 1077, 1080, - 1081, 1084, 1085, 1088, 1089, 1092, 1095, 1096, 1099, 1100, - 1103, 1106, 1112, 1114, 1115, 1118, 1119, 1124, 1126, 1130, - 1131, 1132, 1135, 1136, 1139, 1140, 1143, 1144, 1147, 1148, - 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1160, 1161, 1164, - 1167, 1169, 1173, 1177, 1178, 1181, 1182, 1185, 1187, 1189, - 1191, 1192, 1194, 1196, 1198, 1201, 1203, 1207, 1208, 1211, - 1212, 1213, 1214, 1217, 1218, 1219, 1220, 1221, 1222, 1227, - 1233, 1243, 1244, 1245, 1246, 1249, 1251, 1255, 1259, 1262, - 1263, 1266, 1267, 1270, 1271, 1274, 1275, 1276, 1277, 1278, - 1279, 1280 + 383, 384, 387, 388, 391, 392, 395, 396, 397, 400, + 401, 404, 405, 406, 409, 415, 419, 421, 423, 425, + 427, 429, 433, 437, 438, 441, 443, 447, 448, 451, + 452, 455, 457, 459, 461, 465, 469, 471, 473, 477, + 478, 481, 482, 483, 486, 487, 494, 496, 507, 509, + 512, 516, 516, 517, 518, 518, 520, 521, 522, 523, + 524, 524, 525, 528, 529, 530, 531, 533, 549, 551, + 555, 556, 558, 561, 562, 565, 569, 571, 575, 577, + 579, 581, 585, 586, 589, 591, 593, 596, 598, 601, + 603, 606, 607, 608, 612, 613, 615, 617, 620, 622, + 626, 627, 630, 632, 636, 637, 638, 641, 642, 645, + 649, 650, 653, 654, 657, 658, 660, 663, 664, 667, + 668, 671, 672, 673, 674, 677, 678, 681, 682, 683, + 684, 685, 688, 689, 692, 693, 696, 697, 700, 701, + 702, 705, 706, 709, 710, 711, 714, 715, 718, 723, + 729, 737, 739, 741, 743, 747, 748, 751, 752, 753, + 754, 755, 756, 757, 759, 763, 764, 765, 766, 769, + 770, 773, 774, 777, 777, 786, 787, 791, 792, 795, + 796, 799, 800, 801, 802, 803, 804, 805, 806, 807, + 808, 816, 817, 822, 824, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, + 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, + 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, + 865, 868, 870, 872, 874, 876, 885, 886, 891, 892, + 895, 897, 899, 901, 903, 905, 909, 910, 913, 914, + 919, 922, 924, 928, 929, 932, 934, 938, 939, 949, + 950, 953, 954, 955, 956, 957, 958, 961, 962, 963, + 964, 965, 966, 975, 976, 977, 978, 979, 985, 986, + 987, 997, 998, 999, 1004, 1005, 1008, 1009, 1010, 1011, + 1012, 1013, 1014, 1015, 1018, 1019, 1022, 1024, 1026, 1028, + 1030, 1033, 1035, 1037, 1039, 1041, 1043, 1051, 1053, 1055, + 1058, 1061, 1064, 1069, 1070, 1073, 1074, 1077, 1078, 1079, + 1082, 1083, 1086, 1087, 1090, 1091, 1094, 1097, 1098, 1101, + 1102, 1105, 1108, 1114, 1116, 1117, 1120, 1121, 1126, 1128, + 1132, 1133, 1134, 1137, 1138, 1141, 1142, 1145, 1146, 1149, + 1150, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1162, 1163, + 1166, 1169, 1171, 1175, 1179, 1180, 1183, 1184, 1187, 1189, + 1191, 1193, 1194, 1196, 1198, 1200, 1203, 1205, 1209, 1210, + 1213, 1214, 1215, 1216, 1219, 1220, 1221, 1222, 1223, 1224, + 1229, 1235, 1245, 1246, 1247, 1248, 1251, 1253, 1257, 1261, + 1264, 1265, 1268, 1269, 1272, 1273, 1276, 1277, 1278, 1279, + 1280, 1281, 1282 }; #endif @@ -603,79 +605,80 @@ static const char * const yytname[] = { "$","error","$undefined.","simpleOp", "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT", "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER", "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF", -"LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES","LLT_RESULT","LLT_SIZEOF", -"LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE","LLT_TYPEDEF","LLT_UNCHANGED", -"LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE","LLT_ENUM","LLT_FLOAT","LLT_INT", -"LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT","LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT", -"LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED","LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE", -"LLT_SCANFLIKE","LLT_MESSAGELIKE","interface","@1","externals","external","optDeclarations", -"declarations","declaration","imports","uses","export","iter","iterParamList", -"realIterParamList","iterParam","private","@2","private2","constDeclaration", -"varDeclaration","type","special","fcn","@3","@4","claim","@5","abstract","@6", -"@7","@8","@9","@10","@11","@12","@13","exposed","@14","@15","importNameList", -"importName","interfaceNameList","interfaceName","traitRefNodeList","traitRef", -"traitIdList","renaming","nameList","replaceNodeList","replace","name","initializer", -"constLclExpr","initDecls","initDecl","globals","globalDecl","privateInits", -"privateInit","optLetDecl","beDeclList","beDecl","sortSpec","optChecks","optRequire", -"optModify","storeRefList","storeRef","optEnsure","optClaim","optParamList", -"realParamList","paramList","optBody","callExpr","stmt","valueList","value", -"abstBody","fcns","optTypeInv","typeInv","@16","declaratorInvs","declaratorInv", -"@17","optExposedBody","CType","CTypes","typeSpecifier","specialQualifier","lclTypeSpec", -"lclType","pointers","structOrUnionSpec","@18","@19","optTagId","structDecls", -"structDecl","declaratorList","optCOMMA","enumSpec","enumeratorList","declarator", -"notype_decl","after_type_decl","parameter_decl","param","typeName","optAbstDeclarator", -"abstDeclarator","arrayQual","opForm","open","close","anyOp","middle","placeList", -"separator","signature","domain","sortList","lclPredicate","term","term0","equalityTerm", -"simpleOpTerm","simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary", -"bracketed","sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary", +"LLT_NULLTERMINATED","LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES", +"LLT_RESULT","LLT_SIZEOF","LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE", +"LLT_TYPEDEF","LLT_UNCHANGED","LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE", +"LLT_ENUM","LLT_FLOAT","LLT_INT","LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT", +"LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT","LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED", +"LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE","LLT_SCANFLIKE","LLT_MESSAGELIKE", +"interface","@1","externals","external","optDeclarations","declarations","declaration", +"imports","uses","export","iter","iterParamList","realIterParamList","iterParam", +"private","@2","private2","constDeclaration","varDeclaration","type","special", +"fcn","@3","@4","claim","@5","abstract","@6","@7","@8","@9","@10","@11","@12", +"@13","exposed","@14","@15","importNameList","importName","interfaceNameList", +"interfaceName","traitRefNodeList","traitRef","traitIdList","renaming","nameList", +"replaceNodeList","replace","name","initializer","constLclExpr","initDecls", +"initDecl","globals","globalDecl","privateInits","privateInit","optLetDecl", +"beDeclList","beDecl","sortSpec","optChecks","optRequire","optModify","storeRefList", +"storeRef","optEnsure","optClaim","optParamList","realParamList","paramList", +"optBody","callExpr","stmt","valueList","value","abstBody","fcns","optTypeInv", +"typeInv","@16","declaratorInvs","declaratorInv","@17","optExposedBody","CType", +"CTypes","typeSpecifier","specialQualifier","lclTypeSpec","lclType","pointers", +"structOrUnionSpec","@18","@19","optTagId","structDecls","structDecl","declaratorList", +"optCOMMA","enumSpec","enumeratorList","declarator","notype_decl","after_type_decl", +"parameter_decl","param","typeName","optAbstDeclarator","abstDeclarator","arrayQual", +"opForm","open","close","anyOp","middle","placeList","separator","signature", +"domain","sortList","lclPredicate","term","term0","equalityTerm","simpleOpTerm", +"simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary","bracketed", +"sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary", "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName", "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL }; #endif static const short yyr1[] = { 0, - 137, 136, 138, 138, 139, 139, 140, 140, 140, 141, - 141, 142, 142, 142, 143, 144, 145, 145, 145, 145, - 145, 145, 146, 147, 147, 148, 148, 149, 149, 151, - 150, 152, 152, 152, 152, 153, 154, 154, 154, 155, - 155, 156, 156, 156, 158, 157, 159, 157, 161, 160, - 160, 163, 164, 162, 165, 166, 162, 167, 168, 162, - 169, 170, 162, 172, 173, 171, 171, 171, 174, 174, - 175, 175, 175, 176, 176, 177, 178, 178, 179, 179, - 179, 179, 180, 180, 181, 181, 181, 182, 182, 183, - 183, 184, 184, 184, 185, 185, 186, 187, 188, 188, - 189, 189, 190, 190, 191, 191, 191, 192, 192, 193, - 194, 194, 195, 195, 196, 196, 197, 198, 198, 199, - 199, 200, 200, 200, 200, 201, 201, 202, 202, 202, - 202, 202, 203, 203, 204, 204, 205, 205, 206, 206, - 206, 207, 207, 208, 208, 208, 209, 209, 209, 209, - 209, 210, 210, 210, 210, 211, 211, 212, 212, 212, - 212, 212, 212, 212, 212, 213, 213, 213, 213, 214, - 214, 215, 215, 217, 216, 218, 218, 220, 219, 221, - 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 223, 223, 224, 224, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 226, 226, 226, 226, 226, 227, 227, 228, 228, 230, - 229, 231, 229, 229, 229, 232, 232, 233, 233, 234, - 235, 235, 236, 236, 237, 237, 238, 238, 239, 239, - 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, - 241, 241, 242, 242, 242, 242, 242, 243, 243, 243, - 244, 244, 244, 245, 245, 246, 246, 246, 246, 246, - 246, 246, 246, 247, 247, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 249, 249, 250, 250, 251, 251, 251, 252, - 252, 253, 253, 254, 254, 255, 256, 256, 257, 257, - 258, 259, 260, 260, 260, 261, 261, 261, 261, 262, - 262, 262, 263, 263, 264, 264, 265, 265, 266, 266, - 267, 267, 267, 267, 267, 267, 267, 268, 268, 269, - 269, 269, 269, 270, 270, 271, 271, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 273, 273, 274, - 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, - 275, 276, 276, 276, 276, 277, 277, 279, 278, 280, - 280, 281, 281, 282, 282, 283, 284, 285, 286, 287, - 288, 289 + 138, 137, 139, 139, 140, 140, 141, 141, 141, 142, + 142, 143, 143, 143, 144, 145, 146, 146, 146, 146, + 146, 146, 147, 148, 148, 149, 149, 150, 150, 152, + 151, 153, 153, 153, 153, 154, 155, 155, 155, 156, + 156, 157, 157, 157, 159, 158, 160, 158, 162, 161, + 161, 164, 165, 163, 166, 167, 163, 168, 169, 163, + 170, 171, 163, 173, 174, 172, 172, 172, 175, 175, + 176, 176, 176, 177, 177, 178, 179, 179, 180, 180, + 180, 180, 181, 181, 182, 182, 182, 183, 183, 184, + 184, 185, 185, 185, 186, 186, 187, 188, 189, 189, + 190, 190, 191, 191, 192, 192, 192, 193, 193, 194, + 195, 195, 196, 196, 197, 197, 198, 199, 199, 200, + 200, 201, 201, 201, 201, 202, 202, 203, 203, 203, + 203, 203, 204, 204, 205, 205, 206, 206, 207, 207, + 207, 208, 208, 209, 209, 209, 210, 210, 210, 210, + 210, 211, 211, 211, 211, 212, 212, 213, 213, 213, + 213, 213, 213, 213, 213, 214, 214, 214, 214, 215, + 215, 216, 216, 218, 217, 219, 219, 221, 220, 222, + 222, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 224, 224, 225, 225, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 227, 227, 227, 227, 227, 228, 228, 229, 229, + 231, 230, 232, 230, 230, 230, 233, 233, 234, 234, + 235, 236, 236, 237, 237, 238, 238, 239, 239, 240, + 240, 241, 241, 241, 241, 241, 241, 242, 242, 242, + 242, 242, 242, 243, 243, 243, 243, 243, 244, 244, + 244, 245, 245, 245, 246, 246, 247, 247, 247, 247, + 247, 247, 247, 247, 248, 248, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 250, 250, 251, 251, 252, 252, 252, + 253, 253, 254, 254, 255, 255, 256, 257, 257, 258, + 258, 259, 260, 261, 261, 261, 262, 262, 262, 262, + 263, 263, 263, 264, 264, 265, 265, 266, 266, 267, + 267, 268, 268, 268, 268, 268, 268, 268, 269, 269, + 270, 270, 270, 270, 271, 271, 272, 272, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, + 275, 275, 275, 275, 276, 276, 276, 276, 276, 276, + 276, 276, 277, 277, 277, 277, 278, 278, 280, 279, + 281, 281, 282, 282, 283, 283, 284, 285, 286, 287, + 288, 289, 290 }; static const short yyr2[] = { 0, @@ -702,870 +705,888 @@ static const short yyr2[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 5, 1, 2, 1, 2, 0, - 6, 0, 6, 2, 2, 0, 1, 1, 2, 3, - 1, 3, 0, 1, 6, 2, 1, 3, 1, 1, - 1, 3, 2, 2, 3, 4, 1, 3, 2, 2, - 3, 4, 1, 2, 2, 3, 4, 2, 2, 2, - 2, 3, 1, 0, 1, 3, 2, 1, 1, 2, - 3, 3, 4, 2, 3, 6, 1, 2, 2, 3, - 3, 4, 4, 5, 3, 4, 4, 5, 2, 2, - 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 3, 1, 1, 4, 0, 1, 1, 3, - 1, 1, 6, 1, 3, 1, 4, 3, 3, 1, - 2, 2, 1, 1, 1, 2, 1, 2, 2, 3, - 1, 1, 2, 2, 3, 1, 2, 3, 1, 5, - 3, 4, 2, 3, 2, 1, 3, 3, 1, 4, - 1, 2, 3, 3, 3, 4, 3, 1, 3, 1, - 1, 1, 1, 1, 1, 4, 4, 4, 4, 6, - 4, 1, 1, 1, 1, 1, 2, 0, 3, 1, - 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1 + 1, 1, 1, 1, 2, 5, 1, 2, 1, 2, + 0, 6, 0, 6, 2, 2, 0, 1, 1, 2, + 3, 1, 3, 0, 1, 6, 2, 1, 3, 1, + 1, 1, 3, 2, 2, 3, 4, 1, 3, 2, + 2, 3, 4, 1, 2, 2, 3, 4, 2, 2, + 2, 2, 3, 1, 0, 1, 3, 2, 1, 1, + 2, 3, 3, 4, 2, 3, 6, 1, 2, 2, + 3, 3, 4, 4, 5, 3, 4, 4, 5, 2, + 2, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 3, 1, 1, 4, 0, 1, 1, + 3, 1, 1, 6, 1, 3, 1, 4, 3, 3, + 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, + 3, 1, 1, 2, 2, 3, 1, 2, 3, 1, + 5, 3, 4, 2, 3, 2, 1, 3, 3, 1, + 4, 1, 2, 3, 3, 3, 4, 3, 1, 3, + 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, + 6, 4, 1, 1, 1, 1, 1, 2, 0, 3, + 1, 3, 3, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 1 }; static const short yydefact[] = { 3, - 1, 0, 0, 7, 4, 5, 6, 0, 405, 404, - 73, 0, 69, 71, 76, 0, 0, 77, 411, 79, + 1, 0, 0, 7, 4, 5, 6, 0, 406, 405, + 73, 0, 69, 71, 76, 0, 0, 77, 412, 79, 0, 194, 0, 0, 61, 52, 196, 198, 199, 228, 200, 201, 202, 203, 210, 211, 212, 197, 205, 206, - 209, 207, 208, 229, 230, 213, 214, 215, 216, 217, + 209, 207, 208, 230, 231, 213, 214, 215, 216, 217, 224, 225, 226, 204, 227, 220, 221, 218, 219, 223, - 222, 30, 0, 183, 0, 184, 246, 185, 186, 0, - 187, 188, 189, 191, 246, 246, 190, 182, 0, 42, - 43, 44, 2, 10, 22, 10, 17, 18, 19, 0, - 20, 21, 40, 41, 192, 195, 231, 0, 0, 232, - 233, 0, 15, 0, 0, 83, 16, 0, 0, 220, - 236, 0, 232, 233, 406, 409, 0, 0, 0, 0, - 0, 0, 58, 0, 64, 0, 0, 408, 256, 407, - 0, 240, 244, 242, 245, 0, 8, 9, 0, 193, - 234, 0, 0, 267, 0, 99, 103, 260, 259, 261, - 67, 68, 72, 70, 0, 81, 78, 343, 344, 320, - 0, 318, 313, 0, 0, 314, 319, 0, 0, 0, - 86, 85, 90, 284, 88, 283, 320, 297, 317, 238, - 237, 0, 0, 137, 0, 101, 0, 0, 0, 0, - 31, 32, 33, 34, 35, 0, 0, 0, 24, 0, - 0, 0, 11, 14, 12, 13, 103, 263, 269, 0, - 0, 37, 0, 0, 45, 0, 0, 264, 0, 270, - 84, 0, 322, 0, 321, 309, 310, 320, 0, 0, - 320, 298, 0, 284, 80, 0, 0, 288, 0, 281, - 285, 289, 0, 0, 299, 239, 0, 51, 140, 0, - 138, 139, 284, 142, 36, 62, 53, 0, 0, 65, - 176, 178, 38, 257, 253, 0, 0, 25, 26, 29, - 0, 0, 39, 47, 262, 268, 100, 0, 0, 398, - 407, 394, 395, 392, 393, 0, 0, 0, 385, 0, - 0, 102, 97, 0, 98, 332, 334, 336, 0, 340, - 345, 352, 356, 359, 351, 371, 384, 0, 396, 412, - 369, 0, 0, 0, 0, 104, 0, 265, 0, 294, - 0, 271, 0, 0, 305, 325, 324, 0, 0, 311, - 312, 0, 300, 0, 282, 87, 89, 91, 0, 287, - 0, 0, 0, 290, 93, 92, 96, 95, 315, 316, - 301, 235, 103, 0, 288, 0, 273, 279, 278, 280, - 0, 0, 56, 59, 0, 0, 180, 254, 0, 28, - 0, 0, 0, 0, 248, 0, 0, 0, 363, 366, - 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, - 0, 0, 346, 345, 347, 341, 342, 353, 357, 0, - 0, 0, 0, 380, 381, 382, 0, 383, 354, 372, - 0, 397, 0, 106, 107, 108, 0, 266, 295, 272, - 82, 306, 323, 307, 302, 0, 292, 286, 291, 0, - 327, 94, 303, 49, 141, 143, 274, 288, 0, 275, - 166, 170, 63, 54, 0, 0, 177, 66, 172, 179, - 258, 255, 23, 27, 0, 251, 241, 249, 243, 108, - 368, 0, 361, 0, 399, 400, 0, 378, 0, 0, - 0, 194, 0, 0, 0, 131, 132, 0, 0, 126, - 129, 128, 364, 335, 339, 338, 349, 348, 0, 410, - 358, 375, 0, 373, 374, 377, 355, 0, 331, 0, - 111, 105, 308, 304, 0, 293, 0, 328, 329, 0, - 276, 0, 0, 0, 74, 0, 57, 60, 174, 0, - 173, 250, 0, 111, 362, 0, 367, 0, 0, 0, - 386, 0, 0, 391, 389, 387, 130, 0, 388, 350, - 376, 337, 370, 0, 0, 109, 118, 296, 0, 0, - 111, 277, 169, 0, 0, 167, 171, 0, 0, 181, - 252, 118, 360, 401, 0, 402, 117, 379, 0, 0, - 127, 0, 113, 0, 0, 0, 120, 326, 330, 120, - 75, 168, 103, 0, 120, 403, 333, 390, 112, 0, - 0, 0, 0, 0, 0, 122, 144, 0, 122, 114, - 0, 116, 110, 119, 0, 0, 133, 0, 133, 0, - 133, 0, 121, 0, 0, 0, 0, 135, 0, 0, - 175, 135, 115, 124, 123, 125, 0, 0, 0, 0, - 407, 0, 147, 0, 0, 50, 0, 134, 0, 46, - 0, 149, 0, 0, 145, 0, 0, 48, 136, 0, - 148, 146, 151, 150, 0, 0, 153, 0, 156, 158, - 0, 159, 406, 0, 160, 0, 0, 152, 161, 0, - 0, 163, 157, 162, 164, 0, 154, 0, 165, 155, - 0, 0, 0 + 229, 222, 30, 0, 183, 0, 184, 247, 185, 186, + 0, 187, 188, 189, 191, 247, 247, 190, 182, 0, + 42, 43, 44, 2, 10, 22, 10, 17, 18, 19, + 0, 20, 21, 40, 41, 192, 195, 232, 0, 0, + 233, 234, 0, 15, 0, 0, 83, 16, 0, 0, + 220, 237, 0, 233, 234, 407, 410, 0, 0, 0, + 0, 0, 0, 58, 0, 64, 0, 0, 409, 257, + 408, 0, 241, 245, 243, 246, 0, 8, 9, 0, + 193, 235, 0, 0, 268, 0, 99, 103, 261, 260, + 262, 67, 68, 72, 70, 0, 81, 78, 344, 345, + 321, 0, 319, 314, 0, 0, 315, 320, 0, 0, + 0, 86, 85, 90, 285, 88, 284, 321, 298, 318, + 239, 238, 0, 0, 137, 0, 101, 0, 0, 0, + 0, 31, 32, 33, 34, 35, 0, 0, 0, 24, + 0, 0, 0, 11, 14, 12, 13, 103, 264, 270, + 0, 0, 37, 0, 0, 45, 0, 0, 265, 0, + 271, 84, 0, 323, 0, 322, 310, 311, 321, 0, + 0, 321, 299, 0, 285, 80, 0, 0, 289, 0, + 282, 286, 290, 0, 0, 300, 240, 0, 51, 140, + 0, 138, 139, 285, 142, 36, 62, 53, 0, 0, + 65, 176, 178, 38, 258, 254, 0, 0, 25, 26, + 29, 0, 0, 39, 47, 263, 269, 100, 0, 0, + 399, 408, 395, 396, 393, 394, 0, 0, 0, 386, + 0, 0, 102, 97, 0, 98, 333, 335, 337, 0, + 341, 346, 353, 357, 360, 352, 372, 385, 0, 397, + 413, 370, 0, 0, 0, 0, 104, 0, 266, 0, + 295, 0, 272, 0, 0, 306, 326, 325, 0, 0, + 312, 313, 0, 301, 0, 283, 87, 89, 91, 0, + 288, 0, 0, 0, 291, 93, 92, 96, 95, 316, + 317, 302, 236, 103, 0, 289, 0, 274, 280, 279, + 281, 0, 0, 56, 59, 0, 0, 180, 255, 0, + 28, 0, 0, 0, 0, 249, 0, 0, 0, 364, + 367, 0, 0, 0, 0, 0, 0, 0, 366, 0, + 0, 0, 0, 347, 346, 348, 342, 343, 354, 358, + 0, 0, 0, 0, 381, 382, 383, 0, 384, 355, + 373, 0, 398, 0, 106, 107, 108, 0, 267, 296, + 273, 82, 307, 324, 308, 303, 0, 293, 287, 292, + 0, 328, 94, 304, 49, 141, 143, 275, 289, 0, + 276, 166, 170, 63, 54, 0, 0, 177, 66, 172, + 179, 259, 256, 23, 27, 0, 252, 242, 250, 244, + 108, 369, 0, 362, 0, 400, 401, 0, 379, 0, + 0, 0, 194, 0, 0, 0, 131, 132, 0, 0, + 126, 129, 128, 365, 336, 340, 339, 350, 349, 0, + 411, 359, 376, 0, 374, 375, 378, 356, 0, 332, + 0, 111, 105, 309, 305, 0, 294, 0, 329, 330, + 0, 277, 0, 0, 0, 74, 0, 57, 60, 174, + 0, 173, 251, 0, 111, 363, 0, 368, 0, 0, + 0, 387, 0, 0, 392, 390, 388, 130, 0, 389, + 351, 377, 338, 371, 0, 0, 109, 118, 297, 0, + 0, 111, 278, 169, 0, 0, 167, 171, 0, 0, + 181, 253, 118, 361, 402, 0, 403, 117, 380, 0, + 0, 127, 0, 113, 0, 0, 0, 120, 327, 331, + 120, 75, 168, 103, 0, 120, 404, 334, 391, 112, + 0, 0, 0, 0, 0, 0, 122, 144, 0, 122, + 114, 0, 116, 110, 119, 0, 0, 133, 0, 133, + 0, 133, 0, 121, 0, 0, 0, 0, 135, 0, + 0, 175, 135, 115, 124, 123, 125, 0, 0, 0, + 0, 408, 0, 147, 0, 0, 50, 0, 134, 0, + 46, 0, 149, 0, 0, 145, 0, 0, 48, 136, + 0, 148, 146, 151, 150, 0, 0, 153, 0, 156, + 158, 0, 159, 407, 0, 160, 0, 0, 152, 161, + 0, 0, 163, 157, 162, 164, 0, 154, 0, 165, + 155, 0, 0, 0 }; -static const short yydefgoto[] = { 681, - 4, 1, 5, 83, 137, 203, 6, 204, 205, 85, - 267, 268, 269, 206, 124, 191, 87, 88, 89, 90, - 91, 315, 377, 92, 510, 93, 121, 362, 122, 445, - 190, 446, 120, 361, 94, 196, 366, 12, 13, 514, - 14, 17, 18, 105, 170, 171, 172, 173, 345, 292, - 293, 145, 146, 215, 316, 501, 546, 547, 572, 573, - 566, 577, 596, 607, 479, 480, 618, 629, 250, 341, - 252, 609, 653, 633, 658, 659, 443, 516, 520, 521, - 559, 260, 261, 367, 450, 95, 96, 97, 98, 253, - 481, 181, 113, 200, 201, 127, 374, 375, 455, 369, - 114, 265, 186, 148, 149, 359, 254, 175, 240, 241, - 242, 176, 294, 351, 178, 224, 225, 464, 432, 507, - 508, 498, 499, 296, 297, 298, 299, 300, 396, 397, - 301, 302, 303, 304, 381, 305, 469, 410, 306, 307, - 308, 309, 382, 465, 466, 310, 661, 311, 129, 118, - 491, 20, 312 +static const short yydefgoto[] = { 682, + 4, 1, 5, 84, 138, 204, 6, 205, 206, 86, + 268, 269, 270, 207, 125, 192, 88, 89, 90, 91, + 92, 316, 378, 93, 511, 94, 122, 363, 123, 446, + 191, 447, 121, 362, 95, 197, 367, 12, 13, 515, + 14, 17, 18, 106, 171, 172, 173, 174, 346, 293, + 294, 146, 147, 216, 317, 502, 547, 548, 573, 574, + 567, 578, 597, 608, 480, 481, 619, 630, 251, 342, + 253, 610, 654, 634, 659, 660, 444, 517, 521, 522, + 560, 261, 262, 368, 451, 96, 97, 98, 99, 254, + 482, 182, 114, 201, 202, 128, 375, 376, 456, 370, + 115, 266, 187, 149, 150, 360, 255, 176, 241, 242, + 243, 177, 295, 352, 179, 225, 226, 465, 433, 508, + 509, 499, 500, 297, 298, 299, 300, 301, 397, 398, + 302, 303, 304, 305, 382, 306, 470, 411, 307, 308, + 309, 310, 383, 466, 467, 311, 662, 312, 130, 119, + 492, 20, 313 }; static const short yypact[] = {-32768, - -28, 224, 372, 1343,-32768,-32768,-32768, 132,-32768,-32768, --32768, 48,-32768,-32768,-32768, 132, 105,-32768,-32768, 49, - 2880,-32768, 227, 2880,-32768, 17,-32768,-32768,-32768,-32768, + -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,-32768, +-32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768, 33, + 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 161,-32768,-32768,-32768,-32768, --32768,-32768, 2880,-32768, 2880,-32768, 132,-32768,-32768, 221, --32768,-32768,-32768,-32768, 132, 132,-32768,-32768, 2880,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2880, --32768,-32768,-32768,-32768,-32768, 1065,-32768, 2880, 396, 247, - 270, 280,-32768, 224, 311,-32768,-32768, 372, 1147,-32768, - 310, 265,-32768,-32768, 343,-32768, 132, 345, 396, 209, - 246, 264,-32768, 1437,-32768, 396, 340,-32768, 346,-32768, - 378,-32768, 346,-32768, 346, 396, 1241, 1241, 396,-32768, --32768, 396, 396,-32768, 123,-32768, 118, 198, 294,-32768, --32768,-32768,-32768,-32768, 132, 431,-32768,-32768,-32768, 416, - 132,-32768,-32768, 132, 488,-32768,-32768, 423, 2880, 427, - 442, 444,-32768, 462, 417,-32768, 416, 466,-32768,-32768, - 499, 2880, 502, 2302, 149, 484, 501, 512, 428, 429, --32768,-32768,-32768,-32768,-32768, 396, 156, 509, 2396, 504, - 507, 165,-32768,-32768,-32768,-32768,-32768, 198, 294, 89, - 112,-32768, 396, 3134, 1824, 1920, 3009,-32768, 2016,-32768, --32768, 1147,-32768, 500, 33,-32768,-32768, 416, 132, 132, - 416, 516, 437, 462,-32768, 1147, 1147, 462, 1730,-32768, - 329,-32768, 239, 93,-32768,-32768, 538,-32768,-32768, 513, --32768, 517, 379,-32768,-32768,-32768,-32768, 533, 534, 523, --32768,-32768,-32768,-32768, 526, 2880, 522, 532,-32768,-32768, - 2880, 2880,-32768, 1824,-32768,-32768,-32768, 3134, 3036,-32768, - 343,-32768,-32768,-32768,-32768, 555, 3134, 556,-32768, 559, - 560,-32768,-32768, 412,-32768, 558,-32768, 121, 557,-32768, - 436, 438, 438, 540, 761,-32768,-32768, 290,-32768,-32768, --32768, 563, 567, 568, 542,-32768, 396,-32768, 541,-32768, - 544,-32768, 546, 547, 562,-32768,-32768, 566, 549,-32768, --32768, 93,-32768, 574,-32768, 444, 417,-32768, 417, 329, - 550, 128, 2112,-32768, 564,-32768,-32768,-32768,-32768,-32768, - 575,-32768,-32768, 2490, 379, 1634,-32768, 198, 376,-32768, - 34, 34,-32768,-32768, 396, 579, 570, 565, 578,-32768, - 587, 2396, 396, 2591,-32768, 2692, 576, 159, 583,-32768, - 393, 221, 3134, 21, 3134, 1018, 760,-32768, 463, 3134, - 557, 557,-32768,-32768, 288, 436, 436, 295, 295, 132, - 3077, 132, 132,-32768,-32768,-32768, 132,-32768, 438,-32768, - 3134,-32768, 3134,-32768,-32768,-32768, 211,-32768,-32768,-32768, --32768,-32768,-32768, 582, 588, 571,-32768,-32768,-32768, 586, - 132,-32768,-32768, 1824,-32768,-32768, 376, 434, 2208,-32768, --32768, 373,-32768,-32768, 34, 34,-32768,-32768, 561,-32768, --32768,-32768,-32768,-32768, 249,-32768,-32768,-32768,-32768,-32768, --32768, 132, 594, 3134, 596,-32768, 595, 558, 419, 3134, - 598, 625, 599, 601, 603,-32768,-32768, 2880, 425,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 288,-32768, --32768,-32768, 20,-32768,-32768,-32768, 295, 606,-32768, 445, - -7,-32768,-32768,-32768, 617,-32768, 619, 614,-32768, 613, --32768, 611, 642, 472,-32768, 1538,-32768,-32768,-32768, 615, --32768,-32768, 396, -7,-32768, 132,-32768, 221, 2786, 3134, --32768, 28, 3134,-32768,-32768,-32768,-32768, 889,-32768,-32768, --32768,-32768,-32768, 221, 2880,-32768, 605,-32768, 132, 132, - 597,-32768,-32768, 132, 648,-32768,-32768, 396, 637,-32768, --32768, 605,-32768,-32768, 2880,-32768,-32768, 558, 3134, 622, --32768, 277,-32768, 115, 396, 3134, 572,-32768,-32768, 572, --32768,-32768,-32768, 650, 572,-32768, 558,-32768,-32768, 221, - 2880, 3134, 282, 654, 3134, 607, 620, 3134, 607,-32768, - 616,-32768,-32768,-32768, 659, 631, 623, 635, 623, 641, - 623, 3134,-32768, 672, 673, 334, 3134, 633, 192, 647, --32768, 633,-32768,-32768,-32768,-32768, 676, 3134, 649, 192, - 677, 187,-32768, 678, 656,-32768, 657,-32768, 684,-32768, - 65,-32768, 200, 192,-32768, 245, 668,-32768,-32768, 192, --32768,-32768, 709,-32768, 189, 189,-32768, 451, 730,-32768, - 725,-32768,-32768, 726,-32768, 47, 189,-32768, 250, 309, - 335,-32768, 730,-32768,-32768, 452,-32768, 464,-32768,-32768, - 739, 740,-32768 +-32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,-32768, + 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768, 2903, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903, 408, + 155, 192, 205,-32768, 136, 204,-32768,-32768, 368, 1152, +-32768, 233, 223,-32768,-32768, 266,-32768, 181, 305, 408, + 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768, 347, +-32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247, 408, +-32768,-32768, 408, 408,-32768, 196,-32768, 259, 322, 409, +-32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,-32768, + 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403, 2903, + 410, 445, 453,-32768, 360, 439,-32768, 386, 474,-32768, +-32768, 496, 2903, 497, 2319, 239, 470, 486, 492, 401, + 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493, 2414, + 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322, 409, + 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768, 2030, +-32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386, 181, + 181, 386, 502, 421, 360,-32768, 1152, 1152, 360, 1741, +-32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,-32768, + 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522, 524, + 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,-32768, +-32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200, 3109, +-32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,-32768, + 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114, 3226, +-32768, 374, 382, 382, 535, 193,-32768,-32768, 273,-32768, +-32768,-32768, 555, 560, 562, 536,-32768, 408,-32768, 537, +-32768, 539,-32768, 540, 541, 552,-32768,-32768, 553, 547, +-32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768, 439, + 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,-32768, +-32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322, 469, +-32768, 47, 47,-32768,-32768, 408, 564, 538, 561, 559, +-32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36, 565, +-32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768, 220, + 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275, 275, + 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768, 382, +-32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,-32768, +-32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,-32768, + 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354, 2224, +-32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768, 530, +-32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,-32768, +-32768,-32768, 181, 567, 3200, 570,-32768, 572, 550, 362, + 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903, 384, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 268, +-32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,-32768, + 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,-32768, + 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,-32768, + 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108, 2808, + 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,-32768, +-32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768, 181, + 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408, 605, +-32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550, 3200, + 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,-32768, + 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,-32768, + 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200, 584, +-32768, 601,-32768,-32768,-32768, 639, 632, 596, 615, 596, + 613, 596, 3200,-32768, 644, 648, 337, 3200, 608, 49, + 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200, 625, + 49, 651, 50,-32768, 653, 631,-32768, 627,-32768, 658, +-32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,-32768, + 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419, 666, +-32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768, 316, + 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,-32768, +-32768, 670, 676,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768,-32768,-32768, 655,-32768,-32768, 741, 743,-32768, --32768,-32768, 371, 748,-32768,-32768, 621, 629, 640,-32768, - -120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 661,-32768, - -6,-32768, 651,-32768, 545,-32768, 539, 537,-32768,-32768, - 552, -114, 573, -179,-32768, 316,-32768, -434,-32768, 188, - -522, 215, -77, 180, 178, 255, -420, 166,-32768, -165, --32768,-32768, -406,-32768, -251, -288, -326,-32768,-32768,-32768, --32768,-32768, 432,-32768,-32768, -76,-32768,-32768,-32768, -3, - -18,-32768, 45,-32768,-32768, 440, 524, -79,-32768,-32768, - 63,-32768, -93, -135, 369, 443, -174, 287, -189, -212, - -101, 569, -32, -257, 643, -137,-32768, 580,-32768,-32768, --32768, -532, -201, -254,-32768, 137, -95, 508,-32768,-32768, - -282, 505,-32768,-32768, 515, -264, -173,-32768,-32768, -243, --32768, -297,-32768,-32768, 278, 7, -23, -38, 455, 694, - -373, 15, 577 +-32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,-32768, +-32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,-32768, + -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,-32768, + -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,-32768, + 471, -108, 478, -188,-32768, 232,-32768, -458,-32768, 127, + -473, 175, -169, 142, 137, 206, -206, 120,-32768, -180, +-32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,-32768, +-32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768, -3, + -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,-32768, + 56,-32768, -93, -127, 344, 398, -187, 257, -182, -213, + -101, 511, 30, -267, 603, -137,-32768, 586,-32768,-32768, +-32768, -531, -204, -254,-32768, 105, -46, 466,-32768,-32768, + -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768, -372, +-32768, -303,-32768,-32768, 242, 7, -23, -38, 423, 656, + -377, 19, 531 }; -#define YYLAST 3247 - - -static const short yytable[] = { 117, - 99, 102, 112, 195, 185, 147, 208, 210, 15, 19, - 412, 197, 295, 179, 15, 295, 394, 111, 251, 140, - 119, 202, 19, 378, 270, 340, 342, 274, 2, 116, - 106, 131, 384, 496, 390, 444, 388, 398, 399, 244, - 441, 390, 586, 594, 335, 207, 218, 220, 100, 669, - 319, 530, 544, 323, 103, 541, 326, 509, 109, 125, - 150, 126, 605, 360, 327, 610, 101, 442, 601, 179, - 642, 650, 644, 128, 425, 136, 177, 380, 569, 104, - 150, 128, 128, 672, 627, 3, 139, 150, 525, 562, - 329, 370, 380, 332, 141, 639, 545, 150, 216, 217, - 150, 651, 262, 150, 150, 174, 218, 220, 218, 220, - 15, 107, 487, -55, 19, 349, 580, 358, 517, 518, - 99, 219, 217, 116, -101, 275, 179, 350, 468, 212, - 470, 483, 231, 99, 99, 484, 108, 343, 217, 344, - 179, 179, 340, 342, 497, 591, 468, 179, 276, -101, - 214, 9, 563, 391, 213, 255, 10, 150, 468, 392, - 592, 19, 263, 247, 428, 234, 346, 226, 100, 221, - 227, 273, 390, 434, 150, 578, 579, 430, 111, 436, - 213, 100, 100, 471, 474, 482, 101, 213, 620, 177, - 622, 655, 642, 643, 644, 461, 213, 270, 656, 101, - 101, 630, 417, 177, 177, 395, 540, 216, 217, 630, - 177, 317, 632, 631, 150, 532, 631, 502, 174, 208, - 210, 645, 123, 641, 631, 340, 8, 493, 282, 283, - 284, 285, 174, 174, 652, 330, 331, 654, 344, 500, - 344, 158, 213, 9, 159, 130, 9, 655, 10, 160, - 161, 115, 162, 151, 656, 522, 218, 440, 9, 656, - 163, 584, 527, 10, 164, 165, 11, 373, 373, 631, - 317, 262, 166, 512, 631, 568, 152, 167, 150, 456, - 523, 657, 153, 589, 282, 283, 284, 285, 603, 282, - 283, 284, 285, 168, 458, 182, 458, 278, 279, 411, - 488, 489, 208, 219, 217, 401, 402, 9, 590, 163, - 280, 655, 281, 213, 587, 180, 150, 150, 656, 187, - 403, 166, 404, 405, 406, 407, 150, 282, 283, 284, - 285, 570, 408, 631, 150, 440, 482, 655, 343, 217, - 626, 286, 155, 467, 656, 675, 288, 156, 282, 283, - 284, 285, -404, 64, 184, 66, 188, 68, 69, 631, - 189, 71, 72, 73, 74, 538, 665, 666, 77, 78, - 373, 677, 373, 198, 282, 283, 284, 285, 673, -247, - 674, 16, 473, 111, 355, 439, 217, 199, 356, 217, - 602, 9, 9, 289, 290, 557, 10, 10, 357, 150, - 291, 142, 660, 130, 482, 143, 490, 513, 494, 495, - 623, 660, 660, 490, 158, 144, 326, 159, 676, 678, - 130, 278, 279, 660, 327, 660, 660, 660, 463, 561, - 317, 9, 280, 163, 349, 515, 281, 490, 158, 438, - 222, 159, 223, 356, 217, 166, 350, 278, 15, 233, - 530, 282, 283, 284, 285, 531, 538, 9, 130, 537, - 593, 539, 281, 235, 583, 286, 287, 238, 490, 243, - 288, 239, 217, 236, 111, 237, 530, 282, 283, 284, - 285, 543, 667, 667, 150, 349, 326, 668, 679, 467, - 158, 286, 245, 159, 327, 667, 288, 350, 228, 229, - 680, 162, 597, 554, 246, 574, 555, 599, 248, 163, - 209, 211, 558, 230, 132, 134, 214, 289, 290, 150, - 256, 166, 337, 339, 291, 567, 167, 485, 486, 133, - 135, 257, 490, 264, 111, 325, 150, 271, 258, 259, - 272, 575, 333, 289, 290, 352, 334, 581, 354, 353, - 291, 574, 363, 364, 365, 490, 490, 368, 371, 158, - 15, 567, 159, 372, 383, 385, 278, 279, 386, 387, - 400, 390, 413, 414, 415, 416, 9, 418, 163, 419, - 635, 281, 420, 421, 424, 448, 427, 567, 422, 451, - 166, 635, 423, 453, 431, 634, 282, 283, 284, 285, - 426, 433, 111, 449, 635, 635, 634, 662, 503, 460, - 286, 635, 452, 462, 504, 288, 662, 662, 519, 634, - 634, 505, 506, 664, 526, 529, 634, 528, 662, 533, - 662, 662, 662, 158, -405, 534, 159, 535, 21, 536, - 278, 279, 542, 548, 549, 550, 551, 552, 553, 560, - 472, 280, 163, 576, 582, 281, 544, 280, 588, 598, - 604, 612, 289, 290, 166, 613, 608, 606, 619, 291, - 282, 283, 284, 285, 617, 614, 595, 621, 624, 625, - 628, 636, 638, 640, 286, 287, -406, 646, 647, 288, - 649, 648, 663, 615, 476, 477, 478, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 644, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 110, 57, 58, - 59, 60, 669, 61, 670, 671, 289, 290, 682, 683, - 138, 7, 454, 291, 192, 64, 84, 66, 67, 68, - 69, 86, 193, 71, 72, 73, 74, 75, 157, 76, - 77, 78, 158, 194, 154, 159, 324, 21, 321, 278, - 279, 401, 402, 338, 336, 524, 585, 600, 611, 472, - 280, 163, 163, 616, 281, 277, 403, 637, 404, 405, - 406, 407, 571, 166, 166, 376, 447, 437, 408, 282, - 283, 284, 285, 475, 328, 564, 393, 232, 389, 409, - 183, 347, 0, 286, 287, 0, 0, 0, 288, 348, - 0, 0, 0, 476, 477, 478, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 0, 61, 0, 0, 289, 290, 0, 0, 0, - 0, 0, 291, 0, 64, 0, 66, 67, 68, 69, - 0, 0, 71, 72, 73, 74, 75, 0, 76, 77, - 78, 158, 0, 0, 159, 0, 21, 0, 278, 279, - 0, 0, 0, 0, 0, 0, 0, 0, 472, 280, - 163, 0, 0, 281, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 0, 0, 0, 0, 0, 282, 283, - 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 286, 287, 0, 0, 0, 288, 0, 0, - 0, 0, 476, 477, 478, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 110, 57, 58, 59, 60, - 0, 61, 0, 0, 289, 290, 0, 0, 0, 0, - 0, 291, 0, 64, 0, 66, 67, 68, 69, 0, - 0, 71, 72, 73, 74, 75, 0, 76, 77, 78, - 158, 0, 0, 159, 0, 21, 0, 278, 279, 0, - 0, 0, 0, 0, 0, 0, 0, 472, 280, 163, - 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, - 0, 166, 0, 0, 0, 0, 0, 282, 283, 284, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 286, 287, 0, 0, 0, 288, 0, 0, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 110, 57, 58, 59, 60, 0, - 61, 0, 0, 289, 290, 0, 0, 0, 0, 0, - 291, 0, 64, 0, 66, 67, 68, 69, 0, 0, - 71, 72, 73, 74, 75, 0, 76, 77, 78, 158, - 0, 0, 159, 0, 21, 0, 0, 160, 161, 0, - 162, 0, 0, 0, 0, 0, 22, 0, 163, 0, - 0, 0, 164, 165, 0, 0, 0, 0, 0, 64, - 166, 66, 0, 68, 69, 167, 0, 71, 72, 73, - 74, 0, 0, 0, 77, 78, 0, 0, 0, 0, - 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 169, 27, 28, 29, 30, 31, 32, 33, +#define YYLAST 3340 + + +static const short yytable[] = { 118, + 100, 103, 113, 196, 252, 413, 148, 141, 15, 19, + 296, 186, 271, 296, 15, 209, 211, 112, 198, 275, + 120, 395, 19, 391, 379, 341, 343, 389, 203, 117, + 497, 2, 132, 385, 107, 101, 320, 399, 400, 324, + 245, 391, 110, 670, 445, 595, 208, 219, 221, 391, + 124, 545, 336, 442, 510, 643, 644, 645, 631, 102, + 126, 151, 127, 180, 606, 426, 563, 611, 643, 651, + 645, 361, 462, 632, 129, 381, 137, 673, 570, 371, + 443, 151, 129, 129, 646, 526, 628, 140, 151, 3, + 381, 330, 587, 581, 333, 142, 546, 640, 151, 652, + 104, 151, 350, 263, 151, 151, 175, 219, 221, 219, + 221, 15, 633, -55, 351, 19, 108, 488, 602, 180, + 471, 100, 484, 642, 117, 105, 359, 518, 519, 469, + 217, 218, 131, 592, 100, 100, 485, 655, 8, 178, + 345, 109, 341, 343, 498, 327, 392, 469, 593, 564, + 220, 218, 393, 328, 347, 9, 101, 276, 151, 469, + 10, 152, 19, 431, 248, 435, 235, 437, 227, 101, + 101, 228, 579, 580, 222, 151, 180, 277, 11, 112, + 102, 472, 475, 483, 9, 271, 344, 218, 531, 10, + 180, 180, 542, 102, 102, 232, 494, 180, 153, 514, + 9, 9, 213, 402, 403, 10, 116, 154, 501, 418, + 656, 541, 318, 429, 164, 151, 533, 657, 404, 175, + 405, 406, 407, 408, 656, 341, 167, 214, 209, 211, + 409, 657, 632, 175, 175, 156, 331, 332, 181, 345, + 157, 345, 350, 327, 658, 256, 632, 283, 284, 285, + 286, 328, 178, 183, 351, 396, 585, 219, 441, 513, + 528, 283, 284, 285, 286, -101, 178, 178, 374, 374, + 214, 318, 263, 178, 661, -405, 569, 279, 280, 151, + 457, 631, 412, 661, 661, 402, 403, 9, 264, 164, + -101, 215, 282, 281, 274, 661, 632, 661, 661, 661, + 404, 167, 405, 406, 407, 408, 653, 283, 284, 285, + 286, 209, 409, 214, 185, 588, 327, 151, 151, 214, + 503, 287, 188, 523, 328, 657, 289, 151, 464, 571, + 159, 217, 218, 160, 483, 151, 441, 590, 161, 162, + 632, 163, 604, 627, 468, 214, 189, 9, 524, 164, + 489, 490, 10, 165, 166, 283, 284, 285, 286, 439, + 190, 167, 591, 357, 218, 239, 168, 214, 539, 240, + 218, 374, 199, 374, 290, 291, 159, 16, 131, 160, + -248, 292, 169, 474, 112, 356, 200, 9, 603, 357, + 218, 279, 10, 531, 555, 558, 223, 556, 532, 358, + 151, 9, 483, 621, 131, 623, 282, 491, 624, 495, + 496, 598, 224, 143, 491, 539, 600, 144, 220, 218, + 540, 283, 284, 285, 286, 666, 667, 145, 531, 234, + 562, 318, 131, 544, 656, 287, 516, 674, 491, 675, + 289, 657, 459, 65, 459, 67, 236, 69, 70, 15, + 668, 72, 73, 74, 75, 669, 632, 668, 78, 79, + 538, 668, 680, 344, 218, 584, 681, 594, 676, 491, + 656, 283, 284, 285, 286, 112, 237, 657, 440, 218, + 677, 679, 133, 135, 238, 151, 210, 212, 290, 291, + 468, 244, 632, 338, 340, 292, 486, 487, 134, 136, + 246, 247, 215, 249, 678, 257, 575, 283, 284, 285, + 286, 258, 259, 559, 65, 260, 67, 265, 69, 70, + 151, 272, 72, 73, 74, 75, 568, 273, 334, 78, + 79, 335, 353, 491, 326, 112, 159, 151, 355, 160, + 354, 364, 576, 365, 229, 230, 366, 163, 582, 369, + 372, 373, 575, 384, 386, 164, 491, 491, 387, 231, + 388, 15, 568, 391, 414, 401, 415, 167, 416, 417, + 449, 450, 168, 419, 420, 454, 421, 422, 423, 424, + 427, 636, 425, 434, 428, 452, 432, 520, 568, 504, + -406, 461, 636, 453, 505, 463, 635, 527, 554, 583, + 549, 529, 530, 112, 552, 636, 636, 635, 663, 507, + 534, 535, 636, 536, 537, 550, 506, 663, 663, 543, + 635, 635, 551, 553, 665, 281, 596, 635, 561, 663, + 577, 663, 663, 663, 159, 545, 589, 160, 599, 21, + 605, 279, 280, 609, 607, 614, 613, 618, 620, 622, + 625, 473, 281, 164, 626, 629, 282, 637, 639, 641, + -407, 649, 647, 648, 650, 167, 664, 645, 670, 683, + 671, 283, 284, 285, 286, 684, 615, 672, 7, 455, + 85, 139, 87, 325, 155, 287, 288, 337, 322, 339, + 289, 278, 525, 158, 616, 477, 478, 479, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 601, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 193, 62, 194, 586, 290, 291, + 195, 612, 638, 617, 572, 292, 448, 65, 377, 67, + 68, 69, 70, 438, 348, 72, 73, 74, 75, 76, + 410, 77, 78, 79, 159, 394, 390, 160, 233, 21, + 565, 279, 280, 184, 349, 0, 0, 0, 0, 0, + 0, 473, 281, 164, 0, 0, 282, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 0, 283, 284, 285, 286, 476, 0, 0, 0, 0, + 0, 329, 0, 0, 0, 287, 288, 0, 0, 0, + 289, 0, 0, 0, 0, 477, 478, 479, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 0, 62, 0, 0, 290, 291, + 0, 0, 0, 0, 0, 292, 0, 65, 0, 67, + 68, 69, 70, 0, 0, 72, 73, 74, 75, 76, + 0, 77, 78, 79, 159, 0, 0, 160, 0, 21, + 0, 279, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 473, 281, 164, 0, 0, 282, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 0, 283, 284, 285, 286, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 287, 288, 0, 0, 0, + 289, 0, 0, 0, 0, 477, 478, 479, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 0, 62, 0, 0, 290, 291, + 0, 0, 0, 0, 0, 292, 0, 65, 0, 67, + 68, 69, 70, 0, 0, 72, 73, 74, 75, 76, + 0, 77, 78, 79, 159, 0, 0, 160, 0, 21, + 0, 279, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 473, 281, 164, 0, 0, 282, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 0, 283, 284, 285, 286, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 287, 288, 0, 0, 0, + 289, 0, 0, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 0, 62, 0, 0, 290, 291, + 0, 0, 0, 0, 0, 292, 0, 65, 0, 67, + 68, 69, 70, 0, 0, 72, 73, 74, 75, 76, + 0, 77, 78, 79, 159, 0, 0, 160, 0, 21, + 0, 0, 161, 162, 0, 163, 0, 0, 0, 0, + 0, 22, 0, 164, 0, 0, 0, 165, 166, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 21, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 22, 65, 0, 67, + 68, 69, 70, 0, 0, 72, 73, 74, 75, 76, + 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 0, 24, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 26, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 110, 57, 58, 59, 60, 21, 61, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, + 62, 0, 0, 0, 0, 63, 0, 21, 0, 64, + 0, 3, 65, 66, 67, 68, 69, 70, 71, 22, + 72, 73, 74, 75, 76, 0, 77, 78, 79, 80, + 81, 82, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 23, 0, 24, + 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, + 0, 26, 0, 0, 0, 0, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 21, 62, 0, 0, 0, 0, 63, 0, + 0, 0, 64, 0, 22, 65, 66, 67, 68, 69, + 70, 71, 0, 72, 73, 74, 75, 76, 0, 77, + 78, 79, 80, 81, 82, 83, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 0, 62, 0, + 0, 0, 0, 0, 21, 0, 0, 64, 0, 0, + 65, 66, 67, 68, 69, 70, 22, 0, 72, 73, + 74, 75, 76, 0, 77, 78, 79, 80, 81, 82, + 83, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 22, 64, 0, 66, 67, 68, 69, 0, 0, 71, - 72, 73, 74, 75, 0, 76, 77, 78, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, - 24, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 0, 61, 0, 0, 0, 0, 62, 0, - 21, 0, 63, 0, 3, 64, 65, 66, 67, 68, - 69, 70, 22, 71, 72, 73, 74, 75, 0, 76, - 77, 78, 79, 80, 81, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 0, 24, 0, 0, 0, 0, 0, 25, 0, - 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 21, 61, 0, 0, 0, 0, - 62, 0, 0, 0, 63, 0, 22, 64, 65, 66, - 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, - 0, 76, 77, 78, 79, 80, 81, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 0, 61, - 0, 0, 0, 0, 0, 21, 0, 0, 63, 0, - 0, 64, 65, 66, 67, 68, 69, 22, 0, 71, - 72, 73, 74, 75, 0, 76, 77, 78, 79, 80, - 81, 82, 556, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 110, 57, 58, 59, 60, 438, - 61, 21, 0, 356, 217, 0, 0, 0, 0, 0, - 0, 0, 64, 22, 66, 67, 68, 69, 130, 0, - 71, 72, 73, 74, 75, 0, 76, 77, 78, 0, - 80, 81, 82, 0, 0, 0, 0, 0, 0, 0, + 53, 54, 55, 111, 57, 58, 59, 60, 61, 439, + 62, 21, 0, 357, 218, 0, 0, 0, 0, 0, + 0, 0, 65, 22, 67, 68, 69, 70, 131, 0, + 72, 73, 74, 75, 76, 0, 77, 78, 79, 0, + 81, 82, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 110, 57, 58, 59, 60, 238, 61, 21, 0, 239, - 217, 0, 0, 0, 0, 0, 0, 0, 64, 22, - 66, 67, 68, 69, 0, 0, 71, 72, 73, 74, - 75, 249, 76, 77, 78, 0, 0, 0, 0, 0, + 111, 57, 58, 59, 60, 61, 239, 62, 21, 0, + 240, 218, 0, 0, 0, 0, 0, 0, 0, 65, + 22, 67, 68, 69, 70, 0, 0, 72, 73, 74, + 75, 76, 250, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 21, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 64, 0, 66, 67, 68, 69, - 0, 0, 71, 72, 73, 74, 75, 249, 76, 77, - 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 111, 57, 58, + 59, 60, 61, 21, 62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 22, 65, 0, 67, 68, + 69, 70, 0, 0, 72, 73, 74, 75, 76, 250, + 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 314, 0, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 110, 57, 58, 59, 60, 0, 61, 21, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 22, - 66, 67, 68, 69, 0, 0, 71, 72, 73, 74, - 75, 0, 76, 77, 78, 0, 318, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, + 315, 0, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 111, 57, 58, 59, 60, 61, 0, 62, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 22, 67, 68, 69, 70, 0, 0, 72, + 73, 74, 75, 76, 0, 77, 78, 79, 0, 319, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 111, + 57, 58, 59, 60, 61, 0, 62, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 22, + 67, 68, 69, 70, 0, 0, 72, 73, 74, 75, + 76, 250, 77, 78, 79, 0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 0, 61, 21, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 22, 66, 67, 68, 69, - 0, 0, 71, 72, 73, 74, 75, 249, 76, 77, - 78, 0, 322, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 110, 57, 58, 59, 60, 0, 61, 21, + 50, 51, 52, 53, 54, 55, 111, 57, 58, 59, + 60, 61, 0, 62, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 22, 67, 68, 69, + 70, 0, 0, 72, 73, 74, 75, 76, 250, 77, + 78, 79, 0, 430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 22, 66, 67, 68, 69, 0, 0, 71, 72, - 73, 74, 75, 249, 76, 77, 78, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 110, 57, - 58, 59, 60, 0, 61, 21, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 22, 66, 67, - 68, 69, 0, 0, 71, 72, 73, 74, 75, 249, - 76, 77, 78, 0, 511, 0, 0, 0, 0, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 111, 57, 58, 59, 60, 61, 0, + 62, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 22, 67, 68, 69, 70, 0, 0, + 72, 73, 74, 75, 76, 250, 77, 78, 79, 0, + 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 110, 57, 58, 59, 60, 21, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 22, 64, 0, 66, 67, 68, 69, 0, 0, - 71, 72, 73, 74, 75, 249, 76, 77, 78, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 111, 57, 58, 59, 60, 61, 21, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 65, + 0, 67, 68, 69, 70, 0, 0, 72, 73, 74, + 75, 76, 250, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 110, 57, - 58, 59, 60, 21, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 22, 64, 0, 66, 67, - 68, 69, 0, 0, 71, 72, 73, 74, 75, 249, - 76, 77, 78, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 111, 57, 58, 59, 60, + 61, 21, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 22, 65, 0, 67, 68, 69, 70, + 0, 0, 72, 73, 74, 75, 76, 250, 77, 78, + 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 110, 57, 58, 59, 60, 21, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, - 64, 0, 66, 67, 68, 69, 0, 266, 71, 72, - 73, 74, 75, 0, 76, 77, 78, 0, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 111, 57, 58, 59, 60, 61, 21, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 65, + 0, 67, 68, 69, 70, 0, 267, 72, 73, 74, + 75, 76, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 0, 61, 0, 0, 0, 0, 0, 21, 0, - 0, 0, 0, 0, 64, 0, 66, 67, 68, 69, - 22, 0, 71, 72, 73, 74, 75, 435, 76, 77, - 78, 0, 0, 0, 0, 457, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 111, 57, 58, 59, 60, + 61, 0, 62, 0, 0, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 65, 0, 67, 68, 69, 70, + 22, 0, 72, 73, 74, 75, 76, 436, 77, 78, + 79, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 110, 57, 58, - 59, 60, 0, 61, 0, 0, 0, 0, 0, 21, - 0, 0, 0, 0, 0, 64, 0, 66, 67, 68, - 69, 22, 0, 71, 72, 73, 74, 75, 0, 76, - 77, 78, 0, 0, 0, 0, 459, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 50, 51, 52, 53, 54, 55, 111, 57, 58, + 59, 60, 61, 0, 62, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 0, 0, 65, 0, 67, 68, + 69, 70, 22, 0, 72, 73, 74, 75, 76, 0, + 77, 78, 79, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 110, 57, - 58, 59, 60, 21, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 22, 64, 0, 66, 67, - 68, 69, 0, 0, 71, 72, 73, 74, 75, 0, - 76, 77, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 111, + 57, 58, 59, 60, 61, 21, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 22, 65, 0, + 67, 68, 69, 70, 0, 0, 72, 73, 74, 75, + 76, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 565, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 110, 57, 58, 59, 60, 21, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, - 64, 0, 66, 67, 68, 69, 0, 0, 71, 72, - 73, 74, 75, 0, 76, 77, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 566, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 111, 57, 58, 59, 60, 61, + 21, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 65, 0, 67, 68, 69, 70, 0, + 0, 72, 73, 74, 75, 76, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 0, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 0, 66, 67, 68, 69, - 0, 0, 71, 72, 73, 74, 75, 0, 76, 77, - 78, 158, 0, 0, 159, 0, 0, 0, 278, 279, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 280, - 163, 0, 0, 281, 0, 0, 0, 0, 158, 0, - 0, 159, 166, 0, 320, 278, 279, 0, 282, 283, - 284, 285, 0, 0, 0, 9, 280, 163, 0, 0, - 281, 0, 286, 287, 0, 0, 0, 288, 0, 166, - 0, 379, 0, 0, 0, 282, 283, 284, 285, 158, - 0, 0, 159, 0, 0, 0, 278, 279, 0, 286, - 287, 0, 0, 0, 288, 0, 9, 280, 163, 0, - 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 0, 492, 0, 289, 290, 282, 283, 284, 285, - 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 287, 0, 0, 0, 288, 158, 0, 0, 159, - 0, 289, 290, 278, 279, 0, 0, 0, 291, 0, - 0, 0, 0, 9, 280, 163, 0, 0, 281, 0, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 282, 283, 284, 285, 0, 0, 0, - 0, 0, 289, 290, 0, 0, 0, 286, 287, 291, - 0, 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 111, + 57, 58, 59, 60, 61, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, + 67, 68, 69, 70, 0, 0, 72, 73, 74, 75, + 76, 0, 77, 78, 79, 159, 0, 0, 160, 0, + 0, 0, 279, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 9, 281, 164, 350, 0, 282, 0, 0, + 0, 159, 0, 0, 160, 0, 167, 351, 279, 280, + 0, 0, 283, 284, 285, 286, 0, 0, 9, 281, + 164, 0, 0, 282, 0, 0, 287, 288, 0, 0, + 0, 289, 167, 0, 321, 0, 0, 0, 283, 284, + 285, 286, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 159, 287, 288, 160, 0, 0, 289, 279, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 281, + 164, 0, 0, 282, 0, 0, 0, 0, 0, 290, + 291, 0, 167, 0, 380, 0, 292, 0, 283, 284, + 285, 286, 159, 0, 0, 160, 0, 0, 0, 279, + 280, 0, 287, 288, 0, 290, 291, 289, 0, 9, + 281, 164, 292, 0, 282, 0, 0, 0, 0, 0, + 0, 0, 0, 167, 0, 493, 0, 0, 0, 283, + 284, 285, 286, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 159, 287, 288, 160, 0, 0, 289, 279, + 280, 0, 0, 0, 0, 290, 291, 0, 0, 9, + 281, 164, 292, 0, 282, 0, 0, 0, 159, 0, + 0, 160, 0, 167, 0, 279, 280, 0, 0, 283, + 284, 285, 286, 0, 0, 9, 0, 164, 0, 0, + 282, 0, 0, 287, 288, 0, 290, 291, 289, 167, + 0, 0, 0, 292, 0, 283, 284, 285, 286, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, + 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 290, 291, 0, 0, + 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, - 290, 0, 0, 0, 0, 0, 291 + 0, 0, 290, 291, 0, 0, 0, 0, 0, 292 }; static const short yycheck[] = { 23, - 4, 8, 21, 124, 119, 99, 142, 143, 2, 3, - 308, 126, 214, 109, 8, 217, 299, 21, 184, 96, - 24, 136, 16, 278, 199, 238, 239, 207, 57, 23, - 16, 70, 287, 407, 14, 362, 294, 302, 303, 177, - 7, 14, 565, 576, 234, 139, 148, 149, 4, 3, - 216, 32, 60, 219, 7, 36, 24, 431, 10, 63, - 99, 65, 595, 253, 32, 598, 4, 34, 591, 165, - 6, 7, 8, 67, 332, 79, 109, 279, 51, 32, - 119, 75, 76, 37, 617, 114, 90, 126, 462, 524, - 228, 266, 294, 231, 98, 628, 104, 136, 10, 11, - 139, 37, 196, 142, 143, 109, 208, 209, 210, 211, - 104, 7, 395, 97, 108, 23, 551, 253, 445, 446, - 124, 10, 11, 117, 7, 37, 222, 35, 383, 7, - 110, 389, 165, 137, 138, 390, 32, 10, 11, 241, - 236, 237, 355, 356, 409, 31, 401, 243, 37, 32, - 33, 20, 526, 33, 32, 7, 25, 196, 413, 39, - 46, 155, 7, 182, 37, 169, 243, 161, 124, 155, - 164, 7, 14, 353, 213, 549, 550, 343, 182, 354, - 32, 137, 138, 385, 386, 387, 124, 32, 609, 222, - 611, 3, 6, 7, 8, 37, 32, 372, 10, 137, - 138, 10, 317, 236, 237, 301, 489, 10, 11, 10, - 243, 215, 619, 25, 253, 470, 25, 7, 222, 355, - 356, 35, 62, 630, 25, 438, 3, 401, 40, 41, - 42, 43, 236, 237, 35, 229, 230, 644, 340, 413, - 342, 3, 32, 20, 6, 25, 20, 3, 25, 11, - 12, 25, 14, 7, 10, 7, 358, 359, 20, 10, - 22, 559, 464, 25, 26, 27, 43, 271, 272, 25, - 274, 365, 34, 439, 25, 530, 7, 39, 317, 373, - 32, 37, 3, 7, 40, 41, 42, 43, 7, 40, - 41, 42, 43, 55, 374, 31, 376, 10, 11, 10, - 396, 397, 438, 10, 11, 11, 12, 20, 32, 22, - 21, 3, 25, 32, 569, 6, 355, 356, 10, 111, - 26, 34, 28, 29, 30, 31, 365, 40, 41, 42, - 43, 533, 38, 25, 373, 437, 538, 3, 10, 11, - 7, 54, 32, 382, 10, 37, 59, 37, 40, 41, - 42, 43, 10, 115, 10, 117, 111, 119, 120, 25, - 97, 123, 124, 125, 126, 32, 655, 656, 130, 131, - 374, 37, 376, 34, 40, 41, 42, 43, 667, 34, - 669, 10, 386, 387, 6, 10, 11, 10, 10, 11, - 592, 20, 20, 106, 107, 516, 25, 25, 20, 438, - 113, 6, 646, 25, 606, 10, 400, 35, 402, 403, - 612, 655, 656, 407, 3, 20, 24, 6, 670, 671, - 25, 10, 11, 667, 32, 669, 670, 671, 36, 523, - 434, 20, 21, 22, 23, 442, 25, 431, 3, 6, - 10, 6, 27, 10, 11, 34, 35, 10, 442, 27, - 32, 40, 41, 42, 43, 37, 32, 20, 25, 478, - 575, 37, 25, 37, 558, 54, 55, 6, 462, 53, - 59, 10, 11, 32, 478, 32, 32, 40, 41, 42, - 43, 37, 32, 32, 523, 23, 24, 37, 37, 528, - 3, 54, 27, 6, 32, 32, 59, 35, 11, 12, - 37, 14, 580, 32, 6, 544, 35, 585, 7, 22, - 142, 143, 516, 26, 75, 76, 33, 106, 107, 558, - 20, 34, 236, 237, 113, 529, 39, 391, 392, 75, - 76, 20, 526, 25, 538, 36, 575, 34, 111, 111, - 34, 545, 27, 106, 107, 8, 110, 554, 32, 37, - 113, 590, 20, 20, 32, 549, 550, 32, 37, 3, - 554, 565, 6, 32, 10, 10, 10, 11, 10, 10, - 31, 14, 10, 7, 7, 34, 20, 37, 22, 36, - 619, 25, 37, 37, 36, 7, 37, 591, 27, 25, - 34, 630, 27, 7, 31, 619, 40, 41, 42, 43, - 27, 27, 606, 34, 643, 644, 630, 646, 27, 34, - 54, 650, 35, 31, 27, 59, 655, 656, 58, 643, - 644, 51, 37, 647, 31, 31, 650, 32, 667, 32, - 669, 670, 671, 3, 10, 37, 6, 37, 8, 37, - 10, 11, 37, 27, 26, 32, 34, 37, 7, 35, - 20, 21, 22, 49, 7, 25, 60, 21, 37, 10, - 7, 46, 106, 107, 34, 7, 47, 61, 34, 113, - 40, 41, 42, 43, 52, 45, 105, 37, 7, 7, - 48, 35, 7, 35, 54, 55, 10, 10, 33, 59, - 7, 35, 25, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 8, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 3, 103, 10, 10, 106, 107, 0, 0, - 86, 1, 372, 113, 124, 115, 4, 117, 118, 119, - 120, 4, 124, 123, 124, 125, 126, 127, 108, 129, - 130, 131, 3, 124, 104, 6, 222, 8, 217, 10, - 11, 11, 12, 237, 236, 460, 562, 590, 599, 20, - 21, 22, 22, 606, 25, 213, 26, 622, 28, 29, - 30, 31, 538, 34, 34, 272, 365, 355, 38, 40, - 41, 42, 43, 44, 225, 528, 299, 165, 294, 305, - 117, 243, -1, 54, 55, -1, -1, -1, 59, 243, - -1, -1, -1, 64, 65, 66, 67, 68, 69, 70, + 4, 8, 21, 125, 185, 309, 100, 97, 2, 3, + 215, 120, 200, 218, 8, 143, 144, 21, 127, 208, + 24, 300, 16, 14, 279, 239, 240, 295, 137, 23, + 408, 57, 71, 288, 16, 4, 217, 303, 304, 220, + 178, 14, 10, 3, 363, 577, 140, 149, 150, 14, + 62, 60, 235, 7, 432, 6, 7, 8, 10, 4, + 64, 100, 66, 110, 596, 333, 525, 599, 6, 7, + 8, 254, 37, 25, 68, 280, 80, 37, 51, 267, + 34, 120, 76, 77, 35, 463, 618, 91, 127, 115, + 295, 229, 566, 552, 232, 99, 105, 629, 137, 37, + 7, 140, 23, 197, 143, 144, 110, 209, 210, 211, + 212, 105, 620, 97, 35, 109, 7, 396, 592, 166, + 111, 125, 390, 631, 118, 32, 254, 446, 447, 384, + 10, 11, 25, 31, 138, 139, 391, 645, 3, 110, + 242, 32, 356, 357, 410, 24, 33, 402, 46, 527, + 10, 11, 39, 32, 244, 20, 125, 37, 197, 414, + 25, 7, 156, 344, 183, 354, 170, 355, 162, 138, + 139, 165, 550, 551, 156, 214, 223, 37, 43, 183, + 125, 386, 387, 388, 20, 373, 10, 11, 32, 25, + 237, 238, 36, 138, 139, 166, 402, 244, 7, 35, + 20, 20, 7, 11, 12, 25, 25, 3, 414, 318, + 3, 490, 216, 37, 22, 254, 471, 10, 26, 223, + 28, 29, 30, 31, 3, 439, 34, 32, 356, 357, + 38, 10, 25, 237, 238, 32, 230, 231, 6, 341, + 37, 343, 23, 24, 37, 7, 25, 40, 41, 42, + 43, 32, 223, 31, 35, 302, 560, 359, 360, 440, + 465, 40, 41, 42, 43, 7, 237, 238, 272, 273, + 32, 275, 366, 244, 647, 10, 531, 10, 11, 318, + 374, 10, 10, 656, 657, 11, 12, 20, 7, 22, + 32, 33, 25, 21, 7, 668, 25, 670, 671, 672, + 26, 34, 28, 29, 30, 31, 35, 40, 41, 42, + 43, 439, 38, 32, 10, 570, 24, 356, 357, 32, + 7, 54, 112, 7, 32, 10, 59, 366, 36, 534, + 3, 10, 11, 6, 539, 374, 438, 7, 11, 12, + 25, 14, 7, 7, 383, 32, 112, 20, 32, 22, + 397, 398, 25, 26, 27, 40, 41, 42, 43, 6, + 97, 34, 32, 10, 11, 6, 39, 32, 32, 10, + 11, 375, 34, 377, 107, 108, 3, 10, 25, 6, + 34, 114, 55, 387, 388, 6, 10, 20, 593, 10, + 11, 10, 25, 32, 32, 517, 10, 35, 37, 20, + 439, 20, 607, 610, 25, 612, 25, 401, 613, 403, + 404, 581, 27, 6, 408, 32, 586, 10, 10, 11, + 37, 40, 41, 42, 43, 656, 657, 20, 32, 27, + 524, 435, 25, 37, 3, 54, 443, 668, 432, 670, + 59, 10, 375, 116, 377, 118, 37, 120, 121, 443, + 32, 124, 125, 126, 127, 37, 25, 32, 131, 132, + 479, 32, 37, 10, 11, 559, 37, 576, 37, 463, + 3, 40, 41, 42, 43, 479, 32, 10, 10, 11, + 671, 672, 76, 77, 32, 524, 143, 144, 107, 108, + 529, 53, 25, 237, 238, 114, 392, 393, 76, 77, + 27, 6, 33, 7, 37, 20, 545, 40, 41, 42, + 43, 20, 112, 517, 116, 112, 118, 25, 120, 121, + 559, 34, 124, 125, 126, 127, 530, 34, 27, 131, + 132, 111, 8, 527, 36, 539, 3, 576, 32, 6, + 37, 20, 546, 20, 11, 12, 32, 14, 555, 32, + 37, 32, 591, 10, 10, 22, 550, 551, 10, 26, + 10, 555, 566, 14, 10, 31, 7, 34, 7, 34, + 7, 34, 39, 37, 36, 7, 37, 37, 27, 27, + 27, 620, 36, 27, 37, 25, 31, 58, 592, 27, + 10, 34, 631, 35, 27, 31, 620, 31, 7, 7, + 27, 32, 31, 607, 34, 644, 645, 631, 647, 37, + 32, 37, 651, 37, 37, 26, 51, 656, 657, 37, + 644, 645, 32, 37, 648, 21, 106, 651, 35, 668, + 49, 670, 671, 672, 3, 60, 37, 6, 10, 8, + 7, 10, 11, 47, 61, 7, 46, 52, 34, 37, + 7, 20, 21, 22, 7, 48, 25, 35, 7, 35, + 10, 35, 10, 33, 7, 34, 25, 8, 3, 0, + 10, 40, 41, 42, 43, 0, 45, 10, 1, 373, + 4, 87, 4, 223, 105, 54, 55, 237, 218, 238, + 59, 214, 461, 109, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 591, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 125, 104, 125, 563, 107, 108, + 125, 600, 623, 607, 539, 114, 366, 116, 273, 118, + 119, 120, 121, 356, 244, 124, 125, 126, 127, 128, + 306, 130, 131, 132, 3, 300, 295, 6, 166, 8, + 529, 10, 11, 118, 244, -1, -1, -1, -1, -1, + -1, 20, 21, 22, -1, -1, 25, -1, -1, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + -1, 40, 41, 42, 43, 44, -1, -1, -1, -1, + -1, 226, -1, -1, -1, 54, 55, -1, -1, -1, + 59, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, -1, 104, -1, -1, 107, 108, + -1, -1, -1, -1, -1, 114, -1, 116, -1, 118, + 119, 120, 121, -1, -1, 124, 125, 126, 127, 128, + -1, 130, 131, 132, 3, -1, -1, 6, -1, 8, + -1, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, -1, -1, 25, -1, -1, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 54, 55, -1, -1, -1, + 59, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, -1, 104, -1, -1, 107, 108, + -1, -1, -1, -1, -1, 114, -1, 116, -1, 118, + 119, 120, 121, -1, -1, 124, 125, 126, 127, 128, + -1, 130, 131, 132, 3, -1, -1, 6, -1, 8, + -1, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, -1, -1, 25, -1, -1, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 54, 55, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, -1, 104, -1, -1, 107, 108, + -1, -1, -1, -1, -1, 114, -1, 116, -1, 118, + 119, 120, 121, -1, -1, 124, 125, 126, 127, 128, + -1, 130, 131, 132, 3, -1, -1, 6, -1, 8, + -1, -1, 11, 12, -1, 14, -1, -1, -1, -1, + -1, 20, -1, 22, -1, -1, -1, 26, 27, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 8, 104, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 116, -1, 118, + 119, 120, 121, -1, -1, 124, 125, 126, 127, 128, + -1, 130, 131, 132, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 48, -1, 50, -1, -1, -1, + -1, -1, 56, -1, -1, -1, -1, -1, 62, -1, + -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, + 104, -1, -1, -1, -1, 109, -1, 8, -1, 113, + -1, 115, 116, 117, 118, 119, 120, 121, 122, 20, + 124, 125, 126, 127, 128, -1, 130, 131, 132, 133, + 134, 135, 136, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 48, -1, 50, + -1, -1, -1, -1, -1, 56, -1, -1, -1, -1, + -1, 62, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, 103, -1, -1, 106, 107, -1, -1, -1, - -1, -1, 113, -1, 115, -1, 117, 118, 119, 120, - -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, - 131, 3, -1, -1, 6, -1, 8, -1, 10, 11, - -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, - 22, -1, -1, 25, -1, -1, -1, -1, -1, -1, - -1, -1, 34, -1, -1, -1, -1, -1, 40, 41, - 42, 43, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 54, 55, -1, -1, -1, 59, -1, -1, - -1, -1, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - -1, 103, -1, -1, 106, 107, -1, -1, -1, -1, - -1, 113, -1, 115, -1, 117, 118, 119, 120, -1, - -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, - 3, -1, -1, 6, -1, 8, -1, 10, 11, -1, - -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, - -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, - -1, 34, -1, -1, -1, -1, -1, 40, 41, 42, - 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 54, 55, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, -1, - 103, -1, -1, 106, 107, -1, -1, -1, -1, -1, - 113, -1, 115, -1, 117, 118, 119, 120, -1, -1, - 123, 124, 125, 126, 127, -1, 129, 130, 131, 3, - -1, -1, 6, -1, 8, -1, -1, 11, 12, -1, - 14, -1, -1, -1, -1, -1, 20, -1, 22, -1, - -1, -1, 26, 27, -1, -1, -1, -1, -1, 115, - 34, 117, -1, 119, 120, 39, -1, 123, 124, 125, - 126, -1, -1, -1, 130, 131, -1, -1, -1, -1, - -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 8, 103, + 101, 102, 8, 104, -1, -1, -1, -1, 109, -1, + -1, -1, 113, -1, 20, 116, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, 128, -1, 130, + 131, 132, 133, 134, 135, 136, -1, -1, -1, -1, + -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, + 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, + -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, + -1, -1, -1, -1, 8, -1, -1, 113, -1, -1, + 116, 117, 118, 119, 120, 121, 20, -1, 124, 125, + 126, 127, 128, -1, 130, 131, 132, 133, 134, 135, + 136, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 20, 115, -1, 117, 118, 119, 120, -1, -1, 123, - 124, 125, 126, 127, -1, 129, 130, 131, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, - 50, -1, -1, -1, -1, -1, 56, -1, -1, -1, - -1, -1, 62, -1, -1, -1, -1, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, - 8, -1, 112, -1, 114, 115, 116, 117, 118, 119, - 120, 121, 20, 123, 124, 125, 126, 127, -1, 129, - 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 48, -1, 50, -1, -1, -1, -1, -1, 56, -1, - -1, -1, -1, -1, 62, -1, -1, -1, -1, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 8, 103, -1, -1, -1, -1, - 108, -1, -1, -1, 112, -1, 20, 115, 116, 117, - 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, - -1, 129, 130, 131, 132, 133, 134, 135, -1, -1, - -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, - -1, -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, -1, 103, - -1, -1, -1, -1, -1, 8, -1, -1, 112, -1, - -1, 115, 116, 117, 118, 119, 120, 20, -1, 123, - 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, - 134, 135, 35, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 6, - 103, 8, -1, 10, 11, -1, -1, -1, -1, -1, - -1, -1, 115, 20, 117, 118, 119, 120, 25, -1, - 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, - 133, 134, 135, -1, -1, -1, -1, -1, -1, -1, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 6, + 104, 8, -1, 10, 11, -1, -1, -1, -1, -1, + -1, -1, 116, 20, 118, 119, 120, 121, 25, -1, + 124, 125, 126, 127, 128, -1, 130, 131, 132, -1, + 134, 135, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 6, 103, 8, -1, 10, - 11, -1, -1, -1, -1, -1, -1, -1, 115, 20, - 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, -1, -1, -1, -1, -1, + 97, 98, 99, 100, 101, 102, 6, 104, 8, -1, + 10, 11, -1, -1, -1, -1, -1, -1, -1, 116, + 20, 118, 119, 120, 121, -1, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 8, 103, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 20, 115, -1, 117, 118, 119, 120, - -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 8, 104, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 116, -1, 118, 119, + 120, 121, -1, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, + 65, -1, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, + 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 116, 20, 118, 119, 120, 121, -1, -1, 124, + 125, 126, 127, 128, -1, 130, 131, 132, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, -1, 103, 8, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 115, 20, - 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, - 127, -1, 129, 130, 131, -1, 37, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, -1, 104, 8, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 116, 20, + 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, 103, 8, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 115, 20, 117, 118, 119, 120, - -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, 37, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, -1, 103, 8, + 101, 102, -1, 104, 8, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 116, 20, 118, 119, 120, + 121, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 115, 20, 117, 118, 119, 120, -1, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, -1, 103, 8, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 115, 20, 117, 118, - 119, 120, -1, -1, 123, 124, 125, 126, 127, 128, - 129, 130, 131, -1, 37, -1, -1, -1, -1, -1, + -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, + 104, 8, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 116, 20, 118, 119, 120, 121, -1, -1, + 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, + 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 8, - 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 20, 115, -1, 117, 118, 119, 120, -1, -1, - 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 8, 104, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 116, + -1, 118, 119, 120, 121, -1, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 8, 103, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 20, 115, -1, 117, 118, - 119, 120, -1, -1, 123, 124, 125, 126, 127, 128, - 129, 130, 131, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 8, 104, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 116, -1, 118, 119, 120, 121, + -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 8, 103, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, - 115, -1, 117, 118, 119, 120, -1, 122, 123, 124, - 125, 126, 127, -1, 129, 130, 131, -1, -1, -1, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 8, 104, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 116, + -1, 118, 119, 120, 121, -1, 123, 124, 125, 126, + 127, 128, -1, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, 103, -1, -1, -1, -1, -1, 8, -1, - -1, -1, -1, -1, 115, -1, 117, 118, 119, 120, - 20, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, -1, -1, -1, 35, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, -1, 104, -1, -1, -1, -1, -1, 8, -1, + -1, -1, -1, -1, 116, -1, 118, 119, 120, 121, + 20, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, -1, 103, -1, -1, -1, -1, -1, 8, - -1, -1, -1, -1, -1, 115, -1, 117, 118, 119, - 120, 20, -1, 123, 124, 125, 126, 127, -1, 129, - 130, 131, -1, -1, -1, -1, 35, -1, -1, -1, + 100, 101, 102, -1, 104, -1, -1, -1, -1, -1, + 8, -1, -1, -1, -1, -1, 116, -1, 118, 119, + 120, 121, 20, -1, 124, 125, 126, 127, 128, -1, + 130, 131, 132, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 8, 103, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 20, 115, -1, 117, 118, - 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, - 129, 130, 131, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 8, 104, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 116, -1, + 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, + 128, -1, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 8, 103, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, - 115, -1, 117, 118, 119, 120, -1, -1, 123, 124, - 125, 126, 127, -1, 129, 130, 131, -1, -1, -1, + -1, -1, -1, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 8, 104, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 116, -1, 118, 119, 120, 121, -1, + -1, 124, 125, 126, 127, 128, -1, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, 103, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 115, -1, 117, 118, 119, 120, - -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, - 131, 3, -1, -1, 6, -1, -1, -1, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, -1, 104, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, + 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, + 128, -1, 130, 131, 132, 3, -1, -1, 6, -1, + -1, -1, 10, 11, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, -1, 25, -1, -1, + -1, 3, -1, -1, 6, -1, 34, 35, 10, 11, + -1, -1, 40, 41, 42, 43, -1, -1, 20, 21, + 22, -1, -1, 25, -1, -1, 54, 55, -1, -1, + -1, 59, 34, -1, 36, -1, -1, -1, 40, 41, + 42, 43, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3, 54, 55, 6, -1, -1, 59, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, - 22, -1, -1, 25, -1, -1, -1, -1, 3, -1, - -1, 6, 34, -1, 36, 10, 11, -1, 40, 41, - 42, 43, -1, -1, -1, 20, 21, 22, -1, -1, - 25, -1, 54, 55, -1, -1, -1, 59, -1, 34, - -1, 36, -1, -1, -1, 40, 41, 42, 43, 3, - -1, -1, 6, -1, -1, -1, 10, 11, -1, 54, - 55, -1, -1, -1, 59, -1, 20, 21, 22, -1, - -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, - 34, -1, 36, -1, 106, 107, 40, 41, 42, 43, - -1, 113, -1, -1, -1, -1, -1, -1, -1, -1, - 54, 55, -1, -1, -1, 59, 3, -1, -1, 6, - -1, 106, 107, 10, 11, -1, -1, -1, 113, -1, - -1, -1, -1, 20, 21, 22, -1, -1, 25, -1, - -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, - -1, -1, -1, 40, 41, 42, 43, -1, -1, -1, - -1, -1, 106, 107, -1, -1, -1, 54, 55, 113, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + 22, -1, -1, 25, -1, -1, -1, -1, -1, 107, + 108, -1, 34, -1, 36, -1, 114, -1, 40, 41, + 42, 43, 3, -1, -1, 6, -1, -1, -1, 10, + 11, -1, 54, 55, -1, 107, 108, 59, -1, 20, + 21, 22, 114, -1, 25, -1, -1, -1, -1, -1, + -1, -1, -1, 34, -1, 36, -1, -1, -1, 40, + 41, 42, 43, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 54, 55, 6, -1, -1, 59, 10, + 11, -1, -1, -1, -1, 107, 108, -1, -1, 20, + 21, 22, 114, -1, 25, -1, -1, -1, 3, -1, + -1, 6, -1, 34, -1, 10, 11, -1, -1, 40, + 41, 42, 43, -1, -1, 20, -1, 22, -1, -1, + 25, -1, -1, 54, 55, -1, 107, 108, 59, 34, + -1, -1, -1, 114, -1, 40, 41, 42, 43, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 107, 108, -1, -1, + -1, -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, - 107, -1, -1, -1, -1, -1, 113 + -1, -1, 107, 108, -1, -1, -1, -1, -1, 114 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/misc/bison.simple" +#line 3 "/gnu/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -1758,7 +1779,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/usr/share/misc/bison.simple" +#line 196 "/gnu/share/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 *. @@ -2063,169 +2084,169 @@ yyreduce: switch (yyn) { case 1: -#line 382 "llgrammar.y" +#line 383 "llgrammar.y" { lhExternals (yyvsp[0].interfacelist); ; break;} case 2: -#line 383 "llgrammar.y" +#line 384 "llgrammar.y" { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ; break;} case 3: -#line 386 "llgrammar.y" +#line 387 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 4: -#line 387 "llgrammar.y" +#line 388 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);; break;} case 7: -#line 394 "llgrammar.y" +#line 395 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 8: -#line 395 "llgrammar.y" +#line 396 "llgrammar.y" { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);; break;} case 9: -#line 396 "llgrammar.y" +#line 397 "llgrammar.y" { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);; break;} case 10: -#line 399 "llgrammar.y" +#line 400 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 11: -#line 400 "llgrammar.y" +#line 401 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);; break;} case 15: -#line 409 "llgrammar.y" +#line 410 "llgrammar.y" { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist); /* assume subspecs are already processed, symbol table info in external file */ ; break;} case 16: -#line 415 "llgrammar.y" +#line 416 "llgrammar.y" { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);; break;} case 17: -#line 419 "llgrammar.y" +#line 420 "llgrammar.y" { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ; break;} case 18: -#line 421 "llgrammar.y" +#line 422 "llgrammar.y" { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ; break;} case 19: -#line 423 "llgrammar.y" +#line 424 "llgrammar.y" { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ; break;} case 20: -#line 425 "llgrammar.y" +#line 426 "llgrammar.y" { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ; break;} case 21: -#line 427 "llgrammar.y" +#line 428 "llgrammar.y" { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ; break;} case 22: -#line 429 "llgrammar.y" +#line 430 "llgrammar.y" { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ; break;} case 23: -#line 433 "llgrammar.y" +#line 434 "llgrammar.y" { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ; break;} case 24: -#line 436 "llgrammar.y" +#line 437 "llgrammar.y" { yyval.paramlist = paramNodeList_new (); ; break;} case 25: -#line 437 "llgrammar.y" +#line 438 "llgrammar.y" { yyval.paramlist = yyvsp[0].paramlist; ; break;} case 26: -#line 441 "llgrammar.y" +#line 442 "llgrammar.y" { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ; break;} case 27: -#line 443 "llgrammar.y" +#line 444 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ; break;} case 28: -#line 446 "llgrammar.y" +#line 447 "llgrammar.y" { yyval.param = markYieldParamNode (yyvsp[0].param); ; break;} case 29: -#line 447 "llgrammar.y" +#line 448 "llgrammar.y" { yyval.param = yyvsp[0].param; ; break;} case 30: -#line 450 "llgrammar.y" +#line 451 "llgrammar.y" { symtable_export (g_symtab, FALSE); ; break;} case 31: -#line 451 "llgrammar.y" +#line 452 "llgrammar.y" { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ; break;} case 32: -#line 455 "llgrammar.y" +#line 456 "llgrammar.y" { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ; break;} case 33: -#line 457 "llgrammar.y" +#line 458 "llgrammar.y" { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ; break;} case 34: -#line 459 "llgrammar.y" +#line 460 "llgrammar.y" { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ; break;} case 35: -#line 461 "llgrammar.y" +#line 462 "llgrammar.y" { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ; break;} case 36: -#line 465 "llgrammar.y" +#line 466 "llgrammar.y" { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ; break;} case 37: -#line 469 "llgrammar.y" +#line 470 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ; break;} case 38: -#line 471 "llgrammar.y" +#line 472 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ; break;} case 39: -#line 473 "llgrammar.y" +#line 474 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ; break;} case 40: -#line 476 "llgrammar.y" +#line 477 "llgrammar.y" { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ; break;} case 41: -#line 477 "llgrammar.y" +#line 478 "llgrammar.y" { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ; break;} case 42: -#line 480 "llgrammar.y" +#line 481 "llgrammar.y" { yyval.typequal = qual_createPrintfLike (); ; break;} case 43: -#line 481 "llgrammar.y" +#line 482 "llgrammar.y" { yyval.typequal = qual_createScanfLike (); ; break;} case 44: -#line 482 "llgrammar.y" +#line 483 "llgrammar.y" { yyval.typequal = qual_createMessageLike (); ; break;} case 45: -#line 485 "llgrammar.y" +#line 486 "llgrammar.y" { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ; break;} case 46: -#line 487 "llgrammar.y" +#line 488 "llgrammar.y" { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); /* type, declarator, glovbls, privateinits, @@ -2234,11 +2255,11 @@ case 46: ; break;} case 47: -#line 493 "llgrammar.y" +#line 494 "llgrammar.y" { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ; break;} case 48: -#line 497 "llgrammar.y" +#line 498 "llgrammar.y" { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); /* type, declarator, glovbls, privateinits, @@ -2247,396 +2268,396 @@ case 48: ; break;} case 49: -#line 507 "llgrammar.y" +#line 508 "llgrammar.y" { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ; break;} case 50: -#line 509 "llgrammar.y" +#line 510 "llgrammar.y" { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate); symtable_exitScope (g_symtab); ; break;} case 51: -#line 512 "llgrammar.y" +#line 513 "llgrammar.y" { yyval.claim = (claimNode) 0; ; break;} case 52: -#line 515 "llgrammar.y" +#line 516 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 53: -#line 515 "llgrammar.y" +#line 516 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 54: -#line 516 "llgrammar.y" +#line 517 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ; break;} case 55: -#line 517 "llgrammar.y" +#line 518 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 56: -#line 518 "llgrammar.y" +#line 519 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 57: -#line 519 "llgrammar.y" +#line 520 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ; break;} case 58: -#line 520 "llgrammar.y" +#line 521 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 59: -#line 521 "llgrammar.y" +#line 522 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 60: -#line 522 "llgrammar.y" +#line 523 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ; break;} case 61: -#line 523 "llgrammar.y" +#line 524 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 62: -#line 523 "llgrammar.y" +#line 524 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 63: -#line 524 "llgrammar.y" +#line 525 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ; break;} case 64: -#line 527 "llgrammar.y" +#line 528 "llgrammar.y" { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ; break;} case 65: -#line 528 "llgrammar.y" +#line 529 "llgrammar.y" { g_inTypeDef = FALSE; ; break;} case 66: -#line 529 "llgrammar.y" +#line 530 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ; break;} case 67: -#line 531 "llgrammar.y" +#line 532 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ; break;} case 68: -#line 533 "llgrammar.y" +#line 534 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ; break;} case 69: -#line 549 "llgrammar.y" +#line 550 "llgrammar.y" { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ; break;} case 70: -#line 551 "llgrammar.y" +#line 552 "llgrammar.y" { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ; break;} case 71: -#line 554 "llgrammar.y" +#line 555 "llgrammar.y" { yyval.import = importNode_makePlain (yyvsp[0].ltok); ; break;} case 72: -#line 556 "llgrammar.y" +#line 557 "llgrammar.y" { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ; break;} case 73: -#line 557 "llgrammar.y" +#line 558 "llgrammar.y" { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ; break;} case 74: -#line 560 "llgrammar.y" +#line 561 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 75: -#line 561 "llgrammar.y" +#line 562 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 77: -#line 569 "llgrammar.y" +#line 570 "llgrammar.y" { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ; break;} case 78: -#line 571 "llgrammar.y" +#line 572 "llgrammar.y" { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ; break;} case 79: -#line 575 "llgrammar.y" +#line 576 "llgrammar.y" { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ; break;} case 80: -#line 577 "llgrammar.y" +#line 578 "llgrammar.y" { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ; break;} case 81: -#line 579 "llgrammar.y" +#line 580 "llgrammar.y" { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ; break;} case 82: -#line 581 "llgrammar.y" +#line 582 "llgrammar.y" { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ; break;} case 83: -#line 584 "llgrammar.y" +#line 585 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 84: -#line 585 "llgrammar.y" +#line 586 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 85: -#line 589 "llgrammar.y" +#line 590 "llgrammar.y" { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ; break;} case 86: -#line 591 "llgrammar.y" +#line 592 "llgrammar.y" { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ; break;} case 87: -#line 592 "llgrammar.y" +#line 593 "llgrammar.y" { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ; break;} case 88: -#line 596 "llgrammar.y" +#line 597 "llgrammar.y" { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ; break;} case 89: -#line 597 "llgrammar.y" +#line 598 "llgrammar.y" { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ; break;} case 90: -#line 601 "llgrammar.y" +#line 602 "llgrammar.y" { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ; break;} case 91: -#line 602 "llgrammar.y" +#line 603 "llgrammar.y" { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ; break;} case 92: -#line 605 "llgrammar.y" +#line 606 "llgrammar.y" { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ; break;} case 93: -#line 606 "llgrammar.y" +#line 607 "llgrammar.y" { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ; break;} case 94: -#line 607 "llgrammar.y" +#line 608 "llgrammar.y" { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined, yyvsp[-1].name, yyvsp[0].signature); ; break;} case 95: -#line 611 "llgrammar.y" +#line 612 "llgrammar.y" { yyval.name = makeNameNodeId (yyvsp[0].ltok); ; break;} case 96: -#line 612 "llgrammar.y" +#line 613 "llgrammar.y" { yyval.name = makeNameNodeForm (yyvsp[0].opform); ; break;} case 99: -#line 620 "llgrammar.y" +#line 621 "llgrammar.y" { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ; break;} case 100: -#line 622 "llgrammar.y" +#line 623 "llgrammar.y" { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ; break;} case 101: -#line 625 "llgrammar.y" +#line 626 "llgrammar.y" { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ; break;} case 102: -#line 626 "llgrammar.y" +#line 627 "llgrammar.y" { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ; break;} case 103: -#line 630 "llgrammar.y" +#line 631 "llgrammar.y" { yyval.globals = varDeclarationNodeList_new (); ; break;} case 104: -#line 632 "llgrammar.y" +#line 633 "llgrammar.y" { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ; break;} case 105: -#line 635 "llgrammar.y" +#line 636 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ; break;} case 106: -#line 636 "llgrammar.y" +#line 637 "llgrammar.y" { yyval.vardeclaration = makeInternalStateNode (); ; break;} case 107: -#line 637 "llgrammar.y" +#line 638 "llgrammar.y" { yyval.vardeclaration = makeFileSystemNode (); ; break;} case 108: -#line 640 "llgrammar.y" +#line 641 "llgrammar.y" { yyval.vardeclarationlist = varDeclarationNodeList_new (); ; break;} case 109: -#line 641 "llgrammar.y" +#line 642 "llgrammar.y" { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ; break;} case 110: -#line 645 "llgrammar.y" +#line 646 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ; break;} case 111: -#line 648 "llgrammar.y" +#line 649 "llgrammar.y" { yyval.letdecls = letDeclNodeList_new (); ; break;} case 112: -#line 649 "llgrammar.y" +#line 650 "llgrammar.y" { yyval.letdecls = yyvsp[-1].letdecls; ; break;} case 113: -#line 652 "llgrammar.y" +#line 653 "llgrammar.y" { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ; break;} case 114: -#line 653 "llgrammar.y" +#line 654 "llgrammar.y" { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ; break;} case 115: -#line 656 "llgrammar.y" +#line 657 "llgrammar.y" { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ; break;} case 116: -#line 657 "llgrammar.y" +#line 658 "llgrammar.y" { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ; break;} case 118: -#line 662 "llgrammar.y" +#line 663 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 119: -#line 663 "llgrammar.y" +#line 664 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ; break;} case 120: -#line 666 "llgrammar.y" +#line 667 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 121: -#line 667 "llgrammar.y" +#line 668 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 122: -#line 670 "llgrammar.y" +#line 671 "llgrammar.y" { yyval.modify = (modifyNode)0; ; break;} case 123: -#line 671 "llgrammar.y" +#line 672 "llgrammar.y" { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ; break;} case 124: -#line 672 "llgrammar.y" +#line 673 "llgrammar.y" { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ; break;} case 125: -#line 673 "llgrammar.y" +#line 674 "llgrammar.y" { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ; break;} case 126: -#line 676 "llgrammar.y" +#line 677 "llgrammar.y" { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ; break;} case 127: -#line 677 "llgrammar.y" +#line 678 "llgrammar.y" { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ; break;} case 128: -#line 680 "llgrammar.y" +#line 681 "llgrammar.y" { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ; break;} case 129: -#line 681 "llgrammar.y" +#line 682 "llgrammar.y" { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ; break;} case 130: -#line 682 "llgrammar.y" +#line 683 "llgrammar.y" { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ; break;} case 131: -#line 683 "llgrammar.y" +#line 684 "llgrammar.y" { yyval.storeref = makeStoreRefNodeInternal (); ; break;} case 132: -#line 684 "llgrammar.y" +#line 685 "llgrammar.y" { yyval.storeref = makeStoreRefNodeSystem (); ; break;} case 133: -#line 687 "llgrammar.y" +#line 688 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 134: -#line 688 "llgrammar.y" +#line 689 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 135: -#line 691 "llgrammar.y" +#line 692 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 136: -#line 692 "llgrammar.y" +#line 693 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 137: -#line 695 "llgrammar.y" +#line 696 "llgrammar.y" { yyval.paramlist = paramNodeList_new (); ; break;} case 138: -#line 696 "llgrammar.y" +#line 697 "llgrammar.y" { yyval.paramlist = yyvsp[0].paramlist; ; break;} case 140: -#line 700 "llgrammar.y" +#line 701 "llgrammar.y" { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ; break;} case 141: -#line 701 "llgrammar.y" +#line 702 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ; break;} case 142: -#line 704 "llgrammar.y" +#line 705 "llgrammar.y" { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ; break;} case 143: -#line 705 "llgrammar.y" +#line 706 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ; break;} case 144: -#line 708 "llgrammar.y" +#line 709 "llgrammar.y" { yyval.program = (programNode)0; ; break;} case 145: -#line 709 "llgrammar.y" +#line 710 "llgrammar.y" { yyval.program = yyvsp[-1].program; ; break;} case 146: -#line 710 "llgrammar.y" +#line 711 "llgrammar.y" { yyval.program = yyvsp[-2].program; ; break;} case 147: -#line 713 "llgrammar.y" +#line 714 "llgrammar.y" { yyval.program = makeProgramNode (yyvsp[0].stmt); ; break;} case 148: -#line 716 "llgrammar.y" +#line 717 "llgrammar.y" { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ; break;} case 149: -#line 718 "llgrammar.y" +#line 719 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-1].program); yyval.program = makeProgramNodeAction (x, ACT_ITER); ; break;} case 150: -#line 723 "llgrammar.y" +#line 724 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-2].program); programNodeList_addh (x, yyvsp[0].program); @@ -2644,7 +2665,7 @@ case 150: ; break;} case 151: -#line 729 "llgrammar.y" +#line 730 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-2].program); programNodeList_addh (x, yyvsp[0].program); @@ -2652,91 +2673,91 @@ case 151: ; break;} case 152: -#line 737 "llgrammar.y" +#line 738 "llgrammar.y" { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ; break;} case 153: -#line 739 "llgrammar.y" +#line 740 "llgrammar.y" { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ; break;} case 154: -#line 741 "llgrammar.y" +#line 742 "llgrammar.y" { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ; break;} case 155: -#line 743 "llgrammar.y" +#line 744 "llgrammar.y" { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ; break;} case 156: -#line 746 "llgrammar.y" +#line 747 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} case 157: -#line 747 "llgrammar.y" +#line 748 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 159: -#line 751 "llgrammar.y" +#line 752 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} case 160: -#line 752 "llgrammar.y" +#line 753 "llgrammar.y" { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 161: -#line 753 "llgrammar.y" +#line 754 "llgrammar.y" { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ; break;} case 162: -#line 754 "llgrammar.y" +#line 755 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 163: -#line 755 "llgrammar.y" +#line 756 "llgrammar.y" { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ; break;} case 164: -#line 757 "llgrammar.y" +#line 758 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 165: -#line 759 "llgrammar.y" +#line 760 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 166: -#line 762 "llgrammar.y" +#line 763 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 167: -#line 763 "llgrammar.y" +#line 764 "llgrammar.y" { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ; break;} case 168: -#line 764 "llgrammar.y" +#line 765 "llgrammar.y" { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ; break;} case 169: -#line 765 "llgrammar.y" +#line 766 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 170: -#line 768 "llgrammar.y" +#line 769 "llgrammar.y" { yyval.fcns = fcnNodeList_new (); ; break;} case 171: -#line 769 "llgrammar.y" +#line 770 "llgrammar.y" { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ; break;} case 172: -#line 772 "llgrammar.y" +#line 773 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 174: -#line 776 "llgrammar.y" +#line 777 "llgrammar.y" { g_inTypeDef = FALSE; ; break;} case 175: -#line 777 "llgrammar.y" +#line 778 "llgrammar.y" { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT; checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = yyvsp[-1].lclpredicate; @@ -2745,833 +2766,837 @@ case 175: ; break;} case 176: -#line 785 "llgrammar.y" +#line 786 "llgrammar.y" { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ; break;} case 177: -#line 787 "llgrammar.y" +#line 788 "llgrammar.y" { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ; break;} case 178: -#line 790 "llgrammar.y" +#line 791 "llgrammar.y" { declareForwardType (yyvsp[0].declare); ; break;} case 179: -#line 791 "llgrammar.y" +#line 792 "llgrammar.y" { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ; break;} case 180: -#line 794 "llgrammar.y" +#line 795 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 181: -#line 795 "llgrammar.y" +#line 796 "llgrammar.y" { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ; break;} case 182: -#line 798 "llgrammar.y" +#line 799 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ; break;} case 183: -#line 799 "llgrammar.y" +#line 800 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ; break;} case 184: -#line 800 "llgrammar.y" +#line 801 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ; break;} case 185: -#line 801 "llgrammar.y" +#line 802 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ; break;} case 186: -#line 802 "llgrammar.y" +#line 803 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ; break;} case 187: -#line 803 "llgrammar.y" +#line 804 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ; break;} case 188: -#line 804 "llgrammar.y" +#line 805 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ; break;} case 189: -#line 805 "llgrammar.y" +#line 806 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ; break;} case 190: -#line 806 "llgrammar.y" +#line 807 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ; break;} case 191: -#line 807 "llgrammar.y" +#line 808 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ; break;} case 192: -#line 815 "llgrammar.y" +#line 816 "llgrammar.y" { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ; break;} case 193: -#line 816 "llgrammar.y" +#line 817 "llgrammar.y" { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ; break;} case 194: -#line 822 "llgrammar.y" +#line 823 "llgrammar.y" { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ; break;} case 195: -#line 824 "llgrammar.y" +#line 825 "llgrammar.y" { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ; break;} case 196: -#line 829 "llgrammar.y" +#line 830 "llgrammar.y" { yyval.typequal = qual_createOut (); ; break;} case 197: -#line 830 "llgrammar.y" +#line 831 "llgrammar.y" { yyval.typequal = qual_createUnused (); ; break;} case 198: -#line 831 "llgrammar.y" +#line 832 "llgrammar.y" { yyval.typequal = qual_createSef (); ; break;} case 199: -#line 832 "llgrammar.y" +#line 833 "llgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 200: -#line 833 "llgrammar.y" +#line 834 "llgrammar.y" { yyval.typequal = qual_createOwned (); ; break;} case 201: -#line 834 "llgrammar.y" +#line 835 "llgrammar.y" { yyval.typequal = qual_createDependent (); ; break;} case 202: -#line 835 "llgrammar.y" +#line 836 "llgrammar.y" { yyval.typequal = qual_createKeep (); ; break;} case 203: -#line 836 "llgrammar.y" +#line 837 "llgrammar.y" { yyval.typequal = qual_createKept (); ; break;} case 204: -#line 837 "llgrammar.y" +#line 838 "llgrammar.y" { yyval.typequal = qual_createObserver (); ; break;} case 205: -#line 838 "llgrammar.y" +#line 839 "llgrammar.y" { yyval.typequal = qual_createExits (); ; break;} case 206: -#line 839 "llgrammar.y" +#line 840 "llgrammar.y" { yyval.typequal = qual_createMayExit (); ; break;} case 207: -#line 840 "llgrammar.y" +#line 841 "llgrammar.y" { yyval.typequal = qual_createTrueExit (); ; break;} case 208: -#line 841 "llgrammar.y" +#line 842 "llgrammar.y" { yyval.typequal = qual_createFalseExit (); ; break;} case 209: -#line 842 "llgrammar.y" +#line 843 "llgrammar.y" { yyval.typequal = qual_createNeverExit (); ; break;} case 210: -#line 843 "llgrammar.y" +#line 844 "llgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 211: -#line 844 "llgrammar.y" +#line 845 "llgrammar.y" { yyval.typequal = qual_createShared (); ; break;} case 212: -#line 845 "llgrammar.y" +#line 846 "llgrammar.y" { yyval.typequal = qual_createUnique (); ; break;} case 213: -#line 846 "llgrammar.y" +#line 847 "llgrammar.y" { yyval.typequal = qual_createChecked (); ; break;} case 214: -#line 847 "llgrammar.y" +#line 848 "llgrammar.y" { yyval.typequal = qual_createUnchecked (); ; break;} case 215: -#line 848 "llgrammar.y" +#line 849 "llgrammar.y" { yyval.typequal = qual_createCheckedStrict (); ; break;} case 216: -#line 849 "llgrammar.y" +#line 850 "llgrammar.y" { yyval.typequal = qual_createTrueNull (); ; break;} case 217: -#line 850 "llgrammar.y" +#line 851 "llgrammar.y" { yyval.typequal = qual_createFalseNull (); ; break;} case 218: -#line 851 "llgrammar.y" +#line 852 "llgrammar.y" { yyval.typequal = qual_createRelNull (); ; break;} case 219: -#line 852 "llgrammar.y" +#line 853 "llgrammar.y" { yyval.typequal = qual_createRelDef (); ; break;} case 220: -#line 853 "llgrammar.y" +#line 854 "llgrammar.y" { yyval.typequal = qual_createRefCounted (); ; break;} case 221: -#line 854 "llgrammar.y" +#line 855 "llgrammar.y" { yyval.typequal = qual_createRefs (); ; break;} case 222: -#line 855 "llgrammar.y" +#line 856 "llgrammar.y" { yyval.typequal = qual_createNewRef (); ; break;} case 223: -#line 856 "llgrammar.y" +#line 857 "llgrammar.y" { yyval.typequal = qual_createKillRef (); ; break;} case 224: -#line 857 "llgrammar.y" +#line 858 "llgrammar.y" { yyval.typequal = qual_createNull (); ; break;} case 225: -#line 858 "llgrammar.y" +#line 859 "llgrammar.y" { yyval.typequal = qual_createNotNull (); ; break;} case 226: -#line 859 "llgrammar.y" +#line 860 "llgrammar.y" { yyval.typequal = qual_createReturned (); ; break;} case 227: -#line 860 "llgrammar.y" +#line 861 "llgrammar.y" { yyval.typequal = qual_createExposed (); ; break;} case 228: -#line 861 "llgrammar.y" +#line 862 "llgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} case 229: -#line 862 "llgrammar.y" -{ yyval.typequal = qual_createUndef (); ; +#line 863 "llgrammar.y" +{ yyval.typequal = qual_createNullTerminated () ; ; break;} case 230: -#line 863 "llgrammar.y" -{ yyval.typequal = qual_createKilled (); ; +#line 864 "llgrammar.y" +{ yyval.typequal = qual_createUndef (); ; break;} case 231: -#line 867 "llgrammar.y" -{ yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ; +#line 865 "llgrammar.y" +{ yyval.typequal = qual_createKilled (); ; break;} case 232: #line 869 "llgrammar.y" -{ yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ; +{ yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ; break;} case 233: #line 871 "llgrammar.y" -{ yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ; +{ yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ; break;} case 234: #line 873 "llgrammar.y" -{ yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ; +{ yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ; break;} case 235: #line 875 "llgrammar.y" +{ yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ; + break;} +case 236: +#line 877 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ; break;} -case 237: -#line 885 "llgrammar.y" +case 238: +#line 887 "llgrammar.y" { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec)); yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ; break;} -case 238: -#line 889 "llgrammar.y" -{ yyval.count = 1; ; - break;} case 239: -#line 890 "llgrammar.y" -{ yyval.count = yyvsp[-1].count + 1; ; +#line 891 "llgrammar.y" +{ yyval.count = 1; ; break;} case 240: -#line 894 "llgrammar.y" -{ (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ; +#line 892 "llgrammar.y" +{ yyval.count = yyvsp[-1].count + 1; ; break;} case 241: #line 896 "llgrammar.y" -{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; +{ (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ; break;} case 242: #line 898 "llgrammar.y" -{ (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ; +{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; break;} case 243: #line 900 "llgrammar.y" -{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; +{ (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ; break;} case 244: #line 902 "llgrammar.y" -{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ; +{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; break;} case 245: #line 904 "llgrammar.y" -{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ; +{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ; break;} case 246: -#line 907 "llgrammar.y" -{ yyval.ltok = ltoken_undefined; ; +#line 906 "llgrammar.y" +{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ; break;} -case 248: -#line 911 "llgrammar.y" -{ yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ; +case 247: +#line 909 "llgrammar.y" +{ yyval.ltok = ltoken_undefined; ; break;} case 249: -#line 912 "llgrammar.y" -{ yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ; +#line 913 "llgrammar.y" +{ yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ; break;} case 250: -#line 917 "llgrammar.y" -{ yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ; +#line 914 "llgrammar.y" +{ yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ; break;} case 251: -#line 921 "llgrammar.y" -{ yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ; +#line 919 "llgrammar.y" +{ yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ; break;} case 252: #line 923 "llgrammar.y" -{ yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ; +{ yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ; break;} case 253: -#line 926 "llgrammar.y" -{ ; ; +#line 925 "llgrammar.y" +{ yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ; break;} case 254: -#line 927 "llgrammar.y" +#line 928 "llgrammar.y" { ; ; break;} case 255: -#line 931 "llgrammar.y" -{ yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ; +#line 929 "llgrammar.y" +{ ; ; break;} case 256: #line 933 "llgrammar.y" -{ yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ; +{ yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ; break;} case 257: -#line 936 "llgrammar.y" -{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; +#line 935 "llgrammar.y" +{ yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 258: -#line 937 "llgrammar.y" -{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; +#line 938 "llgrammar.y" +{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 259: -#line 947 "llgrammar.y" -{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; +#line 939 "llgrammar.y" +{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 260: -#line 948 "llgrammar.y" +#line 949 "llgrammar.y" { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; break;} case 261: -#line 951 "llgrammar.y" -{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; +#line 950 "llgrammar.y" +{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; break;} case 262: -#line 952 "llgrammar.y" -{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; +#line 953 "llgrammar.y" +{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 263: -#line 953 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; +#line 954 "llgrammar.y" +{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 264: -#line 954 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; +#line 955 "llgrammar.y" +{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 265: -#line 955 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; +#line 956 "llgrammar.y" +{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 266: -#line 956 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; +#line 957 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 267: -#line 959 "llgrammar.y" -{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; +#line 958 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 268: -#line 960 "llgrammar.y" -{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; - break;} -case 269: #line 961 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; +{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} -case 270: +case 269: #line 962 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; +{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} -case 271: +case 270: #line 963 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; +{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} -case 272: +case 271: #line 964 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; +{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; + break;} +case 272: +#line 965 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 273: -#line 973 "llgrammar.y" -{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; +#line 966 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 274: -#line 974 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; +#line 975 "llgrammar.y" +{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 275: -#line 975 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; +#line 976 "llgrammar.y" +{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 276: -#line 976 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; +#line 977 "llgrammar.y" +{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 277: -#line 977 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; +#line 978 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 278: -#line 983 "llgrammar.y" -{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; +#line 979 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 279: -#line 984 "llgrammar.y" +#line 985 "llgrammar.y" { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; break;} case 280: -#line 985 "llgrammar.y" -{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; +#line 986 "llgrammar.y" +{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; break;} case 281: -#line 995 "llgrammar.y" -{ yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; +#line 987 "llgrammar.y" +{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 282: -#line 996 "llgrammar.y" -{ yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; +#line 997 "llgrammar.y" +{ yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 283: -#line 997 "llgrammar.y" -{ yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ; +#line 998 "llgrammar.y" +{ yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 284: -#line 1002 "llgrammar.y" -{ yyval.abstDecl = (abstDeclaratorNode)0; ; +#line 999 "llgrammar.y" +{ yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ; break;} case 285: -#line 1003 "llgrammar.y" -{ yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ; +#line 1004 "llgrammar.y" +{ yyval.abstDecl = (abstDeclaratorNode)0; ; break;} case 286: -#line 1006 "llgrammar.y" -{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; +#line 1005 "llgrammar.y" +{ yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ; break;} case 287: -#line 1007 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; +#line 1008 "llgrammar.y" +{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 288: -#line 1008 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ; +#line 1009 "llgrammar.y" +{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 289: -#line 1009 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ; +#line 1010 "llgrammar.y" +{ yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ; break;} case 290: -#line 1010 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; +#line 1011 "llgrammar.y" +{ yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ; break;} case 291: -#line 1011 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; +#line 1012 "llgrammar.y" +{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 292: -#line 1012 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ; +#line 1013 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 293: -#line 1013 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; +#line 1014 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ; break;} case 294: -#line 1016 "llgrammar.y" -{ yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ; +#line 1015 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 295: -#line 1017 "llgrammar.y" -{ yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ; +#line 1018 "llgrammar.y" +{ yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ; break;} case 296: -#line 1021 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ; +#line 1019 "llgrammar.y" +{ yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ; break;} case 297: #line 1023 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; +{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ; break;} case 298: #line 1025 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; +{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 299: #line 1027 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; +{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 300: #line 1029 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, - opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; +{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; break;} case 301: -#line 1032 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; +#line 1031 "llgrammar.y" +{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, + opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; break;} case 302: #line 1034 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; +{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 303: #line 1036 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; +{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 304: #line 1038 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; +{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 305: #line 1040 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; +{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 306: #line 1042 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; +{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 307: -#line 1050 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; +#line 1044 "llgrammar.y" +{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 308: #line 1052 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; +{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 309: #line 1054 "llgrammar.y" +{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; + break;} +case 310: +#line 1056 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} -case 310: -#line 1057 "llgrammar.y" +case 311: +#line 1059 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} -case 311: -#line 1060 "llgrammar.y" +case 312: +#line 1062 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} -case 312: -#line 1063 "llgrammar.y" +case 313: +#line 1065 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} -case 320: -#line 1080 "llgrammar.y" +case 321: +#line 1082 "llgrammar.y" { yyval.count = 0; ; break;} -case 322: -#line 1084 "llgrammar.y" +case 323: +#line 1086 "llgrammar.y" { yyval.count = 1; ; break;} -case 323: -#line 1085 "llgrammar.y" +case 324: +#line 1087 "llgrammar.y" { yyval.count = yyvsp[-2].count + 1; ; break;} -case 326: -#line 1092 "llgrammar.y" +case 327: +#line 1094 "llgrammar.y" { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} -case 327: -#line 1095 "llgrammar.y" +case 328: +#line 1097 "llgrammar.y" { yyval.ltokenList = ltokenList_new (); ; break;} -case 329: -#line 1099 "llgrammar.y" +case 330: +#line 1101 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} -case 330: -#line 1100 "llgrammar.y" +case 331: +#line 1102 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} -case 331: -#line 1103 "llgrammar.y" +case 332: +#line 1105 "llgrammar.y" { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);; break;} -case 332: -#line 1106 "llgrammar.y" +case 333: +#line 1108 "llgrammar.y" { yyval.term = checkSort (yyvsp[0].term); ; break;} -case 333: -#line 1113 "llgrammar.y" +case 334: +#line 1115 "llgrammar.y" { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ; break;} -case 335: -#line 1115 "llgrammar.y" +case 336: +#line 1117 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ; break;} -case 337: -#line 1121 "llgrammar.y" +case 338: +#line 1123 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok); symtable_exitScope (g_symtab); ; break;} -case 338: -#line 1125 "llgrammar.y" -{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);; - break;} case 339: #line 1127 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);; break;} -case 341: -#line 1131 "llgrammar.y" -{ yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ; +case 340: +#line 1129 "llgrammar.y" +{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);; break;} case 342: -#line 1132 "llgrammar.y" +#line 1133 "llgrammar.y" +{ yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ; + break;} +case 343: +#line 1134 "llgrammar.y" { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ; break;} -case 346: -#line 1140 "llgrammar.y" +case 347: +#line 1142 "llgrammar.y" { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ; break;} -case 347: -#line 1143 "llgrammar.y" +case 348: +#line 1145 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} -case 348: -#line 1144 "llgrammar.y" +case 349: +#line 1146 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ; break;} -case 349: -#line 1147 "llgrammar.y" +case 350: +#line 1149 "llgrammar.y" { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ; break;} -case 350: -#line 1148 "llgrammar.y" +case 351: +#line 1150 "llgrammar.y" { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ; break;} -case 352: -#line 1152 "llgrammar.y" +case 353: +#line 1154 "llgrammar.y" { yyval.term = computePossibleSorts (yyvsp[0].term); ; break;} -case 353: -#line 1153 "llgrammar.y" +case 354: +#line 1155 "llgrammar.y" { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ; break;} -case 354: -#line 1154 "llgrammar.y" +case 355: +#line 1156 "llgrammar.y" { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ; break;} -case 355: -#line 1155 "llgrammar.y" +case 356: +#line 1157 "llgrammar.y" { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ; break;} -case 356: -#line 1156 "llgrammar.y" +case 357: +#line 1158 "llgrammar.y" { yyval.term = computePossibleSorts (yyvsp[0].term); ; break;} -case 357: -#line 1157 "llgrammar.y" +case 358: +#line 1159 "llgrammar.y" { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ; break;} -case 358: -#line 1160 "llgrammar.y" +case 359: +#line 1162 "llgrammar.y" { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} -case 360: -#line 1165 "llgrammar.y" +case 361: +#line 1167 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok); yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} -case 361: -#line 1168 "llgrammar.y" -{ yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; - break;} case 362: #line 1170 "llgrammar.y" +{ yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; + break;} +case 363: +#line 1172 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok); yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} -case 363: -#line 1174 "llgrammar.y" -{ yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; - break;} case 364: -#line 1177 "llgrammar.y" -{ yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; +#line 1176 "llgrammar.y" +{ yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 365: -#line 1178 "llgrammar.y" -{ yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; +#line 1179 "llgrammar.y" +{ yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 366: -#line 1181 "llgrammar.y" -{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; +#line 1180 "llgrammar.y" +{ yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 367: -#line 1182 "llgrammar.y" -{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; +#line 1183 "llgrammar.y" +{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} case 368: -#line 1186 "llgrammar.y" -{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ; +#line 1184 "llgrammar.y" +{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 369: #line 1188 "llgrammar.y" -{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; +{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ; break;} case 370: #line 1190 "llgrammar.y" -{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; +{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} -case 372: -#line 1193 "llgrammar.y" -{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ; +case 371: +#line 1192 "llgrammar.y" +{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 373: #line 1195 "llgrammar.y" -{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; +{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ; break;} case 374: #line 1197 "llgrammar.y" -{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; +{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 375: #line 1199 "llgrammar.y" -{ yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok), - (termNode)0); ; +{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 376: -#line 1202 "llgrammar.y" -{ yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ; +#line 1201 "llgrammar.y" +{ yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok), + (termNode)0); ; break;} case 377: #line 1204 "llgrammar.y" -{ yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; +{ yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ; break;} case 378: -#line 1207 "llgrammar.y" -{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; +#line 1206 "llgrammar.y" +{ yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} case 379: -#line 1208 "llgrammar.y" -{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; +#line 1209 "llgrammar.y" +{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} -case 385: -#line 1218 "llgrammar.y" -{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; +case 380: +#line 1210 "llgrammar.y" +{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 386: -#line 1219 "llgrammar.y" -{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; +#line 1220 "llgrammar.y" +{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} case 387: -#line 1220 "llgrammar.y" -{ yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ; +#line 1221 "llgrammar.y" +{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 388: -#line 1221 "llgrammar.y" -{ yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ; +#line 1222 "llgrammar.y" +{ yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ; break;} case 389: #line 1223 "llgrammar.y" +{ yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ; + break;} +case 390: +#line 1225 "llgrammar.y" { termNodeList x = termNodeList_new (); termNodeList_addh (x, yyvsp[-1].term); yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok); ; break;} -case 390: -#line 1228 "llgrammar.y" +case 391: +#line 1230 "llgrammar.y" { termNodeList x = termNodeList_new (); termNodeList_addh (x, yyvsp[-3].term); termNodeList_addh (x, yyvsp[-1].term); yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok); ; break;} -case 391: -#line 1233 "llgrammar.y" -{ yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ; - break;} case 392: -#line 1243 "llgrammar.y" -{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ; +#line 1235 "llgrammar.y" +{ yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ; break;} case 393: -#line 1244 "llgrammar.y" -{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ; +#line 1245 "llgrammar.y" +{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ; break;} case 394: -#line 1245 "llgrammar.y" -{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ; +#line 1246 "llgrammar.y" +{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ; break;} case 395: -#line 1246 "llgrammar.y" -{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ; +#line 1247 "llgrammar.y" +{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ; break;} case 396: -#line 1250 "llgrammar.y" -{ yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ; +#line 1248 "llgrammar.y" +{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ; break;} case 397: #line 1252 "llgrammar.y" -{ yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ; +{ yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ; break;} case 398: -#line 1255 "llgrammar.y" +#line 1254 "llgrammar.y" +{ yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ; + break;} +case 399: +#line 1257 "llgrammar.y" { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si)); si->kind = SPE_QUANT; symtable_enterScope (g_symtab, si); ; break;} -case 399: -#line 1259 "llgrammar.y" +case 400: +#line 1261 "llgrammar.y" { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ; break;} -case 400: -#line 1262 "llgrammar.y" +case 401: +#line 1264 "llgrammar.y" { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ; break;} -case 401: -#line 1263 "llgrammar.y" +case 402: +#line 1265 "llgrammar.y" { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ; break;} -case 402: -#line 1266 "llgrammar.y" +case 403: +#line 1268 "llgrammar.y" { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ; break;} -case 403: -#line 1267 "llgrammar.y" +case 404: +#line 1269 "llgrammar.y" { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ; break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/usr/share/misc/bison.simple" +#line 498 "/gnu/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -3767,7 +3792,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 1282 "llgrammar.y" +#line 1284 "llgrammar.y" # include "bison.reset" @@ -3808,45 +3833,3 @@ static void yyprint (FILE *f, int t, YYSTYPE value) -/* -** Resets all flags in bison.head -*/ - - -/*@=allmacros@*/ -/*@=boolint@*/ -/*@=charint@*/ -/*@=macroparams@*/ -/*@=macroundef@*/ -/*@=unreachable@*/ -/*@=macrospec@*/ -/*@=varuse@*/ -/*@=ignorequals@*/ -/*@=macrostmt@*/ -/*@=noeffect@*/ -/*@=shadow@*/ -/*@=exitarg@*/ -/*@=macroredef@*/ -/*@=uniondef@*/ -/*@=compdef@*/ -/*@=matchfields@*/ -/*@=exportlocal@*/ -/*@=evalorderuncon@*/ -/*@=exportheader@*/ -/*@=typeuse@*/ -/*@=redecl@*/ -/*@=redef@*/ -/*@=noparams@*/ -/*@=ansireserved@*/ -/*@=fielduse@*/ -/*@=ifblock@*/ -/*@=elseifcomplete@*/ -/*@=whileblock@*/ -/*@=forblock@*/ -/*@=branchstate@*/ -/*@=readonlytrans@*/ -/*@=namechecks@*/ -/*@=usedef@*/ -/*@=systemunrecog@*/ -/*@=dependenttrans@*/ -/*@=unqualifiedtrans@*/ diff --git a/src/llgrammar.c.der b/src/llgrammar.c.der index d7b1154..b19c16d 100644 --- a/src/llgrammar.c.der +++ b/src/llgrammar.c.der @@ -195,6 +195,8 @@ #line 36 "llgrammar.y" +# include "bison.reset" + # include "lclintMacros.nf" # include "llbasic.h" # include "lclscan.h" @@ -219,22 +221,10 @@ bool g_inTypeDef = FALSE; /*@notfunction@*/ # define YYPRINT(file, type, value) yyprint (file, type, value) -/* -** This is necessary, or else when the bison-generated code #include's malloc.h, -** there will be a parse error. -** -** Unfortunately, it means the error checking on malloc, etc. is lost for allocations -** in bison-generated files under Win32. -*/ - -# ifdef WIN32 -# undef malloc -# undef calloc -# undef realloc -# endif +# include "bison.head" -#line 78 "llgrammar.y" +#line 68 "llgrammar.y" typedef union { ltoken ltok; /* a leaf is also an ltoken */ @@ -539,48 +529,48 @@ static const short yyrhs[] = { -1, #if YYDEBUG != 0 static const short yyrline[] = { 0, - 382, 383, 386, 387, 390, 391, 394, 395, 396, 399, - 400, 403, 404, 405, 408, 414, 418, 420, 422, 424, - 426, 428, 432, 436, 437, 440, 442, 446, 447, 450, - 451, 454, 456, 458, 460, 464, 468, 470, 472, 476, - 477, 480, 481, 482, 485, 486, 493, 495, 506, 508, - 511, 515, 515, 516, 517, 517, 519, 520, 521, 522, - 523, 523, 524, 527, 528, 529, 530, 532, 548, 550, - 554, 555, 557, 560, 561, 564, 568, 570, 574, 576, - 578, 580, 584, 585, 588, 590, 592, 595, 597, 600, - 602, 605, 606, 607, 611, 612, 614, 616, 619, 621, - 625, 626, 629, 631, 635, 636, 637, 640, 641, 644, - 648, 649, 652, 653, 656, 657, 659, 662, 663, 666, - 667, 670, 671, 672, 673, 676, 677, 680, 681, 682, - 683, 684, 687, 688, 691, 692, 695, 696, 699, 700, - 701, 704, 705, 708, 709, 710, 713, 714, 717, 722, - 728, 736, 738, 740, 742, 746, 747, 750, 751, 752, - 753, 754, 755, 756, 758, 762, 763, 764, 765, 768, - 769, 772, 773, 776, 776, 785, 786, 790, 791, 794, - 795, 798, 799, 800, 801, 802, 803, 804, 805, 806, - 807, 815, 816, 821, 823, 829, 830, 831, 832, 833, + 372, 373, 376, 377, 380, 381, 384, 385, 386, 389, + 390, 393, 394, 395, 398, 404, 408, 410, 412, 414, + 416, 418, 422, 426, 427, 430, 432, 436, 437, 440, + 441, 444, 446, 448, 450, 454, 458, 460, 462, 466, + 467, 470, 471, 472, 475, 476, 483, 485, 496, 498, + 501, 505, 505, 506, 507, 507, 509, 510, 511, 512, + 513, 513, 514, 517, 518, 519, 520, 522, 538, 540, + 544, 545, 547, 550, 551, 554, 558, 560, 564, 566, + 568, 570, 574, 575, 578, 580, 582, 585, 587, 590, + 592, 595, 596, 597, 601, 602, 604, 606, 609, 611, + 615, 616, 619, 621, 625, 626, 627, 630, 631, 634, + 638, 639, 642, 643, 646, 647, 649, 652, 653, 656, + 657, 660, 661, 662, 663, 666, 667, 670, 671, 672, + 673, 674, 677, 678, 681, 682, 685, 686, 689, 690, + 691, 694, 695, 698, 699, 700, 703, 704, 707, 712, + 718, 726, 728, 730, 732, 736, 737, 740, 741, 742, + 743, 744, 745, 746, 748, 752, 753, 754, 755, 758, + 759, 762, 763, 766, 766, 775, 776, 780, 781, 784, + 785, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 797, 805, 806, 811, 813, 819, 820, 821, 822, 823, + 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, - 866, 868, 870, 872, 874, 883, 884, 889, 890, 893, - 895, 897, 899, 901, 903, 907, 908, 911, 912, 917, - 920, 922, 926, 927, 930, 932, 936, 937, 947, 948, - 951, 952, 953, 954, 955, 956, 959, 960, 961, 962, - 963, 964, 973, 974, 975, 976, 977, 983, 984, 985, - 995, 996, 997, 1002, 1003, 1006, 1007, 1008, 1009, 1010, - 1011, 1012, 1013, 1016, 1017, 1020, 1022, 1024, 1026, 1028, - 1031, 1033, 1035, 1037, 1039, 1041, 1049, 1051, 1053, 1056, - 1059, 1062, 1067, 1068, 1071, 1072, 1075, 1076, 1077, 1080, - 1081, 1084, 1085, 1088, 1089, 1092, 1095, 1096, 1099, 1100, - 1103, 1106, 1112, 1114, 1115, 1118, 1119, 1124, 1126, 1130, - 1131, 1132, 1135, 1136, 1139, 1140, 1143, 1144, 1147, 1148, - 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1160, 1161, 1164, - 1167, 1169, 1173, 1177, 1178, 1181, 1182, 1185, 1187, 1189, - 1191, 1192, 1194, 1196, 1198, 1201, 1203, 1207, 1208, 1211, - 1212, 1213, 1214, 1217, 1218, 1219, 1220, 1221, 1222, 1227, - 1233, 1243, 1244, 1245, 1246, 1249, 1251, 1255, 1259, 1262, - 1263, 1266, 1267, 1270, 1271, 1274, 1275, 1276, 1277, 1278, - 1279, 1280 + 856, 858, 860, 862, 864, 873, 874, 879, 880, 883, + 885, 887, 889, 891, 893, 897, 898, 901, 902, 907, + 910, 912, 916, 917, 920, 922, 926, 927, 937, 938, + 941, 942, 943, 944, 945, 946, 949, 950, 951, 952, + 953, 954, 963, 964, 965, 966, 967, 973, 974, 975, + 985, 986, 987, 992, 993, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1006, 1007, 1010, 1012, 1014, 1016, 1018, + 1021, 1023, 1025, 1027, 1029, 1031, 1039, 1041, 1043, 1046, + 1049, 1052, 1057, 1058, 1061, 1062, 1065, 1066, 1067, 1070, + 1071, 1074, 1075, 1078, 1079, 1082, 1085, 1086, 1089, 1090, + 1093, 1096, 1102, 1104, 1105, 1108, 1109, 1114, 1116, 1120, + 1121, 1122, 1125, 1126, 1129, 1130, 1133, 1134, 1137, 1138, + 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1150, 1151, 1154, + 1157, 1159, 1163, 1167, 1168, 1171, 1172, 1175, 1177, 1179, + 1181, 1182, 1184, 1186, 1188, 1191, 1193, 1197, 1198, 1201, + 1202, 1203, 1204, 1207, 1208, 1209, 1210, 1211, 1212, 1217, + 1223, 1233, 1234, 1235, 1236, 1239, 1241, 1245, 1249, 1252, + 1253, 1256, 1257, 1260, 1261, 1264, 1265, 1266, 1267, 1268, + 1269, 1270 }; #endif @@ -1565,7 +1555,7 @@ static const short yycheck[] = { 23, 107, -1, -1, -1, -1, -1, 113 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/misc/bison.simple" +#line 3 "/usr/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -1758,7 +1748,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/usr/share/misc/bison.simple" +#line 196 "/usr/share/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 *. @@ -2063,169 +2053,169 @@ yyreduce: switch (yyn) { case 1: -#line 382 "llgrammar.y" +#line 372 "llgrammar.y" { lhExternals (yyvsp[0].interfacelist); ; break;} case 2: -#line 383 "llgrammar.y" +#line 373 "llgrammar.y" { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ; break;} case 3: -#line 386 "llgrammar.y" +#line 376 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 4: -#line 387 "llgrammar.y" +#line 377 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);; break;} case 7: -#line 394 "llgrammar.y" +#line 384 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 8: -#line 395 "llgrammar.y" +#line 385 "llgrammar.y" { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);; break;} case 9: -#line 396 "llgrammar.y" +#line 386 "llgrammar.y" { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);; break;} case 10: -#line 399 "llgrammar.y" +#line 389 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 11: -#line 400 "llgrammar.y" +#line 390 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);; break;} case 15: -#line 409 "llgrammar.y" +#line 399 "llgrammar.y" { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist); /* assume subspecs are already processed, symbol table info in external file */ ; break;} case 16: -#line 415 "llgrammar.y" +#line 405 "llgrammar.y" { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);; break;} case 17: -#line 419 "llgrammar.y" +#line 409 "llgrammar.y" { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ; break;} case 18: -#line 421 "llgrammar.y" +#line 411 "llgrammar.y" { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ; break;} case 19: -#line 423 "llgrammar.y" +#line 413 "llgrammar.y" { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ; break;} case 20: -#line 425 "llgrammar.y" +#line 415 "llgrammar.y" { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ; break;} case 21: -#line 427 "llgrammar.y" +#line 417 "llgrammar.y" { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ; break;} case 22: -#line 429 "llgrammar.y" +#line 419 "llgrammar.y" { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ; break;} case 23: -#line 433 "llgrammar.y" +#line 423 "llgrammar.y" { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ; break;} case 24: -#line 436 "llgrammar.y" +#line 426 "llgrammar.y" { yyval.paramlist = paramNodeList_new (); ; break;} case 25: -#line 437 "llgrammar.y" +#line 427 "llgrammar.y" { yyval.paramlist = yyvsp[0].paramlist; ; break;} case 26: -#line 441 "llgrammar.y" +#line 431 "llgrammar.y" { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ; break;} case 27: -#line 443 "llgrammar.y" +#line 433 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ; break;} case 28: -#line 446 "llgrammar.y" +#line 436 "llgrammar.y" { yyval.param = markYieldParamNode (yyvsp[0].param); ; break;} case 29: -#line 447 "llgrammar.y" +#line 437 "llgrammar.y" { yyval.param = yyvsp[0].param; ; break;} case 30: -#line 450 "llgrammar.y" +#line 440 "llgrammar.y" { symtable_export (g_symtab, FALSE); ; break;} case 31: -#line 451 "llgrammar.y" +#line 441 "llgrammar.y" { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ; break;} case 32: -#line 455 "llgrammar.y" +#line 445 "llgrammar.y" { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ; break;} case 33: -#line 457 "llgrammar.y" +#line 447 "llgrammar.y" { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ; break;} case 34: -#line 459 "llgrammar.y" +#line 449 "llgrammar.y" { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ; break;} case 35: -#line 461 "llgrammar.y" +#line 451 "llgrammar.y" { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ; break;} case 36: -#line 465 "llgrammar.y" +#line 455 "llgrammar.y" { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ; break;} case 37: -#line 469 "llgrammar.y" +#line 459 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ; break;} case 38: -#line 471 "llgrammar.y" +#line 461 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ; break;} case 39: -#line 473 "llgrammar.y" +#line 463 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ; break;} case 40: -#line 476 "llgrammar.y" +#line 466 "llgrammar.y" { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ; break;} case 41: -#line 477 "llgrammar.y" +#line 467 "llgrammar.y" { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ; break;} case 42: -#line 480 "llgrammar.y" +#line 470 "llgrammar.y" { yyval.typequal = qual_createPrintfLike (); ; break;} case 43: -#line 481 "llgrammar.y" +#line 471 "llgrammar.y" { yyval.typequal = qual_createScanfLike (); ; break;} case 44: -#line 482 "llgrammar.y" +#line 472 "llgrammar.y" { yyval.typequal = qual_createMessageLike (); ; break;} case 45: -#line 485 "llgrammar.y" +#line 475 "llgrammar.y" { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ; break;} case 46: -#line 487 "llgrammar.y" +#line 477 "llgrammar.y" { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); /* type, declarator, glovbls, privateinits, @@ -2234,11 +2224,11 @@ case 46: ; break;} case 47: -#line 493 "llgrammar.y" +#line 483 "llgrammar.y" { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ; break;} case 48: -#line 497 "llgrammar.y" +#line 487 "llgrammar.y" { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); /* type, declarator, glovbls, privateinits, @@ -2247,396 +2237,396 @@ case 48: ; break;} case 49: -#line 507 "llgrammar.y" +#line 497 "llgrammar.y" { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ; break;} case 50: -#line 509 "llgrammar.y" +#line 499 "llgrammar.y" { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate); symtable_exitScope (g_symtab); ; break;} case 51: -#line 512 "llgrammar.y" +#line 502 "llgrammar.y" { yyval.claim = (claimNode) 0; ; break;} case 52: -#line 515 "llgrammar.y" +#line 505 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 53: -#line 515 "llgrammar.y" +#line 505 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 54: -#line 516 "llgrammar.y" +#line 506 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ; break;} case 55: -#line 517 "llgrammar.y" +#line 507 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 56: -#line 518 "llgrammar.y" +#line 508 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 57: -#line 519 "llgrammar.y" +#line 509 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ; break;} case 58: -#line 520 "llgrammar.y" +#line 510 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 59: -#line 521 "llgrammar.y" +#line 511 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 60: -#line 522 "llgrammar.y" +#line 512 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ; break;} case 61: -#line 523 "llgrammar.y" +#line 513 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 62: -#line 523 "llgrammar.y" +#line 513 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 63: -#line 524 "llgrammar.y" +#line 514 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ; break;} case 64: -#line 527 "llgrammar.y" +#line 517 "llgrammar.y" { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ; break;} case 65: -#line 528 "llgrammar.y" +#line 518 "llgrammar.y" { g_inTypeDef = FALSE; ; break;} case 66: -#line 529 "llgrammar.y" +#line 519 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ; break;} case 67: -#line 531 "llgrammar.y" +#line 521 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ; break;} case 68: -#line 533 "llgrammar.y" +#line 523 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ; break;} case 69: -#line 549 "llgrammar.y" +#line 539 "llgrammar.y" { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ; break;} case 70: -#line 551 "llgrammar.y" +#line 541 "llgrammar.y" { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ; break;} case 71: -#line 554 "llgrammar.y" +#line 544 "llgrammar.y" { yyval.import = importNode_makePlain (yyvsp[0].ltok); ; break;} case 72: -#line 556 "llgrammar.y" +#line 546 "llgrammar.y" { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ; break;} case 73: -#line 557 "llgrammar.y" +#line 547 "llgrammar.y" { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ; break;} case 74: -#line 560 "llgrammar.y" +#line 550 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 75: -#line 561 "llgrammar.y" +#line 551 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 77: -#line 569 "llgrammar.y" +#line 559 "llgrammar.y" { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ; break;} case 78: -#line 571 "llgrammar.y" +#line 561 "llgrammar.y" { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ; break;} case 79: -#line 575 "llgrammar.y" +#line 565 "llgrammar.y" { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ; break;} case 80: -#line 577 "llgrammar.y" +#line 567 "llgrammar.y" { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ; break;} case 81: -#line 579 "llgrammar.y" +#line 569 "llgrammar.y" { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ; break;} case 82: -#line 581 "llgrammar.y" +#line 571 "llgrammar.y" { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ; break;} case 83: -#line 584 "llgrammar.y" +#line 574 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 84: -#line 585 "llgrammar.y" +#line 575 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 85: -#line 589 "llgrammar.y" +#line 579 "llgrammar.y" { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ; break;} case 86: -#line 591 "llgrammar.y" +#line 581 "llgrammar.y" { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ; break;} case 87: -#line 592 "llgrammar.y" +#line 582 "llgrammar.y" { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ; break;} case 88: -#line 596 "llgrammar.y" +#line 586 "llgrammar.y" { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ; break;} case 89: -#line 597 "llgrammar.y" +#line 587 "llgrammar.y" { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ; break;} case 90: -#line 601 "llgrammar.y" +#line 591 "llgrammar.y" { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ; break;} case 91: -#line 602 "llgrammar.y" +#line 592 "llgrammar.y" { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ; break;} case 92: -#line 605 "llgrammar.y" +#line 595 "llgrammar.y" { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ; break;} case 93: -#line 606 "llgrammar.y" +#line 596 "llgrammar.y" { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ; break;} case 94: -#line 607 "llgrammar.y" +#line 597 "llgrammar.y" { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined, yyvsp[-1].name, yyvsp[0].signature); ; break;} case 95: -#line 611 "llgrammar.y" +#line 601 "llgrammar.y" { yyval.name = makeNameNodeId (yyvsp[0].ltok); ; break;} case 96: -#line 612 "llgrammar.y" +#line 602 "llgrammar.y" { yyval.name = makeNameNodeForm (yyvsp[0].opform); ; break;} case 99: -#line 620 "llgrammar.y" +#line 610 "llgrammar.y" { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ; break;} case 100: -#line 622 "llgrammar.y" +#line 612 "llgrammar.y" { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ; break;} case 101: -#line 625 "llgrammar.y" +#line 615 "llgrammar.y" { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ; break;} case 102: -#line 626 "llgrammar.y" +#line 616 "llgrammar.y" { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ; break;} case 103: -#line 630 "llgrammar.y" +#line 620 "llgrammar.y" { yyval.globals = varDeclarationNodeList_new (); ; break;} case 104: -#line 632 "llgrammar.y" +#line 622 "llgrammar.y" { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ; break;} case 105: -#line 635 "llgrammar.y" +#line 625 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ; break;} case 106: -#line 636 "llgrammar.y" +#line 626 "llgrammar.y" { yyval.vardeclaration = makeInternalStateNode (); ; break;} case 107: -#line 637 "llgrammar.y" +#line 627 "llgrammar.y" { yyval.vardeclaration = makeFileSystemNode (); ; break;} case 108: -#line 640 "llgrammar.y" +#line 630 "llgrammar.y" { yyval.vardeclarationlist = varDeclarationNodeList_new (); ; break;} case 109: -#line 641 "llgrammar.y" +#line 631 "llgrammar.y" { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ; break;} case 110: -#line 645 "llgrammar.y" +#line 635 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ; break;} case 111: -#line 648 "llgrammar.y" +#line 638 "llgrammar.y" { yyval.letdecls = letDeclNodeList_new (); ; break;} case 112: -#line 649 "llgrammar.y" +#line 639 "llgrammar.y" { yyval.letdecls = yyvsp[-1].letdecls; ; break;} case 113: -#line 652 "llgrammar.y" +#line 642 "llgrammar.y" { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ; break;} case 114: -#line 653 "llgrammar.y" +#line 643 "llgrammar.y" { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ; break;} case 115: -#line 656 "llgrammar.y" +#line 646 "llgrammar.y" { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ; break;} case 116: -#line 657 "llgrammar.y" +#line 647 "llgrammar.y" { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ; break;} case 118: -#line 662 "llgrammar.y" +#line 652 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 119: -#line 663 "llgrammar.y" +#line 653 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ; break;} case 120: -#line 666 "llgrammar.y" +#line 656 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 121: -#line 667 "llgrammar.y" +#line 657 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 122: -#line 670 "llgrammar.y" +#line 660 "llgrammar.y" { yyval.modify = (modifyNode)0; ; break;} case 123: -#line 671 "llgrammar.y" +#line 661 "llgrammar.y" { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ; break;} case 124: -#line 672 "llgrammar.y" +#line 662 "llgrammar.y" { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ; break;} case 125: -#line 673 "llgrammar.y" +#line 663 "llgrammar.y" { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ; break;} case 126: -#line 676 "llgrammar.y" +#line 666 "llgrammar.y" { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ; break;} case 127: -#line 677 "llgrammar.y" +#line 667 "llgrammar.y" { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ; break;} case 128: -#line 680 "llgrammar.y" +#line 670 "llgrammar.y" { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ; break;} case 129: -#line 681 "llgrammar.y" +#line 671 "llgrammar.y" { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ; break;} case 130: -#line 682 "llgrammar.y" +#line 672 "llgrammar.y" { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ; break;} case 131: -#line 683 "llgrammar.y" +#line 673 "llgrammar.y" { yyval.storeref = makeStoreRefNodeInternal (); ; break;} case 132: -#line 684 "llgrammar.y" +#line 674 "llgrammar.y" { yyval.storeref = makeStoreRefNodeSystem (); ; break;} case 133: -#line 687 "llgrammar.y" +#line 677 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 134: -#line 688 "llgrammar.y" +#line 678 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 135: -#line 691 "llgrammar.y" +#line 681 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 136: -#line 692 "llgrammar.y" +#line 682 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 137: -#line 695 "llgrammar.y" +#line 685 "llgrammar.y" { yyval.paramlist = paramNodeList_new (); ; break;} case 138: -#line 696 "llgrammar.y" +#line 686 "llgrammar.y" { yyval.paramlist = yyvsp[0].paramlist; ; break;} case 140: -#line 700 "llgrammar.y" +#line 690 "llgrammar.y" { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ; break;} case 141: -#line 701 "llgrammar.y" +#line 691 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ; break;} case 142: -#line 704 "llgrammar.y" +#line 694 "llgrammar.y" { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ; break;} case 143: -#line 705 "llgrammar.y" +#line 695 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ; break;} case 144: -#line 708 "llgrammar.y" +#line 698 "llgrammar.y" { yyval.program = (programNode)0; ; break;} case 145: -#line 709 "llgrammar.y" +#line 699 "llgrammar.y" { yyval.program = yyvsp[-1].program; ; break;} case 146: -#line 710 "llgrammar.y" +#line 700 "llgrammar.y" { yyval.program = yyvsp[-2].program; ; break;} case 147: -#line 713 "llgrammar.y" +#line 703 "llgrammar.y" { yyval.program = makeProgramNode (yyvsp[0].stmt); ; break;} case 148: -#line 716 "llgrammar.y" +#line 706 "llgrammar.y" { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ; break;} case 149: -#line 718 "llgrammar.y" +#line 708 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-1].program); yyval.program = makeProgramNodeAction (x, ACT_ITER); ; break;} case 150: -#line 723 "llgrammar.y" +#line 713 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-2].program); programNodeList_addh (x, yyvsp[0].program); @@ -2644,7 +2634,7 @@ case 150: ; break;} case 151: -#line 729 "llgrammar.y" +#line 719 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-2].program); programNodeList_addh (x, yyvsp[0].program); @@ -2652,91 +2642,91 @@ case 151: ; break;} case 152: -#line 737 "llgrammar.y" +#line 727 "llgrammar.y" { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ; break;} case 153: -#line 739 "llgrammar.y" +#line 729 "llgrammar.y" { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ; break;} case 154: -#line 741 "llgrammar.y" +#line 731 "llgrammar.y" { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ; break;} case 155: -#line 743 "llgrammar.y" +#line 733 "llgrammar.y" { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ; break;} case 156: -#line 746 "llgrammar.y" +#line 736 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} case 157: -#line 747 "llgrammar.y" +#line 737 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 159: -#line 751 "llgrammar.y" +#line 741 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} case 160: -#line 752 "llgrammar.y" +#line 742 "llgrammar.y" { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 161: -#line 753 "llgrammar.y" +#line 743 "llgrammar.y" { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ; break;} case 162: -#line 754 "llgrammar.y" +#line 744 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 163: -#line 755 "llgrammar.y" +#line 745 "llgrammar.y" { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ; break;} case 164: -#line 757 "llgrammar.y" +#line 747 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 165: -#line 759 "llgrammar.y" +#line 749 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 166: -#line 762 "llgrammar.y" +#line 752 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 167: -#line 763 "llgrammar.y" +#line 753 "llgrammar.y" { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ; break;} case 168: -#line 764 "llgrammar.y" +#line 754 "llgrammar.y" { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ; break;} case 169: -#line 765 "llgrammar.y" +#line 755 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 170: -#line 768 "llgrammar.y" +#line 758 "llgrammar.y" { yyval.fcns = fcnNodeList_new (); ; break;} case 171: -#line 769 "llgrammar.y" +#line 759 "llgrammar.y" { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ; break;} case 172: -#line 772 "llgrammar.y" +#line 762 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 174: -#line 776 "llgrammar.y" +#line 766 "llgrammar.y" { g_inTypeDef = FALSE; ; break;} case 175: -#line 777 "llgrammar.y" +#line 767 "llgrammar.y" { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT; checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = yyvsp[-1].lclpredicate; @@ -2745,770 +2735,770 @@ case 175: ; break;} case 176: -#line 785 "llgrammar.y" +#line 775 "llgrammar.y" { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ; break;} case 177: -#line 787 "llgrammar.y" +#line 777 "llgrammar.y" { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ; break;} case 178: -#line 790 "llgrammar.y" +#line 780 "llgrammar.y" { declareForwardType (yyvsp[0].declare); ; break;} case 179: -#line 791 "llgrammar.y" +#line 781 "llgrammar.y" { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ; break;} case 180: -#line 794 "llgrammar.y" +#line 784 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 181: -#line 795 "llgrammar.y" +#line 785 "llgrammar.y" { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ; break;} case 182: -#line 798 "llgrammar.y" +#line 788 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ; break;} case 183: -#line 799 "llgrammar.y" +#line 789 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ; break;} case 184: -#line 800 "llgrammar.y" +#line 790 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ; break;} case 185: -#line 801 "llgrammar.y" +#line 791 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ; break;} case 186: -#line 802 "llgrammar.y" +#line 792 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ; break;} case 187: -#line 803 "llgrammar.y" +#line 793 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ; break;} case 188: -#line 804 "llgrammar.y" +#line 794 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ; break;} case 189: -#line 805 "llgrammar.y" +#line 795 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ; break;} case 190: -#line 806 "llgrammar.y" +#line 796 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ; break;} case 191: -#line 807 "llgrammar.y" +#line 797 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ; break;} case 192: -#line 815 "llgrammar.y" +#line 805 "llgrammar.y" { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ; break;} case 193: -#line 816 "llgrammar.y" +#line 806 "llgrammar.y" { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ; break;} case 194: -#line 822 "llgrammar.y" +#line 812 "llgrammar.y" { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ; break;} case 195: -#line 824 "llgrammar.y" +#line 814 "llgrammar.y" { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ; break;} case 196: -#line 829 "llgrammar.y" +#line 819 "llgrammar.y" { yyval.typequal = qual_createOut (); ; break;} case 197: -#line 830 "llgrammar.y" +#line 820 "llgrammar.y" { yyval.typequal = qual_createUnused (); ; break;} case 198: -#line 831 "llgrammar.y" +#line 821 "llgrammar.y" { yyval.typequal = qual_createSef (); ; break;} case 199: -#line 832 "llgrammar.y" +#line 822 "llgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 200: -#line 833 "llgrammar.y" +#line 823 "llgrammar.y" { yyval.typequal = qual_createOwned (); ; break;} case 201: -#line 834 "llgrammar.y" +#line 824 "llgrammar.y" { yyval.typequal = qual_createDependent (); ; break;} case 202: -#line 835 "llgrammar.y" +#line 825 "llgrammar.y" { yyval.typequal = qual_createKeep (); ; break;} case 203: -#line 836 "llgrammar.y" +#line 826 "llgrammar.y" { yyval.typequal = qual_createKept (); ; break;} case 204: -#line 837 "llgrammar.y" +#line 827 "llgrammar.y" { yyval.typequal = qual_createObserver (); ; break;} case 205: -#line 838 "llgrammar.y" +#line 828 "llgrammar.y" { yyval.typequal = qual_createExits (); ; break;} case 206: -#line 839 "llgrammar.y" +#line 829 "llgrammar.y" { yyval.typequal = qual_createMayExit (); ; break;} case 207: -#line 840 "llgrammar.y" +#line 830 "llgrammar.y" { yyval.typequal = qual_createTrueExit (); ; break;} case 208: -#line 841 "llgrammar.y" +#line 831 "llgrammar.y" { yyval.typequal = qual_createFalseExit (); ; break;} case 209: -#line 842 "llgrammar.y" +#line 832 "llgrammar.y" { yyval.typequal = qual_createNeverExit (); ; break;} case 210: -#line 843 "llgrammar.y" +#line 833 "llgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 211: -#line 844 "llgrammar.y" +#line 834 "llgrammar.y" { yyval.typequal = qual_createShared (); ; break;} case 212: -#line 845 "llgrammar.y" +#line 835 "llgrammar.y" { yyval.typequal = qual_createUnique (); ; break;} case 213: -#line 846 "llgrammar.y" +#line 836 "llgrammar.y" { yyval.typequal = qual_createChecked (); ; break;} case 214: -#line 847 "llgrammar.y" +#line 837 "llgrammar.y" { yyval.typequal = qual_createUnchecked (); ; break;} case 215: -#line 848 "llgrammar.y" +#line 838 "llgrammar.y" { yyval.typequal = qual_createCheckedStrict (); ; break;} case 216: -#line 849 "llgrammar.y" +#line 839 "llgrammar.y" { yyval.typequal = qual_createTrueNull (); ; break;} case 217: -#line 850 "llgrammar.y" +#line 840 "llgrammar.y" { yyval.typequal = qual_createFalseNull (); ; break;} case 218: -#line 851 "llgrammar.y" +#line 841 "llgrammar.y" { yyval.typequal = qual_createRelNull (); ; break;} case 219: -#line 852 "llgrammar.y" +#line 842 "llgrammar.y" { yyval.typequal = qual_createRelDef (); ; break;} case 220: -#line 853 "llgrammar.y" +#line 843 "llgrammar.y" { yyval.typequal = qual_createRefCounted (); ; break;} case 221: -#line 854 "llgrammar.y" +#line 844 "llgrammar.y" { yyval.typequal = qual_createRefs (); ; break;} case 222: -#line 855 "llgrammar.y" +#line 845 "llgrammar.y" { yyval.typequal = qual_createNewRef (); ; break;} case 223: -#line 856 "llgrammar.y" +#line 846 "llgrammar.y" { yyval.typequal = qual_createKillRef (); ; break;} case 224: -#line 857 "llgrammar.y" +#line 847 "llgrammar.y" { yyval.typequal = qual_createNull (); ; break;} case 225: -#line 858 "llgrammar.y" +#line 848 "llgrammar.y" { yyval.typequal = qual_createNotNull (); ; break;} case 226: -#line 859 "llgrammar.y" +#line 849 "llgrammar.y" { yyval.typequal = qual_createReturned (); ; break;} case 227: -#line 860 "llgrammar.y" +#line 850 "llgrammar.y" { yyval.typequal = qual_createExposed (); ; break;} case 228: -#line 861 "llgrammar.y" +#line 851 "llgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} case 229: -#line 862 "llgrammar.y" +#line 852 "llgrammar.y" { yyval.typequal = qual_createUndef (); ; break;} case 230: -#line 863 "llgrammar.y" +#line 853 "llgrammar.y" { yyval.typequal = qual_createKilled (); ; break;} case 231: -#line 867 "llgrammar.y" +#line 857 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ; break;} case 232: -#line 869 "llgrammar.y" +#line 859 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ; break;} case 233: -#line 871 "llgrammar.y" +#line 861 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ; break;} case 234: -#line 873 "llgrammar.y" +#line 863 "llgrammar.y" { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ; break;} case 235: -#line 875 "llgrammar.y" +#line 865 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ; break;} case 237: -#line 885 "llgrammar.y" +#line 875 "llgrammar.y" { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec)); yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ; break;} case 238: -#line 889 "llgrammar.y" +#line 879 "llgrammar.y" { yyval.count = 1; ; break;} case 239: -#line 890 "llgrammar.y" +#line 880 "llgrammar.y" { yyval.count = yyvsp[-1].count + 1; ; break;} case 240: -#line 894 "llgrammar.y" +#line 884 "llgrammar.y" { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ; break;} case 241: -#line 896 "llgrammar.y" +#line 886 "llgrammar.y" { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; break;} case 242: -#line 898 "llgrammar.y" +#line 888 "llgrammar.y" { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ; break;} case 243: -#line 900 "llgrammar.y" +#line 890 "llgrammar.y" { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; break;} case 244: -#line 902 "llgrammar.y" +#line 892 "llgrammar.y" { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ; break;} case 245: -#line 904 "llgrammar.y" +#line 894 "llgrammar.y" { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ; break;} case 246: -#line 907 "llgrammar.y" +#line 897 "llgrammar.y" { yyval.ltok = ltoken_undefined; ; break;} case 248: -#line 911 "llgrammar.y" +#line 901 "llgrammar.y" { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ; break;} case 249: -#line 912 "llgrammar.y" +#line 902 "llgrammar.y" { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ; break;} case 250: -#line 917 "llgrammar.y" +#line 907 "llgrammar.y" { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ; break;} case 251: -#line 921 "llgrammar.y" +#line 911 "llgrammar.y" { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ; break;} case 252: -#line 923 "llgrammar.y" +#line 913 "llgrammar.y" { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ; break;} case 253: -#line 926 "llgrammar.y" +#line 916 "llgrammar.y" { ; ; break;} case 254: -#line 927 "llgrammar.y" +#line 917 "llgrammar.y" { ; ; break;} case 255: -#line 931 "llgrammar.y" +#line 921 "llgrammar.y" { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ; break;} case 256: -#line 933 "llgrammar.y" +#line 923 "llgrammar.y" { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 257: -#line 936 "llgrammar.y" +#line 926 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 258: -#line 937 "llgrammar.y" +#line 927 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 259: -#line 947 "llgrammar.y" +#line 937 "llgrammar.y" { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; break;} case 260: -#line 948 "llgrammar.y" +#line 938 "llgrammar.y" { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; break;} case 261: -#line 951 "llgrammar.y" +#line 941 "llgrammar.y" { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 262: -#line 952 "llgrammar.y" +#line 942 "llgrammar.y" { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 263: -#line 953 "llgrammar.y" +#line 943 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 264: -#line 954 "llgrammar.y" +#line 944 "llgrammar.y" { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 265: -#line 955 "llgrammar.y" +#line 945 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 266: -#line 956 "llgrammar.y" +#line 946 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 267: -#line 959 "llgrammar.y" +#line 949 "llgrammar.y" { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 268: -#line 960 "llgrammar.y" +#line 950 "llgrammar.y" { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 269: -#line 961 "llgrammar.y" +#line 951 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 270: -#line 962 "llgrammar.y" +#line 952 "llgrammar.y" { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 271: -#line 963 "llgrammar.y" +#line 953 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 272: -#line 964 "llgrammar.y" +#line 954 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 273: -#line 973 "llgrammar.y" +#line 963 "llgrammar.y" { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 274: -#line 974 "llgrammar.y" +#line 964 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 275: -#line 975 "llgrammar.y" +#line 965 "llgrammar.y" { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 276: -#line 976 "llgrammar.y" +#line 966 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 277: -#line 977 "llgrammar.y" +#line 967 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 278: -#line 983 "llgrammar.y" +#line 973 "llgrammar.y" { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; break;} case 279: -#line 984 "llgrammar.y" +#line 974 "llgrammar.y" { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; break;} case 280: -#line 985 "llgrammar.y" +#line 975 "llgrammar.y" { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 281: -#line 995 "llgrammar.y" +#line 985 "llgrammar.y" { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 282: -#line 996 "llgrammar.y" +#line 986 "llgrammar.y" { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 283: -#line 997 "llgrammar.y" +#line 987 "llgrammar.y" { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ; break;} case 284: -#line 1002 "llgrammar.y" +#line 992 "llgrammar.y" { yyval.abstDecl = (abstDeclaratorNode)0; ; break;} case 285: -#line 1003 "llgrammar.y" +#line 993 "llgrammar.y" { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ; break;} case 286: -#line 1006 "llgrammar.y" +#line 996 "llgrammar.y" { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 287: -#line 1007 "llgrammar.y" +#line 997 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 288: -#line 1008 "llgrammar.y" +#line 998 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ; break;} case 289: -#line 1009 "llgrammar.y" +#line 999 "llgrammar.y" { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ; break;} case 290: -#line 1010 "llgrammar.y" +#line 1000 "llgrammar.y" { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 291: -#line 1011 "llgrammar.y" +#line 1001 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 292: -#line 1012 "llgrammar.y" +#line 1002 "llgrammar.y" { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ; break;} case 293: -#line 1013 "llgrammar.y" +#line 1003 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 294: -#line 1016 "llgrammar.y" +#line 1006 "llgrammar.y" { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ; break;} case 295: -#line 1017 "llgrammar.y" +#line 1007 "llgrammar.y" { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ; break;} case 296: -#line 1021 "llgrammar.y" +#line 1011 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ; break;} case 297: -#line 1023 "llgrammar.y" +#line 1013 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 298: -#line 1025 "llgrammar.y" +#line 1015 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 299: -#line 1027 "llgrammar.y" +#line 1017 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; break;} case 300: -#line 1029 "llgrammar.y" +#line 1019 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; break;} case 301: -#line 1032 "llgrammar.y" +#line 1022 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 302: -#line 1034 "llgrammar.y" +#line 1024 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 303: -#line 1036 "llgrammar.y" +#line 1026 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 304: -#line 1038 "llgrammar.y" +#line 1028 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 305: -#line 1040 "llgrammar.y" +#line 1030 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 306: -#line 1042 "llgrammar.y" +#line 1032 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 307: -#line 1050 "llgrammar.y" +#line 1040 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 308: -#line 1052 "llgrammar.y" +#line 1042 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 309: -#line 1054 "llgrammar.y" +#line 1044 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 310: -#line 1057 "llgrammar.y" +#line 1047 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 311: -#line 1060 "llgrammar.y" +#line 1050 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 312: -#line 1063 "llgrammar.y" +#line 1053 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 320: -#line 1080 "llgrammar.y" +#line 1070 "llgrammar.y" { yyval.count = 0; ; break;} case 322: -#line 1084 "llgrammar.y" +#line 1074 "llgrammar.y" { yyval.count = 1; ; break;} case 323: -#line 1085 "llgrammar.y" +#line 1075 "llgrammar.y" { yyval.count = yyvsp[-2].count + 1; ; break;} case 326: -#line 1092 "llgrammar.y" +#line 1082 "llgrammar.y" { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 327: -#line 1095 "llgrammar.y" +#line 1085 "llgrammar.y" { yyval.ltokenList = ltokenList_new (); ; break;} case 329: -#line 1099 "llgrammar.y" +#line 1089 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 330: -#line 1100 "llgrammar.y" +#line 1090 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 331: -#line 1103 "llgrammar.y" +#line 1093 "llgrammar.y" { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);; break;} case 332: -#line 1106 "llgrammar.y" +#line 1096 "llgrammar.y" { yyval.term = checkSort (yyvsp[0].term); ; break;} case 333: -#line 1113 "llgrammar.y" +#line 1103 "llgrammar.y" { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ; break;} case 335: -#line 1115 "llgrammar.y" +#line 1105 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 337: -#line 1121 "llgrammar.y" +#line 1111 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok); symtable_exitScope (g_symtab); ; break;} case 338: -#line 1125 "llgrammar.y" +#line 1115 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);; break;} case 339: -#line 1127 "llgrammar.y" +#line 1117 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);; break;} case 341: -#line 1131 "llgrammar.y" +#line 1121 "llgrammar.y" { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ; break;} case 342: -#line 1132 "llgrammar.y" +#line 1122 "llgrammar.y" { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ; break;} case 346: -#line 1140 "llgrammar.y" +#line 1130 "llgrammar.y" { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 347: -#line 1143 "llgrammar.y" +#line 1133 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 348: -#line 1144 "llgrammar.y" +#line 1134 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ; break;} case 349: -#line 1147 "llgrammar.y" +#line 1137 "llgrammar.y" { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 350: -#line 1148 "llgrammar.y" +#line 1138 "llgrammar.y" { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 352: -#line 1152 "llgrammar.y" +#line 1142 "llgrammar.y" { yyval.term = computePossibleSorts (yyvsp[0].term); ; break;} case 353: -#line 1153 "llgrammar.y" +#line 1143 "llgrammar.y" { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ; break;} case 354: -#line 1154 "llgrammar.y" +#line 1144 "llgrammar.y" { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ; break;} case 355: -#line 1155 "llgrammar.y" +#line 1145 "llgrammar.y" { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ; break;} case 356: -#line 1156 "llgrammar.y" +#line 1146 "llgrammar.y" { yyval.term = computePossibleSorts (yyvsp[0].term); ; break;} case 357: -#line 1157 "llgrammar.y" +#line 1147 "llgrammar.y" { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ; break;} case 358: -#line 1160 "llgrammar.y" +#line 1150 "llgrammar.y" { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} case 360: -#line 1165 "llgrammar.y" +#line 1155 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok); yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} case 361: -#line 1168 "llgrammar.y" +#line 1158 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 362: -#line 1170 "llgrammar.y" +#line 1160 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok); yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} case 363: -#line 1174 "llgrammar.y" +#line 1164 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 364: -#line 1177 "llgrammar.y" +#line 1167 "llgrammar.y" { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 365: -#line 1178 "llgrammar.y" +#line 1168 "llgrammar.y" { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 366: -#line 1181 "llgrammar.y" +#line 1171 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} case 367: -#line 1182 "llgrammar.y" +#line 1172 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 368: -#line 1186 "llgrammar.y" +#line 1176 "llgrammar.y" { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ; break;} case 369: -#line 1188 "llgrammar.y" +#line 1178 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} case 370: -#line 1190 "llgrammar.y" +#line 1180 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 372: -#line 1193 "llgrammar.y" +#line 1183 "llgrammar.y" { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ; break;} case 373: -#line 1195 "llgrammar.y" +#line 1185 "llgrammar.y" { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 374: -#line 1197 "llgrammar.y" +#line 1187 "llgrammar.y" { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 375: -#line 1199 "llgrammar.y" +#line 1189 "llgrammar.y" { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok), (termNode)0); ; break;} case 376: -#line 1202 "llgrammar.y" +#line 1192 "llgrammar.y" { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ; break;} case 377: -#line 1204 "llgrammar.y" +#line 1194 "llgrammar.y" { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} case 378: -#line 1207 "llgrammar.y" +#line 1197 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} case 379: -#line 1208 "llgrammar.y" +#line 1198 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 385: -#line 1218 "llgrammar.y" +#line 1208 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} case 386: -#line 1219 "llgrammar.y" +#line 1209 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 387: -#line 1220 "llgrammar.y" +#line 1210 "llgrammar.y" { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ; break;} case 388: -#line 1221 "llgrammar.y" +#line 1211 "llgrammar.y" { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ; break;} case 389: -#line 1223 "llgrammar.y" +#line 1213 "llgrammar.y" { termNodeList x = termNodeList_new (); termNodeList_addh (x, yyvsp[-1].term); yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok); ; break;} case 390: -#line 1228 "llgrammar.y" +#line 1218 "llgrammar.y" { termNodeList x = termNodeList_new (); termNodeList_addh (x, yyvsp[-3].term); termNodeList_addh (x, yyvsp[-1].term); @@ -3516,62 +3506,62 @@ case 390: ; break;} case 391: -#line 1233 "llgrammar.y" +#line 1223 "llgrammar.y" { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ; break;} case 392: -#line 1243 "llgrammar.y" +#line 1233 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ; break;} case 393: -#line 1244 "llgrammar.y" +#line 1234 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ; break;} case 394: -#line 1245 "llgrammar.y" +#line 1235 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ; break;} case 395: -#line 1246 "llgrammar.y" +#line 1236 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ; break;} case 396: -#line 1250 "llgrammar.y" +#line 1240 "llgrammar.y" { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ; break;} case 397: -#line 1252 "llgrammar.y" +#line 1242 "llgrammar.y" { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ; break;} case 398: -#line 1255 "llgrammar.y" +#line 1245 "llgrammar.y" { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si)); si->kind = SPE_QUANT; symtable_enterScope (g_symtab, si); ; break;} case 399: -#line 1259 "llgrammar.y" +#line 1249 "llgrammar.y" { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ; break;} case 400: -#line 1262 "llgrammar.y" +#line 1252 "llgrammar.y" { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ; break;} case 401: -#line 1263 "llgrammar.y" +#line 1253 "llgrammar.y" { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ; break;} case 402: -#line 1266 "llgrammar.y" +#line 1256 "llgrammar.y" { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ; break;} case 403: -#line 1267 "llgrammar.y" +#line 1257 "llgrammar.y" { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ; break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/usr/share/misc/bison.simple" +#line 498 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -3767,7 +3757,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 1282 "llgrammar.y" +#line 1272 "llgrammar.y" # include "bison.reset" diff --git a/src/llgrammar.tab.c b/src/llgrammar.tab.c index 4683db6..8af171b 100644 --- a/src/llgrammar.tab.c +++ b/src/llgrammar.tab.c @@ -111,46 +111,45 @@ #define LLT_RELNULL 354 #define LLT_RELDEF 355 #define LLT_KILLREF 356 -#define LLT_TEMPREF 357 -#define LLT_NEWREF 358 -#define LLT_PRIVATE 359 -#define LLT_REQUIRES 360 -#define LLT_RESULT 361 -#define LLT_SIZEOF 362 -#define LLT_SPEC 363 -#define LLT_TAGGEDUNION 364 -#define LLT_THEN 365 -#define LLT_TYPE 366 -#define LLT_TYPEDEF 367 -#define LLT_UNCHANGED 368 -#define LLT_USES 369 -#define LLT_CHAR 370 -#define LLT_CONST 371 -#define LLT_DOUBLE 372 -#define LLT_ENUM 373 -#define LLT_FLOAT 374 -#define LLT_INT 375 -#define LLT_ITER 376 -#define LLT_YIELD 377 -#define LLT_LONG 378 -#define LLT_SHORT 379 -#define LLT_SIGNED 380 -#define LLT_UNKNOWN 381 -#define LLT_STRUCT 382 -#define LLT_TELIPSIS 383 -#define LLT_UNION 384 -#define LLT_UNSIGNED 385 -#define LLT_VOID 386 -#define LLT_VOLATILE 387 -#define LLT_PRINTFLIKE 388 -#define LLT_SCANFLIKE 389 -#define LLT_MESSAGELIKE 390 +#define LLT_NULLTERMINATED 357 +#define LLT_TEMPREF 358 +#define LLT_NEWREF 359 +#define LLT_PRIVATE 360 +#define LLT_REQUIRES 361 +#define LLT_RESULT 362 +#define LLT_SIZEOF 363 +#define LLT_SPEC 364 +#define LLT_TAGGEDUNION 365 +#define LLT_THEN 366 +#define LLT_TYPE 367 +#define LLT_TYPEDEF 368 +#define LLT_UNCHANGED 369 +#define LLT_USES 370 +#define LLT_CHAR 371 +#define LLT_CONST 372 +#define LLT_DOUBLE 373 +#define LLT_ENUM 374 +#define LLT_FLOAT 375 +#define LLT_INT 376 +#define LLT_ITER 377 +#define LLT_YIELD 378 +#define LLT_LONG 379 +#define LLT_SHORT 380 +#define LLT_SIGNED 381 +#define LLT_UNKNOWN 382 +#define LLT_STRUCT 383 +#define LLT_TELIPSIS 384 +#define LLT_UNION 385 +#define LLT_UNSIGNED 386 +#define LLT_VOID 387 +#define LLT_VOLATILE 388 +#define LLT_PRINTFLIKE 389 +#define LLT_SCANFLIKE 390 +#define LLT_MESSAGELIKE 391 #line 36 "llgrammar.y" -# include "bison.reset" - # include "lclintMacros.nf" # include "llbasic.h" # include "lclscan.h" @@ -175,10 +174,22 @@ bool g_inTypeDef = FALSE; /*@notfunction@*/ # define YYPRINT(file, type, value) yyprint (file, type, value) -# include "bison.head" +/* +** This is necessary, or else when the bison-generated code #include's malloc.h, +** there will be a parse error. +** +** Unfortunately, it means the error checking on malloc, etc. is lost for allocations +** in bison-generated files under Win32. +*/ + +# ifdef WIN32 +# undef malloc +# undef calloc +# undef realloc +# endif -#line 68 "llgrammar.y" +#line 78 "llgrammar.y" typedef union { ltoken ltok; /* a leaf is also an ltoken */ @@ -258,11 +269,11 @@ typedef union -#define YYFINAL 683 +#define YYFINAL 684 #define YYFLAG -32768 -#define YYNTBASE 136 +#define YYNTBASE 137 -#define YYTRANSLATE(x) ((unsigned)(x) <= 390 ? yytranslate[x] : 290) +#define YYTRANSLATE(x) ((unsigned)(x) <= 391 ? yytranslate[x] : 291) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -303,7 +314,8 @@ static const short yytranslate[] = { 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135 + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136 }; #if YYDEBUG != 0 @@ -331,200 +343,200 @@ static const short yyprhs[] = { 0, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, - 664, 666, 668, 670, 673, 679, 681, 684, 686, 689, - 690, 697, 698, 705, 708, 711, 712, 714, 716, 719, - 723, 725, 729, 730, 732, 739, 742, 744, 748, 750, - 752, 754, 758, 761, 764, 768, 773, 775, 779, 782, - 785, 789, 794, 796, 799, 802, 806, 811, 814, 817, - 820, 823, 827, 829, 830, 832, 836, 839, 841, 843, - 846, 850, 854, 859, 862, 866, 873, 875, 878, 881, - 885, 889, 894, 899, 905, 909, 914, 919, 925, 928, - 931, 935, 939, 941, 943, 945, 947, 949, 951, 953, - 954, 956, 958, 962, 964, 966, 971, 972, 974, 976, - 980, 982, 984, 991, 993, 997, 999, 1004, 1008, 1012, - 1014, 1017, 1020, 1022, 1024, 1026, 1029, 1031, 1034, 1037, - 1041, 1043, 1045, 1048, 1051, 1055, 1057, 1060, 1064, 1066, - 1072, 1076, 1081, 1084, 1088, 1091, 1093, 1097, 1101, 1103, - 1108, 1110, 1113, 1117, 1121, 1125, 1130, 1134, 1136, 1140, - 1142, 1144, 1146, 1148, 1150, 1152, 1157, 1162, 1167, 1172, - 1179, 1184, 1186, 1188, 1190, 1192, 1194, 1197, 1198, 1202, - 1204, 1208, 1212, 1217, 1219, 1221, 1223, 1225, 1227, 1229, - 1231, 1233 + 664, 666, 668, 670, 672, 675, 681, 683, 686, 688, + 691, 692, 699, 700, 707, 710, 713, 714, 716, 718, + 721, 725, 727, 731, 732, 734, 741, 744, 746, 750, + 752, 754, 756, 760, 763, 766, 770, 775, 777, 781, + 784, 787, 791, 796, 798, 801, 804, 808, 813, 816, + 819, 822, 825, 829, 831, 832, 834, 838, 841, 843, + 845, 848, 852, 856, 861, 864, 868, 875, 877, 880, + 883, 887, 891, 896, 901, 907, 911, 916, 921, 927, + 930, 933, 937, 941, 943, 945, 947, 949, 951, 953, + 955, 956, 958, 960, 964, 966, 968, 973, 974, 976, + 978, 982, 984, 986, 993, 995, 999, 1001, 1006, 1010, + 1014, 1016, 1019, 1022, 1024, 1026, 1028, 1031, 1033, 1036, + 1039, 1043, 1045, 1047, 1050, 1053, 1057, 1059, 1062, 1066, + 1068, 1074, 1078, 1083, 1086, 1090, 1093, 1095, 1099, 1103, + 1105, 1110, 1112, 1115, 1119, 1123, 1127, 1132, 1136, 1138, + 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1159, 1164, 1169, + 1174, 1181, 1186, 1188, 1190, 1192, 1194, 1196, 1199, 1200, + 1204, 1206, 1210, 1214, 1219, 1221, 1223, 1225, 1227, 1229, + 1231, 1233, 1235 }; static const short yyrhs[] = { -1, - 138, 137, 140, 0, 0, 138, 139, 0, 143, 0, - 144, 0, 0, 145, 141, 0, 150, 141, 0, 0, - 141, 142, 0, 145, 0, 150, 0, 144, 0, 57, - 174, 7, 0, 114, 178, 7, 0, 153, 0, 154, - 0, 155, 0, 157, 0, 160, 0, 146, 0, 121, - 284, 10, 147, 37, 7, 0, 0, 148, 0, 149, - 0, 148, 32, 149, 0, 122, 243, 0, 243, 0, - 0, 108, 151, 152, 0, 153, 0, 154, 0, 155, - 0, 157, 0, 50, 226, 188, 7, 0, 226, 188, - 7, 0, 116, 226, 188, 7, 0, 132, 226, 188, - 7, 0, 162, 0, 171, 0, 133, 0, 134, 0, - 135, 0, 0, 226, 239, 190, 158, 34, 192, 194, - 198, 199, 200, 203, 204, 35, 0, 0, 156, 226, - 239, 190, 159, 34, 192, 194, 198, 199, 200, 203, - 204, 35, 0, 0, 48, 286, 10, 205, 37, 190, - 161, 34, 194, 199, 208, 203, 35, 0, 48, 283, - 286, 7, 0, 0, 0, 62, 163, 111, 20, 164, - 213, 0, 0, 0, 62, 165, 97, 111, 20, 166, - 213, 0, 0, 0, 97, 62, 167, 111, 20, 168, - 213, 0, 0, 0, 56, 169, 111, 20, 170, 213, - 0, 0, 0, 112, 226, 172, 218, 173, 7, 0, - 229, 7, 0, 237, 7, 0, 175, 0, 174, 32, - 175, 0, 177, 0, 3, 177, 3, 0, 43, 0, - 177, 0, 176, 32, 177, 0, 282, 0, 179, 0, - 178, 32, 179, 0, 288, 0, 288, 10, 181, 37, - 0, 10, 180, 37, 0, 10, 180, 37, 10, 181, - 37, 0, 288, 0, 180, 32, 288, 0, 183, 0, - 182, 0, 182, 32, 183, 0, 244, 0, 182, 32, - 244, 0, 184, 0, 183, 32, 184, 0, 244, 53, - 222, 0, 244, 53, 185, 0, 244, 53, 185, 255, - 0, 289, 0, 248, 0, 187, 0, 259, 0, 189, - 0, 188, 32, 189, 0, 239, 0, 239, 33, 186, - 0, 0, 190, 191, 0, 226, 188, 7, 0, 64, - 7, 0, 65, 7, 0, 0, 192, 193, 0, 104, - 226, 188, 7, 0, 0, 60, 195, 7, 0, 196, - 0, 195, 32, 196, 0, 284, 31, 197, 46, 259, - 0, 284, 46, 259, 0, 226, 0, 0, 49, 258, - 7, 0, 0, 105, 258, 7, 0, 0, 61, 63, - 7, 0, 61, 45, 7, 0, 61, 201, 7, 0, - 202, 0, 201, 32, 202, 0, 259, 0, 227, 0, - 66, 227, 0, 64, 0, 65, 0, 0, 52, 258, - 7, 0, 0, 48, 258, 7, 0, 0, 206, 0, - 207, 0, 128, 0, 207, 32, 128, 0, 243, 0, - 207, 32, 243, 0, 0, 47, 34, 209, 35, 0, - 47, 34, 209, 7, 35, 0, 210, 0, 10, 209, - 37, 0, 209, 6, 0, 209, 8, 209, 0, 209, - 7, 209, 0, 283, 10, 211, 37, 0, 283, 10, - 37, 0, 284, 33, 283, 10, 37, 0, 284, 33, - 283, 10, 211, 37, 0, 212, 0, 211, 32, 212, - 0, 276, 0, 284, 0, 3, 212, 0, 212, 3, - 0, 212, 3, 212, 0, 10, 212, 37, 0, 283, - 10, 37, 0, 283, 10, 211, 37, 0, 7, 0, - 34, 214, 35, 0, 34, 176, 35, 7, 0, 34, - 35, 7, 0, 0, 214, 157, 0, 0, 216, 0, - 0, 58, 217, 278, 10, 258, 37, 0, 219, 0, - 218, 32, 219, 0, 0, 239, 220, 221, 0, 0, - 34, 215, 35, 0, 131, 0, 115, 0, 117, 0, - 119, 0, 120, 0, 123, 0, 124, 0, 125, 0, - 130, 0, 126, 0, 222, 0, 223, 222, 0, 20, - 0, 223, 0, 67, 0, 78, 0, 68, 0, 69, + 139, 138, 141, 0, 0, 139, 140, 0, 144, 0, + 145, 0, 0, 146, 142, 0, 151, 142, 0, 0, + 142, 143, 0, 146, 0, 151, 0, 145, 0, 57, + 175, 7, 0, 115, 179, 7, 0, 154, 0, 155, + 0, 156, 0, 158, 0, 161, 0, 147, 0, 122, + 285, 10, 148, 37, 7, 0, 0, 149, 0, 150, + 0, 149, 32, 150, 0, 123, 244, 0, 244, 0, + 0, 109, 152, 153, 0, 154, 0, 155, 0, 156, + 0, 158, 0, 50, 227, 189, 7, 0, 227, 189, + 7, 0, 117, 227, 189, 7, 0, 133, 227, 189, + 7, 0, 163, 0, 172, 0, 134, 0, 135, 0, + 136, 0, 0, 227, 240, 191, 159, 34, 193, 195, + 199, 200, 201, 204, 205, 35, 0, 0, 157, 227, + 240, 191, 160, 34, 193, 195, 199, 200, 201, 204, + 205, 35, 0, 0, 48, 287, 10, 206, 37, 191, + 162, 34, 195, 200, 209, 204, 35, 0, 48, 284, + 287, 7, 0, 0, 0, 62, 164, 112, 20, 165, + 214, 0, 0, 0, 62, 166, 97, 112, 20, 167, + 214, 0, 0, 0, 97, 62, 168, 112, 20, 169, + 214, 0, 0, 0, 56, 170, 112, 20, 171, 214, + 0, 0, 0, 113, 227, 173, 219, 174, 7, 0, + 230, 7, 0, 238, 7, 0, 176, 0, 175, 32, + 176, 0, 178, 0, 3, 178, 3, 0, 43, 0, + 178, 0, 177, 32, 178, 0, 283, 0, 180, 0, + 179, 32, 180, 0, 289, 0, 289, 10, 182, 37, + 0, 10, 181, 37, 0, 10, 181, 37, 10, 182, + 37, 0, 289, 0, 181, 32, 289, 0, 184, 0, + 183, 0, 183, 32, 184, 0, 245, 0, 183, 32, + 245, 0, 185, 0, 184, 32, 185, 0, 245, 53, + 223, 0, 245, 53, 186, 0, 245, 53, 186, 256, + 0, 290, 0, 249, 0, 188, 0, 260, 0, 190, + 0, 189, 32, 190, 0, 240, 0, 240, 33, 187, + 0, 0, 191, 192, 0, 227, 189, 7, 0, 64, + 7, 0, 65, 7, 0, 0, 193, 194, 0, 105, + 227, 189, 7, 0, 0, 60, 196, 7, 0, 197, + 0, 196, 32, 197, 0, 285, 31, 198, 46, 260, + 0, 285, 46, 260, 0, 227, 0, 0, 49, 259, + 7, 0, 0, 106, 259, 7, 0, 0, 61, 63, + 7, 0, 61, 45, 7, 0, 61, 202, 7, 0, + 203, 0, 202, 32, 203, 0, 260, 0, 228, 0, + 66, 228, 0, 64, 0, 65, 0, 0, 52, 259, + 7, 0, 0, 48, 259, 7, 0, 0, 207, 0, + 208, 0, 129, 0, 208, 32, 129, 0, 244, 0, + 208, 32, 244, 0, 0, 47, 34, 210, 35, 0, + 47, 34, 210, 7, 35, 0, 211, 0, 10, 210, + 37, 0, 210, 6, 0, 210, 8, 210, 0, 210, + 7, 210, 0, 284, 10, 212, 37, 0, 284, 10, + 37, 0, 285, 33, 284, 10, 37, 0, 285, 33, + 284, 10, 212, 37, 0, 213, 0, 212, 32, 213, + 0, 277, 0, 285, 0, 3, 213, 0, 213, 3, + 0, 213, 3, 213, 0, 10, 213, 37, 0, 284, + 10, 37, 0, 284, 10, 212, 37, 0, 7, 0, + 34, 215, 35, 0, 34, 177, 35, 7, 0, 34, + 35, 7, 0, 0, 215, 158, 0, 0, 217, 0, + 0, 58, 218, 279, 10, 259, 37, 0, 220, 0, + 219, 32, 220, 0, 0, 240, 221, 222, 0, 0, + 34, 216, 35, 0, 132, 0, 116, 0, 118, 0, + 120, 0, 121, 0, 124, 0, 125, 0, 126, 0, + 131, 0, 127, 0, 223, 0, 224, 223, 0, 20, + 0, 224, 0, 67, 0, 78, 0, 68, 0, 69, 0, 71, 0, 72, 0, 73, 0, 74, 0, 95, 0, 79, 0, 80, 0, 82, 0, 83, 0, 81, 0, 75, 0, 76, 0, 77, 0, 87, 0, 88, 0, 89, 0, 90, 0, 91, 0, 99, 0, 100, - 0, 97, 0, 98, 0, 103, 0, 101, 0, 92, - 0, 93, 0, 94, 0, 96, 0, 70, 0, 84, - 0, 85, 0, 224, 0, 229, 0, 237, 0, 225, - 226, 0, 8, 227, 31, 227, 8, 0, 226, 0, - 226, 228, 0, 6, 0, 228, 6, 0, 0, 127, - 232, 230, 34, 233, 35, 0, 0, 129, 232, 231, - 34, 233, 35, 0, 127, 285, 0, 129, 285, 0, - 0, 285, 0, 234, 0, 233, 234, 0, 226, 235, - 7, 0, 239, 0, 235, 32, 239, 0, 0, 32, - 0, 118, 232, 34, 238, 236, 35, 0, 118, 285, - 0, 25, 0, 238, 32, 25, 0, 241, 0, 240, - 0, 284, 0, 10, 240, 37, 0, 6, 240, 0, - 240, 247, 0, 240, 10, 37, 0, 240, 10, 206, - 37, 0, 20, 0, 10, 241, 37, 0, 6, 241, - 0, 241, 247, 0, 241, 10, 37, 0, 241, 10, - 206, 37, 0, 20, 0, 6, 242, 0, 242, 247, - 0, 242, 10, 37, 0, 242, 10, 206, 37, 0, - 226, 242, 0, 226, 240, 0, 226, 245, 0, 226, - 245, 0, 66, 226, 245, 0, 248, 0, 0, 246, - 0, 10, 246, 37, 0, 6, 246, 0, 6, 0, - 247, 0, 246, 247, 0, 246, 10, 37, 0, 10, - 206, 37, 0, 246, 10, 206, 37, 0, 11, 36, - 0, 11, 187, 36, 0, 55, 27, 110, 27, 51, - 27, 0, 251, 0, 27, 251, 0, 251, 27, 0, - 27, 251, 27, 0, 249, 252, 250, 0, 27, 249, - 252, 250, 0, 249, 252, 250, 27, 0, 27, 249, - 252, 250, 27, 0, 11, 252, 36, 0, 11, 252, - 36, 27, 0, 27, 11, 252, 36, 0, 27, 11, - 252, 36, 27, 0, 12, 282, 0, 26, 282, 0, - 27, 12, 282, 0, 27, 26, 282, 0, 22, 0, - 34, 0, 23, 0, 35, 0, 263, 0, 14, 0, - 39, 0, 0, 253, 0, 27, 0, 253, 254, 27, - 0, 32, 0, 24, 0, 31, 256, 26, 287, 0, - 0, 257, 0, 287, 0, 257, 32, 287, 0, 259, - 0, 260, 0, 55, 260, 110, 260, 51, 260, 0, - 261, 0, 260, 14, 260, 0, 262, 0, 277, 10, - 258, 37, 0, 262, 39, 262, 0, 262, 33, 262, - 0, 264, 0, 267, 265, 0, 267, 266, 0, 3, - 0, 6, 0, 267, 0, 263, 264, 0, 263, 0, - 265, 263, 0, 263, 267, 0, 266, 263, 267, 0, - 272, 0, 268, 0, 268, 272, 0, 272, 268, 0, - 272, 268, 272, 0, 269, 0, 269, 272, 0, 270, - 31, 287, 0, 270, 0, 11, 271, 36, 31, 287, - 0, 11, 271, 36, 0, 11, 36, 31, 287, 0, - 11, 36, 0, 249, 271, 250, 0, 249, 250, 0, - 259, 0, 271, 254, 259, 0, 10, 260, 37, 0, - 284, 0, 289, 10, 273, 37, 0, 275, 0, 272, - 274, 0, 272, 12, 282, 0, 272, 26, 282, 0, - 272, 11, 36, 0, 272, 11, 273, 36, 0, 272, - 31, 287, 0, 260, 0, 273, 32, 260, 0, 28, - 0, 29, 0, 30, 0, 38, 0, 276, 0, 106, - 0, 54, 10, 273, 37, 0, 113, 10, 44, 37, - 0, 113, 10, 201, 37, 0, 107, 10, 259, 37, - 0, 59, 10, 259, 32, 259, 37, 0, 107, 10, - 226, 37, 0, 42, 0, 43, 0, 40, 0, 41, - 0, 278, 0, 277, 278, 0, 0, 21, 279, 280, - 0, 281, 0, 280, 32, 281, 0, 284, 31, 197, - 0, 284, 31, 66, 197, 0, 25, 0, 20, 0, - 25, 0, 25, 0, 282, 0, 282, 0, 282, 0, - 282, 0, 282, 0 + 0, 97, 0, 98, 0, 104, 0, 101, 0, 92, + 0, 93, 0, 94, 0, 96, 0, 70, 0, 102, + 0, 84, 0, 85, 0, 225, 0, 230, 0, 238, + 0, 226, 227, 0, 8, 228, 31, 228, 8, 0, + 227, 0, 227, 229, 0, 6, 0, 229, 6, 0, + 0, 128, 233, 231, 34, 234, 35, 0, 0, 130, + 233, 232, 34, 234, 35, 0, 128, 286, 0, 130, + 286, 0, 0, 286, 0, 235, 0, 234, 235, 0, + 227, 236, 7, 0, 240, 0, 236, 32, 240, 0, + 0, 32, 0, 119, 233, 34, 239, 237, 35, 0, + 119, 286, 0, 25, 0, 239, 32, 25, 0, 242, + 0, 241, 0, 285, 0, 10, 241, 37, 0, 6, + 241, 0, 241, 248, 0, 241, 10, 37, 0, 241, + 10, 207, 37, 0, 20, 0, 10, 242, 37, 0, + 6, 242, 0, 242, 248, 0, 242, 10, 37, 0, + 242, 10, 207, 37, 0, 20, 0, 6, 243, 0, + 243, 248, 0, 243, 10, 37, 0, 243, 10, 207, + 37, 0, 227, 243, 0, 227, 241, 0, 227, 246, + 0, 227, 246, 0, 66, 227, 246, 0, 249, 0, + 0, 247, 0, 10, 247, 37, 0, 6, 247, 0, + 6, 0, 248, 0, 247, 248, 0, 247, 10, 37, + 0, 10, 207, 37, 0, 247, 10, 207, 37, 0, + 11, 36, 0, 11, 188, 36, 0, 55, 27, 111, + 27, 51, 27, 0, 252, 0, 27, 252, 0, 252, + 27, 0, 27, 252, 27, 0, 250, 253, 251, 0, + 27, 250, 253, 251, 0, 250, 253, 251, 27, 0, + 27, 250, 253, 251, 27, 0, 11, 253, 36, 0, + 11, 253, 36, 27, 0, 27, 11, 253, 36, 0, + 27, 11, 253, 36, 27, 0, 12, 283, 0, 26, + 283, 0, 27, 12, 283, 0, 27, 26, 283, 0, + 22, 0, 34, 0, 23, 0, 35, 0, 264, 0, + 14, 0, 39, 0, 0, 254, 0, 27, 0, 254, + 255, 27, 0, 32, 0, 24, 0, 31, 257, 26, + 288, 0, 0, 258, 0, 288, 0, 258, 32, 288, + 0, 260, 0, 261, 0, 55, 261, 111, 261, 51, + 261, 0, 262, 0, 261, 14, 261, 0, 263, 0, + 278, 10, 259, 37, 0, 263, 39, 263, 0, 263, + 33, 263, 0, 265, 0, 268, 266, 0, 268, 267, + 0, 3, 0, 6, 0, 268, 0, 264, 265, 0, + 264, 0, 266, 264, 0, 264, 268, 0, 267, 264, + 268, 0, 273, 0, 269, 0, 269, 273, 0, 273, + 269, 0, 273, 269, 273, 0, 270, 0, 270, 273, + 0, 271, 31, 288, 0, 271, 0, 11, 272, 36, + 31, 288, 0, 11, 272, 36, 0, 11, 36, 31, + 288, 0, 11, 36, 0, 250, 272, 251, 0, 250, + 251, 0, 260, 0, 272, 255, 260, 0, 10, 261, + 37, 0, 285, 0, 290, 10, 274, 37, 0, 276, + 0, 273, 275, 0, 273, 12, 283, 0, 273, 26, + 283, 0, 273, 11, 36, 0, 273, 11, 274, 36, + 0, 273, 31, 288, 0, 261, 0, 274, 32, 261, + 0, 28, 0, 29, 0, 30, 0, 38, 0, 277, + 0, 107, 0, 54, 10, 274, 37, 0, 114, 10, + 44, 37, 0, 114, 10, 202, 37, 0, 108, 10, + 260, 37, 0, 59, 10, 260, 32, 260, 37, 0, + 108, 10, 227, 37, 0, 42, 0, 43, 0, 40, + 0, 41, 0, 279, 0, 278, 279, 0, 0, 21, + 280, 281, 0, 282, 0, 281, 32, 282, 0, 285, + 31, 198, 0, 285, 31, 66, 198, 0, 25, 0, + 20, 0, 25, 0, 25, 0, 283, 0, 283, 0, + 283, 0, 283, 0, 283, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 372, 373, 376, 377, 380, 381, 384, 385, 386, 389, - 390, 393, 394, 395, 398, 404, 408, 410, 412, 414, - 416, 418, 422, 426, 427, 430, 432, 436, 437, 440, - 441, 444, 446, 448, 450, 454, 458, 460, 462, 466, - 467, 470, 471, 472, 475, 476, 483, 485, 496, 498, - 501, 505, 505, 506, 507, 507, 509, 510, 511, 512, - 513, 513, 514, 517, 518, 519, 520, 522, 538, 540, - 544, 545, 547, 550, 551, 554, 558, 560, 564, 566, - 568, 570, 574, 575, 578, 580, 582, 585, 587, 590, - 592, 595, 596, 597, 601, 602, 604, 606, 609, 611, - 615, 616, 619, 621, 625, 626, 627, 630, 631, 634, - 638, 639, 642, 643, 646, 647, 649, 652, 653, 656, - 657, 660, 661, 662, 663, 666, 667, 670, 671, 672, - 673, 674, 677, 678, 681, 682, 685, 686, 689, 690, - 691, 694, 695, 698, 699, 700, 703, 704, 707, 712, - 718, 726, 728, 730, 732, 736, 737, 740, 741, 742, - 743, 744, 745, 746, 748, 752, 753, 754, 755, 758, - 759, 762, 763, 766, 766, 775, 776, 780, 781, 784, - 785, 788, 789, 790, 791, 792, 793, 794, 795, 796, - 797, 805, 806, 811, 813, 819, 820, 821, 822, 823, - 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, - 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, - 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, - 856, 858, 860, 862, 864, 873, 874, 879, 880, 883, - 885, 887, 889, 891, 893, 897, 898, 901, 902, 907, - 910, 912, 916, 917, 920, 922, 926, 927, 937, 938, - 941, 942, 943, 944, 945, 946, 949, 950, 951, 952, - 953, 954, 963, 964, 965, 966, 967, 973, 974, 975, - 985, 986, 987, 992, 993, 996, 997, 998, 999, 1000, - 1001, 1002, 1003, 1006, 1007, 1010, 1012, 1014, 1016, 1018, - 1021, 1023, 1025, 1027, 1029, 1031, 1039, 1041, 1043, 1046, - 1049, 1052, 1057, 1058, 1061, 1062, 1065, 1066, 1067, 1070, - 1071, 1074, 1075, 1078, 1079, 1082, 1085, 1086, 1089, 1090, - 1093, 1096, 1102, 1104, 1105, 1108, 1109, 1114, 1116, 1120, - 1121, 1122, 1125, 1126, 1129, 1130, 1133, 1134, 1137, 1138, - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1150, 1151, 1154, - 1157, 1159, 1163, 1167, 1168, 1171, 1172, 1175, 1177, 1179, - 1181, 1182, 1184, 1186, 1188, 1191, 1193, 1197, 1198, 1201, - 1202, 1203, 1204, 1207, 1208, 1209, 1210, 1211, 1212, 1217, - 1223, 1233, 1234, 1235, 1236, 1239, 1241, 1245, 1249, 1252, - 1253, 1256, 1257, 1260, 1261, 1264, 1265, 1266, 1267, 1268, - 1269, 1270 + 383, 384, 387, 388, 391, 392, 395, 396, 397, 400, + 401, 404, 405, 406, 409, 415, 419, 421, 423, 425, + 427, 429, 433, 437, 438, 441, 443, 447, 448, 451, + 452, 455, 457, 459, 461, 465, 469, 471, 473, 477, + 478, 481, 482, 483, 486, 487, 494, 496, 507, 509, + 512, 516, 516, 517, 518, 518, 520, 521, 522, 523, + 524, 524, 525, 528, 529, 530, 531, 533, 549, 551, + 555, 556, 558, 561, 562, 565, 569, 571, 575, 577, + 579, 581, 585, 586, 589, 591, 593, 596, 598, 601, + 603, 606, 607, 608, 612, 613, 615, 617, 620, 622, + 626, 627, 630, 632, 636, 637, 638, 641, 642, 645, + 649, 650, 653, 654, 657, 658, 660, 663, 664, 667, + 668, 671, 672, 673, 674, 677, 678, 681, 682, 683, + 684, 685, 688, 689, 692, 693, 696, 697, 700, 701, + 702, 705, 706, 709, 710, 711, 714, 715, 718, 723, + 729, 737, 739, 741, 743, 747, 748, 751, 752, 753, + 754, 755, 756, 757, 759, 763, 764, 765, 766, 769, + 770, 773, 774, 777, 777, 786, 787, 791, 792, 795, + 796, 799, 800, 801, 802, 803, 804, 805, 806, 807, + 808, 816, 817, 822, 824, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, + 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, + 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, + 865, 868, 870, 872, 874, 876, 885, 886, 891, 892, + 895, 897, 899, 901, 903, 905, 909, 910, 913, 914, + 919, 922, 924, 928, 929, 932, 934, 938, 939, 949, + 950, 953, 954, 955, 956, 957, 958, 961, 962, 963, + 964, 965, 966, 975, 976, 977, 978, 979, 985, 986, + 987, 997, 998, 999, 1004, 1005, 1008, 1009, 1010, 1011, + 1012, 1013, 1014, 1015, 1018, 1019, 1022, 1024, 1026, 1028, + 1030, 1033, 1035, 1037, 1039, 1041, 1043, 1051, 1053, 1055, + 1058, 1061, 1064, 1069, 1070, 1073, 1074, 1077, 1078, 1079, + 1082, 1083, 1086, 1087, 1090, 1091, 1094, 1097, 1098, 1101, + 1102, 1105, 1108, 1114, 1116, 1117, 1120, 1121, 1126, 1128, + 1132, 1133, 1134, 1137, 1138, 1141, 1142, 1145, 1146, 1149, + 1150, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1162, 1163, + 1166, 1169, 1171, 1175, 1179, 1180, 1183, 1184, 1187, 1189, + 1191, 1193, 1194, 1196, 1198, 1200, 1203, 1205, 1209, 1210, + 1213, 1214, 1215, 1216, 1219, 1220, 1221, 1222, 1223, 1224, + 1229, 1235, 1245, 1246, 1247, 1248, 1251, 1253, 1257, 1261, + 1264, 1265, 1268, 1269, 1272, 1273, 1276, 1277, 1278, 1279, + 1280, 1281, 1282 }; #endif @@ -547,79 +559,80 @@ static const char * const yytname[] = { "$","error","$undefined.","simpleOp", "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT", "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER", "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF", -"LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES","LLT_RESULT","LLT_SIZEOF", -"LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE","LLT_TYPEDEF","LLT_UNCHANGED", -"LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE","LLT_ENUM","LLT_FLOAT","LLT_INT", -"LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT","LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT", -"LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED","LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE", -"LLT_SCANFLIKE","LLT_MESSAGELIKE","interface","@1","externals","external","optDeclarations", -"declarations","declaration","imports","uses","export","iter","iterParamList", -"realIterParamList","iterParam","private","@2","private2","constDeclaration", -"varDeclaration","type","special","fcn","@3","@4","claim","@5","abstract","@6", -"@7","@8","@9","@10","@11","@12","@13","exposed","@14","@15","importNameList", -"importName","interfaceNameList","interfaceName","traitRefNodeList","traitRef", -"traitIdList","renaming","nameList","replaceNodeList","replace","name","initializer", -"constLclExpr","initDecls","initDecl","globals","globalDecl","privateInits", -"privateInit","optLetDecl","beDeclList","beDecl","sortSpec","optChecks","optRequire", -"optModify","storeRefList","storeRef","optEnsure","optClaim","optParamList", -"realParamList","paramList","optBody","callExpr","stmt","valueList","value", -"abstBody","fcns","optTypeInv","typeInv","@16","declaratorInvs","declaratorInv", -"@17","optExposedBody","CType","CTypes","typeSpecifier","specialQualifier","lclTypeSpec", -"lclType","pointers","structOrUnionSpec","@18","@19","optTagId","structDecls", -"structDecl","declaratorList","optCOMMA","enumSpec","enumeratorList","declarator", -"notype_decl","after_type_decl","parameter_decl","param","typeName","optAbstDeclarator", -"abstDeclarator","arrayQual","opForm","open","close","anyOp","middle","placeList", -"separator","signature","domain","sortList","lclPredicate","term","term0","equalityTerm", -"simpleOpTerm","simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary", -"bracketed","sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary", +"LLT_NULLTERMINATED","LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES", +"LLT_RESULT","LLT_SIZEOF","LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE", +"LLT_TYPEDEF","LLT_UNCHANGED","LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE", +"LLT_ENUM","LLT_FLOAT","LLT_INT","LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT", +"LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT","LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED", +"LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE","LLT_SCANFLIKE","LLT_MESSAGELIKE", +"interface","@1","externals","external","optDeclarations","declarations","declaration", +"imports","uses","export","iter","iterParamList","realIterParamList","iterParam", +"private","@2","private2","constDeclaration","varDeclaration","type","special", +"fcn","@3","@4","claim","@5","abstract","@6","@7","@8","@9","@10","@11","@12", +"@13","exposed","@14","@15","importNameList","importName","interfaceNameList", +"interfaceName","traitRefNodeList","traitRef","traitIdList","renaming","nameList", +"replaceNodeList","replace","name","initializer","constLclExpr","initDecls", +"initDecl","globals","globalDecl","privateInits","privateInit","optLetDecl", +"beDeclList","beDecl","sortSpec","optChecks","optRequire","optModify","storeRefList", +"storeRef","optEnsure","optClaim","optParamList","realParamList","paramList", +"optBody","callExpr","stmt","valueList","value","abstBody","fcns","optTypeInv", +"typeInv","@16","declaratorInvs","declaratorInv","@17","optExposedBody","CType", +"CTypes","typeSpecifier","specialQualifier","lclTypeSpec","lclType","pointers", +"structOrUnionSpec","@18","@19","optTagId","structDecls","structDecl","declaratorList", +"optCOMMA","enumSpec","enumeratorList","declarator","notype_decl","after_type_decl", +"parameter_decl","param","typeName","optAbstDeclarator","abstDeclarator","arrayQual", +"opForm","open","close","anyOp","middle","placeList","separator","signature", +"domain","sortList","lclPredicate","term","term0","equalityTerm","simpleOpTerm", +"simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary","bracketed", +"sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary", "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName", "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL }; #endif static const short yyr1[] = { 0, - 137, 136, 138, 138, 139, 139, 140, 140, 140, 141, - 141, 142, 142, 142, 143, 144, 145, 145, 145, 145, - 145, 145, 146, 147, 147, 148, 148, 149, 149, 151, - 150, 152, 152, 152, 152, 153, 154, 154, 154, 155, - 155, 156, 156, 156, 158, 157, 159, 157, 161, 160, - 160, 163, 164, 162, 165, 166, 162, 167, 168, 162, - 169, 170, 162, 172, 173, 171, 171, 171, 174, 174, - 175, 175, 175, 176, 176, 177, 178, 178, 179, 179, - 179, 179, 180, 180, 181, 181, 181, 182, 182, 183, - 183, 184, 184, 184, 185, 185, 186, 187, 188, 188, - 189, 189, 190, 190, 191, 191, 191, 192, 192, 193, - 194, 194, 195, 195, 196, 196, 197, 198, 198, 199, - 199, 200, 200, 200, 200, 201, 201, 202, 202, 202, - 202, 202, 203, 203, 204, 204, 205, 205, 206, 206, - 206, 207, 207, 208, 208, 208, 209, 209, 209, 209, - 209, 210, 210, 210, 210, 211, 211, 212, 212, 212, - 212, 212, 212, 212, 212, 213, 213, 213, 213, 214, - 214, 215, 215, 217, 216, 218, 218, 220, 219, 221, - 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 223, 223, 224, 224, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 226, 226, 226, 226, 226, 227, 227, 228, 228, 230, - 229, 231, 229, 229, 229, 232, 232, 233, 233, 234, - 235, 235, 236, 236, 237, 237, 238, 238, 239, 239, - 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, - 241, 241, 242, 242, 242, 242, 242, 243, 243, 243, - 244, 244, 244, 245, 245, 246, 246, 246, 246, 246, - 246, 246, 246, 247, 247, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 249, 249, 250, 250, 251, 251, 251, 252, - 252, 253, 253, 254, 254, 255, 256, 256, 257, 257, - 258, 259, 260, 260, 260, 261, 261, 261, 261, 262, - 262, 262, 263, 263, 264, 264, 265, 265, 266, 266, - 267, 267, 267, 267, 267, 267, 267, 268, 268, 269, - 269, 269, 269, 270, 270, 271, 271, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 273, 273, 274, - 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, - 275, 276, 276, 276, 276, 277, 277, 279, 278, 280, - 280, 281, 281, 282, 282, 283, 284, 285, 286, 287, - 288, 289 + 138, 137, 139, 139, 140, 140, 141, 141, 141, 142, + 142, 143, 143, 143, 144, 145, 146, 146, 146, 146, + 146, 146, 147, 148, 148, 149, 149, 150, 150, 152, + 151, 153, 153, 153, 153, 154, 155, 155, 155, 156, + 156, 157, 157, 157, 159, 158, 160, 158, 162, 161, + 161, 164, 165, 163, 166, 167, 163, 168, 169, 163, + 170, 171, 163, 173, 174, 172, 172, 172, 175, 175, + 176, 176, 176, 177, 177, 178, 179, 179, 180, 180, + 180, 180, 181, 181, 182, 182, 182, 183, 183, 184, + 184, 185, 185, 185, 186, 186, 187, 188, 189, 189, + 190, 190, 191, 191, 192, 192, 192, 193, 193, 194, + 195, 195, 196, 196, 197, 197, 198, 199, 199, 200, + 200, 201, 201, 201, 201, 202, 202, 203, 203, 203, + 203, 203, 204, 204, 205, 205, 206, 206, 207, 207, + 207, 208, 208, 209, 209, 209, 210, 210, 210, 210, + 210, 211, 211, 211, 211, 212, 212, 213, 213, 213, + 213, 213, 213, 213, 213, 214, 214, 214, 214, 215, + 215, 216, 216, 218, 217, 219, 219, 221, 220, 222, + 222, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 224, 224, 225, 225, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 227, 227, 227, 227, 227, 228, 228, 229, 229, + 231, 230, 232, 230, 230, 230, 233, 233, 234, 234, + 235, 236, 236, 237, 237, 238, 238, 239, 239, 240, + 240, 241, 241, 241, 241, 241, 241, 242, 242, 242, + 242, 242, 242, 243, 243, 243, 243, 243, 244, 244, + 244, 245, 245, 245, 246, 246, 247, 247, 247, 247, + 247, 247, 247, 247, 248, 248, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 250, 250, 251, 251, 252, 252, 252, + 253, 253, 254, 254, 255, 255, 256, 257, 257, 258, + 258, 259, 260, 261, 261, 261, 262, 262, 262, 262, + 263, 263, 263, 264, 264, 265, 265, 266, 266, 267, + 267, 268, 268, 268, 268, 268, 268, 268, 269, 269, + 270, 270, 270, 270, 271, 271, 272, 272, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, + 275, 275, 275, 275, 276, 276, 276, 276, 276, 276, + 276, 276, 277, 277, 277, 277, 278, 278, 280, 279, + 281, 281, 282, 282, 283, 283, 284, 285, 286, 287, + 288, 289, 290 }; static const short yyr2[] = { 0, @@ -646,870 +659,888 @@ static const short yyr2[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 5, 1, 2, 1, 2, 0, - 6, 0, 6, 2, 2, 0, 1, 1, 2, 3, - 1, 3, 0, 1, 6, 2, 1, 3, 1, 1, - 1, 3, 2, 2, 3, 4, 1, 3, 2, 2, - 3, 4, 1, 2, 2, 3, 4, 2, 2, 2, - 2, 3, 1, 0, 1, 3, 2, 1, 1, 2, - 3, 3, 4, 2, 3, 6, 1, 2, 2, 3, - 3, 4, 4, 5, 3, 4, 4, 5, 2, 2, - 3, 3, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 3, 1, 1, 4, 0, 1, 1, 3, - 1, 1, 6, 1, 3, 1, 4, 3, 3, 1, - 2, 2, 1, 1, 1, 2, 1, 2, 2, 3, - 1, 1, 2, 2, 3, 1, 2, 3, 1, 5, - 3, 4, 2, 3, 2, 1, 3, 3, 1, 4, - 1, 2, 3, 3, 3, 4, 3, 1, 3, 1, - 1, 1, 1, 1, 1, 4, 4, 4, 4, 6, - 4, 1, 1, 1, 1, 1, 2, 0, 3, 1, - 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1 + 1, 1, 1, 1, 2, 5, 1, 2, 1, 2, + 0, 6, 0, 6, 2, 2, 0, 1, 1, 2, + 3, 1, 3, 0, 1, 6, 2, 1, 3, 1, + 1, 1, 3, 2, 2, 3, 4, 1, 3, 2, + 2, 3, 4, 1, 2, 2, 3, 4, 2, 2, + 2, 2, 3, 1, 0, 1, 3, 2, 1, 1, + 2, 3, 3, 4, 2, 3, 6, 1, 2, 2, + 3, 3, 4, 4, 5, 3, 4, 4, 5, 2, + 2, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 3, 1, 1, 4, 0, 1, 1, + 3, 1, 1, 6, 1, 3, 1, 4, 3, 3, + 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, + 3, 1, 1, 2, 2, 3, 1, 2, 3, 1, + 5, 3, 4, 2, 3, 2, 1, 3, 3, 1, + 4, 1, 2, 3, 3, 3, 4, 3, 1, 3, + 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, + 6, 4, 1, 1, 1, 1, 1, 2, 0, 3, + 1, 3, 3, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 1 }; static const short yydefact[] = { 3, - 1, 0, 0, 7, 4, 5, 6, 0, 405, 404, - 73, 0, 69, 71, 76, 0, 0, 77, 411, 79, + 1, 0, 0, 7, 4, 5, 6, 0, 406, 405, + 73, 0, 69, 71, 76, 0, 0, 77, 412, 79, 0, 194, 0, 0, 61, 52, 196, 198, 199, 228, 200, 201, 202, 203, 210, 211, 212, 197, 205, 206, - 209, 207, 208, 229, 230, 213, 214, 215, 216, 217, + 209, 207, 208, 230, 231, 213, 214, 215, 216, 217, 224, 225, 226, 204, 227, 220, 221, 218, 219, 223, - 222, 30, 0, 183, 0, 184, 246, 185, 186, 0, - 187, 188, 189, 191, 246, 246, 190, 182, 0, 42, - 43, 44, 2, 10, 22, 10, 17, 18, 19, 0, - 20, 21, 40, 41, 192, 195, 231, 0, 0, 232, - 233, 0, 15, 0, 0, 83, 16, 0, 0, 220, - 236, 0, 232, 233, 406, 409, 0, 0, 0, 0, - 0, 0, 58, 0, 64, 0, 0, 408, 256, 407, - 0, 240, 244, 242, 245, 0, 8, 9, 0, 193, - 234, 0, 0, 267, 0, 99, 103, 260, 259, 261, - 67, 68, 72, 70, 0, 81, 78, 343, 344, 320, - 0, 318, 313, 0, 0, 314, 319, 0, 0, 0, - 86, 85, 90, 284, 88, 283, 320, 297, 317, 238, - 237, 0, 0, 137, 0, 101, 0, 0, 0, 0, - 31, 32, 33, 34, 35, 0, 0, 0, 24, 0, - 0, 0, 11, 14, 12, 13, 103, 263, 269, 0, - 0, 37, 0, 0, 45, 0, 0, 264, 0, 270, - 84, 0, 322, 0, 321, 309, 310, 320, 0, 0, - 320, 298, 0, 284, 80, 0, 0, 288, 0, 281, - 285, 289, 0, 0, 299, 239, 0, 51, 140, 0, - 138, 139, 284, 142, 36, 62, 53, 0, 0, 65, - 176, 178, 38, 257, 253, 0, 0, 25, 26, 29, - 0, 0, 39, 47, 262, 268, 100, 0, 0, 398, - 407, 394, 395, 392, 393, 0, 0, 0, 385, 0, - 0, 102, 97, 0, 98, 332, 334, 336, 0, 340, - 345, 352, 356, 359, 351, 371, 384, 0, 396, 412, - 369, 0, 0, 0, 0, 104, 0, 265, 0, 294, - 0, 271, 0, 0, 305, 325, 324, 0, 0, 311, - 312, 0, 300, 0, 282, 87, 89, 91, 0, 287, - 0, 0, 0, 290, 93, 92, 96, 95, 315, 316, - 301, 235, 103, 0, 288, 0, 273, 279, 278, 280, - 0, 0, 56, 59, 0, 0, 180, 254, 0, 28, - 0, 0, 0, 0, 248, 0, 0, 0, 363, 366, - 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, - 0, 0, 346, 345, 347, 341, 342, 353, 357, 0, - 0, 0, 0, 380, 381, 382, 0, 383, 354, 372, - 0, 397, 0, 106, 107, 108, 0, 266, 295, 272, - 82, 306, 323, 307, 302, 0, 292, 286, 291, 0, - 327, 94, 303, 49, 141, 143, 274, 288, 0, 275, - 166, 170, 63, 54, 0, 0, 177, 66, 172, 179, - 258, 255, 23, 27, 0, 251, 241, 249, 243, 108, - 368, 0, 361, 0, 399, 400, 0, 378, 0, 0, - 0, 194, 0, 0, 0, 131, 132, 0, 0, 126, - 129, 128, 364, 335, 339, 338, 349, 348, 0, 410, - 358, 375, 0, 373, 374, 377, 355, 0, 331, 0, - 111, 105, 308, 304, 0, 293, 0, 328, 329, 0, - 276, 0, 0, 0, 74, 0, 57, 60, 174, 0, - 173, 250, 0, 111, 362, 0, 367, 0, 0, 0, - 386, 0, 0, 391, 389, 387, 130, 0, 388, 350, - 376, 337, 370, 0, 0, 109, 118, 296, 0, 0, - 111, 277, 169, 0, 0, 167, 171, 0, 0, 181, - 252, 118, 360, 401, 0, 402, 117, 379, 0, 0, - 127, 0, 113, 0, 0, 0, 120, 326, 330, 120, - 75, 168, 103, 0, 120, 403, 333, 390, 112, 0, - 0, 0, 0, 0, 0, 122, 144, 0, 122, 114, - 0, 116, 110, 119, 0, 0, 133, 0, 133, 0, - 133, 0, 121, 0, 0, 0, 0, 135, 0, 0, - 175, 135, 115, 124, 123, 125, 0, 0, 0, 0, - 407, 0, 147, 0, 0, 50, 0, 134, 0, 46, - 0, 149, 0, 0, 145, 0, 0, 48, 136, 0, - 148, 146, 151, 150, 0, 0, 153, 0, 156, 158, - 0, 159, 406, 0, 160, 0, 0, 152, 161, 0, - 0, 163, 157, 162, 164, 0, 154, 0, 165, 155, - 0, 0, 0 + 229, 222, 30, 0, 183, 0, 184, 247, 185, 186, + 0, 187, 188, 189, 191, 247, 247, 190, 182, 0, + 42, 43, 44, 2, 10, 22, 10, 17, 18, 19, + 0, 20, 21, 40, 41, 192, 195, 232, 0, 0, + 233, 234, 0, 15, 0, 0, 83, 16, 0, 0, + 220, 237, 0, 233, 234, 407, 410, 0, 0, 0, + 0, 0, 0, 58, 0, 64, 0, 0, 409, 257, + 408, 0, 241, 245, 243, 246, 0, 8, 9, 0, + 193, 235, 0, 0, 268, 0, 99, 103, 261, 260, + 262, 67, 68, 72, 70, 0, 81, 78, 344, 345, + 321, 0, 319, 314, 0, 0, 315, 320, 0, 0, + 0, 86, 85, 90, 285, 88, 284, 321, 298, 318, + 239, 238, 0, 0, 137, 0, 101, 0, 0, 0, + 0, 31, 32, 33, 34, 35, 0, 0, 0, 24, + 0, 0, 0, 11, 14, 12, 13, 103, 264, 270, + 0, 0, 37, 0, 0, 45, 0, 0, 265, 0, + 271, 84, 0, 323, 0, 322, 310, 311, 321, 0, + 0, 321, 299, 0, 285, 80, 0, 0, 289, 0, + 282, 286, 290, 0, 0, 300, 240, 0, 51, 140, + 0, 138, 139, 285, 142, 36, 62, 53, 0, 0, + 65, 176, 178, 38, 258, 254, 0, 0, 25, 26, + 29, 0, 0, 39, 47, 263, 269, 100, 0, 0, + 399, 408, 395, 396, 393, 394, 0, 0, 0, 386, + 0, 0, 102, 97, 0, 98, 333, 335, 337, 0, + 341, 346, 353, 357, 360, 352, 372, 385, 0, 397, + 413, 370, 0, 0, 0, 0, 104, 0, 266, 0, + 295, 0, 272, 0, 0, 306, 326, 325, 0, 0, + 312, 313, 0, 301, 0, 283, 87, 89, 91, 0, + 288, 0, 0, 0, 291, 93, 92, 96, 95, 316, + 317, 302, 236, 103, 0, 289, 0, 274, 280, 279, + 281, 0, 0, 56, 59, 0, 0, 180, 255, 0, + 28, 0, 0, 0, 0, 249, 0, 0, 0, 364, + 367, 0, 0, 0, 0, 0, 0, 0, 366, 0, + 0, 0, 0, 347, 346, 348, 342, 343, 354, 358, + 0, 0, 0, 0, 381, 382, 383, 0, 384, 355, + 373, 0, 398, 0, 106, 107, 108, 0, 267, 296, + 273, 82, 307, 324, 308, 303, 0, 293, 287, 292, + 0, 328, 94, 304, 49, 141, 143, 275, 289, 0, + 276, 166, 170, 63, 54, 0, 0, 177, 66, 172, + 179, 259, 256, 23, 27, 0, 252, 242, 250, 244, + 108, 369, 0, 362, 0, 400, 401, 0, 379, 0, + 0, 0, 194, 0, 0, 0, 131, 132, 0, 0, + 126, 129, 128, 365, 336, 340, 339, 350, 349, 0, + 411, 359, 376, 0, 374, 375, 378, 356, 0, 332, + 0, 111, 105, 309, 305, 0, 294, 0, 329, 330, + 0, 277, 0, 0, 0, 74, 0, 57, 60, 174, + 0, 173, 251, 0, 111, 363, 0, 368, 0, 0, + 0, 387, 0, 0, 392, 390, 388, 130, 0, 389, + 351, 377, 338, 371, 0, 0, 109, 118, 297, 0, + 0, 111, 278, 169, 0, 0, 167, 171, 0, 0, + 181, 253, 118, 361, 402, 0, 403, 117, 380, 0, + 0, 127, 0, 113, 0, 0, 0, 120, 327, 331, + 120, 75, 168, 103, 0, 120, 404, 334, 391, 112, + 0, 0, 0, 0, 0, 0, 122, 144, 0, 122, + 114, 0, 116, 110, 119, 0, 0, 133, 0, 133, + 0, 133, 0, 121, 0, 0, 0, 0, 135, 0, + 0, 175, 135, 115, 124, 123, 125, 0, 0, 0, + 0, 408, 0, 147, 0, 0, 50, 0, 134, 0, + 46, 0, 149, 0, 0, 145, 0, 0, 48, 136, + 0, 148, 146, 151, 150, 0, 0, 153, 0, 156, + 158, 0, 159, 407, 0, 160, 0, 0, 152, 161, + 0, 0, 163, 157, 162, 164, 0, 154, 0, 165, + 155, 0, 0, 0 }; -static const short yydefgoto[] = { 681, - 4, 1, 5, 83, 137, 203, 6, 204, 205, 85, - 267, 268, 269, 206, 124, 191, 87, 88, 89, 90, - 91, 315, 377, 92, 510, 93, 121, 362, 122, 445, - 190, 446, 120, 361, 94, 196, 366, 12, 13, 514, - 14, 17, 18, 105, 170, 171, 172, 173, 345, 292, - 293, 145, 146, 215, 316, 501, 546, 547, 572, 573, - 566, 577, 596, 607, 479, 480, 618, 629, 250, 341, - 252, 609, 653, 633, 658, 659, 443, 516, 520, 521, - 559, 260, 261, 367, 450, 95, 96, 97, 98, 253, - 481, 181, 113, 200, 201, 127, 374, 375, 455, 369, - 114, 265, 186, 148, 149, 359, 254, 175, 240, 241, - 242, 176, 294, 351, 178, 224, 225, 464, 432, 507, - 508, 498, 499, 296, 297, 298, 299, 300, 396, 397, - 301, 302, 303, 304, 381, 305, 469, 410, 306, 307, - 308, 309, 382, 465, 466, 310, 661, 311, 129, 118, - 491, 20, 312 +static const short yydefgoto[] = { 682, + 4, 1, 5, 84, 138, 204, 6, 205, 206, 86, + 268, 269, 270, 207, 125, 192, 88, 89, 90, 91, + 92, 316, 378, 93, 511, 94, 122, 363, 123, 446, + 191, 447, 121, 362, 95, 197, 367, 12, 13, 515, + 14, 17, 18, 106, 171, 172, 173, 174, 346, 293, + 294, 146, 147, 216, 317, 502, 547, 548, 573, 574, + 567, 578, 597, 608, 480, 481, 619, 630, 251, 342, + 253, 610, 654, 634, 659, 660, 444, 517, 521, 522, + 560, 261, 262, 368, 451, 96, 97, 98, 99, 254, + 482, 182, 114, 201, 202, 128, 375, 376, 456, 370, + 115, 266, 187, 149, 150, 360, 255, 176, 241, 242, + 243, 177, 295, 352, 179, 225, 226, 465, 433, 508, + 509, 499, 500, 297, 298, 299, 300, 301, 397, 398, + 302, 303, 304, 305, 382, 306, 470, 411, 307, 308, + 309, 310, 383, 466, 467, 311, 662, 312, 130, 119, + 492, 20, 313 }; static const short yypact[] = {-32768, - -28, 224, 372, 1343,-32768,-32768,-32768, 132,-32768,-32768, --32768, 48,-32768,-32768,-32768, 132, 105,-32768,-32768, 49, - 2880,-32768, 227, 2880,-32768, 17,-32768,-32768,-32768,-32768, + -25, 136, 368, 1350,-32768,-32768,-32768, 181,-32768,-32768, +-32768, 94,-32768,-32768,-32768, 181, 110,-32768,-32768, 33, + 2903,-32768, 182, 2903,-32768, 17,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, -11,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 2903,-32768, 2903,-32768, 181,-32768,-32768, + 108,-32768,-32768,-32768,-32768, 181, 181,-32768,-32768, 2903, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 161,-32768,-32768,-32768,-32768, --32768,-32768, 2880,-32768, 2880,-32768, 132,-32768,-32768, 221, --32768,-32768,-32768,-32768, 132, 132,-32768,-32768, 2880,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2880, --32768,-32768,-32768,-32768,-32768, 1065,-32768, 2880, 396, 247, - 270, 280,-32768, 224, 311,-32768,-32768, 372, 1147,-32768, - 310, 265,-32768,-32768, 343,-32768, 132, 345, 396, 209, - 246, 264,-32768, 1437,-32768, 396, 340,-32768, 346,-32768, - 378,-32768, 346,-32768, 346, 396, 1241, 1241, 396,-32768, --32768, 396, 396,-32768, 123,-32768, 118, 198, 294,-32768, --32768,-32768,-32768,-32768, 132, 431,-32768,-32768,-32768, 416, - 132,-32768,-32768, 132, 488,-32768,-32768, 423, 2880, 427, - 442, 444,-32768, 462, 417,-32768, 416, 466,-32768,-32768, - 499, 2880, 502, 2302, 149, 484, 501, 512, 428, 429, --32768,-32768,-32768,-32768,-32768, 396, 156, 509, 2396, 504, - 507, 165,-32768,-32768,-32768,-32768,-32768, 198, 294, 89, - 112,-32768, 396, 3134, 1824, 1920, 3009,-32768, 2016,-32768, --32768, 1147,-32768, 500, 33,-32768,-32768, 416, 132, 132, - 416, 516, 437, 462,-32768, 1147, 1147, 462, 1730,-32768, - 329,-32768, 239, 93,-32768,-32768, 538,-32768,-32768, 513, --32768, 517, 379,-32768,-32768,-32768,-32768, 533, 534, 523, --32768,-32768,-32768,-32768, 526, 2880, 522, 532,-32768,-32768, - 2880, 2880,-32768, 1824,-32768,-32768,-32768, 3134, 3036,-32768, - 343,-32768,-32768,-32768,-32768, 555, 3134, 556,-32768, 559, - 560,-32768,-32768, 412,-32768, 558,-32768, 121, 557,-32768, - 436, 438, 438, 540, 761,-32768,-32768, 290,-32768,-32768, --32768, 563, 567, 568, 542,-32768, 396,-32768, 541,-32768, - 544,-32768, 546, 547, 562,-32768,-32768, 566, 549,-32768, --32768, 93,-32768, 574,-32768, 444, 417,-32768, 417, 329, - 550, 128, 2112,-32768, 564,-32768,-32768,-32768,-32768,-32768, - 575,-32768,-32768, 2490, 379, 1634,-32768, 198, 376,-32768, - 34, 34,-32768,-32768, 396, 579, 570, 565, 578,-32768, - 587, 2396, 396, 2591,-32768, 2692, 576, 159, 583,-32768, - 393, 221, 3134, 21, 3134, 1018, 760,-32768, 463, 3134, - 557, 557,-32768,-32768, 288, 436, 436, 295, 295, 132, - 3077, 132, 132,-32768,-32768,-32768, 132,-32768, 438,-32768, - 3134,-32768, 3134,-32768,-32768,-32768, 211,-32768,-32768,-32768, --32768,-32768,-32768, 582, 588, 571,-32768,-32768,-32768, 586, - 132,-32768,-32768, 1824,-32768,-32768, 376, 434, 2208,-32768, --32768, 373,-32768,-32768, 34, 34,-32768,-32768, 561,-32768, --32768,-32768,-32768,-32768, 249,-32768,-32768,-32768,-32768,-32768, --32768, 132, 594, 3134, 596,-32768, 595, 558, 419, 3134, - 598, 625, 599, 601, 603,-32768,-32768, 2880, 425,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 288,-32768, --32768,-32768, 20,-32768,-32768,-32768, 295, 606,-32768, 445, - -7,-32768,-32768,-32768, 617,-32768, 619, 614,-32768, 613, --32768, 611, 642, 472,-32768, 1538,-32768,-32768,-32768, 615, --32768,-32768, 396, -7,-32768, 132,-32768, 221, 2786, 3134, --32768, 28, 3134,-32768,-32768,-32768,-32768, 889,-32768,-32768, --32768,-32768,-32768, 221, 2880,-32768, 605,-32768, 132, 132, - 597,-32768,-32768, 132, 648,-32768,-32768, 396, 637,-32768, --32768, 605,-32768,-32768, 2880,-32768,-32768, 558, 3134, 622, --32768, 277,-32768, 115, 396, 3134, 572,-32768,-32768, 572, --32768,-32768,-32768, 650, 572,-32768, 558,-32768,-32768, 221, - 2880, 3134, 282, 654, 3134, 607, 620, 3134, 607,-32768, - 616,-32768,-32768,-32768, 659, 631, 623, 635, 623, 641, - 623, 3134,-32768, 672, 673, 334, 3134, 633, 192, 647, --32768, 633,-32768,-32768,-32768,-32768, 676, 3134, 649, 192, - 677, 187,-32768, 678, 656,-32768, 657,-32768, 684,-32768, - 65,-32768, 200, 192,-32768, 245, 668,-32768,-32768, 192, --32768,-32768, 709,-32768, 189, 189,-32768, 451, 730,-32768, - 725,-32768,-32768, 726,-32768, 47, 189,-32768, 250, 309, - 335,-32768, 730,-32768,-32768, 452,-32768, 464,-32768,-32768, - 739, 740,-32768 + 2903,-32768,-32768,-32768,-32768,-32768, 399,-32768, 2903, 408, + 155, 192, 205,-32768, 136, 204,-32768,-32768, 368, 1152, +-32768, 233, 223,-32768,-32768, 266,-32768, 181, 305, 408, + 211, 235, 264,-32768, 1445,-32768, 408, 339,-32768, 347, +-32768, 377,-32768, 347,-32768, 347, 408, 1247, 1247, 408, +-32768,-32768, 408, 408,-32768, 196,-32768, 259, 322, 409, +-32768,-32768,-32768,-32768,-32768, 181, 387,-32768,-32768,-32768, + 386, 181,-32768,-32768, 181, 534,-32768,-32768, 403, 2903, + 410, 445, 453,-32768, 360, 439,-32768, 386, 474,-32768, +-32768, 496, 2903, 497, 2319, 239, 470, 486, 492, 401, + 404,-32768,-32768,-32768,-32768,-32768, 408, 282, 493, 2414, + 488, 494, 288,-32768,-32768,-32768,-32768,-32768, 322, 409, + 121, 141,-32768, 408, 3200, 1836, 1933, 3059,-32768, 2030, +-32768,-32768, 1152,-32768, 499, 122,-32768,-32768, 386, 181, + 181, 386, 502, 421, 360,-32768, 1152, 1152, 360, 1741, +-32768, 454,-32768, 328, 80,-32768,-32768, 525,-32768,-32768, + 504,-32768, 507, 380,-32768,-32768,-32768,-32768, 522, 524, + 515,-32768,-32768,-32768,-32768, 518, 2903, 514, 520,-32768, +-32768, 2903, 2903,-32768, 1836,-32768,-32768,-32768, 3200, 3109, +-32768, 266,-32768,-32768,-32768,-32768, 544, 3200, 545,-32768, + 549, 551,-32768,-32768, 3033,-32768, 550,-32768, 114, 3226, +-32768, 374, 382, 382, 535, 193,-32768,-32768, 273,-32768, +-32768,-32768, 555, 560, 562, 536,-32768, 408,-32768, 537, +-32768, 539,-32768, 540, 541, 552,-32768,-32768, 553, 547, +-32768,-32768, 80,-32768, 554,-32768, 453, 439,-32768, 439, + 454, 548, 177, 2127,-32768, 556,-32768,-32768,-32768,-32768, +-32768, 557,-32768,-32768, 2509, 380, 1644,-32768, 322, 469, +-32768, 47, 47,-32768,-32768, 408, 564, 538, 561, 559, +-32768, 569, 2414, 408, 2611,-32768, 2713, 558, 36, 565, +-32768, 293, 108, 3200, 10, 3200, 1022, 762,-32768, 220, + 3200, 3226, 3226,-32768,-32768, 268, 374, 374, 275, 275, + 181, 3150, 181, 181,-32768,-32768,-32768, 181,-32768, 382, +-32768, 3200,-32768, 3200,-32768,-32768,-32768, 314,-32768,-32768, +-32768,-32768,-32768,-32768, 563, 568, 566,-32768,-32768,-32768, + 573, 181,-32768,-32768, 1836,-32768,-32768, 469, 354, 2224, +-32768,-32768, 165,-32768,-32768, 47, 47,-32768,-32768, 530, +-32768,-32768,-32768,-32768,-32768, 317,-32768,-32768,-32768,-32768, +-32768,-32768, 181, 567, 3200, 570,-32768, 572, 550, 362, + 3200, 579, 581, 575, 577, 578,-32768,-32768, 2903, 384, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 268, +-32768,-32768,-32768, 157,-32768,-32768,-32768, 275, 583,-32768, + 397, -8,-32768,-32768,-32768, 574,-32768, 590, 591,-32768, + 571,-32768, 587, 592, 363,-32768, 1547,-32768,-32768,-32768, + 594,-32768,-32768, 408, -8,-32768, 181,-32768, 108, 2808, + 3200,-32768, 28, 3200,-32768,-32768,-32768,-32768, 892,-32768, +-32768,-32768,-32768,-32768, 108, 2903,-32768, 582,-32768, 181, + 181, 576,-32768,-32768, 181, 593,-32768,-32768, 408, 605, +-32768,-32768, 582,-32768,-32768, 2903,-32768,-32768, 550, 3200, + 600,-32768, 331,-32768, 103, 408, 3200, 521,-32768,-32768, + 521,-32768,-32768,-32768, 629, 521,-32768, 550,-32768,-32768, + 108, 2903, 3200, 336, 634, 3200, 584, 597, 3200, 584, +-32768, 601,-32768,-32768,-32768, 639, 632, 596, 615, 596, + 613, 596, 3200,-32768, 644, 648, 337, 3200, 608, 49, + 623,-32768, 608,-32768,-32768,-32768,-32768, 652, 3200, 625, + 49, 651, 50,-32768, 653, 631,-32768, 627,-32768, 658, +-32768, 63,-32768, 272, 49,-32768, 208, 642,-32768,-32768, + 49,-32768,-32768, 660,-32768, 222, 222,-32768, 419, 666, +-32768, 661,-32768,-32768, 668,-32768, 41, 222,-32768, 316, + 432, 468,-32768, 666,-32768,-32768, 426,-32768, 430,-32768, +-32768, 670, 676,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768,-32768,-32768, 655,-32768,-32768, 741, 743,-32768, --32768,-32768, 371, 748,-32768,-32768, 621, 629, 640,-32768, - -120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 661,-32768, - -6,-32768, 651,-32768, 545,-32768, 539, 537,-32768,-32768, - 552, -114, 573, -179,-32768, 316,-32768, -434,-32768, 188, - -522, 215, -77, 180, 178, 255, -420, 166,-32768, -165, --32768,-32768, -406,-32768, -251, -288, -326,-32768,-32768,-32768, --32768,-32768, 432,-32768,-32768, -76,-32768,-32768,-32768, -3, - -18,-32768, 45,-32768,-32768, 440, 524, -79,-32768,-32768, - 63,-32768, -93, -135, 369, 443, -174, 287, -189, -212, - -101, 569, -32, -257, 643, -137,-32768, 580,-32768,-32768, --32768, -532, -201, -254,-32768, 137, -95, 508,-32768,-32768, - -282, 505,-32768,-32768, 515, -264, -173,-32768,-32768, -243, --32768, -297,-32768,-32768, 278, 7, -23, -38, 455, 694, - -373, 15, 577 +-32768,-32768,-32768,-32768, 595,-32768,-32768, 678, 677,-32768, +-32768,-32768, 307, 679,-32768,-32768, 610, 612, 616,-32768, + -121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 580,-32768, + -6,-32768, 585,-32768, 461,-32768, 451, 452,-32768,-32768, + 471, -108, 478, -188,-32768, 232,-32768, -458,-32768, 127, + -473, 175, -169, 142, 137, 206, -206, 120,-32768, -180, +-32768,-32768, -507,-32768, -190, -230, -318,-32768,-32768,-32768, +-32768,-32768, 381,-32768,-32768, -89,-32768,-32768,-32768, -3, + -18,-32768, 32,-32768,-32768, 407, 476, 68,-32768,-32768, + 56,-32768, -93, -127, 344, 398, -187, 257, -182, -213, + -101, 511, 30, -267, 603, -137,-32768, 586,-32768,-32768, +-32768, -531, -204, -254,-32768, 105, -46, 466,-32768,-32768, + -278, 455,-32768,-32768, 472, -265, -205,-32768,-32768, -372, +-32768, -303,-32768,-32768, 242, 7, -23, -38, 423, 656, + -377, 19, 531 }; -#define YYLAST 3247 - - -static const short yytable[] = { 117, - 99, 102, 112, 195, 185, 147, 208, 210, 15, 19, - 412, 197, 295, 179, 15, 295, 394, 111, 251, 140, - 119, 202, 19, 378, 270, 340, 342, 274, 2, 116, - 106, 131, 384, 496, 390, 444, 388, 398, 399, 244, - 441, 390, 586, 594, 335, 207, 218, 220, 100, 669, - 319, 530, 544, 323, 103, 541, 326, 509, 109, 125, - 150, 126, 605, 360, 327, 610, 101, 442, 601, 179, - 642, 650, 644, 128, 425, 136, 177, 380, 569, 104, - 150, 128, 128, 672, 627, 3, 139, 150, 525, 562, - 329, 370, 380, 332, 141, 639, 545, 150, 216, 217, - 150, 651, 262, 150, 150, 174, 218, 220, 218, 220, - 15, 107, 487, -55, 19, 349, 580, 358, 517, 518, - 99, 219, 217, 116, -101, 275, 179, 350, 468, 212, - 470, 483, 231, 99, 99, 484, 108, 343, 217, 344, - 179, 179, 340, 342, 497, 591, 468, 179, 276, -101, - 214, 9, 563, 391, 213, 255, 10, 150, 468, 392, - 592, 19, 263, 247, 428, 234, 346, 226, 100, 221, - 227, 273, 390, 434, 150, 578, 579, 430, 111, 436, - 213, 100, 100, 471, 474, 482, 101, 213, 620, 177, - 622, 655, 642, 643, 644, 461, 213, 270, 656, 101, - 101, 630, 417, 177, 177, 395, 540, 216, 217, 630, - 177, 317, 632, 631, 150, 532, 631, 502, 174, 208, - 210, 645, 123, 641, 631, 340, 8, 493, 282, 283, - 284, 285, 174, 174, 652, 330, 331, 654, 344, 500, - 344, 158, 213, 9, 159, 130, 9, 655, 10, 160, - 161, 115, 162, 151, 656, 522, 218, 440, 9, 656, - 163, 584, 527, 10, 164, 165, 11, 373, 373, 631, - 317, 262, 166, 512, 631, 568, 152, 167, 150, 456, - 523, 657, 153, 589, 282, 283, 284, 285, 603, 282, - 283, 284, 285, 168, 458, 182, 458, 278, 279, 411, - 488, 489, 208, 219, 217, 401, 402, 9, 590, 163, - 280, 655, 281, 213, 587, 180, 150, 150, 656, 187, - 403, 166, 404, 405, 406, 407, 150, 282, 283, 284, - 285, 570, 408, 631, 150, 440, 482, 655, 343, 217, - 626, 286, 155, 467, 656, 675, 288, 156, 282, 283, - 284, 285, -404, 64, 184, 66, 188, 68, 69, 631, - 189, 71, 72, 73, 74, 538, 665, 666, 77, 78, - 373, 677, 373, 198, 282, 283, 284, 285, 673, -247, - 674, 16, 473, 111, 355, 439, 217, 199, 356, 217, - 602, 9, 9, 289, 290, 557, 10, 10, 357, 150, - 291, 142, 660, 130, 482, 143, 490, 513, 494, 495, - 623, 660, 660, 490, 158, 144, 326, 159, 676, 678, - 130, 278, 279, 660, 327, 660, 660, 660, 463, 561, - 317, 9, 280, 163, 349, 515, 281, 490, 158, 438, - 222, 159, 223, 356, 217, 166, 350, 278, 15, 233, - 530, 282, 283, 284, 285, 531, 538, 9, 130, 537, - 593, 539, 281, 235, 583, 286, 287, 238, 490, 243, - 288, 239, 217, 236, 111, 237, 530, 282, 283, 284, - 285, 543, 667, 667, 150, 349, 326, 668, 679, 467, - 158, 286, 245, 159, 327, 667, 288, 350, 228, 229, - 680, 162, 597, 554, 246, 574, 555, 599, 248, 163, - 209, 211, 558, 230, 132, 134, 214, 289, 290, 150, - 256, 166, 337, 339, 291, 567, 167, 485, 486, 133, - 135, 257, 490, 264, 111, 325, 150, 271, 258, 259, - 272, 575, 333, 289, 290, 352, 334, 581, 354, 353, - 291, 574, 363, 364, 365, 490, 490, 368, 371, 158, - 15, 567, 159, 372, 383, 385, 278, 279, 386, 387, - 400, 390, 413, 414, 415, 416, 9, 418, 163, 419, - 635, 281, 420, 421, 424, 448, 427, 567, 422, 451, - 166, 635, 423, 453, 431, 634, 282, 283, 284, 285, - 426, 433, 111, 449, 635, 635, 634, 662, 503, 460, - 286, 635, 452, 462, 504, 288, 662, 662, 519, 634, - 634, 505, 506, 664, 526, 529, 634, 528, 662, 533, - 662, 662, 662, 158, -405, 534, 159, 535, 21, 536, - 278, 279, 542, 548, 549, 550, 551, 552, 553, 560, - 472, 280, 163, 576, 582, 281, 544, 280, 588, 598, - 604, 612, 289, 290, 166, 613, 608, 606, 619, 291, - 282, 283, 284, 285, 617, 614, 595, 621, 624, 625, - 628, 636, 638, 640, 286, 287, -406, 646, 647, 288, - 649, 648, 663, 615, 476, 477, 478, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 644, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 110, 57, 58, - 59, 60, 669, 61, 670, 671, 289, 290, 682, 683, - 138, 7, 454, 291, 192, 64, 84, 66, 67, 68, - 69, 86, 193, 71, 72, 73, 74, 75, 157, 76, - 77, 78, 158, 194, 154, 159, 324, 21, 321, 278, - 279, 401, 402, 338, 336, 524, 585, 600, 611, 472, - 280, 163, 163, 616, 281, 277, 403, 637, 404, 405, - 406, 407, 571, 166, 166, 376, 447, 437, 408, 282, - 283, 284, 285, 475, 328, 564, 393, 232, 389, 409, - 183, 347, 0, 286, 287, 0, 0, 0, 288, 348, - 0, 0, 0, 476, 477, 478, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 0, 61, 0, 0, 289, 290, 0, 0, 0, - 0, 0, 291, 0, 64, 0, 66, 67, 68, 69, - 0, 0, 71, 72, 73, 74, 75, 0, 76, 77, - 78, 158, 0, 0, 159, 0, 21, 0, 278, 279, - 0, 0, 0, 0, 0, 0, 0, 0, 472, 280, - 163, 0, 0, 281, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 0, 0, 0, 0, 0, 282, 283, - 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 286, 287, 0, 0, 0, 288, 0, 0, - 0, 0, 476, 477, 478, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 110, 57, 58, 59, 60, - 0, 61, 0, 0, 289, 290, 0, 0, 0, 0, - 0, 291, 0, 64, 0, 66, 67, 68, 69, 0, - 0, 71, 72, 73, 74, 75, 0, 76, 77, 78, - 158, 0, 0, 159, 0, 21, 0, 278, 279, 0, - 0, 0, 0, 0, 0, 0, 0, 472, 280, 163, - 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, - 0, 166, 0, 0, 0, 0, 0, 282, 283, 284, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 286, 287, 0, 0, 0, 288, 0, 0, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 110, 57, 58, 59, 60, 0, - 61, 0, 0, 289, 290, 0, 0, 0, 0, 0, - 291, 0, 64, 0, 66, 67, 68, 69, 0, 0, - 71, 72, 73, 74, 75, 0, 76, 77, 78, 158, - 0, 0, 159, 0, 21, 0, 0, 160, 161, 0, - 162, 0, 0, 0, 0, 0, 22, 0, 163, 0, - 0, 0, 164, 165, 0, 0, 0, 0, 0, 64, - 166, 66, 0, 68, 69, 167, 0, 71, 72, 73, - 74, 0, 0, 0, 77, 78, 0, 0, 0, 0, - 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 169, 27, 28, 29, 30, 31, 32, 33, +#define YYLAST 3340 + + +static const short yytable[] = { 118, + 100, 103, 113, 196, 252, 413, 148, 141, 15, 19, + 296, 186, 271, 296, 15, 209, 211, 112, 198, 275, + 120, 395, 19, 391, 379, 341, 343, 389, 203, 117, + 497, 2, 132, 385, 107, 101, 320, 399, 400, 324, + 245, 391, 110, 670, 445, 595, 208, 219, 221, 391, + 124, 545, 336, 442, 510, 643, 644, 645, 631, 102, + 126, 151, 127, 180, 606, 426, 563, 611, 643, 651, + 645, 361, 462, 632, 129, 381, 137, 673, 570, 371, + 443, 151, 129, 129, 646, 526, 628, 140, 151, 3, + 381, 330, 587, 581, 333, 142, 546, 640, 151, 652, + 104, 151, 350, 263, 151, 151, 175, 219, 221, 219, + 221, 15, 633, -55, 351, 19, 108, 488, 602, 180, + 471, 100, 484, 642, 117, 105, 359, 518, 519, 469, + 217, 218, 131, 592, 100, 100, 485, 655, 8, 178, + 345, 109, 341, 343, 498, 327, 392, 469, 593, 564, + 220, 218, 393, 328, 347, 9, 101, 276, 151, 469, + 10, 152, 19, 431, 248, 435, 235, 437, 227, 101, + 101, 228, 579, 580, 222, 151, 180, 277, 11, 112, + 102, 472, 475, 483, 9, 271, 344, 218, 531, 10, + 180, 180, 542, 102, 102, 232, 494, 180, 153, 514, + 9, 9, 213, 402, 403, 10, 116, 154, 501, 418, + 656, 541, 318, 429, 164, 151, 533, 657, 404, 175, + 405, 406, 407, 408, 656, 341, 167, 214, 209, 211, + 409, 657, 632, 175, 175, 156, 331, 332, 181, 345, + 157, 345, 350, 327, 658, 256, 632, 283, 284, 285, + 286, 328, 178, 183, 351, 396, 585, 219, 441, 513, + 528, 283, 284, 285, 286, -101, 178, 178, 374, 374, + 214, 318, 263, 178, 661, -405, 569, 279, 280, 151, + 457, 631, 412, 661, 661, 402, 403, 9, 264, 164, + -101, 215, 282, 281, 274, 661, 632, 661, 661, 661, + 404, 167, 405, 406, 407, 408, 653, 283, 284, 285, + 286, 209, 409, 214, 185, 588, 327, 151, 151, 214, + 503, 287, 188, 523, 328, 657, 289, 151, 464, 571, + 159, 217, 218, 160, 483, 151, 441, 590, 161, 162, + 632, 163, 604, 627, 468, 214, 189, 9, 524, 164, + 489, 490, 10, 165, 166, 283, 284, 285, 286, 439, + 190, 167, 591, 357, 218, 239, 168, 214, 539, 240, + 218, 374, 199, 374, 290, 291, 159, 16, 131, 160, + -248, 292, 169, 474, 112, 356, 200, 9, 603, 357, + 218, 279, 10, 531, 555, 558, 223, 556, 532, 358, + 151, 9, 483, 621, 131, 623, 282, 491, 624, 495, + 496, 598, 224, 143, 491, 539, 600, 144, 220, 218, + 540, 283, 284, 285, 286, 666, 667, 145, 531, 234, + 562, 318, 131, 544, 656, 287, 516, 674, 491, 675, + 289, 657, 459, 65, 459, 67, 236, 69, 70, 15, + 668, 72, 73, 74, 75, 669, 632, 668, 78, 79, + 538, 668, 680, 344, 218, 584, 681, 594, 676, 491, + 656, 283, 284, 285, 286, 112, 237, 657, 440, 218, + 677, 679, 133, 135, 238, 151, 210, 212, 290, 291, + 468, 244, 632, 338, 340, 292, 486, 487, 134, 136, + 246, 247, 215, 249, 678, 257, 575, 283, 284, 285, + 286, 258, 259, 559, 65, 260, 67, 265, 69, 70, + 151, 272, 72, 73, 74, 75, 568, 273, 334, 78, + 79, 335, 353, 491, 326, 112, 159, 151, 355, 160, + 354, 364, 576, 365, 229, 230, 366, 163, 582, 369, + 372, 373, 575, 384, 386, 164, 491, 491, 387, 231, + 388, 15, 568, 391, 414, 401, 415, 167, 416, 417, + 449, 450, 168, 419, 420, 454, 421, 422, 423, 424, + 427, 636, 425, 434, 428, 452, 432, 520, 568, 504, + -406, 461, 636, 453, 505, 463, 635, 527, 554, 583, + 549, 529, 530, 112, 552, 636, 636, 635, 663, 507, + 534, 535, 636, 536, 537, 550, 506, 663, 663, 543, + 635, 635, 551, 553, 665, 281, 596, 635, 561, 663, + 577, 663, 663, 663, 159, 545, 589, 160, 599, 21, + 605, 279, 280, 609, 607, 614, 613, 618, 620, 622, + 625, 473, 281, 164, 626, 629, 282, 637, 639, 641, + -407, 649, 647, 648, 650, 167, 664, 645, 670, 683, + 671, 283, 284, 285, 286, 684, 615, 672, 7, 455, + 85, 139, 87, 325, 155, 287, 288, 337, 322, 339, + 289, 278, 525, 158, 616, 477, 478, 479, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 601, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 193, 62, 194, 586, 290, 291, + 195, 612, 638, 617, 572, 292, 448, 65, 377, 67, + 68, 69, 70, 438, 348, 72, 73, 74, 75, 76, + 410, 77, 78, 79, 159, 394, 390, 160, 233, 21, + 565, 279, 280, 184, 349, 0, 0, 0, 0, 0, + 0, 473, 281, 164, 0, 0, 282, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 0, 283, 284, 285, 286, 476, 0, 0, 0, 0, + 0, 329, 0, 0, 0, 287, 288, 0, 0, 0, + 289, 0, 0, 0, 0, 477, 478, 479, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 0, 62, 0, 0, 290, 291, + 0, 0, 0, 0, 0, 292, 0, 65, 0, 67, + 68, 69, 70, 0, 0, 72, 73, 74, 75, 76, + 0, 77, 78, 79, 159, 0, 0, 160, 0, 21, + 0, 279, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 473, 281, 164, 0, 0, 282, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 0, 283, 284, 285, 286, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 287, 288, 0, 0, 0, + 289, 0, 0, 0, 0, 477, 478, 479, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 0, 62, 0, 0, 290, 291, + 0, 0, 0, 0, 0, 292, 0, 65, 0, 67, + 68, 69, 70, 0, 0, 72, 73, 74, 75, 76, + 0, 77, 78, 79, 159, 0, 0, 160, 0, 21, + 0, 279, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 473, 281, 164, 0, 0, 282, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 0, 283, 284, 285, 286, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 287, 288, 0, 0, 0, + 289, 0, 0, 0, 0, 0, 0, 0, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 0, 62, 0, 0, 290, 291, + 0, 0, 0, 0, 0, 292, 0, 65, 0, 67, + 68, 69, 70, 0, 0, 72, 73, 74, 75, 76, + 0, 77, 78, 79, 159, 0, 0, 160, 0, 21, + 0, 0, 161, 162, 0, 163, 0, 0, 0, 0, + 0, 22, 0, 164, 0, 0, 0, 165, 166, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 111, 57, + 58, 59, 60, 61, 21, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 22, 65, 0, 67, + 68, 69, 70, 0, 0, 72, 73, 74, 75, 76, + 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 0, 24, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 26, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 110, 57, 58, 59, 60, 21, 61, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, + 62, 0, 0, 0, 0, 63, 0, 21, 0, 64, + 0, 3, 65, 66, 67, 68, 69, 70, 71, 22, + 72, 73, 74, 75, 76, 0, 77, 78, 79, 80, + 81, 82, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 23, 0, 24, + 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, + 0, 26, 0, 0, 0, 0, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 21, 62, 0, 0, 0, 0, 63, 0, + 0, 0, 64, 0, 22, 65, 66, 67, 68, 69, + 70, 71, 0, 72, 73, 74, 75, 76, 0, 77, + 78, 79, 80, 81, 82, 83, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 0, 62, 0, + 0, 0, 0, 0, 21, 0, 0, 64, 0, 0, + 65, 66, 67, 68, 69, 70, 22, 0, 72, 73, + 74, 75, 76, 0, 77, 78, 79, 80, 81, 82, + 83, 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 22, 64, 0, 66, 67, 68, 69, 0, 0, 71, - 72, 73, 74, 75, 0, 76, 77, 78, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, - 24, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 0, 61, 0, 0, 0, 0, 62, 0, - 21, 0, 63, 0, 3, 64, 65, 66, 67, 68, - 69, 70, 22, 71, 72, 73, 74, 75, 0, 76, - 77, 78, 79, 80, 81, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 23, 0, 24, 0, 0, 0, 0, 0, 25, 0, - 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 21, 61, 0, 0, 0, 0, - 62, 0, 0, 0, 63, 0, 22, 64, 65, 66, - 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, - 0, 76, 77, 78, 79, 80, 81, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 0, 61, - 0, 0, 0, 0, 0, 21, 0, 0, 63, 0, - 0, 64, 65, 66, 67, 68, 69, 22, 0, 71, - 72, 73, 74, 75, 0, 76, 77, 78, 79, 80, - 81, 82, 556, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 110, 57, 58, 59, 60, 438, - 61, 21, 0, 356, 217, 0, 0, 0, 0, 0, - 0, 0, 64, 22, 66, 67, 68, 69, 130, 0, - 71, 72, 73, 74, 75, 0, 76, 77, 78, 0, - 80, 81, 82, 0, 0, 0, 0, 0, 0, 0, + 53, 54, 55, 111, 57, 58, 59, 60, 61, 439, + 62, 21, 0, 357, 218, 0, 0, 0, 0, 0, + 0, 0, 65, 22, 67, 68, 69, 70, 131, 0, + 72, 73, 74, 75, 76, 0, 77, 78, 79, 0, + 81, 82, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 110, 57, 58, 59, 60, 238, 61, 21, 0, 239, - 217, 0, 0, 0, 0, 0, 0, 0, 64, 22, - 66, 67, 68, 69, 0, 0, 71, 72, 73, 74, - 75, 249, 76, 77, 78, 0, 0, 0, 0, 0, + 111, 57, 58, 59, 60, 61, 239, 62, 21, 0, + 240, 218, 0, 0, 0, 0, 0, 0, 0, 65, + 22, 67, 68, 69, 70, 0, 0, 72, 73, 74, + 75, 76, 250, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 21, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 64, 0, 66, 67, 68, 69, - 0, 0, 71, 72, 73, 74, 75, 249, 76, 77, - 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 111, 57, 58, + 59, 60, 61, 21, 62, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 22, 65, 0, 67, 68, + 69, 70, 0, 0, 72, 73, 74, 75, 76, 250, + 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, + 315, 0, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 111, 57, 58, 59, 60, 61, 0, 62, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 22, 67, 68, 69, 70, 0, 0, 72, + 73, 74, 75, 76, 0, 77, 78, 79, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 314, 0, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 110, 57, 58, 59, 60, 0, 61, 21, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 22, - 66, 67, 68, 69, 0, 0, 71, 72, 73, 74, - 75, 0, 76, 77, 78, 0, 318, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 111, + 57, 58, 59, 60, 61, 0, 62, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 22, + 67, 68, 69, 70, 0, 0, 72, 73, 74, 75, + 76, 250, 77, 78, 79, 0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 0, 61, 21, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 22, 66, 67, 68, 69, - 0, 0, 71, 72, 73, 74, 75, 249, 76, 77, - 78, 0, 322, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 110, 57, 58, 59, 60, 0, 61, 21, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 22, 66, 67, 68, 69, 0, 0, 71, 72, - 73, 74, 75, 249, 76, 77, 78, 0, 429, 0, + 50, 51, 52, 53, 54, 55, 111, 57, 58, 59, + 60, 61, 0, 62, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 22, 67, 68, 69, + 70, 0, 0, 72, 73, 74, 75, 76, 250, 77, + 78, 79, 0, 430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 110, 57, - 58, 59, 60, 0, 61, 21, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 22, 66, 67, - 68, 69, 0, 0, 71, 72, 73, 74, 75, 249, - 76, 77, 78, 0, 511, 0, 0, 0, 0, 0, + 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 0, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 111, 57, 58, 59, 60, 61, 0, + 62, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 22, 67, 68, 69, 70, 0, 0, + 72, 73, 74, 75, 76, 250, 77, 78, 79, 0, + 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 110, 57, 58, 59, 60, 21, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 22, 64, 0, 66, 67, 68, 69, 0, 0, - 71, 72, 73, 74, 75, 249, 76, 77, 78, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 111, 57, 58, 59, 60, 61, 21, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 65, + 0, 67, 68, 69, 70, 0, 0, 72, 73, 74, + 75, 76, 250, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 110, 57, - 58, 59, 60, 21, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 22, 64, 0, 66, 67, - 68, 69, 0, 0, 71, 72, 73, 74, 75, 249, - 76, 77, 78, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 111, 57, 58, 59, 60, + 61, 21, 62, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 22, 65, 0, 67, 68, 69, 70, + 0, 0, 72, 73, 74, 75, 76, 250, 77, 78, + 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 110, 57, 58, 59, 60, 21, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, - 64, 0, 66, 67, 68, 69, 0, 266, 71, 72, - 73, 74, 75, 0, 76, 77, 78, 0, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 111, 57, 58, 59, 60, 61, 21, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 65, + 0, 67, 68, 69, 70, 0, 267, 72, 73, 74, + 75, 76, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 0, 61, 0, 0, 0, 0, 0, 21, 0, - 0, 0, 0, 0, 64, 0, 66, 67, 68, 69, - 22, 0, 71, 72, 73, 74, 75, 435, 76, 77, - 78, 0, 0, 0, 0, 457, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 111, 57, 58, 59, 60, + 61, 0, 62, 0, 0, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 65, 0, 67, 68, 69, 70, + 22, 0, 72, 73, 74, 75, 76, 436, 77, 78, + 79, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 110, 57, 58, - 59, 60, 0, 61, 0, 0, 0, 0, 0, 21, - 0, 0, 0, 0, 0, 64, 0, 66, 67, 68, - 69, 22, 0, 71, 72, 73, 74, 75, 0, 76, - 77, 78, 0, 0, 0, 0, 459, 0, 0, 0, + 49, 50, 51, 52, 53, 54, 55, 111, 57, 58, + 59, 60, 61, 0, 62, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 0, 0, 65, 0, 67, 68, + 69, 70, 22, 0, 72, 73, 74, 75, 76, 0, + 77, 78, 79, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 0, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 110, 57, - 58, 59, 60, 21, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 22, 64, 0, 66, 67, - 68, 69, 0, 0, 71, 72, 73, 74, 75, 0, - 76, 77, 78, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 111, + 57, 58, 59, 60, 61, 21, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 22, 65, 0, + 67, 68, 69, 70, 0, 0, 72, 73, 74, 75, + 76, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 565, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 0, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 110, 57, 58, 59, 60, 21, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, - 64, 0, 66, 67, 68, 69, 0, 0, 71, 72, - 73, 74, 75, 0, 76, 77, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 566, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 0, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 111, 57, 58, 59, 60, 61, + 21, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 65, 0, 67, 68, 69, 70, 0, + 0, 72, 73, 74, 75, 76, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 0, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 110, 57, 58, 59, - 60, 0, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 0, 66, 67, 68, 69, - 0, 0, 71, 72, 73, 74, 75, 0, 76, 77, - 78, 158, 0, 0, 159, 0, 0, 0, 278, 279, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 280, - 163, 0, 0, 281, 0, 0, 0, 0, 158, 0, - 0, 159, 166, 0, 320, 278, 279, 0, 282, 283, - 284, 285, 0, 0, 0, 9, 280, 163, 0, 0, - 281, 0, 286, 287, 0, 0, 0, 288, 0, 166, - 0, 379, 0, 0, 0, 282, 283, 284, 285, 158, - 0, 0, 159, 0, 0, 0, 278, 279, 0, 286, - 287, 0, 0, 0, 288, 0, 9, 280, 163, 0, - 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 0, 492, 0, 289, 290, 282, 283, 284, 285, - 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 287, 0, 0, 0, 288, 158, 0, 0, 159, - 0, 289, 290, 278, 279, 0, 0, 0, 291, 0, - 0, 0, 0, 9, 280, 163, 0, 0, 281, 0, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 282, 283, 284, 285, 0, 0, 0, - 0, 0, 289, 290, 0, 0, 0, 286, 287, 291, - 0, 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 0, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 111, + 57, 58, 59, 60, 61, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, + 67, 68, 69, 70, 0, 0, 72, 73, 74, 75, + 76, 0, 77, 78, 79, 159, 0, 0, 160, 0, + 0, 0, 279, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 9, 281, 164, 350, 0, 282, 0, 0, + 0, 159, 0, 0, 160, 0, 167, 351, 279, 280, + 0, 0, 283, 284, 285, 286, 0, 0, 9, 281, + 164, 0, 0, 282, 0, 0, 287, 288, 0, 0, + 0, 289, 167, 0, 321, 0, 0, 0, 283, 284, + 285, 286, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 159, 287, 288, 160, 0, 0, 289, 279, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 281, + 164, 0, 0, 282, 0, 0, 0, 0, 0, 290, + 291, 0, 167, 0, 380, 0, 292, 0, 283, 284, + 285, 286, 159, 0, 0, 160, 0, 0, 0, 279, + 280, 0, 287, 288, 0, 290, 291, 289, 0, 9, + 281, 164, 292, 0, 282, 0, 0, 0, 0, 0, + 0, 0, 0, 167, 0, 493, 0, 0, 0, 283, + 284, 285, 286, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 159, 287, 288, 160, 0, 0, 289, 279, + 280, 0, 0, 0, 0, 290, 291, 0, 0, 9, + 281, 164, 292, 0, 282, 0, 0, 0, 159, 0, + 0, 160, 0, 167, 0, 279, 280, 0, 0, 283, + 284, 285, 286, 0, 0, 9, 0, 164, 0, 0, + 282, 0, 0, 287, 288, 0, 290, 291, 289, 167, + 0, 0, 0, 292, 0, 283, 284, 285, 286, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, + 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 290, 291, 0, 0, + 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, - 290, 0, 0, 0, 0, 0, 291 + 0, 0, 290, 291, 0, 0, 0, 0, 0, 292 }; static const short yycheck[] = { 23, - 4, 8, 21, 124, 119, 99, 142, 143, 2, 3, - 308, 126, 214, 109, 8, 217, 299, 21, 184, 96, - 24, 136, 16, 278, 199, 238, 239, 207, 57, 23, - 16, 70, 287, 407, 14, 362, 294, 302, 303, 177, - 7, 14, 565, 576, 234, 139, 148, 149, 4, 3, - 216, 32, 60, 219, 7, 36, 24, 431, 10, 63, - 99, 65, 595, 253, 32, 598, 4, 34, 591, 165, - 6, 7, 8, 67, 332, 79, 109, 279, 51, 32, - 119, 75, 76, 37, 617, 114, 90, 126, 462, 524, - 228, 266, 294, 231, 98, 628, 104, 136, 10, 11, - 139, 37, 196, 142, 143, 109, 208, 209, 210, 211, - 104, 7, 395, 97, 108, 23, 551, 253, 445, 446, - 124, 10, 11, 117, 7, 37, 222, 35, 383, 7, - 110, 389, 165, 137, 138, 390, 32, 10, 11, 241, - 236, 237, 355, 356, 409, 31, 401, 243, 37, 32, - 33, 20, 526, 33, 32, 7, 25, 196, 413, 39, - 46, 155, 7, 182, 37, 169, 243, 161, 124, 155, - 164, 7, 14, 353, 213, 549, 550, 343, 182, 354, - 32, 137, 138, 385, 386, 387, 124, 32, 609, 222, - 611, 3, 6, 7, 8, 37, 32, 372, 10, 137, - 138, 10, 317, 236, 237, 301, 489, 10, 11, 10, - 243, 215, 619, 25, 253, 470, 25, 7, 222, 355, - 356, 35, 62, 630, 25, 438, 3, 401, 40, 41, - 42, 43, 236, 237, 35, 229, 230, 644, 340, 413, - 342, 3, 32, 20, 6, 25, 20, 3, 25, 11, - 12, 25, 14, 7, 10, 7, 358, 359, 20, 10, - 22, 559, 464, 25, 26, 27, 43, 271, 272, 25, - 274, 365, 34, 439, 25, 530, 7, 39, 317, 373, - 32, 37, 3, 7, 40, 41, 42, 43, 7, 40, - 41, 42, 43, 55, 374, 31, 376, 10, 11, 10, - 396, 397, 438, 10, 11, 11, 12, 20, 32, 22, - 21, 3, 25, 32, 569, 6, 355, 356, 10, 111, - 26, 34, 28, 29, 30, 31, 365, 40, 41, 42, - 43, 533, 38, 25, 373, 437, 538, 3, 10, 11, - 7, 54, 32, 382, 10, 37, 59, 37, 40, 41, - 42, 43, 10, 115, 10, 117, 111, 119, 120, 25, - 97, 123, 124, 125, 126, 32, 655, 656, 130, 131, - 374, 37, 376, 34, 40, 41, 42, 43, 667, 34, - 669, 10, 386, 387, 6, 10, 11, 10, 10, 11, - 592, 20, 20, 106, 107, 516, 25, 25, 20, 438, - 113, 6, 646, 25, 606, 10, 400, 35, 402, 403, - 612, 655, 656, 407, 3, 20, 24, 6, 670, 671, - 25, 10, 11, 667, 32, 669, 670, 671, 36, 523, - 434, 20, 21, 22, 23, 442, 25, 431, 3, 6, - 10, 6, 27, 10, 11, 34, 35, 10, 442, 27, - 32, 40, 41, 42, 43, 37, 32, 20, 25, 478, - 575, 37, 25, 37, 558, 54, 55, 6, 462, 53, - 59, 10, 11, 32, 478, 32, 32, 40, 41, 42, - 43, 37, 32, 32, 523, 23, 24, 37, 37, 528, - 3, 54, 27, 6, 32, 32, 59, 35, 11, 12, - 37, 14, 580, 32, 6, 544, 35, 585, 7, 22, - 142, 143, 516, 26, 75, 76, 33, 106, 107, 558, - 20, 34, 236, 237, 113, 529, 39, 391, 392, 75, - 76, 20, 526, 25, 538, 36, 575, 34, 111, 111, - 34, 545, 27, 106, 107, 8, 110, 554, 32, 37, - 113, 590, 20, 20, 32, 549, 550, 32, 37, 3, - 554, 565, 6, 32, 10, 10, 10, 11, 10, 10, - 31, 14, 10, 7, 7, 34, 20, 37, 22, 36, - 619, 25, 37, 37, 36, 7, 37, 591, 27, 25, - 34, 630, 27, 7, 31, 619, 40, 41, 42, 43, - 27, 27, 606, 34, 643, 644, 630, 646, 27, 34, - 54, 650, 35, 31, 27, 59, 655, 656, 58, 643, - 644, 51, 37, 647, 31, 31, 650, 32, 667, 32, - 669, 670, 671, 3, 10, 37, 6, 37, 8, 37, - 10, 11, 37, 27, 26, 32, 34, 37, 7, 35, - 20, 21, 22, 49, 7, 25, 60, 21, 37, 10, - 7, 46, 106, 107, 34, 7, 47, 61, 34, 113, - 40, 41, 42, 43, 52, 45, 105, 37, 7, 7, - 48, 35, 7, 35, 54, 55, 10, 10, 33, 59, - 7, 35, 25, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 8, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 3, 103, 10, 10, 106, 107, 0, 0, - 86, 1, 372, 113, 124, 115, 4, 117, 118, 119, - 120, 4, 124, 123, 124, 125, 126, 127, 108, 129, - 130, 131, 3, 124, 104, 6, 222, 8, 217, 10, - 11, 11, 12, 237, 236, 460, 562, 590, 599, 20, - 21, 22, 22, 606, 25, 213, 26, 622, 28, 29, - 30, 31, 538, 34, 34, 272, 365, 355, 38, 40, - 41, 42, 43, 44, 225, 528, 299, 165, 294, 305, - 117, 243, -1, 54, 55, -1, -1, -1, 59, 243, - -1, -1, -1, 64, 65, 66, 67, 68, 69, 70, + 4, 8, 21, 125, 185, 309, 100, 97, 2, 3, + 215, 120, 200, 218, 8, 143, 144, 21, 127, 208, + 24, 300, 16, 14, 279, 239, 240, 295, 137, 23, + 408, 57, 71, 288, 16, 4, 217, 303, 304, 220, + 178, 14, 10, 3, 363, 577, 140, 149, 150, 14, + 62, 60, 235, 7, 432, 6, 7, 8, 10, 4, + 64, 100, 66, 110, 596, 333, 525, 599, 6, 7, + 8, 254, 37, 25, 68, 280, 80, 37, 51, 267, + 34, 120, 76, 77, 35, 463, 618, 91, 127, 115, + 295, 229, 566, 552, 232, 99, 105, 629, 137, 37, + 7, 140, 23, 197, 143, 144, 110, 209, 210, 211, + 212, 105, 620, 97, 35, 109, 7, 396, 592, 166, + 111, 125, 390, 631, 118, 32, 254, 446, 447, 384, + 10, 11, 25, 31, 138, 139, 391, 645, 3, 110, + 242, 32, 356, 357, 410, 24, 33, 402, 46, 527, + 10, 11, 39, 32, 244, 20, 125, 37, 197, 414, + 25, 7, 156, 344, 183, 354, 170, 355, 162, 138, + 139, 165, 550, 551, 156, 214, 223, 37, 43, 183, + 125, 386, 387, 388, 20, 373, 10, 11, 32, 25, + 237, 238, 36, 138, 139, 166, 402, 244, 7, 35, + 20, 20, 7, 11, 12, 25, 25, 3, 414, 318, + 3, 490, 216, 37, 22, 254, 471, 10, 26, 223, + 28, 29, 30, 31, 3, 439, 34, 32, 356, 357, + 38, 10, 25, 237, 238, 32, 230, 231, 6, 341, + 37, 343, 23, 24, 37, 7, 25, 40, 41, 42, + 43, 32, 223, 31, 35, 302, 560, 359, 360, 440, + 465, 40, 41, 42, 43, 7, 237, 238, 272, 273, + 32, 275, 366, 244, 647, 10, 531, 10, 11, 318, + 374, 10, 10, 656, 657, 11, 12, 20, 7, 22, + 32, 33, 25, 21, 7, 668, 25, 670, 671, 672, + 26, 34, 28, 29, 30, 31, 35, 40, 41, 42, + 43, 439, 38, 32, 10, 570, 24, 356, 357, 32, + 7, 54, 112, 7, 32, 10, 59, 366, 36, 534, + 3, 10, 11, 6, 539, 374, 438, 7, 11, 12, + 25, 14, 7, 7, 383, 32, 112, 20, 32, 22, + 397, 398, 25, 26, 27, 40, 41, 42, 43, 6, + 97, 34, 32, 10, 11, 6, 39, 32, 32, 10, + 11, 375, 34, 377, 107, 108, 3, 10, 25, 6, + 34, 114, 55, 387, 388, 6, 10, 20, 593, 10, + 11, 10, 25, 32, 32, 517, 10, 35, 37, 20, + 439, 20, 607, 610, 25, 612, 25, 401, 613, 403, + 404, 581, 27, 6, 408, 32, 586, 10, 10, 11, + 37, 40, 41, 42, 43, 656, 657, 20, 32, 27, + 524, 435, 25, 37, 3, 54, 443, 668, 432, 670, + 59, 10, 375, 116, 377, 118, 37, 120, 121, 443, + 32, 124, 125, 126, 127, 37, 25, 32, 131, 132, + 479, 32, 37, 10, 11, 559, 37, 576, 37, 463, + 3, 40, 41, 42, 43, 479, 32, 10, 10, 11, + 671, 672, 76, 77, 32, 524, 143, 144, 107, 108, + 529, 53, 25, 237, 238, 114, 392, 393, 76, 77, + 27, 6, 33, 7, 37, 20, 545, 40, 41, 42, + 43, 20, 112, 517, 116, 112, 118, 25, 120, 121, + 559, 34, 124, 125, 126, 127, 530, 34, 27, 131, + 132, 111, 8, 527, 36, 539, 3, 576, 32, 6, + 37, 20, 546, 20, 11, 12, 32, 14, 555, 32, + 37, 32, 591, 10, 10, 22, 550, 551, 10, 26, + 10, 555, 566, 14, 10, 31, 7, 34, 7, 34, + 7, 34, 39, 37, 36, 7, 37, 37, 27, 27, + 27, 620, 36, 27, 37, 25, 31, 58, 592, 27, + 10, 34, 631, 35, 27, 31, 620, 31, 7, 7, + 27, 32, 31, 607, 34, 644, 645, 631, 647, 37, + 32, 37, 651, 37, 37, 26, 51, 656, 657, 37, + 644, 645, 32, 37, 648, 21, 106, 651, 35, 668, + 49, 670, 671, 672, 3, 60, 37, 6, 10, 8, + 7, 10, 11, 47, 61, 7, 46, 52, 34, 37, + 7, 20, 21, 22, 7, 48, 25, 35, 7, 35, + 10, 35, 10, 33, 7, 34, 25, 8, 3, 0, + 10, 40, 41, 42, 43, 0, 45, 10, 1, 373, + 4, 87, 4, 223, 105, 54, 55, 237, 218, 238, + 59, 214, 461, 109, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 591, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 125, 104, 125, 563, 107, 108, + 125, 600, 623, 607, 539, 114, 366, 116, 273, 118, + 119, 120, 121, 356, 244, 124, 125, 126, 127, 128, + 306, 130, 131, 132, 3, 300, 295, 6, 166, 8, + 529, 10, 11, 118, 244, -1, -1, -1, -1, -1, + -1, 20, 21, 22, -1, -1, 25, -1, -1, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + -1, 40, 41, 42, 43, 44, -1, -1, -1, -1, + -1, 226, -1, -1, -1, 54, 55, -1, -1, -1, + 59, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, -1, 104, -1, -1, 107, 108, + -1, -1, -1, -1, -1, 114, -1, 116, -1, 118, + 119, 120, 121, -1, -1, 124, 125, 126, 127, 128, + -1, 130, 131, 132, 3, -1, -1, 6, -1, 8, + -1, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, -1, -1, 25, -1, -1, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 54, 55, -1, -1, -1, + 59, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, -1, 104, -1, -1, 107, 108, + -1, -1, -1, -1, -1, 114, -1, 116, -1, 118, + 119, 120, 121, -1, -1, 124, 125, 126, 127, 128, + -1, 130, 131, 132, 3, -1, -1, 6, -1, 8, + -1, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, 22, -1, -1, 25, -1, -1, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 54, 55, -1, -1, -1, + 59, -1, -1, -1, -1, -1, -1, -1, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, -1, 104, -1, -1, 107, 108, + -1, -1, -1, -1, -1, 114, -1, 116, -1, 118, + 119, 120, 121, -1, -1, 124, 125, 126, 127, 128, + -1, 130, 131, 132, 3, -1, -1, 6, -1, 8, + -1, -1, 11, 12, -1, 14, -1, -1, -1, -1, + -1, 20, -1, 22, -1, -1, -1, 26, 27, -1, + -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 8, 104, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 116, -1, 118, + 119, 120, 121, -1, -1, 124, 125, 126, 127, 128, + -1, 130, 131, 132, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 48, -1, 50, -1, -1, -1, + -1, -1, 56, -1, -1, -1, -1, -1, 62, -1, + -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, + 104, -1, -1, -1, -1, 109, -1, 8, -1, 113, + -1, 115, 116, 117, 118, 119, 120, 121, 122, 20, + 124, 125, 126, 127, 128, -1, 130, 131, 132, 133, + 134, 135, 136, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 48, -1, 50, + -1, -1, -1, -1, -1, 56, -1, -1, -1, -1, + -1, 62, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, 103, -1, -1, 106, 107, -1, -1, -1, - -1, -1, 113, -1, 115, -1, 117, 118, 119, 120, - -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, - 131, 3, -1, -1, 6, -1, 8, -1, 10, 11, - -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, - 22, -1, -1, 25, -1, -1, -1, -1, -1, -1, - -1, -1, 34, -1, -1, -1, -1, -1, 40, 41, - 42, 43, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 54, 55, -1, -1, -1, 59, -1, -1, - -1, -1, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - -1, 103, -1, -1, 106, 107, -1, -1, -1, -1, - -1, 113, -1, 115, -1, 117, 118, 119, 120, -1, - -1, 123, 124, 125, 126, 127, -1, 129, 130, 131, - 3, -1, -1, 6, -1, 8, -1, 10, 11, -1, - -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, - -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, - -1, 34, -1, -1, -1, -1, -1, 40, 41, 42, - 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 54, 55, -1, -1, -1, 59, -1, -1, -1, - -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, -1, - 103, -1, -1, 106, 107, -1, -1, -1, -1, -1, - 113, -1, 115, -1, 117, 118, 119, 120, -1, -1, - 123, 124, 125, 126, 127, -1, 129, 130, 131, 3, - -1, -1, 6, -1, 8, -1, -1, 11, 12, -1, - 14, -1, -1, -1, -1, -1, 20, -1, 22, -1, - -1, -1, 26, 27, -1, -1, -1, -1, -1, 115, - 34, 117, -1, 119, 120, 39, -1, 123, 124, 125, - 126, -1, -1, -1, 130, 131, -1, -1, -1, -1, - -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 8, 103, + 101, 102, 8, 104, -1, -1, -1, -1, 109, -1, + -1, -1, 113, -1, 20, 116, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 127, 128, -1, 130, + 131, 132, 133, 134, 135, 136, -1, -1, -1, -1, + -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, + 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, + -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, -1, 104, -1, + -1, -1, -1, -1, 8, -1, -1, 113, -1, -1, + 116, 117, 118, 119, 120, 121, 20, -1, 124, 125, + 126, 127, 128, -1, 130, 131, 132, 133, 134, 135, + 136, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 20, 115, -1, 117, 118, 119, 120, -1, -1, 123, - 124, 125, 126, 127, -1, 129, 130, 131, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, - 50, -1, -1, -1, -1, -1, 56, -1, -1, -1, - -1, -1, 62, -1, -1, -1, -1, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, - 8, -1, 112, -1, 114, 115, 116, 117, 118, 119, - 120, 121, 20, 123, 124, 125, 126, 127, -1, 129, - 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 48, -1, 50, -1, -1, -1, -1, -1, 56, -1, - -1, -1, -1, -1, 62, -1, -1, -1, -1, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 8, 103, -1, -1, -1, -1, - 108, -1, -1, -1, 112, -1, 20, 115, 116, 117, - 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, - -1, 129, 130, 131, 132, 133, 134, 135, -1, -1, - -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, - -1, -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, -1, 103, - -1, -1, -1, -1, -1, 8, -1, -1, 112, -1, - -1, 115, 116, 117, 118, 119, 120, 20, -1, 123, - 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, - 134, 135, 35, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 6, - 103, 8, -1, 10, 11, -1, -1, -1, -1, -1, - -1, -1, 115, 20, 117, 118, 119, 120, 25, -1, - 123, 124, 125, 126, 127, -1, 129, 130, 131, -1, - 133, 134, 135, -1, -1, -1, -1, -1, -1, -1, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 6, + 104, 8, -1, 10, 11, -1, -1, -1, -1, -1, + -1, -1, 116, 20, 118, 119, 120, 121, 25, -1, + 124, 125, 126, 127, 128, -1, 130, 131, 132, -1, + 134, 135, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 6, 103, 8, -1, 10, - 11, -1, -1, -1, -1, -1, -1, -1, 115, 20, - 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, -1, -1, -1, -1, -1, + 97, 98, 99, 100, 101, 102, 6, 104, 8, -1, + 10, 11, -1, -1, -1, -1, -1, -1, -1, 116, + 20, 118, 119, 120, 121, -1, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 8, 103, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 20, 115, -1, 117, 118, 119, 120, - -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 8, 104, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 116, -1, 118, 119, + 120, 121, -1, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, -1, 103, 8, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 115, 20, - 117, 118, 119, 120, -1, -1, 123, 124, 125, 126, - 127, -1, 129, 130, 131, -1, 37, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, + 65, -1, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, -1, 104, + 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 116, 20, 118, 119, 120, 121, -1, -1, 124, + 125, 126, 127, 128, -1, 130, 131, 132, -1, 37, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, -1, 104, 8, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 116, 20, + 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, 103, 8, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 115, 20, 117, 118, 119, 120, - -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, 37, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, -1, 103, 8, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 115, 20, 117, 118, 119, 120, -1, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, -1, 37, -1, + 101, 102, -1, 104, 8, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 116, 20, 118, 119, 120, + 121, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, -1, 103, 8, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 115, 20, 117, 118, - 119, 120, -1, -1, 123, 124, 125, 126, 127, 128, - 129, 130, 131, -1, 37, -1, -1, -1, -1, -1, + -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, -1, + 104, 8, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 116, 20, 118, 119, 120, 121, -1, -1, + 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, + 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 8, - 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 20, 115, -1, 117, 118, 119, 120, -1, -1, - 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 8, 104, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 116, + -1, 118, 119, 120, 121, -1, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 8, 103, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 20, 115, -1, 117, 118, - 119, 120, -1, -1, 123, 124, 125, 126, 127, 128, - 129, 130, 131, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 8, 104, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 116, -1, 118, 119, 120, 121, + -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 8, 103, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, - 115, -1, 117, 118, 119, 120, -1, 122, 123, 124, - 125, 126, 127, -1, 129, 130, 131, -1, -1, -1, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 8, 104, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 20, 116, + -1, 118, 119, 120, 121, -1, 123, 124, 125, 126, + 127, 128, -1, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, 103, -1, -1, -1, -1, -1, 8, -1, - -1, -1, -1, -1, 115, -1, 117, 118, 119, 120, - 20, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, -1, -1, -1, 35, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, -1, 104, -1, -1, -1, -1, -1, 8, -1, + -1, -1, -1, -1, 116, -1, 118, 119, 120, 121, + 20, -1, 124, 125, 126, 127, 128, 129, 130, 131, + 132, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, -1, 103, -1, -1, -1, -1, -1, 8, - -1, -1, -1, -1, -1, 115, -1, 117, 118, 119, - 120, 20, -1, 123, 124, 125, 126, 127, -1, 129, - 130, 131, -1, -1, -1, -1, 35, -1, -1, -1, + 100, 101, 102, -1, 104, -1, -1, -1, -1, -1, + 8, -1, -1, -1, -1, -1, 116, -1, 118, 119, + 120, 121, 20, -1, 124, 125, 126, 127, 128, -1, + 130, 131, 132, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 8, 103, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 20, 115, -1, 117, 118, - 119, 120, -1, -1, 123, 124, 125, 126, 127, -1, - 129, 130, 131, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 8, 104, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 116, -1, + 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, + 128, -1, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 8, 103, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, - 115, -1, 117, 118, 119, 120, -1, -1, 123, 124, - 125, 126, 127, -1, 129, 130, 131, -1, -1, -1, + -1, -1, -1, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 8, 104, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 116, -1, 118, 119, 120, 121, -1, + -1, 124, 125, 126, 127, 128, -1, 130, 131, 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, -1, 103, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 115, -1, 117, 118, 119, 120, - -1, -1, 123, 124, 125, 126, 127, -1, 129, 130, - 131, 3, -1, -1, 6, -1, -1, -1, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, -1, 104, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, + 118, 119, 120, 121, -1, -1, 124, 125, 126, 127, + 128, -1, 130, 131, 132, 3, -1, -1, 6, -1, + -1, -1, 10, 11, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, -1, 25, -1, -1, + -1, 3, -1, -1, 6, -1, 34, 35, 10, 11, + -1, -1, 40, 41, 42, 43, -1, -1, 20, 21, + 22, -1, -1, 25, -1, -1, 54, 55, -1, -1, + -1, 59, 34, -1, 36, -1, -1, -1, 40, 41, + 42, 43, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3, 54, 55, 6, -1, -1, 59, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, - 22, -1, -1, 25, -1, -1, -1, -1, 3, -1, - -1, 6, 34, -1, 36, 10, 11, -1, 40, 41, - 42, 43, -1, -1, -1, 20, 21, 22, -1, -1, - 25, -1, 54, 55, -1, -1, -1, 59, -1, 34, - -1, 36, -1, -1, -1, 40, 41, 42, 43, 3, - -1, -1, 6, -1, -1, -1, 10, 11, -1, 54, - 55, -1, -1, -1, 59, -1, 20, 21, 22, -1, - -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, - 34, -1, 36, -1, 106, 107, 40, 41, 42, 43, - -1, 113, -1, -1, -1, -1, -1, -1, -1, -1, - 54, 55, -1, -1, -1, 59, 3, -1, -1, 6, - -1, 106, 107, 10, 11, -1, -1, -1, 113, -1, - -1, -1, -1, 20, 21, 22, -1, -1, 25, -1, - -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, - -1, -1, -1, 40, 41, 42, 43, -1, -1, -1, - -1, -1, 106, 107, -1, -1, -1, 54, 55, 113, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 22, -1, -1, 25, -1, -1, -1, -1, -1, 107, + 108, -1, 34, -1, 36, -1, 114, -1, 40, 41, + 42, 43, 3, -1, -1, 6, -1, -1, -1, 10, + 11, -1, 54, 55, -1, 107, 108, 59, -1, 20, + 21, 22, 114, -1, 25, -1, -1, -1, -1, -1, + -1, -1, -1, 34, -1, 36, -1, -1, -1, 40, + 41, 42, 43, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 54, 55, 6, -1, -1, 59, 10, + 11, -1, -1, -1, -1, 107, 108, -1, -1, 20, + 21, 22, 114, -1, 25, -1, -1, -1, 3, -1, + -1, 6, -1, 34, -1, 10, 11, -1, -1, 40, + 41, 42, 43, -1, -1, 20, -1, 22, -1, -1, + 25, -1, -1, 54, 55, -1, 107, 108, 59, 34, + -1, -1, -1, 114, -1, 40, 41, 42, 43, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 107, 108, -1, -1, + -1, -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, - 107, -1, -1, -1, -1, -1, 113 + -1, -1, 107, 108, -1, -1, -1, -1, -1, 114 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" +#line 3 "/gnu/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -1702,7 +1733,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/usr/lib/bison.simple" +#line 196 "/gnu/share/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 *. @@ -2007,169 +2038,169 @@ yyreduce: switch (yyn) { case 1: -#line 372 "llgrammar.y" +#line 383 "llgrammar.y" { lhExternals (yyvsp[0].interfacelist); ; break;} case 2: -#line 373 "llgrammar.y" +#line 384 "llgrammar.y" { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ; break;} case 3: -#line 376 "llgrammar.y" +#line 387 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 4: -#line 377 "llgrammar.y" +#line 388 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);; break;} case 7: -#line 384 "llgrammar.y" +#line 395 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 8: -#line 385 "llgrammar.y" +#line 396 "llgrammar.y" { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);; break;} case 9: -#line 386 "llgrammar.y" +#line 397 "llgrammar.y" { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);; break;} case 10: -#line 389 "llgrammar.y" +#line 400 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 11: -#line 390 "llgrammar.y" +#line 401 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);; break;} case 15: -#line 399 "llgrammar.y" +#line 410 "llgrammar.y" { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist); /* assume subspecs are already processed, symbol table info in external file */ ; break;} case 16: -#line 405 "llgrammar.y" +#line 416 "llgrammar.y" { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);; break;} case 17: -#line 409 "llgrammar.y" +#line 420 "llgrammar.y" { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ; break;} case 18: -#line 411 "llgrammar.y" +#line 422 "llgrammar.y" { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ; break;} case 19: -#line 413 "llgrammar.y" +#line 424 "llgrammar.y" { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ; break;} case 20: -#line 415 "llgrammar.y" +#line 426 "llgrammar.y" { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ; break;} case 21: -#line 417 "llgrammar.y" +#line 428 "llgrammar.y" { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ; break;} case 22: -#line 419 "llgrammar.y" +#line 430 "llgrammar.y" { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ; break;} case 23: -#line 423 "llgrammar.y" +#line 434 "llgrammar.y" { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ; break;} case 24: -#line 426 "llgrammar.y" +#line 437 "llgrammar.y" { yyval.paramlist = paramNodeList_new (); ; break;} case 25: -#line 427 "llgrammar.y" +#line 438 "llgrammar.y" { yyval.paramlist = yyvsp[0].paramlist; ; break;} case 26: -#line 431 "llgrammar.y" +#line 442 "llgrammar.y" { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ; break;} case 27: -#line 433 "llgrammar.y" +#line 444 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ; break;} case 28: -#line 436 "llgrammar.y" +#line 447 "llgrammar.y" { yyval.param = markYieldParamNode (yyvsp[0].param); ; break;} case 29: -#line 437 "llgrammar.y" +#line 448 "llgrammar.y" { yyval.param = yyvsp[0].param; ; break;} case 30: -#line 440 "llgrammar.y" +#line 451 "llgrammar.y" { symtable_export (g_symtab, FALSE); ; break;} case 31: -#line 441 "llgrammar.y" +#line 452 "llgrammar.y" { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ; break;} case 32: -#line 445 "llgrammar.y" +#line 456 "llgrammar.y" { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ; break;} case 33: -#line 447 "llgrammar.y" +#line 458 "llgrammar.y" { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ; break;} case 34: -#line 449 "llgrammar.y" +#line 460 "llgrammar.y" { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ; break;} case 35: -#line 451 "llgrammar.y" +#line 462 "llgrammar.y" { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ; break;} case 36: -#line 455 "llgrammar.y" +#line 466 "llgrammar.y" { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ; break;} case 37: -#line 459 "llgrammar.y" +#line 470 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ; break;} case 38: -#line 461 "llgrammar.y" +#line 472 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ; break;} case 39: -#line 463 "llgrammar.y" +#line 474 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ; break;} case 40: -#line 466 "llgrammar.y" +#line 477 "llgrammar.y" { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ; break;} case 41: -#line 467 "llgrammar.y" +#line 478 "llgrammar.y" { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ; break;} case 42: -#line 470 "llgrammar.y" +#line 481 "llgrammar.y" { yyval.typequal = qual_createPrintfLike (); ; break;} case 43: -#line 471 "llgrammar.y" +#line 482 "llgrammar.y" { yyval.typequal = qual_createScanfLike (); ; break;} case 44: -#line 472 "llgrammar.y" +#line 483 "llgrammar.y" { yyval.typequal = qual_createMessageLike (); ; break;} case 45: -#line 475 "llgrammar.y" +#line 486 "llgrammar.y" { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ; break;} case 46: -#line 477 "llgrammar.y" +#line 488 "llgrammar.y" { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); /* type, declarator, glovbls, privateinits, @@ -2178,11 +2209,11 @@ case 46: ; break;} case 47: -#line 483 "llgrammar.y" +#line 494 "llgrammar.y" { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ; break;} case 48: -#line 487 "llgrammar.y" +#line 498 "llgrammar.y" { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); /* type, declarator, glovbls, privateinits, @@ -2191,396 +2222,396 @@ case 48: ; break;} case 49: -#line 497 "llgrammar.y" +#line 508 "llgrammar.y" { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ; break;} case 50: -#line 499 "llgrammar.y" +#line 510 "llgrammar.y" { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate); symtable_exitScope (g_symtab); ; break;} case 51: -#line 502 "llgrammar.y" +#line 513 "llgrammar.y" { yyval.claim = (claimNode) 0; ; break;} case 52: -#line 505 "llgrammar.y" +#line 516 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 53: -#line 505 "llgrammar.y" +#line 516 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 54: -#line 506 "llgrammar.y" +#line 517 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ; break;} case 55: -#line 507 "llgrammar.y" +#line 518 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 56: -#line 508 "llgrammar.y" +#line 519 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 57: -#line 509 "llgrammar.y" +#line 520 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ; break;} case 58: -#line 510 "llgrammar.y" +#line 521 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 59: -#line 511 "llgrammar.y" +#line 522 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 60: -#line 512 "llgrammar.y" +#line 523 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ; break;} case 61: -#line 513 "llgrammar.y" +#line 524 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 62: -#line 513 "llgrammar.y" +#line 524 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 63: -#line 514 "llgrammar.y" +#line 525 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ; break;} case 64: -#line 517 "llgrammar.y" +#line 528 "llgrammar.y" { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ; break;} case 65: -#line 518 "llgrammar.y" +#line 529 "llgrammar.y" { g_inTypeDef = FALSE; ; break;} case 66: -#line 519 "llgrammar.y" +#line 530 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ; break;} case 67: -#line 521 "llgrammar.y" +#line 532 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ; break;} case 68: -#line 523 "llgrammar.y" +#line 534 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ; break;} case 69: -#line 539 "llgrammar.y" +#line 550 "llgrammar.y" { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ; break;} case 70: -#line 541 "llgrammar.y" +#line 552 "llgrammar.y" { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ; break;} case 71: -#line 544 "llgrammar.y" +#line 555 "llgrammar.y" { yyval.import = importNode_makePlain (yyvsp[0].ltok); ; break;} case 72: -#line 546 "llgrammar.y" +#line 557 "llgrammar.y" { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ; break;} case 73: -#line 547 "llgrammar.y" +#line 558 "llgrammar.y" { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ; break;} case 74: -#line 550 "llgrammar.y" +#line 561 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 75: -#line 551 "llgrammar.y" +#line 562 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 77: -#line 559 "llgrammar.y" +#line 570 "llgrammar.y" { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ; break;} case 78: -#line 561 "llgrammar.y" +#line 572 "llgrammar.y" { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ; break;} case 79: -#line 565 "llgrammar.y" +#line 576 "llgrammar.y" { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ; break;} case 80: -#line 567 "llgrammar.y" +#line 578 "llgrammar.y" { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ; break;} case 81: -#line 569 "llgrammar.y" +#line 580 "llgrammar.y" { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ; break;} case 82: -#line 571 "llgrammar.y" +#line 582 "llgrammar.y" { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ; break;} case 83: -#line 574 "llgrammar.y" +#line 585 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 84: -#line 575 "llgrammar.y" +#line 586 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 85: -#line 579 "llgrammar.y" +#line 590 "llgrammar.y" { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ; break;} case 86: -#line 581 "llgrammar.y" +#line 592 "llgrammar.y" { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ; break;} case 87: -#line 582 "llgrammar.y" +#line 593 "llgrammar.y" { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ; break;} case 88: -#line 586 "llgrammar.y" +#line 597 "llgrammar.y" { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ; break;} case 89: -#line 587 "llgrammar.y" +#line 598 "llgrammar.y" { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ; break;} case 90: -#line 591 "llgrammar.y" +#line 602 "llgrammar.y" { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ; break;} case 91: -#line 592 "llgrammar.y" +#line 603 "llgrammar.y" { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ; break;} case 92: -#line 595 "llgrammar.y" +#line 606 "llgrammar.y" { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ; break;} case 93: -#line 596 "llgrammar.y" +#line 607 "llgrammar.y" { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ; break;} case 94: -#line 597 "llgrammar.y" +#line 608 "llgrammar.y" { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined, yyvsp[-1].name, yyvsp[0].signature); ; break;} case 95: -#line 601 "llgrammar.y" +#line 612 "llgrammar.y" { yyval.name = makeNameNodeId (yyvsp[0].ltok); ; break;} case 96: -#line 602 "llgrammar.y" +#line 613 "llgrammar.y" { yyval.name = makeNameNodeForm (yyvsp[0].opform); ; break;} case 99: -#line 610 "llgrammar.y" +#line 621 "llgrammar.y" { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ; break;} case 100: -#line 612 "llgrammar.y" +#line 623 "llgrammar.y" { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ; break;} case 101: -#line 615 "llgrammar.y" +#line 626 "llgrammar.y" { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ; break;} case 102: -#line 616 "llgrammar.y" +#line 627 "llgrammar.y" { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ; break;} case 103: -#line 620 "llgrammar.y" +#line 631 "llgrammar.y" { yyval.globals = varDeclarationNodeList_new (); ; break;} case 104: -#line 622 "llgrammar.y" +#line 633 "llgrammar.y" { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ; break;} case 105: -#line 625 "llgrammar.y" +#line 636 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ; break;} case 106: -#line 626 "llgrammar.y" +#line 637 "llgrammar.y" { yyval.vardeclaration = makeInternalStateNode (); ; break;} case 107: -#line 627 "llgrammar.y" +#line 638 "llgrammar.y" { yyval.vardeclaration = makeFileSystemNode (); ; break;} case 108: -#line 630 "llgrammar.y" +#line 641 "llgrammar.y" { yyval.vardeclarationlist = varDeclarationNodeList_new (); ; break;} case 109: -#line 631 "llgrammar.y" +#line 642 "llgrammar.y" { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ; break;} case 110: -#line 635 "llgrammar.y" +#line 646 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ; break;} case 111: -#line 638 "llgrammar.y" +#line 649 "llgrammar.y" { yyval.letdecls = letDeclNodeList_new (); ; break;} case 112: -#line 639 "llgrammar.y" +#line 650 "llgrammar.y" { yyval.letdecls = yyvsp[-1].letdecls; ; break;} case 113: -#line 642 "llgrammar.y" +#line 653 "llgrammar.y" { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ; break;} case 114: -#line 643 "llgrammar.y" +#line 654 "llgrammar.y" { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ; break;} case 115: -#line 646 "llgrammar.y" +#line 657 "llgrammar.y" { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ; break;} case 116: -#line 647 "llgrammar.y" +#line 658 "llgrammar.y" { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ; break;} case 118: -#line 652 "llgrammar.y" +#line 663 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 119: -#line 653 "llgrammar.y" +#line 664 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ; break;} case 120: -#line 656 "llgrammar.y" +#line 667 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 121: -#line 657 "llgrammar.y" +#line 668 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 122: -#line 660 "llgrammar.y" +#line 671 "llgrammar.y" { yyval.modify = (modifyNode)0; ; break;} case 123: -#line 661 "llgrammar.y" +#line 672 "llgrammar.y" { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ; break;} case 124: -#line 662 "llgrammar.y" +#line 673 "llgrammar.y" { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ; break;} case 125: -#line 663 "llgrammar.y" +#line 674 "llgrammar.y" { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ; break;} case 126: -#line 666 "llgrammar.y" +#line 677 "llgrammar.y" { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ; break;} case 127: -#line 667 "llgrammar.y" +#line 678 "llgrammar.y" { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ; break;} case 128: -#line 670 "llgrammar.y" +#line 681 "llgrammar.y" { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ; break;} case 129: -#line 671 "llgrammar.y" +#line 682 "llgrammar.y" { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ; break;} case 130: -#line 672 "llgrammar.y" +#line 683 "llgrammar.y" { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ; break;} case 131: -#line 673 "llgrammar.y" +#line 684 "llgrammar.y" { yyval.storeref = makeStoreRefNodeInternal (); ; break;} case 132: -#line 674 "llgrammar.y" +#line 685 "llgrammar.y" { yyval.storeref = makeStoreRefNodeSystem (); ; break;} case 133: -#line 677 "llgrammar.y" +#line 688 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 134: -#line 678 "llgrammar.y" +#line 689 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 135: -#line 681 "llgrammar.y" +#line 692 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 136: -#line 682 "llgrammar.y" +#line 693 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 137: -#line 685 "llgrammar.y" +#line 696 "llgrammar.y" { yyval.paramlist = paramNodeList_new (); ; break;} case 138: -#line 686 "llgrammar.y" +#line 697 "llgrammar.y" { yyval.paramlist = yyvsp[0].paramlist; ; break;} case 140: -#line 690 "llgrammar.y" +#line 701 "llgrammar.y" { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ; break;} case 141: -#line 691 "llgrammar.y" +#line 702 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ; break;} case 142: -#line 694 "llgrammar.y" +#line 705 "llgrammar.y" { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ; break;} case 143: -#line 695 "llgrammar.y" +#line 706 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ; break;} case 144: -#line 698 "llgrammar.y" +#line 709 "llgrammar.y" { yyval.program = (programNode)0; ; break;} case 145: -#line 699 "llgrammar.y" +#line 710 "llgrammar.y" { yyval.program = yyvsp[-1].program; ; break;} case 146: -#line 700 "llgrammar.y" +#line 711 "llgrammar.y" { yyval.program = yyvsp[-2].program; ; break;} case 147: -#line 703 "llgrammar.y" +#line 714 "llgrammar.y" { yyval.program = makeProgramNode (yyvsp[0].stmt); ; break;} case 148: -#line 706 "llgrammar.y" +#line 717 "llgrammar.y" { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ; break;} case 149: -#line 708 "llgrammar.y" +#line 719 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-1].program); yyval.program = makeProgramNodeAction (x, ACT_ITER); ; break;} case 150: -#line 713 "llgrammar.y" +#line 724 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-2].program); programNodeList_addh (x, yyvsp[0].program); @@ -2588,7 +2619,7 @@ case 150: ; break;} case 151: -#line 719 "llgrammar.y" +#line 730 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-2].program); programNodeList_addh (x, yyvsp[0].program); @@ -2596,91 +2627,91 @@ case 151: ; break;} case 152: -#line 727 "llgrammar.y" +#line 738 "llgrammar.y" { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ; break;} case 153: -#line 729 "llgrammar.y" +#line 740 "llgrammar.y" { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ; break;} case 154: -#line 731 "llgrammar.y" +#line 742 "llgrammar.y" { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ; break;} case 155: -#line 733 "llgrammar.y" +#line 744 "llgrammar.y" { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ; break;} case 156: -#line 736 "llgrammar.y" +#line 747 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} case 157: -#line 737 "llgrammar.y" +#line 748 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 159: -#line 741 "llgrammar.y" +#line 752 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} case 160: -#line 742 "llgrammar.y" +#line 753 "llgrammar.y" { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 161: -#line 743 "llgrammar.y" +#line 754 "llgrammar.y" { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ; break;} case 162: -#line 744 "llgrammar.y" +#line 755 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 163: -#line 745 "llgrammar.y" +#line 756 "llgrammar.y" { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ; break;} case 164: -#line 747 "llgrammar.y" +#line 758 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 165: -#line 749 "llgrammar.y" +#line 760 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 166: -#line 752 "llgrammar.y" +#line 763 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 167: -#line 753 "llgrammar.y" +#line 764 "llgrammar.y" { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ; break;} case 168: -#line 754 "llgrammar.y" +#line 765 "llgrammar.y" { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ; break;} case 169: -#line 755 "llgrammar.y" +#line 766 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 170: -#line 758 "llgrammar.y" +#line 769 "llgrammar.y" { yyval.fcns = fcnNodeList_new (); ; break;} case 171: -#line 759 "llgrammar.y" +#line 770 "llgrammar.y" { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ; break;} case 172: -#line 762 "llgrammar.y" +#line 773 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 174: -#line 766 "llgrammar.y" +#line 777 "llgrammar.y" { g_inTypeDef = FALSE; ; break;} case 175: -#line 767 "llgrammar.y" +#line 778 "llgrammar.y" { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT; checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = yyvsp[-1].lclpredicate; @@ -2689,833 +2720,837 @@ case 175: ; break;} case 176: -#line 775 "llgrammar.y" +#line 786 "llgrammar.y" { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ; break;} case 177: -#line 777 "llgrammar.y" +#line 788 "llgrammar.y" { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ; break;} case 178: -#line 780 "llgrammar.y" +#line 791 "llgrammar.y" { declareForwardType (yyvsp[0].declare); ; break;} case 179: -#line 781 "llgrammar.y" +#line 792 "llgrammar.y" { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ; break;} case 180: -#line 784 "llgrammar.y" +#line 795 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 181: -#line 785 "llgrammar.y" +#line 796 "llgrammar.y" { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ; break;} case 182: -#line 788 "llgrammar.y" +#line 799 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ; break;} case 183: -#line 789 "llgrammar.y" +#line 800 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ; break;} case 184: -#line 790 "llgrammar.y" +#line 801 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ; break;} case 185: -#line 791 "llgrammar.y" +#line 802 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ; break;} case 186: -#line 792 "llgrammar.y" +#line 803 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ; break;} case 187: -#line 793 "llgrammar.y" +#line 804 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ; break;} case 188: -#line 794 "llgrammar.y" +#line 805 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ; break;} case 189: -#line 795 "llgrammar.y" +#line 806 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ; break;} case 190: -#line 796 "llgrammar.y" +#line 807 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ; break;} case 191: -#line 797 "llgrammar.y" +#line 808 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ; break;} case 192: -#line 805 "llgrammar.y" +#line 816 "llgrammar.y" { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ; break;} case 193: -#line 806 "llgrammar.y" +#line 817 "llgrammar.y" { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ; break;} case 194: -#line 812 "llgrammar.y" +#line 823 "llgrammar.y" { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ; break;} case 195: -#line 814 "llgrammar.y" +#line 825 "llgrammar.y" { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ; break;} case 196: -#line 819 "llgrammar.y" +#line 830 "llgrammar.y" { yyval.typequal = qual_createOut (); ; break;} case 197: -#line 820 "llgrammar.y" +#line 831 "llgrammar.y" { yyval.typequal = qual_createUnused (); ; break;} case 198: -#line 821 "llgrammar.y" +#line 832 "llgrammar.y" { yyval.typequal = qual_createSef (); ; break;} case 199: -#line 822 "llgrammar.y" +#line 833 "llgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 200: -#line 823 "llgrammar.y" +#line 834 "llgrammar.y" { yyval.typequal = qual_createOwned (); ; break;} case 201: -#line 824 "llgrammar.y" +#line 835 "llgrammar.y" { yyval.typequal = qual_createDependent (); ; break;} case 202: -#line 825 "llgrammar.y" +#line 836 "llgrammar.y" { yyval.typequal = qual_createKeep (); ; break;} case 203: -#line 826 "llgrammar.y" +#line 837 "llgrammar.y" { yyval.typequal = qual_createKept (); ; break;} case 204: -#line 827 "llgrammar.y" +#line 838 "llgrammar.y" { yyval.typequal = qual_createObserver (); ; break;} case 205: -#line 828 "llgrammar.y" +#line 839 "llgrammar.y" { yyval.typequal = qual_createExits (); ; break;} case 206: -#line 829 "llgrammar.y" +#line 840 "llgrammar.y" { yyval.typequal = qual_createMayExit (); ; break;} case 207: -#line 830 "llgrammar.y" +#line 841 "llgrammar.y" { yyval.typequal = qual_createTrueExit (); ; break;} case 208: -#line 831 "llgrammar.y" +#line 842 "llgrammar.y" { yyval.typequal = qual_createFalseExit (); ; break;} case 209: -#line 832 "llgrammar.y" +#line 843 "llgrammar.y" { yyval.typequal = qual_createNeverExit (); ; break;} case 210: -#line 833 "llgrammar.y" +#line 844 "llgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 211: -#line 834 "llgrammar.y" +#line 845 "llgrammar.y" { yyval.typequal = qual_createShared (); ; break;} case 212: -#line 835 "llgrammar.y" +#line 846 "llgrammar.y" { yyval.typequal = qual_createUnique (); ; break;} case 213: -#line 836 "llgrammar.y" +#line 847 "llgrammar.y" { yyval.typequal = qual_createChecked (); ; break;} case 214: -#line 837 "llgrammar.y" +#line 848 "llgrammar.y" { yyval.typequal = qual_createUnchecked (); ; break;} case 215: -#line 838 "llgrammar.y" +#line 849 "llgrammar.y" { yyval.typequal = qual_createCheckedStrict (); ; break;} case 216: -#line 839 "llgrammar.y" +#line 850 "llgrammar.y" { yyval.typequal = qual_createTrueNull (); ; break;} case 217: -#line 840 "llgrammar.y" +#line 851 "llgrammar.y" { yyval.typequal = qual_createFalseNull (); ; break;} case 218: -#line 841 "llgrammar.y" +#line 852 "llgrammar.y" { yyval.typequal = qual_createRelNull (); ; break;} case 219: -#line 842 "llgrammar.y" +#line 853 "llgrammar.y" { yyval.typequal = qual_createRelDef (); ; break;} case 220: -#line 843 "llgrammar.y" +#line 854 "llgrammar.y" { yyval.typequal = qual_createRefCounted (); ; break;} case 221: -#line 844 "llgrammar.y" +#line 855 "llgrammar.y" { yyval.typequal = qual_createRefs (); ; break;} case 222: -#line 845 "llgrammar.y" +#line 856 "llgrammar.y" { yyval.typequal = qual_createNewRef (); ; break;} case 223: -#line 846 "llgrammar.y" +#line 857 "llgrammar.y" { yyval.typequal = qual_createKillRef (); ; break;} case 224: -#line 847 "llgrammar.y" +#line 858 "llgrammar.y" { yyval.typequal = qual_createNull (); ; break;} case 225: -#line 848 "llgrammar.y" +#line 859 "llgrammar.y" { yyval.typequal = qual_createNotNull (); ; break;} case 226: -#line 849 "llgrammar.y" +#line 860 "llgrammar.y" { yyval.typequal = qual_createReturned (); ; break;} case 227: -#line 850 "llgrammar.y" +#line 861 "llgrammar.y" { yyval.typequal = qual_createExposed (); ; break;} case 228: -#line 851 "llgrammar.y" +#line 862 "llgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} case 229: -#line 852 "llgrammar.y" -{ yyval.typequal = qual_createUndef (); ; +#line 863 "llgrammar.y" +{ yyval.typequal = qual_createNullTerminated () ; ; break;} case 230: -#line 853 "llgrammar.y" -{ yyval.typequal = qual_createKilled (); ; +#line 864 "llgrammar.y" +{ yyval.typequal = qual_createUndef (); ; break;} case 231: -#line 857 "llgrammar.y" -{ yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ; +#line 865 "llgrammar.y" +{ yyval.typequal = qual_createKilled (); ; break;} case 232: -#line 859 "llgrammar.y" -{ yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ; +#line 869 "llgrammar.y" +{ yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ; break;} case 233: -#line 861 "llgrammar.y" -{ yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ; +#line 871 "llgrammar.y" +{ yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ; break;} case 234: -#line 863 "llgrammar.y" -{ yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ; +#line 873 "llgrammar.y" +{ yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ; break;} case 235: -#line 865 "llgrammar.y" +#line 875 "llgrammar.y" +{ yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ; + break;} +case 236: +#line 877 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ; break;} -case 237: -#line 875 "llgrammar.y" +case 238: +#line 887 "llgrammar.y" { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec)); yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ; break;} -case 238: -#line 879 "llgrammar.y" +case 239: +#line 891 "llgrammar.y" { yyval.count = 1; ; break;} -case 239: -#line 880 "llgrammar.y" +case 240: +#line 892 "llgrammar.y" { yyval.count = yyvsp[-1].count + 1; ; break;} -case 240: -#line 884 "llgrammar.y" +case 241: +#line 896 "llgrammar.y" { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ; break;} -case 241: -#line 886 "llgrammar.y" +case 242: +#line 898 "llgrammar.y" { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; break;} -case 242: -#line 888 "llgrammar.y" +case 243: +#line 900 "llgrammar.y" { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ; break;} -case 243: -#line 890 "llgrammar.y" +case 244: +#line 902 "llgrammar.y" { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; break;} -case 244: -#line 892 "llgrammar.y" +case 245: +#line 904 "llgrammar.y" { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ; break;} -case 245: -#line 894 "llgrammar.y" +case 246: +#line 906 "llgrammar.y" { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ; break;} -case 246: -#line 897 "llgrammar.y" +case 247: +#line 909 "llgrammar.y" { yyval.ltok = ltoken_undefined; ; break;} -case 248: -#line 901 "llgrammar.y" -{ yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ; - break;} case 249: -#line 902 "llgrammar.y" -{ yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ; +#line 913 "llgrammar.y" +{ yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ; break;} case 250: -#line 907 "llgrammar.y" -{ yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ; +#line 914 "llgrammar.y" +{ yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ; break;} case 251: -#line 911 "llgrammar.y" -{ yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ; +#line 919 "llgrammar.y" +{ yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ; break;} case 252: -#line 913 "llgrammar.y" -{ yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ; +#line 923 "llgrammar.y" +{ yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ; break;} case 253: -#line 916 "llgrammar.y" -{ ; ; +#line 925 "llgrammar.y" +{ yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ; break;} case 254: -#line 917 "llgrammar.y" +#line 928 "llgrammar.y" { ; ; break;} case 255: -#line 921 "llgrammar.y" -{ yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ; +#line 929 "llgrammar.y" +{ ; ; break;} case 256: -#line 923 "llgrammar.y" -{ yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ; +#line 933 "llgrammar.y" +{ yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ; break;} case 257: -#line 926 "llgrammar.y" -{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; +#line 935 "llgrammar.y" +{ yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 258: -#line 927 "llgrammar.y" -{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; +#line 938 "llgrammar.y" +{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 259: -#line 937 "llgrammar.y" -{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; +#line 939 "llgrammar.y" +{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 260: -#line 938 "llgrammar.y" +#line 949 "llgrammar.y" { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; break;} case 261: -#line 941 "llgrammar.y" -{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; +#line 950 "llgrammar.y" +{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; break;} case 262: -#line 942 "llgrammar.y" -{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; +#line 953 "llgrammar.y" +{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 263: -#line 943 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; +#line 954 "llgrammar.y" +{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 264: -#line 944 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; +#line 955 "llgrammar.y" +{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 265: -#line 945 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; +#line 956 "llgrammar.y" +{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 266: -#line 946 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; +#line 957 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 267: -#line 949 "llgrammar.y" -{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; +#line 958 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 268: -#line 950 "llgrammar.y" -{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; +#line 961 "llgrammar.y" +{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 269: -#line 951 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; +#line 962 "llgrammar.y" +{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 270: -#line 952 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; +#line 963 "llgrammar.y" +{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 271: -#line 953 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; +#line 964 "llgrammar.y" +{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 272: -#line 954 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; +#line 965 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 273: -#line 963 "llgrammar.y" -{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; +#line 966 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 274: -#line 964 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; +#line 975 "llgrammar.y" +{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 275: -#line 965 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; +#line 976 "llgrammar.y" +{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 276: -#line 966 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; +#line 977 "llgrammar.y" +{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 277: -#line 967 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; +#line 978 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 278: -#line 973 "llgrammar.y" -{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; +#line 979 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 279: -#line 974 "llgrammar.y" +#line 985 "llgrammar.y" { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; break;} case 280: -#line 975 "llgrammar.y" -{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; +#line 986 "llgrammar.y" +{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; break;} case 281: -#line 985 "llgrammar.y" -{ yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; +#line 987 "llgrammar.y" +{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 282: -#line 986 "llgrammar.y" -{ yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; +#line 997 "llgrammar.y" +{ yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 283: -#line 987 "llgrammar.y" -{ yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ; +#line 998 "llgrammar.y" +{ yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 284: -#line 992 "llgrammar.y" -{ yyval.abstDecl = (abstDeclaratorNode)0; ; +#line 999 "llgrammar.y" +{ yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ; break;} case 285: -#line 993 "llgrammar.y" -{ yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ; +#line 1004 "llgrammar.y" +{ yyval.abstDecl = (abstDeclaratorNode)0; ; break;} case 286: -#line 996 "llgrammar.y" -{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; +#line 1005 "llgrammar.y" +{ yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ; break;} case 287: -#line 997 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; +#line 1008 "llgrammar.y" +{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 288: -#line 998 "llgrammar.y" -{ yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ; +#line 1009 "llgrammar.y" +{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 289: -#line 999 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ; +#line 1010 "llgrammar.y" +{ yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ; break;} case 290: -#line 1000 "llgrammar.y" -{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; +#line 1011 "llgrammar.y" +{ yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ; break;} case 291: -#line 1001 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; +#line 1012 "llgrammar.y" +{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 292: -#line 1002 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ; +#line 1013 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 293: -#line 1003 "llgrammar.y" -{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; +#line 1014 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ; break;} case 294: -#line 1006 "llgrammar.y" -{ yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ; +#line 1015 "llgrammar.y" +{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 295: -#line 1007 "llgrammar.y" -{ yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ; +#line 1018 "llgrammar.y" +{ yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ; break;} case 296: -#line 1011 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ; +#line 1019 "llgrammar.y" +{ yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ; break;} case 297: -#line 1013 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; +#line 1023 "llgrammar.y" +{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ; break;} case 298: -#line 1015 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; +#line 1025 "llgrammar.y" +{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 299: -#line 1017 "llgrammar.y" -{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; +#line 1027 "llgrammar.y" +{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 300: -#line 1019 "llgrammar.y" +#line 1029 "llgrammar.y" +{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; + break;} +case 301: +#line 1031 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; break;} -case 301: -#line 1022 "llgrammar.y" +case 302: +#line 1034 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} -case 302: -#line 1024 "llgrammar.y" +case 303: +#line 1036 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} -case 303: -#line 1026 "llgrammar.y" +case 304: +#line 1038 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} -case 304: -#line 1028 "llgrammar.y" +case 305: +#line 1040 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} -case 305: -#line 1030 "llgrammar.y" +case 306: +#line 1042 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} -case 306: -#line 1032 "llgrammar.y" +case 307: +#line 1044 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} -case 307: -#line 1040 "llgrammar.y" +case 308: +#line 1052 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} -case 308: -#line 1042 "llgrammar.y" +case 309: +#line 1054 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} -case 309: -#line 1044 "llgrammar.y" +case 310: +#line 1056 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} -case 310: -#line 1047 "llgrammar.y" +case 311: +#line 1059 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} -case 311: -#line 1050 "llgrammar.y" +case 312: +#line 1062 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} -case 312: -#line 1053 "llgrammar.y" +case 313: +#line 1065 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} -case 320: -#line 1070 "llgrammar.y" +case 321: +#line 1082 "llgrammar.y" { yyval.count = 0; ; break;} -case 322: -#line 1074 "llgrammar.y" +case 323: +#line 1086 "llgrammar.y" { yyval.count = 1; ; break;} -case 323: -#line 1075 "llgrammar.y" +case 324: +#line 1087 "llgrammar.y" { yyval.count = yyvsp[-2].count + 1; ; break;} -case 326: -#line 1082 "llgrammar.y" +case 327: +#line 1094 "llgrammar.y" { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} -case 327: -#line 1085 "llgrammar.y" +case 328: +#line 1097 "llgrammar.y" { yyval.ltokenList = ltokenList_new (); ; break;} -case 329: -#line 1089 "llgrammar.y" +case 330: +#line 1101 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} -case 330: -#line 1090 "llgrammar.y" +case 331: +#line 1102 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} -case 331: -#line 1093 "llgrammar.y" +case 332: +#line 1105 "llgrammar.y" { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);; break;} -case 332: -#line 1096 "llgrammar.y" +case 333: +#line 1108 "llgrammar.y" { yyval.term = checkSort (yyvsp[0].term); ; break;} -case 333: -#line 1103 "llgrammar.y" +case 334: +#line 1115 "llgrammar.y" { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ; break;} -case 335: -#line 1105 "llgrammar.y" +case 336: +#line 1117 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ; break;} -case 337: -#line 1111 "llgrammar.y" +case 338: +#line 1123 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok); symtable_exitScope (g_symtab); ; break;} -case 338: -#line 1115 "llgrammar.y" +case 339: +#line 1127 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);; break;} -case 339: -#line 1117 "llgrammar.y" +case 340: +#line 1129 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);; break;} -case 341: -#line 1121 "llgrammar.y" +case 342: +#line 1133 "llgrammar.y" { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ; break;} -case 342: -#line 1122 "llgrammar.y" +case 343: +#line 1134 "llgrammar.y" { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ; break;} -case 346: -#line 1130 "llgrammar.y" +case 347: +#line 1142 "llgrammar.y" { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ; break;} -case 347: -#line 1133 "llgrammar.y" +case 348: +#line 1145 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} -case 348: -#line 1134 "llgrammar.y" +case 349: +#line 1146 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ; break;} -case 349: -#line 1137 "llgrammar.y" +case 350: +#line 1149 "llgrammar.y" { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ; break;} -case 350: -#line 1138 "llgrammar.y" +case 351: +#line 1150 "llgrammar.y" { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ; break;} -case 352: -#line 1142 "llgrammar.y" +case 353: +#line 1154 "llgrammar.y" { yyval.term = computePossibleSorts (yyvsp[0].term); ; break;} -case 353: -#line 1143 "llgrammar.y" +case 354: +#line 1155 "llgrammar.y" { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ; break;} -case 354: -#line 1144 "llgrammar.y" +case 355: +#line 1156 "llgrammar.y" { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ; break;} -case 355: -#line 1145 "llgrammar.y" +case 356: +#line 1157 "llgrammar.y" { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ; break;} -case 356: -#line 1146 "llgrammar.y" +case 357: +#line 1158 "llgrammar.y" { yyval.term = computePossibleSorts (yyvsp[0].term); ; break;} -case 357: -#line 1147 "llgrammar.y" +case 358: +#line 1159 "llgrammar.y" { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ; break;} -case 358: -#line 1150 "llgrammar.y" +case 359: +#line 1162 "llgrammar.y" { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} -case 360: -#line 1155 "llgrammar.y" +case 361: +#line 1167 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok); yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} -case 361: -#line 1158 "llgrammar.y" +case 362: +#line 1170 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} -case 362: -#line 1160 "llgrammar.y" +case 363: +#line 1172 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok); yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} -case 363: -#line 1164 "llgrammar.y" +case 364: +#line 1176 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} -case 364: -#line 1167 "llgrammar.y" +case 365: +#line 1179 "llgrammar.y" { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} -case 365: -#line 1168 "llgrammar.y" +case 366: +#line 1180 "llgrammar.y" { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} -case 366: -#line 1171 "llgrammar.y" +case 367: +#line 1183 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} -case 367: -#line 1172 "llgrammar.y" +case 368: +#line 1184 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} -case 368: -#line 1176 "llgrammar.y" +case 369: +#line 1188 "llgrammar.y" { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ; break;} -case 369: -#line 1178 "llgrammar.y" +case 370: +#line 1190 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} -case 370: -#line 1180 "llgrammar.y" +case 371: +#line 1192 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} -case 372: -#line 1183 "llgrammar.y" +case 373: +#line 1195 "llgrammar.y" { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ; break;} -case 373: -#line 1185 "llgrammar.y" +case 374: +#line 1197 "llgrammar.y" { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} -case 374: -#line 1187 "llgrammar.y" +case 375: +#line 1199 "llgrammar.y" { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} -case 375: -#line 1189 "llgrammar.y" +case 376: +#line 1201 "llgrammar.y" { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok), (termNode)0); ; break;} -case 376: -#line 1192 "llgrammar.y" +case 377: +#line 1204 "llgrammar.y" { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ; break;} -case 377: -#line 1194 "llgrammar.y" +case 378: +#line 1206 "llgrammar.y" { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} -case 378: -#line 1197 "llgrammar.y" +case 379: +#line 1209 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} -case 379: -#line 1198 "llgrammar.y" +case 380: +#line 1210 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} -case 385: -#line 1208 "llgrammar.y" +case 386: +#line 1220 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} -case 386: -#line 1209 "llgrammar.y" +case 387: +#line 1221 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} -case 387: -#line 1210 "llgrammar.y" +case 388: +#line 1222 "llgrammar.y" { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ; break;} -case 388: -#line 1211 "llgrammar.y" +case 389: +#line 1223 "llgrammar.y" { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ; break;} -case 389: -#line 1213 "llgrammar.y" +case 390: +#line 1225 "llgrammar.y" { termNodeList x = termNodeList_new (); termNodeList_addh (x, yyvsp[-1].term); yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok); ; break;} -case 390: -#line 1218 "llgrammar.y" +case 391: +#line 1230 "llgrammar.y" { termNodeList x = termNodeList_new (); termNodeList_addh (x, yyvsp[-3].term); termNodeList_addh (x, yyvsp[-1].term); yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok); ; break;} -case 391: -#line 1223 "llgrammar.y" +case 392: +#line 1235 "llgrammar.y" { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ; break;} -case 392: -#line 1233 "llgrammar.y" +case 393: +#line 1245 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ; break;} -case 393: -#line 1234 "llgrammar.y" +case 394: +#line 1246 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ; break;} -case 394: -#line 1235 "llgrammar.y" +case 395: +#line 1247 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ; break;} -case 395: -#line 1236 "llgrammar.y" +case 396: +#line 1248 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ; break;} -case 396: -#line 1240 "llgrammar.y" +case 397: +#line 1252 "llgrammar.y" { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ; break;} -case 397: -#line 1242 "llgrammar.y" +case 398: +#line 1254 "llgrammar.y" { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ; break;} -case 398: -#line 1245 "llgrammar.y" +case 399: +#line 1257 "llgrammar.y" { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si)); si->kind = SPE_QUANT; symtable_enterScope (g_symtab, si); ; break;} -case 399: -#line 1249 "llgrammar.y" +case 400: +#line 1261 "llgrammar.y" { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ; break;} -case 400: -#line 1252 "llgrammar.y" +case 401: +#line 1264 "llgrammar.y" { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ; break;} -case 401: -#line 1253 "llgrammar.y" +case 402: +#line 1265 "llgrammar.y" { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ; break;} -case 402: -#line 1256 "llgrammar.y" +case 403: +#line 1268 "llgrammar.y" { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ; break;} -case 403: -#line 1257 "llgrammar.y" +case 404: +#line 1269 "llgrammar.y" { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ; break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/usr/lib/bison.simple" +#line 498 "/gnu/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -3711,7 +3746,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 1272 "llgrammar.y" +#line 1284 "llgrammar.y" # include "bison.reset" diff --git a/src/llgrammar.tab.h b/src/llgrammar.tab.h index a3d47b5..a96bd97 100644 --- a/src/llgrammar.tab.h +++ b/src/llgrammar.tab.h @@ -162,40 +162,41 @@ typedef union #define LLT_RELNULL 354 #define LLT_RELDEF 355 #define LLT_KILLREF 356 -#define LLT_TEMPREF 357 -#define LLT_NEWREF 358 -#define LLT_PRIVATE 359 -#define LLT_REQUIRES 360 -#define LLT_RESULT 361 -#define LLT_SIZEOF 362 -#define LLT_SPEC 363 -#define LLT_TAGGEDUNION 364 -#define LLT_THEN 365 -#define LLT_TYPE 366 -#define LLT_TYPEDEF 367 -#define LLT_UNCHANGED 368 -#define LLT_USES 369 -#define LLT_CHAR 370 -#define LLT_CONST 371 -#define LLT_DOUBLE 372 -#define LLT_ENUM 373 -#define LLT_FLOAT 374 -#define LLT_INT 375 -#define LLT_ITER 376 -#define LLT_YIELD 377 -#define LLT_LONG 378 -#define LLT_SHORT 379 -#define LLT_SIGNED 380 -#define LLT_UNKNOWN 381 -#define LLT_STRUCT 382 -#define LLT_TELIPSIS 383 -#define LLT_UNION 384 -#define LLT_UNSIGNED 385 -#define LLT_VOID 386 -#define LLT_VOLATILE 387 -#define LLT_PRINTFLIKE 388 -#define LLT_SCANFLIKE 389 -#define LLT_MESSAGELIKE 390 +#define LLT_NULLTERMINATED 357 +#define LLT_TEMPREF 358 +#define LLT_NEWREF 359 +#define LLT_PRIVATE 360 +#define LLT_REQUIRES 361 +#define LLT_RESULT 362 +#define LLT_SIZEOF 363 +#define LLT_SPEC 364 +#define LLT_TAGGEDUNION 365 +#define LLT_THEN 366 +#define LLT_TYPE 367 +#define LLT_TYPEDEF 368 +#define LLT_UNCHANGED 369 +#define LLT_USES 370 +#define LLT_CHAR 371 +#define LLT_CONST 372 +#define LLT_DOUBLE 373 +#define LLT_ENUM 374 +#define LLT_FLOAT 375 +#define LLT_INT 376 +#define LLT_ITER 377 +#define LLT_YIELD 378 +#define LLT_LONG 379 +#define LLT_SHORT 380 +#define LLT_SIGNED 381 +#define LLT_UNKNOWN 382 +#define LLT_STRUCT 383 +#define LLT_TELIPSIS 384 +#define LLT_UNION 385 +#define LLT_UNSIGNED 386 +#define LLT_VOID 387 +#define LLT_VOLATILE 388 +#define LLT_PRINTFLIKE 389 +#define LLT_SCANFLIKE 390 +#define LLT_MESSAGELIKE 391 extern YYSTYPE yllval; diff --git a/src/llgrammar.y b/src/llgrammar.y index e1dfe60..94d003a 100644 --- a/src/llgrammar.y +++ b/src/llgrammar.y @@ -264,6 +264,7 @@ bool g_inTypeDef = FALSE; %token LLT_RELNULL %token LLT_RELDEF %token LLT_KILLREF +%token LLT_NULLTERMINATED %token LLT_TEMPREF %token LLT_NEWREF %token LLT_PRIVATE @@ -859,6 +860,7 @@ specialQualifier | LLT_RETURNED { $$ = qual_createReturned (); } | LLT_EXPOSED { $$ = qual_createExposed (); } | LLT_PARTIAL { $$ = qual_createPartial (); } + | LLT_NULLTERMINATED { $$ = qual_createNullTerminated () ; } | LLT_UNDEF { $$ = qual_createUndef (); } | LLT_KILLED { $$ = qual_createKilled (); } diff --git a/src/qual.c b/src/qual.c index 3fafbf3..4444ca6 100644 --- a/src/qual.c +++ b/src/qual.c @@ -84,6 +84,7 @@ cstring qual_unparse (qual q) case QU_NULL: return cstring_makeLiteralTemp ("null"); case QU_RELNULL: return cstring_makeLiteralTemp ("relnull"); case QU_NOTNULL: return cstring_makeLiteralTemp ("notnull"); + case QU_NULLTERMINATED: return cstring_makeLiteralTemp ("nullterminated"); case QU_RETURNED: return cstring_makeLiteralTemp (" returned"); case QU_EXPOSED: return cstring_makeLiteralTemp ("exposed"); case QU_EXITS: return cstring_makeLiteralTemp ("exits"); diff --git a/src/qualList.c b/src/qualList.c index 4b6dea3..29d1e6f 100644 --- a/src/qualList.c +++ b/src/qualList.c @@ -199,6 +199,20 @@ qualList_free (/*@only@*/ qualList s) } } +/* start modifications */ +/* +requires: p is defined +returns: true if qual is present in qualList +modifies: none +*/ +bool qualList_hasNullTerminatedQualifier(qualList q) { + qualList_elements(q, qu) { + if( qual_equal(qu, QU_NULLTERMINATED) ) return TRUE; + } end_qualList_elements ; + + return FALSE; +} +/* end modification/s */ diff --git a/src/sRef.c b/src/sRef.c index 9e862be..3402521 100644 --- a/src/sRef.c +++ b/src/sRef.c @@ -647,6 +647,10 @@ static /*@dependent@*/ /*@notnull@*/ /*@special@*/ sRef s->type = ctype_unknown; s->defstate = SS_UNKNOWN; + /* start modifications */ + s->bufinfo.bufstate = BB_NOTNULLTERMINATED; + /* end modifications */ + s->aliaskind = AK_UNKNOWN; s->oaliaskind = AK_UNKNOWN; @@ -4981,6 +4985,27 @@ void sRef_setNullState (sRef s, nstate n, fileloc loc) } } +void sRef_setNullTerminatedStateInnerComplete (sRef s, struct _bbufinfo b, fileloc loc) { + + switch (b.bufstate) { + case BB_NULLTERMINATED: + sRef_setNullTerminatedState (s); + sRef_setLen (s, b.len); + break; + case BB_POSSIBLYNULLTERMINATED: + sRef_setPossiblyNullTerminatedState(s); + break; + case BB_NOTNULLTERMINATED: + sRef_setNotNullTerminatedState (s); + break; + } + sRef_setSize (s, b.size); + + /* PL: TO BE DONE : Aliases are not modified right now, have to be similar to + * setNullStateInnerComplete. + */ +} + void sRef_setNullStateInnerComplete (sRef s, nstate n, fileloc loc) { sRef_setNullState (s, n, loc); @@ -5291,6 +5316,12 @@ sRef sRef_copy (sRef s) t->defstate = s->defstate; t->nullstate = s->nullstate; + + /* start modifications */ + t->bufinfo.bufstate = s->bufinfo.bufstate; + t->bufinfo.len = s->bufinfo.len; + t->bufinfo.size = s->bufinfo.size; + /* end modifications */ t->aliaskind = s->aliaskind; t->oaliaskind = s->oaliaskind; @@ -6538,6 +6569,12 @@ sRef_copyState (sRef s1, sRef s2) s1->nullstate = s2->nullstate; s1->nullinfo = alinfo_update (s1->nullinfo, s2->nullinfo); + + /* start modifications */ + s1->bufinfo.bufstate = s2->bufinfo.bufstate; + s1->bufinfo.len = s2->bufinfo.len; + s1->bufinfo.size = s2->bufinfo.size; + /* end modifications */ s1->aliaskind = s2->aliaskind; s1->aliasinfo = alinfo_update (s1->aliasinfo, s2->aliasinfo); @@ -6571,6 +6608,10 @@ sRef_makeNew (ctype ct, sRef t, cstring name) s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->fname = name; + /* start modifications */ + s->bufinfo.bufstate = t->bufinfo.bufstate; + /* end modifications */ + return s; } @@ -6585,6 +6626,9 @@ sRef_makeType (ctype ct) s->defstate = SS_UNKNOWN; s->aliaskind = AK_UNKNOWN; s->nullstate = NS_UNKNOWN; + /* start modification */ + s->bufinfo.bufstate = BB_NOTNULLTERMINATED; + /* end modification */ if (ctype_isUA (ct)) @@ -6615,6 +6659,9 @@ sRef_makeConst (ctype ct) s->defstate = SS_UNKNOWN; s->aliaskind = AK_UNKNOWN; s->nullstate = NS_UNKNOWN; + /* start modification */ + s->bufinfo.bufstate = BB_NULLTERMINATED; + /* end modification */ if (ctype_isUA (ct)) @@ -8759,6 +8806,23 @@ cstring sRef_nullMessage (sRef s) BADEXIT; } +cstring sRef_ntMessage (sRef s) +{ + llassert (sRef_isValid (s)); + + switch (s->nullstate) + { + case NS_DEFNULL: + case NS_CONSTNULL: + return (cstring_makeLiteralTemp ("not nullterminated")); + default: + return (cstring_makeLiteralTemp ("possibly non-nullterminated")); + } + BADEXIT; +} + + + sRef sRef_fixResultType (/*@returned@*/ sRef s, ctype typ, uentry ue) { sRef tmp = sRef_undefined; @@ -8965,8 +9029,63 @@ extern bool sRef_isNotNull (sRef s) || s->nullstate == NS_NOTNULL)); } +/* start modifications */ +struct _bbufinfo sRef_getNullTerminatedState (sRef p_s) { + struct _bbufinfo BUFSTATE_UNKNOWN; + BUFSTATE_UNKNOWN.bufstate = BB_NOTNULLTERMINATED; + BUFSTATE_UNKNOWN.size = 0; + if (sRef_isValid(p_s)) + return p_s->bufinfo; + return BUFSTATE_UNKNOWN; +} + +void sRef_setNullTerminatedState(sRef p_s) { + if(sRef_isValid (p_s)) { + p_s->bufinfo.bufstate = BB_NULLTERMINATED; + } else { + llfatalbug( message("sRef_setNT passed a invalid sRef\n")); + } +} +void sRef_setPossiblyNullTerminatedState(sRef p_s) { + if( sRef_isValid (p_s)) { + p_s->bufinfo.bufstate = BB_POSSIBLYNULLTERMINATED; + } else { + llfatalbug( message("sRef_setPossNT passed a invalid sRef\n")); + } +} +void sRef_setNotNullTerminatedState(sRef p_s) { + if( sRef_isValid (p_s)) { + p_s->bufinfo.bufstate = BB_NOTNULLTERMINATED; + } else { + llfatalbug( message("sRef_unsetNT passed a invalid sRef\n")); + } +} +void sRef_setLen(sRef p_s, int len) { + if( sRef_isValid (p_s) && sRef_isNullTerminated(p_s)) { + p_s->bufinfo.len = len; + } else { + llfatalbug( message("sRef_setLen passed a invalid sRef\n")); + } +} + + +void sRef_setSize(sRef p_s, int size) { + if( sRef_isValid(p_s)) { + p_s->bufinfo.size = size; + } else { + llfatalbug( message("sRef_setSize passed a invalid sRef\n")); + } +} + +void sRef_resetLen(sRef p_s) { + if (sRef_isValid (p_s)) { + p_s->bufinfo.len = 0; + } else { + llfatalbug (message ("sRef_setLen passed an invalid sRef\n")); + } +} diff --git a/src/signature.c.der b/src/signature.c.der index 9193368..630b5eb 100644 --- a/src/signature.c.der +++ b/src/signature.c.der @@ -46,7 +46,7 @@ /* A Bison parser, made from signature.y - by GNU Bison version 1.27 + by GNU Bison version 1.25 */ #define YYBISON 1 /* Identify Bison output. */ @@ -58,51 +58,51 @@ #define yychar lslchar #define yydebug lsldebug #define yynerrs lslnerrs -#define LST_SIMPLEID 257 -#define LST_LOGICALOP 258 -#define LST_EQOP 259 -#define LST_SIMPLEOP 260 -#define LST_MAPSYM 261 -#define LST_FIELDMAPSYM 262 -#define LST_MARKERSYM 263 -#define LST_ifTOKEN 264 -#define LST_thenTOKEN 265 -#define LST_elseTOKEN 266 -#define LST_LBRACKET 267 -#define LST_RBRACKET 268 -#define LST_SELECTSYM 269 -#define LST_SEPSYM 270 -#define LST_OPENSYM 271 -#define LST_CLOSESYM 272 -#define LST_COLON 273 -#define LST_COMMA 274 -#define LST_EOL 275 -#define LST_COMMENTSYM 276 -#define LST_WHITESPACE 277 -#define LST_QUANTIFIERSYM 278 -#define LST_EQUATIONSYM 279 -#define LST_EQSEPSYM 280 -#define LST_COMPOSESYM 281 -#define LST_LPAR 282 -#define LST_RPAR 283 -#define LST_assertsTOKEN 284 -#define LST_assumesTOKEN 285 -#define LST_byTOKEN 286 -#define LST_convertsTOKEN 287 -#define LST_enumerationTOKEN 288 -#define LST_equationsTOKEN 289 -#define LST_exemptingTOKEN 290 -#define LST_forTOKEN 291 -#define LST_generatedTOKEN 292 -#define LST_impliesTOKEN 293 -#define LST_includesTOKEN 294 -#define LST_introducesTOKEN 295 -#define LST_ofTOKEN 296 -#define LST_partitionedTOKEN 297 -#define LST_traitTOKEN 298 -#define LST_tupleTOKEN 299 -#define LST_unionTOKEN 300 -#define LST_BADTOKEN 301 +#define LST_SIMPLEID 258 +#define LST_LOGICALOP 259 +#define LST_EQOP 260 +#define LST_SIMPLEOP 261 +#define LST_MAPSYM 262 +#define LST_FIELDMAPSYM 263 +#define LST_MARKERSYM 264 +#define LST_ifTOKEN 265 +#define LST_thenTOKEN 266 +#define LST_elseTOKEN 267 +#define LST_LBRACKET 268 +#define LST_RBRACKET 269 +#define LST_SELECTSYM 270 +#define LST_SEPSYM 271 +#define LST_OPENSYM 272 +#define LST_CLOSESYM 273 +#define LST_COLON 274 +#define LST_COMMA 275 +#define LST_EOL 276 +#define LST_COMMENTSYM 277 +#define LST_WHITESPACE 278 +#define LST_QUANTIFIERSYM 279 +#define LST_EQUATIONSYM 280 +#define LST_EQSEPSYM 281 +#define LST_COMPOSESYM 282 +#define LST_LPAR 283 +#define LST_RPAR 284 +#define LST_assertsTOKEN 285 +#define LST_assumesTOKEN 286 +#define LST_byTOKEN 287 +#define LST_convertsTOKEN 288 +#define LST_enumerationTOKEN 289 +#define LST_equationsTOKEN 290 +#define LST_exemptingTOKEN 291 +#define LST_forTOKEN 292 +#define LST_generatedTOKEN 293 +#define LST_impliesTOKEN 294 +#define LST_includesTOKEN 295 +#define LST_introducesTOKEN 296 +#define LST_ofTOKEN 297 +#define LST_partitionedTOKEN 298 +#define LST_traitTOKEN 299 +#define LST_tupleTOKEN 300 +#define LST_unionTOKEN 301 +#define LST_BADTOKEN 302 #line 36 "signature.y" @@ -158,7 +158,7 @@ typedef union { #define YYFLAG -32768 #define YYNTBASE 48 -#define YYTRANSLATE(x) ((unsigned)(x) <= 301 ? yytranslate[x] : 62) +#define YYTRANSLATE(x) ((unsigned)(x) <= 302 ? yytranslate[x] : 62) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -186,12 +186,12 @@ 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, 1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47 + 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47 }; #if YYDEBUG != 0 @@ -312,8 +312,7 @@ static const short yycheck[] = { 3, #define YYPURE 1 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" -/* This file comes from bison-1.27. */ +#line 3 "/usr/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -330,66 +329,46 @@ static const short yycheck[] = { 3, 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. */ + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, 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 */ +#ifndef alloca #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 +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include #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. */ +#if defined (MSDOS) && !defined (__TURBOC__) #include -#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 */ +#include #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@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 +#else /* not MSDOS, __TURBOC__, or _AIX */ +#ifdef __hpux +#ifdef __cplusplus +extern "C" { +void *alloca (unsigned int); +}; +#else /* not __cplusplus */ +void *alloca (); +#endif /* not __cplusplus */ #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 */ +#endif /* not sparc. */ +#endif /* not GNU C. */ +#endif /* alloca not defined. */ -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif +/* 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. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action @@ -399,8 +378,8 @@ static const short yycheck[] = { 3, #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab +#define YYACCEPT return(0) +#define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the @@ -481,12 +460,12 @@ int yydebug; /* nonzero means print parse trace */ #ifndef YYMAXDEPTH #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. */ +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +int yyparse (void); +#endif + #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++ */ @@ -498,7 +477,7 @@ static void __yy_memcpy (to, from, count) char *to; char *from; - unsigned int count; + int count; { register char *f = from; register char *t = to; @@ -513,10 +492,10 @@ __yy_memcpy (to, from, count) /* 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) +__yy_memcpy (char *to, char *from, int count) { - register char *t = to; register char *f = from; + register char *t = to; register int i = count; while (i-- > 0) @@ -526,7 +505,7 @@ __yy_memcpy (char *to, char *from, unsigned int count) #endif #endif -#line 216 "/usr/lib/bison.simple" +#line 196 "/usr/share/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 *. @@ -547,15 +526,6 @@ __yy_memcpy (char *to, char *from, unsigned int count) #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); -#else -int yyparse (void); -#endif -#endif - int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL @@ -584,7 +554,6 @@ yyparse(YYPARSE_PARAM_ARG) #endif int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; #ifdef YYPURE int yychar; @@ -669,32 +638,18 @@ yynewstate: if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) 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)); + yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); + yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); + yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ @@ -1023,7 +978,7 @@ case 38: break;} } /* the action file gets copied in in place of this dollarsign */ -#line 542 "/usr/lib/bison.simple" +#line 498 "/usr/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -1218,30 +1173,6 @@ yyerrhandle: yystate = yyn; goto yynewstate; - - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 1; } #line 249 "signature.y" @@ -1252,9 +1183,8 @@ extern char *yytext; void lslerror (char *s) { - lclplainerror - (message ("An error has occurred in parsing LSL signature: %s", - cstring_fromChars (s))); + lclplainerror (message ("An error has occurred in parsing LSL signature: %s", + cstring_fromChars (s))); } static void yyprint (FILE *file, int type, YYSTYPE value) diff --git a/src/uentry.c b/src/uentry.c index 4a9aa5f..386fed9 100644 --- a/src/uentry.c +++ b/src/uentry.c @@ -2052,6 +2052,63 @@ uentry_reflectQualifiers (uentry ue, qualList q) qual_unparse (qel), uentry_unparse (ue))); } } + /* start modifications */ + + else if( qual_isBufQualifier(qel) ) { + ctype ct = ctype_realType(uentry_getType(ue)); + + if( ctype_isArray(ct) || ctype_isPointer(ct) ) { + + if( uentry_hasBufStateInfo(ue) ) { + + if( qual_isNullTerminated(qel) ) { /* handle Nullterm */ + + if (uentry_isAnyParam(ue) || uentry_isReturned (ue)) { + /* If formal func param */ + uentry_setNullTerminatedState(ue); + uentry_setLen (ue, 1); + uentry_setSize (ue, 1); + + sRef_setNullTerminatedState(uentry_getSref(ue)); + sRef_setLen (uentry_getSref(ue), 1); + sRef_setSize (uentry_getSref(ue), 1); + } else { + uentry_setPossiblyNullTerminatedState(ue); + + sRef_setPossiblyNullTerminatedState(uentry_getSref(ue)); + } + + } + /* put other BufState Qualifiers here */ + } else { + llfatalbug(message("INTERNAL Error: we have a NULL BufState \ + struct for identifier %s\n", uentry_getName(ue) ) ); + } + } else if (ctype_isFunction (ct)) { /* We have to handle function */ + + sRef retSref = uentry_getSref (ue); + ctype retType = sRef_getType (retSref); + + if (ctype_isPointer (retType) || ctype_isArray (retType)) { + sRef_setNullTerminatedState (retSref); + + } else { + + llerror + (FLG_SYNTAX, + message ("Qualifier %s used on non-pointer on \ + function return: %q", qual_unparse (qel), + uentry_unparse (ue))); + } + } + + else { + llerror + (FLG_SYNTAX, + message ("Qualifier %s used on non-pointer: %q", + qual_unparse (qel), uentry_unparse (ue))); + } + }/* end else if */ else if (qual_isAllocQual (qel)) /* out, partial, reldef, special, etc. */ { ctype realType = ctype_realType (ue->utype); @@ -2678,6 +2735,20 @@ static /*@only@*/ /*@notnull@*/ e->info->var->defstate = sRef_getDefState (e->sref); e->info->var->nullstate = sRef_getNullState (e->sref); +/* start modifications */ +/* This function sets the uentry for a pointer or array variable declaration, + it allocates memory and sets the fields. We check if the type of the variable + is a pointer or array and allocate a `bbufinfo' struct accordingly */ + + if( ctype_isArray (t) || ctype_isPointer(t)) { + e->info->var->bufinfo = dmalloc( sizeof(*e->info->var->bufinfo) ); + e->info->var->bufinfo->bufstate = BB_NOTNULLTERMINATED; + s->bufinfo.bufstate = BB_NOTNULLTERMINATED; + } else { + e->info->var->bufinfo = NULL; + }/* end else */ +/* end modification */ + return (e); } @@ -9392,5 +9463,108 @@ void uentry_checkName (uentry ue) } +/* start modifications */ +/* +requires: p_e is defined, is a ptr/array variable +modifies: p_e +effects: sets the state of the variable +*/ + +void uentry_setPossiblyNullTerminatedState (uentry p_e) { + if( uentry_isValid(p_e) ) { + if( p_e->info != NULL) { + if( p_e->info->var != NULL) { + p_e->info->var->bufinfo->bufstate = BB_POSSIBLYNULLTERMINATED; + p_e->sref->bufinfo.bufstate = BB_POSSIBLYNULLTERMINATED; + return; + }/* End if */ + }/* End if */ + }/* End if */ + + fprintf(stderr, "uentry:Error in setPossiblyNullTerminatedState\n"); +} + +/* +requires: p_e is defined, is a ptr/array variable +modifies: p_e +effects: sets the size of the buffer +*/ + +void uentry_setNullTerminatedState (uentry p_e) { + if( uentry_isValid(p_e) ) { + if( p_e->info != NULL) { + if( p_e->info->var != NULL) { + p_e->info->var->bufinfo->bufstate = BB_NULLTERMINATED; + p_e->sref->bufinfo.bufstate = BB_NULLTERMINATED; + return; + }//End if + }//End if + }//End if + + fprintf(stderr, "uentry:Error in setNullTerminatedState\n"); +} + + +/* +requires: p_e is defined, is a ptr/array variable +modifies: p_e +effects: sets the state of the variable +*/ + +void uentry_setNotNullTerminatedState (uentry p_e) { + if( uentry_isValid(p_e) ) { + if( p_e->info != NULL) { + if( p_e->info->var != NULL) { + p_e->info->var->bufinfo->bufstate = BB_NOTNULLTERMINATED; + p_e->sref->bufinfo.bufstate = BB_NOTNULLTERMINATED; + return; + }//End if + }//End if + }//End if + + fprintf(stderr, "uentry:Error in setNotNullTerminatedState\n"); +} + + +/* +requires: p_e is defined, is a ptr/array variable +modifies: p_e +effects: sets the size of the buffer +*/ + +void uentry_setSize (uentry p_e, int size) { + if( uentry_isValid(p_e) ) { + if( p_e->info != NULL) { + if( p_e->info->var != NULL) { + p_e->info->var->bufinfo->size = size; + p_e->sref->bufinfo.size = size; + return; + }//End if + }//End if + }//End if + + fprintf(stderr, "uentry:Error in setSize\n"); +} + + +/* +requires: p_e is defined, is a ptr/array variable +modifies: p_e +effects: sets the length of the buffer +*/ + +void uentry_setLen (uentry p_e, int len) { + if( uentry_isValid(p_e) ) { + if( p_e->info != NULL) { + if( p_e->info->var != NULL) { + p_e->info->var->bufinfo->len = len; + p_e->sref->bufinfo.len = len; + return; + }//End if + }//End if + }//End if + + fprintf(stderr, "uentry:Error in setLen\n"); +} diff --git a/test/Makefile b/test/Makefile index 9206dc8..bab3fe2 100644 --- a/test/Makefile +++ b/test/Makefile @@ -21,6 +21,7 @@ .PHONY: typequals ud ulstypes union unreachable unused .PHONY: db1 db2 db3 tests2.2 tests2.2a tests2.4 .PHONY: all test fulltest expects quicktest +.PHONY: nullterminatedtest .SUFFIXES: .out .expect .c .lcl .h .lh .diff @@ -35,7 +36,7 @@ LCLINTP = $(LCLINT) LCLINTRN = $(LCLINTP) -nof -hints -booltype "bool" LCLINTR = $(LCLINTRN) -exportlocal -UNITTESTS = help abstptr abstract alias alttypes ansireserved argorder args blocks break cases cast charlit clauses commentchar compdestroy controldepth csyntax czechnames czechoslovaknames decl enum exports external fields flags funcpointer glob globals impabstract init inparam internal iter keep libs lintcomments list macros macrosef merge modifies modtest moduncon mongoincludes null observer oldstyle outglob outparam preds prefixes printflike rc refcounts release repexpose sharing slovaknames specclauses special stack staticarray strings structassign typequals ud ulstypes union unreachable unused tests2.2 tests2.2a tests2.4 +UNITTESTS = help abstptr abstract alias alttypes ansireserved argorder args blocks break cases cast charlit clauses commentchar compdestroy controldepth csyntax czechnames czechoslovaknames decl enum exports external fields flags funcpointer glob globals impabstract init inparam internal iter keep libs lintcomments list macros macrosef merge modifies modtest moduncon mongoincludes null observer oldstyle outglob outparam preds prefixes printflike rc refcounts release repexpose sharing slovaknames specclauses special stack staticarray strings structassign typequals ud ulstypes union unreachable unused tests2.2 tests2.2a tests2.4 nullterminatedtest UNITEXPECTS = $(addsuffix .expect, $(UNITTESTS)) @@ -575,6 +576,11 @@ tests2.4: $(LCLINTR) alignof.c -expect 2 ; \ $(LCLINTR) -D DBL_MANT_DIG=25 source.c +nullterminatedtest: + @cd nullterminatedtest; \ + $(LCLINTR) test1.c; \ + $(LCLINTR) test2.c + ### ### Integration Tests ### diff --git a/test/abst_t.lcs b/test/abst_t.lcs index 580177b..bfe3f63 100644 --- a/test/abst_t.lcs +++ b/test/abst_t.lcs @@ -20,18 +20,19 @@ %LCLsort _abst3_Obj mutable abst3 nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -44,8 +45,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -82,11 +83,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -120,7 +121,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/abstptr.lcs b/test/abstptr.lcs index 11be134..b64ab78 100644 --- a/test/abstptr.lcs +++ b/test/abstptr.lcs @@ -16,18 +16,19 @@ %LCLsort _abst_Obj mutable abst nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -40,8 +41,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -78,11 +79,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -114,7 +115,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/alias.lcs b/test/alias.lcs index a740245..dee8c94 100644 --- a/test/alias.lcs +++ b/test/alias.lcs @@ -24,18 +24,19 @@ %LCLsort ___int_Obj_Ptr_Vec vec __int_Obj_Ptr ____int_Obj_Ptr_Obj_Arr %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -48,8 +49,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -86,17 +87,17 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr %LCLop __ [] :____int_Obj_Ptr_Obj_Ptr -> ____int_Obj_Ptr_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :_int_Vec, int -> int %LCLop __ [__] :__int_Obj_Arr, int -> _int_Obj %LCLop __ [__] :___int_Obj_Ptr_Vec, int -> __int_Obj_Ptr %LCLop __ [__] :____int_Obj_Ptr_Obj_Arr, int -> ___int_Obj_Ptr_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -142,7 +143,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/alias2.lcs b/test/alias2.lcs index 5338dd6..b9ef2e6 100644 --- a/test/alias2.lcs +++ b/test/alias2.lcs @@ -24,18 +24,19 @@ %LCLsort ___int_Obj_Ptr_Vec vec __int_Obj_Ptr ____int_Obj_Ptr_Obj_Arr %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -48,8 +49,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -86,17 +87,17 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr %LCLop __ [] :____int_Obj_Ptr_Obj_Ptr -> ____int_Obj_Ptr_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :_int_Vec, int -> int %LCLop __ [__] :__int_Obj_Arr, int -> _int_Obj %LCLop __ [__] :___int_Obj_Ptr_Vec, int -> __int_Obj_Ptr %LCLop __ [__] :____int_Obj_Ptr_Obj_Arr, int -> ___int_Obj_Ptr_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -142,7 +143,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/alias3.lcs b/test/alias3.lcs index fe74934..53fcdb9 100644 --- a/test/alias3.lcs +++ b/test/alias3.lcs @@ -45,18 +45,19 @@ %LCLsort ___ualias30u_Union_Ptr_Obj obj __ualias30u_Union_Ptr nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -69,8 +70,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -108,24 +109,22 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec +%LCLop [__, __] :__int_Obj_Ptr, int -> _salias30s_Struct_Tuple %LCLop __ \select a :_salias30s_Struct_Tuple -> int %LCLop __ \select a :_salias30s_Struct -> _int_Obj %LCLop __ \select a :_ualias30u_Union_UnionVal -> int %LCLop __ \select a :_ualias30u_Union -> _int_Obj -%LCLop [__, __] :__int_Obj_Ptr, int -> _salias30s_Struct_Tuple -%LCLop __ \select b :_salias30s_Struct_Tuple -> __int_Obj_Ptr -%LCLop __ \select b :_salias30s_Struct -> ___int_Obj_Ptr_Obj -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr %LCLop __ [] :__salias30s_Struct_Ptr -> __salias30s_Struct_Arr %LCLop __ [] :____int_Obj_Ptr_Obj_Ptr -> ____int_Obj_Ptr_Obj_Arr %LCLop __ [] :__ualias30u_Union_Ptr -> __ualias30u_Union_Arr +%LCLop __ \select b :_salias30s_Struct_Tuple -> __int_Obj_Ptr +%LCLop __ \select b :_salias30s_Struct -> ___int_Obj_Ptr_Obj +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ \field_arrow a :__salias30s_Struct_Ptr -> _int_Obj %LCLop __ \field_arrow a :__ualias30u_Union_Ptr -> int %LCLop __ \field_arrow a :__ualias30u_Union_Ptr -> _int_Obj -%LCLop __ \field_arrow b :__salias30s_Struct_Ptr -> ___int_Obj_Ptr_Obj -%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :_int_Vec, int -> int @@ -136,6 +135,8 @@ %LCLop __ [__] :____int_Obj_Ptr_Obj_Arr, int -> ___int_Obj_Ptr_Obj %LCLop __ [__] :__ualias30u_Union_UnionVal_Vec, int -> _ualias30u_Union_UnionVal %LCLop __ [__] :__ualias30u_Union_Arr, int -> _ualias30u_Union +%LCLop __ \field_arrow b :__salias30s_Struct_Ptr -> ___int_Obj_Ptr_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -206,7 +207,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/alias4.lcs b/test/alias4.lcs index 17c2cce..13f5603 100644 --- a/test/alias4.lcs +++ b/test/alias4.lcs @@ -37,18 +37,19 @@ %LCLsort __salias41s_Struct_Tuple_Vec vec _salias41s_Struct_Tuple __salias41s_Struct_Arr %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -61,8 +62,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -101,12 +102,11 @@ %LCLop { __ } :char -> _char_Vec %LCLop [__, __] :__int_Obj_Ptr, int -> _salias40s_Struct_Tuple %LCLop [__, __] :__int_Obj_Ptr, int -> _salias41s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr %LCLop __ [] :__salias40s_Struct_Ptr -> __salias40s_Struct_Arr %LCLop __ [] :__salias41s_Struct_Ptr -> __salias41s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :_int_Vec, int -> int @@ -115,6 +115,7 @@ %LCLop __ [__] :__salias40s_Struct_Arr, int -> _salias40s_Struct %LCLop __ [__] :__salias41s_Struct_Tuple_Vec, int -> _salias41s_Struct_Tuple %LCLop __ [__] :__salias41s_Struct_Arr, int -> _salias41s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -179,7 +180,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/alias5.lcs b/test/alias5.lcs index a85e4fe..64c47fc 100644 --- a/test/alias5.lcs +++ b/test/alias5.lcs @@ -16,18 +16,19 @@ %LCLsort _pair_Obj mutable pair nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -40,8 +41,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -78,11 +79,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -114,7 +115,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/argorder2.lcs b/test/argorder2.lcs index 2a106ee..cc428c2 100644 --- a/test/argorder2.lcs +++ b/test/argorder2.lcs @@ -15,18 +15,19 @@ %LCLsort _int_Obj obj int nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -39,8 +40,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -77,11 +78,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -112,7 +113,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/argorder4.lcs b/test/argorder4.lcs index 1910eef..f5fd991 100644 --- a/test/argorder4.lcs +++ b/test/argorder4.lcs @@ -15,18 +15,19 @@ %LCLsort _int_Obj obj int nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -39,8 +40,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -77,11 +78,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -112,7 +113,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/args.lcs b/test/args.lcs index 8cb4c0d..46b12e3 100644 --- a/test/args.lcs +++ b/test/args.lcs @@ -14,18 +14,19 @@ %LCLsort double primitive nil nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -38,8 +39,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -76,11 +77,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -111,7 +112,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/cast.lcs b/test/cast.lcs index 0575b47..e281012 100644 --- a/test/cast.lcs +++ b/test/cast.lcs @@ -18,18 +18,19 @@ %LCLsort _abst2_Obj mutable abst2 nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -42,8 +43,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -80,11 +81,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -117,7 +118,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db1/bool.lcs b/test/db1/bool.lcs index fa3d2a7..0068439 100644 --- a/test/db1/bool.lcs +++ b/test/db1/bool.lcs @@ -14,18 +14,19 @@ %LCLsort double primitive nil nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -38,8 +39,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -76,11 +77,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -111,7 +112,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db1/dbase.lcs b/test/db1/dbase.lcs index e774f8d..8cc2cc0 100644 --- a/test/db1/dbase.lcs +++ b/test/db1/dbase.lcs @@ -120,18 +120,19 @@ %LCLsort _db_Obj obj db nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -144,8 +145,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -167,25 +168,25 @@ %LCLtag sstdlib0s struct %LCLop MALE : -> _eemployee0e_Enum %LCLop FEMALE : -> _eemployee0e_Enum -%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop __ * __ :int, int -> int %LCLop __ * __ :double, double -> double -%LCLtag eemployee0e enum +%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop true : -> bool +%LCLtag eemployee0e enum %LCLop false : -> bool %LCLop MGR : -> _eemployee1e_Enum %LCLop NONMGR : -> _eemployee1e_Enum +%LCLop __ \and __ :bool, bool -> bool %LCLtag sstdlib1s struct %LCLop job_ANY : -> _eemployee1e_Enum -%LCLop __ \and __ :bool, bool -> bool %LCLop __ \or __ :bool, bool -> bool -%LCLtag eemployee1e enum %LCLop __ \eq __ :bool, bool -> bool %LCLop __ \eq __ :int, int -> bool %LCLop __ \eq __ :double, double -> bool %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool +%LCLtag eemployee1e enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool @@ -201,7 +202,6 @@ %LCLop missERR : -> _edbase2e_Enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr @@ -212,7 +212,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__sdbase1s_Struct_Ptr -> __sdbase1s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple @@ -233,16 +233,17 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__sdbase1s_Struct_Tuple_Vec, int -> _sdbase1s_Struct_Tuple %LCLop __ [__] :__sdbase1s_Struct_Arr, int -> _sdbase1s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __] :int, int, _eemployee1e_Enum, _eemployee0e_Enum -> _sdbase1s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select rem :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select rem :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select rem :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select rem :_sstdlib1s_Struct -> _int_Obj -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -251,9 +252,9 @@ %LCLop __ \field_arrow rem :__sstdlib1s_Struct_Ptr -> _int_Obj %LCLop __ \geq __ :int, int -> bool %LCLop __ \geq __ :double, double -> bool +%LCLop null : -> char %LCLop __ \select g :_sdbase1s_Struct_Tuple -> _eemployee0e_Enum %LCLop __ \select g :_sdbase1s_Struct -> __eemployee0e_Enum_Obj -%LCLop null : -> char %LCLop __ \select l :_sdbase1s_Struct_Tuple -> int %LCLop __ \select l :_sdbase1s_Struct -> _int_Obj %LCLop __ \field_arrow g :__sdbase1s_Struct_Ptr -> __eemployee0e_Enum_Obj @@ -378,7 +379,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db1/employee.lcs b/test/db1/employee.lcs index 92ba154..ca9686f 100644 --- a/test/db1/employee.lcs +++ b/test/db1/employee.lcs @@ -41,18 +41,19 @@ %LCLsort _employee synonym _semployee0s_Struct nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -65,8 +66,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -87,15 +88,15 @@ %LCLop 9 : -> int %LCLop MALE : -> _eemployee0e_Enum %LCLop FEMALE : -> _eemployee0e_Enum -%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop __ * __ :int, int -> int %LCLop __ * __ :double, double -> double +%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop true : -> bool %LCLop false : -> bool %LCLop MGR : -> _eemployee1e_Enum %LCLop NONMGR : -> _eemployee1e_Enum -%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \and __ :bool, bool -> bool +%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \or __ :bool, bool -> bool %LCLop __ \eq __ :bool, bool -> bool %LCLop __ \eq __ :int, int -> bool @@ -109,14 +110,14 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool @@ -172,7 +173,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db1/empset.lcs b/test/db1/empset.lcs index 83a4b0e..e56e588 100644 --- a/test/db1/empset.lcs +++ b/test/db1/empset.lcs @@ -46,18 +46,19 @@ %LCLsort _empset_Obj mutable empset nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -70,8 +71,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -92,24 +93,24 @@ %LCLop 9 : -> int %LCLop MALE : -> _eemployee0e_Enum %LCLop FEMALE : -> _eemployee0e_Enum -%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop __ * __ :int, int -> int %LCLop __ * __ :double, double -> double -%LCLtag eemployee0e enum +%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop true : -> bool +%LCLtag eemployee0e enum %LCLop false : -> bool %LCLop MGR : -> _eemployee1e_Enum %LCLop NONMGR : -> _eemployee1e_Enum -%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \and __ :bool, bool -> bool +%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \or __ :bool, bool -> bool -%LCLtag eemployee1e enum %LCLop __ \eq __ :bool, bool -> bool %LCLop __ \eq __ :int, int -> bool %LCLop __ \eq __ :double, double -> bool %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool +%LCLtag eemployee1e enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool @@ -117,14 +118,14 @@ %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec %LCLtag semployee0s struct -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool @@ -183,7 +184,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db1/erc.lcs b/test/db1/erc.lcs index 669b65e..595b019 100644 --- a/test/db1/erc.lcs +++ b/test/db1/erc.lcs @@ -52,18 +52,19 @@ %LCLsort _ercIter_Obj mutable ercIter nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -76,8 +77,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -98,24 +99,24 @@ %LCLop 9 : -> int %LCLop MALE : -> _eemployee0e_Enum %LCLop FEMALE : -> _eemployee0e_Enum -%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop __ * __ :int, int -> int %LCLop __ * __ :double, double -> double -%LCLtag eemployee0e enum +%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop true : -> bool +%LCLtag eemployee0e enum %LCLop false : -> bool %LCLop MGR : -> _eemployee1e_Enum %LCLop NONMGR : -> _eemployee1e_Enum -%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \and __ :bool, bool -> bool +%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \or __ :bool, bool -> bool -%LCLtag eemployee1e enum %LCLop __ \eq __ :bool, bool -> bool %LCLop __ \eq __ :int, int -> bool %LCLop __ \eq __ :double, double -> bool %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool +%LCLtag eemployee1e enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool @@ -123,14 +124,14 @@ %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec %LCLtag semployee0s struct -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool @@ -192,7 +193,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db1/eref.lcs b/test/db1/eref.lcs index 8f635c9..7d9c1e5 100644 --- a/test/db1/eref.lcs +++ b/test/db1/eref.lcs @@ -44,18 +44,19 @@ %LCLsort _map_Obj obj map nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -68,8 +69,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -90,24 +91,24 @@ %LCLop 9 : -> int %LCLop MALE : -> _eemployee0e_Enum %LCLop FEMALE : -> _eemployee0e_Enum -%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop __ * __ :int, int -> int %LCLop __ * __ :double, double -> double -%LCLtag eemployee0e enum +%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop true : -> bool +%LCLtag eemployee0e enum %LCLop false : -> bool %LCLop MGR : -> _eemployee1e_Enum %LCLop NONMGR : -> _eemployee1e_Enum -%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \and __ :bool, bool -> bool +%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \or __ :bool, bool -> bool -%LCLtag eemployee1e enum %LCLop __ \eq __ :bool, bool -> bool %LCLop __ \eq __ :int, int -> bool %LCLop __ \eq __ :double, double -> bool %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool +%LCLtag eemployee1e enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool @@ -115,14 +116,14 @@ %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec %LCLtag semployee0s struct -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool @@ -180,7 +181,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db1/ereftab.lcs b/test/db1/ereftab.lcs index a2c3ffa..9b5a6fa 100644 --- a/test/db1/ereftab.lcs +++ b/test/db1/ereftab.lcs @@ -48,18 +48,19 @@ %LCLsort _ereftab_Obj mutable ereftab nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -72,8 +73,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -94,24 +95,24 @@ %LCLop 9 : -> int %LCLop MALE : -> _eemployee0e_Enum %LCLop FEMALE : -> _eemployee0e_Enum -%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop __ * __ :int, int -> int %LCLop __ * __ :double, double -> double -%LCLtag eemployee0e enum +%LCLop gender_ANY : -> _eemployee0e_Enum %LCLop true : -> bool +%LCLtag eemployee0e enum %LCLop false : -> bool %LCLop MGR : -> _eemployee1e_Enum %LCLop NONMGR : -> _eemployee1e_Enum -%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \and __ :bool, bool -> bool +%LCLop job_ANY : -> _eemployee1e_Enum %LCLop __ \or __ :bool, bool -> bool -%LCLtag eemployee1e enum %LCLop __ \eq __ :bool, bool -> bool %LCLop __ \eq __ :int, int -> bool %LCLop __ \eq __ :double, double -> bool %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool +%LCLtag eemployee1e enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool @@ -119,14 +120,14 @@ %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec %LCLtag semployee0s struct -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool @@ -186,7 +187,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db2/dbase.lcs b/test/db2/dbase.lcs index 0959890..e1c8f64 100644 --- a/test/db2/dbase.lcs +++ b/test/db2/dbase.lcs @@ -118,18 +118,19 @@ %LCLsort _db_Obj obj db nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -142,8 +143,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -176,14 +177,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop gender_ANY : -> _eemployee0e_Enum %LCLop db_OK : -> _edbase2e_Enum %LCLop salERR : -> _edbase2e_Enum @@ -198,7 +199,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -209,7 +209,7 @@ %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr %LCLop __ [] :__sdbase1s_Struct_Ptr -> __sdbase1s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -230,13 +230,14 @@ %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct %LCLop __ [__] :__sdbase1s_Struct_Tuple_Vec, int -> _sdbase1s_Struct_Tuple %LCLop __ [__] :__sdbase1s_Struct_Arr, int -> _sdbase1s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __] :int, int, _eemployee1e_Enum, _eemployee0e_Enum -> _sdbase1s_Struct_Tuple +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -257,8 +258,8 @@ %LCLop __ \select h :_sdbase1s_Struct_Tuple -> int %LCLop __ \select h :_sdbase1s_Struct -> _int_Obj %LCLop __ \field_arrow l :__sdbase1s_Struct_Ptr -> _int_Obj -%LCLop __ \field_arrow h :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop null : -> char +%LCLop __ \field_arrow h :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop __ \select ssNum :_semployee0s_Struct_Tuple -> int %LCLop __ \select ssNum :_semployee0s_Struct -> _int_Obj %LCLop __ \select name :_semployee0s_Struct_Tuple -> _char_Vec @@ -375,7 +376,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db2/employee.lcs b/test/db2/employee.lcs index 1a9f545..657501f 100644 --- a/test/db2/employee.lcs +++ b/test/db2/employee.lcs @@ -87,18 +87,19 @@ %LCLsort _employee synonym _semployee0s_Struct nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -111,8 +112,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -145,21 +146,20 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop gender_ANY : -> _eemployee0e_Enum %LCLop MGR : -> _eemployee1e_Enum %LCLop NONMGR : -> _eemployee1e_Enum %LCLop job_ANY : -> _eemployee1e_Enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -169,7 +169,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -188,11 +188,12 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -305,7 +306,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db2/empset.lcs b/test/db2/empset.lcs index 985701f..5d64742 100644 --- a/test/db2/empset.lcs +++ b/test/db2/empset.lcs @@ -92,18 +92,19 @@ %LCLsort _empset_Obj mutable empset nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -116,8 +117,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -150,14 +151,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop gender_ANY : -> _eemployee0e_Enum %LCLtag eemployee0e enum %LCLop MGR : -> _eemployee1e_Enum @@ -166,7 +167,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -176,7 +176,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -195,12 +195,13 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -316,7 +317,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db2/erc.lcs b/test/db2/erc.lcs index e11d128..e1e0e13 100644 --- a/test/db2/erc.lcs +++ b/test/db2/erc.lcs @@ -96,18 +96,19 @@ %LCLsort _erc_Obj mutable erc nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -120,8 +121,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -154,14 +155,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop gender_ANY : -> _eemployee0e_Enum %LCLtag eemployee0e enum %LCLop MGR : -> _eemployee1e_Enum @@ -170,7 +171,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -180,7 +180,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -199,12 +199,13 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -322,7 +323,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db2/eref.lcs b/test/db2/eref.lcs index ebac697..2fa693c 100644 --- a/test/db2/eref.lcs +++ b/test/db2/eref.lcs @@ -90,18 +90,19 @@ %LCLsort _map_Obj obj map nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -114,8 +115,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -148,14 +149,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop gender_ANY : -> _eemployee0e_Enum %LCLtag eemployee0e enum %LCLop MGR : -> _eemployee1e_Enum @@ -164,7 +165,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -174,7 +174,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -193,12 +193,13 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -313,7 +314,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db2/ereftab.lcs b/test/db2/ereftab.lcs index 484988c..df3ca9a 100644 --- a/test/db2/ereftab.lcs +++ b/test/db2/ereftab.lcs @@ -94,18 +94,19 @@ %LCLsort _ereftab_Obj mutable ereftab nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -118,8 +119,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -152,14 +153,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop gender_ANY : -> _eemployee0e_Enum %LCLtag eemployee0e enum %LCLop MGR : -> _eemployee1e_Enum @@ -168,7 +169,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -178,7 +178,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -197,12 +197,13 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -319,7 +320,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db3/bool.lcs b/test/db3/bool.lcs index 4406ae4..7462329 100644 --- a/test/db3/bool.lcs +++ b/test/db3/bool.lcs @@ -118,18 +118,19 @@ %LCLsort _db_Obj obj db nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -142,8 +143,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -176,14 +177,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop GENDER_UNKNOWN : -> _eemployee0e_Enum %LCLop DBS_OK : -> _edbase2e_Enum %LCLtag eemployee0e enum @@ -198,7 +199,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -209,7 +209,7 @@ %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr %LCLop __ [] :__sdbase1s_Struct_Ptr -> __sdbase1s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -230,13 +230,14 @@ %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct %LCLop __ [__] :__sdbase1s_Struct_Tuple_Vec, int -> _sdbase1s_Struct_Tuple %LCLop __ [__] :__sdbase1s_Struct_Arr, int -> _sdbase1s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __] :int, int, _eemployee1e_Enum, _eemployee0e_Enum -> _sdbase1s_Struct_Tuple +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -256,8 +257,8 @@ %LCLop __ \field_arrow g :__sdbase1s_Struct_Ptr -> __eemployee0e_Enum_Obj %LCLop __ \select h :_sdbase1s_Struct_Tuple -> int %LCLop __ \select h :_sdbase1s_Struct -> _int_Obj -%LCLop __ \field_arrow l :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop null : -> char +%LCLop __ \field_arrow l :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop __ \field_arrow h :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop __ \select ssNum :_semployee0s_Struct_Tuple -> int %LCLop __ \select ssNum :_semployee0s_Struct -> _int_Obj @@ -375,7 +376,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db3/check.lcs b/test/db3/check.lcs index 55c4294..dd3958e 100644 --- a/test/db3/check.lcs +++ b/test/db3/check.lcs @@ -118,18 +118,19 @@ %LCLsort _db_Obj obj db nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -142,8 +143,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -167,8 +168,8 @@ %LCLop __ * __ :double, double -> double %LCLop true : -> bool %LCLop false : -> bool -%LCLtag sdbase1s struct %LCLop __ \and __ :bool, bool -> bool +%LCLtag sdbase1s struct %LCLop __ \or __ :bool, bool -> bool %LCLtag sstdlib1s struct %LCLop __ \eq __ :bool, bool -> bool @@ -177,14 +178,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop GENDER_UNKNOWN : -> _eemployee0e_Enum %LCLop DBS_OK : -> _edbase2e_Enum %LCLtag eemployee0e enum @@ -200,7 +201,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -211,7 +211,7 @@ %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr %LCLop __ [] :__sdbase1s_Struct_Ptr -> __sdbase1s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -232,13 +232,14 @@ %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct %LCLop __ [__] :__sdbase1s_Struct_Tuple_Vec, int -> _sdbase1s_Struct_Tuple %LCLop __ [__] :__sdbase1s_Struct_Arr, int -> _sdbase1s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __] :int, int, _eemployee1e_Enum, _eemployee0e_Enum -> _sdbase1s_Struct_Tuple +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -258,8 +259,8 @@ %LCLop __ \field_arrow g :__sdbase1s_Struct_Ptr -> __eemployee0e_Enum_Obj %LCLop __ \select h :_sdbase1s_Struct_Tuple -> int %LCLop __ \select h :_sdbase1s_Struct -> _int_Obj -%LCLop __ \field_arrow l :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop null : -> char +%LCLop __ \field_arrow l :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop __ \field_arrow h :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop __ \select ssNum :_semployee0s_Struct_Tuple -> int %LCLop __ \select ssNum :_semployee0s_Struct -> _int_Obj @@ -377,7 +378,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db3/dbase.lcs b/test/db3/dbase.lcs index b314ef0..f991cce 100644 --- a/test/db3/dbase.lcs +++ b/test/db3/dbase.lcs @@ -118,18 +118,19 @@ %LCLsort _db_Obj obj db nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -142,8 +143,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -176,14 +177,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop GENDER_UNKNOWN : -> _eemployee0e_Enum %LCLop DBS_OK : -> _edbase2e_Enum %LCLtag eemployee0e enum @@ -198,7 +199,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -209,7 +209,7 @@ %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr %LCLop __ [] :__sdbase1s_Struct_Ptr -> __sdbase1s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -230,13 +230,14 @@ %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct %LCLop __ [__] :__sdbase1s_Struct_Tuple_Vec, int -> _sdbase1s_Struct_Tuple %LCLop __ [__] :__sdbase1s_Struct_Arr, int -> _sdbase1s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop [__, __, __, __] :int, int, _eemployee1e_Enum, _eemployee0e_Enum -> _sdbase1s_Struct_Tuple +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -256,8 +257,8 @@ %LCLop __ \field_arrow g :__sdbase1s_Struct_Ptr -> __eemployee0e_Enum_Obj %LCLop __ \select h :_sdbase1s_Struct_Tuple -> int %LCLop __ \select h :_sdbase1s_Struct -> _int_Obj -%LCLop __ \field_arrow l :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop null : -> char +%LCLop __ \field_arrow l :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop __ \field_arrow h :__sdbase1s_Struct_Ptr -> _int_Obj %LCLop __ \select ssNum :_semployee0s_Struct_Tuple -> int %LCLop __ \select ssNum :_semployee0s_Struct -> _int_Obj @@ -375,7 +376,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db3/employee.lcs b/test/db3/employee.lcs index 4c23f7d..5b3a8bb 100644 --- a/test/db3/employee.lcs +++ b/test/db3/employee.lcs @@ -87,18 +87,19 @@ %LCLsort _employee synonym _semployee0s_Struct nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -111,8 +112,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -145,21 +146,20 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop GENDER_UNKNOWN : -> _eemployee0e_Enum %LCLop MGR : -> _eemployee1e_Enum %LCLop NONMGR : -> _eemployee1e_Enum %LCLop JOB_UNKNOWN : -> _eemployee1e_Enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -169,7 +169,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -188,11 +188,12 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -305,7 +306,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db3/empset.lcs b/test/db3/empset.lcs index 3c40345..9e32ecc 100644 --- a/test/db3/empset.lcs +++ b/test/db3/empset.lcs @@ -92,18 +92,19 @@ %LCLsort _empset_Obj mutable empset nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -116,8 +117,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -150,14 +151,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop GENDER_UNKNOWN : -> _eemployee0e_Enum %LCLtag eemployee0e enum %LCLop MGR : -> _eemployee1e_Enum @@ -166,7 +167,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -176,7 +176,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -195,12 +195,13 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -316,7 +317,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db3/erc.lcs b/test/db3/erc.lcs index b2406b2..244a9d2 100644 --- a/test/db3/erc.lcs +++ b/test/db3/erc.lcs @@ -96,18 +96,19 @@ %LCLsort _erc_Obj mutable erc nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -120,8 +121,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -154,14 +155,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop GENDER_UNKNOWN : -> _eemployee0e_Enum %LCLtag eemployee0e enum %LCLop MGR : -> _eemployee1e_Enum @@ -170,7 +171,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -180,7 +180,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -199,12 +199,13 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -322,7 +323,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db3/eref.lcs b/test/db3/eref.lcs index d4b88c2..eedf9ff 100644 --- a/test/db3/eref.lcs +++ b/test/db3/eref.lcs @@ -90,18 +90,19 @@ %LCLsort _map_Obj obj map nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -114,8 +115,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -148,14 +149,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop GENDER_UNKNOWN : -> _eemployee0e_Enum %LCLtag eemployee0e enum %LCLop MGR : -> _eemployee1e_Enum @@ -164,7 +165,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -174,7 +174,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -193,12 +193,13 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -313,7 +314,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/db3/ereftab.lcs b/test/db3/ereftab.lcs index c743ebb..e0285e8 100644 --- a/test/db3/ereftab.lcs +++ b/test/db3/ereftab.lcs @@ -94,18 +94,19 @@ %LCLsort _ereftab_Obj mutable ereftab nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -118,8 +119,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -152,14 +153,14 @@ %LCLop __ \eq __ :_char_Vec, _char_Vec -> bool %LCLop __ \eq __ :char, char -> bool %LCLop \not __ :bool -> bool -%LCLop MALE : -> _eemployee0e_Enum %LCLop __ \neq __ :bool, bool -> bool %LCLop __ \neq __ :int, int -> bool %LCLop __ \neq __ :double, double -> bool %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool -%LCLop FEMALE : -> _eemployee0e_Enum +%LCLop MALE : -> _eemployee0e_Enum %LCLop { __ } :char -> _char_Vec +%LCLop FEMALE : -> _eemployee0e_Enum %LCLop GENDER_UNKNOWN : -> _eemployee0e_Enum %LCLtag eemployee0e enum %LCLop MGR : -> _eemployee1e_Enum @@ -168,7 +169,6 @@ %LCLtag eemployee1e enum %LCLop [__, __] :int, int -> _sstdlib0s_Struct_Tuple %LCLop [__, __] :int, int -> _sstdlib1s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__sstdlib0s_Struct_Ptr -> __sstdlib0s_Struct_Arr %LCLop __ [] :__sstdlib1s_Struct_Ptr -> __sstdlib1s_Struct_Arr @@ -178,7 +178,7 @@ %LCLop __ [] :__FILE_Obj_Ptr -> __FILE_Obj_Arr %LCLop __ [] :____void_Obj_Ptr_Obj_Ptr -> ____void_Obj_Ptr_Obj_Arr %LCLop __ [] :__semployee0s_Struct_Ptr -> __semployee0s_Struct_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__sstdlib0s_Struct_Tuple_Vec, int -> _sstdlib0s_Struct_Tuple @@ -197,12 +197,13 @@ %LCLop __ [__] :____void_Obj_Ptr_Obj_Arr, int -> ___void_Obj_Ptr_Obj %LCLop __ [__] :__semployee0s_Struct_Tuple_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ [__] :__semployee0s_Struct_Arr, int -> _semployee0s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \select quot :_sstdlib0s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib0s_Struct -> _int_Obj %LCLop __ \select quot :_sstdlib1s_Struct_Tuple -> int %LCLop __ \select quot :_sstdlib1s_Struct -> _int_Obj %LCLtag semployee0s struct -%LCLop [__, __, __, __, __] :_eemployee1e_Enum, _eemployee0e_Enum, int, _char_Vec, int -> _semployee0s_Struct_Tuple %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \field_arrow quot :__sstdlib0s_Struct_Ptr -> _int_Obj @@ -319,7 +320,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/decl2.lcs b/test/decl2.lcs index 818f016..9d16c73 100644 --- a/test/decl2.lcs +++ b/test/decl2.lcs @@ -15,18 +15,19 @@ %LCLsort _int_Obj obj int nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -39,8 +40,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -77,11 +78,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -112,7 +113,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/enum.lcs b/test/enum.lcs index ff360ca..6ddc938 100644 --- a/test/enum.lcs +++ b/test/enum.lcs @@ -55,18 +55,19 @@ %LCLsort enumEnd nil nil nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -79,8 +80,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -104,9 +105,9 @@ %LCLop three : -> _eenum0e_Enum %LCLop cero : -> _eenum1e_Enum %LCLop uno : -> _eenum1e_Enum -%LCLop dos : -> _eenum1e_Enum %LCLop __ * __ :int, int -> int %LCLop __ * __ :double, double -> double +%LCLop dos : -> _eenum1e_Enum %LCLop true : -> bool %LCLop false : -> bool %LCLtag _ietag enum @@ -126,24 +127,24 @@ %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec %LCLop [__, __] :int, int -> _senum0s_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__senum0s_Struct_Ptr -> __senum0s_Struct_Arr %LCLop __ [] :__senum1s_Struct_Ptr -> __senum1s_Struct_Arr +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop [__, __, __] :int, int, int -> _senum1s_Struct_Tuple -%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :__senum0s_Struct_Tuple_Vec, int -> _senum0s_Struct_Tuple %LCLop __ [__] :__senum0s_Struct_Arr, int -> _senum0s_Struct %LCLop __ [__] :__senum1s_Struct_Tuple_Vec, int -> _senum1s_Struct_Tuple %LCLop __ [__] :__senum1s_Struct_Arr, int -> _senum1s_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool %LCLop __ \geq __ :double, double -> bool -%LCLop hasta : -> _eenum2e_Enum %LCLop null : -> char +%LCLop hasta : -> _eenum2e_Enum %LCLop pasta : -> _eenum2e_Enum %LCLop yasta : -> _eenum2e_Enum %LCLop __ \select a :_senum0s_Struct_Tuple -> int @@ -204,7 +205,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/glob.lcs b/test/glob.lcs index fb57a24..ac511aa 100644 --- a/test/glob.lcs +++ b/test/glob.lcs @@ -15,18 +15,19 @@ %LCLsort _int_Obj obj int nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -39,8 +40,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -77,11 +78,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -112,7 +113,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/help.out b/test/help.out index 19632a3..7f8e7b1 100644 --- a/test/help.out +++ b/test/help.out @@ -313,6 +313,8 @@ Finished LCLint checking --- no code processed nullptrarith nullret nullstate + nullterminated + nullterminated numenummembers numliteral numstructfields @@ -886,6 +888,8 @@ includenest --- set maximum number of nested #include files ansilimits --- check for violations of standard limits (controlnestdepth, stringliterallen, includenest, numstructfields, numenummembers) null --- misuses of null pointer +nullterminated --- misuse of nullterminated allocation +nullterminated --- misuse of nullterminated allocation nullderef --- possible dereferencce of null pointer fcnderef --- dereferencce of a function type nullpass --- possibly null pointer passed as formal with no null annotation diff --git a/test/impabstract.lcs b/test/impabstract.lcs index 90e9b90..7be40ab 100644 --- a/test/impabstract.lcs +++ b/test/impabstract.lcs @@ -17,18 +17,19 @@ %LCLsort _cint_Obj mutable cint nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -41,8 +42,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -79,11 +80,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -115,7 +116,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/iter.lcs b/test/iter.lcs index ac73f8e..bd66ffd 100644 --- a/test/iter.lcs +++ b/test/iter.lcs @@ -14,18 +14,19 @@ %LCLsort double primitive nil nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -38,8 +39,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -76,11 +77,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -111,7 +112,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/macros.lcs b/test/macros.lcs index 4d71723..ff32deb 100644 --- a/test/macros.lcs +++ b/test/macros.lcs @@ -16,18 +16,19 @@ %LCLsort _int_Obj obj int nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -40,8 +41,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -78,11 +79,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -114,7 +115,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/macrosef.lcs b/test/macrosef.lcs index bfd6a5f..3f87457 100644 --- a/test/macrosef.lcs +++ b/test/macrosef.lcs @@ -19,18 +19,19 @@ %LCLsort _int_Vec vec int __int_Obj_Arr %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -43,8 +44,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -81,14 +82,14 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :_int_Vec, int -> int %LCLop __ [__] :__int_Obj_Arr, int -> _int_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -126,7 +127,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/modtest.lcs b/test/modtest.lcs index c3a68ae..3d06451 100644 --- a/test/modtest.lcs +++ b/test/modtest.lcs @@ -28,18 +28,19 @@ %LCLsort __int_Obj_Ptr ptr _int_Obj nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -52,8 +53,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -76,8 +77,8 @@ %LCLop 9 : -> int %LCLop __ * __ :int, int -> int %LCLop __ * __ :double, double -> double -%LCLtag _ts struct %LCLop true : -> bool +%LCLtag _ts struct %LCLop false : -> bool %LCLop __ \and __ :bool, bool -> bool %LCLop __ \or __ :bool, bool -> bool @@ -94,17 +95,17 @@ %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec %LCLop [__, __] :int, int -> __ts_Struct_Tuple -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :___ts_Struct_Ptr -> ___ts_Struct_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :_int_Vec, int -> int %LCLop __ [__] :__int_Obj_Arr, int -> _int_Obj %LCLop __ [__] :___ts_Struct_Tuple_Vec, int -> __ts_Struct_Tuple %LCLop __ [__] :___ts_Struct_Arr, int -> __ts_Struct +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -113,8 +114,8 @@ %LCLop __ \select a :__ts_Struct -> _int_Obj %LCLop __ \select b :__ts_Struct_Tuple -> int %LCLop __ \select b :__ts_Struct -> _int_Obj -%LCLop __ \field_arrow a :___ts_Struct_Ptr -> _int_Obj %LCLop null : -> char +%LCLop __ \field_arrow a :___ts_Struct_Ptr -> _int_Obj %LCLop __ \field_arrow b :___ts_Struct_Ptr -> _int_Obj %LCLop NIL : -> __char_Obj_Ptr %LCLop NIL : -> ___ts_Struct_Ptr @@ -155,7 +156,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/mut.lcs b/test/mut.lcs index 8c51b3f..8c98767 100644 --- a/test/mut.lcs +++ b/test/mut.lcs @@ -16,18 +16,19 @@ %LCLsort _mut_Obj mutable mut nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -40,8 +41,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -78,11 +79,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -114,7 +115,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/null6.lcd b/test/null6.lcd index 20315e7..89a3b7d 100644 --- a/test/null6.lcd +++ b/test/null6.lcd @@ -698,8 +698,8 @@ 374@-@-@0@0@0@0@376#ldiv_t *1 (Constant) 0@i0@0@6#NULL -2$#NDEBUG 2@i1@0@0#TRUE +2$#NDEBUG 2@i0@0@6#FALSE 3$#UCHAR_MAX#UCHAR_MIN 4$#CHAR_MAX#CHAR_MIN#SCHAR_MAX#SCHAR_MIN @@ -770,8 +770,8 @@ 278$@0@s3@1@s3,tp1$@0#putc 366$@1@@1@s0$@0#abs 205@6@0@5@0@0$$@0#raise -215$@0@s3,g113@0@0@1@s3,g113$@0#remove 282$@1@g125@0@0,s3@1@s3,tg125$@0#puts +215$@0@s3,g113@0@0@1@s3,g113$@0#remove 311$@1@@1@s0$@0#atoi 351$@0@s3@1@s3$@0#system 485$@1@@1@s0$@0#wctob @@ -783,8 +783,8 @@ 346$@0@s1@1@s1$@0#atexit 407$@1@@1@s0$@0#mbsinit 280$@1@g125@0@0,s3@1@s3,tg125$@0#putchar -323$@0@s1@1@s1$@0#rand 273$@1@g124@0@0,s3@1@s3,tg124$@0#getchar +323$@0@s1@1@s1$@0#rand 319$@0@g113@0@0@1@tp1,g113$@0#strtol 479$@0@@1@tp1$@0#wcstol 373$@1@@1@s0$@0#labs diff --git a/test/null6.lcs b/test/null6.lcs index 4c89dbb..f3c51a5 100644 --- a/test/null6.lcs +++ b/test/null6.lcs @@ -16,18 +16,19 @@ %LCLsort _mnull_Obj mutable mnull nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -40,8 +41,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -78,11 +79,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -114,7 +115,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/observer.lcs b/test/observer.lcs index ea2325a..3de6570 100644 --- a/test/observer.lcs +++ b/test/observer.lcs @@ -16,18 +16,19 @@ %LCLsort _stx_Obj mutable stx nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -40,8 +41,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -78,11 +79,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -114,7 +115,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/oldstyle.lcs b/test/oldstyle.lcs index 9269ae5..ee11c94 100644 --- a/test/oldstyle.lcs +++ b/test/oldstyle.lcs @@ -17,18 +17,19 @@ %LCLsort _HOF_sort_15 hof nil nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -41,8 +42,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -79,11 +80,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -114,7 +115,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/outglob.lcs b/test/outglob.lcs index 79bceba..c8a1212 100644 --- a/test/outglob.lcs +++ b/test/outglob.lcs @@ -15,18 +15,19 @@ %LCLsort _int_Obj obj int nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -39,8 +40,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -77,11 +78,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -112,7 +113,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/outparam.lcs b/test/outparam.lcs index be7319d..6621943 100644 --- a/test/outparam.lcs +++ b/test/outparam.lcs @@ -27,18 +27,19 @@ %LCLsort _int_Vec vec int __int_Obj_Arr %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -51,8 +52,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -91,22 +92,22 @@ %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec %LCLop [__, __] :int, int -> __st_Struct_Tuple -%LCLop __ \select a :__st_Struct_Tuple -> int -%LCLop __ \select a :__st_Struct -> _int_Obj -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :___st_Struct_Ptr -> ___st_Struct_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr +%LCLop __ \select a :__st_Struct_Tuple -> int +%LCLop __ \select a :__st_Struct -> _int_Obj +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ \select b :__st_Struct_Tuple -> int %LCLop __ \select b :__st_Struct -> _int_Obj -%LCLop __ \field_arrow a :___st_Struct_Ptr -> _int_Obj -%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :___st_Struct_Tuple_Vec, int -> __st_Struct_Tuple %LCLop __ [__] :___st_Struct_Arr, int -> __st_Struct %LCLop __ [__] :_int_Vec, int -> int %LCLop __ [__] :__int_Obj_Arr, int -> _int_Obj +%LCLop __ \field_arrow a :___st_Struct_Ptr -> _int_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \field_arrow b :___st_Struct_Ptr -> _int_Obj %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool @@ -152,7 +153,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/repexpose.lcs b/test/repexpose.lcs index cc7b403..11bf143 100644 --- a/test/repexpose.lcs +++ b/test/repexpose.lcs @@ -26,18 +26,19 @@ %LCLsort _int_Vec vec int __int_Obj_Arr %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -50,8 +51,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -88,17 +89,17 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :____char_Obj_Ptr_Obj_Ptr -> ____char_Obj_Ptr_Obj_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :___char_Obj_Ptr_Vec, int -> __char_Obj_Ptr %LCLop __ [__] :____char_Obj_Ptr_Obj_Arr, int -> ___char_Obj_Ptr_Obj %LCLop __ [__] :_int_Vec, int -> int %LCLop __ [__] :__int_Obj_Arr, int -> _int_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -145,7 +146,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/special.lcs b/test/special.lcs index 6c2ea35..ee1914e 100644 --- a/test/special.lcs +++ b/test/special.lcs @@ -16,18 +16,19 @@ %LCLsort ___char_Obj_Ptr_Obj obj __char_Obj_Ptr nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -40,8 +41,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -78,11 +79,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -113,7 +114,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/tests2.2/bool.lcs b/test/tests2.2/bool.lcs index 965719a..363876b 100644 --- a/test/tests2.2/bool.lcs +++ b/test/tests2.2/bool.lcs @@ -14,18 +14,19 @@ %LCLsort double primitive nil nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -38,8 +39,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -76,11 +77,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -111,7 +112,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/tests2.4/subdir/main.lcs b/test/tests2.4/subdir/main.lcs index be0f662..69bc6cb 100644 --- a/test/tests2.4/subdir/main.lcs +++ b/test/tests2.4/subdir/main.lcs @@ -15,18 +15,19 @@ %LCLsort _int_Obj obj int nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -39,8 +40,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -77,11 +78,11 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -112,7 +113,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/tq.lcs b/test/tq.lcs index 90e2e30..fffcbdd 100644 --- a/test/tq.lcs +++ b/test/tq.lcs @@ -25,18 +25,19 @@ %LCLsort _tmixa synonym __int_Obj_Ptr nil %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -49,8 +50,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -87,14 +88,14 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :_int_Vec, int -> int %LCLop __ [__] :__int_Obj_Arr, int -> _int_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -136,7 +137,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool diff --git a/test/ud2.lcs b/test/ud2.lcs index d1c8f38..ce349ec 100644 --- a/test/ud2.lcs +++ b/test/ud2.lcs @@ -22,18 +22,19 @@ %LCLsort _int_Vec vec int __int_Obj_Arr %LCLSortTableEnd %LCLSymbolTable +%LCLop min :int, int -> int %LCLop max :int, int -> int %LCLop 0 : -> int %LCLop 0 : -> double %LCLop 1 : -> int %LCLop 1 : -> double -%LCLop __ < __ :int, int -> bool -%LCLop __ < __ :double, double -> bool %LCLop if __ then __ else __ :bool, bool, bool -> bool %LCLop if __ then __ else __ :bool, int, int -> int %LCLop if __ then __ else __ :bool, double, double -> double %LCLop if __ then __ else __ :bool, _char_Vec, _char_Vec -> _char_Vec %LCLop if __ then __ else __ :bool, char, char -> char +%LCLop __ < __ :int, int -> bool +%LCLop __ < __ :double, double -> bool %LCLop empty : -> _char_Vec %LCLop __ > __ :int, int -> bool %LCLop __ > __ :double, double -> bool @@ -46,8 +47,8 @@ %LCLop len :_char_Vec -> int %LCLop prefix :_char_Vec, int -> _char_Vec %LCLop __ / __ :double, double -> double -%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop __ \implies __ :bool, bool -> bool +%LCLop removePrefix :_char_Vec, int -> _char_Vec %LCLop substring :_char_Vec, int, int -> _char_Vec %LCLop __ || __ :_char_Vec, _char_Vec -> _char_Vec %LCLop tail :_char_Vec -> _char_Vec @@ -84,17 +85,17 @@ %LCLop __ \neq __ :_char_Vec, _char_Vec -> bool %LCLop __ \neq __ :char, char -> bool %LCLop { __ } :char -> _char_Vec -%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [] :__char_Obj_Ptr -> __char_Obj_Arr %LCLop __ [] :____char_Obj_Ptr_Obj_Ptr -> ____char_Obj_Ptr_Obj_Arr %LCLop __ [] :__int_Obj_Ptr -> __int_Obj_Arr -%LCLop __ -| __ :char, _char_Vec -> _char_Vec +%LCLop __ |- __ :_char_Vec, char -> _char_Vec %LCLop __ [__] :_char_Vec, int -> char %LCLop __ [__] :__char_Obj_Arr, int -> _char_Obj %LCLop __ [__] :___char_Obj_Ptr_Vec, int -> __char_Obj_Ptr %LCLop __ [__] :____char_Obj_Ptr_Obj_Arr, int -> ___char_Obj_Ptr_Obj %LCLop __ [__] :_int_Vec, int -> int %LCLop __ [__] :__int_Obj_Arr, int -> _int_Obj +%LCLop __ -| __ :char, _char_Vec -> _char_Vec %LCLop __ \leq __ :int, int -> bool %LCLop __ \leq __ :double, double -> bool %LCLop __ \geq __ :int, int -> bool @@ -139,7 +140,6 @@ %LCLop abs :double -> double %LCLop div :int, int -> int %LCLop mod :int, int -> int -%LCLop min :int, int -> int %LCLtype float float exposed %LCLtype bool bool immutable %LCLconst FALSE bool -- 2.45.2