/* A Bison parser, made from GspYaccSyntax.y
by GNU bison 1.35. */
#define YYBISON 1 /* Identify Bison output. */
# define ASSIGN 257
# define PARAM 258
# define DECLARE 259
# define PNULL 260
# define VALUE_BEGIN 261
# define VALUE_END 262
# define COND_BEGIN 263
# define COND_END 264
# define BOOL 265
# define CHAR 266
# define INT 267
# define STRING 268
# define DOUBLE 269
# define FLOAT 270
# define DATETIME 271
# define LIST 272
# define ARRAY 273
# define MAP 274
# define ARITH_PP 275
# define ARITH_SS 276
# define LOGIC_EQ 277
# define LOGIC_NE 278
# define LOGIC_LE 279
# define LOGIC_GE 280
# define LOGIC_OR 281
# define LOGIC_AND 282
# define IF 283
# define ELSE 284
# define ELIF 285
# define FOR 286
# define WHILE 287
# define BREAK 288
# define CONTINUE 289
# define SWITCH 290
# define CASE 291
# define DEFAULT 292
# define IDENT 293
# define STAT_APP_IDENT 294
# define SCONST 295
# define CCONST 296
# define ICONST 297
# define FCONST 298
# define UMINUS 299
#line 20 "GspYaccSyntax.y"
#include <ctype.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <vector>
#include <list>
#include <map>
#include "GspYaccGlobal.h"
#include "GspYaccNode.h"
#include "GspYaccPublic.h"
using namespace std;
#define YYDEBUG 1
extern void yyerror(char message[]);
#if defined(yywrap)
#undef yywrap
#endif /* yywrap */
#line 46 "GspYaccSyntax.y"
#ifndef YYSTYPE
typedef union
{
double double_val;
int int_val;
char char_val;
char* str_val;
float float_val;
bool bool_val;
CNode* node_val;
CNode* list_val;
} yystype;
# define YYSTYPE yystype
# define YYSTYPE_IS_TRIVIAL 1
#endif
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#define YYFINAL 205
#define YYFLAG -32768
#define YYNTBASE 67
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
#define YYTRANSLATE(x) ((unsigned)(x) <= 299 ? yytranslate[x] : 98)
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
static const char yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 59, 47, 2, 2, 52, 54, 46,
60, 61, 50, 48, 45, 49, 2, 51, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 64, 56,
57, 2, 58, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 65, 2, 66, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 62, 53, 63, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 55
};
#if YYDEBUG
static const short yyprhs[] =
{
0, 0, 4, 7, 12, 16, 21, 25, 27, 30,
32, 34, 37, 39, 42, 45, 48, 50, 53, 56,
58, 60, 62, 64, 70, 78, 87, 89, 92, 100,
105, 115, 127, 128, 130, 136, 144, 152, 154, 157,
164, 170, 174, 180, 187, 189, 192, 194, 196, 198,
200, 202, 204, 206, 208, 213, 218, 225, 227, 231,
235, 239, 243, 247, 251, 255, 259, 262, 265, 269,
273, 277, 281, 285, 289, 293, 297, 300, 303, 307,
309, 314, 319, 321, 325, 327, 329, 331, 333, 338,
340, 342, 344, 346, 348, 350, 352
};
static const short yyrhs[] =
{
70, 68, 69, 0, 68, 69, 0, 7, 71, 8,
56, 0, 7, 8, 56, 0, 9, 72, 10, 56,
0, 9, 10, 56, 0, 5, 0, 5, 85, 0,
95, 0, 74, 0, 71, 74, 0, 73, 0, 72,
73, 0, 88, 56, 0, 88, 56, 0, 56, 0,
35, 56, 0, 34, 56, 0, 75, 0, 80, 0,
78, 0, 81, 0, 29, 60, 88, 61, 74, 0,
29, 60, 88, 61, 62, 71, 63, 0, 29, 60,
88, 61, 62, 71, 63, 76, 0, 77, 0, 76,
77, 0, 31, 60, 88, 61, 62, 71, 63, 0,
30, 62, 71, 63, 0, 32, 60, 79, 56, 79,
56, 79, 61, 74, 0, 32, 60, 79, 56, 79,
56, 79, 61, 62, 71, 63, 0, 0, 89, 0,
33, 60, 88, 61, 74, 0, 33, 60, 88, 61,
62, 71, 63, 0, 36, 60, 88, 61, 62, 82,
63, 0, 83, 0, 82, 83, 0, 37, 91, 64,
62, 71, 63, 0, 38, 64, 62, 71, 63, 0,
87, 97, 56, 0, 87, 97, 3, 90, 56, 0,
87, 97, 65, 91, 66, 56, 0, 84, 0, 85,
84, 0, 11, 0, 13, 0, 12, 0, 14, 0,
16, 0, 15, 0, 17, 0, 86, 0, 18, 57,
86, 58, 0, 19, 57, 86, 58, 0, 20, 57,
86, 45, 86, 58, 0, 90, 0, 88, 3, 88,
0, 88, 48, 88, 0, 88, 49, 88, 0, 88,
51, 88, 0, 88, 52, 88, 0, 88, 50, 88,
0, 88, 53, 88, 0, 88, 54, 88, 0, 88,
21, 0, 88, 22, 0, 88, 57, 88, 0, 88,
58, 88, 0, 88, 26, 88, 0, 88, 25, 88,
0, 88, 23, 88, 0, 88, 24, 88, 0, 88,
27, 88, 0, 88, 28, 88, 0, 59, 88, 0,
49, 88, 0, 60, 88, 61, 0, 97, 0, 97,
65, 88, 66, 0, 96, 60, 89, 61, 0, 88,
0, 89, 45, 88, 0, 91, 0, 92, 0, 94,
0, 93, 0, 40, 65, 43, 66, 0, 95, 0,
43, 0, 44, 0, 41, 0, 42, 0, 6, 0,
97, 0, 39, 0
};
#endif
#if YYDEBUG
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] =
{
0, 112, 121, 130, 136, 144, 150, 158, 164, 170,
177, 183, 192, 198, 206, 214, 225, 230, 236, 242,
248, 254, 260, 268, 275, 291, 300, 306, 314, 330,
346, 3