extern char *malloc(), *realloc();

# line 18 "gram.y"
#include <curses.h>
#include "sc.h"

#define ENULL (struct enode *)0

# line 24 "gram.y"
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
#define yyclearin yychar = -1
#define yyerrok yyerrflag = 0
extern int yychar;
extern int yyerrflag;
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 150
#endif
YYSTYPE yylval, yyval;
# define YYERRCODE 256
int yyexca[] ={
-1, 0,
	0, 44,
	-2, 0,
-1, 1,
	0, -1,
	-2, 0,
-1, 257,
	60, 0,
	61, 0,
	62, 0,
	33, 0,
	-2, 130,
-1, 260,
	60, 0,
	61, 0,
	62, 0,
	33, 0,
	-2, 131,
-1, 261,
	60, 0,
	61, 0,
	62, 0,
	33, 0,
	-2, 132,
-1, 328,
	60, 0,
	61, 0,
	62, 0,
	33, 0,
	-2, 135,
-1, 329,
	60, 0,
	61, 0,
	62, 0,
	33, 0,
	-2, 137,
-1, 330,
	60, 0,
	61, 0,
	62, 0,
	33, 0,
	-2, 138,
-1, 331,
	60, 0,
	61, 0,
	62, 0,
	33, 0,
	-2, 136,
-1, 339,
	41, 150,
	-2, 46,
	};
# define YYNPROD 191
# define YYLAST 3518
int yyact[]={

   456,   455,   141,   142,   241,   139,   140,   143,   144,   145,
   146,   147,    32,   136,   134,    32,    26,    76,   148,    59,
    37,    58,    32,    99,     6,    19,     3,     4,     5,     7,
    10,     8,     2,    11,    12,    15,    13,    16,    18,    20,
    21,    22,    23,    24,    17,     9,    14,    25,    49,    47,
   130,    80,   454,    48,    46,   393,   326,   325,   249,   248,
   247,   240,   239,   238,    27,   237,   137,   135,    34,    35,
    36,   128,    92,   113,   265,   392,   234,   159,   131,   132,
   133,    52,    53,    55,    60,    61,    62,    63,   153,    70,
   152,   114,   167,   151,   158,   150,   149,    79,    78,   156,
   154,    77,   155,    75,   157,    72,   242,   243,   244,   245,
   246,    59,    73,    58,    86,    87,    98,   158,    85,   231,
   481,   497,   156,   480,   498,   115,   496,   157,    29,    29,
    29,    29,   495,    40,    40,    40,    40,    40,    40,    32,
   494,    51,    29,    29,    29,    29,    29,    29,    29,    40,
    29,   159,   402,   400,   399,   250,   251,   252,   253,   254,
   255,   256,   257,   260,   261,   263,   264,   398,   266,    51,
    51,    51,   479,   397,   159,   480,    29,   396,   126,   395,
   323,    32,   322,   321,    28,   118,   320,   319,   119,    32,
   120,   318,   317,    95,   316,    94,    59,   315,    58,   127,
    50,   314,   313,   312,   311,   310,   258,   259,   168,   117,
   309,   232,   233,   308,   307,   306,   305,   235,   236,   304,
   303,   302,   301,   300,   299,   298,   297,   296,    82,    83,
    84,   295,   294,    66,    56,    57,    30,    33,   126,    31,
    33,    32,    31,   293,   292,   118,    30,    33,   119,    31,
   120,    81,   291,   290,    93,   289,   288,   287,   286,   328,
   329,   285,   284,   330,    67,    68,   331,   283,   282,   117,
   281,   125,   129,   338,   341,   342,   343,   344,   345,   346,
   347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
   357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
   367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
   377,   378,   379,   380,   381,   382,   383,   384,   385,   386,
   387,   388,   389,   390,   391,    74,    56,    57,   394,    54,
   280,   125,   332,   333,   334,   335,   336,   337,   340,    96,
    97,   101,   100,   107,   102,   103,   104,   105,   106,   108,
   279,   278,    64,   277,   276,   109,   275,   274,   273,   110,
    39,   272,   111,   112,    33,   271,    31,   270,   269,   268,
   267,    71,    65,     1,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    88,    89,     0,     0,    90,    91,
     0,     0,     0,    29,    29,    29,    29,    29,   339,   339,
     0,     0,   124,   121,   122,   457,    33,     0,    31,   458,
     0,    56,    57,    30,    33,   459,    31,     0,   460,   138,
     0,    38,     0,     0,     0,   461,   462,   463,   464,   465,
    41,    42,    43,    44,    45,   116,   466,   467,     0,   468,
     0,   469,     0,     0,     0,    69,     0,     0,     0,     0,
   475,   476,   477,   478,   123,     0,     0,     0,     0,     0,
     0,     0,   124,   121,   122,    30,    33,     0,    31,     0,
     0,     0,     0,   126,     0,     0,    32,     0,     0,     0,
   118,   503,     0,   119,     0,   120,     0,   504,   505,   506,
   507,   508,   509,     0,     0,   116,     0,   510,   511,     0,
     0,   262,     0,   512,   117,     0,     0,     0,     0,   470,
   471,   472,   473,   474,   123,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   125,     0,     0,     0,
    29,    29,    29,    29,    29,   169,   170,   171,   172,   173,
   176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
   186,   187,   188,   226,   189,   190,   191,   192,   193,   194,
   174,   175,   195,   196,   197,   198,   199,   200,   201,   202,
   203,   204,   205,   206,   207,   212,   208,   209,   213,   225,
   214,   215,   216,   210,   211,   222,   223,   224,   218,   219,
   220,   217,   221,   126,     0,     0,    32,     0,     0,     0,
   118,     0,     0,   119,     0,   120,     0,     0,     0,     0,
   227,   228,   229,     0,     0,     0,     0,   166,   230,   167,
     0,   158,   164,     0,   117,   521,   156,   154,     0,   155,
     0,   157,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   161,   162,   163,   160,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   124,   121,   122,
     0,    33,     0,    31,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   520,   156,   154,     0,   155,   159,   157,
     0,     0,     0,     0,     0,     0,   125,     0,     0,     0,
   116,     0,   161,   162,   163,   160,     0,     0,     0,     0,
     0,     0,   166,     0,   167,     0,   158,   164,   165,   123,
   519,   156,   154,   166,   155,   167,   157,   158,   164,     0,
     0,   518,   156,   154,     0,   155,   159,   157,     0,   161,
   162,   163,   160,     0,     0,     0,     0,     0,     0,     0,
   161,   162,   163,   160,     0,     0,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,   165,     0,   517,   156,
   154,     0,   155,   159,   157,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   159,     0,     0,   161,   162,   163,
   160,     0,     0,     0,     0,     0,   166,     0,   167,     0,
   158,   164,     0,   165,   516,   156,   154,     0,   155,     0,
   157,     0,     0,     0,   165,     0,     0,     0,     0,     0,
     0,   159,     0,   161,   162,   163,   160,   124,   121,   122,
     0,    33,     0,    31,   166,     0,   167,     0,   158,   164,
     0,     0,   515,   156,   154,     0,   155,     0,   157,     0,
     0,   165,     0,     0,     0,     0,     0,   159,     0,     0,
   116,   161,   162,   163,   160,     0,     0,     0,     0,     0,
     0,     0,   166,     0,   167,     0,   158,   164,     0,   123,
   514,   156,   154,     0,   155,     0,   157,   165,     0,     0,
     0,     0,     0,     0,     0,   159,     0,     0,     0,   161,
   162,   163,   160,     0,     0,     0,     0,   166,     0,   167,
     0,   158,   164,     0,     0,   513,   156,   154,   166,   155,
   167,   157,   158,   164,     0,   165,     0,   156,   154,   502,
   155,     0,   157,   159,   161,   162,   163,   160,     0,     0,
     0,     0,     0,     0,     0,   161,   162,   163,   160,     0,
     0,     0,     0,     0,     0,     0,     0,   166,     0,   167,
     0,   158,   164,   165,     0,   501,   156,   154,   159,   155,
     0,   157,     0,     0,     0,     0,     0,     0,     0,   159,
     0,     0,     0,     0,   161,   162,   163,   160,     0,     0,
     0,     0,   166,     0,   167,     0,   158,   164,   165,     0,
   500,   156,   154,   166,   155,   167,   157,   158,   164,   165,
     0,   499,   156,   154,     0,   155,     0,   157,   159,   161,
   162,   163,   160,     0,     0,     0,     0,     0,     0,     0,
   161,   162,   163,   160,     0,     0,     0,     0,     0,     0,
     0,     0,   166,     0,   167,     0,   158,   164,   165,     0,
   493,   156,   154,   159,   155,     0,   157,     0,     0,     0,
     0,     0,     0,     0,   159,     0,     0,     0,     0,   161,
   162,   163,   160,     0,     0,     0,     0,   166,     0,   167,
     0,   158,   164,   165,     0,   492,   156,   154,   166,   155,
   167,   157,   158,   164,   165,     0,     0,   156,   154,   491,
   155,     0,   157,   159,   161,   162,   163,   160,     0,     0,
     0,     0,     0,     0,     0,   161,   162,   163,   160,     0,
     0,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   165,   156,   154,   490,   155,   159,   157,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   159,
     0,     0,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   165,   156,
   154,   489,   155,     0,   157,     0,     0,     0,     0,   165,
     0,     0,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   488,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   487,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   486,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   485,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   484,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   483,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   482,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   453,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   452,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   451,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   450,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   449,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   448,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   447,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   446,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   445,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   444,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   443,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   442,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   441,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   440,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   439,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   438,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   437,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   436,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   435,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   434,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   433,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   432,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   431,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   430,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   429,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   428,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   427,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   426,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   425,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   424,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   423,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   422,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   421,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   420,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   419,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   418,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   417,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   416,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   415,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   414,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   413,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   412,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   411,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   410,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   409,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   408,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   407,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   406,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,   405,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   404,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,   403,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,     0,   156,   154,   401,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,   327,   159,   161,   162,   163,
   160,     0,     0,     0,     0,   166,     0,   167,     0,   158,
   164,     0,     0,   324,   156,   154,     0,   155,     0,   157,
     0,     0,     0,     0,     0,     0,   165,     0,     0,     0,
     0,   159,   161,   162,   163,   160,     0,     0,     0,     0,
   166,     0,   167,     0,   158,   164,     0,     0,     0,   156,
   154,     0,   155,     0,   157,     0,     0,     0,     0,     0,
     0,   165,     0,     0,     0,     0,   159,   161,   162,   163,
   160,   166,     0,   167,     0,   158,   164,     0,     0,     0,
   156,   154,     0,   155,     0,   157,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   165,     0,   161,   162,
   163,   159,     0,     0,     0,     0,   166,     0,   167,     0,
   158,   164,     0,     0,     0,   156,   154,     0,   155,     0,
   157,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   165,   159,   161,   162,   163,   166,     0,   167,     0,
   158,     0,     0,     0,     0,   156,   154,     0,   155,     0,
   157,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   165,   161,   162,   163,     0,   159,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   159 };
