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

/* Bison interface for Yacc-like parsers in C

   Copyright (C) 1984, 1989-1990, 2000-2013 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_LIBCODA_CODA_EXPR_PARSER_H_INCLUDED
# define YY_YY_LIBCODA_CODA_EXPR_PARSER_H_INCLUDED
/* Debug traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int yydebug;
#endif

/* Token type.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
  enum yytokentype
  {
    INT_VALUE = 258,
    FLOAT_VALUE = 259,
    STRING_VALUE = 260,
    NAME = 261,
    INDEX_VAR = 262,
    LOGICAL_AND = 263,
    LOGICAL_OR = 264,
    NOT = 265,
    GREATER_EQUAL = 266,
    LESS_EQUAL = 267,
    EQUAL = 268,
    NOT_EQUAL = 269,
    AND = 270,
    OR = 271,
    UNARY = 272,
    GOTO_PARENT = 273,
    RAW_PREFIX = 274,
    ASCIILINE = 275,
    DO = 276,
    FOR = 277,
    STEP = 278,
    TO = 279,
    NAN_VALUE = 280,
    INF_VALUE = 281,
    TRUE_VALUE = 282,
    FALSE_VALUE = 283,
    FUNC_ABS = 284,
    FUNC_ADD = 285,
    FUNC_ALL = 286,
    FUNC_AT = 287,
    FUNC_BITOFFSET = 288,
    FUNC_BITSIZE = 289,
    FUNC_BOOL = 290,
    FUNC_BYTES = 291,
    FUNC_BYTEOFFSET = 292,
    FUNC_BYTESIZE = 293,
    FUNC_CEIL = 294,
    FUNC_COUNT = 295,
    FUNC_DIM = 296,
    FUNC_EXISTS = 297,
    FUNC_FILENAME = 298,
    FUNC_FILESIZE = 299,
    FUNC_FLOAT = 300,
    FUNC_FLOOR = 301,
    FUNC_GOTO = 302,
    FUNC_IF = 303,
    FUNC_INDEX = 304,
    FUNC_INT = 305,
    FUNC_ISNAN = 306,
    FUNC_ISINF = 307,
    FUNC_ISPLUSINF = 308,
    FUNC_ISMININF = 309,
    FUNC_LENGTH = 310,
    FUNC_LTRIM = 311,
    FUNC_NUMDIMS = 312,
    FUNC_NUMELEMENTS = 313,
    FUNC_MAX = 314,
    FUNC_MIN = 315,
    FUNC_PRODUCTCLASS = 316,
    FUNC_PRODUCTFORMAT = 317,
    FUNC_PRODUCTTYPE = 318,
    FUNC_PRODUCTVERSION = 319,
    FUNC_REGEX = 320,
    FUNC_ROUND = 321,
    FUNC_RTRIM = 322,
    FUNC_STR = 323,
    FUNC_STRTIME = 324,
    FUNC_SUBSTR = 325,
    FUNC_TIME = 326,
    FUNC_TRIM = 327,
    FUNC_UNBOUNDINDEX = 328,
    FUNC_WITH = 329
  };
#endif
/* Tokens.  */
#define INT_VALUE 258
#define FLOAT_VALUE 259
#define STRING_VALUE 260
#define NAME 261
#define INDEX_VAR 262
#define LOGICAL_AND 263
#define LOGICAL_OR 264
#define NOT 265
#define GREATER_EQUAL 266
#define LESS_EQUAL 267
#define EQUAL 268
#define NOT_EQUAL 269
#define AND 270
#define OR 271
#define UNARY 272
#define GOTO_PARENT 273
#define RAW_PREFIX 274
#define ASCIILINE 275
#define DO 276
#define FOR 277
#define STEP 278
#define TO 279
#define NAN_VALUE 280
#define INF_VALUE 281
#define TRUE_VALUE 282
#define FALSE_VALUE 283
#define FUNC_ABS 284
#define FUNC_ADD 285
#define FUNC_ALL 286
#define FUNC_AT 287
#define FUNC_BITOFFSET 288
#define FUNC_BITSIZE 289
#define FUNC_BOOL 290
#define FUNC_BYTES 291
#define FUNC_BYTEOFFSET 292
#define FUNC_BYTESIZE 293
#define FUNC_CEIL 294
#define FUNC_COUNT 295
#define FUNC_DIM 296
#define FUNC_EXISTS 297
#define FUNC_FILENAME 298
#define FUNC_FILESIZE 299
#define FUNC_FLOAT 300
#define FUNC_FLOOR 301
#define FUNC_GOTO 302
#define FUNC_IF 303
#define FUNC_INDEX 304
#define FUNC_INT 305
#define FUNC_ISNAN 306
#define FUNC_ISINF 307
#define FUNC_ISPLUSINF 308
#define FUNC_ISMININF 309
#define FUNC_LENGTH 310
#define FUNC_LTRIM 311
#define FUNC_NUMDIMS 312
#define FUNC_NUMELEMENTS 313
#define FUNC_MAX 314
#define FUNC_MIN 315
#define FUNC_PRODUCTCLASS 316
#define FUNC_PRODUCTFORMAT 317
#define FUNC_PRODUCTTYPE 318
#define FUNC_PRODUCTVERSION 319
#define FUNC_REGEX 320
#define FUNC_ROUND 321
#define FUNC_RTRIM 322
#define FUNC_STR 323
#define FUNC_STRTIME 324
#define FUNC_SUBSTR 325
#define FUNC_TIME 326
#define FUNC_TRIM 327
#define FUNC_UNBOUNDINDEX 328
#define FUNC_WITH 329

/* Value type.  */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{
#line 79 "../coda/libcoda/coda-expr-parser.y" /* yacc.c:1909  */

    char *stringval;
    struct coda_expression_struct *expr;

#line 207 "libcoda/coda-expr-parser.h" /* yacc.c:1909  */
};
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif



int yyparse (void *scanner);

#endif /* !YY_YY_LIBCODA_CODA_EXPR_PARSER_H_INCLUDED  */
