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

/* Bison interface for Yacc-like parsers in C
   
      Copyright (C) 1984, 1989-1990, 2000-2012 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.
   
   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

#ifndef YY_YY_Y_TAB_H_INCLUDED
# define YY_YY_Y_TAB_H_INCLUDED
/* Enabling traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int grib_yydebug;
#endif

/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum grib_yytokentype {
     LOWERCASE = 258,
     IF = 259,
     IF_TRANSIENT = 260,
     ELSE = 261,
     END = 262,
     CLOSE = 263,
     UNSIGNED = 264,
     TEMPLATE = 265,
     TEMPLATE_NOFAIL = 266,
     TRIGGER = 267,
     ASCII = 268,
     GROUP = 269,
     NON_ALPHA = 270,
     KSEC1EXPVER = 271,
     LABEL = 272,
     LIST = 273,
     IS_IN_LIST = 274,
     IS_IN_DICT = 275,
     IS_INTEGER = 276,
     TO_INTEGER = 277,
     TO_STRING = 278,
     SEX2DEC = 279,
     WHILE = 280,
     IBMFLOAT = 281,
     SIGNED = 282,
     UINT8 = 283,
     INT8 = 284,
     UINT16 = 285,
     INT16 = 286,
     UINT16_LITTLE_ENDIAN = 287,
     INT16_LITTLE_ENDIAN = 288,
     UINT32 = 289,
     INT32 = 290,
     UINT32_LITTLE_ENDIAN = 291,
     INT32_LITTLE_ENDIAN = 292,
     UINT64 = 293,
     INT64 = 294,
     UINT64_LITTLE_ENDIAN = 295,
     INT64_LITTLE_ENDIAN = 296,
     BLOB = 297,
     BYTE = 298,
     CODETABLE = 299,
     SMART_TABLE = 300,
     DICTIONARY = 301,
     COMPLEX_CODETABLE = 302,
     LOOKUP = 303,
     ALIAS = 304,
     UNALIAS = 305,
     META = 306,
     POS = 307,
     INTCONST = 308,
     TRANS = 309,
     FLAGBIT = 310,
     CONCEPT = 311,
     GETENV = 312,
     HASH_ARRAY = 313,
     CONCEPT_NOFAIL = 314,
     NIL = 315,
     DUMMY = 316,
     MODIFY = 317,
     READ_ONLY = 318,
     STRING_TYPE = 319,
     LONG_TYPE = 320,
     DOUBLE_TYPE = 321,
     NO_COPY = 322,
     DUMP = 323,
     JSON = 324,
     XML = 325,
     NO_FAIL = 326,
     EDITION_SPECIFIC = 327,
     OVERRIDE = 328,
     HIDDEN = 329,
     CAN_BE_MISSING = 330,
     MISSING = 331,
     CONSTRAINT = 332,
     COPY_OK = 333,
     WHEN = 334,
     SET = 335,
     SET_NOFAIL = 336,
     WRITE = 337,
     APPEND = 338,
     PRINT = 339,
     EXPORT = 340,
     REMOVE = 341,
     RENAME = 342,
     SKIP = 343,
     PAD = 344,
     SECTION_PADDING = 345,
     MESSAGE = 346,
     MESSAGE_COPY = 347,
     PADTO = 348,
     PADTOEVEN = 349,
     PADTOMULTIPLE = 350,
     G1_HALF_BYTE = 351,
     G1_MESSAGE_LENGTH = 352,
     G1_SECTION4_LENGTH = 353,
     SECTION_LENGTH = 354,
     LENGTH = 355,
     FLAG = 356,
     ITERATOR = 357,
     NEAREST = 358,
     BOX = 359,
     KSEC = 360,
     ASSERT = 361,
     SUBSTR = 362,
     CASE = 363,
     SWITCH = 364,
     DEFAULT = 365,
     EQ = 366,
     NE = 367,
     GE = 368,
     LE = 369,
     LT = 370,
     GT = 371,
     BIT = 372,
     BITOFF = 373,
     AND = 374,
     OR = 375,
     NOT = 376,
     IS = 377,
     IDENT = 378,
     STRING = 379,
     INTEGER = 380,
     FLOAT = 381
   };
#endif
/* Tokens.  */
#define LOWERCASE 258
#define IF 259
#define IF_TRANSIENT 260
#define ELSE 261
#define END 262
#define CLOSE 263
#define UNSIGNED 264
#define TEMPLATE 265
#define TEMPLATE_NOFAIL 266
#define TRIGGER 267
#define ASCII 268
#define GROUP 269
#define NON_ALPHA 270
#define KSEC1EXPVER 271
#define LABEL 272
#define LIST 273
#define IS_IN_LIST 274
#define IS_IN_DICT 275
#define IS_INTEGER 276
#define TO_INTEGER 277
#define TO_STRING 278
#define SEX2DEC 279
#define WHILE 280
#define IBMFLOAT 281
#define SIGNED 282
#define UINT8 283
#define INT8 284
#define UINT16 285
#define INT16 286
#define UINT16_LITTLE_ENDIAN 287
#define INT16_LITTLE_ENDIAN 288
#define UINT32 289
#define INT32 290
#define UINT32_LITTLE_ENDIAN 291
#define INT32_LITTLE_ENDIAN 292
#define UINT64 293
#define INT64 294
#define UINT64_LITTLE_ENDIAN 295
#define INT64_LITTLE_ENDIAN 296
#define BLOB 297
#define BYTE 298
#define CODETABLE 299
#define SMART_TABLE 300
#define DICTIONARY 301
#define COMPLEX_CODETABLE 302
#define LOOKUP 303
#define ALIAS 304
#define UNALIAS 305
#define META 306
#define POS 307
#define INTCONST 308
#define TRANS 309
#define FLAGBIT 310
#define CONCEPT 311
#define GETENV 312
#define HASH_ARRAY 313
#define CONCEPT_NOFAIL 314
#define NIL 315
#define DUMMY 316
#define MODIFY 317
#define READ_ONLY 318
#define STRING_TYPE 319
#define LONG_TYPE 320
#define DOUBLE_TYPE 321
#define NO_COPY 322
#define DUMP 323
#define JSON 324
#define XML 325
#define NO_FAIL 326
#define EDITION_SPECIFIC 327
#define OVERRIDE 328
#define HIDDEN 329
#define CAN_BE_MISSING 330
#define MISSING 331
#define CONSTRAINT 332
#define COPY_OK 333
#define WHEN 334
#define SET 335
#define SET_NOFAIL 336
#define WRITE 337
#define APPEND 338
#define PRINT 339
#define EXPORT 340
#define REMOVE 341
#define RENAME 342
#define SKIP 343
#define PAD 344
#define SECTION_PADDING 345
#define MESSAGE 346
#define MESSAGE_COPY 347
#define PADTO 348
#define PADTOEVEN 349
#define PADTOMULTIPLE 350
#define G1_HALF_BYTE 351
#define G1_MESSAGE_LENGTH 352
#define G1_SECTION4_LENGTH 353
#define SECTION_LENGTH 354
#define LENGTH 355
#define FLAG 356
#define ITERATOR 357
#define NEAREST 358
#define BOX 359
#define KSEC 360
#define ASSERT 361
#define SUBSTR 362
#define CASE 363
#define SWITCH 364
#define DEFAULT 365
#define EQ 366
#define NE 367
#define GE 368
#define LE 369
#define LT 370
#define GT 371
#define BIT 372
#define BITOFF 373
#define AND 374
#define OR 375
#define NOT 376
#define IS 377
#define IDENT 378
#define STRING 379
#define INTEGER 380
#define FLOAT 381



#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
/* Line 2058 of yacc.c  */
#line 39 "griby.y"

    char                    *str;
    long                    lval;
    double                  dval;
    grib_darray             *dvalue;
    grib_sarray             *svalue;
    grib_iarray             *ivalue;
    grib_action             *act;
    grib_arguments          *explist;
    grib_expression         *exp;
    grib_concept_condition  *concept_condition;
    grib_concept_value      *concept_value;
    grib_hash_array_value      *hash_array_value;
	grib_case               *case_value;
  grib_rule               *rules;
  grib_rule_entry         *rule_entry;


/* Line 2058 of yacc.c  */
#line 328 "y.tab.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define grib_yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif

extern YYSTYPE grib_yylval;

#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int grib_yyparse (void *YYPARSE_PARAM);
#else
int grib_yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int grib_yyparse (void);
#else
int grib_yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */

#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