int yypact[]={

  -240, -1000,   -14,   -14,   -14,   -14,  -243,   103,   103,   103,
   103,   103,   103,  -209,  -210,   -14,   -14,   -14,   153,   -14,
   -14,   -14,   -24,   103,   -14, -1000, -1000,    44, -1000,    54,
 -1000,    67,  -246, -1000,    40,    37,    36,    -7, -1000, -1000,
 -1000, -1000, -1000,   -14,   -14,   -14,    60,    56, -1000, -1000,
   -14,    54, -1000, -1000,    68,    68, -1000, -1000,    68,    68,
  -185, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,   -14,
 -1000,   -10,   600,   -21, -1000,  -187,    14,   600,   600,   600,
  -249,  -191, -1000, -1000, -1000,  -250,  -192, -1000, -1000,    68,
 -1000, -1000, -1000, -1000,    54, -1000, -1000, -1000,  -344,  -347,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000,    35,    34, -1000,
    32,    29,    27,  3327, -1000, -1000,   600,   284,   600,   600,
   600,   -19, -1000, -1000, -1000,   600,   600, -1000, -1000, -1000,
  -193,  3327,  3327,  3327,  -195,  -196, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,  -197,
  -254,  -198,  -199,  -200,   600,   600,   600,   600,   600,   600,
   600,   145,   600,   440,   600,   600,    13,   600, -1000,   330,
   329,   328,   327,   325,   321,   318,   317,   316,   314,   313,
   311,   310,   290,   230,   228,   227,   222,   221,   218,   217,
   216,   215,   213,   212,   204,   203,   192,   191,   187,   186,
   185,   184,   183,   182,   181,   180,   179, -1000,   176,   175,
   174,   173,   170,   165,   164,   163,   162,   161,   157,   154,
   152,   151,   147,   146,   143,   142, -1000, -1000, -1000,   140,
 -1000,  3292, -1000, -1000,  -201, -1000, -1000, -1000,  -202, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
    80,    80,   -17,   -17,   -17, -1000,  3257,    57,   600,   600,
    57,    57,   600,  3423,  3393,   600,    80,   -14,   -14,   -14,
   -14,   -14,   205,   205,   600,   600,   600,   600,   600,   600,
   600,   600,   600,   600,   600,   600,   600,   600,   600,   600,
   600,   600,   600,   600,   600,   600,   600,   600,   600,   600,
   600,   600,   600,   600,   600,   600,   600,   600,   600,   600,
   600,   600,   600,   600,   600,   600,   600,   600,   600,   600,
   600,   600,   600,   600, -1000,   -20,  -203,   600,    57,    57,
    57,    57,   138,   136,   132,   126,   113,   112,  3222,    54,
   111,  3187,  3152,  3117,  3082,  3047,  3012,  2977,  2942,  2907,
  2872,  2837,  2802,  2767,  2732,  2697,  2662,  2627,  2592,  2557,
  2522,  2487,  2452,  2417,  2382,  2347,  2312,  2277,  2242,  2207,
  2172,  2137,  2102,  2067,  2032,  1997,  1962,  1927,  1892,  1857,
  1822,  1787,  1752,  1717,  1682,  1647,  1612,  1577,  1542,  1507,
  1472,  1437,  -206, -1000,  3358, -1000, -1000, -1000, -1000, -1000,
 -1000,   600, -1000,   600, -1000, -1000, -1000, -1000,   600, -1000,
 -1000, -1000, -1000, -1000,   600, -1000, -1000,   600, -1000, -1000,
 -1000, -1000, -1000, -1000,   600,   600,   600,   600,   600, -1000,
 -1000, -1000, -1000, -1000, -1000,   600,   600, -1000,   600, -1000,
   600, -1000, -1000, -1000,   -14,   -14,   -14,   -14,   -14,   600,
   600,   600,   600, -1000, -1000,   131,  3327,    79,  1402,  1367,
  1332,  1297,  1262,  1227,  1192,  1157,  1122,  1085,  1074,  1039,
    99,    91,    82,    77,    83,  1000,   989,   954,   915, -1000,
   600, -1000, -1000, -1000, -1000, -1000,   600,   600,   600,   600,
   600,   600, -1000, -1000, -1000, -1000,   600,   600, -1000, -1000,
 -1000, -1000,   600,  3327,   904,   869,   831,   793,   757,   720,
   709,   672,   624, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000 };
int yypgo[]={

     0,   125,   329,   184,    64,   421,     0,    91,     1,   373,
   372,   371,   193 };
int yyr1[]={

     0,     9,     9,     9,     9,     9,     9,     9,     9,     9,
     9,     9,     9,     9,     9,     9,     9,     9,     9,     9,
     9,     9,     9,     9,     9,     9,     9,     9,     9,     9,
     9,     9,     9,     9,     9,     9,     9,     9,     9,     9,
     9,     9,     9,     9,     9,     9,     7,     7,     7,     7,
     7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
     7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
     7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
     7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
     7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
     7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
     7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
     7,     7,     6,     6,     6,     6,     6,     6,     6,     6,
     6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
     8,     8,     3,     3,     1,     1,     1,     1,     1,     4,
     4,     2,     2,     2,     2,     5,     5,    11,    11,    12,
    12,    12,    12,    12,    12,    12,    12,    12,    12,    12,
    12,    12,    12,    12,    12,    12,    12,    12,    12,    12,
    12,    12,    12,    12,    12,    12,    12,    12,    12,    10,
    10 };
int yyr2[]={

     0,     9,     9,     9,     9,    15,    11,    13,     9,     5,
     5,     5,     7,     5,     7,     5,     7,     5,     9,     9,
     5,     5,     7,     3,     5,     3,     5,     7,     9,     7,
     3,     5,     3,     5,     5,     5,     4,     5,     3,     5,
     7,     7,     5,     4,     0,     2,     3,     5,    11,    11,
    11,    11,    11,    11,    15,    11,    15,    11,    11,    11,
    11,    15,    11,    11,    11,    11,    11,    15,    11,    11,
    15,    11,    11,    11,    11,    11,    11,    15,    19,    19,
    19,    19,    11,    11,    11,    11,    11,    11,     5,    19,
    19,    11,    15,    11,    15,    11,    11,    11,    15,    15,
    19,    19,    15,    15,    15,    15,    19,     7,     5,     5,
     3,     3,    11,     3,     5,     3,     5,     5,     5,     5,
    11,     5,     7,     7,     7,     7,     7,     7,     2,    11,
     7,     7,     7,     7,     7,     9,     9,     9,     9,     7,
     3,     7,     7,     3,     5,     7,     7,     9,     3,     3,
     3,     3,     3,     5,     5,     3,     3,     0,     4,     3,
     3,     5,     5,     5,     5,     3,     3,     3,     5,     3,
     5,     3,     5,     3,     5,     3,     5,     7,     7,     7,
     7,     7,     7,     7,     3,     5,     7,     7,     7,     3,
     3 };
