home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. CD ROM (Annual Premium Edition)
/
premium.zip
/
premium
/
IBMOS2_1
/
SC621.ZIP
/
sc621
/
gram.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-07-10
|
87KB
|
2,707 lines
/* yacc -d gram.y */
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#line 17 "gram.y"
#include <curses.h>
#include "sc.h"
#define ENULL (struct enode *)0
typedef union {
int ival;
double fval;
struct ent_ptr ent;
struct enode *enode;
char *sval;
struct range_s rval;
} YYSTYPE;
#define STRING 257
#define NUMBER 258
#define FNUMBER 259
#define RANGE 260
#define VAR 261
#define WORD 262
#define COL 263
#define S_FORMAT 264
#define S_FMT 265
#define S_LABEL 266
#define S_LEFTSTRING 267
#define S_RIGHTSTRING 268
#define S_GET 269
#define S_PUT 270
#define S_MERGE 271
#define S_LET 272
#define S_WRITE 273
#define S_TBL 274
#define S_COPY 275
#define S_SHOW 276
#define S_ERASE 277
#define S_FILL 278
#define S_LOCK 279
#define S_UNLOCK 280
#define S_GOTO 281
#define S_DEFINE 282
#define S_UNDEFINE 283
#define S_VALUE 284
#define S_MDIR 285
#define S_HIDE 286
#define S_SET 287
#define K_ERROR 288
#define K_INVALID 289
#define K_FIXED 290
#define K_SUM 291
#define K_PROD 292
#define K_AVG 293
#define K_STDDEV 294
#define K_COUNT 295
#define K_ABS 296
#define K_ACOS 297
#define K_ASIN 298
#define K_ATAN 299
#define K_ATAN2 300
#define K_CEIL 301
#define K_COS 302
#define K_EXP 303
#define K_FABS 304
#define K_FLOOR 305
#define K_HYPOT 306
#define K_LN 307
#define K_LOG 308
#define K_PI 309
#define K_POW 310
#define K_SIN 311
#define K_SQRT 312
#define K_TAN 313
#define K_DTR 314
#define K_RTD 315
#define K_MAX 316
#define K_MIN 317
#define K_RND 318
#define K_ROUND 319
#define K_IF 320
#define K_PV 321
#define K_FV 322
#define K_PMT 323
#define K_HOUR 324
#define K_MINUTE 325
#define K_SECOND 326
#define K_MONTH 327
#define K_DAY 328
#define K_YEAR 329
#define K_NOW 330
#define K_DATE 331
#define K_DTS 332
#define K_TTS 333
#define K_FMT 334
#define K_SUBSTR 335
#define K_UPPER 336
#define K_LOWER 337
#define K_CAPITAL 338
#define K_STON 339
#define K_EQS 340
#define K_EXT 341
#define K_NVAL 342
#define K_SVAL 343
#define K_LOOKUP 344
#define K_HLOOKUP 345
#define K_VLOOKUP 346
#define K_INDEX 347
#define K_STINDEX 348
#define K_AUTO 349
#define K_AUTOCALC 350
#define K_BYROWS 351
#define K_BYCOLS 352
#define K_ITERATIONS 353
#define K_NUMERIC 354
#define K_PRESCALE 355
#define K_EXTFUN 356
#define K_CELLCUR 357
#define K_TOPROW 358
#define K_TBLSTYLE 359
#define K_TBL 360
#define K_LATEX 361
#define K_SLATEX 362
#define K_TEX 363
#define K_FRAME 364
#define K_RNDINFINITY 365
#define K_MYROW 366
#define K_MYCOL 367
#define K_COLTOA 368
#define K_CRACTION 369
#define K_CRROW 370
#define K_CRCOL 371
#define K_ROWLIMIT 372
#define K_COLLIMIT 373
#define K_NUMITER 374
extern int yychar, yyerrflag;
extern YYSTYPE yylval;
#if YYDEBUG
enum YY_Types { YY_t_NoneDefined, YY_t_ent, YY_t_fval, YY_t_rval, YY_t_sval, YY_t_enode, YY_t_ival
};
#endif
#if YYDEBUG
yyTypedRules yyRules[] = {
{ "&000: %09 &000", 0},
{ "%09: &017 %04 &125 %06", 0},
{ "%09: &011 %04 &125 %06", 0},
{ "%09: &012 %04 &125 %06", 0},
{ "%09: &013 %04 &125 %06", 0},
{ "%09: &009 &008 &121 &008 &003 &003 &003", 0},
{ "%09: &009 &008 &003 &003 &003", 0},
{ "%09: &009 &008 &121 &008 &003 &003", 0},
{ "%09: &009 &008 &003 &003", 0},
{ "%09: &014 %05", 0},
{ "%09: &016 %05", 0},
{ "%09: &030 %05", 0},
{ "%09: &015 %05 %03", 0},
{ "%09: &015 %05", 0},
{ "%09: &018 %05 %03", 0},
{ "%09: &018 %05", 0},
{ "%09: &019 %05 %03", 0},
{ "%09: &019 %05", 0},
{ "%09: &021 &008 &121 &008", 0},
{ "%09: &021 &003 &121 &003", 0},
{ "%09: &031 &008", 0},
{ "%09: &031 &003", 0},
{ "%09: &020 %03 %04", 0},
{ "%09: &022", 0},
{ "%09: &022 %04", 0},
{ "%09: &029", 0},
{ "%09: &029 %04", 0},
{ "%09: &023 %02 %02", 0},
{ "%09: &023 %04 %02 %02", 0},
{ "%09: &010 %04 &002", 0},
{ "%09: &024", 0},
{ "%09: &024 %04", 0},
{ "%09: &025", 0},
{ "%09: &025 %04", 0},
{ "%09: &026 %04", 0},
{ "%09: &026 %02", 0},
{ "%09: &026 %10", 0},
{ "%09: &026 &002", 0},
{ "%09: &026", 0},
{ "%09: &027 %05", 0},
{ "%09: &027 %05 %03", 0},
{ "%09: &027 %05 %01", 0},
{ "%09: &028 %04", 0},
{ "%09: &032 %11", 0},
{ "%09:", 0},
{ "%09: &001", 0},
{ "%07: %01", 5},
{ "%07: &035 %07", 5},
{ "%07: &135 &036 &136 %04 &137", 5},
{ "%07: &135 &037 &136 %04 &137", 5},
{ "%07: &135 &038 &136 %04 &137", 5},
{ "%07: &135 &039 &136 %04 &137", 5},
{ "%07: &135 &040 &136 %04 &137", 5},
{ "%07: &135 &061 &136 %04 &137", 5},
{ "%07: &135 &061 &136 %06 &138 %08 &137", 5},
{ "%07: &135 &062 &136 %04 &137", 5},
{ "%07: &135 &062 &136 %06 &138 %08 &137", 5},
{ "%07: &135 &041 &136 %06 &137", 5},
{ "%07: &135 &042 &136 %06 &137", 5},
{ "%07: &135 &043 &136 %06 &137", 5},
{ "%07: &135 &044 &136 %06 &137", 5},
{ "%07: &135 &045 &136 %06 &138 %06 &137", 5},
{ "%07: &135 &046 &136 %06 &137", 5},
{ "%07: &135 &047 &136 %06 &137", 5},
{ "%07: &135 &048 &136 %06 &137", 5},
{ "%07: &135 &049 &136 %06 &137", 5},
{ "%07: &135 &050 &136 %06 &137", 5},
{ "%07: &135 &051 &136 %06 &138 %06 &137", 5},
{ "%07: &135 &052 &136 %06 &137", 5},
{ "%07: &135 &053 &136 %06 &137", 5},
{ "%07: &135 &055 &136 %06 &138 %06 &137", 5},
{ "%07: &135 &056 &136 %06 &137", 5},
{ "%07: &135 &057 &136 %06 &137", 5},
{ "%07: &135 &058 &136 %06 &137", 5},
{ "%07: &135 &059 &136 %06 &137", 5},
{ "%07: &135 &060 &136 %06 &137", 5},
{ "%07: &135 &063 &136 %06 &137", 5},
{ "%07: &135 &064 &136 %06 &138 %06 &137", 5},
{ "%07: &135 &065 &136 %06 &138 %06 &138 %06 &137", 5},
{ "%07: &135 &066 &136 %06 &138 %06 &138 %06 &137", 5},
{ "%07: &135 &067 &136 %06 &138 %06 &138 %06 &137", 5},
{ "%07: &135 &068 &136 %06 &138 %06 &138 %06 &137", 5},
{ "%07: &135 &069 &136 %06 &137", 5},
{ "%07: &135 &070 &136 %06 &137", 5},
{ "%07: &135 &071 &136 %06 &137", 5},
{ "%07: &135 &072 &136 %06 &137", 5},
{ "%07: &135 &073 &136 %06 &137", 5},
{ "%07: &135 &074 &136 %06 &137", 5},
{ "%07: &135 &075", 5},
{ "%07: &135 &077 &136 %06 &138 %06 &138 %06 &137", 5},
{ "%07: &135 &078 &136 %06 &138 %06 &138 %06 &137", 5},
{ "%07: &135 &084 &136 %06 &137", 5},
{ "%07: &135 &085 &136 %06 &138 %06 &137", 5},
{ "%07: &135 &076 &136 %06 &137", 5},
{ "%07: &135 &079 &136 %06 &138 %06 &137", 5},
{ "%07: &135 &081 &136 %06 &137", 5},
{ "%07: &135 &082 &136 %06 &137", 5},
{ "%07: &135 &083 &136 %06 &137", 5},
{ "%07: &135 &092 &136 %06 &138 %04 &137", 5},
{ "%07: &135 &089 &136 %06 &138 %04 &137", 5},
{ "%07: &135 &090 &136 %06 &138 %04 &138 %06 &137", 5},
{ "%07: &135 &091 &136 %06 &138 %04 &138 %06 &137", 5},
{ "%07: &135 &093 &136 %06 &138 %04 &137", 5},
{ "%07: &135 &086 &136 %06 &138 %06 &137", 5},
{ "%07: &135 &087 &136 %06 &138 %06 &137", 5},
{ "%07: &135 &088 &136 %06 &138 %06 &137", 5},
{ "%07: &135 &080 &136 %06 &138 %06 &138 %06 &137", 5},
{ "%07: &136 %06 &137", 5},
{ "%07: &128 %07", 5},
{ "%07: &129 %07", 5},
{ "%07: &003", 5},
{ "%07: &004", 5},
{ "%07: &003 &139 &003 &139 &003", 5},
{ "%07: &054", 5},
{ "%07: &135 &054", 5},
{ "%07: &002", 5},
{ "%07: &140 %07", 5},
{ "%07: &127 %07", 5},
{ "%07: &135 &111", 5},
{ "%07: &135 &112", 5},
{ "%07: &135 &113 &136 %06 &137", 5},
{ "%07: &135 &119", 5},
{ "%06: %06 &128 %06", 5},
{ "%06: %06 &129 %06", 5},
{ "%06: %06 &131 %06", 5},
{ "%06: %06 &132 %06", 5},
{ "%06: %06 &133 %06", 5},
{ "%06: %06 &134 %06", 5},
{ "%06: %07", 5},
{ "%06: %06 &120 %06 &121 %06", 5},
{ "%06: %06 &124 %06", 5},
{ "%06: %06 &125 %06", 5},
{ "%06: %06 &126 %06", 5},
{ "%06: %06 &123 %06", 5},
{ "%06: %06 &122 %06", 5},
{ "%06: %06 &124 &125 %06", 5},
{ "%06: %06 &127 &125 %06", 5},
{ "%06: %06 &124 &126 %06", 5},
{ "%06: %06 &126 &125 %06", 5},
{ "%06: %06 &130 %06", 5},
{ "%08: %06", 5},
{ "%08: %08 &138 %06", 5},
{ "%03: %01 &121 %01", 3},
{ "%03: &005", 3},
{ "%01: &008 &003", 1},
{ "%01: &141 &008 &003", 1},
{ "%01: &008 &141 &003", 1},
{ "%01: &141 &008 &141 &003", 1},
{ "%01: &006", 1},
{ "%04: %03", 3},
{ "%04: %01", 3},
{ "%02: &003", 2},
{ "%02: &004", 2},
{ "%02: &129 %02", 2},
{ "%02: &128 %02", 2},
{ "%05: &002", 4},
{ "%05: %01", 4},
{ "%11:", 0},
{ "%11: %11 %12", 0},
{ "%12: &094", 0},
{ "%12: &095", 0},
{ "%12: &140 &094", 0},
{ "%12: &140 &095", 0},
{ "%12: &127 &094", 0},
{ "%12: &127 &095", 0},
{ "%12: &097", 0},
{ "%12: &096", 0},
{ "%12: &099", 0},
{ "%12: &127 &099", 0},
{ "%12: &100", 0},
{ "%12: &127 &100", 0},
{ "%12: &101", 0},
{ "%12: &127 &101", 0},
{ "%12: &102", 0},
{ "%12: &127 &102", 0},
{ "%12: &103", 0},
{ "%12: &127 &103", 0},
{ "%12: &098 &125 &003", 0},
{ "%12: &104 &125 &003", 0},
{ "%12: &104 &125 &105", 0},
{ "%12: &104 &125 &106", 0},
{ "%12: &104 &125 &107", 0},
{ "%12: &104 &125 &108", 0},
{ "%12: &104 &125 &109", 0},
{ "%12: &110", 0},
{ "%12: &127 &110", 0},
{ "%12: &114 &125 &003", 0},
{ "%12: &117 &125 &003", 0},
{ "%12: &118 &125 &003", 0},
{ "%10: &033", 0},
{ "%10: &034", 0},
{ "$accept", 0},{ "error", 0}
};
yyNamedType yyTokenTypes[] = {
{ "$end", 0, 0},
{ "error", 256, 0},
{ "STRING", 257, 4},
{ "NUMBER", 258, 6},
{ "FNUMBER", 259, 2},
{ "RANGE", 260, 3},
{ "VAR", 261, 3},
{ "WORD", 262, 4},
{ "COL", 263, 6},
{ "S_FORMAT", 264, 0},
{ "S_FMT", 265, 0},
{ "S_LABEL", 266, 0},
{ "S_LEFTSTRING", 267, 0},
{ "S_RIGHTSTRING", 268, 0},
{ "S_GET", 269, 0},
{ "S_PUT", 270, 0},
{ "S_MERGE", 271, 0},
{ "S_LET", 272, 0},
{ "S_WRITE", 273, 0},
{ "S_TBL", 274, 0},
{ "S_COPY", 275, 0},
{ "S_SHOW", 276, 0},
{ "S_ERASE", 277, 0},
{ "S_FILL", 278, 0},
{ "S_LOCK", 279, 0},
{ "S_UNLOCK", 280, 0},
{ "S_GOTO", 281, 0},
{ "S_DEFINE", 282, 0},
{ "S_UNDEFINE", 283, 0},
{ "S_VALUE", 284, 0},
{ "S_MDIR", 285, 0},
{ "S_HIDE", 286, 0},
{ "S_SET", 287, 0},
{ "K_ERROR", 288, 0},
{ "K_INVALID", 289, 0},
{ "K_FIXED", 290, 0},
{ "K_SUM", 291, 0},
{ "K_PROD", 292, 0},
{ "K_AVG", 293, 0},
{ "K_STDDEV", 294, 0},
{ "K_COUNT", 295, 0},
{ "K_ABS", 296, 0},
{ "K_ACOS", 297, 0},
{ "K_ASIN", 298, 0},
{ "K_ATAN", 299, 0},
{ "K_ATAN2", 300, 0},
{ "K_CEIL", 301, 0},
{ "K_COS", 302, 0},
{ "K_EXP", 303, 0},
{ "K_FABS", 304, 0},
{ "K_FLOOR", 305, 0},
{ "K_HYPOT", 306, 0},
{ "K_LN", 307, 0},
{ "K_LOG", 308, 0},
{ "K_PI", 309, 0},
{ "K_POW", 310, 0},
{ "K_SIN", 311, 0},
{ "K_SQRT", 312, 0},
{ "K_TAN", 313, 0},
{ "K_DTR", 314, 0},
{ "K_RTD", 315, 0},
{ "K_MAX", 316, 0},
{ "K_MIN", 317, 0},
{ "K_RND", 318, 0},
{ "K_ROUND", 319, 0},
{ "K_IF", 320, 0},
{ "K_PV", 321, 0},
{ "K_FV", 322, 0},
{ "K_PMT", 323, 0},
{ "K_HOUR", 324, 0},
{ "K_MINUTE", 325, 0},
{ "K_SECOND", 326, 0},
{ "K_MONTH", 327, 0},
{ "K_DAY", 328, 0},
{ "K_YEAR", 329, 0},
{ "K_NOW", 330, 0},
{ "K_DATE", 331, 0},
{ "K_DTS", 332, 0},
{ "K_TTS", 333, 0},
{ "K_FMT", 334, 0},
{ "K_SUBSTR", 335, 0},
{ "K_UPPER", 336, 0},
{ "K_LOWER", 337, 0},
{ "K_CAPITAL", 338, 0},
{ "K_STON", 339, 0},
{ "K_EQS", 340, 0},
{ "K_EXT", 341, 0},
{ "K_NVAL", 342, 0},
{ "K_SVAL", 343, 0},
{ "K_LOOKUP", 344, 0},
{ "K_HLOOKUP", 345, 0},
{ "K_VLOOKUP", 346, 0},
{ "K_INDEX", 347, 0},
{ "K_STINDEX", 348, 0},
{ "K_AUTO", 349, 0},
{ "K_AUTOCALC", 350, 0},
{ "K_BYROWS", 351, 0},
{ "K_BYCOLS", 352, 0},
{ "K_ITERATIONS", 353, 0},
{ "K_NUMERIC", 354, 0},
{ "K_PRESCALE", 355, 0},
{ "K_EXTFUN", 356, 0},
{ "K_CELLCUR", 357, 0},
{ "K_TOPROW", 358, 0},
{ "K_TBLSTYLE", 359, 0},
{ "K_TBL", 360, 0},
{ "K_LATEX", 361, 0},
{ "K_SLATEX", 362, 0},
{ "K_TEX", 363, 0},
{ "K_FRAME", 364, 0},
{ "K_RNDINFINITY", 365, 0},
{ "K_MYROW", 366, 0},
{ "K_MYCOL", 367, 0},
{ "K_COLTOA", 368, 0},
{ "K_CRACTION", 369, 0},
{ "K_CRROW", 370, 0},
{ "K_CRCOL", 371, 0},
{ "K_ROWLIMIT", 372, 0},
{ "K_COLLIMIT", 373, 0},
{ "K_NUMITER", 374, 0},
{ "'?'", 63, 0},
{ "':'", 58, 0},
{ "'|'", 124, 0},
{ "'&'", 38, 0},
{ "'<'", 60, 0},
{ "'='", 61, 0},
{ "'>'", 62, 0},
{ "'!'", 33, 0},
{ "'+'", 43, 0},
{ "'-'", 45, 0},
{ "'#'", 35, 0},
{ "'*'", 42, 0},
{ "'/'", 47, 0},
{ "'%'", 37, 0},
{ "'^'", 94, 0},
{ "'@'", 64, 0},
{ "'('", 40, 0},
{ "')'", 41, 0},
{ "','", 44, 0},
{ "'_'", 95, 0},
{ "'~'", 126, 0},
{ "'$'", 36, 0}
};
#endif
static short yydef[] = {
-1, 16, 15, 14, 13, 12, -5, 192, 38, 17,
11, 10, 9, 18, 8, 19, 6, 5, 4, 3,
7, 35, 30, 29, -9, -25, -41, 24, 23, 22,
21, 20, -57, -61, -77, -93, -109, 25, 36, 37
};
static short yyex[] = {
0, 191, -1, 1, 0, 0, -1, 1, 0, 28,
63, 28, 58, 28, 124, 28, 38, 28, 41, 28,
44, 28, -1, 1, 0, 27, 63, 27, 58, 27,
124, 27, 38, 27, 41, 27, 44, 27, -1, 1,
0, 26, 63, 26, 58, 26, 124, 26, 38, 26,
41, 26, 44, 26, -1, 1, 41, 38, -1, 160,
0, 32, 63, 32, 58, 32, 124, 32, 38, 32,
41, 32, 44, 32, -1, 1, 0, 34, 63, 34,
58, 34, 124, 34, 38, 34, 41, 34, 44, 34,
-1, 1, 0, 33, 63, 33, 58, 33, 124, 33,
38, 33, 41, 33, 44, 33, -1, 1, 0, 31,
63, 31, 58, 31, 124, 31, 38, 31, 41, 31,
44, 31, -1, 1
};
static short yyact[] = {
-519, -357, -368, -354, -355, -356, -358, -361, -359, -353,
-362, -363, -366, -364, -6, -367, -4, -3, -2, -369,
-370, -5, -360, -365, -521, 287, 286, 285, 284, 283,
282, 281, 280, 279, 278, 277, 276, 275, 274, 273,
272, 271, 270, 269, 268, 267, 266, 265, 264, 256,
-352, -415, -410, -351, 263, 261, 260, 36, -352, -404,
-410, -351, 263, 261, 257, 36, -352, -350, -349, -495,
-408, -407, -415, -410, -351, -372, -371, 289, 288, 263,
261, 260, 259, 258, 257, 45, 43, 36, -352, -350,
-349, -408, -407, -415, -410, -351, 263, 261, 260, 259,
258, 45, 43, 36, -506, -507, 263, 258, -343, -342,
263, 258, -341, 263, -331, -330, -402, -401, -395, -396,
-332, -394, -392, -390, -388, -386, -333, -377, -334, -335,
-336, 373, 372, 369, 365, 359, 358, 357, 356, 355,
354, 353, 352, 351, 350, 349, 126, 33, -329, 263,
-328, -414, 258, 36, -327, 58, -350, -349, -408, -407,
259, 258, 45, 43, -500, 257, -325, 58, -324, 58,
-322, -323, 258, 58, -321, 61, -320, 61, -319, 61,
-318, 61, -317, 61, -316, 61, -315, 61, -314, 61,
-313, 61, -398, -397, -393, -391, -389, -387, -385, -376,
365, 358, 357, 356, 355, 354, 350, 349, -400, -399,
350, 349, -312, -413, 258, 36, -412, 258, -352, -410,
-351, 263, 261, 36, -508, 258, -509, 263, -15, 258,
-311, 263, -310, -352, -306, -307, -308, -305, -309, -424,
-16, -428, -410, -351, -304, -426, 309, 290, 263, 261,
259, 258, 257, 126, 64, 45, 43, 40, 36, 33,
-373, 258, -374, 258, -375, 258, -383, -382, -381, -380,
-379, -378, 364, 363, 362, 361, 360, 258, -384, 258,
-411, 258, -516, 258, -303, 258, -302, 95, -244, -245,
-246, -247, -248, -251, -252, -253, -254, -255, -256, -257,
-258, -259, -260, -261, -262, -263, -425, -264, -265, -266,
-267, -268, -269, -249, -250, -270, -271, -272, -273, -274,
-275, -276, -277, -278, -279, -280, -281, -450, -286, -282,
-283, -287, -299, -288, -289, -290, -284, -285, -296, -297,
-298, -292, -293, -294, -291, -295, -421, -420, -300, -418,
374, 368, 367, 366, 348, 347, 346, 345, 344, 343,
342, 341, 340, 339, 338, 337, 336, 335, 334, 333,
332, 331, 330, 329, 328, 327, 326, 325, 324, 323,
322, 321, 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, 295, 294, 293,
292, 291, -242, -243, -234, -240, -232, -230, -231, -233,
-237, -238, -239, -236, -235, -241, 124, 94, 63, 62,
61, 60, 47, 45, 43, 42, 38, 37, 35, 33,
-21, 258, -229, 258, -242, -243, -234, -240, -431, -232,
-230, -231, -233, -237, -238, -239, -236, -235, -241, 124,
94, 63, 62, 61, 60, 47, 45, 43, 42, 41,
38, 37, 35, 33, -228, 40, -227, 40, -226, 40,
-225, 40, -224, 40, -223, 40, -222, 40, -221, 40,
-220, 40, -219, 40, -218, 40, -217, 40, -216, 40,
-215, 40, -214, 40, -213, 40, -212, 40, -211, 40,
-210, 40, -209, 40, -208, 40, -207, 40, -206, 40,
-205, 40, -204, 40, -203, 40, -202, 40, -201, 40,
-200, 40, -199, 40, -198, 40, -197, 40, -196, 40,
-195, 40, -194, 40, -193, 40, -192, 40, -191, 40,
-190, 40, -189, 40, -188, 40, -187, 40, -186, 40,
-185, 40, -184, 40, -183, 40, -182, 40, -181, 40,
-180, 40, -179, 40, -178, 40, -177, 40, -176, 40,
-175, 40, -174, 40, -173, 40, -172, 40, -171, 61,
-310, -352, -306, -307, -308, -170, -305, -309, -424, -16,
-428, -410, -351, -304, -426, 309, 290, 263, 261, 259,
258, 257, 126, 64, 61, 45, 43, 40, 36, 33,
-310, -352, -306, -307, -308, -168, -169, -305, -309, -424,
-16, -428, -410, -351, -304, -426, 309, 290, 263, 261,
259, 258, 257, 126, 64, 62, 61, 45, 43, 40,
36, 33, -517, 258, -166, 95, -310, -352, -306, -307,
-308, -305, -309, -424, -16, -428, -415, -410, -351, -304,
-426, 309, 290, 263, 261, 260, 259, 258, 257, 126,
64, 45, 43, 40, 36, 33, -234, -232, -233, -235,
94, 47, 42, 37, -242, -243, -234, -240, -232, -230,
-231, -233, -237, -238, -239, -235, 94, 62, 61, 60,
47, 45, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -232, -230, -231, -233, -237, -238, -239, -235, 94,
62, 61, 60, 47, 45, 43, 42, 37, 35, 33,
-243, -234, -232, -230, -231, -233, -235, 94, 47, 45,
43, 42, 37, 35, -242, -243, -234, -240, -232, -230,
-231, -233, -106, -237, -238, -239, -236, -235, -241, 124,
94, 63, 62, 61, 60, 58, 47, 45, 43, 42,
38, 37, 35, 33, -235, 94, -427, 258, -242, -243,
-234, -240, -419, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -105, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -104, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -103, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -102, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -101, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -100, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -99, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -98, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -97, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -441, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -442, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -443, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -96, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -445, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -95, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -447, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -94, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -93, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -451, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -452, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -453, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -454, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -455, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -456, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -92, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -91, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -90, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -89, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -88, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -462, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -463, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -464, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -465, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -466, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -467, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -87, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -469, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -470, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -86, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -472, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -473, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -474, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -475, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -476, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -85, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -478, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -479, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -480, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -481, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -84, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -483, 41,
-242, -243, -234, -240, -232, -230, -83, -231, -233, -237,
-238, -239, -236, -235, -241, 124, 94, 63, 62, 61,
60, 47, 45, 44, 43, 42, 38, 37, 35, 33,
-485, 41, -486, 41, -487, 41, -488, 41, -489, 41,
-490, 41, -242, -243, -234, -240, -232, -230, -231, -233,
-237, -238, -239, -235, -241, 124, 94, 62, 61, 60,
47, 45, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -59, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -433, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -434, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -435, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -436, 41,
-58, 44, -57, 44, -439, 41, -440, 41, -242, -243,
-234, -240, -444, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -446, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -56, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -55, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -54, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -53, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -52, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -232, -230, -51, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 44, 43, 42, 38, 37, 35, 33, -242, -243,
-234, -240, -461, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -468, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -471, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -242, -243,
-234, -240, -477, -232, -230, -231, -233, -237, -238, -239,
-236, -235, -241, 124, 94, 63, 62, 61, 60, 47,
45, 43, 42, 41, 38, 37, 35, 33, -482, -50,
44, 41, -484, -50, 44, 41, -242, -243, -234, -240,
-432, -232, -230, -231, -233, -237, -238, -239, -236, -235,
-241, 124, 94, 63, 62, 61, 60, 47, 45, 43,
42, 41, 38, 37, 35, 33, -242, -243, -234, -240,
-437, -232, -230, -231, -233, -237, -238, -239, -236, -235,
-241, 124, 94, 63, 62, 61, 60, 47, 45, 43,
42, 41, 38, 37, 35, 33, -242, -243, -234, -240,
-438, -232, -230, -231, -233, -237, -238, -239, -236, -235,
-241, 124, 94, 63, 62, 61, 60, 47, 45, 43,
42, 41, 38, 37, 35, 33, -242, -243, -234, -240,
-448, -232, -230, -231, -233, -237, -238, -239, -236, -235,
-241, 124, 94, 63, 62, 61, 60, 47, 45, 43,
42, 41, 38, 37, 35, 33, -242, -243, -234, -240,
-449, -232, -230, -231, -233, -237, -238, -239, -236, -235,
-241, 124, 94, 63, 62, 61, 60, 47, 45, 43,
42, 41, 38, 37, 35, 33, -242, -243, -234, -240,
-457, -232, -230, -231, -233, -237, -238, -239, -236, -235,
-241, 124, 94, 63, 62, 61, 60, 47, 45, 43,
42, 41, 38, 37, 35, 33, -242, -243, -234, -240,
-458, -232, -230, -231, -233, -237, -238, -239, -236, -235,
-241, 124, 94, 63, 62, 61, 60, 47, 45, 43,
42, 41, 38, 37, 35, 33, -242, -243, -234, -240,
-459, -232, -230, -231, -233, -237, -238, -239, -236, -235,
-241, 124, 94, 63, 62, 61, 60, 47, 45, 43,
42, 41, 38, 37, 35, 33, -242, -243, -234, -240,
-460, -232, -230, -231, -233, -237, -238, -239, -236, -235,
-241, 124, 94, 63, 62, 61, 60, 47, 45, 43,
42, 41, 38, 37, 35, 33, -1
};
static short yypact[] = {
25, 77, 54, 54, 54, 54, 114, 131, 155, 54,
54, 54, 54, 155, 283, 287, 426, 426, 426, 426,
653, 690, 706, 729, 747, 747, 747, 785, 785, 785,
690, 690, 155, 747, 747, 747, 747, 2375, 426, 426,
3141, 3111, 3081, 3051, 3021, 2991, 2961, 2931, 2901, 246,
246, 246, 246, 246, 246, 246, 246, 246, 246, 2884,
2880, 2863, 2833, 2803, 2773, 2743, 2713, 2683, 2653, 2623,
2593, 2563, 2533, 2517, 2515, 2513, 2511, 2509, 2493, 2463,
2433, 2403, 246, 246, 246, 246, 246, 246, 246, 246,
246, 246, 246, 246, 246, 246, 54, 54, 54, 54,
54, 246, 246, 246, 246, 246, 2361, 2359, 2357, 2355,
2353, 2351, 2335, 2319, 2303, 2273, 2243, 2213, 2183, 2153,
2123, 2093, 2063, 2033, 2003, 1973, 1943, 1913, 1883, 1853,
1823, 1793, 1763, 1733, 1703, 1673, 1643, 1613, 1583, 1553,
1523, 1493, 1463, 1433, 1403, 1373, 1343, 1313, 1283, 1253,
1223, 1193, 1163, 1133, 1103, 1073, 1043, 1013, 983, 953,
923, 893, 863, 833, 803, 787, 769, 246, 246, 246,
246, 54, 54, 54, 54, 54, 671, 671, 246, 246,
246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
246, 246, 246, 246, 246, 246, 246, 246, 655, 246,
246, 246, 246, 246, 246, 246, 636, 246, 605, 246,
246, 589, 246, 587, 585, 583, 581, 579, 577, 575,
573, 571, 569, 567, 565, 563, 561, 559, 557, 555,
553, 551, 549, 547, 545, 543, 541, 539, 537, 535,
533, 531, 529, 527, 525, 523, 521, 519, 517, 515,
513, 511, 509, 507, 505, 503, 501, 499, 497, 495,
493, 491, 489, 487, 485, 483, 481, 479, 477, 475,
459, 443, 441, 246, 350, 246, 246, 246, 246, 246,
285, 281, 279, 272, 265, 263, 261, 246, 246, 246,
246, 231, 229, 227, 225, 160, 221, 217, 214, 210,
200, 191, 189, 187, 185, 183, 181, 179, 177, 175,
172, 169, 167, 54, 155, 160, 160, 165, 160, 160,
152, 149, 54, 54, 54, 54, 113, 62, 62, 62,
62, 62, 62, 110, 106, 54, 96, 54, 62, 54
};
static short yygo[] = {
-9, -9, -9, -9, -9, -14, -345, -345, -345, -9,
-9, -9, -9, -9, -9, -9, -9, -9, -9, -33,
-33, -416, -9, -9, -9, -9, -9, -403, -403, -403,
-403, -403, -403, -345, -9, -9, -403, -9, -492, 369,
368, 367, 366, 365, 362, 361, 360, 359, 358, 357,
355, 354, 353, 352, 343, 326, 177, 176, 175, 174,
173, 172, 171, 100, 99, 98, 97, 96, 12, 11,
10, 9, 5, 4, 3, 2, 1, -501, -502, -326,
-406, -405, -346, -496, 366, 349, 348, 346, 345, 325,
-494, -510, -511, -512, -344, -409, 365, 12, 11, 10,
9, -497, -498, -499, -503, -504, -74, -75, -76, -77,
-78, -107, -108, -109, -110, -111, -112, -114, -505, -337,
-338, -339, -340, -347, -348, -493, 367, 366, 355, 354,
353, 352, 343, 177, 176, 175, 174, 173, 172, 171,
100, 99, 98, 97, 96, 5, 4, 3, 2, 1,
-515, -514, -513, -13, -12, -11, -10, 362, 361, 360,
359, 358, 357, -40, -41, -42, -43, -44, -45, -46,
-47, -48, -49, -62, -63, -64, -65, -66, -67, -68,
-69, -70, -71, -72, -73, -79, -80, -81, -82, -38,
-37, -36, -35, -34, -113, -115, -116, -117, -118, -119,
-120, -121, -122, -123, -124, -125, -126, -127, -128, -129,
-130, -131, -132, -133, -134, -135, -136, -137, -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, -32, -31, -30, -29,
-28, -417, -167, -27, -26, -25, -24, -23, -22, -301,
-20, -19, -18, -17, -39, 320, 319, 318, 317, 305,
242, 240, 239, 238, 237, 236, 235, 234, 233, 232,
231, 230, 229, 227, 226, 225, 224, 223, 222, 221,
220, 219, 218, 217, 216, 215, 214, 213, 212, 211,
210, 209, 208, 207, 206, 205, 204, 203, 202, 201,
200, 199, 198, 197, 196, 195, 194, 193, 192, 191,
190, 189, 188, 187, 186, 185, 184, 183, 182, 181,
180, 179, 178, 177, 176, 170, 169, 168, 167, 105,
104, 103, 102, 101, 95, 94, 93, 92, 91, 90,
89, 88, 87, 86, 85, 84, 58, 57, 56, 55,
54, 53, 52, 51, 50, 49, -491, -430, -429, -423,
-422, -520, 309, 308, 307, 306, 303, -60, -61, 82,
-7, -518, -8, -522, -1
};
static short yypgo[] = {
0, 0, 0, 380, 380, 380, 380, 380, 380, 380,
380, 380, 380, 380, 380, 380, 380, 380, 380, 371,
264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
264, 264, 264, 264, 264, 264, 378, 378, 125, 381,
381, 383, 383, 383, 383, 383, 383, 383, 383, 383,
383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
383, 156, 156, 83, 83, 83, 83, 125, 38, 38,
38, 38, 38, 95, 95, 264, 371, 371, 371, 371,
371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
371, 380, 380, 380, 380, 380, 380, 380, 380, 380,
380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
380, 380, 380, 380, 380, 380, 380, 380, 264, 382,
382, 380, 380, 0
};
static short yyrlen[] = {
0, 0, 0, 4, 4, 4, 4, 6, 4, 2,
2, 2, 1, 1, 1, 1, 1, 2, 3, 1,
3, 3, 3, 3, 3, 5, 3, 3, 3, 3,
3, 4, 4, 4, 4, 3, 1, 3, 1, 1,
1, 3, 3, 3, 2, 1, 3, 3, 3, 3,
3, 3, 3, 2, 1, 2, 1, 2, 1, 2,
1, 2, 1, 1, 1, 2, 2, 2, 2, 1,
1, 1, 1, 2, 2, 1, 1, 1, 1, 4,
3, 3, 2, 1, 3, 3, 2, 5, 2, 2,
2, 2, 1, 2, 1, 5, 1, 2, 2, 3,
9, 7, 7, 7, 7, 9, 9, 7, 7, 5,
5, 5, 7, 5, 7, 5, 9, 9, 2, 5,
5, 5, 5, 5, 5, 9, 9, 9, 9, 7,
5, 5, 5, 5, 5, 5, 7, 5, 5, 7,
5, 5, 5, 5, 5, 7, 5, 5, 5, 5,
7, 5, 7, 5, 5, 5, 5, 5, 5, 2,
1, 2, 3, 2, 2, 2, 2, 2, 3, 4,
3, 2, 2, 3, 2, 2, 4, 4, 3, 3,
3, 2, 2, 2, 5, 7, 2, 1, 1, 0,
2, 0, 2, 2
};
#define YYS0 0
#define YYDELTA 331
#define YYNPACT 370
#define YYNDEF 40
#define YYr191 0
#define YYr192 1
#define YYr193 2
#define YYr1 3
#define YYr2 4
#define YYr3 5
#define YYr4 6
#define YYr7 7
#define YYr8 8
#define YYr13 9
#define YYr15 10
#define YYr17 11
#define YYr23 12
#define YYr25 13
#define YYr30 14
#define YYr32 15
#define YYr38 16
#define YYr39 17
#define YYr41 18
#define YYr110 19
#define YYr122 20
#define YYr123 21
#define YYr124 22
#define YYr125 23
#define YYr126 24
#define YYr129 25
#define YYr130 26
#define YYr131 27
#define YYr132 28
#define YYr133 29
#define YYr134 30
#define YYr135 31
#define YYr136 32
#define YYr137 33
#define YYr138 34
#define YYr139 35
#define YYr140 36
#define YYr141 37
#define YYr150 38
#define YYr190 39
#define YYr189 40
#define YYr188 41
#define YYr187 42
#define YYr186 43
#define YYr185 44
#define YYr184 45
#define YYr183 46
#define YYr182 47
#define YYr181 48
#define YYr180 49
#define YYr179 50
#define YYr178 51
#define YYr177 52
#define YYr176 53
#define YYr175 54
#define YYr174 55
#define YYr173 56
#define YYr172 57
#define YYr171 58
#define YYr170 59
#define YYr169 60
#define YYr168 61
#define YYr167 62
#define YYr166 63
#define YYr165 64
#define YYr164 65
#define YYr163 66
#define YYr162 67
#define YYr161 68
#define YYr160 69
#define YYr159 70
#define YYr156 71
#define YYr155 72
#define YYr154 73
#define YYr153 74
#define YYr152 75
#define YYr151 76
#define YYr149 77
#define YYr148 78
#define YYr147 79
#define YYr146 80
#define YYr145 81
#define YYr144 82
#define YYr143 83
#define YYr142 84
#define YYr127 85
#define YYr121 86
#define YYr120 87
#define YYr119 88
#define YYr118 89
#define YYr117 90
#define YYr116 91
#define YYr115 92
#define YYr114 93
#define YYr113 94
#define YYr112 95
#define YYr111 96
#define YYr109 97
#define YYr108 98
#define YYr107 99
#define YYr106 100
#define YYr105 101
#define YYr104 102
#define YYr103 103
#define YYr102 104
#define YYr101 105
#define YYr100 106
#define YYr99 107
#define YYr98 108
#define YYr97 109
#define YYr96 110
#define YYr95 111
#define YYr94 112
#define YYr93 113
#define YYr92 114
#define YYr91 115
#define YYr90 116
#define YYr89 117
#define YYr88 118
#define YYr87 119
#define YYr86 120
#define YYr85 121
#define YYr84 122
#define YYr83 123
#define YYr82 124
#define YYr81 125
#define YYr80 126
#define YYr79 127
#define YYr78 128
#define YYr77 129
#define YYr76 130
#define YYr75 131
#define YYr74 132
#define YYr73 133
#define YYr72 134
#define YYr71 135
#define YYr70 136
#define YYr69 137
#define YYr68 138
#define YYr67 139
#define YYr66 140
#define YYr65 141
#define YYr64 142
#define YYr63 143
#define YYr62 144
#define YYr61 145
#define YYr60 146
#define YYr59 147
#define YYr58 148
#define YYr57 149
#define YYr56 150
#define YYr55 151
#define YYr54 152
#define YYr53 153
#define YYr52 154
#define YYr51 155
#define YYr50 156
#define YYr49 157
#define YYr48 158
#define YYr47 159
#define YYr46 160
#define YYr42 161
#define YYr40 162
#define YYr37 163
#define YYr35 164
#define YYr34 165
#define YYr33 166
#define YYr31 167
#define YYr29 168
#define YYr28 169
#define YYr27 170
#define YYr26 171
#define YYr24 172
#define YYr22 173
#define YYr21 174
#define YYr20 175
#define YYr19 176
#define YYr18 177
#define YYr16 178
#define YYr14 179
#define YYr12 180
#define YYr11 181
#define YYr10 182
#define YYr9 183
#define YYr6 184
#define YYr5 185
#define YYrACCEPT YYr191
#define YYrERROR YYr192
#define YYrLR2 YYr193
#if YYDEBUG
char * yysvar[] = {
"$accept",
"var",
"num",
"range",
"var_or_range",
"strarg",
"e",
"term",
"expr_list",
"command",
"errlist",
"setlist",
"setitem",
0
};
short yyrmap[] = {
191, 192, 193, 1, 2, 3, 4, 7, 8, 13,
15, 17, 23, 25, 30, 32, 38, 39, 41, 110,
122, 123, 124, 125, 126, 129, 130, 131, 132, 133,
134, 135, 136, 137, 138, 139, 140, 141, 150, 190,
189, 188, 187, 186, 185, 184, 183, 182, 181, 180,
179, 178, 177, 176, 175, 174, 173, 172, 171, 170,
169, 168, 167, 166, 165, 164, 163, 162, 161, 160,
159, 156, 155, 154, 153, 152, 151, 149, 148, 147,
146, 145, 144, 143, 142, 127, 121, 120, 119, 118,
117, 116, 115, 114, 113, 112, 111, 109, 108, 107,
106, 105, 104, 103, 102, 101, 100, 99, 98, 97,
96, 95, 94, 93, 92, 91, 90, 89, 88, 87,
86, 85, 84, 83, 82, 81, 80, 79, 78, 77,
76, 75, 74, 73, 72, 71, 70, 69, 68, 67,
66, 65, 64, 63, 62, 61, 60, 59, 58, 57,
56, 55, 54, 53, 52, 51, 50, 49, 48, 47,
46, 42, 40, 37, 35, 34, 33, 31, 29, 28,
27, 26, 24, 22, 21, 20, 19, 18, 16, 14,
12, 11, 10, 9, 6, 5, 36, 45, 128, 157,
158, 44, 43, 0
};
short yysmap[] = {
0, 5, 6, 7, 10, 11, 26, 27, 33, 37,
61, 62, 63, 94, 135, 143, 150, 151, 152, 153,
250, 310, 312, 313, 315, 316, 319, 322, 323, 324,
325, 326, 381, 389, 390, 391, 392, 454, 476, 512,
511, 510, 509, 508, 507, 506, 505, 504, 503, 500,
495, 494, 493, 492, 491, 490, 485, 484, 479, 478,
477, 475, 474, 473, 472, 471, 470, 469, 468, 467,
466, 465, 464, 463, 462, 461, 460, 459, 458, 457,
456, 455, 447, 445, 440, 434, 431, 424, 423, 422,
421, 420, 413, 412, 410, 408, 404, 403, 402, 401,
400, 399, 398, 397, 396, 393, 388, 387, 386, 385,
384, 383, 382, 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, 351, 350, 349, 348, 347, 346, 345, 344,
343, 342, 341, 340, 339, 338, 337, 336, 335, 334,
333, 332, 331, 330, 329, 328, 320, 318, 317, 314,
311, 309, 308, 307, 306, 305, 304, 303, 302, 301,
300, 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, 273, 272, 271,
270, 269, 268, 267, 266, 265, 264, 263, 262, 261,
260, 259, 258, 257, 256, 255, 254, 253, 251, 249,
248, 247, 246, 245, 244, 243, 242, 241, 240, 239,
238, 237, 236, 234, 233, 232, 231, 230, 229, 228,
227, 226, 225, 224, 223, 222, 221, 220, 219, 218,
217, 216, 215, 214, 213, 212, 211, 210, 209, 208,
207, 206, 205, 204, 203, 202, 201, 200, 199, 198,
197, 195, 194, 193, 192, 191, 190, 189, 188, 187,
186, 185, 184, 183, 182, 181, 180, 179, 178, 174,
172, 169, 166, 148, 147, 146, 145, 144, 139, 138,
136, 128, 117, 116, 115, 114, 113, 112, 111, 110,
109, 108, 107, 103, 102, 99, 93, 91, 90, 86,
85, 77, 76, 74, 73, 72, 71, 70, 69, 68,
67, 60, 59, 56, 55, 52, 51, 50, 41, 40,
31, 30, 25, 24, 23, 22, 21, 20, 19, 18,
17, 16, 15, 14, 13, 12, 9, 8, 4, 3,
38, 39, 154, 155, 156, 118, 75, 157, 158, 159,
160, 161, 162, 163, 119, 78, 120, 79, 121, 80,
122, 81, 123, 82, 83, 84, 124, 125, 126, 127,
87, 88, 35, 36, 96, 97, 42, 43, 28, 29,
164, 130, 129, 92, 32, 131, 321, 173, 395, 175,
176, 167, 168, 140, 177, 141, 394, 142, 170, 171,
252, 513, 480, 481, 482, 483, 514, 515, 486, 487,
405, 406, 407, 488, 409, 489, 411, 516, 517, 196,
414, 415, 416, 417, 418, 419, 518, 519, 520, 521,
496, 425, 426, 427, 428, 429, 430, 497, 432, 433,
498, 435, 436, 437, 438, 439, 499, 441, 442, 443,
444, 501, 446, 502, 448, 449, 450, 451, 452, 453,
235, 149, 34, 95, 44, 46, 47, 48, 49, 98,
132, 100, 53, 54, 101, 57, 58, 133, 134, 104,
105, 106, 64, 65, 66, 165, 327, 45, 1, 137,
2, 89
};
int yyntoken = 142;
int yynvar = 13;
int yynstate = 522;
int yynrule = 194;
#endif
#line 2 "C:/MKS/OS2/etc/yyparse.c"
/*
* Copyright 1985, 1990 by Mortice Kern Systems Inc. All rights reserved.
*
* Automaton to interpret LALR(1) tables.
*
* Macros:
* yyclearin - clear the lookahead token.
* yyerrok - forgive a pending error
* YYERROR - simulate an error
* YYACCEPT - halt and return 0
* YYABORT - halt and return 1
* YYRETURN(value) - halt and return value. You should use this
* instead of return(value).
* YYREAD - ensure yychar contains a lookahead token by reading
* one if it does not. See also YYSYNC.
* YYRECOVERING - 1 if syntax error detected and not recovered
* yet; otherwise, 0.
*
* Preprocessor flags:
* YYDEBUG - includes debug code if 1. The parser will print
* a travelogue of the parse if this is defined as 1
* and yydebug is non-zero.
* yacc -t sets YYDEBUG to 1, but not yydebug.
* YYSSIZE - size of state and value stacks (default 150).
* YYSTATIC - By default, the state stack is an automatic array.
* If this is defined, the stack will be static.
* In either case, the value stack is static.
* YYALLOC - Dynamically allocate both the state and value stacks
* by calling malloc() and free().
* YYLR2 - defined if lookahead is needed to resolve R/R or S/R conflicts
* YYSYNC - if defined, yacc guarantees to fetch a lookahead token
* before any action, even if it doesnt need it for a decision.
* If YYSYNC is defined, YYREAD will never be necessary unless
* the user explicitly sets yychar = -1
*
* Copyright (c) 1983, by the University of Waterloo
*/
/* GENTEXT: yyerror */
#ifndef I18N
#define gettext(x) x
#endif
#ifndef YYSSIZE
# define YYSSIZE 150
#endif
#define YYERROR goto yyerrlabel
#define yyerrok yyerrflag = 0
#define yyclearin yychar = -1
#define YYACCEPT YYRETURN(0)
#define YYABORT YYRETURN(1)
#define YYRECOVERING() (yyerrflag != 0)
#ifdef YYALLOC
# define YYRETURN(val) { retval = (val); goto yyReturn; }
#else
# define YYRETURN(val) return(val)
#endif
#if YYDEBUG
/* The if..else makes this macro behave exactly like a statement */
# define YYREAD if (yychar < 0) { \
if ((yychar = yylex()) < 0) \
yychar = 0; \
if (yydebug) \
printf(gettext("read %s (%d)\n"), \
yyptok(yychar), \
yychar); \
} else
#else
# define YYREAD if (yychar < 0) { \
if ((yychar = yylex()) < 0) \
yychar = 0; \
} else
#endif
#define YYERRCODE 256 /* value of `error' */
#define YYQYYP yyq[yyq-yyp]
YYSTYPE yyval; /* $ */
YYSTYPE *yypvt; /* $n */
YYSTYPE yylval; /* yylex() sets this */
int yychar, /* current token */
yyerrflag, /* error flag */
yynerrs; /* error count */
#if YYDEBUG
int yydebug = 0; /* debug flag & tables */
extern char *yysvar[], *yystoken[], *yyptok();
extern short yyrmap[], yysmap[];
extern int yynstate, yynvar, yyntoken, yynrule;
# define yyassert(condition, msg, arg) \
if (!(condition)) { \
printf(gettext("\nyacc bug: ")); \
printf(msg, arg); \
YYABORT; }
#else /* !YYDEBUG */
# define yyassert(condition, msg, arg)
#endif
yyparse()
{
register short yyi, *yyp; /* for table lookup */
register short *yyps; /* top of state stack */
register short yystate; /* current state */
register YYSTYPE *yypv; /* top of value stack */
register short *yyq;
register int yyj;
#ifdef YYSTATIC
static short yys[YYSSIZE + 1];
static YYSTYPE yyv[YYSSIZE + 1];
#else
#ifdef YYALLOC
YYSTYPE *yyv;
short *yys;
YYSTYPE save_yylval;
YYSTYPE save_yyval;
YYSTYPE *save_yypvt;
int save_yychar, save_yyerrflag, save_yynerrs;
int retval;
#if 0 /* defined in <stdlib.h>*/
extern char *malloc();
#endif
#else
short yys[YYSSIZE + 1];
static YYSTYPE yyv[YYSSIZE + 1]; /* historically static */
#endif
#endif
#ifdef YYALLOC
yys = (short *) malloc((YYSSIZE + 1) * sizeof(short));
yyv = (YYSTYPE *) malloc((YYSSIZE + 1) * sizeof(YYSTYPE));
if (yys == (short *)0 || yyv == (YYSTYPE *)0) {
yyerror("Not enough space for parser stacks");
return 1;
}
save_yylval = yylval;
save_yyval = yyval;
save_yypvt = yypvt;
save_yychar = yychar;
save_yyerrflag = yyerrflag;
save_yynerrs = yynerrs;
#endif
yynerrs = 0;
yyerrflag = 0;
yychar = -1;
yyps = yys;
yypv = yyv;
yystate = YYS0; /* start state */
yyStack:
yyassert((unsigned)yystate < yynstate, gettext("state %d\n"), yystate);
if (++yyps > &yys[YYSSIZE]) {
yyerror("Parser stack overflow");
YYABORT;
}
*yyps = yystate; /* stack current state */
*++yypv = yyval; /* ... and value */
#if YYDEBUG
if (yydebug)
printf(gettext("state %d (%d), char %s (%d)\n"),
yysmap[yystate], yystate, yyptok(yychar), yychar);
#endif
/*
* Look up next action in action table.
*/
yyEncore:
#ifdef YYSYNC
YYREAD;
#endif
if (yystate >= sizeof yypact/sizeof yypact[0]) /* simple state */
yyi = yystate - YYDELTA; /* reduce in any case */
else {
if(*(yyp = &yyact[yypact[yystate]]) >= 0) {
/* Look for a shift on yychar */
#ifndef YYSYNC
YYREAD;
#endif
yyq = yyp;
yyi = yychar;
while (yyi < *yyp++)
;
if (yyi == yyp[-1]) {
yystate = ~YYQYYP;
#if YYDEBUG
if (yydebug)
printf(gettext("shift %d (%d)\n"),
yysmap[yystate], yystate);
#endif
yyval = yylval; /* stack what yylex() set */
yychar = -1; /* clear token */
if (yyerrflag)
yyerrflag--; /* successful shift */
goto yyStack;
}
}
/*
* Fell through - take default action
*/
if (yystate >= sizeof yydef /sizeof yydef[0])
goto yyError;
if ((yyi = yydef[yystate]) < 0) { /* default == reduce? */
/* Search exception table */
yyassert((unsigned)~yyi < sizeof yyex/sizeof yyex[0],
gettext("exception %d\n"), yystate);
yyp = &yyex[~yyi];
#ifndef YYSYNC
YYREAD;
#endif
while((yyi = *yyp) >= 0 && yyi != yychar)
yyp += 2;
yyi = yyp[1];
yyassert(yyi >= 0,
gettext("Ex table not reduce %d\n"), yyi);
}
}
#ifdef YYLR2
yyReduce: /* reduce yyi */
#endif
yyassert((unsigned)yyi < yynrule, gettext("reduce %d\n"), yyi);
yyj = yyrlen[yyi];
#if YYDEBUG
if (yydebug) printf(gettext("reduce %d (%d), pops %d (%d)\n"),
yyrmap[yyi], yyi, yysmap[yyps[-yyj]], yyps[-yyj]);
#endif
yyps -= yyj; /* pop stacks */
yypvt = yypv; /* save top */
yypv -= yyj;
yyval = yypv[1]; /* default action $ = $1 */
switch (yyi) { /* perform semantic action */
case YYr1: { /* command : S_LET var_or_range '=' e */
#line 171 "gram.y"
let(yypvt[-2].rval.left.vp, yypvt[0].enode);
} break;
case YYr2: { /* command : S_LABEL var_or_range '=' e */
#line 173 "gram.y"
slet(yypvt[-2].rval.left.vp, yypvt[0].enode, 0);
} break;
case YYr3: { /* command : S_LEFTSTRING var_or_range '=' e */
#line 175 "gram.y"
slet(yypvt[-2].rval.left.vp, yypvt[0].enode, -1);
} break;
case YYr4: { /* command : S_RIGHTSTRING var_or_range '=' e */
#line 177 "gram.y"
slet(yypvt[-2].rval.left.vp, yypvt[0].enode, 1);
} break;
case YYr5: { /* command : S_FORMAT COL ':' COL NUMBER NUMBER NUMBER */
#line 179 "gram.y"
doformat(yypvt[-5].ival,yypvt[-3].ival,yypvt[-2].ival,yypvt[-1].ival,yypvt[0].ival);
} break;
case YYr6: { /* command : S_FORMAT COL NUMBER NUMBER NUMBER */
#line 181 "gram.y"
doformat(yypvt[-3].ival,yypvt[-3].ival,yypvt[-2].ival,yypvt[-1].ival,yypvt[0].ival);
} break;
case YYr7: { /* command : S_FORMAT COL ':' COL NUMBER NUMBER */
#line 183 "gram.y"
doformat(yypvt[-4].ival,yypvt[-2].ival,yypvt[-1].ival,yypvt[0].ival, REFMTFIX);
} break;
case YYr8: { /* command : S_FORMAT COL NUMBER NUMBER */
#line 185 "gram.y"
doformat(yypvt[-2].ival,yypvt[-2].ival,yypvt[-1].ival,yypvt[0].ival, REFMTFIX);
} break;
case YYr9: { /* command : S_GET strarg */
#line 186 "gram.y"
char *tmp;
tmp = yypvt[0].sval;
readfile (tmp, 1);
scxfree(tmp);
} break;
case YYr10: { /* command : S_MERGE strarg */
#line 193 "gram.y"
char *tmp;
tmp = yypvt[0].sval;
readfile (tmp, 0);
scxfree(tmp);
} break;
case YYr11: { /* command : S_MDIR strarg */
#line 200 "gram.y"
if (mdir) scxfree(mdir); mdir = yypvt[0].sval;
} break;
case YYr12: { /* command : S_PUT strarg range */
#line 202 "gram.y"
(void) writefile(yypvt[-1].sval, (yypvt[0].rval.left.vp)->row,
(yypvt[0].rval.left.vp)->col, (yypvt[0].rval.right.vp)->row,
(yypvt[0].rval.right.vp)->col);
scxfree(yypvt[-1].sval);
} break;
case YYr13: { /* command : S_PUT strarg */
#line 207 "gram.y"
(void) writefile (yypvt[0].sval, 0, 0, maxrow, maxcol);
scxfree(yypvt[0].sval);
} break;
case YYr14: { /* command : S_WRITE strarg range */
#line 209 "gram.y"
(void) printfile(yypvt[-1].sval, (yypvt[0].rval.left.vp)->row,
(yypvt[0].rval.left.vp)->col, (yypvt[0].rval.right.vp)->row,
(yypvt[0].rval.right.vp)->col);
scxfree(yypvt[-1].sval);
} break;
case YYr15: { /* command : S_WRITE strarg */
#line 213 "gram.y"
(void) printfile (yypvt[0].sval, 0, 0, maxrow, maxcol);
scxfree(yypvt[0].sval);
} break;
case YYr16: { /* command : S_TBL strarg range */
#line 215 "gram.y"
(void) tblprintfile(yypvt[-1].sval, (yypvt[0].rval.left.vp)->row,
(yypvt[0].rval.left.vp)->col, (yypvt[0].rval.right.vp)->row,
(yypvt[0].rval.right.vp)->col);
scxfree(yypvt[-1].sval);
} break;
case YYr17: { /* command : S_TBL strarg */
#line 219 "gram.y"
(void)tblprintfile (yypvt[0].sval, 0, 0, maxrow, maxcol);
scxfree(yypvt[0].sval);
} break;
case YYr18: { /* command : S_SHOW COL ':' COL */
#line 222 "gram.y"
showcol( yypvt[-2].ival, yypvt[0].ival);
} break;
case YYr19: { /* command : S_SHOW NUMBER ':' NUMBER */
#line 224 "gram.y"
showrow( yypvt[-2].ival, yypvt[0].ival);
} break;
case YYr20: { /* command : S_HIDE COL */
#line 226 "gram.y"
hide_col( yypvt[0].ival );
} break;
case YYr21: { /* command : S_HIDE NUMBER */
#line 228 "gram.y"
hide_row( yypvt[0].ival );
} break;
case YYr22: { /* command : S_COPY range var_or_range */
#line 230 "gram.y"
copy(yypvt[-1].rval.left.vp,yypvt[-1].rval.right.vp,
yypvt[0].rval.left.vp,yypvt[0].rval.right.vp);
} break;
case YYr23: { /* command : S_ERASE */
#line 233 "gram.y"
eraser(lookat(showsr, showsc),
lookat(currow, curcol));
} break;
case YYr24: { /* command : S_ERASE var_or_range */
#line 236 "gram.y"
eraser(yypvt[0].rval.left.vp, yypvt[0].rval.right.vp);
} break;
case YYr25: { /* command : S_VALUE */
#line 237 "gram.y"
valueize_area(showsr, showsc, currow, curcol);
modflg++;
} break;
case YYr26: { /* command : S_VALUE var_or_range */
#line 239 "gram.y"
valueize_area((yypvt[0].rval.left.vp)->row,
(yypvt[0].rval.left.vp)->col,
(yypvt[0].rval.right.vp)->row,
(yypvt[0].rval.right.vp)->col); modflg++;
} break;
case YYr27: { /* command : S_FILL num num */
#line 243 "gram.y"
fill(lookat(showsr, showsc),
lookat(currow, curcol), yypvt[-1].fval, yypvt[0].fval);
} break;
case YYr28: { /* command : S_FILL var_or_range num num */
#line 246 "gram.y"
fill(yypvt[-2].rval.left.vp, yypvt[-2].rval.right.vp, yypvt[-1].fval, yypvt[0].fval);
} break;
case YYr29: { /* command : S_FMT var_or_range STRING */
#line 248 "gram.y"
format_cell(yypvt[-1].rval.left.vp, yypvt[-1].rval.right.vp, yypvt[0].sval);
} break;
case YYr30: { /* command : S_LOCK */
#line 250 "gram.y"
lock_cells(lookat(showsr, showsc),
lookat(currow, curcol));
} break;
case YYr31: { /* command : S_LOCK var_or_range */
#line 253 "gram.y"
lock_cells(yypvt[0].rval.left.vp, yypvt[0].rval.right.vp);
} break;
case YYr32: { /* command : S_UNLOCK */
#line 255 "gram.y"
unlock_cells(lookat(showsr, showsc),
lookat(currow, curcol));
} break;
case YYr33: { /* command : S_UNLOCK var_or_range */
#line 258 "gram.y"
unlock_cells(yypvt[0].rval.left.vp, yypvt[0].rval.right.vp);
} break;
case YYr34: { /* command : S_GOTO var_or_range */
#line 259 "gram.y"
moveto(yypvt[0].rval.left.vp->row, yypvt[0].rval.left.vp->col);
} break;
case YYr35: { /* command : S_GOTO num */
#line 260 "gram.y"
num_search(yypvt[0].fval, 0);
} break;
case YYr37: { /* command : S_GOTO STRING */
#line 262 "gram.y"
str_search(yypvt[0].sval);
} break;
case YYr38: { /* command : S_GOTO */
#line 263 "gram.y"
go_last();
} break;
case YYr39: { /* command : S_DEFINE strarg */
#line 264 "gram.y"
struct ent_ptr arg1, arg2;
arg1.vp = lookat(showsr, showsc);
arg1.vf = 0;
arg2.vp = lookat(currow, curcol);
arg2.vf = 0;
if (arg1.vp == arg2.vp)
add_range(yypvt[0].sval, arg2, arg2, 0);
else
add_range(yypvt[0].sval, arg1, arg2, 1);
} break;
case YYr40: { /* command : S_DEFINE strarg range */
#line 274 "gram.y"
add_range(yypvt[-1].sval, yypvt[0].rval.left, yypvt[0].rval.right, 1);
} break;
case YYr41: { /* command : S_DEFINE strarg var */
#line 275 "gram.y"
add_range(yypvt[-1].sval, yypvt[0].ent, yypvt[0].ent, 0);
} break;
case YYr42: { /* command : S_UNDEFINE var_or_range */
#line 276 "gram.y"
del_range(yypvt[0].rval.left.vp, yypvt[0].rval.right.vp);
} break;
case YYr46: { /* term : var */
#line 281 "gram.y"
yyval.enode = new_var(O_VAR, yypvt[0].ent);
} break;
case YYr47: { /* term : K_FIXED term */
#line 282 "gram.y"
yyval.enode = new ('f', ENULL, yypvt[0].enode);
} break;
case YYr48: { /* term : '@' K_SUM '(' var_or_range ')' */
#line 284 "gram.y"
yyval.enode = new_range(REDUCE | '+', yypvt[-1].rval);
} break;
case YYr49: { /* term : '@' K_PROD '(' var_or_range ')' */
#line 286 "gram.y"
yyval.enode = new_range (REDUCE | '*', yypvt[-1].rval);
} break;
case YYr50: { /* term : '@' K_AVG '(' var_or_range ')' */
#line 288 "gram.y"
yyval.enode = new_range (REDUCE | 'a', yypvt[-1].rval);
} break;
case YYr51: { /* term : '@' K_STDDEV '(' var_or_range ')' */
#line 290 "gram.y"
yyval.enode = new_range (REDUCE | 's', yypvt[-1].rval);
} break;
case YYr52: { /* term : '@' K_COUNT '(' var_or_range ')' */
#line 292 "gram.y"
yyval.enode = new_range (REDUCE | 'c', yypvt[-1].rval);
} break;
case YYr53: { /* term : '@' K_MAX '(' var_or_range ')' */
#line 294 "gram.y"
yyval.enode = new_range (REDUCE | MAX, yypvt[-1].rval);
} break;
case YYr54: { /* term : '@' K_MAX '(' e ',' expr_list ')' */
#line 296 "gram.y"
yyval.enode = new(LMAX, yypvt[-1].enode, yypvt[-3].enode);
} break;
case YYr55: { /* term : '@' K_MIN '(' var_or_range ')' */
#line 298 "gram.y"
yyval.enode = new_range (REDUCE | MIN, yypvt[-1].rval);
} break;
case YYr56: { /* term : '@' K_MIN '(' e ',' expr_list ')' */
#line 300 "gram.y"
yyval.enode = new(LMIN, yypvt[-1].enode, yypvt[-3].enode);
} break;
case YYr57: { /* term : '@' K_ABS '(' e ')' */
#line 301 "gram.y"
yyval.enode = new(ABS, ENULL, yypvt[-1].enode);
} break;
case YYr58: { /* term : '@' K_ACOS '(' e ')' */
#line 302 "gram.y"
yyval.enode = new(ACOS, ENULL, yypvt[-1].enode);
} break;
case YYr59: { /* term : '@' K_ASIN '(' e ')' */
#line 303 "gram.y"
yyval.enode = new(ASIN, ENULL, yypvt[-1].enode);
} break;
case YYr60: { /* term : '@' K_ATAN '(' e ')' */
#line 304 "gram.y"
yyval.enode = new(ATAN, ENULL, yypvt[-1].enode);
} break;
case YYr61: { /* term : '@' K_ATAN2 '(' e ',' e ')' */
#line 305 "gram.y"
yyval.enode = new(ATAN2, yypvt[-3].enode, yypvt[-1].enode);
} break;
case YYr62: { /* term : '@' K_CEIL '(' e ')' */
#line 306 "gram.y"
yyval.enode = new(CEIL, ENULL, yypvt[-1].enode);
} break;
case YYr63: { /* term : '@' K_COS '(' e ')' */
#line 307 "gram.y"
yyval.enode = new(COS, ENULL, yypvt[-1].enode);
} break;
case YYr64: { /* term : '@' K_EXP '(' e ')' */
#line 308 "gram.y"
yyval.enode = new(EXP, ENULL, yypvt[-1].enode);
} break;
case YYr65: { /* term : '@' K_FABS '(' e ')' */
#line 309 "gram.y"
yyval.enode = new(FABS, ENULL, yypvt[-1].enode);
} break;
case YYr66: { /* term : '@' K_FLOOR '(' e ')' */
#line 310 "gram.y"
yyval.enode = new(FLOOR, ENULL, yypvt[-1].enode);
} break;
case YYr67: { /* term : '@' K_HYPOT '(' e ',' e ')' */
#line 311 "gram.y"
yyval.enode = new(HYPOT, yypvt[-3].enode, yypvt[-1].enode);
} break;
case YYr68: { /* term : '@' K_LN '(' e ')' */
#line 312 "gram.y"
yyval.enode = new(LOG, ENULL, yypvt[-1].enode);
} break;
case YYr69: { /* term : '@' K_LOG '(' e ')' */
#line 313 "gram.y"
yyval.enode = new(LOG10, ENULL, yypvt[-1].enode);
} break;
case YYr70: { /* term : '@' K_POW '(' e ',' e ')' */
#line 314 "gram.y"
yyval.enode = new(POW, yypvt[-3].enode, yypvt[-1].enode);
} break;
case YYr71: { /* term : '@' K_SIN '(' e ')' */
#line 315 "gram.y"
yyval.enode = new(SIN, ENULL, yypvt[-1].enode);
} break;
case YYr72: { /* term : '@' K_SQRT '(' e ')' */
#line 316 "gram.y"
yyval.enode = new(SQRT, ENULL, yypvt[-1].enode);
} break;
case YYr73: { /* term : '@' K_TAN '(' e ')' */
#line 317 "gram.y"
yyval.enode = new(TAN, ENULL, yypvt[-1].enode);
} break;
case YYr74: { /* term : '@' K_DTR '(' e ')' */
#line 318 "gram.y"
yyval.enode = new(DTR, ENULL, yypvt[-1].enode);
} break;
case YYr75: { /* term : '@' K_RTD '(' e ')' */
#line 319 "gram.y"
yyval.enode = new(RTD, ENULL, yypvt[-1].enode);
} break;
case YYr76: { /* term : '@' K_RND '(' e ')' */
#line 320 "gram.y"
yyval.enode = new(RND, ENULL, yypvt[-1].enode);
} break;
case YYr77: { /* term : '@' K_ROUND '(' e ',' e ')' */
#line 321 "gram.y"
yyval.enode = new(ROUND, yypvt[-3].enode, yypvt[-1].enode);
} break;
case YYr78: { /* term : '@' K_IF '(' e ',' e ',' e ')' */
#line 322 "gram.y"
yyval.enode = new(IF, yypvt[-5].enode,new(',',yypvt[-3].enode,yypvt[-1].enode));
} break;
case YYr79: { /* term : '@' K_PV '(' e ',' e ',' e ')' */
#line 324 "gram.y"
yyval.enode = new(PV, yypvt[-5].enode,new(':',yypvt[-3].enode,yypvt[-1].enode));
} break;
case YYr80: { /* term : '@' K_FV '(' e ',' e ',' e ')' */
#line 325 "gram.y"
yyval.enode = new(FV, yypvt[-5].enode,new(':',yypvt[-3].enode,yypvt[-1].enode));
} break;
case YYr81: { /* term : '@' K_PMT '(' e ',' e ',' e ')' */
#line 326 "gram.y"
yyval.enode = new(PMT, yypvt[-5].enode,new(':',yypvt[-3].enode,yypvt[-1].enode));
} break;
case YYr82: { /* term : '@' K_HOUR '(' e ')' */
#line 328 "gram.y"
yyval.enode = new(HOUR,ENULL, yypvt[-1].enode);
} break;
case YYr83: { /* term : '@' K_MINUTE '(' e ')' */
#line 329 "gram.y"
yyval.enode = new(MINUTE,ENULL, yypvt[-1].enode);
} break;
case YYr84: { /* term : '@' K_SECOND '(' e ')' */
#line 330 "gram.y"
yyval.enode = new(SECOND,ENULL, yypvt[-1].enode);
} break;
case YYr85: { /* term : '@' K_MONTH '(' e ')' */
#line 331 "gram.y"
yyval.enode = new(MONTH,ENULL,yypvt[-1].enode);
} break;
case YYr86: { /* term : '@' K_DAY '(' e ')' */
#line 332 "gram.y"
yyval.enode = new(DAY, ENULL, yypvt[-1].enode);
} break;
case YYr87: { /* term : '@' K_YEAR '(' e ')' */
#line 333 "gram.y"
yyval.enode = new(YEAR, ENULL, yypvt[-1].enode);
} break;
case YYr88: { /* term : '@' K_NOW */
#line 334 "gram.y"
yyval.enode = new(NOW, ENULL, ENULL);
} break;
case YYr89: { /* term : '@' K_DTS '(' e ',' e ',' e ')' */
#line 336 "gram.y"
yyval.enode = new(DTS, yypvt[-5].enode, new(',', yypvt[-3].enode, yypvt[-1].enode));
} break;
case YYr90: { /* term : '@' K_TTS '(' e ',' e ',' e ')' */
#line 338 "gram.y"
yyval.enode = new(TTS, yypvt[-5].enode, new(',', yypvt[-3].enode, yypvt[-1].enode));
} break;
case YYr91: { /* term : '@' K_STON '(' e ')' */
#line 339 "gram.y"
yyval.enode = new(STON, ENULL, yypvt[-1].enode);
} break;
case YYr92: { /* term : '@' K_EQS '(' e ',' e ')' */
#line 340 "gram.y"
yyval.enode = new (EQS, yypvt[-3].enode, yypvt[-1].enode);
} break;
case YYr93: { /* term : '@' K_DATE '(' e ')' */
#line 341 "gram.y"
yyval.enode = new(DATE, ENULL, yypvt[-1].enode);
} break;
case YYr94: { /* term : '@' K_FMT '(' e ',' e ')' */
#line 342 "gram.y"
yyval.enode = new(FMT, yypvt[-3].enode, yypvt[-1].enode);
} break;
case YYr95: { /* term : '@' K_UPPER '(' e ')' */
#line 343 "gram.y"
yyval.enode = new(UPPER, ENULL, yypvt[-1].enode);
} break;
case YYr96: { /* term : '@' K_LOWER '(' e ')' */
#line 344 "gram.y"
yyval.enode = new(LOWER, ENULL, yypvt[-1].enode);
} break;
case YYr97: { /* term : '@' K_CAPITAL '(' e ')' */
#line 345 "gram.y"
yyval.enode = new(CAPITAL, ENULL, yypvt[-1].enode);
} break;
case YYr98: { /* term : '@' K_INDEX '(' e ',' var_or_range ')' */
#line 347 "gram.y"
yyval.enode = new(INDEX, yypvt[-3].enode, new_range(REDUCE | INDEX, yypvt[-1].rval));
} break;
case YYr99: { /* term : '@' K_LOOKUP '(' e ',' var_or_range ')' */
#line 349 "gram.y"
yyval.enode = new(LOOKUP, yypvt[-3].enode, new_range(REDUCE | LOOKUP, yypvt[-1].rval));
} break;
case YYr100: { /* term : '@' K_HLOOKUP '(' e ',' var_or_range ',' e ')' */
#line 351 "gram.y"
yyval.enode = new(HLOOKUP, new(',', yypvt[-5].enode, yypvt[-1].enode),
new_range(REDUCE | HLOOKUP, yypvt[-3].rval));
} break;
case YYr101: { /* term : '@' K_VLOOKUP '(' e ',' var_or_range ',' e ')' */
#line 354 "gram.y"
yyval.enode = new(VLOOKUP, new(',', yypvt[-5].enode, yypvt[-1].enode),
new_range(REDUCE | VLOOKUP, yypvt[-3].rval));
} break;
case YYr102: { /* term : '@' K_STINDEX '(' e ',' var_or_range ')' */
#line 357 "gram.y"
yyval.enode = new(STINDEX, yypvt[-3].enode, new_range(REDUCE | STINDEX, yypvt[-1].rval));
} break;
case YYr103: { /* term : '@' K_EXT '(' e ',' e ')' */
#line 358 "gram.y"
yyval.enode = new(EXT, yypvt[-3].enode, yypvt[-1].enode);
} break;
case YYr104: { /* term : '@' K_NVAL '(' e ',' e ')' */
#line 359 "gram.y"
yyval.enode = new(NVAL, yypvt[-3].enode, yypvt[-1].enode);
} break;
case YYr105: { /* term : '@' K_SVAL '(' e ',' e ')' */
#line 360 "gram.y"
yyval.enode = new(SVAL, yypvt[-3].enode, yypvt[-1].enode);
} break;
case YYr106: { /* term : '@' K_SUBSTR '(' e ',' e ',' e ')' */
#line 362 "gram.y"
yyval.enode = new(SUBSTR, yypvt[-5].enode, new(',', yypvt[-3].enode, yypvt[-1].enode));
} break;
case YYr107: { /* term : '(' e ')' */
#line 363 "gram.y"
yyval.enode = yypvt[-1].enode;
} break;
case YYr108: { /* term : '+' term */
#line 364 "gram.y"
yyval.enode = yypvt[0].enode;
} break;
case YYr109: { /* term : '-' term */
#line 365 "gram.y"
yyval.enode = new ('m', ENULL, yypvt[0].enode);
} break;
case YYr110: { /* term : NUMBER */
#line 366 "gram.y"
yyval.enode = new_const(O_CONST, (double) yypvt[0].ival);
} break;
case YYr111: { /* term : FNUMBER */
#line 367 "gram.y"
yyval.enode = new_const(O_CONST, yypvt[0].fval);
} break;
case YYr112: { /* term : NUMBER '_' NUMBER '_' NUMBER */
#line 369 "gram.y"
yyval.enode = new_const(O_CONST, convert_date(yypvt[-4].ival,yypvt[-2].ival,yypvt[0].ival));
} break;
case YYr113: { /* term : K_PI */
#line 370 "gram.y"
yyval.enode = new_const(O_CONST, (double)3.14159265358979323846);
} break;
case YYr114: { /* term : '@' K_PI */
#line 371 "gram.y"
yyval.enode = new_const(O_CONST, (double)3.14159265358979323846);
} break;
case YYr115: { /* term : STRING */
#line 372 "gram.y"
yyval.enode = new_str(yypvt[0].sval);
} break;
case YYr116: { /* term : '~' term */
#line 373 "gram.y"
yyval.enode = new ('~', ENULL, yypvt[0].enode);
} break;
case YYr117: { /* term : '!' term */
#line 374 "gram.y"
yyval.enode = new ('~', ENULL, yypvt[0].enode);
} break;
case YYr118: { /* term : '@' K_MYROW */
#line 375 "gram.y"
yyval.enode = new(MYROW, ENULL, ENULL);
} break;
case YYr119: { /* term : '@' K_MYCOL */
#line 376 "gram.y"
yyval.enode = new(MYCOL, ENULL, ENULL);
} break;
case YYr120: { /* term : '@' K_COLTOA '(' e ')' */
#line 377 "gram.y"
yyval.enode = new(COLTOA, ENULL, yypvt[-1].enode);
} break;
case YYr121: { /* term : '@' K_NUMITER */
#line 378 "gram.y"
yyval.enode = new(NUMITER, ENULL, ENULL);
} break;
case YYr122: { /* e : e '+' e */
#line 382 "gram.y"
yyval.enode = new ('+', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr123: { /* e : e '-' e */
#line 383 "gram.y"
yyval.enode = new ('-', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr124: { /* e : e '*' e */
#line 384 "gram.y"
yyval.enode = new ('*', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr125: { /* e : e '/' e */
#line 385 "gram.y"
yyval.enode = new ('/', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr126: { /* e : e '%' e */
#line 386 "gram.y"
yyval.enode = new ('%', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr127: { /* e : e '^' e */
#line 387 "gram.y"
yyval.enode = new ('^', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr129: { /* e : e '?' e ':' e */
#line 389 "gram.y"
yyval.enode = new ('?', yypvt[-4].enode, new(':', yypvt[-2].enode, yypvt[0].enode));
} break;
case YYr130: { /* e : e '<' e */
#line 390 "gram.y"
yyval.enode = new ('<', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr131: { /* e : e '=' e */
#line 391 "gram.y"
yyval.enode = new ('=', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr132: { /* e : e '>' e */
#line 392 "gram.y"
yyval.enode = new ('>', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr133: { /* e : e '&' e */
#line 393 "gram.y"
yyval.enode = new ('&', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr134: { /* e : e '|' e */
#line 394 "gram.y"
yyval.enode = new ('|', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr135: { /* e : e '<' '=' e */
#line 395 "gram.y"
yyval.enode = new ('~', ENULL, new ('>', yypvt[-3].enode, yypvt[0].enode));
} break;
case YYr136: { /* e : e '!' '=' e */
#line 396 "gram.y"
yyval.enode = new ('~', ENULL, new ('=', yypvt[-3].enode, yypvt[0].enode));
} break;
case YYr137: { /* e : e '<' '>' e */
#line 397 "gram.y"
yyval.enode = new ('~', ENULL, new ('=', yypvt[-3].enode, yypvt[0].enode));
} break;
case YYr138: { /* e : e '>' '=' e */
#line 398 "gram.y"
yyval.enode = new ('~', ENULL, new ('<', yypvt[-3].enode, yypvt[0].enode));
} break;
case YYr139: { /* e : e '#' e */
#line 399 "gram.y"
yyval.enode = new ('#', yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr140: { /* expr_list : e */
#line 402 "gram.y"
yyval.enode = new(ELIST, ENULL, yypvt[0].enode);
} break;
case YYr141: { /* expr_list : expr_list ',' e */
#line 403 "gram.y"
yyval.enode = new(ELIST, yypvt[-2].enode, yypvt[0].enode);
} break;
case YYr142: { /* range : var ':' var */
#line 406 "gram.y"
yyval.rval.left = yypvt[-2].ent; yyval.rval.right = yypvt[0].ent;
} break;
case YYr143: { /* range : RANGE */
#line 407 "gram.y"
yyval.rval = yypvt[0].rval;
} break;
case YYr144: { /* var : COL NUMBER */
#line 410 "gram.y"
yyval.ent.vp = lookat(yypvt[0].ival , yypvt[-1].ival); yyval.ent.vf = 0;
} break;
case YYr145: { /* var : '$' COL NUMBER */
#line 411 "gram.y"
yyval.ent.vp = lookat(yypvt[0].ival , yypvt[-1].ival);
yyval.ent.vf = FIX_COL;
} break;
case YYr146: { /* var : COL '$' NUMBER */
#line 413 "gram.y"
yyval.ent.vp = lookat(yypvt[0].ival , yypvt[-2].ival);
yyval.ent.vf = FIX_ROW;
} break;
case YYr147: { /* var : '$' COL '$' NUMBER */
#line 415 "gram.y"
yyval.ent.vp = lookat(yypvt[0].ival , yypvt[-2].ival);
yyval.ent.vf = FIX_ROW | FIX_COL;
} break;
case YYr148: { /* var : VAR */
#line 417 "gram.y"
yyval.ent = yypvt[0].rval.left;
} break;
case YYr149: { /* var_or_range : range */
#line 420 "gram.y"
yyval.rval = yypvt[0].rval;
} break;
case YYr150: { /* var_or_range : var */
#line 421 "gram.y"
yyval.rval.left = yypvt[0].ent; yyval.rval.right = yypvt[0].ent;
} break;
case YYr151: { /* num : NUMBER */
#line 424 "gram.y"
yyval.fval = (double) yypvt[0].ival;
} break;
case YYr152: { /* num : FNUMBER */
#line 425 "gram.y"
yyval.fval = yypvt[0].fval;
} break;
case YYr153: { /* num : '-' num */
#line 426 "gram.y"
yyval.fval = -yypvt[0].fval;
} break;
case YYr154: { /* num : '+' num */
#line 427 "gram.y"
yyval.fval = yypvt[0].fval;
} break;
case YYr155: { /* strarg : STRING */
#line 430 "gram.y"
yyval.sval = yypvt[0].sval;
} break;
case YYr156: { /* strarg : var */
#line 431 "gram.y"
char *s, *s1;
s1 = yypvt[0].ent.vp->label;
if (!s1)
s1 = "NULL_STRING";
s = scxmalloc((unsigned)strlen(s1)+1);
(void) strcpy(s, s1);
yyval.sval = s;
} break;
case YYr159: { /* setitem : K_AUTO */
#line 448 "gram.y"
setauto(1);
} break;
case YYr160: { /* setitem : K_AUTOCALC */
#line 449 "gram.y"
setauto(1);
} break;
case YYr161: { /* setitem : '~' K_AUTO */
#line 450 "gram.y"
setauto(0);
} break;
case YYr162: { /* setitem : '~' K_AUTOCALC */
#line 451 "gram.y"
setauto(0);
} break;
case YYr163: { /* setitem : '!' K_AUTO */
#line 452 "gram.y"
setauto(0);
} break;
case YYr164: { /* setitem : '!' K_AUTOCALC */
#line 453 "gram.y"
setauto(0);
} break;
case YYr165: { /* setitem : K_BYCOLS */
#line 454 "gram.y"
setorder(BYCOLS);
} break;
case YYr166: { /* setitem : K_BYROWS */
#line 455 "gram.y"
setorder(BYROWS);
} break;
case YYr167: { /* setitem : K_NUMERIC */
#line 456 "gram.y"
numeric = 1;
} break;
case YYr168: { /* setitem : '!' K_NUMERIC */
#line 457 "gram.y"
numeric = 0;
} break;
case YYr169: { /* setitem : K_PRESCALE */
#line 458 "gram.y"
prescale = 0.01;
} break;
case YYr170: { /* setitem : '!' K_PRESCALE */
#line 459 "gram.y"
prescale = 1.0;
} break;
case YYr171: { /* setitem : K_EXTFUN */
#line 460 "gram.y"
extfunc = 1;
} break;
case YYr172: { /* setitem : '!' K_EXTFUN */
#line 461 "gram.y"
extfunc = 0;
} break;
case YYr173: { /* setitem : K_CELLCUR */
#line 462 "gram.y"
showcell = 1;
} break;
case YYr174: { /* setitem : '!' K_CELLCUR */
#line 463 "gram.y"
showcell = 0;
} break;
case YYr175: { /* setitem : K_TOPROW */
#line 464 "gram.y"
showtop = 1;
} break;
case YYr176: { /* setitem : '!' K_TOPROW */
#line 465 "gram.y"
showtop = 0;
} break;
case YYr177: { /* setitem : K_ITERATIONS '=' NUMBER */
#line 466 "gram.y"
setiterations(yypvt[0].ival);
} break;
case YYr178: { /* setitem : K_TBLSTYLE '=' NUMBER */
#line 467 "gram.y"
tbl_style = yypvt[0].ival;
} break;
case YYr179: { /* setitem : K_TBLSTYLE '=' K_TBL */
#line 468 "gram.y"
tbl_style = TBL;
} break;
case YYr180: { /* setitem : K_TBLSTYLE '=' K_LATEX */
#line 469 "gram.y"
tbl_style = LATEX;
} break;
case YYr181: { /* setitem : K_TBLSTYLE '=' K_SLATEX */
#line 470 "gram.y"
tbl_style = SLATEX;
} break;
case YYr182: { /* setitem : K_TBLSTYLE '=' K_TEX */
#line 471 "gram.y"
tbl_style = TEX;
} break;
case YYr183: { /* setitem : K_TBLSTYLE '=' K_FRAME */
#line 472 "gram.y"
tbl_style = FRAME;
} break;
case YYr184: { /* setitem : K_RNDINFINITY */
#line 473 "gram.y"
rndinfinity = 1; FullUpdate++;
} break;
case YYr185: { /* setitem : '!' K_RNDINFINITY */
#line 474 "gram.y"
rndinfinity = 0; FullUpdate++;
} break;
case YYr186: { /* setitem : K_CRACTION '=' NUMBER */
#line 475 "gram.y"
craction = yypvt[0].ival;
} break;
case YYr187: { /* setitem : K_ROWLIMIT '=' NUMBER */
#line 476 "gram.y"
rowlimit = yypvt[0].ival;
} break;
case YYr188: { /* setitem : K_COLLIMIT '=' NUMBER */
#line 477 "gram.y"
collimit = yypvt[0].ival;
} break;
case YYr189: { /* errlist : K_ERROR */
#line 481 "gram.y"
num_search((double)0, CELLERROR);
} break;
case YYr190: { /* errlist : K_INVALID */
#line 482 "gram.y"
num_search((double)0, CELLINVALID);
} break;
#line 237 "C:/MKS/OS2/etc/yyparse.c"
case YYrACCEPT:
YYACCEPT;
case YYrERROR:
goto yyError;
#ifdef YYLR2
case YYrLR2:
#ifndef YYSYNC
YYREAD;
#endif
yyj = 0;
while(yylr2[yyj] >= 0) {
if(yylr2[yyj] == yystate && yylr2[yyj+1] == yychar
&& yylook(yys+1,yyps,yystate,yychar,yy2lex(),
yylr2[yyj+2]))
break;
yyj += 3;
}
if(yylr2[yyj] < 0)
goto yyError;
if(yylr2[yyj+2] < 0) {
yystate = ~ yylr2[yyj+2];
goto yyStack;
}
yyi = yylr2[yyj+2];
goto yyReduce;
#endif
}
/*
* Look up next state in goto table.
*/
yyp = &yygo[yypgo[yyi]];
yyq = yyp++;
yyi = *yyps;
while (yyi < *yyp++)
;
yystate = ~(yyi == *--yyp? YYQYYP: *yyq);
goto yyStack;
yyerrlabel: ; /* come here from YYERROR */
/*
#pragma used yyerrlabel
*/
yyerrflag = 1;
if (yyi == YYrERROR)
yyps--, yypv--;
yyError:
switch (yyerrflag) {
case 0: /* new error */
yynerrs++;
yyi = yychar;
yyerror("Syntax error");
if (yyi != yychar) {
/* user has changed the current token */
/* try again */
yyerrflag++; /* avoid loops */
goto yyEncore;
}
case 1: /* partially recovered */
case 2:
yyerrflag = 3; /* need 3 valid shifts to recover */
/*
* Pop states, looking for a
* shift on `error'.
*/
for ( ; yyps > yys; yyps--, yypv--) {
if (*yyps >= sizeof yypact/sizeof yypact[0])
continue;
yyp = &yyact[yypact[*yyps]];
yyq = yyp;
do
;
while (YYERRCODE < *yyp++);
if (YYERRCODE == yyp[-1]) {
yystate = ~YYQYYP;
goto yyStack;
}
/* no shift in this state */
#if YYDEBUG
if (yydebug && yyps > yys+1)
printf(
gettext("Error recovery pops state %d (%d), uncovers %d (%d)\n"),
yysmap[yyps[0]], yyps[0],
yysmap[yyps[-1]], yyps[-1]);
#endif
/* pop stacks; try again */
}
/* no shift on error - abort */
break;
case 3:
/*
* Erroneous token after
* an error - discard it.
*/
if (yychar == 0) /* but not EOF */
break;
#if YYDEBUG
if (yydebug)
printf(gettext("Error recovery discards %s (%d), "),
yyptok(yychar), yychar);
#endif
yyclearin;
goto yyEncore; /* try again in same state */
}
YYABORT;
#ifdef YYALLOC
yyReturn:
yylval = save_yylval;
yyval = save_yyval;
yypvt = save_yypvt;
yychar = save_yychar;
yyerrflag = save_yyerrflag;
yynerrs = save_yynerrs;
free((char *)yys);
free((char *)yyv);
return(retval);
#endif
}
#ifdef YYLR2
yylook(s,rsp,state,c1,c2,i)
short *s; /* stack */
short *rsp; /* real top of stack */
int state; /* current state */
int c1; /* current char */
int c2; /* next char */
int i; /* action S < 0, R >= 0 */
{
int j;
short *p,*q;
short *sb,*st;
#if YYDEBUG
if(yydebug) {
printf(gettext("LR2 state %d (%d) char %s (%d) lookahead %s (%d)"),
yysmap[state],state,yyptok(c1),c1,yyptok(c2),c2);
if(i > 0)
printf(gettext("reduce %d (%d)\n"), yyrmap[i], i);
else
printf(gettext("shift %d (%d)\n"), yysmap[i], i);
}
#endif
st = sb = rsp+1;
if(i >= 0)
goto reduce;
shift:
state = ~i;
c1 = c2;
if(c1 < 0)
return 1;
c2 = -1;
stack:
if(++st >= &s[YYSSIZE]) {
yyerror("Parser Stack Overflow");
return 0;
}
*st = state;
if(state >= sizeof yypact/sizeof yypact[0])
i = state- YYDELTA;
else {
p = &yyact[yypact[state]];
q = p;
i = c1;
while(i < *p++)
;
if(i == p[-1]) {
state = ~q[q-p];
c1 = c2;
if(c1 < 0)
return 1;
c2 = -1;
goto stack;
}
if(state >= sizeof yydef/sizeof yydef[0])
return 0;
if((i = yydef[state]) < 0) {
p = &yyex[~i];
while((i = *p) >= 0 && i != c1)
p += 2;
i = p[1];
}
}
reduce:
j = yyrlen[i];
if(st-sb >= j)
st -= j;
else {
rsp -= j+st-sb;
st = sb;
}
switch(i) {
case YYrERROR:
return 0;
case YYrACCEPT:
return 1;
case YYrLR2:
j = 0;
while(yylr2[j] >= 0) {
if(yylr2[j] == state && yylr2[j+1] == c1)
if((i = yylr2[j+2]) < 0)
goto shift;
else
goto reduce;
}
return 0;
}
p = &yygo[yypgo[i]];
q = p++;
i = st==sb ? *rsp : *st;
while(i < *p++);
state = ~(i == *--p? q[q-p]: *q);
goto stack;
}
#endif
#if YYDEBUG
/*
* Print a token legibly.
* This won't work if you define your own token numbers.
*/
char *
yyptok(i)
{
static char buf[10];
if (i >= YYERRCODE)
return yystoken[i-YYERRCODE];
if (i < 0)
return "";
if (i == 0)
return "$end";
if (i < ' ')
sprintf(buf, "'^%c'", i+'@');
else
sprintf(buf, "'%c'", i);
return buf;
}
#endif