|
Packit |
a4aae4 |
// A Bison parser, made by GNU Bison 3.0.4.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Skeleton implementation for Bison LALR(1) parsers in C++
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Copyright (C) 2002-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 |
|
|
Packit |
a4aae4 |
// First part of user declarations.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#line 37 "d4_function_parser.tab.cc" // lalr1.cc:404
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# ifndef YY_NULLPTR
|
|
Packit |
a4aae4 |
# if defined __cplusplus && 201103L <= __cplusplus
|
|
Packit |
a4aae4 |
# define YY_NULLPTR nullptr
|
|
Packit |
a4aae4 |
# else
|
|
Packit |
a4aae4 |
# define YY_NULLPTR 0
|
|
Packit |
a4aae4 |
# endif
|
|
Packit |
a4aae4 |
# endif
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#include "d4_function_parser.tab.hh"
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// User implementation prologue.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#line 51 "d4_function_parser.tab.cc" // lalr1.cc:412
|
|
Packit |
a4aae4 |
// Unqualified %code blocks.
|
|
Packit |
a4aae4 |
#line 77 "d4_function_parser.yy" // lalr1.cc:413
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#include "BaseType.h"
|
|
Packit |
a4aae4 |
#include "DMR.h"
|
|
Packit |
a4aae4 |
#include "D4RValue.h"
|
|
Packit |
a4aae4 |
#include "ServerFunctionsList.h"
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#include "parser-util.h"
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/* include for all driver functions */
|
|
Packit |
a4aae4 |
#include "D4FunctionEvaluator.h"
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
using namespace libdap ;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/* this is silly, but I can't figure out a way around it */
|
|
Packit |
a4aae4 |
static int yylex(libdap::D4FunctionParser::semantic_type *yylval,
|
|
Packit |
a4aae4 |
libdap::location *loc,
|
|
Packit |
a4aae4 |
libdap::D4FunctionScanner &scanner,
|
|
Packit |
a4aae4 |
libdap::D4FunctionEvaluator &evaluator);
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#line 73 "d4_function_parser.tab.cc" // lalr1.cc:413
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#ifndef YY_
|
|
Packit |
a4aae4 |
# if defined YYENABLE_NLS && YYENABLE_NLS
|
|
Packit |
a4aae4 |
# if ENABLE_NLS
|
|
Packit |
a4aae4 |
# include <libintl.h> // FIXME: INFRINGES ON USER NAME SPACE.
|
|
Packit |
a4aae4 |
# define YY_(msgid) dgettext ("bison-runtime", msgid)
|
|
Packit |
a4aae4 |
# endif
|
|
Packit |
a4aae4 |
# endif
|
|
Packit |
a4aae4 |
# ifndef YY_
|
|
Packit |
a4aae4 |
# define YY_(msgid) msgid
|
|
Packit |
a4aae4 |
# endif
|
|
Packit |
a4aae4 |
#endif
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
|
|
Packit |
a4aae4 |
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
|
|
Packit |
a4aae4 |
If N is 0, then set CURRENT to the empty location which ends
|
|
Packit |
a4aae4 |
the previous symbol: RHS[0] (always defined). */
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# ifndef YYLLOC_DEFAULT
|
|
Packit |
a4aae4 |
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
|
Packit |
a4aae4 |
do \
|
|
Packit |
a4aae4 |
if (N) \
|
|
Packit |
a4aae4 |
{ \
|
|
Packit |
a4aae4 |
(Current).begin = YYRHSLOC (Rhs, 1).begin; \
|
|
Packit |
a4aae4 |
(Current).end = YYRHSLOC (Rhs, N).end; \
|
|
Packit |
a4aae4 |
} \
|
|
Packit |
a4aae4 |
else \
|
|
Packit |
a4aae4 |
{ \
|
|
Packit |
a4aae4 |
(Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
|
|
Packit |
a4aae4 |
} \
|
|
Packit |
a4aae4 |
while (/*CONSTCOND*/ false)
|
|
Packit |
a4aae4 |
# endif
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Suppress unused-variable warnings by "using" E.
|
|
Packit |
a4aae4 |
#define YYUSE(E) ((void) (E))
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Enable debugging if requested.
|
|
Packit |
a4aae4 |
#if YYDEBUG
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// A pseudo ostream that takes yydebug_ into account.
|
|
Packit |
a4aae4 |
# define YYCDEBUG if (yydebug_) (*yycdebug_)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# define YY_SYMBOL_PRINT(Title, Symbol) \
|
|
Packit |
a4aae4 |
do { \
|
|
Packit |
a4aae4 |
if (yydebug_) \
|
|
Packit |
a4aae4 |
{ \
|
|
Packit |
a4aae4 |
*yycdebug_ << Title << ' '; \
|
|
Packit |
a4aae4 |
yy_print_ (*yycdebug_, Symbol); \
|
|
Packit |
a4aae4 |
*yycdebug_ << std::endl; \
|
|
Packit |
a4aae4 |
} \
|
|
Packit |
a4aae4 |
} while (false)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# define YY_REDUCE_PRINT(Rule) \
|
|
Packit |
a4aae4 |
do { \
|
|
Packit |
a4aae4 |
if (yydebug_) \
|
|
Packit |
a4aae4 |
yy_reduce_print_ (Rule); \
|
|
Packit |
a4aae4 |
} while (false)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# define YY_STACK_PRINT() \
|
|
Packit |
a4aae4 |
do { \
|
|
Packit |
a4aae4 |
if (yydebug_) \
|
|
Packit |
a4aae4 |
yystack_print_ (); \
|
|
Packit |
a4aae4 |
} while (false)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#else // !YYDEBUG
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
# define YYCDEBUG if (false) std::cerr
|
|
Packit |
a4aae4 |
# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol)
|
|
Packit |
a4aae4 |
# define YY_REDUCE_PRINT(Rule) static_cast<void>(0)
|
|
Packit |
a4aae4 |
# define YY_STACK_PRINT() static_cast<void>(0)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#endif // !YYDEBUG
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#define yyerrok (yyerrstatus_ = 0)
|
|
Packit |
a4aae4 |
#define yyclearin (yyla.clear ())
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#define YYACCEPT goto yyacceptlab
|
|
Packit |
a4aae4 |
#define YYABORT goto yyabortlab
|
|
Packit |
a4aae4 |
#define YYERROR goto yyerrorlab
|
|
Packit |
a4aae4 |
#define YYRECOVERING() (!!yyerrstatus_)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#line 34 "d4_function_parser.yy" // lalr1.cc:479
|
|
Packit |
a4aae4 |
namespace libdap {
|
|
Packit |
a4aae4 |
#line 159 "d4_function_parser.tab.cc" // lalr1.cc:479
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/* Return YYSTR after stripping away unnecessary quotes and
|
|
Packit |
a4aae4 |
backslashes, so that it's suitable for yyerror. The heuristic is
|
|
Packit |
a4aae4 |
that double-quoting is unnecessary unless the string contains an
|
|
Packit |
a4aae4 |
apostrophe, a comma, or backslash (other than backslash-backslash).
|
|
Packit |
a4aae4 |
YYSTR is taken from yytname. */
|
|
Packit |
a4aae4 |
std::string
|
|
Packit |
a4aae4 |
D4FunctionParser::yytnamerr_ (const char *yystr)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
if (*yystr == '"')
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
std::string yyr = "";
|
|
Packit |
a4aae4 |
char const *yyp = yystr;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
for (;;)
|
|
Packit |
a4aae4 |
switch (*++yyp)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
case '\'':
|
|
Packit |
a4aae4 |
case ',':
|
|
Packit |
a4aae4 |
goto do_not_strip_quotes;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case '\\':
|
|
Packit |
a4aae4 |
if (*++yyp != '\\')
|
|
Packit |
a4aae4 |
goto do_not_strip_quotes;
|
|
Packit |
a4aae4 |
// Fall through.
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
yyr += *yyp;
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case '"':
|
|
Packit |
a4aae4 |
return yyr;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
do_not_strip_quotes: ;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
return yystr;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/// Build a parser object.
|
|
Packit |
a4aae4 |
D4FunctionParser::D4FunctionParser (D4FunctionScanner &scanner_yyarg, D4FunctionEvaluator &evaluator_yyarg)
|
|
Packit |
a4aae4 |
:
|
|
Packit |
a4aae4 |
#if YYDEBUG
|
|
Packit |
a4aae4 |
yydebug_ (false),
|
|
Packit |
a4aae4 |
yycdebug_ (&std::cerr),
|
|
Packit |
a4aae4 |
#endif
|
|
Packit |
a4aae4 |
scanner (scanner_yyarg),
|
|
Packit |
a4aae4 |
evaluator (evaluator_yyarg)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::~D4FunctionParser ()
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/*---------------.
|
|
Packit |
a4aae4 |
| Symbol types. |
|
|
Packit |
a4aae4 |
`---------------*/
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::syntax_error::syntax_error (const location_type& l, const std::string& m)
|
|
Packit |
a4aae4 |
: std::runtime_error (m)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// basic_symbol.
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol ()
|
|
Packit |
a4aae4 |
: value ()
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
|
|
Packit |
a4aae4 |
: Base (other)
|
|
Packit |
a4aae4 |
, value ()
|
|
Packit |
a4aae4 |
, location (other.location)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
switch (other.type_get ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
case 7: // "function name"
|
|
Packit |
a4aae4 |
case 44: // fname
|
|
Packit |
a4aae4 |
value.copy< D4Function > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 5: // "argument"
|
|
Packit |
a4aae4 |
case 6: // "function"
|
|
Packit |
a4aae4 |
case 8: // "variable or constant"
|
|
Packit |
a4aae4 |
case 9: // "array constant"
|
|
Packit |
a4aae4 |
case 43: // function
|
|
Packit |
a4aae4 |
case 46: // arg
|
|
Packit |
a4aae4 |
case 47: // variable_or_constant
|
|
Packit |
a4aae4 |
case 48: // array_constant
|
|
Packit |
a4aae4 |
value.copy< D4RValue* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 3: // "functions"
|
|
Packit |
a4aae4 |
case 4: // "arguments"
|
|
Packit |
a4aae4 |
case 42: // functions
|
|
Packit |
a4aae4 |
case 45: // args
|
|
Packit |
a4aae4 |
value.copy< D4RValueList* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 20: // "word"
|
|
Packit |
a4aae4 |
case 21: // "string"
|
|
Packit |
a4aae4 |
case 60: // id
|
|
Packit |
a4aae4 |
case 61: // group
|
|
Packit |
a4aae4 |
case 62: // path
|
|
Packit |
a4aae4 |
case 63: // name
|
|
Packit |
a4aae4 |
value.copy< std::string > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 10: // "fast byte arg list"
|
|
Packit |
a4aae4 |
case 50: // fast_byte_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_byte>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 18: // "fast float32 arg list"
|
|
Packit |
a4aae4 |
case 58: // fast_float32_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_float32>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 19: // "fast float64 arg list"
|
|
Packit |
a4aae4 |
case 59: // fast_float64_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_float64>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 13: // "fast int16 arg list"
|
|
Packit |
a4aae4 |
case 53: // fast_int16_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int16>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 15: // "fast int32 arg list"
|
|
Packit |
a4aae4 |
case 55: // fast_int32_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int32>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 17: // "fast int64 arg list"
|
|
Packit |
a4aae4 |
case 57: // fast_int64_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int64>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 11: // "fast int8 arg list"
|
|
Packit |
a4aae4 |
case 51: // fast_int8_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int8>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 12: // "fast uint16 arg list"
|
|
Packit |
a4aae4 |
case 52: // fast_uint16_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_uint16>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 14: // "fast uint32 arg list"
|
|
Packit |
a4aae4 |
case 54: // fast_uint32_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_uint32>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 16: // "fast uint64 arg list"
|
|
Packit |
a4aae4 |
case 56: // fast_uint64_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_uint64>* > (other.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value ()
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
(void) v;
|
|
Packit |
a4aae4 |
switch (this->type_get ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
case 7: // "function name"
|
|
Packit |
a4aae4 |
case 44: // fname
|
|
Packit |
a4aae4 |
value.copy< D4Function > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 5: // "argument"
|
|
Packit |
a4aae4 |
case 6: // "function"
|
|
Packit |
a4aae4 |
case 8: // "variable or constant"
|
|
Packit |
a4aae4 |
case 9: // "array constant"
|
|
Packit |
a4aae4 |
case 43: // function
|
|
Packit |
a4aae4 |
case 46: // arg
|
|
Packit |
a4aae4 |
case 47: // variable_or_constant
|
|
Packit |
a4aae4 |
case 48: // array_constant
|
|
Packit |
a4aae4 |
value.copy< D4RValue* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 3: // "functions"
|
|
Packit |
a4aae4 |
case 4: // "arguments"
|
|
Packit |
a4aae4 |
case 42: // functions
|
|
Packit |
a4aae4 |
case 45: // args
|
|
Packit |
a4aae4 |
value.copy< D4RValueList* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 20: // "word"
|
|
Packit |
a4aae4 |
case 21: // "string"
|
|
Packit |
a4aae4 |
case 60: // id
|
|
Packit |
a4aae4 |
case 61: // group
|
|
Packit |
a4aae4 |
case 62: // path
|
|
Packit |
a4aae4 |
case 63: // name
|
|
Packit |
a4aae4 |
value.copy< std::string > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 10: // "fast byte arg list"
|
|
Packit |
a4aae4 |
case 50: // fast_byte_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_byte>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 18: // "fast float32 arg list"
|
|
Packit |
a4aae4 |
case 58: // fast_float32_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_float32>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 19: // "fast float64 arg list"
|
|
Packit |
a4aae4 |
case 59: // fast_float64_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_float64>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 13: // "fast int16 arg list"
|
|
Packit |
a4aae4 |
case 53: // fast_int16_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int16>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 15: // "fast int32 arg list"
|
|
Packit |
a4aae4 |
case 55: // fast_int32_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int32>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 17: // "fast int64 arg list"
|
|
Packit |
a4aae4 |
case 57: // fast_int64_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int64>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 11: // "fast int8 arg list"
|
|
Packit |
a4aae4 |
case 51: // fast_int8_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int8>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 12: // "fast uint16 arg list"
|
|
Packit |
a4aae4 |
case 52: // fast_uint16_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_uint16>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 14: // "fast uint32 arg list"
|
|
Packit |
a4aae4 |
case 54: // fast_uint32_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_uint32>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 16: // "fast uint64 arg list"
|
|
Packit |
a4aae4 |
case 56: // fast_uint64_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_uint64>* > (v);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Implementation of basic_symbol constructor for each type.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value ()
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const D4Function v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const D4RValue* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const D4RValueList* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_byte>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_float32>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_float64>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_int16>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_int32>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_int64>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_int8>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_uint16>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_uint32>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::vector<dods_uint64>* v, const location_type& l)
|
|
Packit |
a4aae4 |
: Base (t)
|
|
Packit |
a4aae4 |
, value (v)
|
|
Packit |
a4aae4 |
, location (l)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::~basic_symbol ()
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
clear ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::clear ()
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
// User destructor.
|
|
Packit |
a4aae4 |
symbol_number_type yytype = this->type_get ();
|
|
Packit |
a4aae4 |
basic_symbol<Base>& yysym = *this;
|
|
Packit |
a4aae4 |
(void) yysym;
|
|
Packit |
a4aae4 |
switch (yytype)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Type destructor.
|
|
Packit |
a4aae4 |
switch (yytype)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
case 7: // "function name"
|
|
Packit |
a4aae4 |
case 44: // fname
|
|
Packit |
a4aae4 |
value.template destroy< D4Function > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 5: // "argument"
|
|
Packit |
a4aae4 |
case 6: // "function"
|
|
Packit |
a4aae4 |
case 8: // "variable or constant"
|
|
Packit |
a4aae4 |
case 9: // "array constant"
|
|
Packit |
a4aae4 |
case 43: // function
|
|
Packit |
a4aae4 |
case 46: // arg
|
|
Packit |
a4aae4 |
case 47: // variable_or_constant
|
|
Packit |
a4aae4 |
case 48: // array_constant
|
|
Packit |
a4aae4 |
value.template destroy< D4RValue* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 3: // "functions"
|
|
Packit |
a4aae4 |
case 4: // "arguments"
|
|
Packit |
a4aae4 |
case 42: // functions
|
|
Packit |
a4aae4 |
case 45: // args
|
|
Packit |
a4aae4 |
value.template destroy< D4RValueList* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 20: // "word"
|
|
Packit |
a4aae4 |
case 21: // "string"
|
|
Packit |
a4aae4 |
case 60: // id
|
|
Packit |
a4aae4 |
case 61: // group
|
|
Packit |
a4aae4 |
case 62: // path
|
|
Packit |
a4aae4 |
case 63: // name
|
|
Packit |
a4aae4 |
value.template destroy< std::string > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 10: // "fast byte arg list"
|
|
Packit |
a4aae4 |
case 50: // fast_byte_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_byte>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 18: // "fast float32 arg list"
|
|
Packit |
a4aae4 |
case 58: // fast_float32_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_float32>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 19: // "fast float64 arg list"
|
|
Packit |
a4aae4 |
case 59: // fast_float64_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_float64>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 13: // "fast int16 arg list"
|
|
Packit |
a4aae4 |
case 53: // fast_int16_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_int16>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 15: // "fast int32 arg list"
|
|
Packit |
a4aae4 |
case 55: // fast_int32_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_int32>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 17: // "fast int64 arg list"
|
|
Packit |
a4aae4 |
case 57: // fast_int64_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_int64>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 11: // "fast int8 arg list"
|
|
Packit |
a4aae4 |
case 51: // fast_int8_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_int8>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 12: // "fast uint16 arg list"
|
|
Packit |
a4aae4 |
case 52: // fast_uint16_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_uint16>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 14: // "fast uint32 arg list"
|
|
Packit |
a4aae4 |
case 54: // fast_uint32_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_uint32>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 16: // "fast uint64 arg list"
|
|
Packit |
a4aae4 |
case 56: // fast_uint64_arg_list
|
|
Packit |
a4aae4 |
value.template destroy< std::vector<dods_uint64>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Base::clear ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
bool
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::empty () const
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return Base::type_get () == empty_symbol;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::basic_symbol<Base>::move (basic_symbol& s)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
super_type::move(s);
|
|
Packit |
a4aae4 |
switch (this->type_get ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
case 7: // "function name"
|
|
Packit |
a4aae4 |
case 44: // fname
|
|
Packit |
a4aae4 |
value.move< D4Function > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 5: // "argument"
|
|
Packit |
a4aae4 |
case 6: // "function"
|
|
Packit |
a4aae4 |
case 8: // "variable or constant"
|
|
Packit |
a4aae4 |
case 9: // "array constant"
|
|
Packit |
a4aae4 |
case 43: // function
|
|
Packit |
a4aae4 |
case 46: // arg
|
|
Packit |
a4aae4 |
case 47: // variable_or_constant
|
|
Packit |
a4aae4 |
case 48: // array_constant
|
|
Packit |
a4aae4 |
value.move< D4RValue* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 3: // "functions"
|
|
Packit |
a4aae4 |
case 4: // "arguments"
|
|
Packit |
a4aae4 |
case 42: // functions
|
|
Packit |
a4aae4 |
case 45: // args
|
|
Packit |
a4aae4 |
value.move< D4RValueList* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 20: // "word"
|
|
Packit |
a4aae4 |
case 21: // "string"
|
|
Packit |
a4aae4 |
case 60: // id
|
|
Packit |
a4aae4 |
case 61: // group
|
|
Packit |
a4aae4 |
case 62: // path
|
|
Packit |
a4aae4 |
case 63: // name
|
|
Packit |
a4aae4 |
value.move< std::string > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 10: // "fast byte arg list"
|
|
Packit |
a4aae4 |
case 50: // fast_byte_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_byte>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 18: // "fast float32 arg list"
|
|
Packit |
a4aae4 |
case 58: // fast_float32_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_float32>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 19: // "fast float64 arg list"
|
|
Packit |
a4aae4 |
case 59: // fast_float64_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_float64>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 13: // "fast int16 arg list"
|
|
Packit |
a4aae4 |
case 53: // fast_int16_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_int16>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 15: // "fast int32 arg list"
|
|
Packit |
a4aae4 |
case 55: // fast_int32_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_int32>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 17: // "fast int64 arg list"
|
|
Packit |
a4aae4 |
case 57: // fast_int64_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_int64>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 11: // "fast int8 arg list"
|
|
Packit |
a4aae4 |
case 51: // fast_int8_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_int8>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 12: // "fast uint16 arg list"
|
|
Packit |
a4aae4 |
case 52: // fast_uint16_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_uint16>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 14: // "fast uint32 arg list"
|
|
Packit |
a4aae4 |
case 54: // fast_uint32_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_uint32>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 16: // "fast uint64 arg list"
|
|
Packit |
a4aae4 |
case 56: // fast_uint64_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_uint64>* > (s.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
location = s.location;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// by_type.
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::by_type::by_type ()
|
|
Packit |
a4aae4 |
: type (empty_symbol)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::by_type::by_type (const by_type& other)
|
|
Packit |
a4aae4 |
: type (other.type)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::by_type::by_type (token_type t)
|
|
Packit |
a4aae4 |
: type (yytranslate_ (t))
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::by_type::clear ()
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
type = empty_symbol;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::by_type::move (by_type& that)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
type = that.type;
|
|
Packit |
a4aae4 |
that.clear ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
int
|
|
Packit |
a4aae4 |
D4FunctionParser::by_type::type_get () const
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return type;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
// Implementation of make_symbol for each symbol type.
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_END (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::END, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_WORD (const std::string& v, const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::WORD, v, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_STRING (const std::string& v, const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::STRING, v, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_SEMICOLON (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::SEMICOLON, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_COLON (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::COLON, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_LPAREN (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::LPAREN, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_RPAREN (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::RPAREN, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_COMMA (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::COMMA, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_GROUP_SEP (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::GROUP_SEP, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_PATH_SEP (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::PATH_SEP, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_BYTE (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_BYTE, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_UINT8 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_UINT8, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_INT8 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_INT8, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_UINT16 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_UINT16, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_INT16 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_INT16, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_UINT32 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_UINT32, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_INT32 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_INT32, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_UINT64 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_UINT64, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_INT64 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_INT64, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_FLOAT32 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_FLOAT32, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_type
|
|
Packit |
a4aae4 |
D4FunctionParser::make_DOLLAR_FLOAT64 (const location_type& l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return symbol_type (token::DOLLAR_FLOAT64, l);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// by_state.
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::by_state::by_state ()
|
|
Packit |
a4aae4 |
: state (empty_state)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::by_state::by_state (const by_state& other)
|
|
Packit |
a4aae4 |
: state (other.state)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::by_state::clear ()
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
state = empty_state;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::by_state::move (by_state& that)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
state = that.state;
|
|
Packit |
a4aae4 |
that.clear ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::by_state::by_state (state_type s)
|
|
Packit |
a4aae4 |
: state (s)
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::symbol_number_type
|
|
Packit |
a4aae4 |
D4FunctionParser::by_state::type_get () const
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
if (state == empty_state)
|
|
Packit |
a4aae4 |
return empty_symbol;
|
|
Packit |
a4aae4 |
else
|
|
Packit |
a4aae4 |
return yystos_[state];
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::stack_symbol_type::stack_symbol_type ()
|
|
Packit |
a4aae4 |
{}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that)
|
|
Packit |
a4aae4 |
: super_type (s, that.location)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
switch (that.type_get ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
case 7: // "function name"
|
|
Packit |
a4aae4 |
case 44: // fname
|
|
Packit |
a4aae4 |
value.move< D4Function > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 5: // "argument"
|
|
Packit |
a4aae4 |
case 6: // "function"
|
|
Packit |
a4aae4 |
case 8: // "variable or constant"
|
|
Packit |
a4aae4 |
case 9: // "array constant"
|
|
Packit |
a4aae4 |
case 43: // function
|
|
Packit |
a4aae4 |
case 46: // arg
|
|
Packit |
a4aae4 |
case 47: // variable_or_constant
|
|
Packit |
a4aae4 |
case 48: // array_constant
|
|
Packit |
a4aae4 |
value.move< D4RValue* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 3: // "functions"
|
|
Packit |
a4aae4 |
case 4: // "arguments"
|
|
Packit |
a4aae4 |
case 42: // functions
|
|
Packit |
a4aae4 |
case 45: // args
|
|
Packit |
a4aae4 |
value.move< D4RValueList* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 20: // "word"
|
|
Packit |
a4aae4 |
case 21: // "string"
|
|
Packit |
a4aae4 |
case 60: // id
|
|
Packit |
a4aae4 |
case 61: // group
|
|
Packit |
a4aae4 |
case 62: // path
|
|
Packit |
a4aae4 |
case 63: // name
|
|
Packit |
a4aae4 |
value.move< std::string > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 10: // "fast byte arg list"
|
|
Packit |
a4aae4 |
case 50: // fast_byte_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_byte>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 18: // "fast float32 arg list"
|
|
Packit |
a4aae4 |
case 58: // fast_float32_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_float32>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 19: // "fast float64 arg list"
|
|
Packit |
a4aae4 |
case 59: // fast_float64_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_float64>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 13: // "fast int16 arg list"
|
|
Packit |
a4aae4 |
case 53: // fast_int16_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_int16>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 15: // "fast int32 arg list"
|
|
Packit |
a4aae4 |
case 55: // fast_int32_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_int32>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 17: // "fast int64 arg list"
|
|
Packit |
a4aae4 |
case 57: // fast_int64_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_int64>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 11: // "fast int8 arg list"
|
|
Packit |
a4aae4 |
case 51: // fast_int8_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_int8>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 12: // "fast uint16 arg list"
|
|
Packit |
a4aae4 |
case 52: // fast_uint16_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_uint16>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 14: // "fast uint32 arg list"
|
|
Packit |
a4aae4 |
case 54: // fast_uint32_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_uint32>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 16: // "fast uint64 arg list"
|
|
Packit |
a4aae4 |
case 56: // fast_uint64_arg_list
|
|
Packit |
a4aae4 |
value.move< std::vector<dods_uint64>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// that is emptied.
|
|
Packit |
a4aae4 |
that.type = empty_symbol;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::stack_symbol_type&
|
|
Packit |
a4aae4 |
D4FunctionParser::stack_symbol_type::operator= (const stack_symbol_type& that)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
state = that.state;
|
|
Packit |
a4aae4 |
switch (that.type_get ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
case 7: // "function name"
|
|
Packit |
a4aae4 |
case 44: // fname
|
|
Packit |
a4aae4 |
value.copy< D4Function > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 5: // "argument"
|
|
Packit |
a4aae4 |
case 6: // "function"
|
|
Packit |
a4aae4 |
case 8: // "variable or constant"
|
|
Packit |
a4aae4 |
case 9: // "array constant"
|
|
Packit |
a4aae4 |
case 43: // function
|
|
Packit |
a4aae4 |
case 46: // arg
|
|
Packit |
a4aae4 |
case 47: // variable_or_constant
|
|
Packit |
a4aae4 |
case 48: // array_constant
|
|
Packit |
a4aae4 |
value.copy< D4RValue* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 3: // "functions"
|
|
Packit |
a4aae4 |
case 4: // "arguments"
|
|
Packit |
a4aae4 |
case 42: // functions
|
|
Packit |
a4aae4 |
case 45: // args
|
|
Packit |
a4aae4 |
value.copy< D4RValueList* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 20: // "word"
|
|
Packit |
a4aae4 |
case 21: // "string"
|
|
Packit |
a4aae4 |
case 60: // id
|
|
Packit |
a4aae4 |
case 61: // group
|
|
Packit |
a4aae4 |
case 62: // path
|
|
Packit |
a4aae4 |
case 63: // name
|
|
Packit |
a4aae4 |
value.copy< std::string > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 10: // "fast byte arg list"
|
|
Packit |
a4aae4 |
case 50: // fast_byte_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_byte>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 18: // "fast float32 arg list"
|
|
Packit |
a4aae4 |
case 58: // fast_float32_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_float32>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 19: // "fast float64 arg list"
|
|
Packit |
a4aae4 |
case 59: // fast_float64_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_float64>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 13: // "fast int16 arg list"
|
|
Packit |
a4aae4 |
case 53: // fast_int16_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int16>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 15: // "fast int32 arg list"
|
|
Packit |
a4aae4 |
case 55: // fast_int32_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int32>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 17: // "fast int64 arg list"
|
|
Packit |
a4aae4 |
case 57: // fast_int64_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int64>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 11: // "fast int8 arg list"
|
|
Packit |
a4aae4 |
case 51: // fast_int8_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_int8>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 12: // "fast uint16 arg list"
|
|
Packit |
a4aae4 |
case 52: // fast_uint16_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_uint16>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 14: // "fast uint32 arg list"
|
|
Packit |
a4aae4 |
case 54: // fast_uint32_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_uint32>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 16: // "fast uint64 arg list"
|
|
Packit |
a4aae4 |
case 56: // fast_uint64_arg_list
|
|
Packit |
a4aae4 |
value.copy< std::vector<dods_uint64>* > (that.value);
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
location = that.location;
|
|
Packit |
a4aae4 |
return *this;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
if (yymsg)
|
|
Packit |
a4aae4 |
YY_SYMBOL_PRINT (yymsg, yysym);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#if YYDEBUG
|
|
Packit |
a4aae4 |
template <typename Base>
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::yy_print_ (std::ostream& yyo,
|
|
Packit |
a4aae4 |
const basic_symbol<Base>& yysym) const
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
std::ostream& yyoutput = yyo;
|
|
Packit |
a4aae4 |
YYUSE (yyoutput);
|
|
Packit |
a4aae4 |
symbol_number_type yytype = yysym.type_get ();
|
|
Packit |
a4aae4 |
// Avoid a (spurious) G++ 4.8 warning about "array subscript is
|
|
Packit |
a4aae4 |
// below array bounds".
|
|
Packit |
a4aae4 |
if (yysym.empty ())
|
|
Packit |
a4aae4 |
std::abort ();
|
|
Packit |
a4aae4 |
yyo << (yytype < yyntokens_ ? "token" : "nterm")
|
|
Packit |
a4aae4 |
<< ' ' << yytname_[yytype] << " ("
|
|
Packit |
a4aae4 |
<< yysym.location << ": ";
|
|
Packit |
a4aae4 |
YYUSE (yytype);
|
|
Packit |
a4aae4 |
yyo << ')';
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#endif
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::yypush_ (const char* m, state_type s, symbol_type& sym)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
stack_symbol_type t (s, sym);
|
|
Packit |
a4aae4 |
yypush_ (m, t);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::yypush_ (const char* m, stack_symbol_type& s)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
if (m)
|
|
Packit |
a4aae4 |
YY_SYMBOL_PRINT (m, s);
|
|
Packit |
a4aae4 |
yystack_.push (s);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::yypop_ (unsigned int n)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_.pop (n);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#if YYDEBUG
|
|
Packit |
a4aae4 |
std::ostream&
|
|
Packit |
a4aae4 |
D4FunctionParser::debug_stream () const
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return *yycdebug_;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::set_debug_stream (std::ostream& o)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yycdebug_ = &o;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4FunctionParser::debug_level_type
|
|
Packit |
a4aae4 |
D4FunctionParser::debug_level () const
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return yydebug_;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::set_debug_level (debug_level_type l)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yydebug_ = l;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#endif // YYDEBUG
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline D4FunctionParser::state_type
|
|
Packit |
a4aae4 |
D4FunctionParser::yy_lr_goto_state_ (state_type yystate, int yysym)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
int yyr = yypgoto_[yysym - yyntokens_] + yystate;
|
|
Packit |
a4aae4 |
if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
|
|
Packit |
a4aae4 |
return yytable_[yyr];
|
|
Packit |
a4aae4 |
else
|
|
Packit |
a4aae4 |
return yydefgoto_[yysym - yyntokens_];
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline bool
|
|
Packit |
a4aae4 |
D4FunctionParser::yy_pact_value_is_default_ (int yyvalue)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return yyvalue == yypact_ninf_;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
inline bool
|
|
Packit |
a4aae4 |
D4FunctionParser::yy_table_value_is_error_ (int yyvalue)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
return yyvalue == yytable_ninf_;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
int
|
|
Packit |
a4aae4 |
D4FunctionParser::parse ()
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
// State.
|
|
Packit |
a4aae4 |
int yyn;
|
|
Packit |
a4aae4 |
/// Length of the RHS of the rule being reduced.
|
|
Packit |
a4aae4 |
int yylen = 0;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Error handling.
|
|
Packit |
a4aae4 |
int yynerrs_ = 0;
|
|
Packit |
a4aae4 |
int yyerrstatus_ = 0;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/// The lookahead symbol.
|
|
Packit |
a4aae4 |
symbol_type yyla;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/// The locations where the error started and ended.
|
|
Packit |
a4aae4 |
stack_symbol_type yyerror_range[3];
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/// The return value of parse ().
|
|
Packit |
a4aae4 |
int yyresult;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// FIXME: This shoud be completely indented. It is not yet to
|
|
Packit |
a4aae4 |
// avoid gratuitous conflicts when merging into the master branch.
|
|
Packit |
a4aae4 |
try
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
YYCDEBUG << "Starting parse" << std::endl;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// User initialization code.
|
|
Packit |
a4aae4 |
#line 69 "d4_function_parser.yy" // lalr1.cc:745
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
// Initialize the initial location. This is printed when the parser builds
|
|
Packit |
a4aae4 |
// its own error messages - when the parse fails as opposed to when the
|
|
Packit |
a4aae4 |
// function(s) name(s) a missing variable, ...
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
yyla.location.initialize (evaluator.expression());
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#line 1301 "d4_function_parser.tab.cc" // lalr1.cc:745
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/* Initialize the stack. The initial state will be set in
|
|
Packit |
a4aae4 |
yynewstate, since the latter expects the semantical and the
|
|
Packit |
a4aae4 |
location values to have been already stored, initialize these
|
|
Packit |
a4aae4 |
stacks with a primary value. */
|
|
Packit |
a4aae4 |
yystack_.clear ();
|
|
Packit |
a4aae4 |
yypush_ (YY_NULLPTR, 0, yyla);
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// A new symbol was pushed on the stack.
|
|
Packit |
a4aae4 |
yynewstate:
|
|
Packit |
a4aae4 |
YYCDEBUG << "Entering state " << yystack_[0].state << std::endl;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Accept?
|
|
Packit |
a4aae4 |
if (yystack_[0].state == yyfinal_)
|
|
Packit |
a4aae4 |
goto yyacceptlab;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
goto yybackup;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Backup.
|
|
Packit |
a4aae4 |
yybackup:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Try to take a decision without lookahead.
|
|
Packit |
a4aae4 |
yyn = yypact_[yystack_[0].state];
|
|
Packit |
a4aae4 |
if (yy_pact_value_is_default_ (yyn))
|
|
Packit |
a4aae4 |
goto yydefault;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Read a lookahead token.
|
|
Packit |
a4aae4 |
if (yyla.empty ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
YYCDEBUG << "Reading a token: ";
|
|
Packit |
a4aae4 |
try
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yyla.type = yytranslate_ (yylex (&yyla.value, &yyla.location, scanner, evaluator));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
catch (const syntax_error& yyexc)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
error (yyexc);
|
|
Packit |
a4aae4 |
goto yyerrlab1;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
YY_SYMBOL_PRINT ("Next token is", yyla);
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/* If the proper action on seeing token YYLA.TYPE is to reduce or
|
|
Packit |
a4aae4 |
to detect an error, take that action. */
|
|
Packit |
a4aae4 |
yyn += yyla.type_get ();
|
|
Packit |
a4aae4 |
if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ())
|
|
Packit |
a4aae4 |
goto yydefault;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Reduce or error.
|
|
Packit |
a4aae4 |
yyn = yytable_[yyn];
|
|
Packit |
a4aae4 |
if (yyn <= 0)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
if (yy_table_value_is_error_ (yyn))
|
|
Packit |
a4aae4 |
goto yyerrlab;
|
|
Packit |
a4aae4 |
yyn = -yyn;
|
|
Packit |
a4aae4 |
goto yyreduce;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Count tokens shifted since error; after three, turn off error status.
|
|
Packit |
a4aae4 |
if (yyerrstatus_)
|
|
Packit |
a4aae4 |
--yyerrstatus_;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Shift the lookahead token.
|
|
Packit |
a4aae4 |
yypush_ ("Shifting", yyn, yyla);
|
|
Packit |
a4aae4 |
goto yynewstate;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/*-----------------------------------------------------------.
|
|
Packit |
a4aae4 |
| yydefault -- do the default action for the current state. |
|
|
Packit |
a4aae4 |
`-----------------------------------------------------------*/
|
|
Packit |
a4aae4 |
yydefault:
|
|
Packit |
a4aae4 |
yyn = yydefact_[yystack_[0].state];
|
|
Packit |
a4aae4 |
if (yyn == 0)
|
|
Packit |
a4aae4 |
goto yyerrlab;
|
|
Packit |
a4aae4 |
goto yyreduce;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/*-----------------------------.
|
|
Packit |
a4aae4 |
| yyreduce -- Do a reduction. |
|
|
Packit |
a4aae4 |
`-----------------------------*/
|
|
Packit |
a4aae4 |
yyreduce:
|
|
Packit |
a4aae4 |
yylen = yyr2_[yyn];
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
stack_symbol_type yylhs;
|
|
Packit |
a4aae4 |
yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]);
|
|
Packit |
a4aae4 |
/* Variants are always initialized to an empty instance of the
|
|
Packit |
a4aae4 |
correct type. The default '$$ = $1' action is NOT applied
|
|
Packit |
a4aae4 |
when using variants. */
|
|
Packit |
a4aae4 |
switch (yyr1_[yyn])
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
case 7: // "function name"
|
|
Packit |
a4aae4 |
case 44: // fname
|
|
Packit |
a4aae4 |
yylhs.value.build< D4Function > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 5: // "argument"
|
|
Packit |
a4aae4 |
case 6: // "function"
|
|
Packit |
a4aae4 |
case 8: // "variable or constant"
|
|
Packit |
a4aae4 |
case 9: // "array constant"
|
|
Packit |
a4aae4 |
case 43: // function
|
|
Packit |
a4aae4 |
case 46: // arg
|
|
Packit |
a4aae4 |
case 47: // variable_or_constant
|
|
Packit |
a4aae4 |
case 48: // array_constant
|
|
Packit |
a4aae4 |
yylhs.value.build< D4RValue* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 3: // "functions"
|
|
Packit |
a4aae4 |
case 4: // "arguments"
|
|
Packit |
a4aae4 |
case 42: // functions
|
|
Packit |
a4aae4 |
case 45: // args
|
|
Packit |
a4aae4 |
yylhs.value.build< D4RValueList* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 20: // "word"
|
|
Packit |
a4aae4 |
case 21: // "string"
|
|
Packit |
a4aae4 |
case 60: // id
|
|
Packit |
a4aae4 |
case 61: // group
|
|
Packit |
a4aae4 |
case 62: // path
|
|
Packit |
a4aae4 |
case 63: // name
|
|
Packit |
a4aae4 |
yylhs.value.build< std::string > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 10: // "fast byte arg list"
|
|
Packit |
a4aae4 |
case 50: // fast_byte_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_byte>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 18: // "fast float32 arg list"
|
|
Packit |
a4aae4 |
case 58: // fast_float32_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_float32>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 19: // "fast float64 arg list"
|
|
Packit |
a4aae4 |
case 59: // fast_float64_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_float64>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 13: // "fast int16 arg list"
|
|
Packit |
a4aae4 |
case 53: // fast_int16_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_int16>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 15: // "fast int32 arg list"
|
|
Packit |
a4aae4 |
case 55: // fast_int32_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_int32>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 17: // "fast int64 arg list"
|
|
Packit |
a4aae4 |
case 57: // fast_int64_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_int64>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 11: // "fast int8 arg list"
|
|
Packit |
a4aae4 |
case 51: // fast_int8_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_int8>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 12: // "fast uint16 arg list"
|
|
Packit |
a4aae4 |
case 52: // fast_uint16_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_uint16>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 14: // "fast uint32 arg list"
|
|
Packit |
a4aae4 |
case 54: // fast_uint32_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_uint32>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 16: // "fast uint64 arg list"
|
|
Packit |
a4aae4 |
case 56: // fast_uint64_arg_list
|
|
Packit |
a4aae4 |
yylhs.value.build< std::vector<dods_uint64>* > ();
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Compute the default @$.
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
slice<stack_symbol_type, stack_type> slice (yystack_, yylen);
|
|
Packit |
a4aae4 |
YYLLOC_DEFAULT (yylhs.location, slice, yylen);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Perform the reduction.
|
|
Packit |
a4aae4 |
YY_REDUCE_PRINT (yyn);
|
|
Packit |
a4aae4 |
try
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
switch (yyn)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
case 2:
|
|
Packit |
a4aae4 |
#line 156 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
evaluator.set_result(yystack_[0].value.as< D4RValueList* > ());
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1494 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 3:
|
|
Packit |
a4aae4 |
#line 162 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValueList* > () = new D4RValueList(yystack_[0].value.as< D4RValue* > ());
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1502 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 4:
|
|
Packit |
a4aae4 |
#line 166 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< D4RValueList* > ()->add_rvalue(yystack_[0].value.as< D4RValue* > ());
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValueList* > () = yystack_[2].value.as< D4RValueList* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1511 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 5:
|
|
Packit |
a4aae4 |
#line 173 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(yystack_[3].value.as< D4Function > (), yystack_[1].value.as< D4RValueList* > ()); // Build a D4RValue from a D4Function pointer and a D4RValueList
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1519 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 6:
|
|
Packit |
a4aae4 |
#line 179 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
D4Function f;
|
|
Packit |
a4aae4 |
if (!evaluator.sf_list()->find_function(yystack_[0].value.as< std::string > (), &f)) {
|
|
Packit |
a4aae4 |
// ...cloud use @1.{first,last}_column in these error messages.
|
|
Packit |
a4aae4 |
throw Error(malformed_expr, "'" + yystack_[0].value.as< std::string > () + "' is not a registered DAP4 server function.");
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
yylhs.value.as< D4Function > () = f;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1533 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 7:
|
|
Packit |
a4aae4 |
#line 191 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValueList* > () = new D4RValueList(yystack_[0].value.as< D4RValue* > ()); // build a D4RValueList from the D4RValue
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1541 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 8:
|
|
Packit |
a4aae4 |
#line 195 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< D4RValueList* > ()->add_rvalue(yystack_[0].value.as< D4RValue* > ());
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValueList* > () = yystack_[2].value.as< D4RValueList* > (); // Append the D4RValue ($3) to the D4RValueList ($1), then return
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1550 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 9:
|
|
Packit |
a4aae4 |
#line 202 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = yystack_[0].value.as< D4RValue* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1558 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 10:
|
|
Packit |
a4aae4 |
#line 206 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = yystack_[0].value.as< D4RValue* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1566 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 11:
|
|
Packit |
a4aae4 |
#line 210 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = yystack_[0].value.as< D4RValue* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1574 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 12:
|
|
Packit |
a4aae4 |
#line 216 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
D4RValue *rvalue = evaluator.build_rvalue(yystack_[0].value.as< std::string > ());
|
|
Packit |
a4aae4 |
if (!rvalue) {
|
|
Packit |
a4aae4 |
throw Error(malformed_expr, "'" + yystack_[0].value.as< std::string > () + "' is not a variable, number or string.");
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = rvalue;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1587 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 13:
|
|
Packit |
a4aae4 |
#line 228 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_byte>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_byte>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1596 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 14:
|
|
Packit |
a4aae4 |
#line 234 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_byte>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_byte>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1605 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 15:
|
|
Packit |
a4aae4 |
#line 240 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_int8>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_int8>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1614 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 16:
|
|
Packit |
a4aae4 |
#line 246 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_uint16>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_uint16>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1623 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 17:
|
|
Packit |
a4aae4 |
#line 252 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_int16>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_int16>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1632 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 18:
|
|
Packit |
a4aae4 |
#line 258 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_uint32>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_uint32>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1641 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 19:
|
|
Packit |
a4aae4 |
#line 264 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_int32>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_int32>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1650 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 20:
|
|
Packit |
a4aae4 |
#line 270 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_uint64>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_uint64>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1659 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 21:
|
|
Packit |
a4aae4 |
#line 276 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_int64>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_int64>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1668 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 22:
|
|
Packit |
a4aae4 |
#line 282 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_float32>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_float32>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1677 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 23:
|
|
Packit |
a4aae4 |
#line 288 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< D4RValue* > () = new D4RValue(*(yystack_[1].value.as< std::vector<dods_float64>* > ()));
|
|
Packit |
a4aae4 |
delete yystack_[1].value.as< std::vector<dods_float64>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1686 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 24:
|
|
Packit |
a4aae4 |
#line 300 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
evaluator.set_arg_length_hint(get_uint64(yystack_[0].value.as< std::string > ().c_str()));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1694 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 25:
|
|
Packit |
a4aae4 |
#line 306 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_byte>* > () = evaluator.init_arg_list(dods_byte(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1702 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 26:
|
|
Packit |
a4aae4 |
#line 310 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_byte>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_byte>* > () = yystack_[2].value.as< std::vector<dods_byte>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1711 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 27:
|
|
Packit |
a4aae4 |
#line 317 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_int8>* > () = evaluator.init_arg_list(dods_int8(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1719 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 28:
|
|
Packit |
a4aae4 |
#line 321 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_int8>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_int8>* > () = yystack_[2].value.as< std::vector<dods_int8>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1728 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 29:
|
|
Packit |
a4aae4 |
#line 328 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_uint16>* > () = evaluator.init_arg_list(dods_uint16(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1736 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 30:
|
|
Packit |
a4aae4 |
#line 332 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_uint16>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_uint16>* > () = yystack_[2].value.as< std::vector<dods_uint16>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1745 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 31:
|
|
Packit |
a4aae4 |
#line 339 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_int16>* > () = evaluator.init_arg_list(dods_int16(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1753 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 32:
|
|
Packit |
a4aae4 |
#line 343 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_int16>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_int16>* > () = yystack_[2].value.as< std::vector<dods_int16>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1762 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 33:
|
|
Packit |
a4aae4 |
#line 350 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_uint32>* > () = evaluator.init_arg_list(dods_uint32(strtoul(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1770 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 34:
|
|
Packit |
a4aae4 |
#line 354 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_uint32>* > ()->push_back(strtoul(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_uint32>* > () = yystack_[2].value.as< std::vector<dods_uint32>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1779 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 35:
|
|
Packit |
a4aae4 |
#line 360 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_int32>* > () = evaluator.init_arg_list(dods_int32(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1787 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 36:
|
|
Packit |
a4aae4 |
#line 364 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_int32>* > ()->push_back(strtol(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_int32>* > () = yystack_[2].value.as< std::vector<dods_int32>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1796 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 37:
|
|
Packit |
a4aae4 |
#line 371 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_uint64>* > () = evaluator.init_arg_list(dods_uint64(strtoull(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1804 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 38:
|
|
Packit |
a4aae4 |
#line 375 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_uint64>* > ()->push_back(strtoull(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_uint64>* > () = yystack_[2].value.as< std::vector<dods_uint64>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1813 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 39:
|
|
Packit |
a4aae4 |
#line 382 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_int64>* > () = evaluator.init_arg_list(dods_int64(strtoll(yystack_[0].value.as< std::string > ().c_str(), 0, 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1821 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 40:
|
|
Packit |
a4aae4 |
#line 386 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_int64>* > ()->push_back(strtoll(yystack_[0].value.as< std::string > ().c_str(), 0, 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_int64>* > () = yystack_[2].value.as< std::vector<dods_int64>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1830 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 41:
|
|
Packit |
a4aae4 |
#line 396 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_float32>* > () = evaluator.init_arg_list(dods_float32(strtof(yystack_[0].value.as< std::string > ().c_str(), 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1838 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 42:
|
|
Packit |
a4aae4 |
#line 400 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_float32>* > ()->push_back(strtof(yystack_[0].value.as< std::string > ().c_str(), 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_float32>* > () = yystack_[2].value.as< std::vector<dods_float32>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1847 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 43:
|
|
Packit |
a4aae4 |
#line 407 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_float64>* > () = evaluator.init_arg_list(dods_float64(strtod(yystack_[0].value.as< std::string > ().c_str(), 0)));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1855 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 44:
|
|
Packit |
a4aae4 |
#line 411 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::vector<dods_float64>* > ()->push_back(strtod(yystack_[0].value.as< std::string > ().c_str(), 0));
|
|
Packit |
a4aae4 |
yylhs.value.as< std::vector<dods_float64>* > () = yystack_[2].value.as< std::vector<dods_float64>* > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1864 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 45:
|
|
Packit |
a4aae4 |
#line 418 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1872 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 46:
|
|
Packit |
a4aae4 |
#line 422 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > ().append("/");
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1881 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 47:
|
|
Packit |
a4aae4 |
#line 427 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::string > ().append("/");
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > () = yystack_[2].value.as< std::string > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1891 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 48:
|
|
Packit |
a4aae4 |
#line 435 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > ().append("/");
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1900 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 49:
|
|
Packit |
a4aae4 |
#line 440 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::string > ().append(".");
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > () = yystack_[2].value.as< std::string > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1910 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 50:
|
|
Packit |
a4aae4 |
#line 448 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1918 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 51:
|
|
Packit |
a4aae4 |
#line 452 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::string > ().append(".");
|
|
Packit |
a4aae4 |
yystack_[2].value.as< std::string > ().append(yystack_[0].value.as< std::string > ());
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > () = yystack_[2].value.as< std::string > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1928 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 52:
|
|
Packit |
a4aae4 |
#line 463 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > ()=yystack_[0].value.as< std::string > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1936 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
case 53:
|
|
Packit |
a4aae4 |
#line 467 "d4_function_parser.yy" // lalr1.cc:859
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yylhs.value.as< std::string > ()=yystack_[0].value.as< std::string > ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#line 1944 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#line 1948 "d4_function_parser.tab.cc" // lalr1.cc:859
|
|
Packit |
a4aae4 |
default:
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
catch (const syntax_error& yyexc)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
error (yyexc);
|
|
Packit |
a4aae4 |
YYERROR;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
YY_SYMBOL_PRINT ("-> $$ =", yylhs);
|
|
Packit |
a4aae4 |
yypop_ (yylen);
|
|
Packit |
a4aae4 |
yylen = 0;
|
|
Packit |
a4aae4 |
YY_STACK_PRINT ();
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Shift the result of the reduction.
|
|
Packit |
a4aae4 |
yypush_ (YY_NULLPTR, yylhs);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
goto yynewstate;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/*--------------------------------------.
|
|
Packit |
a4aae4 |
| yyerrlab -- here on detecting error. |
|
|
Packit |
a4aae4 |
`--------------------------------------*/
|
|
Packit |
a4aae4 |
yyerrlab:
|
|
Packit |
a4aae4 |
// If not already recovering from an error, report this error.
|
|
Packit |
a4aae4 |
if (!yyerrstatus_)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
++yynerrs_;
|
|
Packit |
a4aae4 |
error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla));
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
yyerror_range[1].location = yyla.location;
|
|
Packit |
a4aae4 |
if (yyerrstatus_ == 3)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
/* If just tried and failed to reuse lookahead token after an
|
|
Packit |
a4aae4 |
error, discard it. */
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Return failure if at end of input.
|
|
Packit |
a4aae4 |
if (yyla.type_get () == yyeof_)
|
|
Packit |
a4aae4 |
YYABORT;
|
|
Packit |
a4aae4 |
else if (!yyla.empty ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yy_destroy_ ("Error: discarding", yyla);
|
|
Packit |
a4aae4 |
yyla.clear ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Else will try to reuse lookahead token after shifting the error token.
|
|
Packit |
a4aae4 |
goto yyerrlab1;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/*---------------------------------------------------.
|
|
Packit |
a4aae4 |
| yyerrorlab -- error raised explicitly by YYERROR. |
|
|
Packit |
a4aae4 |
`---------------------------------------------------*/
|
|
Packit |
a4aae4 |
yyerrorlab:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/* Pacify compilers like GCC when the user code never invokes
|
|
Packit |
a4aae4 |
YYERROR and the label yyerrorlab therefore never appears in user
|
|
Packit |
a4aae4 |
code. */
|
|
Packit |
a4aae4 |
if (false)
|
|
Packit |
a4aae4 |
goto yyerrorlab;
|
|
Packit |
a4aae4 |
yyerror_range[1].location = yystack_[yylen - 1].location;
|
|
Packit |
a4aae4 |
/* Do not reclaim the symbols of the rule whose action triggered
|
|
Packit |
a4aae4 |
this YYERROR. */
|
|
Packit |
a4aae4 |
yypop_ (yylen);
|
|
Packit |
a4aae4 |
yylen = 0;
|
|
Packit |
a4aae4 |
goto yyerrlab1;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/*-------------------------------------------------------------.
|
|
Packit |
a4aae4 |
| yyerrlab1 -- common code for both syntax error and YYERROR. |
|
|
Packit |
a4aae4 |
`-------------------------------------------------------------*/
|
|
Packit |
a4aae4 |
yyerrlab1:
|
|
Packit |
a4aae4 |
yyerrstatus_ = 3; // Each real token shifted decrements this.
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
stack_symbol_type error_token;
|
|
Packit |
a4aae4 |
for (;;)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yyn = yypact_[yystack_[0].state];
|
|
Packit |
a4aae4 |
if (!yy_pact_value_is_default_ (yyn))
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yyn += yyterror_;
|
|
Packit |
a4aae4 |
if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yyn = yytable_[yyn];
|
|
Packit |
a4aae4 |
if (0 < yyn)
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Pop the current state because it cannot handle the error token.
|
|
Packit |
a4aae4 |
if (yystack_.size () == 1)
|
|
Packit |
a4aae4 |
YYABORT;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
yyerror_range[1].location = yystack_[0].location;
|
|
Packit |
a4aae4 |
yy_destroy_ ("Error: popping", yystack_[0]);
|
|
Packit |
a4aae4 |
yypop_ ();
|
|
Packit |
a4aae4 |
YY_STACK_PRINT ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
yyerror_range[2].location = yyla.location;
|
|
Packit |
a4aae4 |
YYLLOC_DEFAULT (error_token.location, yyerror_range, 2);
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Shift the error token.
|
|
Packit |
a4aae4 |
error_token.state = yyn;
|
|
Packit |
a4aae4 |
yypush_ ("Shifting", error_token);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
goto yynewstate;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Accept.
|
|
Packit |
a4aae4 |
yyacceptlab:
|
|
Packit |
a4aae4 |
yyresult = 0;
|
|
Packit |
a4aae4 |
goto yyreturn;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Abort.
|
|
Packit |
a4aae4 |
yyabortlab:
|
|
Packit |
a4aae4 |
yyresult = 1;
|
|
Packit |
a4aae4 |
goto yyreturn;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
yyreturn:
|
|
Packit |
a4aae4 |
if (!yyla.empty ())
|
|
Packit |
a4aae4 |
yy_destroy_ ("Cleanup: discarding lookahead", yyla);
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/* Do not reclaim the symbols of the rule whose action triggered
|
|
Packit |
a4aae4 |
this YYABORT or YYACCEPT. */
|
|
Packit |
a4aae4 |
yypop_ (yylen);
|
|
Packit |
a4aae4 |
while (1 < yystack_.size ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yy_destroy_ ("Cleanup: popping", yystack_[0]);
|
|
Packit |
a4aae4 |
yypop_ ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
return yyresult;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
catch (...)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
YYCDEBUG << "Exception caught: cleaning lookahead and stack"
|
|
Packit |
a4aae4 |
<< std::endl;
|
|
Packit |
a4aae4 |
// Do not try to display the values of the reclaimed symbols,
|
|
Packit |
a4aae4 |
// as their printer might throw an exception.
|
|
Packit |
a4aae4 |
if (!yyla.empty ())
|
|
Packit |
a4aae4 |
yy_destroy_ (YY_NULLPTR, yyla);
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
while (1 < yystack_.size ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yy_destroy_ (YY_NULLPTR, yystack_[0]);
|
|
Packit |
a4aae4 |
yypop_ ();
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
throw;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::error (const syntax_error& yyexc)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
error (yyexc.location, yyexc.what());
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Generate an error message.
|
|
Packit |
a4aae4 |
std::string
|
|
Packit |
a4aae4 |
D4FunctionParser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
// Number of reported tokens (one for the "unexpected", one per
|
|
Packit |
a4aae4 |
// "expected").
|
|
Packit |
a4aae4 |
size_t yycount = 0;
|
|
Packit |
a4aae4 |
// Its maximum.
|
|
Packit |
a4aae4 |
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
|
|
Packit |
a4aae4 |
// Arguments of yyformat.
|
|
Packit |
a4aae4 |
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/* There are many possibilities here to consider:
|
|
Packit |
a4aae4 |
- If this state is a consistent state with a default action, then
|
|
Packit |
a4aae4 |
the only way this function was invoked is if the default action
|
|
Packit |
a4aae4 |
is an error action. In that case, don't check for expected
|
|
Packit |
a4aae4 |
tokens because there are none.
|
|
Packit |
a4aae4 |
- The only way there can be no lookahead present (in yyla) is
|
|
Packit |
a4aae4 |
if this state is a consistent state with a default action.
|
|
Packit |
a4aae4 |
Thus, detecting the absence of a lookahead is sufficient to
|
|
Packit |
a4aae4 |
determine that there is no unexpected or expected token to
|
|
Packit |
a4aae4 |
report. In that case, just report a simple "syntax error".
|
|
Packit |
a4aae4 |
- Don't assume there isn't a lookahead just because this state is
|
|
Packit |
a4aae4 |
a consistent state with a default action. There might have
|
|
Packit |
a4aae4 |
been a previous inconsistent state, consistent state with a
|
|
Packit |
a4aae4 |
non-default action, or user semantic action that manipulated
|
|
Packit |
a4aae4 |
yyla. (However, yyla is currently not documented for users.)
|
|
Packit |
a4aae4 |
- Of course, the expected token list depends on states to have
|
|
Packit |
a4aae4 |
correct lookahead information, and it depends on the parser not
|
|
Packit |
a4aae4 |
to perform extra reductions after fetching a lookahead from the
|
|
Packit |
a4aae4 |
scanner and before detecting a syntax error. Thus, state
|
|
Packit |
a4aae4 |
merging (from LALR or IELR) and default reductions corrupt the
|
|
Packit |
a4aae4 |
expected token list. However, the list is correct for
|
|
Packit |
a4aae4 |
canonical LR with one exception: it will still contain any
|
|
Packit |
a4aae4 |
token that will not be accepted due to an error action in a
|
|
Packit |
a4aae4 |
later state.
|
|
Packit |
a4aae4 |
*/
|
|
Packit |
a4aae4 |
if (!yyla.empty ())
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
int yytoken = yyla.type_get ();
|
|
Packit |
a4aae4 |
yyarg[yycount++] = yytname_[yytoken];
|
|
Packit |
a4aae4 |
int yyn = yypact_[yystate];
|
|
Packit |
a4aae4 |
if (!yy_pact_value_is_default_ (yyn))
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
/* Start YYX at -YYN if negative to avoid negative indexes in
|
|
Packit |
a4aae4 |
YYCHECK. In other words, skip the first -YYN actions for
|
|
Packit |
a4aae4 |
this state because they are default actions. */
|
|
Packit |
a4aae4 |
int yyxbegin = yyn < 0 ? -yyn : 0;
|
|
Packit |
a4aae4 |
// Stay within bounds of both yycheck and yytname.
|
|
Packit |
a4aae4 |
int yychecklim = yylast_ - yyn + 1;
|
|
Packit |
a4aae4 |
int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
|
|
Packit |
a4aae4 |
for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
|
|
Packit |
a4aae4 |
if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_
|
|
Packit |
a4aae4 |
&& !yy_table_value_is_error_ (yytable_[yyx + yyn]))
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yycount = 1;
|
|
Packit |
a4aae4 |
break;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
else
|
|
Packit |
a4aae4 |
yyarg[yycount++] = yytname_[yyx];
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
char const* yyformat = YY_NULLPTR;
|
|
Packit |
a4aae4 |
switch (yycount)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
#define YYCASE_(N, S) \
|
|
Packit |
a4aae4 |
case N: \
|
|
Packit |
a4aae4 |
yyformat = S; \
|
|
Packit |
a4aae4 |
break
|
|
Packit |
a4aae4 |
YYCASE_(0, YY_("syntax error"));
|
|
Packit |
a4aae4 |
YYCASE_(1, YY_("syntax error, unexpected %s"));
|
|
Packit |
a4aae4 |
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
|
|
Packit |
a4aae4 |
YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
|
|
Packit |
a4aae4 |
YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
|
|
Packit |
a4aae4 |
YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
|
|
Packit |
a4aae4 |
#undef YYCASE_
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
std::string yyres;
|
|
Packit |
a4aae4 |
// Argument number.
|
|
Packit |
a4aae4 |
size_t yyi = 0;
|
|
Packit |
a4aae4 |
for (char const* yyp = yyformat; *yyp; ++yyp)
|
|
Packit |
a4aae4 |
if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
yyres += yytnamerr_ (yyarg[yyi++]);
|
|
Packit |
a4aae4 |
++yyp;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
else
|
|
Packit |
a4aae4 |
yyres += *yyp;
|
|
Packit |
a4aae4 |
return yyres;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const signed char D4FunctionParser::yypact_ninf_ = -20;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const signed char D4FunctionParser::yytable_ninf_ = -50;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const signed char
|
|
Packit |
a4aae4 |
D4FunctionParser::yypact_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
-10, -20, 8, 10, -20, 12, -20, -10, -18, -20,
|
|
Packit |
a4aae4 |
37, -20, -16, 38, 39, 42, 43, 44, 45, 46,
|
|
Packit |
a4aae4 |
47, 48, 49, 50, -20, -19, -20, -20, -20, -20,
|
|
Packit |
a4aae4 |
51, 52, -20, -20, 52, 54, 55, 55, 55, 55,
|
|
Packit |
a4aae4 |
55, 55, 55, 55, 55, 55, 55, -20, -18, -16,
|
|
Packit |
a4aae4 |
-16, -20, 53, 56, 59, 60, 61, 62, 63, 64,
|
|
Packit |
a4aae4 |
65, 66, 67, -20, 52, 68, -20, 57, 57, 71,
|
|
Packit |
a4aae4 |
72, 73, 74, 76, 77, 78, -16, -16, -20, 9,
|
|
Packit |
a4aae4 |
16, -20, 18, -20, 20, -20, 22, -20, 24, -20,
|
|
Packit |
a4aae4 |
26, -20, 28, -20, 30, 32, 52, 34, 52, -20,
|
|
Packit |
a4aae4 |
79, -20, -20, 80, -20, 81, -20, 82, -20, 83,
|
|
Packit |
a4aae4 |
-20, 84, -20, 86, -20, 88, -20, -16, -20, -16,
|
|
Packit |
a4aae4 |
-20, -20, -20, -20, -20, -20, -20, -20, 52, 52
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const unsigned char
|
|
Packit |
a4aae4 |
D4FunctionParser::yydefact_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
0, 6, 0, 2, 3, 0, 1, 0, 0, 4,
|
|
Packit |
a4aae4 |
52, 53, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
Packit |
a4aae4 |
0, 0, 0, 0, 9, 0, 7, 10, 11, 12,
|
|
Packit |
a4aae4 |
0, 45, 50, 52, 46, 50, 0, 0, 0, 0,
|
|
Packit |
a4aae4 |
0, 0, 0, 0, 0, 0, 0, 5, 0, 0,
|
|
Packit |
a4aae4 |
0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
Packit |
a4aae4 |
0, 0, 0, 8, 47, 50, 51, 0, 0, 0,
|
|
Packit |
a4aae4 |
0, 0, 0, 0, 0, 0, 0, 0, 25, 0,
|
|
Packit |
a4aae4 |
0, 27, 0, 29, 0, 31, 0, 33, 0, 35,
|
|
Packit |
a4aae4 |
0, 37, 0, 39, 0, 0, 41, 0, 43, 13,
|
|
Packit |
a4aae4 |
0, 14, 15, 0, 16, 0, 17, 0, 18, 0,
|
|
Packit |
a4aae4 |
19, 0, 20, 0, 21, 0, 22, 0, 23, 0,
|
|
Packit |
a4aae4 |
26, 28, 30, 32, 34, 36, 38, 40, 42, 44
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const signed char
|
|
Packit |
a4aae4 |
D4FunctionParser::yypgoto_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
-20, -20, -20, 33, -20, -20, 69, -20, -20, -15,
|
|
Packit |
a4aae4 |
41, -20, -20, -20, -20, -20, -20, -20, -20, -20,
|
|
Packit |
a4aae4 |
-20, -20, -12, -11
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const signed char
|
|
Packit |
a4aae4 |
D4FunctionParser::yydefgoto_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
-1, 2, 3, 24, 5, 25, 26, 27, 28, 52,
|
|
Packit |
a4aae4 |
79, 82, 84, 86, 88, 90, 92, 94, 95, 97,
|
|
Packit |
a4aae4 |
29, 30, 31, 32
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const short int
|
|
Packit |
a4aae4 |
D4FunctionParser::yytable_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
34, 35, 10, 11, 33, 11, 47, 48, 6, 12,
|
|
Packit |
a4aae4 |
1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
|
Packit |
a4aae4 |
22, 23, 53, 54, 55, 56, 57, 58, 59, 60,
|
|
Packit |
a4aae4 |
61, 62, 7, 4, 99, 100, 8, 64, 65, 66,
|
|
Packit |
a4aae4 |
9, 101, 100, 102, 103, 104, 105, 106, 107, 108,
|
|
Packit |
a4aae4 |
109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
|
|
Packit |
a4aae4 |
119, -6, 36, 37, 96, 98, 38, 39, 40, 41,
|
|
Packit |
a4aae4 |
42, 43, 44, 45, 46, 51, 67, 78, 49, 68,
|
|
Packit |
a4aae4 |
50, -48, 69, 70, 71, 72, 73, 74, 75, 76,
|
|
Packit |
a4aae4 |
77, 81, 83, 85, 87, -49, 89, 91, 93, 120,
|
|
Packit |
a4aae4 |
121, 122, 123, 124, 125, 128, 126, 129, 127, 80,
|
|
Packit |
a4aae4 |
0, 0, 0, 0, 0, 0, 0, 63
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const signed char
|
|
Packit |
a4aae4 |
D4FunctionParser::yycheck_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
12, 12, 20, 21, 20, 21, 25, 26, 0, 27,
|
|
Packit |
a4aae4 |
20, 29, 30, 31, 32, 33, 34, 35, 36, 37,
|
|
Packit |
a4aae4 |
38, 39, 37, 38, 39, 40, 41, 42, 43, 44,
|
|
Packit |
a4aae4 |
45, 46, 22, 0, 25, 26, 24, 49, 49, 50,
|
|
Packit |
a4aae4 |
7, 25, 26, 25, 26, 25, 26, 25, 26, 25,
|
|
Packit |
a4aae4 |
26, 25, 26, 25, 26, 25, 26, 25, 26, 25,
|
|
Packit |
a4aae4 |
26, 24, 24, 24, 76, 77, 24, 24, 24, 24,
|
|
Packit |
a4aae4 |
24, 24, 24, 24, 24, 20, 23, 20, 27, 23,
|
|
Packit |
a4aae4 |
28, 27, 23, 23, 23, 23, 23, 23, 23, 23,
|
|
Packit |
a4aae4 |
23, 20, 20, 20, 20, 27, 20, 20, 20, 20,
|
|
Packit |
a4aae4 |
20, 20, 20, 20, 20, 117, 20, 119, 20, 68,
|
|
Packit |
a4aae4 |
-1, -1, -1, -1, -1, -1, -1, 48
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const unsigned char
|
|
Packit |
a4aae4 |
D4FunctionParser::yystos_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
0, 20, 41, 42, 43, 44, 0, 22, 24, 43,
|
|
Packit |
a4aae4 |
20, 21, 27, 29, 30, 31, 32, 33, 34, 35,
|
|
Packit |
a4aae4 |
36, 37, 38, 39, 43, 45, 46, 47, 48, 60,
|
|
Packit |
a4aae4 |
61, 62, 63, 20, 62, 63, 24, 24, 24, 24,
|
|
Packit |
a4aae4 |
24, 24, 24, 24, 24, 24, 24, 25, 26, 27,
|
|
Packit |
a4aae4 |
28, 20, 49, 49, 49, 49, 49, 49, 49, 49,
|
|
Packit |
a4aae4 |
49, 49, 49, 46, 62, 63, 63, 23, 23, 23,
|
|
Packit |
a4aae4 |
23, 23, 23, 23, 23, 23, 23, 23, 20, 50,
|
|
Packit |
a4aae4 |
50, 20, 51, 20, 52, 20, 53, 20, 54, 20,
|
|
Packit |
a4aae4 |
55, 20, 56, 20, 57, 58, 62, 59, 62, 25,
|
|
Packit |
a4aae4 |
26, 25, 25, 26, 25, 26, 25, 26, 25, 26,
|
|
Packit |
a4aae4 |
25, 26, 25, 26, 25, 26, 25, 26, 25, 26,
|
|
Packit |
a4aae4 |
20, 20, 20, 20, 20, 20, 20, 20, 62, 62
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const unsigned char
|
|
Packit |
a4aae4 |
D4FunctionParser::yyr1_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
0, 40, 41, 42, 42, 43, 44, 45, 45, 46,
|
|
Packit |
a4aae4 |
46, 46, 47, 48, 48, 48, 48, 48, 48, 48,
|
|
Packit |
a4aae4 |
48, 48, 48, 48, 49, 50, 50, 51, 51, 52,
|
|
Packit |
a4aae4 |
52, 53, 53, 54, 54, 55, 55, 56, 56, 57,
|
|
Packit |
a4aae4 |
57, 58, 58, 59, 59, 60, 60, 60, 61, 61,
|
|
Packit |
a4aae4 |
62, 62, 63, 63
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
const unsigned char
|
|
Packit |
a4aae4 |
D4FunctionParser::yyr2_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
0, 2, 1, 1, 3, 4, 1, 1, 3, 1,
|
|
Packit |
a4aae4 |
1, 1, 1, 6, 6, 6, 6, 6, 6, 6,
|
|
Packit |
a4aae4 |
6, 6, 6, 6, 1, 1, 3, 1, 3, 1,
|
|
Packit |
a4aae4 |
3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
|
|
Packit |
a4aae4 |
3, 1, 3, 1, 3, 1, 2, 3, 2, 3,
|
|
Packit |
a4aae4 |
1, 3, 1, 1
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
|
|
Packit |
a4aae4 |
// First, the terminals, then, starting at \a yyntokens_, nonterminals.
|
|
Packit |
a4aae4 |
const char*
|
|
Packit |
a4aae4 |
const D4FunctionParser::yytname_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
"\"end of file\"", "error", "$undefined", "\"functions\"",
|
|
Packit |
a4aae4 |
"\"arguments\"", "\"argument\"", "\"function\"", "\"function name\"",
|
|
Packit |
a4aae4 |
"\"variable or constant\"", "\"array constant\"",
|
|
Packit |
a4aae4 |
"\"fast byte arg list\"", "\"fast int8 arg list\"",
|
|
Packit |
a4aae4 |
"\"fast uint16 arg list\"", "\"fast int16 arg list\"",
|
|
Packit |
a4aae4 |
"\"fast uint32 arg list\"", "\"fast int32 arg list\"",
|
|
Packit |
a4aae4 |
"\"fast uint64 arg list\"", "\"fast int64 arg list\"",
|
|
Packit |
a4aae4 |
"\"fast float32 arg list\"", "\"fast float64 arg list\"", "\"word\"",
|
|
Packit |
a4aae4 |
"\"string\"", "\";\"", "\":\"", "\"(\"", "\")\"", "\",\"", "\"/\"",
|
|
Packit |
a4aae4 |
"\".\"", "\"$Byte\"", "\"$UInt8\"", "\"$Int8\"", "\"$UInt16\"",
|
|
Packit |
a4aae4 |
"\"$Int16\"", "\"$UInt32\"", "\"$Int32\"", "\"$UInt64\"", "\"$Int64\"",
|
|
Packit |
a4aae4 |
"\"$Float32\"", "\"$Float64\"", "$accept", "program", "functions",
|
|
Packit |
a4aae4 |
"function", "fname", "args", "arg", "variable_or_constant",
|
|
Packit |
a4aae4 |
"array_constant", "arg_length_hint", "fast_byte_arg_list",
|
|
Packit |
a4aae4 |
"fast_int8_arg_list", "fast_uint16_arg_list", "fast_int16_arg_list",
|
|
Packit |
a4aae4 |
"fast_uint32_arg_list", "fast_int32_arg_list", "fast_uint64_arg_list",
|
|
Packit |
a4aae4 |
"fast_int64_arg_list", "fast_float32_arg_list", "fast_float64_arg_list",
|
|
Packit |
a4aae4 |
"id", "group", "path", "name", YY_NULLPTR
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#if YYDEBUG
|
|
Packit |
a4aae4 |
const unsigned short int
|
|
Packit |
a4aae4 |
D4FunctionParser::yyrline_[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
0, 155, 155, 161, 165, 172, 178, 190, 194, 201,
|
|
Packit |
a4aae4 |
205, 209, 215, 227, 233, 239, 245, 251, 257, 263,
|
|
Packit |
a4aae4 |
269, 275, 281, 287, 299, 305, 309, 316, 320, 327,
|
|
Packit |
a4aae4 |
331, 338, 342, 349, 353, 359, 363, 370, 374, 381,
|
|
Packit |
a4aae4 |
385, 395, 399, 406, 410, 417, 421, 426, 434, 439,
|
|
Packit |
a4aae4 |
447, 451, 462, 466
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Print the state stack on the debug stream.
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::yystack_print_ ()
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
*yycdebug_ << "Stack now";
|
|
Packit |
a4aae4 |
for (stack_type::const_iterator
|
|
Packit |
a4aae4 |
i = yystack_.begin (),
|
|
Packit |
a4aae4 |
i_end = yystack_.end ();
|
|
Packit |
a4aae4 |
i != i_end; ++i)
|
|
Packit |
a4aae4 |
*yycdebug_ << ' ' << i->state;
|
|
Packit |
a4aae4 |
*yycdebug_ << std::endl;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Report on the debug stream that the rule \a yyrule is going to be reduced.
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
D4FunctionParser::yy_reduce_print_ (int yyrule)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
unsigned int yylno = yyrline_[yyrule];
|
|
Packit |
a4aae4 |
int yynrhs = yyr2_[yyrule];
|
|
Packit |
a4aae4 |
// Print the symbols being reduced, and their result.
|
|
Packit |
a4aae4 |
*yycdebug_ << "Reducing stack by rule " << yyrule - 1
|
|
Packit |
a4aae4 |
<< " (line " << yylno << "):" << std::endl;
|
|
Packit |
a4aae4 |
// The symbols being reduced.
|
|
Packit |
a4aae4 |
for (int yyi = 0; yyi < yynrhs; yyi++)
|
|
Packit |
a4aae4 |
YY_SYMBOL_PRINT (" $" << yyi + 1 << " =",
|
|
Packit |
a4aae4 |
yystack_[(yynrhs) - (yyi + 1)]);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
#endif // YYDEBUG
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Symbol number corresponding to token number t.
|
|
Packit |
a4aae4 |
inline
|
|
Packit |
a4aae4 |
D4FunctionParser::token_number_type
|
|
Packit |
a4aae4 |
D4FunctionParser::yytranslate_ (int t)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
static
|
|
Packit |
a4aae4 |
const token_number_type
|
|
Packit |
a4aae4 |
translate_table[] =
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
Packit |
a4aae4 |
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
|
|
Packit |
a4aae4 |
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
|
|
Packit |
a4aae4 |
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
|
|
Packit |
a4aae4 |
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
|
|
Packit |
a4aae4 |
35, 36, 37, 38, 39
|
|
Packit |
a4aae4 |
};
|
|
Packit |
a4aae4 |
const unsigned int user_token_number_max_ = 294;
|
|
Packit |
a4aae4 |
const token_number_type undef_token_ = 2;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
if (static_cast<int>(t) <= yyeof_)
|
|
Packit |
a4aae4 |
return yyeof_;
|
|
Packit |
a4aae4 |
else if (static_cast<unsigned int> (t) <= user_token_number_max_)
|
|
Packit |
a4aae4 |
return translate_table[t];
|
|
Packit |
a4aae4 |
else
|
|
Packit |
a4aae4 |
return undef_token_;
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
#line 34 "d4_function_parser.yy" // lalr1.cc:1167
|
|
Packit |
a4aae4 |
} // libdap
|
|
Packit |
a4aae4 |
#line 2454 "d4_function_parser.tab.cc" // lalr1.cc:1167
|
|
Packit |
a4aae4 |
#line 472 "d4_function_parser.yy" // lalr1.cc:1168
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
// Forward the error to the driver for handling. The location parameter
|
|
Packit |
a4aae4 |
// provides the line number and character position of the error.
|
|
Packit |
a4aae4 |
void
|
|
Packit |
a4aae4 |
libdap::D4FunctionParser::error(const location_type &l, const std::string &m)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
evaluator.error(l, m);
|
|
Packit |
a4aae4 |
}
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
/* include for access to scanner.yylex */
|
|
Packit |
a4aae4 |
#include "D4FunctionScanner.h"
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
static int yylex(libdap::D4FunctionParser::semantic_type *yylval,
|
|
Packit |
a4aae4 |
libdap::location *loc,
|
|
Packit |
a4aae4 |
libdap::D4FunctionScanner &scanner,
|
|
Packit |
a4aae4 |
libdap::D4FunctionEvaluator &evaluator)
|
|
Packit |
a4aae4 |
{
|
|
Packit |
a4aae4 |
if (evaluator.trace_scanning())
|
|
Packit |
a4aae4 |
scanner.set_debug(true);
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
return( scanner.yylex(yylval, loc) );
|
|
Packit |
a4aae4 |
}
|