int yychk[]={

 -1000,    -9,   272,   266,   267,   268,   264,   269,   271,   285,
   270,   273,   274,   276,   286,   275,   277,   284,   278,   265,
   279,   280,   281,   282,   283,   287,   256,    -4,    -3,    -1,
   260,   263,    36,   261,    -4,    -4,    -4,   263,    -5,   257,
    -1,    -5,    -5,    -5,    -5,    -5,   263,   258,   263,   258,
    -3,    -1,    -4,    -4,    -2,    -4,   258,   259,    45,    43,
    -4,    -4,    -4,    -4,    -2,   -10,   257,   288,   289,    -5,
    -4,   -11,    61,    58,   258,    36,   263,    61,    61,    61,
    58,   258,    -3,    -3,    -3,    58,    58,    -4,    -2,    -2,
    -2,    -2,   257,    -3,    -1,   -12,   349,   350,   126,    33,
   352,   351,   354,   355,   356,   357,   358,   353,   359,   365,
   369,   372,   373,    -6,    -7,    -1,   290,    64,    40,    43,
    45,   258,   259,   309,   257,   126,    33,    -1,   258,   258,
    36,    -6,    -6,    -6,   263,   258,   263,   258,    -2,   349,
   350,   349,   350,   354,   355,   356,   357,   358,   365,    61,
    61,    61,    61,    61,    43,    45,    42,    47,    37,    94,
    63,    60,    61,    62,    38,   124,    33,    35,    -7,   291,
   292,   293,   294,   295,   316,   317,   296,   297,   298,   299,
   300,   301,   302,   303,   304,   305,   306,   307,   308,   310,
   311,   312,   313,   314,   315,   318,   319,   320,   321,   322,
   323,   324,   325,   326,   327,   328,   329,   330,   332,   333,
   339,   340,   331,   334,   336,   337,   338,   347,   344,   345,
   346,   348,   341,   342,   343,   335,   309,   366,   367,   368,
   374,    -6,    -7,    -7,    95,    -7,    -7,   258,   258,   258,
   258,   258,   360,   361,   362,   363,   364,   258,   258,   258,
    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    61,    62,
    -6,    -6,    61,    -6,    -6,    61,    -6,    40,    40,    40,
    40,    40,    40,    40,    40,    40,    40,    40,    40,    40,
    40,    40,    40,    40,    40,    40,    40,    40,    40,    40,
    40,    40,    40,    40,    40,    40,    40,    40,    40,    40,
    40,    40,    40,    40,    40,    40,    40,    40,    40,    40,
    40,    40,    40,    40,    40,    40,    40,    40,    40,    40,
    40,    40,    40,    40,    41,   258,   258,    58,    -6,    -6,
    -6,    -6,    -4,    -4,    -4,    -4,    -4,    -4,    -6,    -1,
    -4,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,
    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,
    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,
    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,
    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,
    -6,    -6,    95,   258,    -6,    41,    41,    41,    41,    41,
    41,    44,    41,    44,    41,    41,    41,    41,    44,    41,
    41,    41,    41,    41,    44,    41,    41,    44,    41,    41,
    41,    41,    41,    41,    44,    44,    44,    44,    44,    41,
    41,    41,    41,    41,    41,    44,    44,    41,    44,    41,
    44,    41,    41,    41,    44,    44,    44,    44,    44,    44,
    44,    44,    44,    41,   258,    -8,    -6,    -8,    -6,    -6,
    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,    -6,
    -4,    -4,    -4,    -4,    -4,    -6,    -6,    -6,    -6,    41,
    44,    41,    41,    41,    41,    41,    44,    44,    44,    44,
    44,    44,    41,    41,    41,    41,    44,    44,    41,    41,
    41,    41,    44,    -6,    -6,    -6,    -6,    -6,    -6,    -6,
    -6,    -6,    -6,    41,    41,    41,    41,    41,    41,    41,
    41,    41 };
int yydef[]={

    -2,    -2,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    23,    25,     0,     0,
    30,    32,    38,     0,     0,   157,    45,     0,   149,   150,
   143,     0,     0,   148,     0,     0,     0,     0,     9,   155,
   156,    10,    11,    13,    15,    17,     0,     0,    20,    21,
     0,     0,    24,    26,     0,     0,   151,   152,     0,     0,
     0,    31,    33,    34,    35,    36,    37,   189,   190,    39,
    42,    43,     0,     0,   144,     0,     0,     0,     0,     0,
     0,     0,    12,    14,    16,     0,     0,    22,    27,     0,
   153,   154,    29,    40,    41,   158,   159,   160,     0,     0,
   165,   166,   167,   169,   171,   173,   175,     0,     0,   184,
     0,     0,     0,     1,   128,    46,     0,     0,     0,     0,
     0,   110,   111,   113,   115,     0,     0,   142,   146,   145,
     0,     2,     3,     4,     0,     8,    18,    19,    28,   161,
   162,   163,   164,   168,   170,   172,   174,   176,   185,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    47,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    88,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   114,   118,   119,     0,
   121,     0,   108,   109,     0,   116,   117,   147,     0,     6,
   177,   178,   179,   180,   181,   182,   183,   186,   187,   188,
   122,   123,   124,   125,   126,   127,     0,    -2,     0,     0,
    -2,    -2,     0,   133,   134,     0,   139,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   107,     0,     7,     0,    -2,    -2,
    -2,    -2,     0,     0,     0,     0,     0,     0,     0,    -2,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     5,   129,    48,    49,    50,    51,    52,
    53,     0,    55,     0,    57,    58,    59,    60,     0,    62,
    63,    64,    65,    66,     0,    68,    69,     0,    71,    72,
    73,    74,    75,    76,     0,     0,     0,     0,     0,    82,
    83,    84,    85,    86,    87,     0,     0,    91,     0,    93,
     0,    95,    96,    97,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   120,   112,     0,   140,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    54,
     0,    56,    61,    67,    70,    77,     0,     0,     0,     0,
     0,     0,    92,    94,    98,    99,     0,     0,   102,   103,
   104,   105,     0,   141,     0,     0,     0,     0,     0,     0,
     0,     0,     0,    78,    79,    80,    81,    89,    90,   100,
   101,   106 };
typedef struct { char *t_name; int t_val; } yytoktype;
#ifndef YYDEBUG
#	define YYDEBUG	0	/* don't allow debugging */
#endif

#if YYDEBUG

yytoktype yytoks[] =
{
	"STRING",	257,
	"NUMBER",	258,
	"FNUMBER",	259,
	"RANGE",	260,
	"VAR",	261,
	"WORD",	262,
	"COL",	263,
	"S_FORMAT",	264,
	"S_FMT",	265,
	"S_LABEL",	266,
	"S_LEFTSTRING",	267,
	"S_RIGHTSTRING",	268,
	"S_GET",	269,
	"S_PUT",	270,
	"S_MERGE",	271,
	"S_LET",	272,
	"S_WRITE",	273,
	"S_TBL",	274,
	"S_COPY",	275,
	"S_SHOW",	276,
	"S_ERASE",	277,
	"S_FILL",	278,
	"S_LOCK",	279,
	"S_UNLOCK",	280,
	"S_GOTO",	281,
	"S_DEFINE",	282,
	"S_UNDEFINE",	283,
	"S_VALUE",	284,
	"S_MDIR",	285,
	"S_HIDE",	286,
	"S_SET",	287,
	"K_ERROR",	288,
	"K_INVALID",	289,
	"K_FIXED",	290,
	"K_SUM",	291,
	"K_PROD",	292,
	"K_AVG",	293,
	"K_STDDEV",	294,
	"K_COUNT",	295,
	"K_ABS",	296,
	"K_ACOS",	297,
	"K_ASIN",	298,
	"K_ATAN",	299,
	"K_ATAN2",	300,
	"K_CEIL",	301,
	"K_COS",	302,
	"K_EXP",	303,
	"K_FABS",	304,
	"K_FLOOR",	305,
	"K_HYPOT",	306,
	"K_LN",	307,
	"K_LOG",	308,
	"K_PI",	309,
	"K_POW",	310,
	"K_SIN",	311,
	"K_SQRT",	312,
	"K_TAN",	313,
	"K_DTR",	314,
	"K_RTD",	315,
	"K_MAX",	316,
	"K_MIN",	317,
	"K_RND",	318,
	"K_ROUND",	319,
	"K_IF",	320,
	"K_PV",	321,
	"K_FV",	322,
	"K_PMT",	323,
	"K_HOUR",	324,
	"K_MINUTE",	325,
	"K_SECOND",	326,
	"K_MONTH",	327,
	"K_DAY",	328,
	"K_YEAR",	329,
	"K_NOW",	330,
	"K_DATE",	331,
	"K_DTS",	332,
	"K_TTS",	333,
	"K_FMT",	334,
	"K_SUBSTR",	335,
	"K_UPPER",	336,
	"K_LOWER",	337,
	"K_CAPITAL",	338,
	"K_STON",	339,
	"K_EQS",	340,
	"K_EXT",	341,
	"K_NVAL",	342,
	"K_SVAL",	343,
	"K_LOOKUP",	344,
	"K_HLOOKUP",	345,
	"K_VLOOKUP",	346,
	"K_INDEX",	347,
	"K_STINDEX",	348,
	"K_AUTO",	349,
	"K_AUTOCALC",	350,
	"K_BYROWS",	351,
	"K_BYCOLS",	352,
	"K_ITERATIONS",	353,
	"K_NUMERIC",	354,
	"K_PRESCALE",	355,
	"K_EXTFUN",	356,
	"K_CELLCUR",	357,
	"K_TOPROW",	358,
	"K_TBLSTYLE",	359,
	"K_TBL",	360,
	"K_LATEX",	361,
	"K_SLATEX",	362,
	"K_TEX",	363,
	"K_FRAME",	364,
	"K_RNDINFINITY",	365,
	"K_MYROW",	366,
	"K_MYCOL",	367,
	"K_COLTOA",	368,
	"K_CRACTION",	369,
	"K_CRROW",	370,
	"K_CRCOL",	371,
	"K_ROWLIMIT",	372,
	"K_COLLIMIT",	373,
	"K_NUMITER",	374,
	"?",	63,
	":",	58,
	"|",	124,
	"&",	38,
	"<",	60,
	"=",	61,
	">",	62,
	"!",	33,
	"+",	43,
	"-",	45,
	"#",	35,
	"*",	42,
	"/",	47,
	"%",	37,
	"^",	94,
	"-unknown-",	-1	/* ends search */
};

