Submitted-By: Jawaid Bazyar (baz...@netcom.com)
Posting-number: Volume 1, Source 99
Archive-Name: gno/util/awk.06
Architecture: 2gs,UNIX
Version-Number: 1.00
=y.tab.c
-extern char *malloc(), *realloc();
-
-#ifdef __ORCAC__
-segment "lex.yy";
-#endif
-
-# line 26 "awk.g.y"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "awk.h"
-int yywrap(void) { return(1); }
-
-Node *beginloc = 0;
-Node *endloc = 0;
-int infunc = 0; /* = 1 if in arglist or body of func */
-int inloop = 0; /* = 1 if in while, for, do */
-uchar *curfname = 0; /* current function name */
-Node *arglist = 0; /* list of args for current function */
-
-# line 38 "awk.g.y"
-typedef union {
- Node *p;
- Cell *cp;
- int i;
- uchar *s;
-} YYSTYPE;
-# define FIRSTTOKEN 257
-# define PROGRAM 258
-# define PASTAT 259
-# define PASTAT2 260
-# define XBEGIN 261
-# define XEND 262
-# define NL 263
-# define ARRAY 264
-# define MATCH 265
-# define NOTMATCH 266
-# define MATCHOP 267
-# define FINAL 268
-# define DOT 269
-# define ALL 270
-# define CCL 271
-# define NCCL 272
-# define CHAR 273
-# define OR 274
-# define STAR 275
-# define QUEST 276
-# define PLUS 277
-# define AND 278
-# define BOR 279
-# define APPEND 280
-# define EQ 281
-# define GE 282
-# define GT 283
-# define LE 284
-# define LT 285
-# define NE 286
-# define IN 287
-# define ARG 288
-# define BLTIN 289
-# define BREAK 290
-# define CLOSE 291
-# define CONTINUE 292
-# define DELETE 293
-# define DO 294
-# define EXIT 295
-# define FOR 296
-# define FUNC 297
-# define SUB 298
-# define GSUB 299
-# define IF 300
-# define INDEX 301
-# define LSUBSTR 302
-# define MATCHFCN 303
-# define NEXT 304
-# define ADD 305
-# define MINUS 306
-# define MULT 307
-# define DIVIDE 308
-# define MOD 309
-# define ASSIGN 310
-# define ASGNOP 311
-# define ADDEQ 312
-# define SUBEQ 313
-# define MULTEQ 314
-# define DIVEQ 315
-# define MODEQ 316
-# define POWEQ 317
-# define PRINT 318
-# define PRINTF 319
-# define SPRINTF 320
-# define ELSE 321
-# define INTEST 322
-# define CONDEXPR 323
-# define POSTINCR 324
-# define PREINCR 325
-# define POSTDECR 326
-# define PREDECR 327
-# define VAR 328
-# define IVAR 329
-# define VARNF 330
-# define CALL 331
-# define NUMBER 332
-# define STRING 333
-# define FIELD 334
-# define REGEXPR 335
-# define GETLINE 336
-# define RETURN 337
-# define SPLIT 338
-# define SUBSTR 339
-# define WHILE 340
-# define CAT 341
-# define NOT 342
-# define UMINUS 343
-# define POWER 344
-# define DECR 345
-# define INCR 346
-# define INDIRECT 347
-# define LASTTOKEN 348
-#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
-
-# line 425 "awk.g.y"
-
-
-void setfname(Cell *p)
-{
- if (isarr(p))
- ERROR "%s is an array, not a function", p->nval SYNTAX;
- else if (isfunc(p))
- ERROR "you can't define function %s more than once", p->nval SYNTAX;
- curfname = p->nval;
-}
-
-int constnode(Node *p)
-{
- return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;
-}
-
-uchar *strnode(Node *p)
-{
- return ((Cell *)(p->narg[0]))->sval;
-}
-
-Node *notnull(Node *n)
-{
- switch (n->nobj) {
- case LE: case LT: case EQ: case NE: case GT: case GE:
- case BOR: case AND: case NOT:
- return n;
- default:
- return op2(NE, n, nullnode);
- }
-}
-int yyexca[] ={
--1, 0,
- 0, 28,
- 261, 28,
- 262, 28,
- 123, 28,
- 40, 28,
- 47, 28,
- 288, 28,
- 289, 28,
- 297, 28,
- 298, 28,
- 299, 28,
- 301, 28,
- 303, 28,
- 320, 28,
- 328, 28,
- 329, 28,
- 330, 28,
- 331, 28,
- 332, 28,
- 333, 28,
- 334, 28,
- 336, 28,
- 338, 28,
- 339, 28,
- 43, 28,
- 45, 28,
- 342, 28,
- 345, 28,
- 346, 28,
- 347, 28,
- -2, 0,
--1, 1,
- 0, -1,
- -2, 0,
--1, 156,
- 59, 30,
- -2, 0,
--1, 175,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 63,
--1, 176,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 64,
--1, 177,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 65,
--1, 178,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 66,
--1, 179,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 67,
--1, 180,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 68,
--1, 182,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 70,
--1, 287,
- 267, 0,
- 287, 0,
- -2, 53,
--1, 331,
- 41, 30,
- -2, 0,
--1, 353,
- 41, 30,
- -2, 0,
- };
-# define YYNPROD 184
-# define YYLAST 4436
-int yyact[]={
-
- 17, 137, 66, 124, 242, 227, 43, 102, 103, 104,
- 112, 252, 275, 43, 111, 306, 100, 184, 213, 109,
- 107, 111, 108, 252, 110, 100, 109, 100, 100, 100,
- 248, 110, 121, 122, 123, 222, 43, 82, 103, 104,
- 83, 103, 104, 43, 312, 113, 42, 23, 44, 138,
- 54, 251, 22, 42, 23, 44, 154, 204, 231, 22,
- 142, 252, 146, 139, 105, 24, 149, 151, 152, 308,
- 310, 7, 24, 162, 7, 100, 42, 23, 44, 49,
- 140, 272, 22, 42, 216, 44, 43, 143, 316, 52,
- 16, 189, 189, 243, 113, 24, 273, 10, 9, 267,
- 100, 333, 133, 322, 189, 189, 189, 100, 100, 100,
- 100, 100, 100, 100, 148, 276, 276, 282, 155, 189,
- 189, 263, 350, 349, 189, 100, 42, 348, 44, 198,
- 167, 168, 258, 257, 187, 189, 189, 189, 319, 318,
- 314, 256, 100, 218, 329, 169, 100, 220, 166, 132,
- 134, 100, 225, 157, 156, 130, 129, 25, 128, 229,
- 127, 126, 100, 125, 120, 119, 153, 269, 16, 144,
- 131, 100, 223, 100, 315, 100, 100, 100, 100, 100,
- 100, 100, 85, 100, 4, 250, 100, 100, 345, 155,
- 359, 362, 221, 50, 21, 59, 217, 1, 72, 20,
- 100, 40, 5, 67, 62, 100, 61, 100, 100, 100,
- 247, 81, 100, 100, 232, 96, 8, 233, 158, 159,
- 2, 0, 0, 0, 114, 235, 116, 117, 118, 0,
- 0, 100, 100, 100, 100, 162, 0, 162, 162, 162,
- 162, 274, 0, 162, 0, 100, 0, 0, 0, 201,
- 203, 181, 0, 0, 100, 100, 0, 291, 209, 86,
- 292, 0, 0, 0, 0, 0, 268, 140, 165, 0,
- 0, 3, 164, 140, 96, 6, 0, 0, 6, 0,
- 0, 100, 161, 48, 100, 100, 100, 210, 100, 183,
- 100, 0, 0, 0, 0, 100, 0, 100, 100, 116,
- 0, 100, 0, 100, 100, 100, 96, 192, 193, 194,
- 195, 196, 197, 18, 162, 0, 28, 0, 27, 0,
- 45, 112, 332, 155, 205, 339, 0, 340, 112, 0,
- 307, 100, 68, 0, 229, 0, 100, 344, 100, 0,
- 0, 96, 100, 100, 237, 96, 311, 0, 0, 0,
- 96, 228, 0, 0, 357, 0, 229, 354, 155, 358,
- 0, 241, 0, 0, 0, 331, 0, 0, 0, 0,
- 96, 360, 96, 290, 96, 96, 96, 96, 96, 96,
- 96, 0, 96, 0, 0, 96, 96, 346, 0, 0,
- 0, 0, 0, 155, 0, 0, 16, 286, 356, 96,
- 353, 0, 0, 0, 259, 0, 96, 96, 96, 0,
- 18, 96, 96, 28, 0, 27, 0, 45, 298, 299,
- 0, 238, 0, 0, 0, 0, 0, 0, 0, 68,
- 96, 277, 278, 279, 164, 288, 164, 164, 164, 164,
- 0, 0, 164, 0, 96, 0, 295, 0, 0, 0,
- 0, 0, 0, 96, 96, 0, 0, 301, 0, 0,
- 0, 0, 0, 237, 0, 0, 237, 237, 237, 309,
- 237, 18, 237, 0, 28, 0, 27, 0, 45, 338,
- 241, 0, 0, 241, 241, 241, 0, 241, 0, 241,
- 68, 0, 0, 16, 96, 0, 96, 96, 0, 0,
- 96, 63, 96, 96, 96, 0, 11, 334, 0, 0,
- 0, 0, 51, 164, 79, 80, 0, 280, 237, 283,
- 284, 285, 287, 0, 0, 289, 0, 0, 0, 75,
- 96, 18, 0, 0, 28, 241, 27, 96, 45, 0,
- 238, 96, 96, 238, 238, 238, 0, 238, 0, 238,
- 68, 0, 11, 0, 16, 0, 305, 0, 0, 0,
- 0, 43, 29, 56, 57, 58, 73, 69, 60, 70,
- 0, 46, 47, 71, 34, 0, 35, 64, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 77, 78, 38, 0, 238, 335, 0, 0, 0,
- 0, 42, 23, 44, 30, 36, 39, 22, 0, 33,
- 65, 37, 41, 76, 16, 26, 0, 0, 31, 32,
- 24, 0, 0, 0, 0, 0, 75, 0, 0, 0,
- 0, 0, 0, 53, 0, 0, 215, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 43, 29,
- 56, 57, 58, 73, 69, 60, 70, 0, 46, 47,
- 71, 34, 18, 35, 64, 28, 0, 27, 0, 45,
- 0, 0, 0, 0, 0, 0, 0, 75, 77, 78,
- 38, 68, 0, 0, 0, 0, 0, 0, 42, 23,
- 44, 30, 36, 39, 22, 0, 33, 65, 37, 41,
- 76, 0, 26, 0, 0, 31, 32, 24, 0, 43,
- 29, 56, 57, 58, 73, 69, 60, 70, 0, 46,
- 47, 71, 34, 18, 35, 64, 28, 0, 27, 0,
- 45, 0, 0, 0, 0, 0, 0, 75, 0, 77,
- 78, 38, 68, 0, 270, 16, 0, 246, 0, 42,
- 23, 44, 30, 36, 39, 22, 0, 33, 65, 37,
- 41, 76, 0, 26, 0, 0, 31, 32, 24, 43,
- 29, 56, 57, 58, 73, 69, 60, 70, 0, 46,
- 47, 71, 34, 18, 35, 64, 28, 0, 27, 0,
- 45, 0, 0, 0, 0, 0, 0, 0, 0, 77,
- 78, 38, 68, 0, 0, 0, 16, 336, 245, 42,
- 23, 44, 30, 36, 39, 22, 19, 33, 65, 37,
- 41, 76, 0, 26, 0, 0, 31, 32, 24, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 115, 18, 0, 0, 28, 0, 27,
- 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 68, 0, 0, 16, 0, 224, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 75, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 163,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 43, 29, 56, 57, 58, 73, 69, 60, 70, 0,
- 46, 47, 71, 34, 0, 35, 64, 16, 0, 214,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
- 77, 78, 38, 0, 0, 0, 0, 0, 0, 0,
- 42, 23, 44, 30, 36, 39, 22, 0, 33, 65,
- 37, 41, 76, 0, 26, 0, 0, 31, 32, 24,
- 0, 43, 29, 56, 57, 58, 73, 69, 60, 70,
- 0, 46, 47, 71, 34, 18, 35, 64, 28, 0,
- 27, 0, 45, 0, 0, 0, 0, 0, 0, 75,
- 0, 77, 78, 38, 68, 0, 0, 0, 0, 0,
- 0, 42, 23, 44, 30, 36, 39, 22, 0, 33,
- 65, 37, 41, 76, 0, 26, 0, 0, 31, 32,
- 24, 43, 29, 56, 57, 58, 73, 69, 60, 70,
- 0, 46, 47, 71, 34, 18, 35, 64, 28, 0,
- 27, 163, 45, 163, 163, 163, 163, 0, 0, 163,
- 75, 77, 78, 38, 68, 0, 0, 0, 16, 0,
- 135, 42, 23, 44, 30, 36, 39, 22, 0, 33,
- 65, 37, 41, 76, 0, 26, 0, 0, 31, 32,
- 24, 0, 43, 29, 56, 57, 58, 73, 69, 60,
- 70, 0, 46, 47, 71, 34, 0, 35, 64, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 77, 78, 38, 0, 0, 0, 16, 0,
- 163, 0, 42, 23, 44, 30, 36, 39, 22, 0,
- 33, 65, 37, 41, 76, 0, 26, 0, 0, 31,
- 32, 24, 0, 0, 0, 0, 0, 0, 101, 328,
- 0, 28, 189, 27, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 84, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 75, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 43, 29, 56, 57, 58, 73, 69,
- 60, 70, 95, 46, 47, 71, 34, 0, 35, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 75, 0, 77, 78, 38, 0, 0, 0, 0,
- 0, 0, 0, 42, 23, 44, 30, 36, 39, 22,
- 0, 33, 65, 37, 41, 76, 0, 26, 0, 0,
- 31, 32, 24, 43, 29, 56, 57, 58, 73, 69,
- 60, 70, 0, 46, 47, 71, 34, 0, 35, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 77, 78, 38, 101, 325, 0, 28,
- 189, 27, 0, 42, 23, 44, 30, 36, 39, 22,
- 0, 33, 65, 37, 41, 76, 0, 26, 0, 84,
- 31, 32, 24, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 55, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 97, 0, 87,
- 88, 89, 90, 91, 92, 94, 43, 29, 101, 323,
- 95, 28, 189, 27, 0, 0, 46, 47, 0, 34,
- 0, 35, 0, 0, 0, 0, 0, 136, 0, 0,
- 0, 84, 0, 0, 0, 147, 0, 0, 38, 0,
- 0, 0, 0, 0, 0, 0, 42, 23, 44, 30,
- 36, 39, 22, 0, 33, 0, 37, 41, 0, 0,
- 99, 0, 0, 31, 32, 24, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 101, 0, 0, 28, 0, 27, 0, 0,
- 0, 0, 95, 0, 0, 0, 0, 0, 0, 0,
- 0, 139, 0, 0, 0, 84, 136, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 219, 0, 0,
- 0, 136, 0, 0, 0, 0, 226, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 136, 136, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 93, 0, 101, 191, 0, 28, 189,
- 27, 0, 0, 0, 98, 97, 95, 87, 88, 89,
- 90, 91, 92, 94, 43, 29, 0, 0, 84, 0,
- 0, 0, 0, 0, 46, 47, 0, 34, 0, 35,
- 0, 0, 0, 0, 271, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 38, 0, 0, 0,
- 0, 0, 0, 0, 42, 23, 44, 30, 36, 39,
- 22, 0, 33, 0, 37, 41, 0, 0, 99, 0,
- 0, 31, 32, 24, 0, 93, 0, 0, 0, 95,
- 0, 136, 0, 0, 0, 0, 98, 97, 0, 87,
- 88, 89, 90, 91, 92, 94, 43, 29, 101, 352,
- 0, 28, 0, 27, 0, 0, 46, 47, 0, 34,
- 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 84, 0, 0, 0, 0, 0, 0, 38, 0,
- 0, 0, 0, 0, 0, 0, 42, 23, 44, 30,
- 36, 39, 22, 0, 33, 140, 37, 41, 0, 93,
- 99, 0, 0, 31, 32, 24, 0, 0, 355, 136,
- 98, 97, 0, 87, 88, 89, 90, 91, 92, 94,
- 43, 29, 361, 0, 0, 363, 0, 0, 0, 0,
- 46, 47, 95, 34, 0, 35, 101, 351, 0, 28,
- 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 38, 0, 0, 0, 0, 0, 0, 84,
- 42, 23, 44, 30, 36, 39, 22, 0, 33, 0,
- 37, 41, 93, 0, 99, 0, 0, 31, 32, 24,
- 0, 0, 0, 98, 97, 0, 87, 88, 89, 90,
- 91, 92, 94, 43, 29, 0, 0, 0, 0, 0,
- 0, 0, 0, 46, 47, 0, 34, 0, 35, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 95, 0, 0, 0, 0, 38, 101, 347, 0, 28,
- 0, 27, 0, 42, 23, 44, 30, 36, 39, 22,
- 0, 33, 0, 37, 41, 0, 0, 99, 0, 84,
- 31, 32, 24, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 97, 0, 87,
- 88, 89, 90, 91, 92, 94, 43, 29, 0, 0,
- 0, 0, 0, 0, 0, 0, 46, 47, 0, 34,
- 95, 35, 101, 0, 0, 28, 0, 27, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 38, 0,
- 0, 343, 0, 0, 0, 84, 42, 23, 44, 30,
- 36, 39, 22, 0, 33, 0, 37, 41, 0, 0,
- 99, 0, 0, 31, 32, 24, 0, 0, 0, 0,
- 0, 0, 0, 93, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 98, 97, 0, 87, 88, 89,
- 90, 91, 92, 94, 43, 29, 0, 0, 0, 0,
- 0, 0, 0, 0, 46, 47, 95, 34, 0, 35,
- 0, 0, 0, 0, 0, 0, 0, 0, 101, 320,
- 0, 28, 0, 27, 0, 0, 38, 0, 0, 0,
- 0, 0, 0, 0, 42, 23, 44, 30, 36, 39,
- 22, 84, 33, 0, 37, 41, 0, 0, 99, 0,
- 0, 31, 32, 24, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 93, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 98, 97, 0, 87, 88, 89,
- 90, 91, 92, 94, 43, 29, 0, 0, 101, 317,
- 0, 28, 0, 27, 46, 47, 0, 34, 0, 35,
- 0, 0, 95, 0, 0, 0, 0, 0, 0, 0,
- 0, 84, 0, 0, 0, 0, 38, 0, 0, 0,
- 0, 0, 0, 0, 42, 23, 44, 30, 36, 39,
- 22, 0, 33, 0, 37, 41, 0, 0, 99, 0,
- 0, 31, 32, 24, 0, 0, 0, 0, 0, 93,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 98, 97, 0, 87, 88, 89, 90, 91, 92, 94,
- 43, 29, 95, 0, 101, 276, 0, 28, 0, 27,
- 46, 47, 0, 34, 0, 35, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 84, 0, 0,
- 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
- 42, 23, 44, 30, 36, 39, 22, 0, 33, 0,
- 37, 41, 0, 0, 99, 0, 0, 31, 32, 24,
- 0, 0, 0, 0, 0, 0, 0, 0, 255, 0,
- 0, 0, 0, 0, 0, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 97, 95, 87,
- 88, 89, 90, 91, 92, 94, 43, 29, 101, 0,
- 0, 28, 189, 27, 0, 0, 46, 47, 0, 34,
- 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 84, 0, 0, 0, 0, 0, 0, 38, 0,
- 0, 0, 0, 0, 0, 0, 42, 23, 44, 30,
- 36, 39, 22, 0, 33, 93, 37, 41, 0, 0,
- 99, 0, 0, 31, 32, 24, 98, 97, 0, 87,
- 88, 89, 90, 91, 92, 94, 43, 29, 0, 0,
- 0, 0, 0, 0, 188, 190, 46, 47, 0, 34,
- 0, 35, 95, 0, 0, 0, 0, 0, 0, 0,
- 101, 191, 0, 28, 0, 27, 0, 0, 38, 0,
- 0, 0, 0, 0, 0, 0, 42, 23, 44, 30,
- 36, 39, 22, 84, 33, 0, 37, 41, 0, 0,
- 99, 0, 0, 31, 32, 24, 0, 0, 234, 0,
- 0, 93, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 98, 97, 0, 87, 88, 89, 90, 91,
- 92, 94, 43, 29, 0, 0, 0, 0, 0, 0,
- 0, 0, 46, 47, 0, 34, 0, 35, 0, 0,
- 0, 0, 0, 0, 95, 260, 261, 262, 0, 264,
- 265, 266, 0, 0, 38, 0, 0, 0, 0, 0,
- 0, 0, 42, 23, 44, 30, 36, 39, 22, 0,
- 33, 0, 37, 41, 188, 0, 99, 0, 0, 31,
- 32, 24, 0, 0, 0, 101, 293, 0, 28, 0,
- 27, 0, 0, 0, 0, 93, 0, 0, 0, 0,
- 0, 0, 0, 249, 0, 0, 98, 97, 84, 87,
- 88, 89, 90, 91, 92, 94, 43, 29, 0, 0,
- 0, 0, 0, 0, 0, 0, 46, 47, 0, 34,
- 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
- 321, 324, 326, 327, 0, 0, 0, 0, 38, 0,
- 188, 0, 0, 0, 0, 0, 42, 23, 44, 30,
- 36, 39, 22, 0, 33, 0, 37, 41, 0, 95,
- 99, 0, 0, 31, 32, 24, 0, 101, 0, 0,
- 28, 0, 27, 0, 0, 0, 0, 93, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 98, 97,
- 84, 87, 88, 89, 90, 91, 92, 94, 43, 29,
- 0, 0, 0, 0, 0, 0, 0, 0, 46, 47,
- 0, 34, 0, 35, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 38, 0, 0, 0, 0, 0, 0, 0, 42, 23,
- 44, 30, 36, 39, 22, 0, 33, 0, 37, 41,
- 0, 95, 99, 0, 0, 31, 32, 24, 101, 0,
- 0, 28, 0, 27, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 93, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 98, 97, 0, 87, 88, 89, 90,
- 91, 92, 94, 43, 29, 0, 0, 0, 0, 0,
- 0, 0, 0, 46, 47, 0, 34, 0, 35, 0,
- 101, 0, 95, 28, 0, 27, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
- 0, 0, 0, 42, 23, 44, 30, 36, 39, 22,
- 0, 33, 0, 37, 41, 0, 0, 99, 0, 0,
- 31, 32, 24, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 93, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 98, 97, 0, 87, 88,
- 89, 90, 91, 92, 94, 43, 29, 101, 0, 0,
- 28, 0, 27, 0, 95, 46, 47, 0, 34, 0,
- 35, 0, 0, 0, 0, 313, 0, 0, 0, 0,
- 236, 0, 0, 0, 0, 0, 0, 38, 0, 0,
- 0, 0, 0, 0, 0, 42, 23, 44, 30, 36,
- 39, 22, 0, 33, 0, 37, 41, 0, 0, 99,
- 0, 0, 31, 32, 24, 0, 0, 18, 0, 0,
- 28, 0, 27, 0, 45, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 0, 0, 87,
- 88, 89, 90, 91, 92, 94, 43, 29, 0, 0,
- 0, 0, 0, 0, 0, 0, 46, 47, 0, 34,
- 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 38, 0,
- 0, 0, 0, 0, 0, 0, 42, 23, 44, 30,
- 36, 39, 22, 0, 33, 0, 37, 41, 0, 0,
- 99, 0, 0, 31, 32, 24, 0, 93, 101, 0,
- 0, 28, 0, 27, 0, 0, 0, 0, 0, 0,
- 0, 87, 88, 89, 90, 91, 92, 94, 43, 29,
- 0, 236, 101, 0, 0, 28, 0, 27, 46, 47,
- 0, 34, 0, 35, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 38, 0, 0, 0, 0, 0, 0, 0, 42, 23,
- 44, 30, 36, 39, 22, 0, 33, 0, 37, 41,
- 0, 0, 99, 0, 239, 31, 32, 24, 0, 0,
- 0, 0, 0, 0, 0, 98, 97, 0, 0, 0,
- 0, 0, 0, 0, 240, 43, 29, 18, 0, 0,
- 28, 0, 27, 0, 45, 46, 47, 0, 34, 0,
- 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 75, 0, 0, 0, 38, 0, 0,
- 0, 0, 0, 0, 0, 42, 23, 44, 30, 36,
- 39, 22, 0, 33, 0, 37, 41, 0, 0, 99,
- 0, 0, 31, 32, 24, 43, 29, 0, 0, 0,
- 73, 0, 0, 0, 0, 46, 47, 0, 34, 0,
- 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 0, 0, 0, 0, 77, 78, 38, 0, 0,
- 0, 0, 0, 0, 0, 42, 23, 44, 30, 36,
- 39, 22, 0, 33, 0, 37, 41, 0, 0, 26,
- 0, 0, 31, 32, 24, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 239, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 97, 0, 0,
- 0, 0, 0, 0, 0, 240, 43, 29, 0, 0,
- 0, 0, 0, 0, 0, 0, 46, 47, 0, 34,
- 0, 35, 101, 0, 0, 28, 0, 27, 0, 0,
- 43, 29, 0, 0, 0, 0, 0, 0, 38, 0,
- 46, 47, 0, 34, 0, 35, 42, 23, 44, 30,
- 36, 39, 22, 0, 33, 0, 37, 41, 0, 0,
- 99, 0, 38, 31, 32, 24, 0, 0, 0, 0,
- 42, 23, 44, 30, 36, 39, 22, 0, 12, 13,
- 37, 41, 0, 0, 99, 0, 0, 31, 32, 24,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 43, 29, 74, 0, 0,
- 0, 0, 15, 0, 14, 46, 47, 0, 34, 0,
- 35, 0, 0, 0, 0, 0, 106, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
- 0, 0, 0, 0, 0, 42, 23, 44, 30, 36,
- 39, 22, 0, 33, 0, 37, 41, 0, 15, 26,
- 15, 0, 31, 32, 24, 141, 0, 0, 145, 18,
- 0, 0, 28, 150, 27, 0, 45, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 139, 0,
- 0, 0, 170, 172, 174, 175, 176, 177, 178, 179,
- 180, 182, 0, 0, 0, 0, 0, 0, 0, 185,
- 186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 199, 0, 0, 0, 0, 0, 199, 199, 0,
- 0, 0, 0, 206, 207, 208, 199, 211, 212, 0,
- 0, 18, 0, 0, 28, 0, 27, 0, 45, 239,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 98, 101, 0, 0, 28, 230, 27, 0, 106, 240,
- 43, 29, 0, 0, 244, 0, 0, 0, 0, 0,
- 46, 47, 0, 34, 0, 35, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 253, 0, 254, 0,
- 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
- 42, 23, 44, 30, 36, 39, 22, 0, 33, 0,
- 37, 41, 0, 0, 99, 0, 0, 31, 32, 24,
- 0, 0, 0, 281, 0, 0, 28, 0, 27, 0,
- 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 199, 0, 281, 0, 0, 28, 294, 27, 0,
- 45, 0, 0, 296, 0, 0, 0, 0, 297, 300,
- 0, 0, 302, 303, 304, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 106,
- 0, 0, 140, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 281, 0, 0, 28, 0,
- 27, 0, 45, 0, 0, 330, 0, 43, 29, 0,
- 0, 0, 0, 0, 0, 0, 0, 46, 47, 337,
- 34, 0, 35, 0, 0, 341, 0, 342, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 38,
- 0, 0, 0, 0, 0, 0, 0, 42, 23, 44,
- 30, 36, 39, 22, 252, 33, 0, 37, 41, 0,
- 0, 26, 0, 0, 31, 32, 24, 18, 202, 0,
- 28, 0, 27, 0, 45, 0, 0, 0, 239, 43,
- 29, 0, 0, 0, 0, 0, 0, 0, 0, 46,
- 47, 0, 34, 0, 35, 0, 0, 0, 240, 43,
- 29, 0, 0, 0, 0, 0, 0, 0, 0, 46,
- 47, 38, 34, 0, 35, 0, 0, 0, 0, 42,
- 23, 44, 30, 36, 39, 22, 0, 33, 0, 37,
- 41, 38, 0, 26, 0, 0, 31, 32, 24, 42,
- 23, 44, 30, 36, 39, 22, 173, 33, 0, 37,
- 41, 0, 0, 99, 0, 0, 31, 32, 24, 0,
- 18, 200, 0, 28, 0, 27, 171, 45, 0, 0,
- 0, 43, 29, 0, 0, 0, 0, 0, 0, 0,
- 18, 46, 47, 28, 34, 27, 35, 45, 0, 0,
- 0, 43, 29, 0, 0, 0, 0, 0, 0, 0,
- 0, 46, 47, 38, 34, 0, 35, 0, 0, 0,
- 0, 42, 23, 44, 30, 36, 39, 22, 252, 33,
- 0, 37, 41, 38, 0, 26, 0, 0, 31, 32,
- 24, 42, 23, 44, 30, 36, 39, 22, 0, 33,
- 0, 37, 41, 43, 29, 26, 0, 0, 31, 32,
- 24, 0, 18, 46, 47, 28, 34, 27, 35, 45,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
- 0, 0, 0, 42, 23, 44, 30, 36, 39, 22,
- 0, 33, 0, 37, 41, 0, 0, 26, 0, 0,
- 31, 32, 24, 0, 18, 0, 0, 28, 0, 27,
- 0, 45, 0, 0, 0, 43, 29, 0, 0, 0,
- 0, 0, 0, 0, 281, 46, 47, 28, 34, 27,
- 35, 45, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
- 0, 0, 0, 0, 0, 42, 23, 44, 30, 36,
- 39, 22, 0, 33, 0, 37, 41, 0, 0, 26,
- 0, 0, 31, 32, 24, 0, 160, 0, 0, 28,
- 0, 27, 0, 45, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 101,
- 0, 0, 28, 173, 27, 0, 45, 0, 43, 29,
- 0, 0, 0, 0, 0, 0, 0, 0, 46, 47,
- 0, 34, 0, 35, 0, 0, 0, 0, 43, 29,
- 0, 0, 0, 0, 0, 0, 0, 0, 46, 47,
- 38, 34, 0, 35, 0, 0, 0, 0, 42, 23,
- 44, 30, 36, 39, 22, 0, 33, 0, 37, 41,
- 38, 0, 26, 0, 0, 31, 32, 24, 42, 23,
- 44, 30, 36, 39, 22, 171, 33, 0, 37, 41,
- 0, 0, 26, 0, 0, 31, 32, 24, 101, 0,
- 0, 28, 0, 27, 0, 0, 0, 0, 0, 0,
- 43, 29, 0, 0, 0, 0, 0, 0, 0, 0,
- 46, 47, 0, 34, 0, 35, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
- 42, 23, 44, 30, 36, 39, 22, 0, 33, 0,
- 37, 41, 43, 29, 26, 0, 0, 31, 32, 24,
- 0, 0, 46, 47, 0, 34, 0, 35, 0, 0,
- 0, 0, 43, 29, 0, 0, 0, 0, 0, 0,
- 0, 0, 46, 47, 38, 34, 0, 35, 0, 0,
- 0, 0, 42, 23, 44, 30, 36, 39, 22, 0,
- 33, 0, 37, 41, 38, 0, 26, 0, 0, 31,
- 32, 24, 42, 23, 44, 30, 36, 39, 22, 0,
- 33, 0, 37, 41, 43, 29, 26, 0, 0, 31,
- 32, 24, 0, 0, 46, 47, 0, 34, 0, 35,
- 0, 0, 0, 0, 0, 0, 0, 43, 29, 0,
- 0, 0, 0, 0, 0, 0, 38, 46, 47, 0,
- 34, 0, 35, 0, 42, 23, 44, 30, 36, 39,
- 22, 0, 33, 0, 37, 41, 0, 0, 26, 38,
- 0, 31, 32, 24, 0, 0, 0, 42, 23, 44,
- 30, 36, 39, 22, 0, 33, 0, 37, 41, 0,
- 0, 26, 0, 0, 31, 32, 24, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 43, 29, 0, 0,
- 0, 0, 0, 0, 0, 0, 46, 47, 0, 34,
- 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 38, 0,
- 0, 0, 0, 0, 0, 0, 42, 23, 44, 30,
- 36, 39, 22, 0, 33, 0, 37, 41, 0, 0,
- 99, 0, 0, 31, 32, 24 };
-int yypact[]={
-
- 15, -1000, -1000, -1000, 3047, 20, -1000, -1000, 12, -1000,
- 45, 370, -33, -33, -291, 2547, -1000, -304, 3904, -1000,
- -23, 3, -1000, -1000, 4088, -1000, 3999, 4088, 4088, 125,
- 124, -275, -275, -282, 123, 121, -1000, 120, 118, -1000,
- 116, 115, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- 3047, 370, 3904, -1000, 955, -1000, 4, 3904, 4, -176,
- 3359, -1000, 1015, 370, 4, 3359, 4, -1000, -183, -1000,
- 114, 113, 3976, -245, 2547, -1000, 108, -1000, -1000, 370,
- 370, 105, -1000, -1000, 3904, 3852, 3780, 3904, 3904, 3904,
- 3904, 3904, 3904, 3904, -245, -319, -23, -1000, -1000, 4088,
- -337, 3904, 3904, -1000, -1000, 93, 1525, 4088, 4088, 4088,
- 4088, 4088, 4088, 3904, -1000, -1000, -334, -334, -334, 3760,
- 3667, -1000, -1000, -228, 4088, 3904, 3904, 3904, 3904, 3904,
- 3904, -317, -1000, 814, -33, -1000, -1000, -1000, -179, -183,
- -1000, 1452, -1000, -1000, 1015, 1452, -1000, -286, 753, -1000,
- 1452, -1000, -1000, 1015, -1000, -179, 2857, 3904, -66, 61,
- 3904, 2948, -307, -1000, -23, 2, 3904, 693, 632, -298,
- 2455, -1000, 2638, -1000, 2720, 2972, 2972, 2972, 2972, 2972,
- 2972, -1000, 2972, -1000, -275, 2330, 2547, -236, 3431, -1000,
- 3431, -1000, -16, -16, -334, -334, -334, -334, 48, 2547,
- -1000, 92, -1000, 91, 4088, -23, 2238, 2238, 2238, 80,
- 61, 2238, 2238, 52, -1000, 370, -1000, -1000, -1000, -1000,
- -1000, 491, -1000, -182, -1000, -1000, -1000, 37, -46, -1000,
- 2144, 4088, 4088, 4088, 3595, 76, 3924, 3543, 3523, 3924,
- -245, -23, 3924, 3904, 2144, -1000, -1000, 75, -1000, 3904,
- -1000, -245, -1000, 2547, 2547, 3431, -1000, -1000, -1000, -23,
- 3431, 3431, -202, -1000, 3431, 3431, 3431, -1000, 431, -325,
- -1000, -1000, -1000, 10, -245, -193, -1000, -23, -23, -23,
- 2948, 3904, -243, 2797, 3212, 3451, -1000, 2972, -1000, 2948,
- 47, -193, -193, -240, 2547, -1000, 2547, 2058, 98, 97,
- 1988, 62, 1378, 1296, 1128, -1000, 104, 3904, -183, 74,
- -1000, 60, -245, 3924, -1000, -33, -1000, -1000, -1000, -1000,
- -1000, 3431, -1000, -1000, -252, -1000, -252, 3431, -1000, 3904,
- 1892, 2857, -193, -243, -1000, 2948, 370, 1806, 86, 82,
- 81, 1716, 1628, -183, 74, 1015, 273, -1000, -1000, -1000,
- -1000, -1000, 4, 2857, -193, -1000, -1000, -1000, 74, 1015,
- -193, -1000, 1015, -1000 };
-int yypgo[]={
-
- 0, 220, 3337, 282, 64, 219, 129, 218, 199, 826,
- 97, 98, 216, 157, 2, 5, 1382, 50, 0, 194,
- 211, 210, 206, 204, 203, 202, 184, 501, 12, 2248,
- 49, 56, 259, 182, 201, 198, 197, 195, 192, 191,
- 190, 188, 174, 172, 170, 1, 169, 167, 166 };
-int yyr1[]={
-
- 0, 36, 36, 32, 32, 33, 33, 29, 29, 37,
- 37, 38, 38, 39, 22, 40, 22, 41, 22, 20,
- 20, 23, 27, 27, 30, 30, 31, 31, 26, 26,
- 15, 15, 1, 1, 10, 11, 11, 11, 11, 11,
- 11, 11, 42, 11, 12, 12, 6, 6, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 4, 4,
- 5, 5, 7, 7, 7, 35, 35, 25, 25, 25,
- 25, 43, 43, 9, 9, 44, 13, 28, 28, 14,
- 14, 14, 14, 14, 14, 14, 14, 45, 45, 16,
- 16, 16, 46, 47, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 48, 16, 16, 17, 17,
- 34, 34, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 18, 18, 18, 18, 18, 21, 21, 21,
- 19, 19, 19, 24 };
-int yyr2[]={
-
- 0, 3, 3, 2, 4, 2, 4, 2, 4, 2,
- 4, 2, 4, 1, 25, 1, 21, 1, 17, 3,
- 3, 9, 2, 4, 2, 4, 1, 2, 1, 2,
- 1, 2, 3, 7, 3, 3, 9, 7, 13, 7,
- 9, 9, 1, 19, 2, 7, 2, 7, 7, 11,
- 7, 7, 7, 7, 7, 11, 5, 2, 2, 7,
- 11, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 11, 9, 7, 5, 2, 2, 7, 7,
- 2, 7, 1, 2, 7, 2, 2, 2, 2, 4,
- 4, 2, 4, 3, 5, 1, 9, 2, 4, 9,
- 9, 9, 5, 11, 5, 3, 3, 2, 4, 5,
- 7, 5, 1, 1, 19, 7, 5, 2, 9, 5,
- 7, 5, 7, 5, 4, 1, 7, 5, 2, 5,
- 2, 2, 7, 7, 7, 7, 7, 7, 5, 5,
- 5, 7, 9, 3, 7, 9, 5, 5, 5, 5,
- 9, 7, 5, 3, 13, 13, 7, 13, 13, 3,
- 17, 17, 13, 9, 3, 13, 13, 17, 17, 17,
- 13, 2, 2, 9, 3, 3, 5, 1, 3, 7,
- 3, 3, 3, 9 };
-int yychk[]={
-
- -1000, -36, -1, 256, -26, -25, 263, 59, -12, -11,
- -10, -27, 261, 262, 297, -2, 123, -18, 40, -9,
- -8, -19, 334, 329, 347, -13, 342, 45, 43, 289,
- 331, 345, 346, 336, 301, 303, 332, 338, 320, 333,
- -34, 339, 328, 288, 330, 47, 298, 299, 263, 59,
- -26, -27, 44, 263, -17, -16, 290, 291, 292, -37,
- 295, -22, -23, -27, 304, 337, -14, -24, 59, 294,
- 296, 300, -35, 293, -2, 256, 340, 318, 319, -27,
- -27, -20, 328, 331, 63, -33, -32, 281, 282, 283,
- 284, 285, 286, 267, 287, 124, -8, 279, 278, 342,
- -18, 40, 311, 345, 346, -4, -2, 43, 45, 42,
- 47, 37, 344, 91, -8, -9, -8, -8, -8, 40,
- 40, -18, -18, -18, 285, 40, 40, 40, 40, 40,
- 40, -44, -11, -17, -10, 125, -16, -45, -30, 59,
- 263, -2, -45, 263, -46, -2, -45, -16, -17, -45,
- -2, -45, -45, -48, -31, -30, 40, 40, -7, -5,
- 40, -3, -18, -9, -8, -19, 40, -17, -17, 40,
- -2, 263, -2, 263, -2, -2, -2, -2, -2, -2,
- -2, -13, -2, -19, 336, -2, -2, 41, -29, 44,
- -29, 41, -8, -8, -8, -8, -8, -8, -6, -2,
- 41, -6, 41, -6, 285, -8, -2, -2, -2, -6,
- -13, -2, -2, 335, 125, -27, 263, -31, -45, -16,
- -45, -38, 321, -43, 125, -45, -16, -15, -19, -14,
- -2, 124, 280, 283, -29, -4, 63, -33, -32, 267,
- 287, -8, 311, 91, -2, 125, 125, -21, 328, 58,
- -18, 287, 263, -2, -2, -29, 93, 41, 41, -8,
- -29, -29, -29, 41, -29, -29, -29, 47, -17, -47,
- 263, -16, 263, 59, 287, -28, 41, -8, -8, -8,
- -3, 40, 41, -3, -3, -3, -13, -3, -19, -3,
- -6, -28, -28, -29, -2, -19, -2, -2, -13, -13,
- -2, -19, -2, -2, -2, 125, 340, -31, 59, -19,
- 263, -4, 287, 58, 93, -42, 328, 41, 41, 41,
- 41, -29, 41, 41, -29, 41, -29, -29, 41, 40,
- -2, -31, -28, 41, -19, -3, -27, -2, -13, -18,
- -18, -2, -2, 59, -15, -41, -17, 41, 41, 41,
- 41, 41, 41, -31, -28, -16, 125, -45, -15, -40,
- -28, -16, -39, -16 };
-int yydef[]={
-
- -2, -2, 1, 2, 32, 29, 87, 88, 28, 44,
- 35, 0, 0, 0, 0, 34, 22, 171, 0, 76,
- 77, 172, 174, 175, 0, 93, 0, 0, 0, 143,
- 0, 0, 0, 153, 0, 0, 159, 0, 0, 164,
- 0, 0, 180, 181, 182, 95, 130, 131, 89, 90,
- 33, 0, 0, 23, 0, 128, 0, 0, 0, 112,
- 0, 117, 0, 0, 0, 0, 0, 125, 26, 9,
- 0, 0, 82, 0, 105, 106, 0, 85, 86, 0,
- 0, 0, 19, 20, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 75, 5, 3, 0,
- 171, 0, 0, 148, 149, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 176, 94, 140, 138, 139, 0,
- 0, 146, 147, 152, 0, 0, 0, 0, 0, 0,
- 0, 0, 45, 0, 37, 39, 129, 109, 107, 26,
- 24, 0, 111, 10, 0, 0, 116, 119, 0, 121,
- 0, 123, 124, 0, 127, 27, -2, 0, 102, 83,
- 0, 80, 171, 57, 58, 104, 0, 0, 0, 177,
- 0, 6, 61, 4, 62, -2, -2, -2, -2, -2,
- -2, 69, -2, 71, 74, 0, 59, 0, 0, 7,
- 0, 156, 132, 133, 134, 135, 136, 137, 0, 46,
- 141, 0, 144, 0, 0, 151, 0, 0, 0, 0,
- 93, 0, 0, 0, 36, 0, 25, 108, 110, 113,
- 115, 0, 11, 120, 91, 122, 126, 0, 172, 31,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 56, 0, 0, 0, 40, 41, 0, 178, 0,
- 73, 0, 8, 79, 78, 0, 173, 142, 145, 150,
- 0, 0, 0, 163, 0, 0, 0, 96, 0, 0,
- 12, 118, 92, 26, 0, 21, 97, 99, 100, 101,
- 81, 0, 84, 0, 50, 51, 52, -2, 54, 48,
- 0, 183, 42, 0, 60, 72, 47, 0, 93, 93,
- 0, 0, 0, 0, 0, 38, 0, 0, 26, 0,
- 98, 0, 0, 0, 103, 0, 179, 154, 155, 157,
- 158, 0, 162, 165, 0, 166, 0, 0, 170, 0,
- 0, -2, 17, 0, 55, 49, 0, 0, 93, 0,
- 0, 0, 0, 26, 0, 0, 0, 160, 161, 167,
- 168, 169, 0, -2, 15, 18, 43, 114, 0, 0,
- 13, 16, 0, 14 };
-typedef struct { char *t_name; int t_val; } yytoktype;
-#ifndef YYDEBUG
-# define YYDEBUG 0 /* don't allow debugging */
-#endif
-
-#if YYDEBUG
-
-yytoktype yytoks[] =
-{
- "FIRSTTOKEN", 257,
- "PROGRAM", 258,
- "PASTAT", 259,
- "PASTAT2", 260,
- "XBEGIN", 261,
- "XEND", 262,
- "NL", 263,
- ",", 44,
- "{", 123,
- "(", 40,
- "|", 124,
- ";", 59,
- "/", 47,
- ")", 41,
- "}", 125,
- "[", 91,
- "]", 93,
- "ARRAY", 264,
- "MATCH", 265,
- "NOTMATCH", 266,
- "MATCHOP", 267,
- "FINAL", 268,
- "DOT", 269,
- "ALL", 270,
- "CCL", 271,
- "NCCL", 272,
- "CHAR", 273,
- "OR", 274,
- "STAR", 275,
- "QUEST", 276,
- "PLUS", 277,
- "AND", 278,
- "BOR", 279,
- "APPEND", 280,
- "EQ", 281,
- "GE", 282,
- "GT", 283,
- "LE", 284,
- "LT", 285,
- "NE", 286,
- "IN", 287,
- "ARG", 288,
- "BLTIN", 289,
- "BREAK", 290,
- "CLOSE", 291,
- "CONTINUE", 292,
- "DELETE", 293,
- "DO", 294,
- "EXIT", 295,
- "FOR", 296,
- "FUNC", 297,
- "SUB", 298,
- "GSUB", 299,
- "IF", 300,
- "INDEX", 301,
- "LSUBSTR", 302,
- "MATCHFCN", 303,
- "NEXT", 304,
- "ADD", 305,
- "MINUS", 306,
- "MULT", 307,
- "DIVIDE", 308,
- "MOD", 309,
- "ASSIGN", 310,
- "ASGNOP", 311,
- "ADDEQ", 312,
- "SUBEQ", 313,
- "MULTEQ", 314,
- "DIVEQ", 315,
- "MODEQ", 316,
- "POWEQ", 317,
- "PRINT", 318,
- "PRINTF", 319,
- "SPRINTF", 320,
- "ELSE", 321,
- "INTEST", 322,
- "CONDEXPR", 323,
- "POSTINCR", 324,
- "PREINCR", 325,
- "POSTDECR", 326,
- "PREDECR", 327,
- "VAR", 328,
- "IVAR", 329,
- "VARNF", 330,
- "CALL", 331,
- "NUMBER", 332,
- "STRING", 333,
- "FIELD", 334,
- "REGEXPR", 335,
- "?", 63,
- ":", 58,
- "GETLINE", 336,
- "RETURN", 337,
- "SPLIT", 338,
- "SUBSTR", 339,
- "WHILE", 340,
- "CAT", 341,
- "+", 43,
- "-", 45,
- "*", 42,
- "%", 37,
- "NOT", 342,
- "UMINUS", 343,
- "POWER", 344,
- "DECR", 345,
- "INCR", 346,
- "INDIRECT", 347,
- "LASTTOKEN", 348,
- "-unknown-", -1 /* ends search */
-};
-
-char * yyreds[] =
-{
- "-no such reduction-",
- "program : pas",
- "program : error",
- "and : AND",
- "and : and NL",
- "bor : BOR",
- "bor : bor NL",
- "comma : ','",
- "comma : comma NL",
- "do : DO",
- "do : do NL",
- "else : ELSE",
- "else : else NL",
- "for : FOR '(' opt_simple_stmt ';' opt_nl pattern ';' opt_nl opt_simple_stmt rparen",
- "for : FOR '(' opt_simple_stmt ';' opt_nl pattern ';' opt_nl opt_simple_stmt rparen stmt",
- "for : FOR '(' opt_simple_stmt ';' ';' opt_nl opt_simple_stmt rparen",
- "for : FOR '(' opt_simple_stmt ';' ';' opt_nl opt_simple_stmt rparen stmt",
- "for : FOR '(' varname IN varname rparen",
- "for : FOR '(' varname IN varname rparen stmt",
- "funcname : VAR",
- "funcname : CALL",
- "if : IF '(' pattern rparen",
- "lbrace : '{'",
- "lbrace : lbrace NL",
- "nl : NL",
- "nl : nl NL",
- "opt_nl : /* empty */",
- "opt_nl : nl",
- "opt_pst : /* empty */",
- "opt_pst : pst",
- "opt_simple_stmt : /* empty */",
- "opt_simple_stmt : simple_stmt",
- "pas : opt_pst",
- "pas : opt_pst pa_stats opt_pst",
- "pa_pat : pattern",
- "pa_stat : pa_pat",
- "pa_stat : pa_pat lbrace stmtlist '}'",
- "pa_stat : pa_pat ',' pa_pat",
- "pa_stat : pa_pat ',' pa_pat lbrace stmtlist '}'",
- "pa_stat : lbrace stmtlist '}'",
- "pa_stat : XBEGIN lbrace stmtlist '}'",
- "pa_stat : XEND lbrace stmtlist '}'",
- "pa_stat : FUNC funcname '(' varlist rparen",
- "pa_stat : FUNC funcname '(' varlist rparen lbrace stmtlist '}'",
- "pa_stats : pa_stat",
- "pa_stats : pa_stats opt_pst pa_stat",
- "patlist : pattern",
- "patlist : patlist comma pattern",
- "ppattern : var ASGNOP ppattern",
- "ppattern : ppattern '?' ppattern ':' ppattern",
- "ppattern : ppattern bor ppattern",
- "ppattern : ppattern and ppattern",
- "ppattern : ppattern MATCHOP reg_expr",
- "ppattern : ppattern MATCHOP ppattern",
- "ppattern : ppattern IN varname",
- "ppattern : '(' plist ')' IN varname",
- "ppattern : ppattern term",
- "ppattern : re",
- "ppattern : term",
- "pattern : var ASGNOP pattern",
- "pattern : pattern '?' pattern ':' pattern",
- "pattern : pattern bor pattern",
- "pattern : pattern and pattern",
- "pattern : pattern EQ pattern",
- "pattern : pattern GE pattern",
- "pattern : pattern GT pattern",
- "pattern : pattern LE pattern",
- "pattern : pattern LT pattern",
- "pattern : pattern NE pattern",
- "pattern : pattern MATCHOP reg_expr",
- "pattern : pattern MATCHOP pattern",
- "pattern : pattern IN varname",
- "pattern : '(' plist ')' IN varname",
- "pattern : pattern '|' GETLINE var",
- "pattern : pattern '|' GETLINE",
- "pattern : pattern term",
- "pattern : re",
- "pattern : term",
- "plist : pattern comma pattern",
- "plist : plist comma pattern",
- "pplist : ppattern",
- "pplist : pplist comma ppattern",
- "prarg : /* empty */",
- "prarg : pplist",
- "prarg : '(' plist ')'",
- "print : PRINT",
- "print : PRINTF",
- "pst : NL",
- "pst : ';'",
- "pst : pst NL",
- "pst : pst ';'",
- "rbrace : '}'",
- "rbrace : rbrace NL",
- "re : reg_expr",
- "re : NOT re",
- "reg_expr : '/'",
- "reg_expr : '/' REGEXPR '/'",
- "rparen : ')'",
- "rparen : rparen NL",
- "simple_stmt : print prarg '|' term",
- "simple_stmt : print prarg APPEND term",
- "simple_stmt : print prarg GT term",
- "simple_stmt : print prarg",
- "simple_stmt : DELETE varname '[' patlist ']'",
- "simple_stmt : DELETE varname",
- "simple_stmt : pattern",
- "simple_stmt : error",
- "st : nl",
- "st : ';' opt_nl",
- "stmt : BREAK st",
- "stmt : CLOSE pattern st",
- "stmt : CONTINUE st",
- "stmt : do",
- "stmt : do stmt",
- "stmt : do stmt WHILE '(' pattern ')' st",
- "stmt : EXIT pattern st",
- "stmt : EXIT st",
- "stmt : for",
- "stmt : if stmt else stmt",
- "stmt : if stmt",
- "stmt : lbrace stmtlist rbrace",
- "stmt : NEXT st",
- "stmt : RETURN pattern st",
- "stmt : RETURN st",
- "stmt : simple_stmt st",
- "stmt : while",
- "stmt : while stmt",
- "stmt : ';' opt_nl",
- "stmtlist : stmt",
- "stmtlist : stmtlist stmt",
- "subop : SUB",
- "subop : GSUB",
- "term : term '+' term",
- "term : term '-' term",
- "term : term '*' term",
- "term : term '/' term",
- "term : term '%' term",
- "term : term POWER term",
- "term : '-' term",
- "term : '+' term",
- "term : NOT term",
- "term : BLTIN '(' ')'",
- "term : BLTIN '(' patlist ')'",
- "term : BLTIN",
- "term : CALL '(' ')'",
- "term : CALL '(' patlist ')'",
- "term : DECR var",
- "term : INCR var",
- "term : var DECR",
- "term : var INCR",
- "term : GETLINE var LT term",
- "term : GETLINE LT term",
- "term : GETLINE var",
- "term : GETLINE",
- "term : INDEX '(' pattern comma pattern ')'",
- "term : INDEX '(' pattern comma reg_expr ')'",
- "term : '(' pattern ')'",
- "term : MATCHFCN '(' pattern comma reg_expr ')'",
- "term : MATCHFCN '(' pattern comma pattern ')'",
- "term : NUMBER",
- "term : SPLIT '(' pattern comma varname comma pattern ')'",
- "term : SPLIT '(' pattern comma varname comma reg_expr ')'",
- "term : SPLIT '(' pattern comma varname ')'",
- "term : SPRINTF '(' patlist ')'",
- "term : STRING",
- "term : subop '(' reg_expr comma pattern ')'",
- "term : subop '(' pattern comma pattern ')'",
- "term : subop '(' reg_expr comma pattern comma var ')'",
- "term : subop '(' pattern comma pattern comma var ')'",
- "term : SUBSTR '(' pattern comma pattern comma pattern ')'",
- "term : SUBSTR '(' pattern comma pattern ')'",
- "term : var",
- "var : varname",
- "var : varname '[' patlist ']'",
- "var : FIELD",
- "var : IVAR",
- "var : INDIRECT term",
- "varlist : /* empty */",
- "varlist : VAR",
- "varlist : varlist comma VAR",
- "varname : VAR",
- "varname : ARG",
- "varname : VARNF",
- "while : WHILE '(' pattern rparen",
-};
-#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(void)
-{
- 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 94 "awk.g.y"
-{ if (errorflag==0)
- winner = (Node *)stat3(PROGRAM, beginloc, yypvt[-0].p, endloc); } break;
-case 2:
-# line 96 "awk.g.y"
-{ yyclearin; bracecheck(); ERROR "bailing out" SYNTAX; } break;
-case 13:
-# line 120 "awk.g.y"
-{inloop++;} break;
-case 14:
-# line 121 "awk.g.y"
-{ --inloop; yyval.p = stat4(FOR, yypvt[-9].p, notnull(yypvt[-6].p), yypvt[-3].p, yypvt[-0].p); } break;
-case 15:
-# line 122 "awk.g.y"
-{inloop++;} break;
-case 16:
-# line 123 "awk.g.y"
-{ --inloop; yyval.p = stat4(FOR, yypvt[-7].p, NIL, yypvt[-3].p, yypvt[-0].p); } break;
-case 17:
-# line 124 "awk.g.y"
-{inloop++;} break;
-case 18:
-# line 125 "awk.g.y"
-{ --inloop; yyval.p = stat3(IN, yypvt[-5].p, makearr(yypvt[-3].p), yypvt[-0].p); } break;
-case 19:
-# line 129 "awk.g.y"
-{ setfname(yypvt[-0].cp); } break;
-case 20:
-# line 130 "awk.g.y"
-{ setfname(yypvt[-0].cp); } break;
-case 21:
-# line 134 "awk.g.y"
-{ yyval.p = notnull(yypvt[-1].p); } break;
-case 26:
-# line 146 "awk.g.y"
-{ yyval.i = 0; } break;
-case 28:
-# line 151 "awk.g.y"
-{ yyval.i = 0; } break;
-case 30:
-# line 157 "awk.g.y"
-{ yyval.p = 0; } break;
-case 32:
-# line 162 "awk.g.y"
-{ yyval.p = 0; } break;
-case 33:
-# line 163 "awk.g.y"
-{ yyval.p = yypvt[-1].p; } break;
-case 34:
-# line 167 "awk.g.y"
-{ yyval.p = notnull(yypvt[-0].p); } break;
-case 35:
-# line 171 "awk.g.y"
-{ yyval.p = stat2(PASTAT, yypvt[-0].p, stat2(PRINT, rectonode(), NIL)); } break;
-case 36:
-# line 172 "awk.g.y"
-{ yyval.p = stat2(PASTAT, yypvt[-3].p, yypvt[-1].p); } break;
-case 37:
-# line 173 "awk.g.y"
-{ yyval.p = pa2stat(yypvt[-2].p, yypvt[-0].p, stat2(PRINT, rectonode(), NIL)); } break;
-case 38:
-# line 174 "awk.g.y"
-{ yyval.p = pa2stat(yypvt[-5].p, yypvt[-3].p, yypvt[-1].p); } break;
-case 39:
-# line 175 "awk.g.y"
-{ yyval.p = stat2(PASTAT, NIL, yypvt[-1].p); } break;
-case 40:
-# line 177 "awk.g.y"
-{ beginloc = linkum(beginloc, yypvt[-1].p); yyval.p = 0; } break;
-case 41:
-# line 179 "awk.g.y"
-{ endloc = linkum(endloc, yypvt[-1].p); yyval.p = 0; } break;
-case 42:
-# line 180 "awk.g.y"
-{infunc++;} break;
-case 43:
-# line 181 "awk.g.y"
-{ infunc--; curfname=0; defn((Cell *)yypvt[-7].p, yypvt[-5].p, yypvt[-1].p); yyval.p = 0; } break;
-case 45:
-# line 186 "awk.g.y"
-{ yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
-case 47:
-# line 191 "awk.g.y"
-{ yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
-case 48:
-# line 195 "awk.g.y"
-{ yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
-case 49:
-# line 197 "awk.g.y"
-{ yyval.p = op3(CONDEXPR, notnull(yypvt[-4].p), yypvt[-2].p, yypvt[-0].p); } break;
-case 50:
-# line 199 "awk.g.y"
-{ yyval.p = op2(BOR, notnull(yypvt[-2].p), notnull(yypvt[-0].p)); } break;
-case 51:
-# line 201 "awk.g.y"
-{ yyval.p = op2(AND, notnull(yypvt[-2].p), notnull(yypvt[-0].p)); } break;
-case 52:
-# line 202 "awk.g.y"
-{ yyval.p = op3(yypvt[-1].i, NIL, yypvt[-2].p, (Node*)makedfa(yypvt[-0].s, 0)); } break;
-case 53:
-# line 204 "awk.g.y"
-{ if (constnode(yypvt[-0].p))
- yyval.p = op3(yypvt[-1].i, NIL, yypvt[-2].p, (Node*)makedfa(strnode(yypvt[-0].p), 0));
- else
- yyval.p = op3(yypvt[-1].i, (Node *)1, yypvt[-2].p, yypvt[-0].p); } break;
-case 54:
-# line 208 "awk.g.y"
-{ yyval.p = op2(INTEST, yypvt[-2].p, makearr(yypvt[-0].p)); } break;
-case 55:
-# line 209 "awk.g.y"
-{ yyval.p = op2(INTEST, yypvt[-3].p, makearr(yypvt[-0].p)); } break;
-case 56:
-# line 210 "awk.g.y"
-{ yyval.p = op2(CAT, yypvt[-1].p, yypvt[-0].p); } break;
-case 59:
-# line 216 "awk.g.y"
-{ yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
-case 60:
-# line 218 "awk.g.y"
-{ yyval.p = op3(CONDEXPR, notnull(yypvt[-4].p), yypvt[-2].p, yypvt[-0].p); } break;
-case 61:
-# line 220 "awk.g.y"
-{ yyval.p = op2(BOR, notnull(yypvt[-2].p), notnull(yypvt[-0].p)); } break;
-case 62:
-# line 222 "awk.g.y"
-{ yyval.p = op2(AND, notnull(yypvt[-2].p), notnull(yypvt[-0].p)); } break;
-case 63:
-# line 223 "awk.g.y"
-{ yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
-case 64:
-# line 224 "awk.g.y"
-{ yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
-case 65:
-# line 225 "awk.g.y"
-{ yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
-case 66:
-# line 226 "awk.g.y"
-{ yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
-case 67:
-# line 227 "awk.g.y"
-{ yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
-case 68:
-# line 228 "awk.g.y"
-{ yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
-case 69:
-# line 229 "awk.g.y"
-{ yyval.p = op3(yypvt[-1].i, NIL, yypvt[-2].p, (Node*)makedfa(yypvt[-0].s, 0)); } break;
-case 70:
-# line 231 "awk.g.y"
-{ if (constnode(yypvt[-0].p))
- yyval.p = op3(yypvt[-1].i, NIL, yypvt[-2].p, (Node*)makedfa(strnode(yypvt[-0].p), 0));
- else
- yyval.p = op3(yypvt[-1].i, (Node *)1, yypvt[-2].p, yypvt[-0].p); } break;
-case 71:
-# line 235 "awk.g.y"
-{ yyval.p = op2(INTEST, yypvt[-2].p, makearr(yypvt[-0].p)); } break;
-case 72:
-# line 236 "awk.g.y"
-{ yyval.p = op2(INTEST, yypvt[-3].p, makearr(yypvt[-0].p)); } break;
-case 73:
-# line 237 "awk.g.y"
-{ yyval.p = op3(GETLINE, yypvt[-0].p, (Node*)yypvt[-2].i, yypvt[-3].p); } break;
-case 74:
-# line 238 "awk.g.y"
-{ yyval.p = op3(GETLINE, (Node*)0, (Node*)yypvt[-1].i, yypvt[-2].p); } break;
-case 75:
-# line 239 "awk.g.y"
-{ yyval.p = op2(CAT, yypvt[-1].p, yypvt[-0].p); } break;
-case 78:
-# line 245 "awk.g.y"
-{ yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
-case 79:
-# line 246 "awk.g.y"
-{ yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
-case 81:
-# line 251 "awk.g.y"
-{ yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
-case 82:
-# line 255 "awk.g.y"
-{ yyval.p = rectonode(); } break;
-case 84:
-# line 257 "awk.g.y"
-{ yyval.p = yypvt[-1].p; } break;
-case 93:
-# line 274 "awk.g.y"
-{ yyval.p = op3(MATCH, NIL, rectonode(), (Node*)makedfa(yypvt[-0].s, 0)); } break;
-case 94:
-# line 275 "awk.g.y"
-{ yyval.p = op1(NOT, notnull(yypvt[-0].p)); } break;
-case 95:
-# line 279 "awk.g.y"
-{startreg();} break;
-case 96:
-# line 279 "awk.g.y"
-{ yyval.s = yypvt[-1].s; } break;
-case 99:
-# line 287 "awk.g.y"
-{ yyval.p = stat3(yypvt[-3].i, yypvt[-2].p, (Node *) yypvt[-1].i, yypvt[-0].p); } break;
-case 100:
-# line 288 "awk.g.y"
-{ yyval.p = stat3(yypvt[-3].i, yypvt[-2].p, (Node *) yypvt[-1].i, yypvt[-0].p); } break;
-case 101:
-# line 289 "awk.g.y"
-{ yyval.p = stat3(yypvt[-3].i, yypvt[-2].p, (Node *) yypvt[-1].i, yypvt[-0].p); } break;
-case 102:
-# line 290 "awk.g.y"
-{ yyval.p = stat3(yypvt[-1].i, yypvt[-0].p, NIL, NIL); } break;
-case 103:
-# line 291 "awk.g.y"
-{ yyval.p = stat2(DELETE, makearr(yypvt[-3].p), yypvt[-1].p); } break;
-case 104:
-# line 292 "awk.g.y"
-{ yyclearin; ERROR "you can only delete array[element]" SYNTAX; yyval.p = stat1(DELETE, yypvt[-0].p); } break;
-case 105:
-# line 293 "awk.g.y"
-{ yyval.p = exptostat(yypvt[-0].p); } break;
-case 106:
-# line 294 "awk.g.y"
-{ yyclearin; ERROR "illegal statement" SYNTAX; } break;
-case 109:
-# line 302 "awk.g.y"
-{ if (!inloop) ERROR "break illegal outside of loops" SYNTAX;
- yyval.p = stat1(BREAK, NIL); } break;
-case 110:
-# line 304 "awk.g.y"
-{ yyval.p = stat1(CLOSE, yypvt[-1].p); } break;
-case 111:
-# line 305 "awk.g.y"
-{ if (!inloop) ERROR "continue illegal outside of loops" SYNTAX;
- yyval.p = stat1(CONTINUE, NIL); } break;
-case 112:
-# line 307 "awk.g.y"
-{inloop++;} break;
-case 113:
-# line 307 "awk.g.y"
-{--inloop;} break;
-case 114:
-# line 308 "awk.g.y"
-{ yyval.p = stat2(DO, yypvt[-6].p, notnull(yypvt[-2].p)); } break;
-case 115:
-# line 309 "awk.g.y"
-{ yyval.p = stat1(EXIT, yypvt[-1].p); } break;
-case 116:
-# line 310 "awk.g.y"
-{ yyval.p = stat1(EXIT, NIL); } break;
-case 118:
-# line 312 "awk.g.y"
-{ yyval.p = stat3(IF, yypvt[-3].p, yypvt[-2].p, yypvt[-0].p); } break;
-case 119:
-# line 313 "awk.g.y"
-{ yyval.p = stat3(IF, yypvt[-1].p, yypvt[-0].p, NIL); } break;
-case 120:
-# line 314 "awk.g.y"
-{ yyval.p = yypvt[-1].p; } break;
-case 121:
-# line 315 "awk.g.y"
-{ if (infunc)
- ERROR "next is illegal inside a function" SYNTAX;
- yyval.p = stat1(NEXT, NIL); } break;
-case 122:
-# line 318 "awk.g.y"
-{ yyval.p = stat1(RETURN, yypvt[-1].p); } break;
-case 123:
-# line 319 "awk.g.y"
-{ yyval.p = stat1(RETURN, NIL); } break;
-case 125:
-# line 321 "awk.g.y"
-{inloop++;} break;
-case 126:
-# line 321 "awk.g.y"
-{ --inloop; yyval.p = stat2(WHILE, yypvt[-2].p, yypvt[-0].p); } break;
-case 127:
-# line 322 "awk.g.y"
-{ yyval.p = 0; } break;
-case 129:
-# line 327 "awk.g.y"
-{ yyval.p = linkum(yypvt[-1].p, yypvt[-0].p); } break;
-case 132:
-# line 335 "awk.g.y"
-{ yyval.p = op2(ADD, yypvt[-2].p, yypvt[-0].p); } break;
-case 133:
-# line 336 "awk.g.y"
-{ yyval.p = op2(MINUS, yypvt[-2].p, yypvt[-0].p); } break;
-case 134:
-# line 337 "awk.g.y"
-{ yyval.p = op2(MULT, yypvt[-2].p, yypvt[-0].p); } break;
-case 135:
-# line 338 "awk.g.y"
-{ yyval.p = op2(DIVIDE, yypvt[-2].p, yypvt[-0].p); } break;
-case 136:
-# line 339 "awk.g.y"
-{ yyval.p = op2(MOD, yypvt[-2].p, yypvt[-0].p); } break;
-case 137:
-# line 340 "awk.g.y"
-{ yyval.p = op2(POWER, yypvt[-2].p, yypvt[-0].p); } break;
-case 138:
-# line 341 "awk.g.y"
-{ yyval.p = op1(UMINUS, yypvt[-0].p); } break;
-case 139:
-# line 342 "awk.g.y"
-{ yyval.p = yypvt[-0].p; } break;
-case 140:
-# line 343 "awk.g.y"
-{ yyval.p = op1(NOT, notnull(yypvt[-0].p)); } break;
-case 141:
-# line 344 "awk.g.y"
-{ yyval.p = op2(BLTIN, (Node *) yypvt[-2].i, rectonode()); } break;
-case 142:
-# line 345 "awk.g.y"
-{ yyval.p = op2(BLTIN, (Node *) yypvt[-3].i, yypvt[-1].p); } break;
-case 143:
-# line 346 "awk.g.y"
-{ yyval.p = op2(BLTIN, (Node *) yypvt[-0].i, rectonode()); } break;
-case 144:
-# line 347 "awk.g.y"
-{ yyval.p = op2(CALL, valtonode(yypvt[-2].cp,CVAR), NIL); } break;
-case 145:
-# line 348 "awk.g.y"
-{ yyval.p = op2(CALL, valtonode(yypvt[-3].cp,CVAR), yypvt[-1].p); } break;
-case 146:
-# line 349 "awk.g.y"
-{ yyval.p = op1(PREDECR, yypvt[-0].p); } break;
-case 147:
-# line 350 "awk.g.y"
-{ yyval.p = op1(PREINCR, yypvt[-0].p); } break;
-case 148:
-# line 351 "awk.g.y"
-{ yyval.p = op1(POSTDECR, yypvt[-1].p); } break;
-case 149:
-# line 352 "awk.g.y"
-{ yyval.p = op1(POSTINCR, yypvt[-1].p); } break;
-case 150:
-# line 353 "awk.g.y"
-{ yyval.p = op3(GETLINE, yypvt[-2].p, (Node *)yypvt[-1].i, yypvt[-0].p); } break;
-case 151:
-# line 354 "awk.g.y"
-{ yyval.p = op3(GETLINE, NIL, (Node *)yypvt[-1].i, yypvt[-0].p); } break;
-case 152:
-# line 355 "awk.g.y"
-{ yyval.p = op3(GETLINE, yypvt[-0].p, NIL, NIL); } break;
-case 153:
-# line 356 "awk.g.y"
-{ yyval.p = op3(GETLINE, NIL, NIL, NIL); } break;
-case 154:
-# line 358 "awk.g.y"
-{ yyval.p = op2(INDEX, yypvt[-3].p, yypvt[-1].p); } break;
-case 155:
-# line 360 "awk.g.y"
-{ ERROR "index() doesn't permit regular expressions" SYNTAX;
- yyval.p = op2(INDEX, yypvt[-3].p, (Node*)yypvt[-1].s); } break;
-case 156:
-# line 362 "awk.g.y"
-{ yyval.p = yypvt[-1].p; } break;
-case 157:
-# line 364 "awk.g.y"
-{ yyval.p = op3(MATCHFCN, NIL, yypvt[-3].p, (Node*)makedfa(yypvt[-1].s, 1)); } break;
-case 158:
-# line 366 "awk.g.y"
-{ if (constnode(yypvt[-1].p))
- yyval.p = op3(MATCHFCN, NIL, yypvt[-3].p, (Node*)makedfa(strnode(yypvt[-1].p), 1));
- else
- yyval.p = op3(MATCHFCN, (Node *)1, yypvt[-3].p, yypvt[-1].p); } break;
-case 159:
-# line 370 "awk.g.y"
-{ yyval.p = valtonode(yypvt[-0].cp, CCON); } break;
-case 160:
-# line 372 "awk.g.y"
-{ yyval.p = op4(SPLIT, yypvt[-5].p, makearr(yypvt[-3].p), yypvt[-1].p, (Node*)STRING); } break;
-case 161:
-# line 374 "awk.g.y"
-{ yyval.p = op4(SPLIT, yypvt[-5].p, makearr(yypvt[-3].p), (Node*)makedfa(yypvt[-1].s, 1), (Node *)REGEXPR); } break;
-case 162:
-# line 376 "awk.g.y"
-{ yyval.p = op4(SPLIT, yypvt[-3].p, makearr(yypvt[-1].p), NIL, (Node*)STRING); } break;
-case 163:
-# line 377 "awk.g.y"
-{ yyval.p = op1(yypvt[-3].i, yypvt[-1].p); } break;
-case 164:
-# line 378 "awk.g.y"
-{ yyval.p = valtonode(yypvt[-0].cp, CCON); } break;
-case 165:
-# line 380 "awk.g.y"
-{ yyval.p = op4(yypvt[-5].i, NIL, (Node*)makedfa(yypvt[-3].s, 1), yypvt[-1].p, rectonode()); } break;
-case 166:
-# line 382 "awk.g.y"
-{ if (constnode(yypvt[-3].p))
- yyval.p = op4(yypvt[-5].i, NIL, (Node*)makedfa(strnode(yypvt[-3].p), 1), yypvt[-1].p, rectonode());
- else
- yyval.p = op4(yypvt[-5].i, (Node *)1, yypvt[-3].p, yypvt[-1].p, rectonode()); } break;
-case 167:
-# line 387 "awk.g.y"
-{ yyval.p = op4(yypvt[-7].i, NIL, (Node*)makedfa(yypvt[-5].s, 1), yypvt[-3].p, yypvt[-1].p); } break;
-case 168:
-# line 389 "awk.g.y"
-{ if (constnode(yypvt[-5].p))
- yyval.p = op4(yypvt[-7].i, NIL, (Node*)makedfa(strnode(yypvt[-5].p), 1), yypvt[-3].p, yypvt[-1].p);
- else
- yyval.p = op4(yypvt[-7].i, (Node *)1, yypvt[-5].p, yypvt[-3].p, yypvt[-1].p); } break;
-case 169:
-# line 394 "awk.g.y"
-{ yyval.p = op3(SUBSTR, yypvt[-5].p, yypvt[-3].p, yypvt[-1].p); } break;
-case 170:
-# line 396 "awk.g.y"
-{ yyval.p = op3(SUBSTR, yypvt[-3].p, yypvt[-1].p, NIL); } break;
-case 173:
-# line 402 "awk.g.y"
-{ yyval.p = op2(ARRAY, makearr(yypvt[-3].p), yypvt[-1].p); } break;
-case 174:
-# line 403 "awk.g.y"
-{ yyval.p = valtonode(yypvt[-0].cp, CFLD); } break;
-case 175:
-# line 404 "awk.g.y"
-{ yyval.p = op1(INDIRECT, valtonode(yypvt[-0].cp, CVAR)); } break;
-case 176:
-# line 405 "awk.g.y"
-{ yyval.p = op1(INDIRECT, yypvt[-0].p); } break;
-case 177:
-# line 409 "awk.g.y"
-{ arglist = yyval.p = 0; } break;
-case 178:
-# line 410 "awk.g.y"
-{ arglist = yyval.p = valtonode(yypvt[-0].cp,CVAR); } break;
-case 179:
-# line 411 "awk.g.y"
-{ arglist = yyval.p = linkum(yypvt[-2].p,valtonode(yypvt[-0].cp,CVAR)); } break;
-case 180:
-# line 415 "awk.g.y"
-{ yyval.p = valtonode(yypvt[-0].cp, CVAR); } break;
-case 181:
-# line 416 "awk.g.y"
-{ yyval.p = op1(ARG, (Node *) yypvt[-0].i); } break;
-case 182:
-# line 417 "awk.g.y"
-{ yyval.p = op1(VARNF, (Node *) yypvt[-0].cp); } break;
-case 183:
-# line 422 "awk.g.y"
-{ yyval.p = notnull(yypvt[-1].p); } break;
- }
- goto yystack; /* reset registers in driver code */
-}
+ END OF ARCHIVE