Blame ce_expr.tab.hh

Packit a4aae4
/* A Bison parser, made by GNU Bison 3.0.4.  */
Packit a4aae4
Packit a4aae4
/* Bison interface for Yacc-like parsers in C
Packit a4aae4
Packit a4aae4
   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
Packit a4aae4
Packit a4aae4
   This program is free software: you can redistribute it and/or modify
Packit a4aae4
   it under the terms of the GNU General Public License as published by
Packit a4aae4
   the Free Software Foundation, either version 3 of the License, or
Packit a4aae4
   (at your option) any later version.
Packit a4aae4
Packit a4aae4
   This program is distributed in the hope that it will be useful,
Packit a4aae4
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit a4aae4
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit a4aae4
   GNU General Public License for more details.
Packit a4aae4
Packit a4aae4
   You should have received a copy of the GNU General Public License
Packit a4aae4
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit a4aae4
Packit a4aae4
/* As a special exception, you may create a larger work that contains
Packit a4aae4
   part or all of the Bison parser skeleton and distribute that work
Packit a4aae4
   under terms of your choice, so long as that work isn't itself a
Packit a4aae4
   parser generator using the skeleton or a modified version thereof
Packit a4aae4
   as a parser skeleton.  Alternatively, if you modify or redistribute
Packit a4aae4
   the parser skeleton itself, you may (at your option) remove this
Packit a4aae4
   special exception, which will cause the skeleton and the resulting
Packit a4aae4
   Bison output files to be licensed under the GNU General Public
Packit a4aae4
   License without this special exception.
Packit a4aae4
Packit a4aae4
   This special exception was added by the Free Software Foundation in
Packit a4aae4
   version 2.2 of Bison.  */