char * yyreds[] =
{
	"-no such reduction-",
	"command : S_LET var_or_range '=' e",
	"command : S_LABEL var_or_range '=' e",
	"command : S_LEFTSTRING var_or_range '=' e",
	"command : S_RIGHTSTRING var_or_range '=' e",
	"command : S_FORMAT COL ':' COL NUMBER NUMBER NUMBER",
	"command : S_FORMAT COL NUMBER NUMBER NUMBER",
	"command : S_FORMAT COL ':' COL NUMBER NUMBER",
	"command : S_FORMAT COL NUMBER NUMBER",
	"command : S_GET strarg",
	"command : S_MERGE strarg",
	"command : S_MDIR strarg",
	"command : S_PUT strarg range",
	"command : S_PUT strarg",
	"command : S_WRITE strarg range",
	"command : S_WRITE strarg",
	"command : S_TBL strarg range",
	"command : S_TBL strarg",
	"command : S_SHOW COL ':' COL",
	"command : S_SHOW NUMBER ':' NUMBER",
	"command : S_HIDE COL",
	"command : S_HIDE NUMBER",
	"command : S_COPY range var_or_range",
	"command : S_ERASE",
	"command : S_ERASE var_or_range",
	"command : S_VALUE",
	"command : S_VALUE var_or_range",
	"command : S_FILL num num",
	"command : S_FILL var_or_range num num",
	"command : S_FMT var_or_range STRING",
	"command : S_LOCK",
	"command : S_LOCK var_or_range",
	"command : S_UNLOCK",
	"command : S_UNLOCK var_or_range",
	"command : S_GOTO var_or_range",
	"command : S_GOTO num",
	"command : S_GOTO errlist",
	"command : S_GOTO STRING",
	"command : S_GOTO",
	"command : S_DEFINE strarg",
	"command : S_DEFINE strarg range",
	"command : S_DEFINE strarg var",
	"command : S_UNDEFINE var_or_range",
	"command : S_SET setlist",
	"command : /* empty */",
	"command : error",
	"term : var",
	"term : K_FIXED term",
	"term : '@' K_SUM '(' var_or_range ')'",
	"term : '@' K_PROD '(' var_or_range ')'",
	"term : '@' K_AVG '(' var_or_range ')'",
	"term : '@' K_STDDEV '(' var_or_range ')'",
	"term : '@' K_COUNT '(' var_or_range ')'",
	"term : '@' K_MAX '(' var_or_range ')'",
	"term : '@' K_MAX '(' e ',' expr_list ')'",
	"term : '@' K_MIN '(' var_or_range ')'",
	"term : '@' K_MIN '(' e ',' expr_list ')'",
	"term : '@' K_ABS '(' e ')'",
	"term : '@' K_ACOS '(' e ')'",
	"term : '@' K_ASIN '(' e ')'",
	"term : '@' K_ATAN '(' e ')'",
	"term : '@' K_ATAN2 '(' e ',' e ')'",
	"term : '@' K_CEIL '(' e ')'",
	"term : '@' K_COS '(' e ')'",
	"term : '@' K_EXP '(' e ')'",
	"term : '@' K_FABS '(' e ')'",
	"term : '@' K_FLOOR '(' e ')'",
	"term : '@' K_HYPOT '(' e ',' e ')'",
	"term : '@' K_LN '(' e ')'",
	"term : '@' K_LOG '(' e ')'",
	"term : '@' K_POW '(' e ',' e ')'",
	"term : '@' K_SIN '(' e ')'",
	"term : '@' K_SQRT '(' e ')'",
	"term : '@' K_TAN '(' e ')'",
	"term : '@' K_DTR '(' e ')'",
	"term : '@' K_RTD '(' e ')'",
	"term : '@' K_RND '(' e ')'",
	"term : '@' K_ROUND '(' e ',' e ')'",
	"term : '@' K_IF '(' e ',' e ',' e ')'",
	"term : '@' K_PV '(' e ',' e ',' e ')'",
	"term : '@' K_FV '(' e ',' e ',' e ')'",
	"term : '@' K_PMT '(' e ',' e ',' e ')'",
	"term : '@' K_HOUR '(' e ')'",
	"term : '@' K_MINUTE '(' e ')'",
	"term : '@' K_SECOND '(' e ')'",
	"term : '@' K_MONTH '(' e ')'",
	"term : '@' K_DAY '(' e ')'",
	"term : '@' K_YEAR '(' e ')'",
	"term : '@' K_NOW",
	"term : '@' K_DTS '(' e ',' e ',' e ')'",
	"term : '@' K_TTS '(' e ',' e ',' e ')'",
	"term : '@' K_STON '(' e ')'",
	"term : '@' K_EQS '(' e ',' e ')'",
	"term : '@' K_DATE '(' e ')'",
	"term : '@' K_FMT '(' e ',' e ')'",
	"term : '@' K_UPPER '(' e ')'",
	"term : '@' K_LOWER '(' e ')'",
	"term : '@' K_CAPITAL '(' e ')'",
	"term : '@' K_INDEX '(' e ',' var_or_range ')'",
	"term : '@' K_LOOKUP '(' e ',' var_or_range ')'",
	"term : '@' K_HLOOKUP '(' e ',' var_or_range ',' e ')'",
	"term : '@' K_VLOOKUP '(' e ',' var_or_range ',' e ')'",
	"term : '@' K_STINDEX '(' e ',' var_or_range ')'",
	"term : '@' K_EXT '(' e ',' e ')'",
	"term : '@' K_NVAL '(' e ',' e ')'",
	"term : '@' K_SVAL '(' e ',' e ')'",
	"term : '@' K_SUBSTR '(' e ',' e ',' e ')'",
	"term : '(' e ')'",
	"term : '+' term",
	"term : '-' term",
	"term : NUMBER",
	"term : FNUMBER",
	"term : NUMBER '_' NUMBER '_' NUMBER",
	"term : K_PI",
	"term : '@' K_PI",
	"term : STRING",
	"term : '~' term",
	"term : '!' term",
	"term : '@' K_MYROW",
	"term : '@' K_MYCOL",
	"term : '@' K_COLTOA '(' e ')'",
	"term : '@' K_NUMITER",
	"e : e '+' e",
	"e : e '-' e",
	"e : e '*' e",
	"e : e '/' e",
	"e : e '%' e",
	"e : e '^' e",
	"e : term",
	"e : e '?' e ':' e",
	"e : e '<' e",
	"e : e '=' e",
	"e : e '>' e",
	"e : e '&' e",
	"e : e '|' e",
	"e : e '<' '=' e",
	"e : e '!' '=' e",
	"e : e '<' '>' e",
	"e : e '>' '=' e",
	"e : e '#' e",
	"expr_list : e",
	"expr_list : expr_list ',' e",
	"range : var ':' var",
	"range : RANGE",
	"var : COL NUMBER",
	"var : '$' COL NUMBER",
	"var : COL '$' NUMBER",
	"var : '$' COL '$' NUMBER",
	"var : VAR",
	"var_or_range : range",
	"var_or_range : var",
	"num : NUMBER",
	"num : FNUMBER",
	"num : '-' num",
	"num : '+' num",
	"strarg : STRING",
	"strarg : var",
	"setlist : /* empty */",
	"setlist : setlist setitem",
	"setitem : K_AUTO",
	"setitem : K_AUTOCALC",
	"setitem : '~' K_AUTO",
	"setitem : '~' K_AUTOCALC",
	"setitem : '!' K_AUTO",
	"setitem : '!' K_AUTOCALC",
	"setitem : K_BYCOLS",
	"setitem : K_BYROWS",
	"setitem : K_NUMERIC",
	"setitem : '!' K_NUMERIC",
	"setitem : K_PRESCALE",
	"setitem : '!' K_PRESCALE",
	"setitem : K_EXTFUN",
	"setitem : '!' K_EXTFUN",
	"setitem : K_CELLCUR",
	"setitem : '!' K_CELLCUR",
	"setitem : K_TOPROW",
	"setitem : '!' K_TOPROW",
	"setitem : K_ITERATIONS '=' NUMBER",
	"setitem : K_TBLSTYLE '=' NUMBER",
	"setitem : K_TBLSTYLE '=' K_TBL",
	"setitem : K_TBLSTYLE '=' K_LATEX",
	"setitem : K_TBLSTYLE '=' K_SLATEX",
	"setitem : K_TBLSTYLE '=' K_TEX",
	"setitem : K_TBLSTYLE '=' K_FRAME",
	"setitem : K_RNDINFINITY",
	"setitem : '!' K_RNDINFINITY",
	"setitem : K_CRACTION '=' NUMBER",
	"setitem : K_ROWLIMIT '=' NUMBER",
	"setitem : K_COLLIMIT '=' NUMBER",
	"errlist : K_ERROR",
	"errlist : K_INVALID",
};
#endif /* YYDEBUG */
#line 1 "/usr/lib/yaccpar"
/*	@(#)yaccpar 1.10 89/04/04 SMI; from S5R3 1.10	*/

