/usr.bin/awk/ytab.c
C | 2195 lines | 1865 code | 65 blank | 265 comment | 111 complexity | 4c846f52d7d4e89a534a72ba795792a8 MD5 | raw file
Possible License(s): AGPL-1.0
- /* $Id: ytab.c 563 1998-04-07 16:19:01Z tribby $ */
- #ifdef __ORCAC__
- segment "lex";
- #endif
- /* NOTE: line directives commented-out in GNO version, for debugger */
- /* # line 26 "awkgram.y" */
- #include <stdio.h>
- #include <string.h>
- #include "awk.h"
- void checkdup(Node *list, Cell *item);
- 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 */
- char *curfname = 0; /* current function name */
- Node *arglist = 0; /* list of args for current function */
- /* # line 41 "awkgram.y" */
- typedef union {
- Node *p;
- Cell *cp;
- int i;
- char *s;
- } YYSTYPE;
- #ifdef __cplusplus
- # include <stdio.h>
- # include <yacc.h>
- #endif /* __cplusplus */
- # define FIRSTTOKEN 257
- # define PROGRAM 258
- # define PASTAT 259
- # define PASTAT2 260
- # define XBEGIN 261
- # define XEND 262
- # define NL 263
- # define ARRAY 264
- # define MATCH 265
- # define NOTMATCH 266
- # define MATCHOP 267
- # define FINAL 268
- # define DOT 269
- # define ALL 270
- # define CCL 271
- # define NCCL 272
- # define CHAR 273
- # define OR 274
- # define STAR 275
- # define QUEST 276
- # define PLUS 277
- # define AND 278
- # define BOR 279
- # define APPEND 280
- # define EQ 281
- # define GE 282
- # define GT 283
- # define LE 284
- # define LT 285
- # define NE 286
- # define IN 287
- # define ARG 288
- # define BLTIN 289
- # define BREAK 290
- # define CLOSE 291
- # define CONTINUE 292
- # define DELETE 293
- # define DO 294
- # define EXIT 295
- # define FOR 296
- # define FUNC 297
- # define SUB 298
- # define GSUB 299
- # define IF 300
- # define INDEX 301
- # define LSUBSTR 302
- # define MATCHFCN 303
- # define NEXT 304
- # define NEXTFILE 305
- # define ADD 306
- # define MINUS 307
- # define MULT 308
- # define DIVIDE 309
- # define MOD 310
- # define ASSIGN 311
- # define ASGNOP 312
- # define ADDEQ 313
- # define SUBEQ 314
- # define MULTEQ 315
- # define DIVEQ 316
- # define MODEQ 317
- # define POWEQ 318
- # define PRINT 319
- # define PRINTF 320
- # define SPRINTF 321
- # define ELSE 322
- # define INTEST 323
- # define CONDEXPR 324
- # define POSTINCR 325
- # define PREINCR 326
- # define POSTDECR 327
- # define PREDECR 328
- # define VAR 329
- # define IVAR 330
- # define VARNF 331
- # define CALL 332
- # define NUMBER 333
- # define STRING 334
- # define REGEXPR 335
- # define GETLINE 336
- # define 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;
- #ifndef YYMAXDEPTH
- #define YYMAXDEPTH 150
- #endif
- /* __YYSCLASS defines the scoping/storage class for global objects
- * that are NOT renamed by the -p option. By default these names
- * are going to be 'static' so that multi-definition errors
- * will not occur with multiple parsers.
- * If you want (unsupported) access to internal names you need
- * to define this to be null so it implies 'extern' scope.
- * This should not be used in conjunction with -p.
- */
- #ifndef __YYSCLASS
- # define __YYSCLASS static
- #endif
- YYSTYPE yylval;
- __YYSCLASS YYSTYPE yyval;
- typedef int yytabelem;
- # define YYERRCODE 256
- /* # line 444 "awkgram.y" */
- void setfname(Cell *p)
- {
- if (isarr(p))
- ERROR "%s is an array, not a function", p->nval SYNTAX;
- else if (isfcn(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;
- }
- char *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);
- }
- }
- void checkdup(Node *vl, Cell *cp) /* check if name already in list */
- {
- char *s = cp->nval;
- for ( ; vl; vl = vl->nnext) {
- if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) {
- ERROR "duplicate argument %s", s SYNTAX;
- break;
- }
- }
- }
- __YYSCLASS yytabelem 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,
- 321, 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, 157,
- 59, 30,
- -2, 0,
- -1, 176,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 63,
- -1, 177,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 64,
- -1, 178,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 65,
- -1, 179,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 66,
- -1, 180,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 67,
- -1, 181,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 68,
- -1, 183,
- 124, 0,
- 267, 0,
- 281, 0,
- 282, 0,
- 283, 0,
- 284, 0,
- 285, 0,
- 286, 0,
- 287, 0,
- -2, 70,
- -1, 288,
- 267, 0,
- 287, 0,
- -2, 53,
- -1, 332,
- 41, 30,
- -2, 0,
- -1, 354,
- 41, 30,
- -2, 0,
- };
- # define YYNPROD 184
- # define YYLAST 4423
- __YYSCLASS yytabelem yyact[]={
- 17, 137, 66, 228, 253, 276, 243, 124, 138, 102,
- 42, 103, 104, 111, 112, 42, 100, 155, 109, 107,
- 307, 108, 185, 110, 100, 214, 100, 100, 100, 42,
- 253, 121, 122, 123, 249, 82, 253, 42, 83, 103,
- 104, 223, 103, 104, 313, 252, 113, 205, 232, 139,
- 311, 41, 22, 43, 53, 42, 41, 22, 43, 142,
- 7, 146, 309, 7, 48, 149, 150, 152, 153, 23,
- 41, 22, 43, 163, 23, 100, 111, 156, 41, 140,
- 43, 109, 85, 273, 217, 143, 110, 105, 23, 51,
- 62, 16, 190, 244, 274, 11, 41, 113, 43, 10,
- 100, 50, 317, 79, 80, 133, 190, 100, 100, 100,
- 100, 100, 100, 100, 9, 268, 334, 148, 323, 190,
- 277, 190, 190, 190, 283, 100, 264, 190, 259, 190,
- 258, 190, 277, 190, 168, 169, 188, 351, 86, 190,
- 11, 315, 100, 219, 350, 349, 100, 221, 156, 24,
- 320, 134, 100, 226, 319, 257, 330, 218, 170, 167,
- 230, 158, 157, 100, 132, 130, 129, 128, 16, 127,
- 126, 125, 100, 120, 100, 119, 100, 100, 100, 100,
- 100, 100, 100, 4, 100, 154, 251, 100, 100, 21,
- 270, 144, 49, 131, 316, 346, 360, 363, 1, 72,
- 20, 100, 199, 39, 233, 224, 100, 234, 100, 100,
- 100, 5, 58, 100, 100, 67, 96, 222, 61, 60,
- 248, 81, 8, 159, 114, 216, 116, 117, 118, 160,
- 2, 0, 100, 100, 100, 100, 163, 0, 163, 163,
- 163, 163, 275, 182, 163, 238, 100, 0, 0, 236,
- 0, 292, 0, 140, 293, 100, 100, 3, 0, 0,
- 0, 0, 0, 166, 6, 0, 140, 6, 47, 0,
- 0, 269, 162, 165, 0, 96, 0, 0, 0, 211,
- 0, 0, 100, 156, 184, 100, 100, 100, 0, 100,
- 0, 100, 308, 0, 0, 0, 100, 0, 100, 100,
- 116, 239, 100, 0, 100, 100, 100, 96, 193, 194,
- 195, 196, 197, 198, 18, 163, 333, 27, 156, 26,
- 112, 44, 202, 204, 0, 206, 340, 332, 341, 0,
- 0, 210, 100, 68, 0, 230, 345, 100, 0, 100,
- 0, 0, 96, 100, 100, 0, 96, 229, 0, 0,
- 0, 355, 96, 156, 0, 358, 0, 230, 359, 0,
- 0, 0, 354, 242, 238, 361, 0, 238, 238, 238,
- 312, 238, 96, 238, 96, 0, 96, 96, 96, 96,
- 96, 96, 96, 112, 96, 0, 18, 96, 96, 27,
- 287, 26, 347, 44, 0, 0, 0, 16, 0, 357,
- 0, 96, 0, 0, 0, 68, 260, 337, 96, 96,
- 96, 299, 300, 96, 96, 0, 0, 0, 0, 238,
- 239, 0, 0, 239, 239, 239, 0, 239, 0, 239,
- 0, 289, 96, 278, 279, 280, 165, 0, 165, 165,
- 165, 165, 296, 0, 165, 0, 96, 291, 0, 0,
- 0, 0, 0, 302, 0, 96, 96, 18, 0, 0,
- 27, 0, 26, 0, 44, 310, 0, 0, 0, 16,
- 0, 0, 339, 0, 0, 239, 68, 0, 0, 0,
- 0, 0, 242, 0, 0, 242, 242, 242, 19, 242,
- 0, 242, 0, 0, 0, 0, 96, 0, 96, 96,
- 0, 0, 96, 335, 96, 96, 96, 0, 281, 0,
- 284, 285, 286, 288, 115, 165, 290, 18, 0, 0,
- 27, 0, 26, 0, 44, 0, 0, 0, 0, 0,
- 75, 0, 96, 0, 0, 0, 68, 242, 0, 96,
- 16, 0, 306, 96, 96, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 164, 42, 28, 55, 56, 57, 73, 69, 59,
- 70, 0, 45, 46, 71, 33, 0, 34, 63, 64,
- 0, 0, 0, 0, 0, 0, 101, 336, 0, 27,
- 0, 26, 0, 77, 78, 37, 0, 0, 0, 0,
- 16, 0, 75, 41, 22, 43, 29, 35, 38, 52,
- 32, 65, 36, 40, 76, 0, 25, 0, 0, 30,
- 31, 23, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 42, 28, 55, 56, 57, 73,
- 69, 59, 70, 0, 45, 46, 71, 33, 0, 34,
- 63, 64, 0, 0, 0, 0, 18, 0, 0, 27,
- 0, 26, 0, 44, 0, 77, 78, 37, 0, 0,
- 0, 0, 0, 75, 0, 41, 22, 43, 29, 35,
- 38, 0, 32, 65, 36, 40, 76, 0, 25, 0,
- 0, 30, 31, 23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 42, 28, 55, 56, 57,
- 73, 69, 59, 70, 0, 45, 46, 71, 33, 0,
- 34, 63, 64, 0, 164, 0, 164, 164, 164, 164,
- 0, 0, 164, 75, 0, 0, 77, 78, 37, 0,
- 271, 0, 0, 0, 0, 0, 41, 22, 43, 29,
- 35, 38, 0, 32, 65, 36, 40, 76, 0, 25,
- 0, 0, 30, 31, 23, 42, 28, 55, 56, 57,
- 73, 69, 59, 70, 0, 45, 46, 71, 33, 0,
- 34, 63, 64, 18, 0, 0, 27, 0, 26, 0,
- 44, 0, 0, 0, 0, 0, 77, 78, 37, 0,
- 0, 0, 68, 164, 0, 0, 41, 22, 43, 29,
- 35, 38, 0, 32, 65, 36, 40, 76, 0, 25,
- 0, 0, 30, 31, 23, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 42, 28, 0, 0, 0, 0,
- 0, 0, 0, 18, 45, 46, 27, 33, 26, 34,
- 44, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 68, 0, 0, 0, 16, 37, 247, 0,
- 0, 0, 75, 0, 0, 41, 22, 43, 29, 35,
- 38, 0, 32, 0, 36, 40, 0, 0, 99, 0,
- 0, 30, 31, 23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 18, 42, 28, 27, 0, 26, 73,
- 44, 0, 0, 0, 45, 46, 0, 33, 0, 34,
- 0, 0, 68, 0, 0, 0, 16, 0, 246, 0,
- 0, 0, 0, 0, 0, 77, 78, 37, 0, 0,
- 0, 0, 0, 0, 0, 41, 22, 43, 29, 35,
- 38, 0, 32, 0, 36, 40, 0, 0, 25, 0,
- 0, 30, 31, 23, 0, 0, 0, 0, 0, 0,
- 18, 0, 0, 27, 0, 26, 0, 44, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 0, 225, 68,
- 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, 42, 28, 55, 56, 57, 73, 69, 59, 70,
- 0, 45, 46, 71, 33, 0, 34, 63, 64, 0,
- 0, 0, 0, 16, 0, 215, 0, 0, 0, 75,
- 0, 0, 77, 78, 37, 0, 0, 0, 0, 0,
- 0, 256, 41, 22, 43, 29, 35, 38, 0, 32,
- 65, 36, 40, 76, 0, 25, 0, 0, 30, 31,
- 23, 42, 28, 55, 56, 57, 73, 69, 59, 70,
- 0, 45, 46, 71, 33, 0, 34, 63, 64, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
- 0, 0, 77, 78, 37, 0, 0, 0, 0, 0,
- 0, 0, 41, 22, 43, 29, 35, 38, 0, 32,
- 65, 36, 40, 76, 0, 25, 0, 0, 30, 31,
- 23, 42, 28, 55, 56, 57, 73, 69, 59, 70,
- 0, 45, 46, 71, 33, 0, 34, 63, 64, 18,
- 0, 0, 27, 0, 26, 0, 44, 189, 191, 0,
- 0, 0, 77, 78, 37, 0, 75, 0, 68, 0,
- 0, 0, 41, 22, 43, 29, 35, 38, 0, 32,
- 65, 36, 40, 76, 0, 25, 0, 0, 30, 31,
- 23, 0, 0, 0, 0, 0, 0, 0, 42, 28,
- 55, 56, 57, 73, 69, 59, 70, 0, 45, 46,
- 71, 33, 235, 34, 63, 64, 18, 0, 0, 27,
- 0, 26, 0, 44, 0, 0, 0, 0, 0, 77,
- 78, 37, 16, 0, 135, 68, 0, 0, 0, 41,
- 22, 43, 29, 35, 38, 0, 32, 65, 36, 40,
- 76, 0, 25, 0, 0, 30, 31, 23, 0, 261,
- 262, 263, 0, 265, 266, 267, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 189, 0,
- 101, 329, 0, 27, 190, 26, 0, 0, 0, 16,
- 294, 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, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 322, 325, 327, 328, 0, 0,
- 0, 0, 0, 0, 189, 75, 101, 326, 0, 27,
- 190, 26, 0, 0, 95, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,
- 0, 0, 0, 0, 0, 0, 0, 42, 28, 55,
- 56, 57, 73, 69, 59, 70, 0, 45, 46, 71,
- 33, 0, 34, 63, 64, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 77, 78,
- 37, 0, 75, 0, 0, 0, 0, 0, 41, 22,
- 43, 29, 35, 38, 0, 32, 65, 36, 40, 76,
- 95, 25, 0, 0, 30, 31, 23, 0, 0, 0,
- 0, 0, 0, 0, 42, 28, 55, 56, 57, 73,
- 69, 59, 70, 0, 45, 46, 71, 33, 0, 34,
- 63, 64, 0, 0, 0, 0, 0, 0, 101, 324,
- 0, 27, 190, 26, 0, 77, 78, 37, 0, 0,
- 0, 0, 0, 0, 0, 41, 22, 43, 29, 35,
- 38, 84, 32, 65, 36, 40, 76, 93, 25, 0,
- 0, 30, 31, 23, 0, 0, 0, 0, 98, 97,
- 0, 87, 88, 89, 90, 91, 92, 94, 42, 28,
- 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
- 0, 33, 0, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 37, 95, 0, 0, 0, 0, 0, 0, 41,
- 22, 43, 29, 35, 38, 0, 32, 0, 36, 40,
- 0, 0, 99, 93, 0, 30, 31, 23, 101, 0,
- 0, 27, 0, 26, 98, 97, 0, 87, 88, 89,
- 90, 91, 92, 94, 42, 28, 0, 139, 0, 0,
- 0, 84, 0, 0, 45, 46, 0, 33, 0, 34,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 37, 0, 0,
- 0, 0, 0, 0, 0, 41, 22, 43, 29, 35,
- 38, 0, 32, 0, 36, 40, 0, 0, 99, 0,
- 0, 30, 31, 23, 101, 192, 0, 27, 190, 26,
- 0, 0, 95, 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, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 97, 0, 87,
- 88, 89, 90, 91, 92, 94, 42, 28, 0, 0,
- 0, 0, 0, 0, 0, 0, 45, 46, 0, 33,
- 0, 34, 0, 0, 0, 0, 0, 0, 95, 0,
- 0, 0, 0, 0, 0, 101, 353, 0, 27, 37,
- 26, 0, 0, 0, 0, 0, 0, 41, 22, 43,
- 29, 35, 38, 0, 32, 0, 36, 40, 84, 0,
- 99, 0, 0, 30, 31, 23, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 140, 0, 0, 0, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 97, 0, 87,
- 88, 89, 90, 91, 92, 94, 42, 28, 0, 95,
- 101, 352, 0, 27, 0, 26, 45, 46, 0, 33,
- 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 84, 0, 0, 0, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
- 29, 35, 38, 0, 32, 0, 36, 40, 0, 0,
- 99, 93, 0, 30, 31, 23, 0, 0, 0, 0,
- 0, 0, 98, 97, 0, 87, 88, 89, 90, 91,
- 92, 94, 42, 28, 0, 0, 0, 0, 0, 0,
- 0, 0, 45, 46, 95, 33, 0, 34, 101, 348,
- 0, 27, 0, 26, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 37, 0, 0, 0, 0,
- 0, 84, 0, 41, 22, 43, 29, 35, 38, 0,
- 32, 0, 36, 40, 0, 0, 99, 0, 0, 30,
- 31, 23, 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, 42, 28, 0, 0, 0, 0, 0,
- 0, 0, 95, 45, 46, 0, 33, 0, 34, 0,
- 101, 0, 0, 27, 0, 26, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 37, 0, 0, 344,
- 0, 0, 0, 84, 41, 22, 43, 29, 35, 38,
- 0, 32, 0, 36, 40, 0, 0, 99, 0, 0,
- 30, 31, 23, 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, 42, 28,
- 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
- 0, 33, 0, 34, 95, 0, 0, 0, 0, 0,
- 0, 0, 101, 321, 0, 27, 0, 26, 0, 0,
- 0, 37, 0, 0, 0, 0, 0, 0, 0, 41,
- 22, 43, 29, 35, 38, 84, 32, 0, 36, 40,
- 0, 0, 99, 0, 0, 30, 31, 23, 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, 42, 28, 0, 0,
- 0, 0, 0, 0, 0, 0, 45, 46, 0, 33,
- 0, 34, 0, 0, 0, 0, 95, 0, 0, 0,
- 101, 318, 0, 27, 0, 26, 0, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
- 29, 35, 38, 84, 32, 0, 36, 40, 0, 0,
- 99, 0, 0, 30, 31, 23, 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, 42, 28,
- 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
- 0, 33, 0, 34, 95, 101, 277, 0, 27, 0,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 37, 0, 0, 0, 0, 0, 0, 84, 41,
- 22, 43, 29, 35, 38, 0, 32, 0, 36, 40,
- 0, 0, 99, 0, 0, 30, 31, 23, 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,
- 42, 28, 0, 0, 0, 0, 0, 0, 0, 95,
- 45, 46, 0, 33, 0, 34, 101, 0, 0, 27,
- 190, 26, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 37, 0, 0, 0, 0, 0, 84,
- 0, 41, 22, 43, 29, 35, 38, 0, 32, 0,
- 36, 40, 0, 0, 99, 0, 0, 30, 31, 23,
- 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, 42, 28,
- 0, 0, 101, 192, 0, 27, 0, 26, 45, 46,
- 95, 33, 0, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 84, 0, 0, 0, 0,
- 0, 37, 0, 0, 0, 0, 0, 0, 0, 41,
- 22, 43, 29, 35, 38, 0, 32, 0, 36, 40,
- 0, 0, 99, 0, 0, 30, 31, 23, 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, 42, 28, 0, 95, 0, 0, 0,
- 0, 0, 101, 45, 46, 27, 33, 26, 34, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 250, 0, 0, 0, 0, 84, 37, 0, 0, 0,
- 0, 0, 0, 0, 41, 22, 43, 29, 35, 38,
- 0, 32, 0, 36, 40, 0, 0, 99, 0, 0,
- 30, 31, 23, 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, 42, 28, 95, 0, 101, 0,
- 0, 27, 0, 26, 45, 46, 0, 33, 0, 34,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 84, 0, 0, 0, 0, 0, 37, 0, 0,
- 0, 0, 0, 0, 0, 41, 22, 43, 29, 35,
- 38, 0, 32, 0, 36, 40, 0, 0, 99, 93,
- 0, 30, 31, 23, 0, 0, 0, 0, 0, 0,
- 98, 97, 0, 87, 88, 89, 90, 91, 92, 94,
- 42, 28, 0, 0, 0, 0, 0, 0, 0, 0,
- 45, 46, 95, 33, 101, 34, 0, 27, 0, 26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 41, 22, 43, 29, 35, 38, 0, 32, 0,
- 36, 40, 0, 0, 99, 0, 0, 30, 31, 23,
- 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,
- 42, 28, 0, 0, 0, 0, 0, 0, 95, 101,
- 45, 46, 27, 33, 26, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 41, 22, 43, 29, 35, 38, 0, 32, 0,
- 36, 40, 0, 0, 99, 54, 0, 30, 31, 23,
- 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, 42, 28, 0, 0,
- 0, 0, 0, 95, 0, 0, 45, 46, 0, 33,
- 0, 34, 0, 0, 0, 0, 0, 0, 0, 136,
- 0, 0, 0, 0, 0, 0, 0, 147, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
- 29, 35, 38, 0, 32, 0, 36, 40, 0, 0,
- 99, 0, 0, 30, 31, 23, 0, 0, 0, 0,
- 0, 93, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 98, 0, 0, 87, 88, 89, 90, 91,
- 92, 94, 42, 28, 0, 0, 0, 0, 0, 0,
- 0, 0, 45, 46, 0, 33, 0, 34, 0, 136,
- 18, 0, 0, 27, 0, 26, 0, 44, 0, 0,
- 220, 0, 0, 0, 136, 37, 0, 0, 0, 0,
- 227, 0, 0, 41, 22, 43, 29, 35, 38, 0,
- 32, 0, 36, 40, 136, 136, 99, 0, 0, 30,
- 31, 23, 0, 0, 0, 0, 93, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 87, 88, 89, 90, 91, 92, 94, 42, 28, 0,
- 0, 0, 0, 0, 0, 0, 0, 45, 46, 74,
- 33, 0, 34, 16, 15, 0, 0, 0, 272, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 106, 0,
- 37, 0, 0, 0, 0, 0, 0, 0, 41, 22,
- 43, 29, 35, 38, 0, 32, 0, 36, 40, 0,
- 0, 99, 0, 0, 30, 31, 23, 0, 0, 15,
- 0, 15, 0, 0, 0, 136, 141, 101, 0, 145,
- 27, 0, 26, 0, 0, 151, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 314, 0, 0, 0, 0,
- 237, 0, 0, 0, 171, 173, 175, 176, 177, 178,
- 179, 180, 181, 183, 0, 0, 0, 0, 0, 0,
- 0, 186, 187, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 200, 0, 0, 0, 0, 0, 200,
- 200, 0, 0, 0, 0, 207, 208, 209, 200, 212,
- 213, 101, 356, 136, 27, 0, 26, 0, 0, 0,
- 0, 12, 13, 0, 0, 0, 362, 0, 0, 364,
- 101, 0, 0, 27, 237, 26, 0, 0, 231, 0,
- 0, 106, 0, 0, 0, 0, 0, 245, 42, 28,
- 0, 0, 0, 0, 0, 0, 0, 14, 45, 46,
- 0, 33, 0, 34, 0, 0, 0, 0, 0, 254,
- 0, 255, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 37, 0, 0, 0, 0, 0, 0, 0, 41,
- 22, 43, 29, 35, 38, 0, 32, 0, 36, 40,
- 0, 0, 25, 0, 0, 30, 31, 23, 18, 0,
- 0, 27, 0, 26, 0, 44, 0, 0, 0, 0,
- 0, 0, 0, 0, 200, 0, 0, 139, 0, 0,
- 295, 0, 0, 0, 0, 0, 297, 0, 0, 0,
- 0, 298, 301, 0, 0, 303, 304, 305, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 18, 0, 106, 27, 240, 26, 0, 44, 0, 0,
- 0, 0, 0, 0, 0, 98, 97, 0, 0, 0,
- 0, 0, 0, 0, 241, 42, 28, 0, 331, 0,
- 0, 0, 0, 0, 0, 45, 46, 0, 33, 0,
- 34, 0, 338, 0, 0, 0, 0, 0, 342, 0,
- 343, 0, 0, 0, 0, 0, 0, 0, 37, 0,
- 0, 0, 0, 0, 0, 0, 41, 22, 43, 29,
- 35, 38, 0, 32, 0, 36, 40, 0, 240, 99,
- 0, 0, 30, 31, 23, 0, 0, 0, 101, 98,
- 97, 27, 0, 26, 0, 0, 0, 240, 241, 42,
- 28, 0, 0, 0, 0, 0, 0, 0, 98, 45,
- 46, 0, 33, 0, 34, 0, 0, 241, 42, 28,
- 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,
- 0, 33, 37, 34, 0, 0, 0, 0, 0, 0,
- 41, 22, 43, 29, 35, 38, 0, 32, 0, 36,
- 40, 37, 0, 99, 0, 0, 30, 31, 23, 41,
- 22, 43, 29, 35, 38, 0, 32, 0, 36, 40,
- 0, 140, 99, 0, 0, 30, 31, 23, 282, 0,
- 0, 27, 0, 26, 0, 44, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 42, 28, 0, 0,
- 0, 0, 0, 0, 0, 0, 45, 46, 0, 33,
- 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 253, 0, 0, 0, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
- 29, 35, 38, 0, 32, 0, 36, 40, 42, 28,
- 25, 0, 0, 30, 31, 23, 0, 0, 45, 46,
- 0, 33, 0, 34, 282, 0, 0, 27, 0, 26,
- 0, 44, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 37, 0, 0, 0, 0, 0, 0, 0, 41,
- 22, 43, 29, 35, 38, 0, 32, 0, 36, 40,
- 0, 0, 25, 0, 0, 30, 31, 23, 0, 0,
- 0, 0, 0, 0, 0, 240, 282, 0, 0, 27,
- 0, 26, 0, 44, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 241, 42, 28, 0, 0,
- 0, 0, 0, 0, 0, 0, 45, 46, 0, 33,
- 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
- 29, 35, 38, 0, 32, 0, 36, 40, 0, 0,
- 99, 0, 0, 30, 31, 23, 0, 18, 203, 0,
- 27, 174, 26, 0, 44, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 18, 201, 0, 27,
- 0, 26, 0, 44, 0, 0, 42, 28, 0, 0,
- 0, 0, 0, 0, 0, 0, 45, 46, 0, 33,
- 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
- 29, 35, 38, 0, 32, 0, 36, 40, 0, 0,
- 25, 0, 0, 30, 31, 23, 0, 172, 18, 0,
- 0, 27, 0, 26, 0, 44, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 42, 28, 0, 0, 0, 0, 0, 0,
- 0, 0, 45, 46, 0, 33, 0, 34, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 253,
- 0, 0, 0, 18, 0, 37, 27, 0, 26, 0,
- 44, 0, 0, 41, 22, 43, 29, 35, 38, 0,
- 32, 0, 36, 40, 42, 28, 25, 0, 0, 30,
- 31, 23, 0, 0, 45, 46, 0, 33, 0, 34,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 18, 0, 37, 27, 0,
- 26, 0, 44, 0, 0, 41, 22, 43, 29, 35,
- 38, 0, 32, 0, 36, 40, 0, 0, 25, 0,
- 0, 30, 31, 23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 42, 28, 282, 0, 0,
- 27, 0, 26, 0, 44, 45, 46, 0, 33, 0,
- 34, 0, 0, 0, 42, 28, 161, 0, 0, 27,
- 0, 26, 0, 44, 45, 46, 0, 33, 37, 34,
- 0, 0, 0, 0, 0, 0, 41, 22, 43, 29,
- 35, 38, 0, 32, 0, 36, 40, 37, 0, 25,
- 0, 0, 30, 31, 23, 41, 22, 43, 29, 35,
- 38, 174, 32, 0, 36, 40, 0, 0, 25, 0,
- 0, 30, 31, 23, 0, 0, 101, 0, 0, 27,
- 0, 26, 0, 44, 0, 0, 42, 28, 0, 0,
- 0, 0, 0, 0, 0, 101, 45, 46, 27, 33,
- 26, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 172, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 41, 22, 43,
- 29, 35, 38, 0, 32, 0, 36, 40, 0, 0,
- 25, 42, 28, 30, 31, 23, 0, 0, 0, 0,
- 0, 45, 46, 0, 33, 0, 34, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 37, 0, 0, 0, 0, 0,
- 0, 0, 41, 22, 43, 29, 35, 38, 0, 32,
- 0, 36, 40, 42, 28, 25, 0, 0, 30, 31,
- 23, 0, 0, 45, 46, 0, 33, 0, 34, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 37, 0, 0, 0,
- 0, 0, 0, 0, 41, 22, 43, 29, 35, 38,
- 0, 32, 0, 36, 40, 42, 28, 25, 0, 0,
- 30, 31, 23, 0, 0, 45, 46, 0, 33, 0,
- 34, 0, 0, 0, 42, 28, 0, 0, 0, 0,
- 0, 0, 0, 0, 45, 46, 0, 33, 37, 34,
- 0, 0, 0, 0, 0, 0, 41, 22, 43, 29,
- 35, 38, 0, 32, 0, 36, 40, 37, 0, 25,
- 0, 0, 30, 31, 23, 41, 22, 43, 29, 35,
- 38, 0, 32, 0, 36, 40, 0, 0, 25, 0,
- 0, 30, 31, 23, 42, 28, 0, 0, 0, 0,
- 0, 0, 0, 0, 45, 46, 0, 33, 0, 34,
- 0, 0, 0, 42, 28, 0, 0, 0, 0, 0,
- 0, 0, 0, 45, 46, 0, 33, 37, 34, 0,
- 0, 0, 0, 0, 0, 41, 22, 43, 29, 35,
- 38, 0, 32, 0, 36, 40, 37, 0, 25, 0,
- 0, 30, 31, 23, 41, 22, 43, 29, 35, 38,
- 0, 0, 0, 36, 40, 0, 0, 99, 0, 0,
- 30, 31, 23 };
- __YYSCLASS yytabelem yypact[]={
- 1, -3000, -3000, -3000, 2970, 5, -3000, -3000, 4, -3000,
- 45, 346, -32, -32, -294, 2618, -3000, -303, 3925, -3000,
- -24, 6, -3000, 546, -3000, 4056, 546, 546, 135, 133,
- -273, -273, -278, 131, 130, -3000, 129, 127, -3000, 126,
- 125, -3000, -3000, -3000, -3000, -3000, -3000, -3000, -3000, 2970,
- 346, 3925, -3000, 1129, -3000, -10, 3925, -10, -178, 3278,
- -3000, 1196, 346, -10, -10, 3278, -10, -3000, -184, -3000,
- 122, 121, 3996, -251, 2618, -3000, 119, -3000, -3000, 346,
- 346, 118, -3000, -3000, 3925, 3873, 3818, 3925, 3925, 3925,
- 3925, 3925, 3925, 3925, -251, -314, -24, -3000, -3000, 546,
- -334, 3925, 3925, -3000, -3000, 95, 1654, 546, 546, 546,
- 546, 546, 546, 3925, -3000, -3000, -330, -330, -330, 3746,
- 3727, -3000, -3000, -238, 546, 3925, 3925, 3925, 3925, 3925,
- 3925, -310, -3000, 930, -32, -3000, -3000, -3000, -179, -184,
- -3000, 1578, -3000, -3000, 1196, 1578, -3000, -281, 863, -3000,
- -3000, 1578, -3000, -3000, 1196, -3000, -179, 616, 3925, -76,
- 78, 3925, 3181, -306, -3000, -24, 2, 3925, 803, 743,
- -295, 2532, -3000, 2704, -3000, 2789, 4075, 4075, 4075, 4075,
- 4075, 4075, -3000, 4075, -3000, -273, 2442, 2618, -242, 3330,
- -3000, 3330, -3000, 39, 39, -330, -330, -330, -330, 62,
- 2618, -3000, 89, -3000, 87, 546, -24, 2366, 2366, 2366,
- 85, 78, 2366, 2366, 68, -3000, 346, -3000, -3000, -3000,
- -3000, -3000, 477, -3000, -180, -3000, -3000, -3000, 35, -45,
- -3000, 2275, 546, 546, 546, 3646, 83, 3977, 3594, 3508,
- 3977, -251, -24, 3977, 3925, 2275, -3000, -3000, 79, -3000,
- 3925, -3000, -251, -3000, 2618, 2618, 3330, -3000, -3000, -3000,
- -24, 3330, 3330, -233, -3000, 3330, 3330, 3330, -3000, 417,
- -320, -3000, -3000, -3000, 3, -251, -213, -3000, -24, -24,
- -24, 3181, 3925, -243, 3107, 3200, 3418, -3000, 4075, -3000,
- 3181, 48, -213, -213, -227, 2618, -3000, 2618, 2190, 113,
- 109, 2102, 77, 1468, 1346, 1270, -3000, 116, 3925, -184,
- 91, -3000, 75, -251, 3977, -3000, -32, -3000, -3000, -3000,
- -3000, -3000, 3330, -3000, -3000, -259, -3000, -259, 3330, -3000,
- 3925, 2010, 616, -213, -243, -3000, 3181, 346, 1918, 104,
- 103, 96, 1830, 1745, -184, 91, 1196, 274, -3000, -3000,
- -3000, -3000, -3000, -10, 616, -213, -3000, -3000, -3000, 91,
- 1196, -213, -3000, 1196, -3000 };
- __YYSCLASS yytabelem yypgo[]={
- 0, 230, 3089, 272, 87, 229, 202, 223, 200, 488,
- 99, 114, 222, 149, 2, 3, 2875, 54, 0, 189,
- 221, 220, 219, 218, 217, 215, 212, 1, 211, 183,
- 90, 205, 5, 1071, 8, 17, 138, 82, 203, 199,
- 198, 197, 196, 195, 194, 193, 191, 190, 185 };
- __YYSCLASS yytabelem yyr1[]={
- 0, 40, 40, 36, 36, 37, 37, 33, 33, 26,
- 26, 24, 24, 41, 22, 42, 22, 43, 22, 20,
- 20, 23, 30, 30, 34, 34, 35, 35, 29, 29,
- 15, 15, 1, 1, 10, 11, 11, 11, 11, 11,
- 11, 11, 44, 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, 39, 39, 28, 28, 28,
- 28, 31, 31, 9, 9, 45, 13, 32, 32, 14,
- 14, 14, 14, 14, 14, 14, 14, 27, 27, 16,
- 16, 16, 46, 47, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 48, 16, 16, 17,
- 17, 38, 38, 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, 21, 21, 21,
- 19, 19, 19, 25 };
- __YYSCLASS yytabelem 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, 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, 5, 1, 3, 7,
- 3, 3, 3, 9 };
- __YYSCLASS yytabelem yychk[]={
- -3000, -40, -1, 256, -29, -28, 263, 59, -12, -11,
- -10, -30, 261, 262, 297, -2, 123, -18, 40, -9,
- -8, -19, 330, 347, -13, 342, 45, 43, 289, 332,
- 345, 346, 336, 301, 303, 333, 338, 321, 334, -38,
- 339, 329, 288, 331, 47, 298, 299, 263, 59, -29,
- -30, 44, 263, -17, -16, 290, 291, 292, -26, 295,
- -22, -23, -30, 304, 305, 337, -14, -25, 59, 294,
- 296, 300, -39, 293, -2, 256, 340, 319, 320, -30,
- -30, -20, 329, 332, 63, -37, -36, 281, 282, 283,
- 284, 285, 286, 267, 287, 124, -8, 279, 278, 342,
- -18, 40, 312, 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, -45, -11, -17, -10, 125, -16, -27, -34, 59,
- 263, -2, -27, 263, -46, -2, -27, -16, -17, -27,
- -27, -2, -27, -27, -48, -35, -34, 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, -33,
- 44, -33, 41, -8, -8, -8, -8, -8, -8, -6,
- -2, 41, -6, 41, -6, 285, -8, -2, -2, -2,
- -6, -13, -2, -2, 335, 125, -30, 263, -35, -27,
- -16, -27, -24, 322, -31, 125, -27, -16, -15, -19,
- -14, -2, 124, 280, 283, -33, -4, 63, -37, -36,
- 267, 287, -8, 312, 91, -2, 125, 125, -21, 329,
- 58, -18, 287, 263, -2, -2, -33, 93, 41, 41,
- -8, -33, -33, -33, 41, -33, -33, -33, 47, -17,
- -47, 263, -16, 263, 59, 287, -32, 41, -8, -8,
- -8, -3, 40, 41, -3, -3, -3, -13, -3, -19,
- -3, -6, -32, -32, -33, -2, -19, -2, -2, -13,
- -13, -2, -19, -2, -2, -2, 125, 340, -35, 59,
- -19, 263, -4, 287, 58, 93, -44, 329, 41, 41,
- 41, 41, -33, 41, 41, -33, 41, -33, -33, 41,
- 40, -2, -35, -32, 41, -19, -3, -30, -2, -13,
- -18, -18, -2, -2, 59, -15, -43, -17, 41, 41,
- 41, 41, 41, 41, -35, -32, -16, 125, -27, -15,
- -42, -32, -16, -41, -16 };
- __YYSCLASS yytabelem yydef[]={
- -2, -2, 1, 2, 32, 29, 87, 88, 28, 44,
- 35, 0, 0, 0, 0, 34, 22, 172, 0, 76,
- 77, 173, 175, 0, 93, 0, 0, 0, 144, 0,
- 0, 0, 154, 0, 0, 160, 0, 0, 165, 0,
- 0, 180, 181, 182, 95, 131, 132, 89, 90, 33,
- 0, 0, 23, 0, 129, 0, 0, 0, 112, 0,
- 117, 0, 0, 0, 0, 0, 0, 126, 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,
- 172, 0, 0, 149, 150, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 176, 94, 141, 139, 140, 0,
- 0, 147, 148, 153, 0, 0, 0, 0, 0, 0,
- 0, 0, 45, 0, 37, 39, 130, 109, 107, 26,
- 24, 0, 111, 10, 0, 0, 116, 119, 0, 121,
- 122, 0, 124, 125, 0, 128, 27, -2, 0, 102,
- 83, 0, 80, 172, 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, 157, 133, 134, 135, 136, 137, 138, 0,
- 46, 142, 0, 145, 0, 0, 152, 0, 0, 0,
- 0, 93, 0, 0, 0, 36, 0, 25, 108, 110,
- 113, 115, 0, 11, 120, 91, 123, 127, 0, 173,
- 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, 174, 143, 146,
- 151, 0, 0, 0, 164, 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, 155, 156,
- 158, 159, 0, 163, 166, 0, 167, 0, 0, 171,
- 0, 0, -2, 17, 0, 55, 49, 0, 0, 93,
- 0, 0, 0, 0, 26, 0, 0, 0, 161, 162,
- 168, 169, 170, 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
- __YYSCLASS 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,
- "NEXTFILE", 305,
- "ADD", 306,
- "MINUS", 307,
- "MULT", 308,
- "DIVIDE", 309,
- "MOD", 310,
- "ASSIGN", 311,
- "ASGNOP", 312,
- "ADDEQ", 313,
- "SUBEQ", 314,
- "MULTEQ", 315,
- "DIVEQ", 316,
- "MODEQ", 317,
- "POWEQ", 318,
- "PRINT", 319,
- "PRINTF", 320,
- "SPRINTF", 321,
- "ELSE", 322,
- "INTEST", 323,
- "CONDEXPR", 324,
- "POSTINCR", 325,
- "PREINCR", 326,
- "POSTDECR", 327,
- "PREDECR", 328,
- "VAR", 329,
- "IVAR", 330,
- "VARNF", 331,
- "CALL", 332,
- "NUMBER", 333,
- "STRING", 334,
- "REGEXPR", 335,
- "?", 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 */
- };
- __YYSCLASS 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 : NEXTFILE 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 : IVAR",
- "var : INDIRECT term",
- "varlist : /* empty */",
- "varlist : VAR",
- "varlist : varlist comma VAR",
- "varname : VAR",
- "varname : ARG",
- "varname : VARNF",
- "while : WHILE '(' pattern rparen",
- };
- #endif /* YYDEBUG */
- #define YYFLAG (-3000)
- /* @(#) $Revision: 563 $ */
- /*
- ** Skeleton parser driver for yacc output
- */
- #if defined(NLS) && !defined(NL_SETN)
- #include <msgbuf.h>
- #endif
- #ifndef nl_msg
- #define nl_msg(i,s) (s)
- #endif
- /*
- ** yacc user known macros and defines
- */
- #define YYERROR goto yyerrlab
- #ifndef __RUNTIME_YYMAXDEPTH
- #define YYACCEPT return(0)
- #define YYABORT return(1)
- #else
- #define YYACCEPT {free_stacks(); return(0);}
- #define YYABORT {free_stacks(); return(1);}
- #endif
- #define YYBACKUP( newtoken, newvalue )\
- {\
- if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
- {\
- yyerror( (nl_msg(30001,"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 for YYFLAG now generated by yacc program. */
- /*#define YYFLAG (FLAGVAL)*/
- /*
- ** global variables used by the parser
- */
- # ifndef __RUNTIME_YYMAXDEPTH
- __YYSCLASS YYSTYPE yyv[ YYMAXDEPTH ]; /* value stack */
- __YYSCLASS int yys[ YYMAXDEPTH ]; /* state stack */
- # else
- __YYSCLASS YYSTYPE *yyv; /* pointer to malloc'ed value stack */
- __YYSCLASS int *yys; /* pointer to malloc'ed stack stack */
- #if defined(__STDC__) || defined (__cplusplus)
- #include <stdlib.h>
- #else
- extern char *malloc();
- extern char *realloc();
- extern void free();
- #endif /* __STDC__ or __cplusplus */
- static int allocate_stacks();
- static void free_stacks();
- # ifndef YYINCREMENT
- # define YYINCREMENT (YYMAXDEPTH/2) + 10
- # endif
- # endif /* __RUNTIME_YYMAXDEPTH */
- long yymaxdepth = YYMAXDEPTH;
- __YYSCLASS YYSTYPE *yypv; /* top of value stack */
- __YYSCLASS int *yyps; /* top of state stack */
- __YYSCLASS int yystate; /* current state */
- __YYSCLASS int yytmp; /* extra var (lasts between blocks) */
- int yynerrs; /* number of errors */
- __YYSCLASS int yyerrflag; /* error recovery flag */
- int yychar; /* current input token number */
- /*
- ** yyparse - return 0 if worked, 1 if syntax error not recovered from
- */
- int
- #ifndef __STDC__
- yyparse()
- #else
- yyparse(void)
- #endif
- {
- register YYSTYPE *yypvt; /* top of value stack for $vars */
- /*
- ** Initialize externals - yyparse may be called more than once
- */
- # ifdef __RUNTIME_YYMAXDEPTH
- if (allocate_stacks()) YYABORT;
- # endif
- 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;
- printf( "State %d, token ", yy_state );
- if ( yychar == 0 )
- printf( "end-of-file\n" );
- else if ( yychar < 0 )
- printf( "-none-\n" );
- else
- {
- for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
- yy_i++ )
- {
- if ( yytoks[yy_i].t_val == yychar )
- break;
- }
- printf( "%s\n", yytoks[yy_i].t_name );
- }
- }
- #endif /* YYDEBUG */
- if ( ++yy_ps >= &yys[ yymaxdepth ] ) /* room on stack? */
- {
- # ifndef __RUNTIME_YYMAXDEPTH
- yyerror( (nl_msg(30002,"yacc stack overflow")) );
- YYABORT;
- # else
- /* save old stack bases to recalculate pointers */
- YYSTYPE * yyv_old = yyv;
- int * yys_old = yys;
- yymaxdepth += YYINCREMENT;
- yys = (int *) realloc(yys, yymaxdepth * sizeof(int));
- yyv = (YYSTYPE *) realloc(yyv, yymaxdepth * sizeof(YYSTYPE));
- if (yys==0 || yyv==0) {
- yyerror( (nl_msg(30002,"yacc stack overflow")) );
- YYABORT;
- }
- /* Reset pointers into stack */
- yy_ps = (yy_ps - yys_old) + yys;
- yyps = (yyps - yys_old) + yys;
- yy_pv = (yy_pv - yyv_old) + yyv;
- yypv = (yypv - yyv_old) + yyv;
- # endif
- }
- *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;
- printf( "Received token " );
- if ( yychar == 0 )
- printf( "end-of-file\n" );
- else if ( yychar < 0 )
- printf( "-none-\n" );
- else
- {
- for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
- yy_i++ )
- {
- if ( yytoks[yy_i].t_val == yychar )
- break;
- }
- 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;
- printf( "Received token " );
- if ( yychar == 0 )
- printf( "end-of-file\n" );
- else if ( yychar < 0 )
- printf( "-none-\n" );
- else
- {
- for ( yy_i = 0;
- yytoks[yy_i].t_val >= 0;
- yy_i++ )
- {
- if ( yytoks[yy_i].t_val
- == yychar )
- {
- break;
- }
- }
- 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( (nl_msg(30003,"syntax error")) );
- yynerrs++;
- 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 )
- 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;
- printf( "Error recovery discards " );
- if ( yychar == 0 )
- printf( "token end-of-file\n" );
- else if ( yychar < 0 )
- 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;
- }
- }
- 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 )
- 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 98 "awkgram.y" */
- { if (errorflag==0)
- winner = (Node *)stat3(PROGRAM, beginloc, yypvt[-0].p, endloc); } break;
- case 2:
- /* # line 100 "awkgram.y" */
- { yyclearin; bracecheck(); ERROR "bailing out" SYNTAX; } break;
- case 13:
- /* # line 124 "awkgram.y" */
- {inloop++;} break;
- case 14:
- /* # line 125 "awkgram.y" */
- { --inloop; yyval.p = stat4(FOR, yypvt[-9].p, notnull(yypvt[-6].p), yypvt[-3].p, yypvt[-0].p); } break;
- case 15:
- /* # line 126 "awkgram.y" */
- {inloop++;} break;
- case 16:
- /* # line 127 "awkgram.y" */
- { --inloop; yyval.p = stat4(FOR, yypvt[-7].p, NIL, yypvt[-3].p, yypvt[-0].p); } break;
- case 17:
- /* # line 128 "awkgram.y" */
- {inloop++;} break;
- case 18:
- /* # line 129 "awkgram.y" */
- { --inloop; yyval.p = stat3(IN, yypvt[-5].p, makearr(yypvt[-3].p), yypvt[-0].p); } break;
- case 19:
- /* # line 133 "awkgram.y" */
- { setfname(yypvt[-0].cp); } break;
- case 20:
- /* # line 134 "awkgram.y" */
- { setfname(yypvt[-0].cp); } break;
- case 21:
- /* # line 138 "awkgram.y" */
- { yyval.p = notnull(yypvt[-1].p); } break;
- case 26:
- /* # line 150 "awkgram.y" */
- { yyval.i = 0; } break;
- case 28:
- /* # line 155 "awkgram.y" */
- { yyval.i = 0; } break;
- case 30:
- /* # line 161 "awkgram.y" */
- { yyval.p = 0; } break;
- case 32:
- /* # line 166 "awkgram.y" */
- { yyval.p = 0; } break;
- case 33:
- /* # line 167 "awkgram.y" */
- { yyval.p = yypvt[-1].p; } break;
- case 34:
- /* # line 171 "awkgram.y" */
- { yyval.p = notnull(yypvt[-0].p); } break;
- case 35:
- /* # line 175 "awkgram.y" */
- { yyval.p = stat2(PASTAT, yypvt[-0].p, stat2(PRINT, rectonode(), NIL)); } break;
- case 36:
- /* # line 176 "awkgram.y" */
- { yyval.p = stat2(PASTAT, yypvt[-3].p, yypvt[-1].p); } break;
- case 37:
- /* # line 177 "awkgram.y" */
- { yyval.p = pa2stat(yypvt[-2].p, yypvt[-0].p, stat2(PRINT, rectonode(), NIL)); } break;
- case 38:
- /* # line 178 "awkgram.y" */
- { yyval.p = pa2stat(yypvt[-5].p, yypvt[-3].p, yypvt[-1].p); } break;
- case 39:
- /* # line 179 "awkgram.y" */
- { yyval.p = stat2(PASTAT, NIL, yypvt[-1].p); } break;
- case 40:
- /* # line 181 "awkgram.y" */
- { beginloc = linkum(beginloc, yypvt[-1].p); yyval.p = 0; } break;
- case 41:
- /* # line 183 "awkgram.y" */
- { endloc = linkum(endloc, yypvt[-1].p); yyval.p = 0; } break;
- case 42:
- /* # line 184 "awkgram.y" */
- {infunc++;} break;
- case 43:
- /* # line 185 "awkgram.y" */
- { infunc--; curfname=0; defn((Cell *)yypvt[-7].p, yypvt[-5].p, yypvt[-1].p); yyval.p = 0; } break;
- case 45:
- /* # line 190 "awkgram.y" */
- { yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
- case 47:
- /* # line 195 "awkgram.y" */
- { yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
- case 48:
- /* # line 199 "awkgram.y" */
- { yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
- case 49:
- /* # line 201 "awkgram.y" */
- { yyval.p = op3(CONDEXPR, notnull(yypvt[-4].p), yypvt[-2].p, yypvt[-0].p); } break;
- case 50:
- /* # line 203 "awkgram.y" */
- { yyval.p = op2(BOR, notnull(yypvt[-2].p), notnull(yypvt[-0].p)); } break;
- case 51:
- /* # line 205 "awkgram.y" */
- { yyval.p = op2(AND, notnull(yypvt[-2].p), notnull(yypvt[-0].p)); } break;
- case 52:
- /* # line 206 "awkgram.y" */
- { yyval.p = op3(yypvt[-1].i, NIL, yypvt[-2].p, (Node*)makedfa(yypvt[-0].s, 0)); } break;
- case 53:
- /* # line 208 "awkgram.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 212 "awkgram.y" */
- { yyval.p = op2(INTEST, yypvt[-2].p, makearr(yypvt[-0].p)); } break;
- case 55:
- /* # line 213 "awkgram.y" */
- { yyval.p = op2(INTEST, yypvt[-3].p, makearr(yypvt[-0].p)); } break;
- case 56:
- /* # line 214 "awkgram.y" */
- { yyval.p = op2(CAT, yypvt[-1].p, yypvt[-0].p); } break;
- case 59:
- /* # line 220 "awkgram.y" */
- { yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
- case 60:
- /* # line 222 "awkgram.y" */
- { yyval.p = op3(CONDEXPR, notnull(yypvt[-4].p), yypvt[-2].p, yypvt[-0].p); } break;
- case 61:
- /* # line 224 "awkgram.y" */
- { yyval.p = op2(BOR, notnull(yypvt[-2].p), notnull(yypvt[-0].p)); } break;
- case 62:
- /* # line 226 "awkgram.y" */
- { yyval.p = op2(AND, notnull(yypvt[-2].p), notnull(yypvt[-0].p)); } break;
- case 63:
- /* # line 227 "awkgram.y" */
- { yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
- case 64:
- /* # line 228 "awkgram.y" */
- { yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
- case 65:
- /* # line 229 "awkgram.y" */
- { yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
- case 66:
- /* # line 230 "awkgram.y" */
- { yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
- case 67:
- /* # line 231 "awkgram.y" */
- { yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
- case 68:
- /* # line 232 "awkgram.y" */
- { yyval.p = op2(yypvt[-1].i, yypvt[-2].p, yypvt[-0].p); } break;
- case 69:
- /* # line 233 "awkgram.y" */
- { yyval.p = op3(yypvt[-1].i, NIL, yypvt[-2].p, (Node*)makedfa(yypvt[-0].s, 0)); } break;
- case 70:
- /* # line 235 "awkgram.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 239 "awkgram.y" */
- { yyval.p = op2(INTEST, yypvt[-2].p, makearr(yypvt[-0].p)); } break;
- case 72:
- /* # line 240 "awkgram.y" */
- { yyval.p = op2(INTEST, yypvt[-3].p, makearr(yypvt[-0].p)); } break;
- case 73:
- /* # line 241 "awkgram.y" */
- {
- if (safe) ERROR "cmd | getline is unsafe" SYNTAX;
- else yyval.p = op3(GETLINE, yypvt[-0].p, (Node*)yypvt[-2].i, yypvt[-3].p); } break;
- case 74:
- /* # line 244 "awkgram.y" */
- {
- if (safe) ERROR "cmd | getline is unsafe" SYNTAX;
- else yyval.p = op3(GETLINE, (Node*)0, (Node*)yypvt[-1].i, yypvt[-2].p); } break;
- case 75:
- /* # line 247 "awkgram.y" */
- { yyval.p = op2(CAT, yypvt[-1].p, yypvt[-0].p); } break;
- case 78:
- /* # line 253 "awkgram.y" */
- { yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
- case 79:
- /* # line 254 "awkgram.y" */
- { yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
- case 81:
- /* # line 259 "awkgram.y" */
- { yyval.p = linkum(yypvt[-2].p, yypvt[-0].p); } break;
- case 82:
- /* # line 263 "awkgram.y" */
- { yyval.p = rectonode(); } break;
- case 84:
- /* # line 265 "awkgram.y" */
- { yyval.p = yypvt[-1].p; } break;
- case 93:
- /* # line 282 "awkgram.y" */
- { yyval.p = op3(MATCH, NIL, rectonode(), (Node*)makedfa(yypvt[-0].s, 0)); } break;
- case 94:
- /* # line 283 "awkgram.y" */
- { yyval.p = op1(NOT, notnull(yypvt[-0].p)); } break;
- case 95:
- /* # line 287 "awkgram.y" */
- {startreg();} break;
- case 96:
- /* # line 287 "awkgram.y" */
- { yyval.s = yypvt[-1].s; } break;
- case 99:
- /* # line 295 "awkgram.y" */
- {
- if (safe) ERROR "print | is unsafe" SYNTAX;
- else yyval.p = stat3(yypvt[-3].i, yypvt[-2].p, (Node *) yypvt[-1].i, yypvt[-0].p); } break;
- case 100:
- /* # line 298 "awkgram.y" */
- {
- if (safe) ERROR "print >> is unsafe" SYNTAX;
- else yyval.p = stat3(yypvt[-3].i, yypvt[-2].p, (Node *) yypvt[-1].i, yypvt[-0].p); } break;
- case 101:
- /* # line 301 "awkgram.y" */
- {
- if (safe) ERROR "print > is unsafe" SYNTAX;
- else yyval.p = stat3(yypvt[-3].i, yypvt[-2].p, (Node *) yypvt[-1].i, yypvt[-0].p); } break;
- case 102:
- /* # line 304 "awkgram.y" */
- { yyval.p = stat3(yypvt[-1].i, yypvt[-0].p, NIL, NIL); } break;
- case 103:
- /* # line 305 "awkgram.y" */
- { yyval.p = stat2(DELETE, makearr(yypvt[-3].p), yypvt[-1].p); } break;
- case 104:
- /* # line 306 "awkgram.y" */
- { yyval.p = stat2(DELETE, makearr(yypvt[-0].p), 0); } break;
- case 105:
- /* # line 307 "awkgram.y" */
- { yyval.p = exptostat(yypvt[-0].p); } break;
- case 106:
- /* # line 308 "awkgram.y" */
- { yyclearin; ERROR "illegal statement" SYNTAX; } break;
- case 109:
- /* # line 317 "awkgram.y" */
- { if (!inloop) ERROR "break illegal outside of loops" SYNTAX;
- yyval.p = stat1(BREAK, NIL); } break;
- case 110:
- /* # line 319 "awkgram.y" */
- { yyval.p = stat1(CLOSE, yypvt[-1].p); } break;
- case 111:
- /* # line 320 "awkgram.y" */
- { if (!inloop) ERROR "continue illegal outside of loops" SYNTAX;
- yyval.p = stat1(CONTINUE, NIL); } break;
- case 112:
- /* # line 322 "awkgram.y" */
- {inloop++;} break;
- case 113:
- /* # line 322 "awkgram.y" */
- {--inloop;} break;
- case 114:
- /* # line 323 "awkgram.y" */
- { yyval.p = stat2(DO, yypvt[-6].p, notnull(yypvt[-2].p)); } break;
- case 115:
- /* # line 324 "awkgram.y" */
- { yyval.p = stat1(EXIT, yypvt[-1].p); } break;
- case 116:
- /* # line 325 "awkgram.y" */
- { yyval.p = stat1(EXIT, NIL); } break;
- case 118:
- /* # line 327 "awkgram.y" */
- { yyval.p = stat3(IF, yypvt[-3].p, yypvt[-2].p, yypvt[-0].p); } break;
- case 119:
- /* # line 328 "awkgram.y" */
- { yyval.p = stat3(IF, yypvt[-1].p, yypvt[-0].p, NIL); } break;
- case 120:
- /* # line 329 "awkgram.y" */
- { yyval.p = yypvt[-1].p; } break;
- case 121:
- /* # line 330 "awkgram.y" */
- { if (infunc)
- ERROR "next is illegal inside a function" SYNTAX;
- yyval.p = stat1(NEXT, NIL); } break;
- case 122:
- /* # line 333 "awkgram.y" */
- { if (infunc)
- ERROR "nextfile is illegal inside a function" SYNTAX;
- yyval.p = stat1(NEXTFILE, NIL); } break;
- case 123:
- /* # line 336 "awkgram.y" */
- { yyval.p = stat1(RETURN, yypvt[-1].p); } break;
- case 124:
- /* # line 337 "awkgram.y" */
- { yyval.p = stat1(RETURN, NIL); } break;
- case 126:
- /* # line 339 "awkgram.y" */
- {inloop++;} break;
- case 127:
- /* # line 339 "awkgram.y" */
- { --inloop; yyval.p = stat2(WHILE, yypvt[-2].p, yypvt[-0].p); } break;
- case 128:
- /* # line 340 "awkgram.y" */
- { yyval.p = 0; } break;
- case 130:
- /* # line 345 "awkgram.y" */
- { yyval.p = linkum(yypvt[-1].p, yypvt[-0].p); } break;
- case 133:
- /* # line 353 "awkgram.y" */
- { yyval.p = op2(ADD, yypvt[-2].p, yypvt[-0].p); } break;
- case 134:
- /* # line 354 "awkgram.y" */
- { yyval.p = op2(MINUS, yypvt[-2].p, yypvt[-0].p); } break;
- case 135:
- /* # line 355 "awkgram.y" */
- { yyval.p = op2(MULT, yypvt[-2].p, yypvt[-0].p); } break;
- case 136:
- /* # line 356 "awkgram.y" */
- { yyval.p = op2(DIVIDE, yypvt[-2].p, yypvt[-0].p); } break;
- case 137:
- /* # line 357 "awkgram.y" */
- { yyval.p = op2(MOD, yypvt[-2].p, yypvt[-0].p); } break;
- case 138:
- /* # line 358 "awkgram.y" */
- { yyval.p = op2(POWER, yypvt[-2].p, yypvt[-0].p); } break;
- case 139:
- /* # line 359 "awkgram.y" */
- { yyval.p = op1(UMINUS, yypvt[-0].p); } break;
- case 140:
- /* # line 360 "awkgram.y" */
- { yyval.p = yypvt[-0].p; } break;
- case 141:
- /* # line 361 "awkgram.y" */
- { yyval.p = op1(NOT, notnull(yypvt[-0].p)); } break;
- case 142:
- /* # line 362 "awkgram.y" */
- { yyval.p = op2(BLTIN, (Node *) yypvt[-2].i, rectonode()); } break;
- case 143:
- /* # line 363 "awkgram.y" */
- { yyval.p = op2(BLTIN, (Node *) yypvt[-3].i, yypvt[-1].p); } break;
- case 144:
- /* # line 364 "awkgram.y" */
- { yyval.p = op2(BLTIN, (Node *) yypvt[-0].i, rectonode()); } break;
- case 145:
- /* # line 365 "awkgram.y" */
- { yyval.p = op2(CALL, celltonode(yypvt[-2].cp,CVAR), NIL); } break;
- case 146:
- /* # line 366 "awkgram.y" */
- { yyval.p = op2(CALL, celltonode(yypvt[-3].cp,CVAR), yypvt[-1].p); } break;
- case 147:
- /* # line 367 "awkgram.y" */
- { yyval.p = op1(PREDECR, yypvt[-0].p); } break;
- case 148:
- /* # line 368 "awkgram.y" */
- { yyval.p = op1(PREINCR, yypvt[-0].p); } break;
- case 149:
- /* # line 369 "awkgram.y" */
- { yyval.p = op1(POSTDECR, yypvt[-1].p); } break;
- case 150:
- /* # line 370 "awkgram.y" */
- { yyval.p = op1(POSTINCR, yypvt[-1].p); } break;
- case 151:
- /* # line 371 "awkgram.y" */
- { yyval.p = op3(GETLINE, yypvt[-2].p, (Node *)yypvt[-1].i, yypvt[-0].p); } break;
- case 152:
- /* # line 372 "awkgram.y" */
- { yyval.p = op3(GETLINE, NIL, (Node *)yypvt[-1].i, yypvt[-0].p); } break;
- case 153:
- /* # line 373 "awkgram.y" */
- { yyval.p = op3(GETLINE, yypvt[-0].p, NIL, NIL); } break;
- case 154:
- /* # line 374 "awkgram.y" */
- { yyval.p = op3(GETLINE, NIL, NIL, NIL); } break;
- case 155:
- /* # line 376 "awkgram.y" */
- { yyval.p = op2(INDEX, yypvt[-3].p, yypvt[-1].p); } break;
- case 156:
- /* # line 378 "awkgram.y" */
- { ERROR "index() doesn't permit regular expressions" SYNTAX;
- yyval.p = op2(INDEX, yypvt[-3].p, (Node*)yypvt[-1].s); } break;
- case 157:
- /* # line 380 "awkgram.y" */
- { yyval.p = yypvt[-1].p; } break;
- case 158:
- /* # line 382 "awkgram.y" */
- { yyval.p = op3(MATCHFCN, NIL, yypvt[-3].p, (Node*)makedfa(yypvt[-1].s, 1)); } break;
- case 159:
- /* # line 384 "awkgram.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 160:
- /* # line 388 "awkgram.y" */
- { yyval.p = celltonode(yypvt[-0].cp, CCON); } break;
- case 161:
- /* # line 390 "awkgram.y" */
- { yyval.p = op4(SPLIT, yypvt[-5].p, makearr(yypvt[-3].p), yypvt[-1].p, (Node*)STRING); } break;
- case 162:
- /* # line 392 "awkgram.y" */
- { yyval.p = op4(SPLIT, yypvt[-5].p, makearr(yypvt[-3].p), (Node*)makedfa(yypvt[-1].s, 1), (Node *)REGEXPR); } break;
- case 163:
- /* # line 394 "awkgram.y" */
- { yyval.p = op4(SPLIT, yypvt[-3].p, makearr(yypvt[-1].p), NIL, (Node*)STRING); } break;
- case 164:
- /* # line 395 "awkgram.y" */
- { yyval.p = op1(yypvt[-3].i, yypvt[-1].p); } break;
- case 165:
- /* # line 396 "awkgram.y" */
- { yyval.p = celltonode(yypvt[-0].cp, CCON); } break;
- case 166:
- /* # line 398 "awkgram.y" */
- { yyval.p = op4(yypvt[-5].i, NIL, (Node*)makedfa(yypvt[-3].s, 1), yypvt[-1].p, rectonode()); } break;
- case 167:
- /* # line 400 "awkgram.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 168:
- /* # line 405 "awkgram.y" */
- { yyval.p = op4(yypvt[-7].i, NIL, (Node*)makedfa(yypvt[-5].s, 1), yypvt[-3].p, yypvt[-1].p); } break;
- case 169:
- /* # line 407 "awkgram.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 170:
- /* # line 412 "awkgram.y" */
- { yyval.p = op3(SUBSTR, yypvt[-5].p, yypvt[-3].p, yypvt[-1].p); } break;
- case 171:
- /* # line 414 "awkgram.y" */
- { yyval.p = op3(SUBSTR, yypvt[-3].p, yypvt[-1].p, NIL); } break;
- case 174:
- /* # line 420 "awkgram.y" */
- { yyval.p = op2(ARRAY, makearr(yypvt[-3].p), yypvt[-1].p); } break;
- case 175:
- /* # line 421 "awkgram.y" */
- { yyval.p = op1(INDIRECT, celltonode(yypvt[-0].cp, CVAR)); } break;
- case 176:
- /* # line 422 "awkgram.y" */
- { yyval.p = op1(INDIRECT, yypvt[-0].p); } break;
- case 177:
- /* # line 426 "awkgram.y" */
- { arglist = yyval.p = 0; } break;
- case 178:
- /* # line 427 "awkgram.y" */
- { arglist = yyval.p = celltonode(yypvt[-0].cp,CVAR); } break;
- case 179:
- /* # line 428 "awkgram.y" */
- {
- checkdup(yypvt[-2].p, yypvt[-0].cp);
- arglist = yyval.p = linkum(yypvt[-2].p,celltonode(yypvt[-0].cp,CVAR)); } break;
- case 180:
- /* # line 434 "awkgram.y" */
- { yyval.p = celltonode(yypvt[-0].cp, CVAR); } break;
- case 181:
- /* # line 435 "awkgram.y" */
- { yyval.p = op1(ARG, (Node *) yypvt[-0].i); } break;
- case 182:
- /* # line 436 "awkgram.y" */
- { yyval.p = op1(VARNF, (Node *) yypvt[-0].cp); } break;
- case 183:
- /* # line 441 "awkgram.y" */
- { yyval.p = notnull(yypvt[-1].p); } break;
- }
- goto yystack; /* reset registers in driver code */
- }
- # ifdef __RUNTIME_YYMAXDEPTH
- static int allocate_stacks() {
- /* allocate the yys and yyv stacks */
- yys = (int *) malloc(yymaxdepth * sizeof(int));
- yyv = (YYSTYPE *) malloc(yymaxdepth * sizeof(YYSTYPE));
- if (yys==0 || yyv==0) {
- yyerror( (nl_msg(30004,"unable to allocate space for yacc stacks")) );
- return(1);
- }
- else return(0);
- }
- static void free_stacks() {
- if (yys!=0) free((char *) yys);
- if (yyv!=0) free((char *) yyv);
- }
- # endif /* defined(__RUNTIME_YYMAXDEPTH) */