Packit a4aae4
Packit a4aae4
#ifndef YY_CE_EXPR_CE_EXPR_TAB_HH_INCLUDED
Packit a4aae4
# define YY_CE_EXPR_CE_EXPR_TAB_HH_INCLUDED
Packit a4aae4
/* Debug traces.  */
Packit a4aae4
#ifndef YYDEBUG
Packit a4aae4
# define YYDEBUG 1
Packit a4aae4
#endif
Packit a4aae4
#if YYDEBUG
Packit a4aae4
extern int ce_exprdebug;
Packit a4aae4
#endif
Packit a4aae4
/* "%code requires" blocks.  */
Packit a4aae4
#line 41 "ce_expr.yy" /* yacc.c:1915  */
Packit a4aae4
Packit a4aae4
Packit a4aae4
#include "config.h"
Packit a4aae4
Packit a4aae4
#include <cassert>
Packit a4aae4
#include <cstdlib>
Packit a4aae4
#include <cstring>
Packit a4aae4
Packit a4aae4
#include <iostream>
Packit a4aae4
#include <sstream>
Packit a4aae4
#include <iterator>
Packit a4aae4
#include <string>
Packit a4aae4
#include <stack>
Packit a4aae4
Packit a4aae4
//#define DODS_DEBUG
Packit a4aae4
Packit a4aae4
#include "debug.h"
Packit a4aae4
#include "escaping.h"
Packit a4aae4
Packit a4aae4
#include "DDS.h"
Packit a4aae4
#include "ConstraintEvaluator.h"
Packit a4aae4
Packit a4aae4
#include "BaseType.h"
Packit a4aae4
Packit a4aae4
#include "Byte.h"
Packit a4aae4
#include "Int16.h"
Packit a4aae4
#include "UInt16.h"
Packit a4aae4
#include "Int32.h"
Packit a4aae4
#include "UInt32.h"
Packit a4aae4
#include "Float32.h"
Packit a4aae4
#include "Float64.h"
Packit a4aae4
#include "Str.h"
Packit a4aae4
#include "Url.h"
Packit a4aae4
#include "Array.h"
Packit a4aae4
#include "Structure.h"
Packit a4aae4
#include "Sequence.h"
Packit a4aae4
#include "Grid.h"
Packit a4aae4
Packit a4aae4
#include "Error.h"
Packit a4aae4
Packit a4aae4
#include "util.h"
Packit a4aae4
#include "parser.h"
Packit a4aae4
#include "ce_parser.h"
Packit a4aae4
#include "expr.h"
Packit a4aae4
#include "RValue.h"
Packit a4aae4
Packit a4aae4
using std::cerr;
Packit a4aae4
using std::endl;
Packit a4aae4
using namespace libdap ;
Packit a4aae4
Packit a4aae4
#define EVALUATOR(arg) (static_cast<ce_parser_arg*>(arg)->get_eval())
Packit a4aae4
#define DDS(arg) (static_cast<ce_parser_arg*>(arg)->get_dds())
Packit a4aae4
Packit a4aae4
// #define YYPARSE_PARAM arg
Packit a4aae4
Packit a4aae4
int ce_exprlex(void);		/* the scanner; see expr.lex */
Packit a4aae4
Packit a4aae4
void ce_exprerror(ce_parser_arg *arg, const string &s); 
Packit a4aae4
void ce_exprerror(ce_parser_arg *arg, const string &s, const string &s2;;
Packit a4aae4
void no_such_func(ce_parser_arg *arg, const string &name);
Packit a4aae4
void no_such_ident(ce_parser_arg *arg, const string &name, const string &word);
Packit a4aae4
Packit a4aae4
int_list *make_array_index(value &i1, value &i2, value &i3;;
Packit a4aae4
int_list *make_array_index(value &i1, value &i2;;
Packit a4aae4
int_list *make_array_index(value &i1;;
Packit a4aae4
int_list_list *make_array_indices(int_list *index);
Packit a4aae4
int_list_list *append_array_index(int_list_list *indices, int_list *index);
Packit a4aae4
Packit a4aae4
void delete_array_indices(int_list_list *indices);
Packit a4aae4
bool bracket_projection(DDS &table, const char *name, int_list_list *indices);
Packit a4aae4
Packit a4aae4
void process_array_indices(BaseType *variable, int_list_list *indices); 
Packit a4aae4
void process_grid_indices(BaseType *variable, int_list_list *indices); 
Packit a4aae4
void process_sequence_indices(BaseType *variable, int_list_list *indices);
Packit a4aae4
Packit a4aae4
/* Replace these with method calls. jhrg 8/31/06 */
Packit a4aae4
bool is_array_t(BaseType *variable);
Packit a4aae4
bool is_grid_t(BaseType *variable);
Packit a4aae4
bool is_sequence_t(BaseType *variable);
Packit a4aae4
Packit a4aae4
BaseType *make_variable(ConstraintEvaluator &eval, const value &val;;
Packit a4aae4
bool_func get_function(const ConstraintEvaluator &eval, const char *name);
Packit a4aae4
btp_func get_btp_function(const ConstraintEvaluator &eval, const char *name);
Packit a4aae4
proj_func get_proj_function(const ConstraintEvaluator &eval, const char *name);
Packit a4aae4
Packit a4aae4
template<class arg_list, class arg_type>
Packit a4aae4
arg_list make_fast_arg_list(unsigned long vector_size_hint, arg_type arg_value);
Packit a4aae4
Packit a4aae4
template<class arg_list, class arg_type>
Packit a4aae4
arg_list make_fast_arg_list(arg_list int_values, arg_type arg_value);
Packit a4aae4
Packit a4aae4
template<class t, class T>
Packit a4aae4
rvalue *build_constant_array(vector<t> *values, DDS *dds);
Packit a4aae4
Packit a4aae4
Packit a4aae4
#line 140 "ce_expr.tab.hh" /* yacc.c:1915  */
Packit a4aae4
Packit a4aae4
/* Token type.  */
Packit a4aae4
#ifndef YYTOKENTYPE
Packit a4aae4
# define YYTOKENTYPE
Packit a4aae4
  enum yytokentype
Packit a4aae4
  {
Packit a4aae4
    SCAN_STR = 258,
Packit a4aae4
    SCAN_WORD = 259,
Packit a4aae4
    SCAN_EQUAL = 260,
Packit a4aae4
    SCAN_NOT_EQUAL = 261,
Packit a4aae4
    SCAN_GREATER = 262,
Packit a4aae4
    SCAN_GREATER_EQL = 263,
Packit a4aae4
    SCAN_LESS = 264,
Packit a4aae4
    SCAN_LESS_EQL = 265,
Packit a4aae4
    SCAN_REGEXP = 266,
Packit a4aae4
    SCAN_STAR = 267,
Packit a4aae4
    SCAN_HASH_BYTE = 268,
Packit a4aae4
    SCAN_HASH_INT16 = 269,
Packit a4aae4
    SCAN_HASH_UINT16 = 270,
Packit a4aae4
    SCAN_HASH_INT32 = 271,
Packit a4aae4
    SCAN_HASH_UINT32 = 272,
Packit a4aae4
    SCAN_HASH_FLOAT32 = 273,
Packit a4aae4
    SCAN_HASH_FLOAT64 = 274
Packit a4aae4
  };
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
/* Value type.  */
Packit a4aae4
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
Packit a4aae4
Packit a4aae4
union YYSTYPE
Packit a4aae4
{
Packit a4aae4
#line 145 "ce_expr.yy" /* yacc.c:1915  */
Packit a4aae4
Packit a4aae4
    bool boolean;
Packit a4aae4
    int op;
Packit a4aae4
    char id[ID_MAX];
Packit a4aae4
    
Packit a4aae4
    libdap::dods_byte byte_value;
Packit a4aae4
    libdap::dods_int16 int16_value;
Packit a4aae4
    libdap::dods_uint16 uint16_value;
Packit a4aae4
    libdap::dods_int32 int32_value;
Packit a4aae4
    libdap::dods_uint32 uint32_value;
Packit a4aae4
    libdap::dods_float32 float32_value;
Packit a4aae4
    libdap::dods_float64 float64_value;
Packit a4aae4
    
Packit a4aae4
    libdap::byte_arg_list byte_values;
Packit a4aae4
    libdap::int16_arg_list int16_values;
Packit a4aae4
    libdap::uint16_arg_list uint16_values;
Packit a4aae4
    libdap::int32_arg_list int32_values;
Packit a4aae4
    libdap::uint32_arg_list uint32_values;
Packit a4aae4
    libdap::float32_arg_list float32_values;
Packit a4aae4
    libdap::float64_arg_list float64_values;
Packit a4aae4
    
Packit a4aae4
    libdap::value val;               // value is defined in expr.h
Packit a4aae4
Packit a4aae4
    libdap::bool_func b_func;
Packit a4aae4
    libdap::btp_func bt_func;
Packit a4aae4
Packit a4aae4
    libdap::int_list *int_l_ptr;
Packit a4aae4
    libdap::int_list_list *int_ll_ptr;
Packit a4aae4
    
Packit a4aae4
    libdap::rvalue *rval_ptr;
Packit a4aae4
    libdap::rvalue_list *r_val_l_ptr;
Packit a4aae4
Packit a4aae4
#line 205 "ce_expr.tab.hh" /* yacc.c:1915  */
Packit a4aae4
};
Packit a4aae4
Packit a4aae4
typedef union YYSTYPE YYSTYPE;
Packit a4aae4
# define YYSTYPE_IS_TRIVIAL 1
Packit a4aae4
# define YYSTYPE_IS_DECLARED 1
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
Packit a4aae4
extern YYSTYPE ce_exprlval;
Packit a4aae4
Packit a4aae4
int ce_exprparse (ce_parser_arg *arg);
Packit a4aae4
Packit a4aae4
#endif /* !YY_CE_EXPR_CE_EXPR_TAB_HH_INCLUDED  */