/*
** Skeleton parser driver for yacc output
*/

/*
** yacc user known macros and defines
*/
#define YYERROR		goto yyerrlab
#define YYACCEPT	{ free(yys); free(yyv); return(0); }
#define YYABORT		{ free(yys); free(yyv); return(1); }
#define YYBACKUP( newtoken, newvalue )\
{\
	if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
	{\
		yyerror( "syntax error - cannot backup" );\
		goto yyerrlab;\
	}\
	yychar = newtoken;\
	yystate = *yyps;\
	yylval = newvalue;\
	goto yynewstate;\
}
#define YYRECOVERING()	(!!yyerrflag)
#ifndef YYDEBUG
#	define YYDEBUG	1	/* make debugging available */
#endif

/*
** user known globals
*/
int yydebug;			/* set to 1 to get debugging */

/*
** driver internal defines
*/
#define YYFLAG		(-1000)

/*
** static variables used by the parser
*/
static YYSTYPE *yyv;			/* value stack */
static int *yys;			/* state stack */

static YYSTYPE *yypv;			/* top of value stack */
static int *yyps;			/* top of state stack */

static int yystate;			/* current state */
static int yytmp;			/* extra var (lasts between blocks) */

int yynerrs;			/* number of errors */

int yyerrflag;			/* error recovery flag */
int yychar;			/* current input token number */


/*
** yyparse - return 0 if worked, 1 if syntax error not recovered from
*/
int
yyparse()
{
	register YYSTYPE *yypvt;	/* top of value stack for $vars */
	unsigned yymaxdepth = YYMAXDEPTH;

	/*
	** Initialize externals - yyparse may be called more than once
	*/
	yyv = (YYSTYPE*)malloc(yymaxdepth*sizeof(YYSTYPE));
	yys = (int*)malloc(yymaxdepth*sizeof(int));
	if (!yyv || !yys)
	{
		yyerror( "out of memory" );
		return(1);
	}
	yypv = &yyv[-1];
	yyps = &yys[-1];
	yystate = 0;
	yytmp = 0;
	yynerrs = 0;
	yyerrflag = 0;
	yychar = -1;

	goto yystack;
	{
		register YYSTYPE *yy_pv;	/* top of value stack */
		register int *yy_ps;		/* top of state stack */
		register int yy_state;		/* current state */
		register int  yy_n;		/* internal state number info */

		/*
		** get globals into registers.
		** branch to here only if YYBACKUP was called.
		*/
	yynewstate:
		yy_pv = yypv;
		yy_ps = yyps;
		yy_state = yystate;
		goto yy_newstate;

		/*
		** get globals into registers.
		** either we just started, or we just finished a reduction
		*/
	yystack:
		yy_pv = yypv;
		yy_ps = yyps;
		yy_state = yystate;

		/*
		** top of for (;;) loop while no reductions done
		*/
	yy_stack:
		/*
		** put a state and value onto the stacks
		*/
#if YYDEBUG
		/*
		** if debugging, look up token value in list of value vs.
		** name pairs.  0 and negative (-1) are special values.
		** Note: linear search is used since time is not a real
		** consideration while debugging.
		*/
		if ( yydebug )
		{
			register int yy_i;

			(void)printf( "State %d, token ", yy_state );
			if ( yychar == 0 )
				(void)printf( "end-of-file\n" );
			else if ( yychar < 0 )
				(void)printf( "-none-\n" );
			else
			{
				for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
					yy_i++ )
				{
					if ( yytoks[yy_i].t_val == yychar )
						break;
				}
				(void)printf( "%s\n", yytoks[yy_i].t_name );
			}
		}
#endif /* YYDEBUG */
		if ( ++yy_ps >= &yys[ yymaxdepth ] )	/* room on stack? */
		{
			/*
			** reallocate and recover.  Note that pointers
			** have to be reset, or bad things will happen
			*/
			int yyps_index = (yy_ps - yys);
			int yypv_index = (yy_pv - yyv);
			int yypvt_index = (yypvt - yyv);
			yymaxdepth += YYMAXDEPTH;
			yyv = (YYSTYPE*)realloc((char*)yyv,
				yymaxdepth * sizeof(YYSTYPE));
			yys = (int*)realloc((char*)yys,
				yymaxdepth * sizeof(int));
			if (!yyv || !yys)
			{
				yyerror( "yacc stack overflow" );
				return(1);
			}
			yy_ps = yys + yyps_index;
			yy_pv = yyv + yypv_index;
			yypvt = yyv + yypvt_index;
		}
		*yy_ps = yy_state;
		*++yy_pv = yyval;

		/*
		** we have a new state - find out what to do
		*/
	yy_newstate:
		if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
			goto yydefault;		/* simple state */
#if YYDEBUG
		/*
		** if debugging, need to mark whether new token grabbed
		*/
		yytmp = yychar < 0;
#endif
		if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
			yychar = 0;		/* reached EOF */
#if YYDEBUG
		if ( yydebug && yytmp )
		{
			register int yy_i;

			(void)printf( "Received token " );
			if ( yychar == 0 )
				(void)printf( "end-of-file\n" );
			else if ( yychar < 0 )
				(void)printf( "-none-\n" );
			else
			{
				for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
					yy_i++ )
				{
					if ( yytoks[yy_i].t_val == yychar )
						break;
				}
				(void)printf( "%s\n", yytoks[yy_i].t_name );
			}
		}
#endif /* YYDEBUG */
		if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
			goto yydefault;
		if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar )	/*valid shift*/
		{
			yychar = -1;
			yyval = yylval;
			yy_state = yy_n;
			if ( yyerrflag > 0 )
				yyerrflag--;
			goto yy_stack;
		}

	yydefault:
		if ( ( yy_n = yydef[ yy_state ] ) == -2 )
		{
#if YYDEBUG
			yytmp = yychar < 0;
#endif
			if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
				yychar = 0;		/* reached EOF */
#if YYDEBUG
			if ( yydebug && yytmp )
			{
				register int yy_i;

				(void)printf( "Received token " );
				if ( yychar == 0 )
					(void)printf( "end-of-file\n" );
				else if ( yychar < 0 )
					(void)printf( "-none-\n" );
				else
				{
					for ( yy_i = 0;
						yytoks[yy_i].t_val >= 0;
						yy_i++ )
					{
						if ( yytoks[yy_i].t_val
							== yychar )
						{
							break;
						}
					}
					(void)printf( "%s\n", yytoks[yy_i].t_name );
				}
			}
#endif /* YYDEBUG */
			/*
			** look through exception table
			*/
			{
				register int *yyxi = yyexca;

				while ( ( *yyxi != -1 ) ||
					( yyxi[1] != yy_state ) )
				{
					yyxi += 2;
				}
				while ( ( *(yyxi += 2) >= 0 ) &&
					( *yyxi != yychar ) )
					;
				if ( ( yy_n = yyxi[1] ) < 0 )
					YYACCEPT;
			}
		}

		/*
		** check for syntax error
		*/
		if ( yy_n == 0 )	/* have an error */
		{
			/* no worry about speed here! */
			switch ( yyerrflag )
			{
			case 0:		/* new error */
				yyerror( "syntax error" );
				goto skip_init;
			yyerrlab:
				/*
				** get globals into registers.
				** we have a user generated syntax type error
				*/
				yy_pv = yypv;
				yy_ps = yyps;
				yy_state = yystate;
				yynerrs++;
			skip_init:
			case 1:
			case 2:		/* incompletely recovered error */
					/* try again... */
				yyerrflag = 3;
				/*
				** find state where "error" is a legal
				** shift action
				*/
				while ( yy_ps >= yys )
				{
					yy_n = yypact[ *yy_ps ] + YYERRCODE;
					if ( yy_n >= 0 && yy_n < YYLAST &&
						yychk[yyact[yy_n]] == YYERRCODE)					{
						/*
						** simulate shift of "error"
						*/
						yy_state = yyact[ yy_n ];
						goto yy_stack;
					}
					/*
					** current state has no shift on
					** "error", pop stack
					*/
#if YYDEBUG
#	define _POP_ "Error recovery pops state %d, uncovers state %d\n"
					if ( yydebug )
						(void)printf( _POP_, *yy_ps,
							yy_ps[-1] );
#	undef _POP_
#endif
					yy_ps--;
					yy_pv--;
				}
				/*
				** there is no state on stack with "error" as
				** a valid shift.  give up.
				*/
				YYABORT;
			case 3:		/* no shift yet; eat a token */
#if YYDEBUG
				/*
				** if debugging, look up token in list of
				** pairs.  0 and negative shouldn't occur,
				** but since timing doesn't matter when
				** debugging, it doesn't hurt to leave the
				** tests here.
				*/
				if ( yydebug )
				{
					register int yy_i;

					(void)printf( "Error recovery discards " );
					if ( yychar == 0 )
						(void)printf( "token end-of-file\n" );
					else if ( yychar < 0 )
						(void)printf( "token -none-\n" );
					else
					{
						for ( yy_i = 0;
							yytoks[yy_i].t_val >= 0;
							yy_i++ )
						{
							if ( yytoks[yy_i].t_val
								== yychar )
							{
								break;
							}
						}
						(void)printf( "token %s\n",
							yytoks[yy_i].t_name );
					}
				}
#endif /* YYDEBUG */
				if ( yychar == 0 )	/* reached EOF. quit */
					YYABORT;
				yychar = -1;
				goto yy_newstate;
			}
		}/* end if ( yy_n == 0 ) */
		/*
		** reduction by production yy_n
		** put stack tops, etc. so things right after switch
		*/
