/* A Bison parser, made by GNU Bison 2.1.  */

/* Skeleton parser for Yacc-like parsing with Bison,
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     FIRSTTOKEN = 258,
     PROGRAM = 259,
     PASTAT = 260,
     PASTAT2 = 261,
     XBEGIN = 262,
     XEND = 263,
     NL = 264,
     ARRAY = 265,
     MATCH = 266,
     NOTMATCH = 267,
     MATCHOP = 268,
     FINAL = 269,
     DOT = 270,
     ALL = 271,
     CCL = 272,
     NCCL = 273,
     CHAR = 274,
     OR = 275,
     STAR = 276,
     QUEST = 277,
     PLUS = 278,
     EMPTYRE = 279,
     AND = 280,
     BOR = 281,
     APPEND = 282,
     EQ = 283,
     GE = 284,
     GT = 285,
     LE = 286,
     LT = 287,
     NE = 288,
     IN = 289,
     ARG = 290,
     BLTIN = 291,
     BREAK = 292,
     CLOSE = 293,
     CONTINUE = 294,
     DELETE = 295,
     DO = 296,
     EXIT = 297,
     FOR = 298,
     FUNC = 299,
     SUB = 300,
     GSUB = 301,
     IF = 302,
     INDEX = 303,
     LSUBSTR = 304,
     MATCHFCN = 305,
     NEXT = 306,
     NEXTFILE = 307,
     ADD = 308,
     MINUS = 309,
     MULT = 310,
     DIVIDE = 311,
     MOD = 312,
     ASSIGN = 313,
     ASGNOP = 314,
     ADDEQ = 315,
     SUBEQ = 316,
     MULTEQ = 317,
     DIVEQ = 318,
     MODEQ = 319,
     POWEQ = 320,
     PRINT = 321,
     PRINTF = 322,
     SPRINTF = 323,
     ELSE = 324,
     INTEST = 325,
     CONDEXPR = 326,
     POSTINCR = 327,
     PREINCR = 328,
     POSTDECR = 329,
     PREDECR = 330,
     VAR = 331,
     IVAR = 332,
     VARNF = 333,
     CALL = 334,
     NUMBER = 335,
     STRING = 336,
     REGEXPR = 337,
     GETLINE = 338,
     SUBSTR = 339,
     SPLIT = 340,
     RETURN = 341,
     WHILE = 342,
     CAT = 343,
     UMINUS = 344,
     NOT = 345,
     POWER = 346,
     INCR = 347,
     DECR = 348,
     INDIRECT = 349,
     LASTTOKEN = 350
   };
#endif
/* Tokens.  */
#define FIRSTTOKEN 258
#define PROGRAM 259
#define PASTAT 260
#define PASTAT2 261
#define XBEGIN 262
#define XEND 263
#define NL 264
#define ARRAY 265
#define MATCH 266
#define NOTMATCH 267
#define MATCHOP 268
#define FINAL 269
#define DOT 270
#define ALL 271
#define CCL 272
#define NCCL 273
#define CHAR 274
#define OR 275
#define STAR 276
#define QUEST 277
#define PLUS 278
#define EMPTYRE 279
#define AND 280
#define BOR 281
#define APPEND 282
#define EQ 283
#define GE 284
#define GT 285
#define LE 286
#define LT 287
#define NE 288
#define IN 289
#define ARG 290
#define BLTIN 291
#define BREAK 292
#define CLOSE 293
#define CONTINUE 294
#define DELETE 295
#define DO 296
#define EXIT 297
#define FOR 298
#define FUNC 299
#define SUB 300
#define GSUB 301
#define IF 302
#define INDEX 303
#define LSUBSTR 304
#define MATCHFCN 305
#define NEXT 306
#define NEXTFILE 307
#define ADD 308
#define MINUS 309
#define MULT 310
#define DIVIDE 311
#define MOD 312
#define ASSIGN 313
#define ASGNOP 314
#define ADDEQ 315
#define SUBEQ 316
#define MULTEQ 317
#define DIVEQ 318
#define MODEQ 319
#define POWEQ 320
#define PRINT 321
#define PRINTF 322
#define SPRINTF 323
#define ELSE 324
#define INTEST 325
#define CONDEXPR 326
#define POSTINCR 327
#define PREINCR 328
#define POSTDECR 329
#define PREDECR 330
#define VAR 331
#define IVAR 332
#define VARNF 333
#define CALL 334
#define NUMBER 335
#define STRING 336
#define REGEXPR 337
#define GETLINE 338
#define SUBSTR 339
#define SPLIT 340
#define RETURN 341
#define WHILE 342
#define CAT 343
#define UMINUS 344
#define NOT 345
#define POWER 346
#define INCR 347
#define DECR 348
#define INDIRECT 349
#define LASTTOKEN 350




#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 41 "awkgram.y"
typedef union YYSTYPE {
	Node	*p;
	Cell	*cp;
	int	i;
	char	*s;
} YYSTYPE;
/* Line 1403 of yacc.c.  */
#line 235 "y.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif

extern YYSTYPE yylval;