#if YYDEBUG
		/*
		** if debugging, print the string that is the user's
		** specification of the reduction which is just about
		** to be done.
		*/
		if ( yydebug )
			(void)printf( "Reduce by (%d) \"%s\"\n",
				yy_n, yyreds[ yy_n ] );
#endif
		yytmp = yy_n;			/* value to switch over */
		yypvt = yy_pv;			/* $vars top of value stack */
		/*
		** Look in goto table for next state
		** Sorry about using yy_state here as temporary
		** register variable, but why not, if it works...
		** If yyr2[ yy_n ] doesn't have the low order bit
		** set, then there is no action to be done for
		** this reduction.  So, no saving & unsaving of
		** registers done.  The only difference between the
		** code just after the if and the body of the if is
		** the goto yy_stack in the body.  This way the test
		** can be made before the choice of what to do is needed.
		*/
		{
			/* length of production doubled with extra bit */
			register int yy_len = yyr2[ yy_n ];

			if ( !( yy_len & 01 ) )
			{
				yy_len >>= 1;
				yyval = ( yy_pv -= yy_len )[1];	/* $$ = $1 */
				yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
					*( yy_ps -= yy_len ) + 1;
				if ( yy_state >= YYLAST ||
					yychk[ yy_state =
					yyact[ yy_state ] ] != -yy_n )
				{
					yy_state = yyact[ yypgo[ yy_n ] ];
				}
				goto yy_stack;
			}
			yy_len >>= 1;
			yyval = ( yy_pv -= yy_len )[1];	/* $$ = $1 */
			yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
				*( yy_ps -= yy_len ) + 1;
			if ( yy_state >= YYLAST ||
				yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
			{
				yy_state = yyact[ yypgo[ yy_n ] ];
			}
		}
					/* save until reenter driver code */
		yystate = yy_state;
		yyps = yy_ps;
		yypv = yy_pv;
	}
	/*
	** code supplied by user is placed in this switch
	*/
	switch( yytmp )
	{
		
case 1:
# line 171 "gram.y"
{ let(yypvt[-2].rval.left.vp, yypvt[-0].enode); } break;
case 2:
# line 173 "gram.y"
{ slet(yypvt[-2].rval.left.vp, yypvt[-0].enode, 0); } break;
case 3:
# line 175 "gram.y"
{ slet(yypvt[-2].rval.left.vp, yypvt[-0].enode, -1); } break;
case 4:
# line 177 "gram.y"
{ slet(yypvt[-2].rval.left.vp, yypvt[-0].enode, 1); } break;
case 5:
# line 179 "gram.y"
{ doformat(yypvt[-5].ival,yypvt[-3].ival,yypvt[-2].ival,yypvt[-1].ival,yypvt[-0].ival); } break;
case 6:
# line 181 "gram.y"
{ doformat(yypvt[-3].ival,yypvt[-3].ival,yypvt[-2].ival,yypvt[-1].ival,yypvt[-0].ival); } break;
case 7:
# line 183 "gram.y"
{ doformat(yypvt[-4].ival,yypvt[-2].ival,yypvt[-1].ival,yypvt[-0].ival, REFMTFIX); } break;
case 8:
# line 185 "gram.y"
{ doformat(yypvt[-2].ival,yypvt[-2].ival,yypvt[-1].ival,yypvt[-0].ival, REFMTFIX); } break;
case 9:
# line 186 "gram.y"
{  /* This tmp hack is because readfile
				    * recurses back through yyparse. */
				  char *tmp;
				  tmp = yypvt[-0].sval;
				  readfile (tmp, 1);
				  scxfree(tmp);
				} break;
case 10:
# line 193 "gram.y"
{
				  char *tmp;
				  tmp = yypvt[-0].sval;
				  readfile (tmp, 0);
				  scxfree(tmp);
				} break;
case 11:
# line 200 "gram.y"
{ if (mdir) scxfree(mdir); mdir = yypvt[-0].sval; } break;
case 12:
# 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 13:
# line 207 "gram.y"
{ (void) writefile (yypvt[-0].sval, 0, 0, maxrow, maxcol);
			 	scxfree(yypvt[-0].sval); } break;
case 14:
# 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 15:
# line 213 "gram.y"
{ (void) printfile (yypvt[-0].sval, 0, 0, maxrow, maxcol);
			 scxfree(yypvt[-0].sval); } break;
case 16:
# 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 17:
# line 219 "gram.y"
{ (void)tblprintfile (yypvt[-0].sval, 0, 0, maxrow, maxcol);
			 scxfree(yypvt[-0].sval); } break;
case 18:
# line 222 "gram.y"
{ showcol( yypvt[-2].ival, yypvt[-0].ival); } break;
case 19:
# line 224 "gram.y"
{ showrow( yypvt[-2].ival, yypvt[-0].ival); } break;
case 20:
# line 226 "gram.y"
{ hide_col( yypvt[-0].ival ); } break;
case 21:
# line 228 "gram.y"
{ hide_row( yypvt[-0].ival ); } break;
case 22:
# 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 23:
# line 233 "gram.y"
{ eraser(lookat(showsr, showsc),
				        lookat(currow, curcol)); } break;
case 24:
# line 236 "gram.y"
{ eraser(yypvt[-0].rval.left.vp, yypvt[-0].rval.right.vp); } break;
case 25:
# line 237 "gram.y"
{ valueize_area(showsr, showsc, currow, curcol);
				 modflg++; } break;
case 26:
# 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 27:
# line 243 "gram.y"
{ fill(lookat(showsr, showsc),
				      lookat(currow, curcol), yypvt[-1].fval, yypvt[-0].fval); } break;
case 28:
# line 246 "gram.y"
{ fill(yypvt[-2].rval.left.vp, yypvt[-2].rval.right.vp, yypvt[-1].fval, yypvt[-0].fval); } break;
case 29:
# line 248 "gram.y"
{ format_cell(yypvt[-1].rval.left.vp, yypvt[-1].rval.right.vp, yypvt[-0].sval); } break;
case 30:
# line 250 "gram.y"
{ lock_cells(lookat(showsr, showsc),
				        lookat(currow, curcol)); } break;
case 31:
# line 253 "gram.y"
{ lock_cells(yypvt[-0].rval.left.vp, yypvt[-0].rval.right.vp); } break;
case 32:
# line 255 "gram.y"
{ unlock_cells(lookat(showsr, showsc),
				        lookat(currow, curcol)); } break;
case 33:
# line 258 "gram.y"
{ unlock_cells(yypvt[-0].rval.left.vp, yypvt[-0].rval.right.vp); } break;
case 34:
# line 259 "gram.y"
{moveto(yypvt[-0].rval.left.vp->row, yypvt[-0].rval.left.vp->col);} break;
case 35:
# line 260 "gram.y"
{ num_search(yypvt[-0].fval, 0); } break;
case 37:
# line 262 "gram.y"
{ str_search(yypvt[-0].sval); } break;
case 38:
# line 263 "gram.y"
{ go_last(); } break;
case 39:
# 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 40:
# line 274 "gram.y"
{ add_range(yypvt[-1].sval, yypvt[-0].rval.left, yypvt[-0].rval.right, 1); } break;
case 41:
# line 275 "gram.y"
{ add_range(yypvt[-1].sval, yypvt[-0].ent, yypvt[-0].ent, 0); } break;
case 42:
# line 276 "gram.y"
{ del_range(yypvt[-0].rval.left.vp, yypvt[-0].rval.right.vp); } break;
case 46:
# line 281 "gram.y"
{ yyval.enode = new_var(O_VAR, yypvt[-0].ent); } break;
case 47:
# line 282 "gram.y"
{ yyval.enode = new ('f', ENULL, yypvt[-0].enode); } break;
case 48:
# line 284 "gram.y"
{ yyval.enode = new_range(REDUCE | '+', yypvt[-1].rval); } break;
case 49:
# line 286 "gram.y"
{ yyval.enode = new_range (REDUCE | '*', yypvt[-1].rval); } break;
case 50:
# line 288 "gram.y"
{ yyval.enode = new_range (REDUCE | 'a', yypvt[-1].rval); } break;
case 51:
# line 290 "gram.y"
{ yyval.enode = new_range (REDUCE | 's', yypvt[-1].rval); } break;
case 52:
# line 292 "gram.y"
{ yyval.enode = new_range (REDUCE | 'c', yypvt[-1].rval); } break;
case 53:
# line 294 "gram.y"
{ yyval.enode = new_range (REDUCE | MAX, yypvt[-1].rval); } break;
case 54:
# line 296 "gram.y"
{ yyval.enode = new(LMAX, yypvt[-1].enode, yypvt[-3].enode); } break;
case 55:
# line 298 "gram.y"
{ yyval.enode = new_range (REDUCE | MIN, yypvt[-1].rval); } break;
case 56:
# line 300 "gram.y"
{ yyval.enode = new(LMIN, yypvt[-1].enode, yypvt[-3].enode); } break;
case 57:
# line 301 "gram.y"
{ yyval.enode = new(ABS, ENULL, yypvt[-1].enode); } break;
case 58:
# line 302 "gram.y"
{ yyval.enode = new(ACOS, ENULL, yypvt[-1].enode); } break;
case 59:
# line 303 "gram.y"
{ yyval.enode = new(ASIN, ENULL, yypvt[-1].enode); } break;
case 60:
# line 304 "gram.y"
{ yyval.enode = new(ATAN, ENULL, yypvt[-1].enode); } break;
case 61:
# line 305 "gram.y"
{ yyval.enode = new(ATAN2, yypvt[-3].enode, yypvt[-1].enode); } break;
case 62:
# line 306 "gram.y"
{ yyval.enode = new(CEIL, ENULL, yypvt[-1].enode); } break;
case 63:
# line 307 "gram.y"
{ yyval.enode = new(COS, ENULL, yypvt[-1].enode); } break;
case 64:
# line 308 "gram.y"
{ yyval.enode = new(EXP, ENULL, yypvt[-1].enode); } break;
case 65:
# line 309 "gram.y"
{ yyval.enode = new(FABS, ENULL, yypvt[-1].enode); } break;
case 66:
# line 310 "gram.y"
{ yyval.enode = new(FLOOR, ENULL, yypvt[-1].enode); } break;
case 67:
# line 311 "gram.y"
{ yyval.enode = new(HYPOT, yypvt[-3].enode, yypvt[-1].enode); } break;
case 68:
# line 312 "gram.y"
{ yyval.enode = new(LOG, ENULL, yypvt[-1].enode); } break;
case 69:
# line 313 "gram.y"
{ yyval.enode = new(LOG10, ENULL, yypvt[-1].enode); } break;
case 70:
# line 314 "gram.y"
{ yyval.enode = new(POW, yypvt[-3].enode, yypvt[-1].enode); } break;
case 71:
# line 315 "gram.y"
{ yyval.enode = new(SIN, ENULL, yypvt[-1].enode); } break;
case 72:
# line 316 "gram.y"
{ yyval.enode = new(SQRT, ENULL, yypvt[-1].enode); } break;
case 73:
# line 317 "gram.y"
{ yyval.enode = new(TAN, ENULL, yypvt[-1].enode); } break;
case 74:
# line 318 "gram.y"
{ yyval.enode = new(DTR, ENULL, yypvt[-1].enode); } break;
case 75:
# line 319 "gram.y"
{ yyval.enode = new(RTD, ENULL, yypvt[-1].enode); } break;
case 76:
# line 320 "gram.y"
{ yyval.enode = new(RND, ENULL, yypvt[-1].enode); } break;
case 77:
# line 321 "gram.y"
{ yyval.enode = new(ROUND, yypvt[-3].enode, yypvt[-1].enode); } break;
case 78:
# line 322 "gram.y"
{ yyval.enode = new(IF,  yypvt[-5].enode,new(',',yypvt[-3].enode,yypvt[-1].enode)); } break;
case 79:
# line 324 "gram.y"
{ yyval.enode = new(PV,  yypvt[-5].enode,new(':',yypvt[-3].enode,yypvt[-1].enode)); } break;
case 80:
# line 325 "gram.y"
{ yyval.enode = new(FV,  yypvt[-5].enode,new(':',yypvt[-3].enode,yypvt[-1].enode)); } break;
case 81:
# line 326 "gram.y"
{ yyval.enode = new(PMT, yypvt[-5].enode,new(':',yypvt[-3].enode,yypvt[-1].enode)); } break;
case 82:
# line 328 "gram.y"
{ yyval.enode = new(HOUR,ENULL, yypvt[-1].enode); } break;
case 83:
# line 329 "gram.y"
{ yyval.enode = new(MINUTE,ENULL, yypvt[-1].enode); } break;
case 84:
# line 330 "gram.y"
{ yyval.enode = new(SECOND,ENULL, yypvt[-1].enode); } break;
case 85:
# line 331 "gram.y"
{ yyval.enode = new(MONTH,ENULL,yypvt[-1].enode); } break;
case 86:
# line 332 "gram.y"
{ yyval.enode = new(DAY, ENULL, yypvt[-1].enode); } break;
case 87:
# line 333 "gram.y"
{ yyval.enode = new(YEAR, ENULL, yypvt[-1].enode); } break;
case 88:
# line 334 "gram.y"
{ yyval.enode = new(NOW, ENULL, ENULL);} break;
case 89:
# line 336 "gram.y"
{ yyval.enode = new(DTS, yypvt[-5].enode, new(',', yypvt[-3].enode, yypvt[-1].enode));} break;
case 90:
# line 338 "gram.y"
{ yyval.enode = new(TTS, yypvt[-5].enode, new(',', yypvt[-3].enode, yypvt[-1].enode));} break;
case 91:
# line 339 "gram.y"
{ yyval.enode = new(STON, ENULL, yypvt[-1].enode); } break;
case 92:
# line 340 "gram.y"
{ yyval.enode = new (EQS, yypvt[-3].enode, yypvt[-1].enode); } break;
case 93:
# line 341 "gram.y"
{ yyval.enode = new(DATE, ENULL, yypvt[-1].enode); } break;
case 94:
# line 342 "gram.y"
{ yyval.enode = new(FMT, yypvt[-3].enode, yypvt[-1].enode); } break;
case 95:
# line 343 "gram.y"
{ yyval.enode = new(UPPER, ENULL, yypvt[-1].enode); } break;
case 96:
# line 344 "gram.y"
{ yyval.enode = new(LOWER, ENULL, yypvt[-1].enode); } break;
case 97:
# line 345 "gram.y"
{ yyval.enode = new(CAPITAL, ENULL, yypvt[-1].enode); } break;
case 98:
# line 347 "gram.y"
{ yyval.enode = new(INDEX, yypvt[-3].enode, new_range(REDUCE | INDEX, yypvt[-1].rval)); } break;
case 99:
# line 349 "gram.y"
{ yyval.enode = new(LOOKUP, yypvt[-3].enode, new_range(REDUCE | LOOKUP, yypvt[-1].rval)); } break;
case 100:
# line 351 "gram.y"
{ yyval.enode = new(HLOOKUP, new(',', yypvt[-5].enode, yypvt[-1].enode),
		    new_range(REDUCE | HLOOKUP, yypvt[-3].rval)); } break;
case 101:
# line 354 "gram.y"
{ yyval.enode = new(VLOOKUP, new(',', yypvt[-5].enode, yypvt[-1].enode),
		    new_range(REDUCE | VLOOKUP, yypvt[-3].rval)); } break;
case 102:
# line 357 "gram.y"
{ yyval.enode = new(STINDEX, yypvt[-3].enode, new_range(REDUCE | STINDEX, yypvt[-1].rval)); } break;
case 103:
# line 358 "gram.y"
{ yyval.enode = new(EXT, yypvt[-3].enode, yypvt[-1].enode); } break;
case 104:
# line 359 "gram.y"
{ yyval.enode = new(NVAL, yypvt[-3].enode, yypvt[-1].enode); } break;
case 105:
# line 360 "gram.y"
{ yyval.enode = new(SVAL, yypvt[-3].enode, yypvt[-1].enode); } break;
case 106:
# line 362 "gram.y"
{ yyval.enode = new(SUBSTR, yypvt[-5].enode, new(',', yypvt[-3].enode, yypvt[-1].enode)); } break;
case 107:
# line 363 "gram.y"
{ yyval.enode = yypvt[-1].enode; } break;
case 108:
# line 364 "gram.y"
{ yyval.enode = yypvt[-0].enode; } break;
case 109:
# line 365 "gram.y"
{ yyval.enode = new ('m', ENULL, yypvt[-0].enode); } break;
case 110:
# line 366 "gram.y"
{ yyval.enode = new_const(O_CONST, (double) yypvt[-0].ival); } break;
case 111:
# line 367 "gram.y"
{ yyval.enode = new_const(O_CONST, yypvt[-0].fval); } break;
case 112:
# line 369 "gram.y"
{ yyval.enode = new_const(O_CONST, convert_date(yypvt[-4].ival,yypvt[-2].ival,yypvt[-0].ival)); } break;
case 113:
# line 370 "gram.y"
{ yyval.enode = new_const(O_CONST, (double)3.14159265358979323846); } break;
case 114:
# line 371 "gram.y"
{ yyval.enode = new_const(O_CONST, (double)3.14159265358979323846); } break;
case 115:
# line 372 "gram.y"
{ yyval.enode = new_str(yypvt[-0].sval); } break;
case 116:
# line 373 "gram.y"
{ yyval.enode = new ('~', ENULL, yypvt[-0].enode); } break;
case 117:
# line 374 "gram.y"
{ yyval.enode = new ('~', ENULL, yypvt[-0].enode); } break;
case 118:
# line 375 "gram.y"
{ yyval.enode = new(MYROW, ENULL, ENULL);} break;
case 119:
# line 376 "gram.y"
{ yyval.enode = new(MYCOL, ENULL, ENULL);} break;
case 120:
# line 377 "gram.y"
{ yyval.enode = new(COLTOA, ENULL, yypvt[-1].enode);} break;
case 121:
# line 378 "gram.y"
{ yyval.enode = new(NUMITER, ENULL, ENULL);} break;
case 122:
# line 382 "gram.y"
{ yyval.enode = new ('+', yypvt[-2].enode, yypvt[-0].enode); } break;
case 123:
# line 383 "gram.y"
{ yyval.enode = new ('-', yypvt[-2].enode, yypvt[-0].enode); } break;
case 124:
# line 384 "gram.y"
{ yyval.enode = new ('*', yypvt[-2].enode, yypvt[-0].enode); } break;
case 125:
# line 385 "gram.y"
{ yyval.enode = new ('/', yypvt[-2].enode, yypvt[-0].enode); } break;
case 126:
# line 386 "gram.y"
{ yyval.enode = new ('%', yypvt[-2].enode, yypvt[-0].enode); } break;
case 127:
# line 387 "gram.y"
{ yyval.enode = new ('^', yypvt[-2].enode, yypvt[-0].enode); } break;
case 129:
# line 389 "gram.y"
{ yyval.enode = new ('?', yypvt[-4].enode, new(':', yypvt[-2].enode, yypvt[-0].enode)); } break;
case 130:
# line 390 "gram.y"
{ yyval.enode = new ('<', yypvt[-2].enode, yypvt[-0].enode); } break;
case 131:
# line 391 "gram.y"
{ yyval.enode = new ('=', yypvt[-2].enode, yypvt[-0].enode); } break;
case 132:
# line 392 "gram.y"
{ yyval.enode = new ('>', yypvt[-2].enode, yypvt[-0].enode); } break;
case 133:
# line 393 "gram.y"
{ yyval.enode = new ('&', yypvt[-2].enode, yypvt[-0].enode); } break;
case 134:
# line 394 "gram.y"
{ yyval.enode = new ('|', yypvt[-2].enode, yypvt[-0].enode); } break;
case 135:
# line 395 "gram.y"
{ yyval.enode = new ('~', ENULL, new ('>', yypvt[-3].enode, yypvt[-0].enode)); } break;
case 136:
# line 396 "gram.y"
{ yyval.enode = new ('~', ENULL, new ('=', yypvt[-3].enode, yypvt[-0].enode)); } break;
case 137:
# line 397 "gram.y"
{ yyval.enode = new ('~', ENULL, new ('=', yypvt[-3].enode, yypvt[-0].enode)); } break;
case 138:
# line 398 "gram.y"
{ yyval.enode = new ('~', ENULL, new ('<', yypvt[-3].enode, yypvt[-0].enode)); } break;
case 139:
# line 399 "gram.y"
{ yyval.enode = new ('#', yypvt[-2].enode, yypvt[-0].enode); } break;
case 140:
# line 402 "gram.y"
{ yyval.enode = new(ELIST, ENULL, yypvt[-0].enode); } break;
case 141:
# line 403 "gram.y"
{ yyval.enode = new(ELIST, yypvt[-2].enode, yypvt[-0].enode); } break;
case 142:
# line 406 "gram.y"
{ yyval.rval.left = yypvt[-2].ent; yyval.rval.right = yypvt[-0].ent; } break;
case 143:
# line 407 "gram.y"
{ yyval.rval = yypvt[-0].rval; } break;
case 144:
# line 410 "gram.y"
{ yyval.ent.vp = lookat(yypvt[-0].ival , yypvt[-1].ival); yyval.ent.vf = 0; } break;
case 145:
# line 411 "gram.y"
{ yyval.ent.vp = lookat(yypvt[-0].ival , yypvt[-1].ival);
					yyval.ent.vf = FIX_COL; } break;
case 146:
# line 413 "gram.y"
{ yyval.ent.vp = lookat(yypvt[-0].ival , yypvt[-2].ival);
					yyval.ent.vf = FIX_ROW; } break;
case 147:
# line 415 "gram.y"
{ yyval.ent.vp = lookat(yypvt[-0].ival , yypvt[-2].ival);
					yyval.ent.vf = FIX_ROW | FIX_COL; } break;
case 148:
# line 417 "gram.y"
{ yyval.ent = yypvt[-0].rval.left; } break;
case 149:
# line 420 "gram.y"
{ yyval.rval = yypvt[-0].rval; } break;
case 150:
# line 421 "gram.y"
{ yyval.rval.left = yypvt[-0].ent; yyval.rval.right = yypvt[-0].ent; } break;
case 151:
# line 424 "gram.y"
{ yyval.fval = (double) yypvt[-0].ival; } break;
case 152:
# line 425 "gram.y"
{ yyval.fval = yypvt[-0].fval; } break;
case 153:
# line 426 "gram.y"
{ yyval.fval = -yypvt[-0].fval; } break;
case 154:
# line 427 "gram.y"
{ yyval.fval = yypvt[-0].fval; } break;
case 155:
# line 430 "gram.y"
{ yyval.sval = yypvt[-0].sval; } break;
case 156:
# 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 159:
# line 448 "gram.y"
{ setauto(1); } break;
case 160:
# line 449 "gram.y"
{ setauto(1); } break;
case 161:
# line 450 "gram.y"
{ setauto(0); } break;
case 162:
# line 451 "gram.y"
{ setauto(0); } break;
case 163:
# line 452 "gram.y"
{ setauto(0); } break;
case 164:
# line 453 "gram.y"
{ setauto(0); } break;
case 165:
# line 454 "gram.y"
{ setorder(BYCOLS); } break;
case 166:
# line 455 "gram.y"
{ setorder(BYROWS); } break;
case 167:
# line 456 "gram.y"
{ numeric = 1; } break;
case 168:
# line 457 "gram.y"
{ numeric = 0; } break;
case 169:
# line 458 "gram.y"
{ prescale = 0.01; } break;
case 170:
# line 459 "gram.y"
{ prescale = 1.0; } break;
case 171:
# line 460 "gram.y"
{ extfunc = 1; } break;
case 172:
# line 461 "gram.y"
{ extfunc = 0; } break;
case 173:
# line 462 "gram.y"
{ showcell = 1; } break;
case 174:
# line 463 "gram.y"
{ showcell = 0; } break;
case 175:
# line 464 "gram.y"
{ showtop = 1; } break;
case 176:
# line 465 "gram.y"
{ showtop = 0; } break;
case 177:
# line 466 "gram.y"
{ setiterations(yypvt[-0].ival); } break;
case 178:
# line 467 "gram.y"
{ tbl_style = yypvt[-0].ival; } break;
case 179:
# line 468 "gram.y"
{ tbl_style = TBL; } break;
case 180:
# line 469 "gram.y"
{ tbl_style = LATEX; } break;
case 181:
# line 470 "gram.y"
{ tbl_style = SLATEX; } break;
case 182:
# line 471 "gram.y"
{ tbl_style = TEX; } break;
case 183:
# line 472 "gram.y"
{ tbl_style = FRAME; } break;
case 184:
# line 473 "gram.y"
{ rndinfinity = 1; FullUpdate++; } break;
case 185:
# line 474 "gram.y"
{ rndinfinity = 0; FullUpdate++; } break;
case 186:
# line 475 "gram.y"
{ craction = yypvt[-0].ival; } break;
case 187:
# line 476 "gram.y"
{ rowlimit = yypvt[-0].ival; } break;
case 188:
# line 477 "gram.y"
{ collimit = yypvt[-0].ival; } break;
case 189:
# line 481 "gram.y"
{ num_search((double)0, CELLERROR); } break;
case 190:
# line 482 "gram.y"
{ num_search((double)0, CELLINVALID); } break;
	}
	goto yystack;		/* reset registers in driver code */
}
