6307 lines
209 KiB
Plaintext
6307 lines
209 KiB
Plaintext
/* A Bison parser, made by GNU Bison 2.0. */
|
||
|
||
/* Skeleton parser for Yacc-like parsing with Bison,
|
||
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||
|
||
This program is free software; you can redistribute it and/or modify
|
||
it under the terms of the GNU General Public License as published by
|
||
the Free Software Foundation; either version 2, or (at your option)
|
||
any later version.
|
||
|
||
This program is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
GNU General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License
|
||
along with this program; if not, write to the Free Software
|
||
Foundation, Inc., 59 Temple Place - Suite 330,
|
||
Boston, MA 02111-1307, USA. */
|
||
|
||
/* As a special exception, when this file is copied by Bison into a
|
||
Bison output file, you may use that output file without restriction.
|
||
This special exception was added by the Free Software Foundation
|
||
in version 1.24 of Bison. */
|
||
|
||
/* Written by Richard Stallman by simplifying the original so called
|
||
``semantic'' parser. */
|
||
|
||
/* All symbols defined below should begin with yy or YY, to avoid
|
||
infringing on user name space. This should be done even for local
|
||
variables, as they might otherwise be expanded by user macros.
|
||
There are some unavoidable exceptions within include files to
|
||
define necessary library symbols; they are noted "INFRINGES ON
|
||
USER NAME SPACE" below. */
|
||
|
||
/* Identify Bison output. */
|
||
#define YYBISON 1
|
||
|
||
/* Skeleton name. */
|
||
#define YYSKELETON_NAME "yacc.c"
|
||
|
||
/* Pure parsers. */
|
||
#define YYPURE 1
|
||
|
||
/* Using locations. */
|
||
#define YYLSP_NEEDED 1
|
||
|
||
/* Substitute the variable and function names. */
|
||
#define yyparse cppyyparse
|
||
#define yylex cppyylex
|
||
#define yyerror cppyyerror
|
||
#define yylval cppyylval
|
||
#define yychar cppyychar
|
||
#define yydebug cppyydebug
|
||
#define yynerrs cppyynerrs
|
||
#define yylloc cppyylloc
|
||
|
||
/* Tokens. */
|
||
#ifndef YYTOKENTYPE
|
||
# define YYTOKENTYPE
|
||
/* Put the tokens into the symbol table, so that GDB and other debuggers
|
||
know about them. */
|
||
enum yytokentype {
|
||
REAL = 258,
|
||
INTEGER = 259,
|
||
CHAR_TOK = 260,
|
||
STRING = 261,
|
||
SIMPLE_IDENTIFIER = 262,
|
||
IDENTIFIER = 263,
|
||
TYPENAME_IDENTIFIER = 264,
|
||
SCOPING = 265,
|
||
TYPEDEFNAME = 266,
|
||
ELLIPSIS = 267,
|
||
OROR = 268,
|
||
ANDAND = 269,
|
||
EQCOMPARE = 270,
|
||
NECOMPARE = 271,
|
||
LECOMPARE = 272,
|
||
GECOMPARE = 273,
|
||
LSHIFT = 274,
|
||
RSHIFT = 275,
|
||
POINTSAT_STAR = 276,
|
||
DOT_STAR = 277,
|
||
UNARY = 278,
|
||
UNARY_NOT = 279,
|
||
UNARY_NEGATE = 280,
|
||
UNARY_MINUS = 281,
|
||
UNARY_STAR = 282,
|
||
UNARY_REF = 283,
|
||
POINTSAT = 284,
|
||
SCOPE = 285,
|
||
PLUSPLUS = 286,
|
||
MINUSMINUS = 287,
|
||
TIMESEQUAL = 288,
|
||
DIVIDEEQUAL = 289,
|
||
MODEQUAL = 290,
|
||
PLUSEQUAL = 291,
|
||
MINUSEQUAL = 292,
|
||
OREQUAL = 293,
|
||
ANDEQUAL = 294,
|
||
XOREQUAL = 295,
|
||
LSHIFTEQUAL = 296,
|
||
RSHIFTEQUAL = 297,
|
||
TOKENPASTE = 298,
|
||
KW_BEGIN_PUBLISH = 299,
|
||
KW_BLOCKING = 300,
|
||
KW_BOOL = 301,
|
||
KW_CATCH = 302,
|
||
KW_CHAR = 303,
|
||
KW_WCHAR_T = 304,
|
||
KW_CLASS = 305,
|
||
KW_CONST = 306,
|
||
KW_DELETE = 307,
|
||
KW_DOUBLE = 308,
|
||
KW_DYNAMIC_CAST = 309,
|
||
KW_ELSE = 310,
|
||
KW_END_PUBLISH = 311,
|
||
KW_ENUM = 312,
|
||
KW_EXTERN = 313,
|
||
KW_EXPLICIT = 314,
|
||
KW_PUBLISHED = 315,
|
||
KW_FALSE = 316,
|
||
KW_FLOAT = 317,
|
||
KW_FRIEND = 318,
|
||
KW_FOR = 319,
|
||
KW_GOTO = 320,
|
||
KW_IF = 321,
|
||
KW_INLINE = 322,
|
||
KW_INT = 323,
|
||
KW_LONG = 324,
|
||
KW_LONGLONG = 325,
|
||
KW_MUTABLE = 326,
|
||
KW_NAMESPACE = 327,
|
||
KW_NEW = 328,
|
||
KW_OPERATOR = 329,
|
||
KW_PRIVATE = 330,
|
||
KW_PROTECTED = 331,
|
||
KW_PUBLIC = 332,
|
||
KW_REGISTER = 333,
|
||
KW_RETURN = 334,
|
||
KW_SHORT = 335,
|
||
KW_SIGNED = 336,
|
||
KW_SIZEOF = 337,
|
||
KW_STATIC = 338,
|
||
KW_STATIC_CAST = 339,
|
||
KW_STRUCT = 340,
|
||
KW_TEMPLATE = 341,
|
||
KW_THROW = 342,
|
||
KW_TRUE = 343,
|
||
KW_TRY = 344,
|
||
KW_TYPEDEF = 345,
|
||
KW_TYPENAME = 346,
|
||
KW_UNION = 347,
|
||
KW_UNSIGNED = 348,
|
||
KW_USING = 349,
|
||
KW_VIRTUAL = 350,
|
||
KW_VOID = 351,
|
||
KW_VOLATILE = 352,
|
||
KW_WHILE = 353,
|
||
START_CPP = 354,
|
||
START_CONST_EXPR = 355,
|
||
START_TYPE = 356
|
||
};
|
||
#endif
|
||
#define REAL 258
|
||
#define INTEGER 259
|
||
#define CHAR_TOK 260
|
||
#define STRING 261
|
||
#define SIMPLE_IDENTIFIER 262
|
||
#define IDENTIFIER 263
|
||
#define TYPENAME_IDENTIFIER 264
|
||
#define SCOPING 265
|
||
#define TYPEDEFNAME 266
|
||
#define ELLIPSIS 267
|
||
#define OROR 268
|
||
#define ANDAND 269
|
||
#define EQCOMPARE 270
|
||
#define NECOMPARE 271
|
||
#define LECOMPARE 272
|
||
#define GECOMPARE 273
|
||
#define LSHIFT 274
|
||
#define RSHIFT 275
|
||
#define POINTSAT_STAR 276
|
||
#define DOT_STAR 277
|
||
#define UNARY 278
|
||
#define UNARY_NOT 279
|
||
#define UNARY_NEGATE 280
|
||
#define UNARY_MINUS 281
|
||
#define UNARY_STAR 282
|
||
#define UNARY_REF 283
|
||
#define POINTSAT 284
|
||
#define SCOPE 285
|
||
#define PLUSPLUS 286
|
||
#define MINUSMINUS 287
|
||
#define TIMESEQUAL 288
|
||
#define DIVIDEEQUAL 289
|
||
#define MODEQUAL 290
|
||
#define PLUSEQUAL 291
|
||
#define MINUSEQUAL 292
|
||
#define OREQUAL 293
|
||
#define ANDEQUAL 294
|
||
#define XOREQUAL 295
|
||
#define LSHIFTEQUAL 296
|
||
#define RSHIFTEQUAL 297
|
||
#define TOKENPASTE 298
|
||
#define KW_BEGIN_PUBLISH 299
|
||
#define KW_BLOCKING 300
|
||
#define KW_BOOL 301
|
||
#define KW_CATCH 302
|
||
#define KW_CHAR 303
|
||
#define KW_WCHAR_T 304
|
||
#define KW_CLASS 305
|
||
#define KW_CONST 306
|
||
#define KW_DELETE 307
|
||
#define KW_DOUBLE 308
|
||
#define KW_DYNAMIC_CAST 309
|
||
#define KW_ELSE 310
|
||
#define KW_END_PUBLISH 311
|
||
#define KW_ENUM 312
|
||
#define KW_EXTERN 313
|
||
#define KW_EXPLICIT 314
|
||
#define KW_PUBLISHED 315
|
||
#define KW_FALSE 316
|
||
#define KW_FLOAT 317
|
||
#define KW_FRIEND 318
|
||
#define KW_FOR 319
|
||
#define KW_GOTO 320
|
||
#define KW_IF 321
|
||
#define KW_INLINE 322
|
||
#define KW_INT 323
|
||
#define KW_LONG 324
|
||
#define KW_LONGLONG 325
|
||
#define KW_MUTABLE 326
|
||
#define KW_NAMESPACE 327
|
||
#define KW_NEW 328
|
||
#define KW_OPERATOR 329
|
||
#define KW_PRIVATE 330
|
||
#define KW_PROTECTED 331
|
||
#define KW_PUBLIC 332
|
||
#define KW_REGISTER 333
|
||
#define KW_RETURN 334
|
||
#define KW_SHORT 335
|
||
#define KW_SIGNED 336
|
||
#define KW_SIZEOF 337
|
||
#define KW_STATIC 338
|
||
#define KW_STATIC_CAST 339
|
||
#define KW_STRUCT 340
|
||
#define KW_TEMPLATE 341
|
||
#define KW_THROW 342
|
||
#define KW_TRUE 343
|
||
#define KW_TRY 344
|
||
#define KW_TYPEDEF 345
|
||
#define KW_TYPENAME 346
|
||
#define KW_UNION 347
|
||
#define KW_UNSIGNED 348
|
||
#define KW_USING 349
|
||
#define KW_VIRTUAL 350
|
||
#define KW_VOID 351
|
||
#define KW_VOLATILE 352
|
||
#define KW_WHILE 353
|
||
#define START_CPP 354
|
||
#define START_CONST_EXPR 355
|
||
#define START_TYPE 356
|
||
|
||
|
||
|
||
|
||
/* Copy the first part of user declarations. */
|
||
#line 6 "cppBison.yxx"
|
||
|
||
|
||
#include "cppBisonDefs.h"
|
||
#include "cppParser.h"
|
||
#include "cppExpression.h"
|
||
#include "cppSimpleType.h"
|
||
#include "cppExtensionType.h"
|
||
#include "cppStructType.h"
|
||
#include "cppEnumType.h"
|
||
#include "cppFunctionType.h"
|
||
#include "cppTBDType.h"
|
||
#include "cppParameterList.h"
|
||
#include "cppInstance.h"
|
||
#include "cppClassTemplateParameter.h"
|
||
#include "cppTemplateParameterList.h"
|
||
#include "cppInstanceIdentifier.h"
|
||
#include "cppTypedef.h"
|
||
#include "cppTypeDeclaration.h"
|
||
#include "cppVisibility.h"
|
||
#include "cppIdentifier.h"
|
||
#include "cppScope.h"
|
||
#include "cppTemplateScope.h"
|
||
#include "cppNamespace.h"
|
||
#include "cppUsing.h"
|
||
|
||
////////////////////////////////////////////////////////////////////
|
||
// Defining the interface to the parser.
|
||
////////////////////////////////////////////////////////////////////
|
||
|
||
CPPScope *current_scope = NULL;
|
||
CPPScope *global_scope = NULL;
|
||
CPPPreprocessor *current_lexer = NULL;
|
||
|
||
static CPPStructType *current_struct = NULL;
|
||
static CPPEnumType *current_enum = NULL;
|
||
static int current_storage_class = 0;
|
||
static CPPType *current_type = NULL;
|
||
static CPPExpression *current_expr = NULL;
|
||
static int publish_nest_level = 0;
|
||
static CPPVisibility publish_previous;
|
||
static YYLTYPE publish_loc;
|
||
|
||
static vector<CPPScope *> last_scopes;
|
||
static vector<int> last_storage_classes;
|
||
static vector<CPPStructType *> last_structs;
|
||
|
||
int yyparse();
|
||
|
||
#define YYERROR_VERBOSE
|
||
|
||
static void
|
||
yyerror(const string &msg) {
|
||
current_lexer->error(msg);
|
||
}
|
||
|
||
static void
|
||
yyerror(const string &msg, YYLTYPE &loc) {
|
||
current_lexer->error(msg, loc.first_line, loc.first_column);
|
||
}
|
||
|
||
static void
|
||
yywarning(const string &msg, YYLTYPE &loc) {
|
||
current_lexer->warning(msg, loc.first_line, loc.first_column);
|
||
}
|
||
|
||
static int
|
||
yylex(YYSTYPE *lval, YYLTYPE *lloc) {
|
||
CPPToken token = current_lexer->get_next_token();
|
||
*lval = token._lval;
|
||
*lloc = token._lloc;
|
||
return token._token;
|
||
}
|
||
|
||
void
|
||
parse_cpp(CPPParser *cp) {
|
||
CPPScope *old_scope = current_scope;
|
||
CPPScope *old_global_scope = global_scope;
|
||
CPPPreprocessor *old_lexer = current_lexer;
|
||
|
||
current_scope = cp;
|
||
global_scope = cp;
|
||
current_lexer = cp;
|
||
publish_nest_level = 0;
|
||
yyparse();
|
||
|
||
if (publish_nest_level != 0) {
|
||
yyerror("Unclosed __begin_publish", publish_loc);
|
||
publish_nest_level = 0;
|
||
}
|
||
|
||
current_scope = old_scope;
|
||
global_scope = old_global_scope;
|
||
current_lexer = old_lexer;
|
||
|
||
}
|
||
|
||
CPPExpression *
|
||
parse_const_expr(CPPPreprocessor *pp, CPPScope *new_current_scope,
|
||
CPPScope *new_global_scope) {
|
||
CPPScope *old_scope = current_scope;
|
||
CPPScope *old_global_scope = global_scope;
|
||
CPPPreprocessor *old_lexer = current_lexer;
|
||
CPPExpression *old_expr = current_expr;
|
||
|
||
current_scope = new_current_scope;
|
||
global_scope = new_global_scope;
|
||
current_expr = (CPPExpression *)NULL;
|
||
current_lexer = pp;
|
||
yyparse();
|
||
|
||
CPPExpression *result = current_expr;
|
||
|
||
current_scope = old_scope;
|
||
global_scope = old_global_scope;
|
||
current_lexer = old_lexer;
|
||
current_expr = old_expr;
|
||
|
||
return result;
|
||
}
|
||
|
||
CPPType *
|
||
parse_type(CPPPreprocessor *pp, CPPScope *new_current_scope,
|
||
CPPScope *new_global_scope) {
|
||
CPPScope *old_scope = current_scope;
|
||
CPPScope *old_global_scope = global_scope;
|
||
CPPPreprocessor *old_lexer = current_lexer;
|
||
CPPType *old_type = current_type;
|
||
|
||
current_scope = new_current_scope;
|
||
global_scope = new_global_scope;
|
||
current_type = (CPPType *)NULL;
|
||
current_lexer = pp;
|
||
yyparse();
|
||
|
||
CPPType *result = current_type;
|
||
|
||
current_scope = old_scope;
|
||
global_scope = old_global_scope;
|
||
current_lexer = old_lexer;
|
||
current_type = old_type;
|
||
|
||
return result;
|
||
}
|
||
|
||
static void
|
||
push_scope(CPPScope *new_scope) {
|
||
last_scopes.push_back(current_scope);
|
||
if (new_scope != NULL) {
|
||
current_scope = new_scope;
|
||
}
|
||
}
|
||
|
||
static void
|
||
pop_scope() {
|
||
assert(!last_scopes.empty());
|
||
current_scope = last_scopes.back();
|
||
last_scopes.pop_back();
|
||
}
|
||
|
||
static void
|
||
push_storage_class(int new_storage_class) {
|
||
last_storage_classes.push_back(current_storage_class);
|
||
current_storage_class = new_storage_class;
|
||
}
|
||
|
||
static void
|
||
pop_storage_class() {
|
||
assert(!last_storage_classes.empty());
|
||
current_storage_class = last_storage_classes.back();
|
||
last_storage_classes.pop_back();
|
||
}
|
||
|
||
static void
|
||
push_struct(CPPStructType *new_struct) {
|
||
last_structs.push_back(current_struct);
|
||
current_struct = new_struct;
|
||
}
|
||
|
||
static void
|
||
pop_struct() {
|
||
assert(!last_structs.empty());
|
||
current_struct = last_structs.back();
|
||
last_structs.pop_back();
|
||
}
|
||
|
||
|
||
|
||
/* Enabling traces. */
|
||
#ifndef YYDEBUG
|
||
# define YYDEBUG 0
|
||
#endif
|
||
|
||
/* Enabling verbose error messages. */
|
||
#ifdef YYERROR_VERBOSE
|
||
# undef YYERROR_VERBOSE
|
||
# define YYERROR_VERBOSE 1
|
||
#else
|
||
# define YYERROR_VERBOSE 0
|
||
#endif
|
||
|
||
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
|
||
typedef int YYSTYPE;
|
||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||
# define YYSTYPE_IS_DECLARED 1
|
||
# define YYSTYPE_IS_TRIVIAL 1
|
||
#endif
|
||
|
||
#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
|
||
typedef struct YYLTYPE
|
||
{
|
||
int first_line;
|
||
int first_column;
|
||
int last_line;
|
||
int last_column;
|
||
} YYLTYPE;
|
||
# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
|
||
# define YYLTYPE_IS_DECLARED 1
|
||
# define YYLTYPE_IS_TRIVIAL 1
|
||
#endif
|
||
|
||
|
||
/* Copy the second part of user declarations. */
|
||
|
||
|
||
/* Line 213 of yacc.c. */
|
||
#line 496 "y.tab.c"
|
||
|
||
#if ! defined (yyoverflow) || YYERROR_VERBOSE
|
||
|
||
# ifndef YYFREE
|
||
# define YYFREE free
|
||
# endif
|
||
# ifndef YYMALLOC
|
||
# define YYMALLOC malloc
|
||
# endif
|
||
|
||
/* The parser invokes alloca or malloc; define the necessary symbols. */
|
||
|
||
# ifdef YYSTACK_USE_ALLOCA
|
||
# if YYSTACK_USE_ALLOCA
|
||
# ifdef __GNUC__
|
||
# define YYSTACK_ALLOC __builtin_alloca
|
||
# else
|
||
# define YYSTACK_ALLOC alloca
|
||
# endif
|
||
# endif
|
||
# endif
|
||
|
||
# ifdef YYSTACK_ALLOC
|
||
/* Pacify GCC's `empty if-body' warning. */
|
||
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
|
||
# else
|
||
# if defined (__STDC__) || defined (__cplusplus)
|
||
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
|
||
# define YYSIZE_T size_t
|
||
# endif
|
||
# define YYSTACK_ALLOC YYMALLOC
|
||
# define YYSTACK_FREE YYFREE
|
||
# endif
|
||
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
|
||
|
||
|
||
#if (! defined (yyoverflow) \
|
||
&& (! defined (__cplusplus) \
|
||
|| (defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \
|
||
&& defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
|
||
|
||
/* A type that is properly aligned for any stack member. */
|
||
union yyalloc
|
||
{
|
||
short int yyss;
|
||
YYSTYPE yyvs;
|
||
YYLTYPE yyls;
|
||
};
|
||
|
||
/* The size of the maximum gap between one aligned stack and the next. */
|
||
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
|
||
|
||
/* The size of an array large to enough to hold all stacks, each with
|
||
N elements. */
|
||
# define YYSTACK_BYTES(N) \
|
||
((N) * (sizeof (short int) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
|
||
+ 2 * YYSTACK_GAP_MAXIMUM)
|
||
|
||
/* Copy COUNT objects from FROM to TO. The source and destination do
|
||
not overlap. */
|
||
# ifndef YYCOPY
|
||
# if defined (__GNUC__) && 1 < __GNUC__
|
||
# define YYCOPY(To, From, Count) \
|
||
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
|
||
# else
|
||
# define YYCOPY(To, From, Count) \
|
||
do \
|
||
{ \
|
||
register YYSIZE_T yyi; \
|
||
for (yyi = 0; yyi < (Count); yyi++) \
|
||
(To)[yyi] = (From)[yyi]; \
|
||
} \
|
||
while (0)
|
||
# endif
|
||
# endif
|
||
|
||
/* Relocate STACK from its old location to the new one. The
|
||
local variables YYSIZE and YYSTACKSIZE give the old and new number of
|
||
elements in the stack, and YYPTR gives the new location of the
|
||
stack. Advance YYPTR to a properly aligned location for the next
|
||
stack. */
|
||
# define YYSTACK_RELOCATE(Stack) \
|
||
do \
|
||
{ \
|
||
YYSIZE_T yynewbytes; \
|
||
YYCOPY (&yyptr->Stack, Stack, yysize); \
|
||
Stack = &yyptr->Stack; \
|
||
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
|
||
yyptr += yynewbytes / sizeof (*yyptr); \
|
||
} \
|
||
while (0)
|
||
|
||
#endif
|
||
|
||
#if defined (__STDC__) || defined (__cplusplus)
|
||
typedef signed char yysigned_char;
|
||
#else
|
||
typedef short int yysigned_char;
|
||
#endif
|
||
|
||
/* YYFINAL -- State number of the termination state. */
|
||
#define YYFINAL 69
|
||
/* YYLAST -- Last index in YYTABLE. */
|
||
#define YYLAST 3404
|
||
|
||
/* YYNTOKENS -- Number of terminals. */
|
||
#define YYNTOKENS 126
|
||
/* YYNNTS -- Number of nonterminals. */
|
||
#define YYNNTS 94
|
||
/* YYNRULES -- Number of rules. */
|
||
#define YYNRULES 529
|
||
/* YYNRULES -- Number of states. */
|
||
#define YYNSTATES 942
|
||
|
||
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
||
#define YYUNDEFTOK 2
|
||
#define YYMAXUTOK 356
|
||
|
||
#define YYTRANSLATE(YYX) \
|
||
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
||
|
||
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
|
||
static const unsigned 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, 124, 2, 2, 2, 117, 110, 2,
|
||
120, 122, 115, 113, 103, 114, 119, 116, 2, 2,
|
||
2, 2, 2, 2, 2, 2, 2, 2, 105, 104,
|
||
111, 106, 112, 107, 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, 121, 2, 125, 109, 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, 102, 108, 123, 118, 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, 2, 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,
|
||
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
|
||
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
|
||
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
|
||
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
|
||
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
|
||
95, 96, 97, 98, 99, 100, 101
|
||
};
|
||
|
||
#if YYDEBUG
|
||
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
|
||
YYRHS. */
|
||
static const unsigned short int yyprhs[] =
|
||
{
|
||
0, 0, 3, 6, 9, 12, 14, 17, 20, 22,
|
||
26, 31, 32, 38, 40, 42, 44, 46, 48, 50,
|
||
53, 55, 57, 60, 63, 66, 69, 70, 74, 76,
|
||
79, 83, 86, 89, 92, 95, 98, 101, 104, 107,
|
||
109, 113, 117, 118, 123, 124, 130, 133, 138, 141,
|
||
146, 147, 152, 153, 159, 163, 166, 171, 174, 179,
|
||
180, 187, 188, 195, 196, 204, 205, 216, 217, 229,
|
||
230, 239, 240, 250, 252, 254, 256, 261, 267, 269,
|
||
271, 273, 275, 277, 279, 281, 283, 285, 287, 289,
|
||
291, 293, 295, 297, 299, 301, 303, 305, 307, 309,
|
||
311, 313, 315, 317, 319, 321, 323, 325, 327, 329,
|
||
331, 333, 335, 337, 340, 343, 345, 347, 349, 351,
|
||
352, 359, 361, 363, 365, 369, 372, 377, 381, 386,
|
||
388, 390, 392, 395, 397, 400, 403, 406, 409, 413,
|
||
418, 422, 426, 427, 434, 436, 438, 440, 444, 447,
|
||
449, 453, 455, 458, 460, 463, 465, 469, 475, 479,
|
||
484, 486, 488, 491, 493, 497, 501, 507, 511, 515,
|
||
520, 522, 524, 526, 528, 531, 534, 537, 541, 546,
|
||
548, 550, 552, 555, 558, 561, 565, 570, 578, 582,
|
||
584, 587, 590, 593, 597, 602, 610, 612, 614, 617,
|
||
619, 621, 623, 625, 628, 631, 633, 635, 638, 640,
|
||
642, 644, 646, 649, 652, 654, 656, 659, 662, 665,
|
||
668, 672, 673, 679, 680, 688, 690, 692, 695, 699,
|
||
702, 705, 708, 712, 716, 720, 724, 728, 732, 733,
|
||
739, 740, 747, 749, 751, 754, 756, 760, 764, 770,
|
||
772, 774, 776, 778, 779, 786, 791, 794, 798, 800,
|
||
802, 804, 806, 808, 810, 812, 814, 816, 818, 820,
|
||
822, 825, 828, 831, 834, 836, 839, 841, 845, 848,
|
||
850, 851, 854, 856, 859, 861, 863, 865, 867, 869,
|
||
871, 873, 875, 877, 879, 881, 883, 885, 887, 889,
|
||
891, 893, 895, 897, 899, 901, 903, 905, 907, 909,
|
||
911, 913, 915, 917, 919, 921, 923, 925, 927, 929,
|
||
931, 933, 935, 937, 939, 941, 943, 945, 947, 949,
|
||
951, 953, 955, 957, 959, 961, 963, 965, 967, 969,
|
||
971, 973, 975, 977, 979, 981, 983, 985, 987, 989,
|
||
991, 993, 995, 997, 999, 1001, 1003, 1005, 1007, 1009,
|
||
1011, 1013, 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029,
|
||
1031, 1033, 1035, 1037, 1039, 1041, 1043, 1045, 1047, 1049,
|
||
1051, 1053, 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1071,
|
||
1073, 1075, 1077, 1079, 1081, 1085, 1087, 1092, 1100, 1108,
|
||
1113, 1116, 1119, 1122, 1125, 1128, 1132, 1136, 1140, 1144,
|
||
1148, 1152, 1156, 1160, 1164, 1168, 1172, 1176, 1180, 1184,
|
||
1188, 1194, 1199, 1204, 1208, 1212, 1216, 1220, 1222, 1227,
|
||
1235, 1243, 1248, 1253, 1258, 1263, 1268, 1273, 1278, 1283,
|
||
1288, 1293, 1298, 1303, 1306, 1312, 1315, 1318, 1321, 1324,
|
||
1327, 1331, 1335, 1339, 1343, 1347, 1351, 1355, 1359, 1363,
|
||
1367, 1371, 1375, 1379, 1383, 1387, 1391, 1395, 1401, 1406,
|
||
1411, 1415, 1419, 1423, 1427, 1429, 1431, 1433, 1435, 1437,
|
||
1439, 1441, 1443, 1448, 1456, 1464, 1469, 1472, 1478, 1481,
|
||
1484, 1487, 1490, 1494, 1498, 1502, 1506, 1510, 1514, 1518,
|
||
1522, 1526, 1530, 1534, 1538, 1542, 1546, 1550, 1554, 1558,
|
||
1564, 1569, 1574, 1578, 1582, 1586, 1590, 1592, 1594, 1596,
|
||
1598, 1600, 1602, 1604, 1607, 1610, 1612, 1614, 1616, 1619
|
||
};
|
||
|
||
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
||
static const short int yyrhs[] =
|
||
{
|
||
127, 0, -1, 99, 128, -1, 100, 212, -1, 101,
|
||
181, -1, 219, -1, 128, 104, -1, 128, 133, -1,
|
||
130, -1, 129, 103, 130, -1, 217, 120, 209, 122,
|
||
-1, -1, 136, 102, 132, 128, 123, -1, 137, -1,
|
||
159, -1, 131, -1, 197, -1, 199, -1, 134, -1,
|
||
90, 143, -1, 44, -1, 56, -1, 60, 105, -1,
|
||
77, 105, -1, 76, 105, -1, 75, 105, -1, -1,
|
||
63, 135, 133, -1, 219, -1, 136, 58, -1, 136,
|
||
58, 218, -1, 136, 83, -1, 136, 67, -1, 136,
|
||
95, -1, 136, 59, -1, 136, 97, -1, 136, 71,
|
||
-1, 136, 78, -1, 136, 45, -1, 138, -1, 136,
|
||
179, 104, -1, 136, 148, 171, -1, -1, 136, 179,
|
||
139, 141, -1, -1, 136, 51, 178, 140, 142, -1,
|
||
165, 171, -1, 165, 170, 103, 141, -1, 165, 171,
|
||
-1, 165, 170, 103, 142, -1, -1, 136, 179, 144,
|
||
146, -1, -1, 136, 51, 178, 145, 147, -1, 136,
|
||
148, 171, -1, 165, 171, -1, 165, 170, 103, 146,
|
||
-1, 165, 171, -1, 165, 170, 103, 147, -1, -1,
|
||
8, 120, 149, 167, 122, 156, -1, -1, 9, 120,
|
||
150, 167, 122, 156, -1, -1, 118, 217, 120, 151,
|
||
167, 122, 156, -1, -1, 9, 120, 115, 165, 122,
|
||
120, 152, 167, 122, 156, -1, -1, 9, 120, 10,
|
||
115, 165, 122, 120, 153, 167, 122, 156, -1, -1,
|
||
74, 178, 175, 120, 154, 167, 122, 156, -1, -1,
|
||
74, 51, 178, 175, 120, 155, 167, 122, 156, -1,
|
||
8, -1, 219, -1, 51, -1, 156, 87, 120, 122,
|
||
-1, 156, 87, 120, 217, 122, -1, 124, -1, 118,
|
||
-1, 115, -1, 116, -1, 117, -1, 113, -1, 114,
|
||
-1, 108, -1, 110, -1, 109, -1, 13, -1, 14,
|
||
-1, 15, -1, 16, -1, 17, -1, 18, -1, 111,
|
||
-1, 112, -1, 19, -1, 20, -1, 106, -1, 103,
|
||
-1, 31, -1, 32, -1, 33, -1, 34, -1, 35,
|
||
-1, 36, -1, 37, -1, 38, -1, 39, -1, 40,
|
||
-1, 41, -1, 42, -1, 29, -1, 121, 125, -1,
|
||
120, 122, -1, 73, -1, 52, -1, 137, -1, 159,
|
||
-1, -1, 86, 160, 111, 161, 112, 158, -1, 219,
|
||
-1, 162, -1, 163, -1, 162, 103, 163, -1, 50,
|
||
217, -1, 50, 217, 106, 181, -1, 164, 176, 169,
|
||
-1, 51, 164, 176, 169, -1, 200, -1, 8, -1,
|
||
9, -1, 91, 217, -1, 217, -1, 74, 157, -1,
|
||
51, 165, -1, 115, 165, -1, 110, 165, -1, 10,
|
||
115, 165, -1, 165, 121, 208, 125, -1, 165, 105,
|
||
4, -1, 120, 165, 122, -1, -1, 165, 120, 166,
|
||
167, 122, 156, -1, 219, -1, 12, -1, 168, -1,
|
||
168, 103, 12, -1, 168, 12, -1, 174, -1, 168,
|
||
103, 174, -1, 219, -1, 106, 211, -1, 219, -1,
|
||
106, 212, -1, 104, -1, 102, 204, 123, -1, 105,
|
||
129, 102, 204, 123, -1, 106, 212, 104, -1, 106,
|
||
102, 172, 123, -1, 219, -1, 173, -1, 173, 103,
|
||
-1, 212, -1, 102, 172, 123, -1, 173, 103, 212,
|
||
-1, 173, 103, 102, 172, 123, -1, 178, 176, 170,
|
||
-1, 8, 176, 170, -1, 51, 178, 176, 170, -1,
|
||
214, -1, 219, -1, 8, -1, 9, -1, 51, 175,
|
||
-1, 115, 175, -1, 110, 175, -1, 10, 115, 175,
|
||
-1, 175, 121, 208, 125, -1, 219, -1, 8, -1,
|
||
9, -1, 51, 176, -1, 115, 176, -1, 110, 176,
|
||
-1, 10, 115, 176, -1, 176, 121, 208, 125, -1,
|
||
120, 176, 122, 120, 167, 122, 156, -1, 120, 176,
|
||
122, -1, 219, -1, 51, 177, -1, 115, 177, -1,
|
||
110, 177, -1, 10, 115, 177, -1, 177, 121, 208,
|
||
125, -1, 120, 177, 122, 120, 167, 122, 156, -1,
|
||
200, -1, 9, -1, 91, 217, -1, 182, -1, 184,
|
||
-1, 189, -1, 191, -1, 196, 217, -1, 195, 217,
|
||
-1, 200, -1, 9, -1, 91, 217, -1, 182, -1,
|
||
184, -1, 189, -1, 191, -1, 196, 217, -1, 195,
|
||
217, -1, 200, -1, 9, -1, 91, 217, -1, 196,
|
||
217, -1, 195, 217, -1, 178, 177, -1, 51, 178,
|
||
177, -1, -1, 196, 102, 183, 128, 123, -1, -1,
|
||
196, 217, 185, 186, 102, 128, 123, -1, 219, -1,
|
||
187, -1, 105, 188, -1, 187, 103, 188, -1, 77,
|
||
216, -1, 76, 216, -1, 75, 216, -1, 95, 77,
|
||
216, -1, 95, 76, 216, -1, 95, 75, 216, -1,
|
||
77, 95, 216, -1, 76, 95, 216, -1, 75, 95,
|
||
216, -1, -1, 195, 102, 190, 193, 123, -1, -1,
|
||
195, 217, 102, 192, 193, 123, -1, 219, -1, 194,
|
||
-1, 194, 103, -1, 217, -1, 217, 106, 212, -1,
|
||
194, 103, 217, -1, 194, 103, 217, 106, 212, -1,
|
||
57, -1, 50, -1, 85, -1, 92, -1, -1, 72,
|
||
217, 102, 198, 128, 123, -1, 72, 102, 128, 123,
|
||
-1, 94, 217, -1, 94, 72, 217, -1, 201, -1,
|
||
202, -1, 203, -1, 46, -1, 48, -1, 49, -1,
|
||
80, -1, 69, -1, 70, -1, 93, -1, 81, -1,
|
||
68, -1, 80, 201, -1, 69, 201, -1, 93, 201,
|
||
-1, 81, 201, -1, 62, -1, 69, 62, -1, 53,
|
||
-1, 69, 69, 62, -1, 69, 53, -1, 96, -1,
|
||
-1, 205, 206, -1, 219, -1, 206, 207, -1, 3,
|
||
-1, 4, -1, 6, -1, 5, -1, 8, -1, 9,
|
||
-1, 10, -1, 7, -1, 12, -1, 13, -1, 14,
|
||
-1, 15, -1, 16, -1, 17, -1, 18, -1, 19,
|
||
-1, 20, -1, 21, -1, 22, -1, 29, -1, 30,
|
||
-1, 31, -1, 32, -1, 33, -1, 34, -1, 35,
|
||
-1, 36, -1, 37, -1, 38, -1, 39, -1, 40,
|
||
-1, 41, -1, 42, -1, 46, -1, 47, -1, 48,
|
||
-1, 49, -1, 50, -1, 51, -1, 52, -1, 53,
|
||
-1, 54, -1, 55, -1, 57, -1, 58, -1, 59,
|
||
-1, 61, -1, 62, -1, 63, -1, 64, -1, 65,
|
||
-1, 66, -1, 67, -1, 68, -1, 69, -1, 71,
|
||
-1, 73, -1, 75, -1, 76, -1, 77, -1, 60,
|
||
-1, 78, -1, 79, -1, 80, -1, 81, -1, 82,
|
||
-1, 83, -1, 84, -1, 85, -1, 87, -1, 88,
|
||
-1, 89, -1, 90, -1, 91, -1, 92, -1, 93,
|
||
-1, 95, -1, 96, -1, 97, -1, 98, -1, 43,
|
||
-1, 74, -1, 113, -1, 114, -1, 115, -1, 116,
|
||
-1, 110, -1, 108, -1, 109, -1, 124, -1, 118,
|
||
-1, 106, -1, 117, -1, 111, -1, 112, -1, 120,
|
||
-1, 122, -1, 119, -1, 103, -1, 104, -1, 105,
|
||
-1, 121, -1, 125, -1, 107, -1, 102, 206, 123,
|
||
-1, 219, -1, 212, -1, 219, -1, 210, -1, 212,
|
||
-1, 210, 103, 212, -1, 213, -1, 120, 181, 122,
|
||
211, -1, 84, 111, 181, 112, 120, 210, 122, -1,
|
||
54, 111, 181, 112, 120, 210, 122, -1, 82, 120,
|
||
181, 122, -1, 124, 211, -1, 118, 211, -1, 114,
|
||
211, -1, 115, 211, -1, 110, 211, -1, 211, 115,
|
||
211, -1, 211, 116, 211, -1, 211, 117, 211, -1,
|
||
211, 113, 211, -1, 211, 114, 211, -1, 211, 108,
|
||
211, -1, 211, 110, 211, -1, 211, 13, 211, -1,
|
||
211, 14, 211, -1, 211, 15, 211, -1, 211, 16,
|
||
211, -1, 211, 17, 211, -1, 211, 18, 211, -1,
|
||
211, 19, 211, -1, 211, 20, 211, -1, 211, 107,
|
||
211, 105, 211, -1, 211, 121, 212, 125, -1, 211,
|
||
120, 210, 122, -1, 211, 120, 122, -1, 211, 119,
|
||
211, -1, 211, 29, 211, -1, 120, 210, 122, -1,
|
||
213, -1, 120, 181, 122, 212, -1, 84, 111, 181,
|
||
112, 120, 210, 122, -1, 54, 111, 181, 112, 120,
|
||
210, 122, -1, 9, 120, 209, 122, -1, 68, 120,
|
||
209, 122, -1, 48, 120, 209, 122, -1, 49, 120,
|
||
209, 122, -1, 46, 120, 209, 122, -1, 80, 120,
|
||
209, 122, -1, 69, 120, 209, 122, -1, 93, 120,
|
||
209, 122, -1, 81, 120, 209, 122, -1, 62, 120,
|
||
209, 122, -1, 53, 120, 209, 122, -1, 82, 120,
|
||
181, 122, -1, 73, 180, -1, 73, 180, 120, 209,
|
||
122, -1, 124, 212, -1, 118, 212, -1, 114, 212,
|
||
-1, 115, 212, -1, 110, 212, -1, 212, 115, 212,
|
||
-1, 212, 116, 212, -1, 212, 117, 212, -1, 212,
|
||
113, 212, -1, 212, 114, 212, -1, 212, 108, 212,
|
||
-1, 212, 110, 212, -1, 212, 13, 212, -1, 212,
|
||
14, 212, -1, 212, 15, 212, -1, 212, 16, 212,
|
||
-1, 212, 17, 212, -1, 212, 18, 212, -1, 212,
|
||
111, 212, -1, 212, 112, 212, -1, 212, 19, 212,
|
||
-1, 212, 20, 212, -1, 212, 107, 212, 105, 212,
|
||
-1, 212, 121, 212, 125, -1, 212, 120, 210, 122,
|
||
-1, 212, 120, 122, -1, 212, 119, 212, -1, 212,
|
||
29, 212, -1, 120, 210, 122, -1, 4, -1, 88,
|
||
-1, 61, -1, 5, -1, 3, -1, 218, -1, 8,
|
||
-1, 215, -1, 120, 181, 122, 212, -1, 84, 111,
|
||
181, 112, 120, 210, 122, -1, 54, 111, 181, 112,
|
||
120, 210, 122, -1, 82, 120, 181, 122, -1, 73,
|
||
180, -1, 73, 180, 120, 209, 122, -1, 124, 212,
|
||
-1, 118, 212, -1, 114, 212, -1, 110, 212, -1,
|
||
214, 115, 212, -1, 214, 116, 212, -1, 214, 117,
|
||
212, -1, 214, 113, 212, -1, 214, 114, 212, -1,
|
||
214, 108, 212, -1, 214, 110, 212, -1, 214, 13,
|
||
212, -1, 214, 14, 212, -1, 214, 15, 212, -1,
|
||
214, 16, 212, -1, 214, 17, 212, -1, 214, 18,
|
||
212, -1, 214, 111, 212, -1, 214, 112, 212, -1,
|
||
214, 19, 212, -1, 214, 20, 212, -1, 214, 107,
|
||
212, 105, 212, -1, 214, 121, 212, 125, -1, 214,
|
||
120, 210, 122, -1, 214, 120, 122, -1, 214, 119,
|
||
212, -1, 214, 29, 212, -1, 120, 210, 122, -1,
|
||
4, -1, 88, -1, 61, -1, 5, -1, 3, -1,
|
||
218, -1, 217, -1, 196, 217, -1, 91, 217, -1,
|
||
8, -1, 9, -1, 6, -1, 218, 6, -1, -1
|
||
};
|
||
|
||
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||
static const unsigned short int yyrline[] =
|
||
{
|
||
0, 379, 379, 380, 384, 391, 392, 393, 397, 398,
|
||
402, 415, 414, 426, 427, 428, 429, 430, 431, 432,
|
||
433, 446, 455, 459, 467, 471, 479, 478, 493, 497,
|
||
501, 512, 516, 520, 524, 528, 532, 536, 540, 547,
|
||
551, 560, 572, 571, 587, 586, 604, 612, 623, 632,
|
||
646, 645, 661, 660, 671, 685, 693, 704, 713, 728,
|
||
727, 750, 749, 774, 773, 804, 803, 819, 818, 836,
|
||
835, 867, 866, 892, 905, 909, 913, 917, 924, 928,
|
||
932, 936, 940, 944, 948, 952, 956, 960, 964, 968,
|
||
972, 976, 980, 984, 988, 992, 996, 1000, 1004, 1008,
|
||
1012, 1016, 1020, 1024, 1028, 1032, 1036, 1040, 1044, 1048,
|
||
1052, 1056, 1060, 1064, 1068, 1072, 1076, 1083, 1084, 1089,
|
||
1088, 1099, 1100, 1104, 1110, 1119, 1123, 1127, 1133, 1143,
|
||
1147, 1152, 1157, 1165, 1169, 1183, 1188, 1193, 1198, 1203,
|
||
1208, 1213, 1219, 1218, 1240, 1244, 1249, 1253, 1258, 1266,
|
||
1271, 1279, 1283, 1290, 1294, 1301, 1305, 1309, 1313, 1317,
|
||
1324, 1325, 1326, 1330, 1333, 1334, 1335, 1339, 1344, 1352,
|
||
1358, 1368, 1372, 1376, 1380, 1385, 1390, 1395, 1400, 1408,
|
||
1412, 1416, 1420, 1425, 1430, 1435, 1440, 1445, 1451, 1459,
|
||
1463, 1468, 1473, 1478, 1483, 1488, 1497, 1501, 1506, 1510,
|
||
1514, 1518, 1522, 1526, 1542, 1561, 1565, 1570, 1574, 1578,
|
||
1582, 1586, 1590, 1606, 1625, 1629, 1634, 1638, 1654, 1673,
|
||
1679, 1690, 1689, 1714, 1713, 1743, 1744, 1748, 1749, 1753,
|
||
1757, 1761, 1765, 1769, 1773, 1777, 1781, 1785, 1793, 1792,
|
||
1805, 1804, 1816, 1817, 1818, 1822, 1827, 1832, 1837, 1845,
|
||
1852, 1856, 1860, 1868, 1867, 1889, 1893, 1899, 1908, 1909,
|
||
1910, 1914, 1918, 1922, 1926, 1931, 1936, 1941, 1946, 1951,
|
||
1955, 1960, 1969, 1974, 1982, 1986, 1991, 1995, 2000, 2008,
|
||
2018, 2018, 2028, 2029, 2033, 2036, 2039, 2042, 2045, 2048,
|
||
2051, 2054, 2057, 2057, 2057, 2058, 2058, 2058, 2058, 2059,
|
||
2059, 2059, 2059, 2059, 2060, 2060, 2060, 2061, 2061, 2061,
|
||
2061, 2061, 2062, 2062, 2062, 2062, 2062, 2063, 2063, 2063,
|
||
2063, 2063, 2063, 2064, 2064, 2064, 2064, 2064, 2065, 2065,
|
||
2065, 2066, 2066, 2066, 2066, 2067, 2067, 2067, 2068, 2068,
|
||
2068, 2068, 2068, 2069, 2069, 2069, 2069, 2070, 2070, 2070,
|
||
2070, 2070, 2071, 2071, 2071, 2071, 2071, 2071, 2072, 2072,
|
||
2072, 2072, 2072, 2073, 2073, 2074, 2077, 2077, 2077, 2077,
|
||
2077, 2077, 2077, 2077, 2077, 2077, 2077, 2078, 2078, 2078,
|
||
2078, 2078, 2078, 2078, 2078, 2078, 2078, 2079, 2079, 2083,
|
||
2087, 2094, 2098, 2105, 2109, 2116, 2120, 2124, 2128, 2132,
|
||
2136, 2140, 2144, 2156, 2160, 2164, 2168, 2172, 2176, 2180,
|
||
2184, 2188, 2192, 2196, 2200, 2204, 2208, 2212, 2216, 2220,
|
||
2224, 2228, 2232, 2236, 2240, 2244, 2248, 2256, 2260, 2264,
|
||
2268, 2272, 2279, 2285, 2291, 2297, 2303, 2310, 2317, 2324,
|
||
2331, 2337, 2343, 2347, 2351, 2355, 2359, 2363, 2375, 2379,
|
||
2383, 2387, 2391, 2395, 2399, 2403, 2407, 2411, 2415, 2419,
|
||
2423, 2427, 2431, 2435, 2439, 2443, 2447, 2451, 2455, 2459,
|
||
2463, 2467, 2471, 2475, 2482, 2486, 2490, 2494, 2498, 2502,
|
||
2506, 2520, 2524, 2528, 2532, 2536, 2540, 2544, 2548, 2552,
|
||
2556, 2568, 2572, 2576, 2580, 2584, 2588, 2592, 2596, 2600,
|
||
2604, 2608, 2612, 2616, 2620, 2624, 2628, 2632, 2636, 2640,
|
||
2644, 2648, 2652, 2656, 2660, 2664, 2671, 2675, 2679, 2683,
|
||
2687, 2691, 2698, 2706, 2714, 2737, 2741, 2748, 2752, 2758
|
||
};
|
||
#endif
|
||
|
||
#if YYDEBUG || YYERROR_VERBOSE
|
||
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
|
||
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
|
||
static const char *const yytname[] =
|
||
{
|
||
"$end", "error", "$undefined", "REAL", "INTEGER", "CHAR_TOK", "STRING",
|
||
"SIMPLE_IDENTIFIER", "IDENTIFIER", "TYPENAME_IDENTIFIER", "SCOPING",
|
||
"TYPEDEFNAME", "ELLIPSIS", "OROR", "ANDAND", "EQCOMPARE", "NECOMPARE",
|
||
"LECOMPARE", "GECOMPARE", "LSHIFT", "RSHIFT", "POINTSAT_STAR",
|
||
"DOT_STAR", "UNARY", "UNARY_NOT", "UNARY_NEGATE", "UNARY_MINUS",
|
||
"UNARY_STAR", "UNARY_REF", "POINTSAT", "SCOPE", "PLUSPLUS", "MINUSMINUS",
|
||
"TIMESEQUAL", "DIVIDEEQUAL", "MODEQUAL", "PLUSEQUAL", "MINUSEQUAL",
|
||
"OREQUAL", "ANDEQUAL", "XOREQUAL", "LSHIFTEQUAL", "RSHIFTEQUAL",
|
||
"TOKENPASTE", "KW_BEGIN_PUBLISH", "KW_BLOCKING", "KW_BOOL", "KW_CATCH",
|
||
"KW_CHAR", "KW_WCHAR_T", "KW_CLASS", "KW_CONST", "KW_DELETE",
|
||
"KW_DOUBLE", "KW_DYNAMIC_CAST", "KW_ELSE", "KW_END_PUBLISH", "KW_ENUM",
|
||
"KW_EXTERN", "KW_EXPLICIT", "KW_PUBLISHED", "KW_FALSE", "KW_FLOAT",
|
||
"KW_FRIEND", "KW_FOR", "KW_GOTO", "KW_IF", "KW_INLINE", "KW_INT",
|
||
"KW_LONG", "KW_LONGLONG", "KW_MUTABLE", "KW_NAMESPACE", "KW_NEW",
|
||
"KW_OPERATOR", "KW_PRIVATE", "KW_PROTECTED", "KW_PUBLIC", "KW_REGISTER",
|
||
"KW_RETURN", "KW_SHORT", "KW_SIGNED", "KW_SIZEOF", "KW_STATIC",
|
||
"KW_STATIC_CAST", "KW_STRUCT", "KW_TEMPLATE", "KW_THROW", "KW_TRUE",
|
||
"KW_TRY", "KW_TYPEDEF", "KW_TYPENAME", "KW_UNION", "KW_UNSIGNED",
|
||
"KW_USING", "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", "KW_WHILE",
|
||
"START_CPP", "START_CONST_EXPR", "START_TYPE", "'{'", "','", "';'",
|
||
"':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", "'-'",
|
||
"'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", "')'", "'}'", "'!'",
|
||
"']'", "$accept", "grammar", "cpp", "constructor_inits",
|
||
"constructor_init", "extern_c", "@1", "declaration",
|
||
"friend_declaration", "@2", "storage_class", "type_like_declaration",
|
||
"multiple_var_declaration", "@3", "@4", "multiple_instance_identifiers",
|
||
"multiple_const_instance_identifiers", "typedef_declaration", "@5", "@6",
|
||
"typedef_instance_identifiers", "typedef_const_instance_identifiers",
|
||
"function_prototype", "@7", "@8", "@9", "@10", "@11", "@12", "@13",
|
||
"function_post", "function_operator", "more_template_declaration",
|
||
"template_declaration", "@14", "template_formal_parameters",
|
||
"template_nonempty_formal_parameters", "template_formal_parameter",
|
||
"template_formal_parameter_type", "instance_identifier", "@15",
|
||
"formal_parameter_list", "formal_parameters",
|
||
"template_parameter_maybe_initialize", "maybe_initialize",
|
||
"maybe_initialize_or_function_body", "structure_init",
|
||
"structure_init_body", "formal_parameter",
|
||
"not_paren_formal_parameter_identifier", "formal_parameter_identifier",
|
||
"empty_instance_identifier", "type", "type_decl", "predefined_type",
|
||
"full_type", "anonymous_struct", "@16", "named_struct", "@17",
|
||
"maybe_class_derivation", "class_derivation", "base_specification",
|
||
"anonymous_enum", "@18", "named_enum", "@19", "enum_body",
|
||
"enum_body_no_trailing_comma", "enum_keyword", "struct_keyword",
|
||
"namespace_declaration", "@20", "using_declaration", "simple_type",
|
||
"simple_int_type", "simple_float_type", "simple_void_type", "code",
|
||
"@21", "code_block", "element", "optional_const_expr",
|
||
"optional_const_expr_comma", "const_expr_comma",
|
||
"no_angle_bracket_const_expr", "const_expr", "const_operand",
|
||
"formal_const_expr", "formal_const_operand", "class_derivation_name",
|
||
"name", "string", "empty", 0
|
||
};
|
||
#endif
|
||
|
||
# ifdef YYPRINT
|
||
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
|
||
token YYLEX-NUM. */
|
||
static const unsigned short int yytoknum[] =
|
||
{
|
||
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
|
||
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
|
||
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
|
||
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
|
||
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
|
||
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
|
||
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
|
||
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
|
||
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
|
||
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
|
||
355, 356, 123, 44, 59, 58, 61, 63, 124, 94,
|
||
38, 60, 62, 43, 45, 42, 47, 37, 126, 46,
|
||
40, 91, 41, 125, 33, 93
|
||
};
|
||
# endif
|
||
|
||
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
||
static const unsigned char yyr1[] =
|
||
{
|
||
0, 126, 127, 127, 127, 128, 128, 128, 129, 129,
|
||
130, 132, 131, 133, 133, 133, 133, 133, 133, 133,
|
||
133, 133, 133, 133, 133, 133, 135, 134, 136, 136,
|
||
136, 136, 136, 136, 136, 136, 136, 136, 136, 137,
|
||
137, 137, 139, 138, 140, 138, 141, 141, 142, 142,
|
||
144, 143, 145, 143, 143, 146, 146, 147, 147, 149,
|
||
148, 150, 148, 151, 148, 152, 148, 153, 148, 154,
|
||
148, 155, 148, 148, 156, 156, 156, 156, 157, 157,
|
||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
|
||
157, 157, 157, 157, 157, 157, 157, 158, 158, 160,
|
||
159, 161, 161, 162, 162, 163, 163, 163, 163, 164,
|
||
164, 164, 164, 165, 165, 165, 165, 165, 165, 165,
|
||
165, 165, 166, 165, 167, 167, 167, 167, 167, 168,
|
||
168, 169, 169, 170, 170, 171, 171, 171, 171, 171,
|
||
172, 172, 172, 173, 173, 173, 173, 174, 174, 174,
|
||
174, 175, 175, 175, 175, 175, 175, 175, 175, 176,
|
||
176, 176, 176, 176, 176, 176, 176, 176, 176, 177,
|
||
177, 177, 177, 177, 177, 177, 178, 178, 178, 178,
|
||
178, 178, 178, 178, 178, 179, 179, 179, 179, 179,
|
||
179, 179, 179, 179, 180, 180, 180, 180, 180, 181,
|
||
181, 183, 182, 185, 184, 186, 186, 187, 187, 188,
|
||
188, 188, 188, 188, 188, 188, 188, 188, 190, 189,
|
||
192, 191, 193, 193, 193, 194, 194, 194, 194, 195,
|
||
196, 196, 196, 198, 197, 197, 199, 199, 200, 200,
|
||
200, 201, 201, 201, 201, 201, 201, 201, 201, 201,
|
||
201, 201, 201, 201, 202, 202, 202, 202, 202, 203,
|
||
205, 204, 206, 206, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||
207, 207, 207, 207, 207, 207, 207, 207, 207, 208,
|
||
208, 209, 209, 210, 210, 211, 211, 211, 211, 211,
|
||
211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
|
||
211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
|
||
211, 211, 211, 211, 211, 211, 211, 212, 212, 212,
|
||
212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
|
||
212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
|
||
212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
|
||
212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
|
||
212, 212, 212, 212, 213, 213, 213, 213, 213, 213,
|
||
213, 214, 214, 214, 214, 214, 214, 214, 214, 214,
|
||
214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
|
||
214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
|
||
214, 214, 214, 214, 214, 214, 215, 215, 215, 215,
|
||
215, 215, 216, 216, 216, 217, 217, 218, 218, 219
|
||
};
|
||
|
||
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
||
static const unsigned char yyr2[] =
|
||
{
|
||
0, 2, 2, 2, 2, 1, 2, 2, 1, 3,
|
||
4, 0, 5, 1, 1, 1, 1, 1, 1, 2,
|
||
1, 1, 2, 2, 2, 2, 0, 3, 1, 2,
|
||
3, 2, 2, 2, 2, 2, 2, 2, 2, 1,
|
||
3, 3, 0, 4, 0, 5, 2, 4, 2, 4,
|
||
0, 4, 0, 5, 3, 2, 4, 2, 4, 0,
|
||
6, 0, 6, 0, 7, 0, 10, 0, 11, 0,
|
||
8, 0, 9, 1, 1, 1, 4, 5, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 2, 2, 1, 1, 1, 1, 0,
|
||
6, 1, 1, 1, 3, 2, 4, 3, 4, 1,
|
||
1, 1, 2, 1, 2, 2, 2, 2, 3, 4,
|
||
3, 3, 0, 6, 1, 1, 1, 3, 2, 1,
|
||
3, 1, 2, 1, 2, 1, 3, 5, 3, 4,
|
||
1, 1, 2, 1, 3, 3, 5, 3, 3, 4,
|
||
1, 1, 1, 1, 2, 2, 2, 3, 4, 1,
|
||
1, 1, 2, 2, 2, 3, 4, 7, 3, 1,
|
||
2, 2, 2, 3, 4, 7, 1, 1, 2, 1,
|
||
1, 1, 1, 2, 2, 1, 1, 2, 1, 1,
|
||
1, 1, 2, 2, 1, 1, 2, 2, 2, 2,
|
||
3, 0, 5, 0, 7, 1, 1, 2, 3, 2,
|
||
2, 2, 3, 3, 3, 3, 3, 3, 0, 5,
|
||
0, 6, 1, 1, 2, 1, 3, 3, 5, 1,
|
||
1, 1, 1, 0, 6, 4, 2, 3, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
2, 2, 2, 2, 1, 2, 1, 3, 2, 1,
|
||
0, 2, 1, 2, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
|
||
1, 1, 1, 1, 3, 1, 4, 7, 7, 4,
|
||
2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
|
||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||
5, 4, 4, 3, 3, 3, 3, 1, 4, 7,
|
||
7, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||
4, 4, 4, 2, 5, 2, 2, 2, 2, 2,
|
||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||
3, 3, 3, 3, 3, 3, 3, 5, 4, 4,
|
||
3, 3, 3, 3, 1, 1, 1, 1, 1, 1,
|
||
1, 1, 4, 7, 7, 4, 2, 5, 2, 2,
|
||
2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
|
||
3, 3, 3, 3, 3, 3, 3, 3, 3, 5,
|
||
4, 4, 3, 3, 3, 3, 1, 1, 1, 1,
|
||
1, 1, 1, 2, 2, 1, 1, 1, 2, 0
|
||
};
|
||
|
||
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
|
||
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
|
||
means the default is an error. */
|
||
static const unsigned short int yydefact[] =
|
||
{
|
||
0, 529, 0, 0, 0, 529, 5, 478, 474, 477,
|
||
527, 480, 0, 0, 0, 0, 0, 0, 476, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 475, 0, 0,
|
||
0, 0, 0, 0, 0, 3, 427, 479, 197, 261,
|
||
262, 263, 250, 0, 276, 249, 274, 269, 265, 266,
|
||
264, 268, 251, 0, 252, 267, 279, 529, 4, 199,
|
||
200, 201, 202, 0, 0, 196, 258, 259, 260, 1,
|
||
20, 21, 0, 26, 0, 0, 0, 0, 119, 529,
|
||
0, 6, 15, 7, 18, 0, 13, 39, 14, 16,
|
||
17, 28, 529, 529, 529, 529, 529, 0, 529, 529,
|
||
529, 215, 0, 443, 0, 0, 214, 529, 529, 0,
|
||
0, 529, 449, 447, 448, 446, 197, 261, 262, 263,
|
||
276, 274, 269, 265, 264, 268, 267, 0, 0, 393,
|
||
445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 528, 529, 278, 275, 265, 271, 265,
|
||
270, 273, 525, 526, 198, 272, 0, 529, 529, 529,
|
||
529, 219, 189, 238, 204, 221, 203, 22, 529, 529,
|
||
0, 25, 24, 23, 0, 0, 19, 0, 256, 73,
|
||
206, 38, 0, 29, 34, 32, 36, 0, 37, 31,
|
||
0, 33, 35, 11, 0, 0, 42, 208, 209, 210,
|
||
211, 0, 0, 205, 0, 392, 391, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 216, 529, 218, 217, 0,
|
||
0, 0, 0, 0, 0, 0, 473, 457, 458, 459,
|
||
460, 461, 462, 465, 466, 472, 0, 455, 456, 463,
|
||
464, 453, 454, 450, 451, 452, 471, 470, 0, 0,
|
||
220, 277, 529, 190, 192, 191, 0, 529, 529, 240,
|
||
529, 529, 27, 529, 253, 529, 0, 0, 50, 257,
|
||
59, 61, 44, 30, 0, 529, 207, 529, 0, 280,
|
||
155, 0, 0, 41, 40, 0, 213, 212, 431, 435,
|
||
433, 434, 441, 0, 440, 432, 437, 0, 436, 439,
|
||
442, 0, 438, 428, 394, 0, 469, 468, 193, 0,
|
||
0, 390, 389, 0, 243, 245, 242, 529, 529, 0,
|
||
0, 226, 225, 255, 529, 130, 131, 0, 0, 0,
|
||
0, 122, 123, 529, 129, 121, 52, 54, 0, 529,
|
||
0, 0, 529, 0, 529, 172, 173, 0, 529, 529,
|
||
529, 0, 171, 529, 63, 0, 529, 0, 8, 0,
|
||
529, 0, 0, 0, 0, 0, 0, 0, 43, 529,
|
||
133, 0, 444, 0, 467, 529, 194, 239, 244, 0,
|
||
0, 222, 0, 0, 0, 0, 227, 529, 0, 529,
|
||
125, 529, 132, 529, 0, 180, 181, 0, 529, 529,
|
||
529, 529, 529, 179, 0, 51, 529, 520, 516, 519,
|
||
529, 145, 0, 0, 518, 0, 0, 0, 517, 0,
|
||
0, 0, 0, 0, 0, 146, 149, 529, 170, 481,
|
||
521, 144, 0, 0, 0, 45, 529, 0, 529, 174,
|
||
176, 175, 69, 529, 12, 529, 156, 281, 282, 280,
|
||
0, 529, 529, 0, 161, 163, 160, 158, 0, 135,
|
||
88, 89, 90, 91, 92, 93, 96, 97, 112, 100,
|
||
101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
|
||
111, 116, 115, 99, 98, 85, 87, 86, 94, 95,
|
||
83, 84, 80, 81, 82, 79, 0, 0, 78, 134,
|
||
137, 136, 0, 0, 0, 142, 529, 0, 46, 153,
|
||
0, 0, 0, 247, 246, 241, 0, 0, 0, 231,
|
||
522, 0, 230, 0, 229, 0, 0, 0, 529, 228,
|
||
254, 0, 529, 0, 117, 120, 118, 124, 529, 182,
|
||
184, 183, 0, 0, 529, 127, 151, 53, 529, 0,
|
||
55, 529, 529, 0, 486, 0, 0, 491, 490, 489,
|
||
0, 0, 488, 529, 148, 0, 529, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 529, 0, 48, 71, 177, 529, 0, 0,
|
||
284, 285, 287, 286, 291, 288, 289, 290, 292, 293,
|
||
294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
|
||
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
|
||
314, 315, 316, 364, 317, 318, 319, 320, 321, 322,
|
||
323, 324, 325, 326, 327, 328, 329, 344, 330, 331,
|
||
332, 333, 334, 335, 336, 337, 338, 339, 340, 365,
|
||
341, 342, 343, 345, 346, 347, 348, 349, 350, 351,
|
||
352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
|
||
362, 363, 529, 382, 383, 384, 375, 387, 371, 372,
|
||
370, 377, 378, 366, 367, 368, 369, 376, 374, 381,
|
||
379, 385, 380, 373, 386, 283, 0, 9, 0, 0,
|
||
159, 162, 138, 114, 113, 141, 140, 154, 529, 0,
|
||
0, 430, 429, 529, 0, 524, 237, 523, 236, 235,
|
||
234, 233, 232, 224, 126, 128, 185, 188, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 152, 395, 0,
|
||
0, 57, 0, 0, 168, 529, 0, 529, 0, 0,
|
||
0, 515, 75, 60, 74, 147, 150, 167, 499, 500,
|
||
501, 502, 503, 504, 507, 508, 514, 0, 497, 498,
|
||
505, 506, 495, 496, 492, 493, 494, 513, 512, 0,
|
||
0, 0, 65, 62, 0, 529, 0, 178, 529, 0,
|
||
157, 10, 164, 529, 165, 0, 139, 47, 195, 248,
|
||
529, 0, 0, 0, 404, 402, 403, 401, 0, 0,
|
||
400, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 186, 0, 56, 154, 169, 0, 0, 485, 0,
|
||
482, 0, 0, 511, 510, 67, 529, 49, 0, 529,
|
||
64, 388, 0, 529, 0, 0, 0, 0, 0, 426,
|
||
412, 413, 414, 415, 416, 417, 418, 419, 425, 0,
|
||
410, 411, 408, 409, 405, 406, 407, 424, 423, 0,
|
||
0, 58, 0, 487, 0, 0, 509, 529, 0, 529,
|
||
70, 166, 143, 529, 0, 399, 0, 396, 0, 422,
|
||
421, 0, 0, 76, 0, 0, 529, 72, 187, 0,
|
||
0, 420, 484, 483, 77, 529, 66, 0, 0, 68,
|
||
398, 397
|
||
};
|
||
|
||
/* YYDEFGOTO[NTERM-NUM]. */
|
||
static const short int yydefgoto[] =
|
||
{
|
||
-1, 4, 5, 367, 368, 82, 287, 83, 84, 178,
|
||
85, 86, 87, 295, 353, 378, 445, 186, 348, 414,
|
||
415, 557, 205, 349, 352, 455, 866, 907, 607, 805,
|
||
773, 509, 545, 88, 184, 340, 341, 342, 343, 379,
|
||
728, 434, 435, 555, 517, 293, 463, 464, 436, 361,
|
||
412, 171, 57, 206, 103, 58, 59, 270, 60, 271,
|
||
330, 331, 396, 61, 268, 62, 327, 323, 324, 63,
|
||
64, 89, 334, 90, 65, 66, 67, 68, 365, 366,
|
||
457, 715, 320, 214, 215, 757, 129, 36, 438, 439,
|
||
529, 380, 37, 216
|
||
};
|
||
|
||
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
||
STATE-NUM. */
|
||
#define YYPACT_NINF -488
|
||
static const short int yypact[] =
|
||
{
|
||
-11, -488, 1989, 3039, 29, 2877, -488, -488, -488, -488,
|
||
-488, -488, -87, -77, -69, -52, -41, -28, -488, -23,
|
||
-17, -7, 3137, 7, 25, 51, 14, -488, 59, 1989,
|
||
1989, 1989, 1989, 1191, 1989, 2577, -488, 129, -488, -488,
|
||
-488, -488, -488, 3186, -488, -488, -488, -488, 1463, -488,
|
||
1437, 1437, -488, 101, -488, 1437, -488, 24, -488, -488,
|
||
-488, -488, -488, 27, 49, -488, -488, -488, -488, -488,
|
||
-488, -488, 81, -488, 52, 88, 118, 120, -488, -488,
|
||
68, -488, -488, -488, -488, 2342, -488, -488, -488, -488,
|
||
-488, -488, 1989, 1989, 1989, 1989, 1989, 3039, 1989, 1989,
|
||
1989, -488, 101, 115, 101, 101, -488, 1989, 1989, 3039,
|
||
3039, 1989, 156, 156, 156, 156, -87, -77, -69, -52,
|
||
-41, -23, -17, 439, 1187, 1281, 2240, 41, -40, 2577,
|
||
156, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989,
|
||
1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989,
|
||
1989, 1473, 1989, -488, 24, -488, -488, 1530, -488, 1437,
|
||
-488, -488, -488, -488, -488, -488, 122, 24, 24, 24,
|
||
24, 124, -488, -488, 138, -488, -65, -488, 3005, -488,
|
||
153, -488, -488, -488, 149, 2397, -488, 101, -488, 161,
|
||
177, -488, 3186, 267, -488, -488, -488, 3088, -488, -488,
|
||
101, -488, -488, -488, 101, 183, 196, -488, -488, -488,
|
||
-488, 27, 49, -488, 184, 207, -488, 194, 221, 227,
|
||
233, 208, 238, 242, 259, -488, 1989, -488, -488, 261,
|
||
263, 268, 228, 270, 1989, 1989, -488, 776, 2076, 2900,
|
||
2900, 471, 471, 188, 188, -488, 1303, 2735, 2750, 471,
|
||
471, 251, 251, 156, 156, 156, -488, -488, -38, 2114,
|
||
124, -488, 24, 124, 124, 124, 173, 1989, 101, -488,
|
||
-488, 288, -488, 2932, -488, 2982, 3186, 183, -488, -488,
|
||
-488, 15, -488, 129, 3186, 181, -488, -488, 275, -488,
|
||
-488, 101, 1559, -488, -488, 40, 138, -65, -488, -488,
|
||
-488, -488, -488, 277, -488, -488, -488, 281, -488, -488,
|
||
-488, 279, -488, 156, 2577, 1989, -488, -488, 124, 285,
|
||
289, 2577, -488, 283, 315, 314, -488, 101, 3197, 299,
|
||
319, 320, -488, -488, -488, -488, -488, 101, 2266, 101,
|
||
313, 324, -488, 22, -488, -488, -488, -488, 40, 1285,
|
||
322, 40, 1285, 40, 181, -488, -488, 323, 181, 181,
|
||
181, 28, -488, 3232, -488, 312, -488, 220, -488, 326,
|
||
1645, 2539, 334, 40, 2265, 40, 40, 40, -488, 510,
|
||
-488, 1989, -488, 1989, 2577, 1285, -488, -488, 101, 1989,
|
||
328, -488, 689, 725, 824, 366, -488, -488, 299, 3256,
|
||
349, 22, -488, 371, 2982, -488, -488, 343, 22, 22,
|
||
22, 22, -47, -488, 40, -488, 510, -488, -488, -488,
|
||
22, -488, 3186, 359, -488, 3137, 339, 360, -488, 1989,
|
||
1989, 1989, 1191, 1989, 338, 4, -488, 22, 2594, -488,
|
||
129, -488, 40, 143, 352, -488, 510, 209, 181, 354,
|
||
354, 354, -488, 1989, -488, 1285, -488, 1067, -488, -488,
|
||
101, 1989, 1645, 355, 374, 2577, -488, -488, 40, 225,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, 364, 377, -488, -488,
|
||
225, 225, 308, 274, 1559, -488, 1989, 393, -488, -488,
|
||
-18, 9, 381, 398, 2577, -488, 101, 243, 101, -488,
|
||
-488, 243, -488, 243, -488, 243, 243, 243, 3281, -488,
|
||
-488, 3039, -47, 2454, -488, -488, -488, -488, 22, 378,
|
||
378, 378, 266, 2002, 1989, -488, -488, -488, 510, 402,
|
||
-488, 37, 22, 3039, 386, 3039, 3039, 156, 156, 156,
|
||
388, 30, 156, 461, -488, 1379, 37, 1989, 1989, 1989,
|
||
1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989,
|
||
1989, 1989, 1989, 1989, 1989, 1989, 1989, 1731, 1989, 311,
|
||
512, 401, 461, 415, -488, -488, 354, 1285, 399, 403,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, 400, -488, 406, 408,
|
||
-488, 1817, 225, -488, -488, -488, -488, 2539, 1285, 404,
|
||
40, -488, -488, 461, 1989, -488, -488, -488, -488, -488,
|
||
-488, -488, -488, -488, -488, -488, 378, 413, 423, 416,
|
||
424, 2002, 2002, 2002, 2002, 1191, 2002, 2720, -488, 417,
|
||
437, -488, 40, 1989, -488, 37, 438, 1989, 429, 440,
|
||
1989, -488, -488, 467, -488, -488, -488, -488, 776, 2076,
|
||
2900, 2900, 471, 471, 188, 188, -488, 2560, 2735, 2750,
|
||
471, 471, 251, 251, 156, 156, 156, -488, -488, 43,
|
||
2133, 435, -488, 467, 40, 1285, 434, -488, 461, 944,
|
||
-488, -488, -488, 1645, 2577, 436, -488, -488, 467, 2577,
|
||
1285, 3039, 3039, 3039, 218, 218, 218, 218, 441, 54,
|
||
218, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002,
|
||
2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 2002, 1903,
|
||
1989, -488, 40, -488, 2577, -488, 442, 443, -488, 444,
|
||
156, 447, 1989, -488, -488, -488, 1285, -488, 455, 461,
|
||
467, -488, 446, 461, 457, 469, 460, 477, 2002, -488,
|
||
652, 2765, 2926, 2926, 519, 519, 198, 198, -488, 2611,
|
||
2780, 2795, 348, 348, 218, 218, 218, -488, -488, 58,
|
||
2152, -488, 1989, -488, 1989, 19, 2577, 1285, 472, 461,
|
||
467, -488, 467, 461, 463, -488, 473, 218, 2002, -488,
|
||
-488, 72, 112, -488, 476, 478, 461, 467, 467, 1989,
|
||
1989, 2720, -488, -488, -488, 461, 467, 119, 128, 467,
|
||
-488, -488
|
||
};
|
||
|
||
/* YYPGOTO[NTERM-NUM]. */
|
||
static const short int yypgoto[] =
|
||
{
|
||
-488, -488, -164, -488, 135, -488, -488, 421, -488, -488,
|
||
-62, 200, -488, -488, -488, -126, -199, -488, -488, -488,
|
||
-155, -244, 425, -488, -488, -488, -488, -488, -488, -488,
|
||
-487, -488, -488, 214, -488, -488, -488, 215, 273, -306,
|
||
-488, -339, -488, 84, -402, -197, -459, -488, 53, -116,
|
||
-309, -115, -5, 452, 204, 8, -64, -488, -63, -488,
|
||
-488, -488, 265, -61, -488, -59, -488, 337, -488, -21,
|
||
151, -488, -488, -488, -13, 133, -488, -488, 202, -488,
|
||
-27, -488, -435, -88, -31, 5, 64, -129, -488, -488,
|
||
-307, 409, -131, -1
|
||
};
|
||
|
||
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
|
||
positive, shift that token. If negative, reduce the rule which
|
||
number is the opposite. If zero, do what YYDEFACT says.
|
||
If YYTABLE_NINF, syntax error. */
|
||
#define YYTABLE_NINF -224
|
||
static const short int yytable[] =
|
||
{
|
||
6, 104, 128, 719, 91, 217, 218, 219, 220, 106,
|
||
222, 223, 224, 444, 559, 273, 574, 185, 608, 229,
|
||
230, 207, 208, 233, 209, 350, 210, 162, 163, 69,
|
||
405, 406, 407, 92, 166, 162, 163, -223, 154, 260,
|
||
-223, 127, 416, 93, 603, 443, 522, 446, 162, 163,
|
||
372, 94, 263, 264, 265, 266, 172, 162, 163, 553,
|
||
162, 163, 283, 235, 211, 235, 35, 469, 95, 510,
|
||
511, 512, 213, 408, 554, 167, 162, 163, 91, 96,
|
||
347, 729, 236, 97, 316, 235, 532, 534, 1, 2,
|
||
3, 373, 542, 112, 113, 114, 115, 98, 130, 549,
|
||
550, 551, 552, 99, 731, 221, 328, 575, 558, 162,
|
||
163, 561, 235, 100, 374, 803, 609, 231, 232, 759,
|
||
258, 207, 208, 363, 209, 110, 210, 107, 576, 173,
|
||
351, 732, 409, 235, 168, 153, 599, 410, 307, 169,
|
||
187, 923, 411, 763, 170, 108, 235, 318, 452, 453,
|
||
375, 175, 771, 172, 179, 376, 760, 235, 554, 764,
|
||
377, 235, 722, 234, 211, 863, 172, 172, 172, 172,
|
||
399, 109, 213, 105, 777, 235, 879, 91, 6, 111,
|
||
919, 158, 518, 160, 161, 139, 177, 282, 165, 355,
|
||
356, 357, 285, 181, 932, 237, 238, 239, 240, 241,
|
||
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
|
||
252, 253, 254, 255, 256, 235, 259, 139, 440, 560,
|
||
736, 440, 235, 182, 738, 183, 739, 839, 740, 741,
|
||
742, 235, 358, 538, 933, 226, 212, 262, 447, 746,
|
||
269, 940, 449, 450, 451, 267, 818, 839, 600, 604,
|
||
941, 162, 163, 765, 440, 274, 158, 160, 161, 165,
|
||
275, 172, 344, 515, 516, 601, 322, 326, 806, 6,
|
||
332, 346, 91, 10, 345, 150, 151, 152, 726, 354,
|
||
139, 280, 162, 163, 362, 289, 6, 290, 291, 292,
|
||
158, 359, 158, 42, 267, 319, 360, 281, 313, 314,
|
||
294, 145, 146, 147, 148, 149, 298, 150, 151, 152,
|
||
235, 843, 844, 845, 846, 847, 299, 848, 849, 850,
|
||
303, 870, 459, 460, 440, 344, 326, 91, 52, 605,
|
||
453, 321, 606, 6, 526, 54, 212, 848, 849, 850,
|
||
311, 543, 413, 300, 437, 515, 516, 437, 441, 301,
|
||
520, 441, 521, 362, 872, 302, 371, 362, 362, 362,
|
||
304, 761, 91, 855, 305, 458, 147, 148, 149, 466,
|
||
150, 151, 152, 718, 392, 393, 394, 839, 519, 384,
|
||
437, 306, 910, 308, 441, 309, 912, 554, 747, 815,
|
||
310, 344, 312, 329, 395, 364, 6, 381, 91, 383,
|
||
413, 571, 91, 382, 104, 385, 387, 413, 413, 413,
|
||
413, 556, 106, 600, 386, 519, 600, 562, 388, 413,
|
||
389, 397, 927, 398, 758, 403, 928, 404, 515, 516,
|
||
725, 515, 516, 801, 465, 456, 413, 442, 448, 936,
|
||
570, 535, 536, 537, 440, 519, 461, 362, 939, 468,
|
||
437, 525, 322, 524, 441, 541, 416, 78, 548, 565,
|
||
573, 466, 164, 845, 846, 847, 868, 848, 849, 850,
|
||
563, 566, 174, 176, 602, 453, 440, 721, 720, 207,
|
||
208, 874, 209, 180, 210, 39, 723, 40, 41, 188,
|
||
137, 138, 155, 567, 568, 569, 730, 572, 446, 554,
|
||
139, 156, 724, 733, 734, 762, 767, 47, 157, 49,
|
||
770, 225, 772, 227, 228, 322, 726, 321, 804, 50,
|
||
51, 802, 211, 810, 807, 808, 465, 908, 811, 816,
|
||
213, 812, 55, 820, 821, 823, 822, 91, 837, 838,
|
||
852, 556, 851, 528, 528, 528, 558, 413, 839, 744,
|
||
856, 858, 859, 322, 861, 865, 869, 519, 873, 100,
|
||
519, 413, 902, 878, 904, 903, 799, 905, 925, 911,
|
||
437, 766, 774, 768, 769, 519, 105, 909, 727, 913,
|
||
321, 914, 915, 929, 145, 146, 147, 148, 149, 916,
|
||
150, 151, 152, 930, 926, 717, 279, 440, 934, 272,
|
||
935, 774, 437, 544, 817, 867, 441, 853, 901, 286,
|
||
277, 401, 289, 288, 290, 513, 514, 546, 321, 547,
|
||
296, 297, 758, 758, 758, 758, 745, 758, 776, 564,
|
||
515, 516, 843, 844, 845, 846, 847, 278, 848, 849,
|
||
850, 778, 779, 780, 781, 782, 783, 784, 785, 786,
|
||
787, 788, 789, 790, 791, 792, 793, 794, 795, 796,
|
||
797, 716, 800, 539, 390, 809, 832, 833, 834, 835,
|
||
836, 837, 838, 0, 440, 0, 0, 325, 528, 857,
|
||
0, 839, 528, 0, 528, 0, 528, 528, 528, 440,
|
||
0, 458, 0, 0, 212, 0, 0, 162, 163, 0,
|
||
369, 0, 758, 758, 758, 758, 758, 758, 758, 758,
|
||
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
|
||
0, 0, 0, 437, 829, 0, 0, 441, 0, 0,
|
||
0, 0, 774, 162, 163, 440, 325, 0, 0, 42,
|
||
0, 0, 0, 0, 0, 0, 400, 0, 402, 758,
|
||
0, 0, 0, 0, 0, 0, 824, 825, 826, 827,
|
||
841, 830, 842, 828, 519, 843, 844, 845, 846, 847,
|
||
0, 848, 849, 850, 52, 42, 440, 0, 0, 0,
|
||
526, 54, 0, 0, 527, 814, 0, 0, 0, 758,
|
||
132, 133, 134, 135, 136, 137, 138, 523, 819, 0,
|
||
437, 530, 530, 530, 441, 139, 0, 774, 0, 0,
|
||
52, 0, 466, 0, 0, 437, 526, 54, 899, 441,
|
||
531, 0, 0, 0, 0, 0, 0, 854, 0, 875,
|
||
876, 877, 162, 163, 860, 0, 880, 881, 882, 883,
|
||
884, 885, 886, 887, 888, 889, 890, 891, 892, 893,
|
||
894, 895, 896, 897, 0, 0, 0, 0, 0, 0,
|
||
0, 437, 0, 0, 0, 441, 0, 0, 774, 369,
|
||
0, 921, 774, 922, 42, 0, 0, 465, 0, 0,
|
||
0, 0, 0, 917, 141, 0, 142, 143, 144, 145,
|
||
146, 147, 148, 149, 0, 150, 151, 152, 937, 938,
|
||
0, 0, 437, 0, 0, 0, 441, 0, 774, 52,
|
||
0, 0, 774, 0, 900, 526, 54, 0, 0, 533,
|
||
0, 0, 369, 931, 0, 774, 906, 0, 0, 0,
|
||
0, 0, 0, 0, 774, 735, 530, 737, 0, 0,
|
||
530, 0, 530, 0, 530, 530, 530, 610, 611, 612,
|
||
613, 614, 615, 616, 617, 0, 618, 619, 620, 621,
|
||
622, 623, 624, 625, 626, 627, 628, 0, 0, 0,
|
||
0, 0, 0, 629, 630, 631, 632, 633, 634, 635,
|
||
636, 637, 638, 639, 640, 641, 642, 643, 0, 0,
|
||
644, 645, 646, 647, 648, 649, 650, 651, 652, 653,
|
||
0, 654, 655, 656, 657, 658, 659, 660, 661, 662,
|
||
663, 664, 665, 666, 0, 667, 0, 668, 669, 670,
|
||
671, 672, 673, 674, 675, 676, 677, 678, 679, 680,
|
||
0, 681, 682, 683, 684, 685, 686, 687, 0, 688,
|
||
689, 690, 691, 0, 0, 0, 692, 693, 694, 695,
|
||
696, 697, 698, 699, 700, 701, 702, 703, 704, 705,
|
||
706, 707, 708, 709, 710, 711, 712, 871, 713, 714,
|
||
610, 611, 612, 613, 614, 615, 616, 617, 0, 618,
|
||
619, 620, 621, 622, 623, 624, 625, 626, 627, 628,
|
||
0, 0, 0, 0, 0, 0, 629, 630, 631, 632,
|
||
633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
|
||
643, 0, 0, 644, 645, 646, 647, 648, 649, 650,
|
||
651, 652, 653, 0, 654, 655, 656, 657, 658, 659,
|
||
660, 661, 662, 663, 664, 665, 666, 0, 667, 0,
|
||
668, 669, 670, 671, 672, 673, 674, 675, 676, 677,
|
||
678, 679, 680, 0, 681, 682, 683, 684, 685, 686,
|
||
687, 0, 688, 689, 690, 691, 0, 0, 0, 692,
|
||
693, 694, 695, 696, 697, 698, 699, 700, 701, 702,
|
||
703, 704, 705, 706, 707, 708, 709, 710, 711, 712,
|
||
0, 713, 714, 0, 7, 8, 9, 10, 0, 11,
|
||
116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 39, 0, 40, 41, 117, 0, 118,
|
||
119, 42, 43, 0, 120, 17, 0, 0, 45, 0,
|
||
0, 0, 18, 121, 0, 47, 159, 49, 0, 122,
|
||
123, 49, 0, 0, 22, 0, 0, 50, 51, 0,
|
||
0, 124, 125, 25, 0, 26, 52, 0, 0, 27,
|
||
55, 0, 53, 54, 126, 0, 0, 56, 417, 418,
|
||
419, 10, 0, 420, 38, 0, 0, 421, 0, 0,
|
||
0, 29, 0, 0, 0, 30, 31, 107, 0, 32,
|
||
0, 33, 0, 0, 924, 34, 131, 132, 133, 134,
|
||
135, 136, 137, 138, 0, 0, 0, 39, 0, 40,
|
||
41, 39, 139, 40, 41, 42, 422, 0, 44, 423,
|
||
0, 0, 45, 0, 0, 0, 424, 46, 0, 47,
|
||
159, 49, 0, 47, 48, 49, 0, 0, 425, 0,
|
||
0, 50, 51, 0, 0, 50, 51, 426, 0, 427,
|
||
52, 0, 0, 428, 55, 0, 53, 54, 55, 0,
|
||
0, 56, 417, 418, 419, 10, 0, 420, 38, 0,
|
||
0, 775, 0, 0, 0, 429, 0, 0, 0, 430,
|
||
0, 108, 0, 431, 0, 432, 0, 0, 315, 433,
|
||
140, 141, 0, 142, 143, 144, 145, 146, 147, 148,
|
||
149, 0, 150, 151, 152, 39, 0, 40, 41, 42,
|
||
422, 0, 44, 423, 0, 0, 45, 0, 0, 0,
|
||
424, 46, 0, 0, 0, 0, 0, 47, 48, 49,
|
||
0, 0, 425, 0, 0, 0, 0, 0, 0, 50,
|
||
51, 426, 0, 427, 52, 0, 0, 428, 0, 0,
|
||
53, 54, 55, 0, 0, 56, 7, 8, 9, 10,
|
||
0, 11, 12, 39, 0, 40, 41, 0, 0, 429,
|
||
0, 0, 0, 430, 0, 0, 0, 431, 0, 432,
|
||
0, 0, 0, 433, 0, 47, 159, 49, 0, 39,
|
||
0, 40, 41, 0, 0, 0, 155, 50, 51, 13,
|
||
0, 14, 15, 0, 0, 156, 16, 17, 0, 0,
|
||
55, 47, 157, 49, 18, 19, 0, 0, 0, 0,
|
||
0, 20, 21, 50, 51, 0, 22, 0, 0, 0,
|
||
0, 0, 0, 23, 24, 25, 55, 26, 0, 0,
|
||
0, 27, 7, 8, 9, 10, 28, 11, 12, 0,
|
||
0, 0, 0, 0, 0, 0, 39, 0, 40, 41,
|
||
0, 0, 0, 29, 0, 0, 0, 30, 31, 0,
|
||
0, 32, 261, 33, 0, 257, 0, 34, 47, 159,
|
||
49, 0, 0, 0, 0, 13, 0, 14, 15, 0,
|
||
50, 51, 16, 17, 0, 0, 0, 0, 0, 0,
|
||
18, 19, 0, 55, 0, 0, 0, 20, 21, 0,
|
||
0, 0, 22, 0, 0, 0, 0, 0, 0, 23,
|
||
24, 25, 0, 26, 0, 0, 0, 27, 7, 8,
|
||
9, 10, 28, 11, 12, 0, 0, 0, 0, 0,
|
||
0, 370, 0, 0, 0, 0, 0, 0, 0, 29,
|
||
0, 0, 0, 30, 31, 0, 0, 32, 0, 33,
|
||
0, 0, 0, 34, 0, 0, 0, 0, 0, 0,
|
||
0, 13, 0, 14, 15, 0, 0, 0, 16, 17,
|
||
0, 0, 0, 0, 0, 0, 18, 19, 0, 0,
|
||
0, 0, 0, 20, 21, 0, 0, 0, 22, 0,
|
||
0, 0, 0, 0, 0, 23, 24, 25, 0, 26,
|
||
0, 0, 0, 27, 7, 8, 9, 10, 28, 11,
|
||
12, 0, 0, 0, 0, 0, 0, 462, 0, 0,
|
||
0, 0, 0, 0, 0, 29, 0, 0, 0, 30,
|
||
31, 0, 0, 32, 0, 33, 0, 0, 0, 34,
|
||
0, 0, 0, 0, 0, 0, 0, 13, 0, 14,
|
||
15, 0, 0, 0, 16, 17, 0, 0, 0, 0,
|
||
0, 0, 18, 19, 0, 0, 0, 0, 0, 20,
|
||
21, 0, 0, 0, 22, 0, 0, 0, 0, 0,
|
||
0, 23, 24, 25, 0, 26, 0, 0, 0, 27,
|
||
7, 8, 9, 10, 28, 11, 12, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 29, 0, 0, 0, 30, 31, 0, 0, 32,
|
||
0, 33, 0, 798, 0, 34, 0, 0, 0, 0,
|
||
0, 0, 0, 13, 0, 14, 15, 0, 0, 0,
|
||
16, 17, 0, 0, 0, 0, 0, 0, 18, 19,
|
||
0, 0, 0, 0, 0, 20, 21, 0, 0, 0,
|
||
22, 0, 0, 0, 0, 0, 0, 23, 24, 25,
|
||
0, 26, 0, 0, 0, 27, 7, 8, 9, 10,
|
||
28, 11, 12, 0, 0, 0, 0, 0, 0, 813,
|
||
0, 0, 0, 0, 0, 0, 0, 29, 0, 0,
|
||
0, 30, 31, 0, 0, 32, 0, 33, 0, 0,
|
||
0, 34, 0, 0, 0, 0, 0, 0, 0, 13,
|
||
0, 14, 15, 0, 0, 0, 16, 17, 0, 0,
|
||
0, 0, 0, 0, 18, 19, 0, 0, 0, 0,
|
||
0, 20, 21, 0, 0, 0, 22, 0, 0, 0,
|
||
0, 0, 0, 23, 24, 25, 0, 26, 0, 0,
|
||
0, 27, 7, 8, 9, 10, 28, 11, 12, 0,
|
||
0, 0, 0, 0, 0, 7, 8, 9, 10, 0,
|
||
11, 0, 0, 29, 0, 0, 0, 30, 31, 0,
|
||
0, 32, 0, 33, 0, 898, 0, 34, 0, 0,
|
||
0, 0, 0, 0, 0, 13, 0, 14, 15, 0,
|
||
0, 0, 16, 17, 0, 0, 0, 0, 0, 0,
|
||
18, 19, 0, 0, 0, 0, 748, 20, 21, 0,
|
||
0, 0, 22, 18, 0, 0, 0, 0, 0, 23,
|
||
24, 25, 0, 26, 0, 0, 0, 27, 0, 0,
|
||
0, 0, 28, 0, 749, 0, 750, 0, 0, 0,
|
||
27, 133, 134, 135, 136, 137, 138, 0, 0, 29,
|
||
0, 0, 0, 30, 31, 139, 0, 32, 0, 33,
|
||
0, 0, 751, 34, 0, 0, 752, 753, 0, 0,
|
||
754, 0, 755, 0, 0, 0, 756, 131, 132, 133,
|
||
134, 135, 136, 137, 138, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 139, 0, 0, 131, 132, 133, 134,
|
||
135, 136, 137, 138, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 139, 0, 0, 131, 132, 133, 134, 135,
|
||
136, 137, 138, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 139, 0, 0, 141, 0, 142, 143, 144, 145,
|
||
146, 147, 148, 149, 0, 150, 151, 152, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 140, 141, 0, 142, 143, 144, 145, 146, 147,
|
||
148, 149, 0, 150, 151, 152, 0, 0, 0, 317,
|
||
140, 141, 0, 142, 143, 144, 145, 146, 147, 148,
|
||
149, 0, 150, 151, 152, 0, 0, 0, 864, 140,
|
||
141, 0, 142, 143, 144, 145, 146, 147, 148, 149,
|
||
0, 150, 151, 152, 335, 336, 0, 920, 470, 471,
|
||
472, 473, 474, 475, 476, 477, 39, 0, 40, 41,
|
||
0, 0, 0, 0, 478, 0, 479, 480, 481, 482,
|
||
483, 484, 485, 486, 487, 488, 489, 490, 47, 159,
|
||
49, 0, 39, 0, 40, 41, 0, 491, 0, 44,
|
||
50, 51, 0, 0, 0, 0, 0, 0, 46, 0,
|
||
0, 0, 0, 55, 47, 48, 49, 0, 492, 0,
|
||
0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
|
||
189, 190, 0, 0, 0, 0, 0, 339, 0, 55,
|
||
111, 0, 56, 0, 0, 0, 0, 0, 493, 0,
|
||
0, 494, 0, 495, 496, 497, 498, 499, 500, 501,
|
||
502, 503, 504, 505, 0, 506, 507, 191, 39, 508,
|
||
40, 41, 42, 192, 0, 44, 0, 0, 0, 45,
|
||
193, 194, 0, 0, 46, 189, 190, 0, 0, 195,
|
||
47, 48, 49, 196, 0, 0, 197, 0, 0, 0,
|
||
198, 0, 50, 51, 0, 199, 0, 52, 0, 0,
|
||
0, 0, 0, 200, 54, 55, 0, 201, 56, 202,
|
||
0, 0, 191, 39, 203, 40, 41, 42, 276, 0,
|
||
44, 0, 0, 0, 45, 193, 194, 0, 0, 46,
|
||
204, 0, 189, 190, 195, 47, 48, 49, 196, 0,
|
||
0, 197, 0, 0, 0, 198, 0, 50, 51, 0,
|
||
199, 0, 52, 0, 0, 0, 0, 0, 200, 54,
|
||
55, 0, 201, 56, 202, 0, 0, 0, 0, 191,
|
||
39, 0, 40, 41, 42, 192, 0, 44, 0, 0,
|
||
0, 45, 193, 194, 0, 204, 46, 0, 0, 0,
|
||
0, 195, 47, 48, 49, 196, 0, 0, 197, 0,
|
||
0, 0, 198, 0, 50, 51, 0, 199, 0, 52,
|
||
0, 0, 0, 0, 0, 200, 54, 55, 0, 201,
|
||
56, 202, 131, 132, 133, 134, 135, 136, 137, 138,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 139, 0,
|
||
0, 0, 204, 131, 132, 133, 134, 135, 136, 137,
|
||
138, 0, 0, 0, 0, 0, 0, 0, 0, 139,
|
||
131, 132, 133, 134, 135, 136, 137, 138, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 139, 577, 578, 579,
|
||
580, 581, 582, 583, 584, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 585, 831, 832, 833, 834, 835, 836,
|
||
837, 838, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
839, 0, 0, 467, 0, 0, 140, 141, 0, 142,
|
||
143, 144, 145, 146, 147, 148, 149, 0, 150, 151,
|
||
152, 0, 0, 0, 0, 862, 0, 140, 141, 0,
|
||
142, 143, 144, 145, 146, 147, 148, 149, 0, 150,
|
||
151, 152, 0, 0, 140, 141, 0, 142, 143, 144,
|
||
145, 146, 147, 148, 149, 0, 150, 151, 152, 0,
|
||
0, 586, 587, 0, 588, 589, 590, 591, 592, 593,
|
||
594, 595, 0, 596, 597, 598, 918, 0, 840, 841,
|
||
0, 842, 0, 0, 843, 844, 845, 846, 847, 0,
|
||
848, 849, 850, 831, 832, 833, 834, 835, 836, 837,
|
||
838, 0, 0, 0, 0, 0, 0, 0, 0, 839,
|
||
133, 134, 135, 136, 137, 138, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 139, 133, 134, 135, 136, 137,
|
||
138, 0, 0, 0, 0, 0, 0, 0, 0, 139,
|
||
833, 834, 835, 836, 837, 838, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 839, 833, 834, 835, 836, 837,
|
||
838, 0, 0, 0, 0, 0, 0, 0, 0, 839,
|
||
833, 834, 835, 836, 837, 838, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 839, 0, 0, 840, 841, 0,
|
||
842, 0, 0, 843, 844, 845, 846, 847, 0, 848,
|
||
849, 850, 0, 0, 0, 142, 143, 144, 145, 146,
|
||
147, 148, 149, 0, 150, 151, 152, 0, 0, 0,
|
||
0, 143, 144, 145, 146, 147, 148, 149, 0, 150,
|
||
151, 152, 0, 841, 0, 842, 0, -2, 843, 844,
|
||
845, 846, 847, 0, 848, 849, 850, 0, 0, 0,
|
||
842, 0, 0, 843, 844, 845, 846, 847, 0, 848,
|
||
849, 850, 0, 0, 0, 0, 0, 0, 843, 844,
|
||
845, 846, 847, 0, 848, 849, 850, 135, 136, 137,
|
||
138, 70, 0, 0, 0, 0, 0, 0, 0, 139,
|
||
0, 0, 0, 71, 0, 0, 0, 72, 0, 0,
|
||
73, 0, 0, 835, 836, 837, 838, 0, 0, 74,
|
||
0, 0, 75, 76, 77, 839, 0, 0, 0, 0,
|
||
0, 0, 0, 78, 0, 0, 0, 79, 0, 0,
|
||
0, 80, 0, 0, 0, 0, 70, 0, 0, 0,
|
||
0, 81, 0, 0, 0, 0, 0, 0, 71, 0,
|
||
335, 336, 72, 0, 0, 73, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 74, 0, 0, 75, 76, 77,
|
||
0, 143, 144, 145, 146, 147, 148, 149, 78, 150,
|
||
151, 152, 79, 0, 0, 0, 80, 0, 39, 0,
|
||
40, 41, 337, 338, 0, 44, 81, 0, 0, 843,
|
||
844, 845, 846, 847, 46, 848, 849, 850, 38, 70,
|
||
47, 48, 49, 0, 0, 333, 0, 0, 0, 0,
|
||
0, 71, 50, 51, 0, 72, 0, 0, 73, 0,
|
||
0, 0, 0, 339, 0, 55, 0, 74, 56, 0,
|
||
75, 76, 77, 0, 0, 39, 0, 40, 41, 42,
|
||
43, 78, 44, 0, 0, 79, 45, 38, 0, 80,
|
||
0, 46, 0, 0, 0, 0, 0, 47, 48, 49,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
|
||
51, 0, 0, 0, 52, 0, 0, 0, 0, 0,
|
||
53, 54, 55, 0, 39, 56, 40, 41, 42, 284,
|
||
0, 44, 0, 0, 0, 45, 101, 0, 0, 0,
|
||
46, 0, 0, 0, 0, 0, 47, 48, 49, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 50, 51,
|
||
0, 0, 0, 52, 0, 0, 0, 0, 0, 53,
|
||
54, 55, 0, 39, 56, 40, 41, 42, 0, 0,
|
||
44, 0, 0, 0, 45, 38, 0, 0, 0, 46,
|
||
0, 0, 0, 0, 0, 47, 48, 49, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 50, 51, 0,
|
||
0, 0, 52, 0, 0, 0, 0, 0, 102, 54,
|
||
55, 0, 39, 56, 40, 41, 42, 0, 0, 44,
|
||
0, 70, 0, 45, 0, 0, 0, 0, 46, 0,
|
||
0, 0, 0, 71, 47, 48, 49, 72, 0, 0,
|
||
73, 0, 0, 0, 0, 0, 50, 51, 0, 74,
|
||
0, 52, 75, 76, 77, 0, 70, 53, 54, 55,
|
||
0, 0, 56, 78, 0, 0, 0, 79, 71, 0,
|
||
0, 80, 72, 0, 0, 73, 0, 0, 0, 0,
|
||
70, 81, 0, 0, 74, 0, 0, 75, 76, 77,
|
||
0, 0, 71, 0, 0, 0, 72, 0, 78, 73,
|
||
391, 0, 79, 0, 0, 70, 80, 0, 74, 0,
|
||
0, 75, 76, 77, 0, 0, 81, 71, 0, 0,
|
||
0, 72, 78, 0, 73, 0, 79, 0, 0, 0,
|
||
80, 0, 0, 74, 0, 454, 75, 76, 77, 0,
|
||
81, 0, 0, 0, 0, 0, 0, 78, 0, 0,
|
||
0, 79, 0, 0, 0, 80, 0, 0, 0, 540,
|
||
0, 0, 0, 0, 0, 81, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
0, 0, 0, 0, 743
|
||
};
|
||
|
||
static const short int yycheck[] =
|
||
{
|
||
1, 22, 33, 462, 5, 93, 94, 95, 96, 22,
|
||
98, 99, 100, 352, 416, 179, 12, 79, 453, 107,
|
||
108, 85, 85, 111, 85, 10, 85, 8, 9, 0,
|
||
8, 9, 10, 120, 10, 8, 9, 102, 43, 154,
|
||
105, 33, 348, 120, 446, 351, 385, 353, 8, 9,
|
||
10, 120, 167, 168, 169, 170, 57, 8, 9, 106,
|
||
8, 9, 193, 103, 85, 103, 2, 373, 120, 375,
|
||
376, 377, 85, 51, 121, 51, 8, 9, 79, 120,
|
||
277, 516, 122, 111, 122, 103, 393, 394, 99, 100,
|
||
101, 51, 401, 29, 30, 31, 32, 120, 34, 408,
|
||
409, 410, 411, 120, 122, 97, 270, 103, 414, 8,
|
||
9, 420, 103, 120, 74, 602, 455, 109, 110, 554,
|
||
151, 185, 185, 287, 185, 111, 185, 120, 437, 102,
|
||
115, 122, 110, 103, 110, 6, 442, 115, 226, 115,
|
||
72, 122, 120, 106, 120, 120, 103, 262, 120, 121,
|
||
110, 102, 122, 154, 102, 115, 558, 103, 121, 561,
|
||
120, 103, 468, 122, 185, 122, 167, 168, 169, 170,
|
||
334, 120, 185, 22, 576, 103, 122, 178, 179, 120,
|
||
122, 48, 379, 50, 51, 29, 105, 192, 55, 8,
|
||
9, 10, 197, 105, 122, 131, 132, 133, 134, 135,
|
||
136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
|
||
146, 147, 148, 149, 150, 103, 152, 29, 349, 416,
|
||
527, 352, 103, 105, 531, 105, 533, 29, 535, 536,
|
||
537, 103, 51, 397, 122, 120, 85, 115, 354, 548,
|
||
102, 122, 358, 359, 360, 121, 733, 29, 105, 446,
|
||
122, 8, 9, 562, 385, 102, 123, 124, 125, 126,
|
||
111, 262, 275, 120, 121, 122, 267, 268, 607, 270,
|
||
271, 276, 273, 6, 275, 119, 120, 121, 4, 284,
|
||
29, 120, 8, 9, 285, 102, 287, 104, 105, 106,
|
||
157, 110, 159, 50, 121, 122, 115, 120, 234, 235,
|
||
104, 113, 114, 115, 116, 117, 122, 119, 120, 121,
|
||
103, 113, 114, 115, 116, 117, 122, 119, 120, 121,
|
||
112, 808, 102, 103, 455, 338, 327, 328, 85, 120,
|
||
121, 267, 448, 334, 91, 92, 185, 119, 120, 121,
|
||
112, 403, 343, 122, 349, 120, 121, 352, 349, 122,
|
||
381, 352, 383, 354, 813, 122, 292, 358, 359, 360,
|
||
122, 558, 363, 765, 122, 366, 115, 116, 117, 370,
|
||
119, 120, 121, 461, 75, 76, 77, 29, 379, 315,
|
||
385, 122, 869, 122, 385, 122, 873, 121, 122, 728,
|
||
122, 404, 122, 105, 95, 120, 397, 120, 399, 120,
|
||
401, 432, 403, 122, 425, 120, 123, 408, 409, 410,
|
||
411, 412, 425, 105, 125, 416, 105, 422, 103, 420,
|
||
106, 102, 909, 103, 553, 112, 913, 103, 120, 121,
|
||
122, 120, 121, 122, 370, 123, 437, 115, 115, 926,
|
||
432, 75, 76, 77, 575, 446, 120, 448, 935, 115,
|
||
455, 123, 453, 389, 455, 106, 762, 86, 115, 120,
|
||
122, 462, 53, 115, 116, 117, 805, 119, 120, 121,
|
||
111, 111, 63, 64, 122, 121, 607, 103, 123, 543,
|
||
543, 820, 543, 74, 543, 46, 122, 48, 49, 80,
|
||
19, 20, 53, 429, 430, 431, 103, 433, 804, 121,
|
||
29, 62, 125, 122, 106, 103, 120, 68, 69, 70,
|
||
122, 102, 51, 104, 105, 516, 4, 453, 103, 80,
|
||
81, 120, 543, 123, 125, 122, 462, 866, 122, 125,
|
||
543, 123, 93, 120, 111, 111, 120, 538, 19, 20,
|
||
103, 542, 125, 392, 393, 394, 852, 548, 29, 541,
|
||
112, 122, 112, 554, 87, 120, 122, 558, 122, 120,
|
||
561, 562, 120, 122, 120, 122, 597, 120, 907, 123,
|
||
575, 563, 573, 565, 566, 576, 425, 122, 514, 122,
|
||
516, 112, 122, 120, 113, 114, 115, 116, 117, 112,
|
||
119, 120, 121, 120, 122, 460, 187, 728, 122, 178,
|
||
122, 602, 607, 403, 730, 804, 607, 762, 852, 200,
|
||
185, 338, 102, 204, 104, 105, 106, 403, 554, 404,
|
||
211, 212, 751, 752, 753, 754, 542, 756, 575, 425,
|
||
120, 121, 113, 114, 115, 116, 117, 185, 119, 120,
|
||
121, 577, 578, 579, 580, 581, 582, 583, 584, 585,
|
||
586, 587, 588, 589, 590, 591, 592, 593, 594, 595,
|
||
596, 459, 598, 398, 327, 692, 14, 15, 16, 17,
|
||
18, 19, 20, -1, 805, -1, -1, 268, 527, 767,
|
||
-1, 29, 531, -1, 533, -1, 535, 536, 537, 820,
|
||
-1, 692, -1, -1, 543, -1, -1, 8, 9, -1,
|
||
291, -1, 831, 832, 833, 834, 835, 836, 837, 838,
|
||
839, 840, 841, 842, 843, 844, 845, 846, 847, 848,
|
||
-1, -1, -1, 728, 755, -1, -1, 728, -1, -1,
|
||
-1, -1, 733, 8, 9, 866, 327, -1, -1, 50,
|
||
-1, -1, -1, -1, -1, -1, 337, -1, 339, 878,
|
||
-1, -1, -1, -1, -1, -1, 751, 752, 753, 754,
|
||
108, 756, 110, 755, 765, 113, 114, 115, 116, 117,
|
||
-1, 119, 120, 121, 85, 50, 907, -1, -1, -1,
|
||
91, 92, -1, -1, 95, 721, -1, -1, -1, 918,
|
||
14, 15, 16, 17, 18, 19, 20, 388, 734, -1,
|
||
805, 392, 393, 394, 805, 29, -1, 808, -1, -1,
|
||
85, -1, 813, -1, -1, 820, 91, 92, 849, 820,
|
||
95, -1, -1, -1, -1, -1, -1, 763, -1, 821,
|
||
822, 823, 8, 9, 770, -1, 831, 832, 833, 834,
|
||
835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
|
||
845, 846, 847, 848, -1, -1, -1, -1, -1, -1,
|
||
-1, 866, -1, -1, -1, 866, -1, -1, 869, 460,
|
||
-1, 902, 873, 904, 50, -1, -1, 813, -1, -1,
|
||
-1, -1, -1, 878, 108, -1, 110, 111, 112, 113,
|
||
114, 115, 116, 117, -1, 119, 120, 121, 929, 930,
|
||
-1, -1, 907, -1, -1, -1, 907, -1, 909, 85,
|
||
-1, -1, 913, -1, 850, 91, 92, -1, -1, 95,
|
||
-1, -1, 513, 918, -1, 926, 862, -1, -1, -1,
|
||
-1, -1, -1, -1, 935, 526, 527, 528, -1, -1,
|
||
531, -1, 533, -1, 535, 536, 537, 3, 4, 5,
|
||
6, 7, 8, 9, 10, -1, 12, 13, 14, 15,
|
||
16, 17, 18, 19, 20, 21, 22, -1, -1, -1,
|
||
-1, -1, -1, 29, 30, 31, 32, 33, 34, 35,
|
||
36, 37, 38, 39, 40, 41, 42, 43, -1, -1,
|
||
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
|
||
-1, 57, 58, 59, 60, 61, 62, 63, 64, 65,
|
||
66, 67, 68, 69, -1, 71, -1, 73, 74, 75,
|
||
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
|
||
-1, 87, 88, 89, 90, 91, 92, 93, -1, 95,
|
||
96, 97, 98, -1, -1, -1, 102, 103, 104, 105,
|
||
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
|
||
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
|
||
3, 4, 5, 6, 7, 8, 9, 10, -1, 12,
|
||
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
|
||
-1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
|
||
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
|
||
43, -1, -1, 46, 47, 48, 49, 50, 51, 52,
|
||
53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
|
||
63, 64, 65, 66, 67, 68, 69, -1, 71, -1,
|
||
73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
|
||
83, 84, 85, -1, 87, 88, 89, 90, 91, 92,
|
||
93, -1, 95, 96, 97, 98, -1, -1, -1, 102,
|
||
103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
|
||
113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
|
||
-1, 124, 125, -1, 3, 4, 5, 6, -1, 8,
|
||
9, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, 46, -1, 48, 49, 46, -1, 48,
|
||
49, 50, 51, -1, 53, 54, -1, -1, 57, -1,
|
||
-1, -1, 61, 62, -1, 68, 69, 70, -1, 68,
|
||
69, 70, -1, -1, 73, -1, -1, 80, 81, -1,
|
||
-1, 80, 81, 82, -1, 84, 85, -1, -1, 88,
|
||
93, -1, 91, 92, 93, -1, -1, 96, 3, 4,
|
||
5, 6, -1, 8, 9, -1, -1, 12, -1, -1,
|
||
-1, 110, -1, -1, -1, 114, 115, 120, -1, 118,
|
||
-1, 120, -1, -1, 905, 124, 13, 14, 15, 16,
|
||
17, 18, 19, 20, -1, -1, -1, 46, -1, 48,
|
||
49, 46, 29, 48, 49, 50, 51, -1, 53, 54,
|
||
-1, -1, 57, -1, -1, -1, 61, 62, -1, 68,
|
||
69, 70, -1, 68, 69, 70, -1, -1, 73, -1,
|
||
-1, 80, 81, -1, -1, 80, 81, 82, -1, 84,
|
||
85, -1, -1, 88, 93, -1, 91, 92, 93, -1,
|
||
-1, 96, 3, 4, 5, 6, -1, 8, 9, -1,
|
||
-1, 12, -1, -1, -1, 110, -1, -1, -1, 114,
|
||
-1, 120, -1, 118, -1, 120, -1, -1, 105, 124,
|
||
107, 108, -1, 110, 111, 112, 113, 114, 115, 116,
|
||
117, -1, 119, 120, 121, 46, -1, 48, 49, 50,
|
||
51, -1, 53, 54, -1, -1, 57, -1, -1, -1,
|
||
61, 62, -1, -1, -1, -1, -1, 68, 69, 70,
|
||
-1, -1, 73, -1, -1, -1, -1, -1, -1, 80,
|
||
81, 82, -1, 84, 85, -1, -1, 88, -1, -1,
|
||
91, 92, 93, -1, -1, 96, 3, 4, 5, 6,
|
||
-1, 8, 9, 46, -1, 48, 49, -1, -1, 110,
|
||
-1, -1, -1, 114, -1, -1, -1, 118, -1, 120,
|
||
-1, -1, -1, 124, -1, 68, 69, 70, -1, 46,
|
||
-1, 48, 49, -1, -1, -1, 53, 80, 81, 46,
|
||
-1, 48, 49, -1, -1, 62, 53, 54, -1, -1,
|
||
93, 68, 69, 70, 61, 62, -1, -1, -1, -1,
|
||
-1, 68, 69, 80, 81, -1, 73, -1, -1, -1,
|
||
-1, -1, -1, 80, 81, 82, 93, 84, -1, -1,
|
||
-1, 88, 3, 4, 5, 6, 93, 8, 9, -1,
|
||
-1, -1, -1, -1, -1, -1, 46, -1, 48, 49,
|
||
-1, -1, -1, 110, -1, -1, -1, 114, 115, -1,
|
||
-1, 118, 62, 120, -1, 122, -1, 124, 68, 69,
|
||
70, -1, -1, -1, -1, 46, -1, 48, 49, -1,
|
||
80, 81, 53, 54, -1, -1, -1, -1, -1, -1,
|
||
61, 62, -1, 93, -1, -1, -1, 68, 69, -1,
|
||
-1, -1, 73, -1, -1, -1, -1, -1, -1, 80,
|
||
81, 82, -1, 84, -1, -1, -1, 88, 3, 4,
|
||
5, 6, 93, 8, 9, -1, -1, -1, -1, -1,
|
||
-1, 102, -1, -1, -1, -1, -1, -1, -1, 110,
|
||
-1, -1, -1, 114, 115, -1, -1, 118, -1, 120,
|
||
-1, -1, -1, 124, -1, -1, -1, -1, -1, -1,
|
||
-1, 46, -1, 48, 49, -1, -1, -1, 53, 54,
|
||
-1, -1, -1, -1, -1, -1, 61, 62, -1, -1,
|
||
-1, -1, -1, 68, 69, -1, -1, -1, 73, -1,
|
||
-1, -1, -1, -1, -1, 80, 81, 82, -1, 84,
|
||
-1, -1, -1, 88, 3, 4, 5, 6, 93, 8,
|
||
9, -1, -1, -1, -1, -1, -1, 102, -1, -1,
|
||
-1, -1, -1, -1, -1, 110, -1, -1, -1, 114,
|
||
115, -1, -1, 118, -1, 120, -1, -1, -1, 124,
|
||
-1, -1, -1, -1, -1, -1, -1, 46, -1, 48,
|
||
49, -1, -1, -1, 53, 54, -1, -1, -1, -1,
|
||
-1, -1, 61, 62, -1, -1, -1, -1, -1, 68,
|
||
69, -1, -1, -1, 73, -1, -1, -1, -1, -1,
|
||
-1, 80, 81, 82, -1, 84, -1, -1, -1, 88,
|
||
3, 4, 5, 6, 93, 8, 9, -1, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, 110, -1, -1, -1, 114, 115, -1, -1, 118,
|
||
-1, 120, -1, 122, -1, 124, -1, -1, -1, -1,
|
||
-1, -1, -1, 46, -1, 48, 49, -1, -1, -1,
|
||
53, 54, -1, -1, -1, -1, -1, -1, 61, 62,
|
||
-1, -1, -1, -1, -1, 68, 69, -1, -1, -1,
|
||
73, -1, -1, -1, -1, -1, -1, 80, 81, 82,
|
||
-1, 84, -1, -1, -1, 88, 3, 4, 5, 6,
|
||
93, 8, 9, -1, -1, -1, -1, -1, -1, 102,
|
||
-1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
|
||
-1, 114, 115, -1, -1, 118, -1, 120, -1, -1,
|
||
-1, 124, -1, -1, -1, -1, -1, -1, -1, 46,
|
||
-1, 48, 49, -1, -1, -1, 53, 54, -1, -1,
|
||
-1, -1, -1, -1, 61, 62, -1, -1, -1, -1,
|
||
-1, 68, 69, -1, -1, -1, 73, -1, -1, -1,
|
||
-1, -1, -1, 80, 81, 82, -1, 84, -1, -1,
|
||
-1, 88, 3, 4, 5, 6, 93, 8, 9, -1,
|
||
-1, -1, -1, -1, -1, 3, 4, 5, 6, -1,
|
||
8, -1, -1, 110, -1, -1, -1, 114, 115, -1,
|
||
-1, 118, -1, 120, -1, 122, -1, 124, -1, -1,
|
||
-1, -1, -1, -1, -1, 46, -1, 48, 49, -1,
|
||
-1, -1, 53, 54, -1, -1, -1, -1, -1, -1,
|
||
61, 62, -1, -1, -1, -1, 54, 68, 69, -1,
|
||
-1, -1, 73, 61, -1, -1, -1, -1, -1, 80,
|
||
81, 82, -1, 84, -1, -1, -1, 88, -1, -1,
|
||
-1, -1, 93, -1, 82, -1, 84, -1, -1, -1,
|
||
88, 15, 16, 17, 18, 19, 20, -1, -1, 110,
|
||
-1, -1, -1, 114, 115, 29, -1, 118, -1, 120,
|
||
-1, -1, 110, 124, -1, -1, 114, 115, -1, -1,
|
||
118, -1, 120, -1, -1, -1, 124, 13, 14, 15,
|
||
16, 17, 18, 19, 20, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, 29, -1, -1, 13, 14, 15, 16,
|
||
17, 18, 19, 20, -1, -1, -1, -1, -1, -1,
|
||
-1, -1, 29, -1, -1, 13, 14, 15, 16, 17,
|
||
18, 19, 20, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, 29, -1, -1, 108, -1, 110, 111, 112, 113,
|
||
114, 115, 116, 117, -1, 119, 120, 121, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, 107, 108, -1, 110, 111, 112, 113, 114, 115,
|
||
116, 117, -1, 119, 120, 121, -1, -1, -1, 125,
|
||
107, 108, -1, 110, 111, 112, 113, 114, 115, 116,
|
||
117, -1, 119, 120, 121, -1, -1, -1, 125, 107,
|
||
108, -1, 110, 111, 112, 113, 114, 115, 116, 117,
|
||
-1, 119, 120, 121, 8, 9, -1, 125, 13, 14,
|
||
15, 16, 17, 18, 19, 20, 46, -1, 48, 49,
|
||
-1, -1, -1, -1, 29, -1, 31, 32, 33, 34,
|
||
35, 36, 37, 38, 39, 40, 41, 42, 68, 69,
|
||
70, -1, 46, -1, 48, 49, -1, 52, -1, 53,
|
||
80, 81, -1, -1, -1, -1, -1, -1, 62, -1,
|
||
-1, -1, -1, 93, 68, 69, 70, -1, 73, -1,
|
||
-1, -1, -1, -1, -1, -1, 80, 81, -1, -1,
|
||
8, 9, -1, -1, -1, -1, -1, 91, -1, 93,
|
||
120, -1, 96, -1, -1, -1, -1, -1, 103, -1,
|
||
-1, 106, -1, 108, 109, 110, 111, 112, 113, 114,
|
||
115, 116, 117, 118, -1, 120, 121, 45, 46, 124,
|
||
48, 49, 50, 51, -1, 53, -1, -1, -1, 57,
|
||
58, 59, -1, -1, 62, 8, 9, -1, -1, 67,
|
||
68, 69, 70, 71, -1, -1, 74, -1, -1, -1,
|
||
78, -1, 80, 81, -1, 83, -1, 85, -1, -1,
|
||
-1, -1, -1, 91, 92, 93, -1, 95, 96, 97,
|
||
-1, -1, 45, 46, 102, 48, 49, 50, 51, -1,
|
||
53, -1, -1, -1, 57, 58, 59, -1, -1, 62,
|
||
118, -1, 8, 9, 67, 68, 69, 70, 71, -1,
|
||
-1, 74, -1, -1, -1, 78, -1, 80, 81, -1,
|
||
83, -1, 85, -1, -1, -1, -1, -1, 91, 92,
|
||
93, -1, 95, 96, 97, -1, -1, -1, -1, 45,
|
||
46, -1, 48, 49, 50, 51, -1, 53, -1, -1,
|
||
-1, 57, 58, 59, -1, 118, 62, -1, -1, -1,
|
||
-1, 67, 68, 69, 70, 71, -1, -1, 74, -1,
|
||
-1, -1, 78, -1, 80, 81, -1, 83, -1, 85,
|
||
-1, -1, -1, -1, -1, 91, 92, 93, -1, 95,
|
||
96, 97, 13, 14, 15, 16, 17, 18, 19, 20,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, 29, -1,
|
||
-1, -1, 118, 13, 14, 15, 16, 17, 18, 19,
|
||
20, -1, -1, -1, -1, -1, -1, -1, -1, 29,
|
||
13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, 29, 13, 14, 15,
|
||
16, 17, 18, 19, 20, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, 29, 13, 14, 15, 16, 17, 18,
|
||
19, 20, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
29, -1, -1, 104, -1, -1, 107, 108, -1, 110,
|
||
111, 112, 113, 114, 115, 116, 117, -1, 119, 120,
|
||
121, -1, -1, -1, -1, 105, -1, 107, 108, -1,
|
||
110, 111, 112, 113, 114, 115, 116, 117, -1, 119,
|
||
120, 121, -1, -1, 107, 108, -1, 110, 111, 112,
|
||
113, 114, 115, 116, 117, -1, 119, 120, 121, -1,
|
||
-1, 107, 108, -1, 110, 111, 112, 113, 114, 115,
|
||
116, 117, -1, 119, 120, 121, 105, -1, 107, 108,
|
||
-1, 110, -1, -1, 113, 114, 115, 116, 117, -1,
|
||
119, 120, 121, 13, 14, 15, 16, 17, 18, 19,
|
||
20, -1, -1, -1, -1, -1, -1, -1, -1, 29,
|
||
15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, 29, 15, 16, 17, 18, 19,
|
||
20, -1, -1, -1, -1, -1, -1, -1, -1, 29,
|
||
15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, 29, 15, 16, 17, 18, 19,
|
||
20, -1, -1, -1, -1, -1, -1, -1, -1, 29,
|
||
15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, 29, -1, -1, 107, 108, -1,
|
||
110, -1, -1, 113, 114, 115, 116, 117, -1, 119,
|
||
120, 121, -1, -1, -1, 110, 111, 112, 113, 114,
|
||
115, 116, 117, -1, 119, 120, 121, -1, -1, -1,
|
||
-1, 111, 112, 113, 114, 115, 116, 117, -1, 119,
|
||
120, 121, -1, 108, -1, 110, -1, 0, 113, 114,
|
||
115, 116, 117, -1, 119, 120, 121, -1, -1, -1,
|
||
110, -1, -1, 113, 114, 115, 116, 117, -1, 119,
|
||
120, 121, -1, -1, -1, -1, -1, -1, 113, 114,
|
||
115, 116, 117, -1, 119, 120, 121, 17, 18, 19,
|
||
20, 44, -1, -1, -1, -1, -1, -1, -1, 29,
|
||
-1, -1, -1, 56, -1, -1, -1, 60, -1, -1,
|
||
63, -1, -1, 17, 18, 19, 20, -1, -1, 72,
|
||
-1, -1, 75, 76, 77, 29, -1, -1, -1, -1,
|
||
-1, -1, -1, 86, -1, -1, -1, 90, -1, -1,
|
||
-1, 94, -1, -1, -1, -1, 44, -1, -1, -1,
|
||
-1, 104, -1, -1, -1, -1, -1, -1, 56, -1,
|
||
8, 9, 60, -1, -1, 63, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, 72, -1, -1, 75, 76, 77,
|
||
-1, 111, 112, 113, 114, 115, 116, 117, 86, 119,
|
||
120, 121, 90, -1, -1, -1, 94, -1, 46, -1,
|
||
48, 49, 50, 51, -1, 53, 104, -1, -1, 113,
|
||
114, 115, 116, 117, 62, 119, 120, 121, 9, 44,
|
||
68, 69, 70, -1, -1, 123, -1, -1, -1, -1,
|
||
-1, 56, 80, 81, -1, 60, -1, -1, 63, -1,
|
||
-1, -1, -1, 91, -1, 93, -1, 72, 96, -1,
|
||
75, 76, 77, -1, -1, 46, -1, 48, 49, 50,
|
||
51, 86, 53, -1, -1, 90, 57, 9, -1, 94,
|
||
-1, 62, -1, -1, -1, -1, -1, 68, 69, 70,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, 80,
|
||
81, -1, -1, -1, 85, -1, -1, -1, -1, -1,
|
||
91, 92, 93, -1, 46, 96, 48, 49, 50, 51,
|
||
-1, 53, -1, -1, -1, 57, 9, -1, -1, -1,
|
||
62, -1, -1, -1, -1, -1, 68, 69, 70, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, 80, 81,
|
||
-1, -1, -1, 85, -1, -1, -1, -1, -1, 91,
|
||
92, 93, -1, 46, 96, 48, 49, 50, -1, -1,
|
||
53, -1, -1, -1, 57, 9, -1, -1, -1, 62,
|
||
-1, -1, -1, -1, -1, 68, 69, 70, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, 80, 81, -1,
|
||
-1, -1, 85, -1, -1, -1, -1, -1, 91, 92,
|
||
93, -1, 46, 96, 48, 49, 50, -1, -1, 53,
|
||
-1, 44, -1, 57, -1, -1, -1, -1, 62, -1,
|
||
-1, -1, -1, 56, 68, 69, 70, 60, -1, -1,
|
||
63, -1, -1, -1, -1, -1, 80, 81, -1, 72,
|
||
-1, 85, 75, 76, 77, -1, 44, 91, 92, 93,
|
||
-1, -1, 96, 86, -1, -1, -1, 90, 56, -1,
|
||
-1, 94, 60, -1, -1, 63, -1, -1, -1, -1,
|
||
44, 104, -1, -1, 72, -1, -1, 75, 76, 77,
|
||
-1, -1, 56, -1, -1, -1, 60, -1, 86, 63,
|
||
123, -1, 90, -1, -1, 44, 94, -1, 72, -1,
|
||
-1, 75, 76, 77, -1, -1, 104, 56, -1, -1,
|
||
-1, 60, 86, -1, 63, -1, 90, -1, -1, -1,
|
||
94, -1, -1, 72, -1, 123, 75, 76, 77, -1,
|
||
104, -1, -1, -1, -1, -1, -1, 86, -1, -1,
|
||
-1, 90, -1, -1, -1, 94, -1, -1, -1, 123,
|
||
-1, -1, -1, -1, -1, 104, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||
-1, -1, -1, -1, 123
|
||
};
|
||
|
||
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
||
symbol of state STATE-NUM. */
|
||
static const unsigned char yystos[] =
|
||
{
|
||
0, 99, 100, 101, 127, 128, 219, 3, 4, 5,
|
||
6, 8, 9, 46, 48, 49, 53, 54, 61, 62,
|
||
68, 69, 73, 80, 81, 82, 84, 88, 93, 110,
|
||
114, 115, 118, 120, 124, 212, 213, 218, 9, 46,
|
||
48, 49, 50, 51, 53, 57, 62, 68, 69, 70,
|
||
80, 81, 85, 91, 92, 93, 96, 178, 181, 182,
|
||
184, 189, 191, 195, 196, 200, 201, 202, 203, 0,
|
||
44, 56, 60, 63, 72, 75, 76, 77, 86, 90,
|
||
94, 104, 131, 133, 134, 136, 137, 138, 159, 197,
|
||
199, 219, 120, 120, 120, 120, 120, 111, 120, 120,
|
||
120, 9, 91, 180, 195, 196, 200, 120, 120, 120,
|
||
111, 120, 212, 212, 212, 212, 9, 46, 48, 49,
|
||
53, 62, 68, 69, 80, 81, 93, 181, 210, 212,
|
||
212, 13, 14, 15, 16, 17, 18, 19, 20, 29,
|
||
107, 108, 110, 111, 112, 113, 114, 115, 116, 117,
|
||
119, 120, 121, 6, 178, 53, 62, 69, 201, 69,
|
||
201, 201, 8, 9, 217, 201, 10, 51, 110, 115,
|
||
120, 177, 219, 102, 217, 102, 217, 105, 135, 102,
|
||
217, 105, 105, 105, 160, 136, 143, 72, 217, 8,
|
||
9, 45, 51, 58, 59, 67, 71, 74, 78, 83,
|
||
91, 95, 97, 102, 118, 148, 179, 182, 184, 189,
|
||
191, 195, 196, 200, 209, 210, 219, 209, 209, 209,
|
||
209, 181, 209, 209, 209, 217, 120, 217, 217, 209,
|
||
209, 181, 181, 209, 122, 103, 122, 212, 212, 212,
|
||
212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
|
||
212, 212, 212, 212, 212, 212, 212, 122, 210, 212,
|
||
177, 62, 115, 177, 177, 177, 177, 121, 190, 102,
|
||
183, 185, 133, 128, 102, 111, 51, 148, 179, 217,
|
||
120, 120, 178, 218, 51, 178, 217, 132, 217, 102,
|
||
104, 105, 106, 171, 104, 139, 217, 217, 122, 122,
|
||
122, 122, 122, 112, 122, 122, 122, 209, 122, 122,
|
||
122, 112, 122, 212, 212, 105, 122, 125, 177, 122,
|
||
208, 212, 219, 193, 194, 217, 219, 192, 128, 105,
|
||
186, 187, 219, 123, 198, 8, 9, 50, 51, 91,
|
||
161, 162, 163, 164, 200, 219, 178, 171, 144, 149,
|
||
10, 115, 150, 140, 178, 8, 9, 10, 51, 110,
|
||
115, 175, 219, 128, 120, 204, 205, 129, 130, 217,
|
||
102, 212, 10, 51, 74, 110, 115, 120, 141, 165,
|
||
217, 120, 122, 120, 212, 120, 125, 123, 103, 106,
|
||
193, 123, 75, 76, 77, 95, 188, 102, 103, 128,
|
||
217, 164, 217, 112, 103, 8, 9, 10, 51, 110,
|
||
115, 120, 176, 219, 145, 146, 165, 3, 4, 5,
|
||
8, 12, 51, 54, 61, 73, 82, 84, 88, 110,
|
||
114, 118, 120, 124, 167, 168, 174, 178, 214, 215,
|
||
218, 219, 115, 165, 167, 142, 165, 175, 115, 175,
|
||
175, 175, 120, 121, 123, 151, 123, 206, 219, 102,
|
||
103, 120, 102, 172, 173, 212, 219, 104, 115, 165,
|
||
13, 14, 15, 16, 17, 18, 19, 20, 29, 31,
|
||
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
|
||
42, 52, 73, 103, 106, 108, 109, 110, 111, 112,
|
||
113, 114, 115, 116, 117, 118, 120, 121, 124, 157,
|
||
165, 165, 165, 105, 106, 120, 121, 170, 171, 219,
|
||
210, 210, 167, 217, 212, 123, 91, 95, 196, 216,
|
||
217, 95, 216, 95, 216, 75, 76, 77, 128, 188,
|
||
123, 106, 176, 136, 137, 158, 159, 163, 115, 176,
|
||
176, 176, 176, 106, 121, 169, 219, 147, 165, 170,
|
||
171, 176, 178, 111, 180, 120, 111, 212, 212, 212,
|
||
181, 210, 212, 122, 12, 103, 176, 13, 14, 15,
|
||
16, 17, 18, 19, 20, 29, 107, 108, 110, 111,
|
||
112, 113, 114, 115, 116, 117, 119, 120, 121, 165,
|
||
105, 122, 122, 170, 171, 120, 175, 154, 208, 167,
|
||
3, 4, 5, 6, 7, 8, 9, 10, 12, 13,
|
||
14, 15, 16, 17, 18, 19, 20, 21, 22, 29,
|
||
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
|
||
40, 41, 42, 43, 46, 47, 48, 49, 50, 51,
|
||
52, 53, 54, 55, 57, 58, 59, 60, 61, 62,
|
||
63, 64, 65, 66, 67, 68, 69, 71, 73, 74,
|
||
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
|
||
85, 87, 88, 89, 90, 91, 92, 93, 95, 96,
|
||
97, 98, 102, 103, 104, 105, 106, 107, 108, 109,
|
||
110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
|
||
120, 121, 122, 124, 125, 207, 204, 130, 209, 172,
|
||
123, 103, 165, 122, 125, 122, 4, 212, 166, 208,
|
||
103, 122, 122, 122, 106, 217, 216, 217, 216, 216,
|
||
216, 216, 216, 123, 181, 169, 176, 122, 54, 82,
|
||
84, 110, 114, 115, 118, 120, 124, 211, 213, 208,
|
||
170, 171, 103, 106, 170, 176, 181, 120, 181, 181,
|
||
122, 122, 51, 156, 219, 12, 174, 170, 212, 212,
|
||
212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
|
||
212, 212, 212, 212, 212, 212, 212, 212, 122, 210,
|
||
212, 122, 120, 156, 103, 155, 167, 125, 122, 206,
|
||
123, 122, 123, 102, 212, 167, 125, 141, 156, 212,
|
||
120, 111, 120, 111, 211, 211, 211, 211, 181, 210,
|
||
211, 13, 14, 15, 16, 17, 18, 19, 20, 29,
|
||
107, 108, 110, 113, 114, 115, 116, 117, 119, 120,
|
||
121, 125, 103, 146, 212, 170, 112, 209, 122, 112,
|
||
212, 87, 105, 122, 125, 120, 152, 142, 167, 122,
|
||
156, 123, 172, 122, 167, 181, 181, 181, 122, 122,
|
||
211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
|
||
211, 211, 211, 211, 211, 211, 211, 211, 122, 210,
|
||
212, 147, 120, 122, 120, 120, 212, 153, 167, 122,
|
||
156, 123, 156, 122, 112, 122, 112, 211, 105, 122,
|
||
125, 210, 210, 122, 217, 167, 122, 156, 156, 120,
|
||
120, 211, 122, 122, 122, 122, 156, 210, 210, 156,
|
||
122, 122
|
||
};
|
||
|
||
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
|
||
# define YYSIZE_T __SIZE_TYPE__
|
||
#endif
|
||
#if ! defined (YYSIZE_T) && defined (size_t)
|
||
# define YYSIZE_T size_t
|
||
#endif
|
||
#if ! defined (YYSIZE_T)
|
||
# if defined (__STDC__) || defined (__cplusplus)
|
||
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
|
||
# define YYSIZE_T size_t
|
||
# endif
|
||
#endif
|
||
#if ! defined (YYSIZE_T)
|
||
# define YYSIZE_T unsigned int
|
||
#endif
|
||
|
||
#define yyerrok (yyerrstatus = 0)
|
||
#define yyclearin (yychar = YYEMPTY)
|
||
#define YYEMPTY (-2)
|
||
#define YYEOF 0
|
||
|
||
#define YYACCEPT goto yyacceptlab
|
||
#define YYABORT goto yyabortlab
|
||
#define YYERROR goto yyerrorlab
|
||
|
||
|
||
/* Like YYERROR except do call yyerror. This remains here temporarily
|
||
to ease the transition to the new meaning of YYERROR, for GCC.
|
||
Once GCC version 2 has supplanted version 1, this can go. */
|
||
|
||
#define YYFAIL goto yyerrlab
|
||
|
||
#define YYRECOVERING() (!!yyerrstatus)
|
||
|
||
#define YYBACKUP(Token, Value) \
|
||
do \
|
||
if (yychar == YYEMPTY && yylen == 1) \
|
||
{ \
|
||
yychar = (Token); \
|
||
yylval = (Value); \
|
||
yytoken = YYTRANSLATE (yychar); \
|
||
YYPOPSTACK; \
|
||
goto yybackup; \
|
||
} \
|
||
else \
|
||
{ \
|
||
yyerror ("syntax error: cannot back up");\
|
||
YYERROR; \
|
||
} \
|
||
while (0)
|
||
|
||
|
||
#define YYTERROR 1
|
||
#define YYERRCODE 256
|
||
|
||
|
||
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
|
||
If N is 0, then set CURRENT to the empty location which ends
|
||
the previous symbol: RHS[0] (always defined). */
|
||
|
||
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
|
||
#ifndef YYLLOC_DEFAULT
|
||
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
||
do \
|
||
if (N) \
|
||
{ \
|
||
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
|
||
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
|
||
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
|
||
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
|
||
} \
|
||
else \
|
||
{ \
|
||
(Current).first_line = (Current).last_line = \
|
||
YYRHSLOC (Rhs, 0).last_line; \
|
||
(Current).first_column = (Current).last_column = \
|
||
YYRHSLOC (Rhs, 0).last_column; \
|
||
} \
|
||
while (0)
|
||
#endif
|
||
|
||
|
||
/* YY_LOCATION_PRINT -- Print the location on the stream.
|
||
This macro was not mandated originally: define only if we know
|
||
we won't break user code: when these are the locations we know. */
|
||
|
||
#ifndef YY_LOCATION_PRINT
|
||
# if YYLTYPE_IS_TRIVIAL
|
||
# define YY_LOCATION_PRINT(File, Loc) \
|
||
fprintf (File, "%d.%d-%d.%d", \
|
||
(Loc).first_line, (Loc).first_column, \
|
||
(Loc).last_line, (Loc).last_column)
|
||
# else
|
||
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
|
||
# endif
|
||
#endif
|
||
|
||
|
||
/* YYLEX -- calling `yylex' with the right arguments. */
|
||
|
||
#ifdef YYLEX_PARAM
|
||
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
|
||
#else
|
||
# define YYLEX yylex (&yylval, &yylloc)
|
||
#endif
|
||
|
||
/* Enable debugging if requested. */
|
||
#if YYDEBUG
|
||
|
||
# ifndef YYFPRINTF
|
||
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
|
||
# define YYFPRINTF fprintf
|
||
# endif
|
||
|
||
# define YYDPRINTF(Args) \
|
||
do { \
|
||
if (yydebug) \
|
||
YYFPRINTF Args; \
|
||
} while (0)
|
||
|
||
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
|
||
do { \
|
||
if (yydebug) \
|
||
{ \
|
||
YYFPRINTF (stderr, "%s ", Title); \
|
||
yysymprint (stderr, \
|
||
Type, Value, Location); \
|
||
YYFPRINTF (stderr, "\n"); \
|
||
} \
|
||
} while (0)
|
||
|
||
/*------------------------------------------------------------------.
|
||
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
|
||
| TOP (included). |
|
||
`------------------------------------------------------------------*/
|
||
|
||
#if defined (__STDC__) || defined (__cplusplus)
|
||
static void
|
||
yy_stack_print (short int *bottom, short int *top)
|
||
#else
|
||
static void
|
||
yy_stack_print (bottom, top)
|
||
short int *bottom;
|
||
short int *top;
|
||
#endif
|
||
{
|
||
YYFPRINTF (stderr, "Stack now");
|
||
for (/* Nothing. */; bottom <= top; ++bottom)
|
||
YYFPRINTF (stderr, " %d", *bottom);
|
||
YYFPRINTF (stderr, "\n");
|
||
}
|
||
|
||
# define YY_STACK_PRINT(Bottom, Top) \
|
||
do { \
|
||
if (yydebug) \
|
||
yy_stack_print ((Bottom), (Top)); \
|
||
} while (0)
|
||
|
||
|
||
/*------------------------------------------------.
|
||
| Report that the YYRULE is going to be reduced. |
|
||
`------------------------------------------------*/
|
||
|
||
#if defined (__STDC__) || defined (__cplusplus)
|
||
static void
|
||
yy_reduce_print (int yyrule)
|
||
#else
|
||
static void
|
||
yy_reduce_print (yyrule)
|
||
int yyrule;
|
||
#endif
|
||
{
|
||
int yyi;
|
||
unsigned int yylno = yyrline[yyrule];
|
||
YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
|
||
yyrule - 1, yylno);
|
||
/* Print the symbols being reduced, and their result. */
|
||
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
|
||
YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
|
||
YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
|
||
}
|
||
|
||
# define YY_REDUCE_PRINT(Rule) \
|
||
do { \
|
||
if (yydebug) \
|
||
yy_reduce_print (Rule); \
|
||
} while (0)
|
||
|
||
/* Nonzero means print parse trace. It is left uninitialized so that
|
||
multiple parsers can coexist. */
|
||
int yydebug;
|
||
#else /* !YYDEBUG */
|
||
# define YYDPRINTF(Args)
|
||
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
|
||
# define YY_STACK_PRINT(Bottom, Top)
|
||
# define YY_REDUCE_PRINT(Rule)
|
||
#endif /* !YYDEBUG */
|
||
|
||
|
||
/* YYINITDEPTH -- initial size of the parser's stacks. */
|
||
#ifndef YYINITDEPTH
|
||
# define YYINITDEPTH 200
|
||
#endif
|
||
|
||
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
|
||
if the built-in stack extension method is used).
|
||
|
||
Do not make this value too large; the results are undefined if
|
||
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
|
||
evaluated with infinite-precision integer arithmetic. */
|
||
|
||
#ifndef YYMAXDEPTH
|
||
# define YYMAXDEPTH 10000
|
||
#endif
|
||
|
||
|
||
|
||
#if YYERROR_VERBOSE
|
||
|
||
# ifndef yystrlen
|
||
# if defined (__GLIBC__) && defined (_STRING_H)
|
||
# define yystrlen strlen
|
||
# else
|
||
/* Return the length of YYSTR. */
|
||
static YYSIZE_T
|
||
# if defined (__STDC__) || defined (__cplusplus)
|
||
yystrlen (const char *yystr)
|
||
# else
|
||
yystrlen (yystr)
|
||
const char *yystr;
|
||
# endif
|
||
{
|
||
register const char *yys = yystr;
|
||
|
||
while (*yys++ != '\0')
|
||
continue;
|
||
|
||
return yys - yystr - 1;
|
||
}
|
||
# endif
|
||
# endif
|
||
|
||
# ifndef yystpcpy
|
||
# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
|
||
# define yystpcpy stpcpy
|
||
# else
|
||
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
|
||
YYDEST. */
|
||
static char *
|
||
# if defined (__STDC__) || defined (__cplusplus)
|
||
yystpcpy (char *yydest, const char *yysrc)
|
||
# else
|
||
yystpcpy (yydest, yysrc)
|
||
char *yydest;
|
||
const char *yysrc;
|
||
# endif
|
||
{
|
||
register char *yyd = yydest;
|
||
register const char *yys = yysrc;
|
||
|
||
while ((*yyd++ = *yys++) != '\0')
|
||
continue;
|
||
|
||
return yyd - 1;
|
||
}
|
||
# endif
|
||
# endif
|
||
|
||
#endif /* !YYERROR_VERBOSE */
|
||
|
||
|
||
|
||
#if YYDEBUG
|
||
/*--------------------------------.
|
||
| Print this symbol on YYOUTPUT. |
|
||
`--------------------------------*/
|
||
|
||
#if defined (__STDC__) || defined (__cplusplus)
|
||
static void
|
||
yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
|
||
#else
|
||
static void
|
||
yysymprint (yyoutput, yytype, yyvaluep, yylocationp)
|
||
FILE *yyoutput;
|
||
int yytype;
|
||
YYSTYPE *yyvaluep;
|
||
YYLTYPE *yylocationp;
|
||
#endif
|
||
{
|
||
/* Pacify ``unused variable'' warnings. */
|
||
(void) yyvaluep;
|
||
(void) yylocationp;
|
||
|
||
if (yytype < YYNTOKENS)
|
||
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
|
||
else
|
||
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
|
||
|
||
YY_LOCATION_PRINT (yyoutput, *yylocationp);
|
||
fprintf (yyoutput, ": ");
|
||
|
||
# ifdef YYPRINT
|
||
if (yytype < YYNTOKENS)
|
||
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
|
||
# endif
|
||
switch (yytype)
|
||
{
|
||
default:
|
||
break;
|
||
}
|
||
YYFPRINTF (yyoutput, ")");
|
||
}
|
||
|
||
#endif /* ! YYDEBUG */
|
||
/*-----------------------------------------------.
|
||
| Release the memory associated to this symbol. |
|
||
`-----------------------------------------------*/
|
||
|
||
#if defined (__STDC__) || defined (__cplusplus)
|
||
static void
|
||
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
|
||
#else
|
||
static void
|
||
yydestruct (yymsg, yytype, yyvaluep, yylocationp)
|
||
const char *yymsg;
|
||
int yytype;
|
||
YYSTYPE *yyvaluep;
|
||
YYLTYPE *yylocationp;
|
||
#endif
|
||
{
|
||
/* Pacify ``unused variable'' warnings. */
|
||
(void) yyvaluep;
|
||
(void) yylocationp;
|
||
|
||
if (!yymsg)
|
||
yymsg = "Deleting";
|
||
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
|
||
|
||
switch (yytype)
|
||
{
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
/* Prevent warnings from -Wmissing-prototypes. */
|
||
|
||
#ifdef YYPARSE_PARAM
|
||
# if defined (__STDC__) || defined (__cplusplus)
|
||
int yyparse (void *YYPARSE_PARAM);
|
||
# else
|
||
int yyparse ();
|
||
# endif
|
||
#else /* ! YYPARSE_PARAM */
|
||
#if defined (__STDC__) || defined (__cplusplus)
|
||
int yyparse (void);
|
||
#else
|
||
int yyparse ();
|
||
#endif
|
||
#endif /* ! YYPARSE_PARAM */
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/*----------.
|
||
| yyparse. |
|
||
`----------*/
|
||
|
||
#ifdef YYPARSE_PARAM
|
||
# if defined (__STDC__) || defined (__cplusplus)
|
||
int yyparse (void *YYPARSE_PARAM)
|
||
# else
|
||
int yyparse (YYPARSE_PARAM)
|
||
void *YYPARSE_PARAM;
|
||
# endif
|
||
#else /* ! YYPARSE_PARAM */
|
||
#if defined (__STDC__) || defined (__cplusplus)
|
||
int
|
||
yyparse (void)
|
||
#else
|
||
int
|
||
yyparse ()
|
||
|
||
#endif
|
||
#endif
|
||
{
|
||
/* The look-ahead symbol. */
|
||
int yychar;
|
||
|
||
/* The semantic value of the look-ahead symbol. */
|
||
YYSTYPE yylval;
|
||
|
||
/* Number of syntax errors so far. */
|
||
int yynerrs;
|
||
/* Location data for the look-ahead symbol. */
|
||
YYLTYPE yylloc;
|
||
|
||
register int yystate;
|
||
register int yyn;
|
||
int yyresult;
|
||
/* Number of tokens to shift before error messages enabled. */
|
||
int yyerrstatus;
|
||
/* Look-ahead token as an internal (translated) token number. */
|
||
int yytoken = 0;
|
||
|
||
/* Three stacks and their tools:
|
||
`yyss': related to states,
|
||
`yyvs': related to semantic values,
|
||
`yyls': related to locations.
|
||
|
||
Refer to the stacks thru separate pointers, to allow yyoverflow
|
||
to reallocate them elsewhere. */
|
||
|
||
/* The state stack. */
|
||
short int yyssa[YYINITDEPTH];
|
||
short int *yyss = yyssa;
|
||
register short int *yyssp;
|
||
|
||
/* The semantic value stack. */
|
||
YYSTYPE yyvsa[YYINITDEPTH];
|
||
YYSTYPE *yyvs = yyvsa;
|
||
register YYSTYPE *yyvsp;
|
||
|
||
/* The location stack. */
|
||
YYLTYPE yylsa[YYINITDEPTH];
|
||
YYLTYPE *yyls = yylsa;
|
||
YYLTYPE *yylsp;
|
||
/* The locations where the error started and ended. */
|
||
YYLTYPE yyerror_range[2];
|
||
|
||
#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
|
||
|
||
YYSIZE_T yystacksize = YYINITDEPTH;
|
||
|
||
/* The variables used to return semantic value and location from the
|
||
action routines. */
|
||
YYSTYPE yyval;
|
||
YYLTYPE yyloc;
|
||
|
||
/* When reducing, the number of symbols on the RHS of the reduced
|
||
rule. */
|
||
int yylen;
|
||
|
||
YYDPRINTF ((stderr, "Starting parse\n"));
|
||
|
||
yystate = 0;
|
||
yyerrstatus = 0;
|
||
yynerrs = 0;
|
||
yychar = YYEMPTY; /* Cause a token to be read. */
|
||
|
||
/* Initialize stack pointers.
|
||
Waste one element of value and location stack
|
||
so that they stay on the same level as the state stack.
|
||
The wasted elements are never initialized. */
|
||
|
||
yyssp = yyss;
|
||
yyvsp = yyvs;
|
||
yylsp = yyls;
|
||
#if YYLTYPE_IS_TRIVIAL
|
||
/* Initialize the default location before parsing starts. */
|
||
yylloc.first_line = yylloc.last_line = 1;
|
||
yylloc.first_column = yylloc.last_column = 0;
|
||
#endif
|
||
|
||
|
||
yyvsp[0] = yylval;
|
||
yylsp[0] = yylloc;
|
||
|
||
goto yysetstate;
|
||
|
||
/*------------------------------------------------------------.
|
||
| yynewstate -- Push a new state, which is found in yystate. |
|
||
`------------------------------------------------------------*/
|
||
yynewstate:
|
||
/* In all cases, when you get here, the value and location stacks
|
||
have just been pushed. so pushing a state here evens the stacks.
|
||
*/
|
||
yyssp++;
|
||
|
||
yysetstate:
|
||
*yyssp = yystate;
|
||
|
||
if (yyss + yystacksize - 1 <= yyssp)
|
||
{
|
||
/* Get the current used size of the three stacks, in elements. */
|
||
YYSIZE_T yysize = yyssp - yyss + 1;
|
||
|
||
#ifdef yyoverflow
|
||
{
|
||
/* Give user a chance to reallocate the stack. Use copies of
|
||
these so that the &'s don't force the real ones into
|
||
memory. */
|
||
YYSTYPE *yyvs1 = yyvs;
|
||
short int *yyss1 = yyss;
|
||
YYLTYPE *yyls1 = yyls;
|
||
|
||
/* Each stack pointer address is followed by the size of the
|
||
data in use in that stack, in bytes. This used to be a
|
||
conditional around just the two extra args, but that might
|
||
be undefined if yyoverflow is a macro. */
|
||
yyoverflow ("parser stack overflow",
|
||
&yyss1, yysize * sizeof (*yyssp),
|
||
&yyvs1, yysize * sizeof (*yyvsp),
|
||
&yyls1, yysize * sizeof (*yylsp),
|
||
&yystacksize);
|
||
yyls = yyls1;
|
||
yyss = yyss1;
|
||
yyvs = yyvs1;
|
||
}
|
||
#else /* no yyoverflow */
|
||
# ifndef YYSTACK_RELOCATE
|
||
goto yyoverflowlab;
|
||
# else
|
||
/* Extend the stack our own way. */
|
||
if (YYMAXDEPTH <= yystacksize)
|
||
goto yyoverflowlab;
|
||
yystacksize *= 2;
|
||
if (YYMAXDEPTH < yystacksize)
|
||
yystacksize = YYMAXDEPTH;
|
||
|
||
{
|
||
short int *yyss1 = yyss;
|
||
union yyalloc *yyptr =
|
||
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
|
||
if (! yyptr)
|
||
goto yyoverflowlab;
|
||
YYSTACK_RELOCATE (yyss);
|
||
YYSTACK_RELOCATE (yyvs);
|
||
YYSTACK_RELOCATE (yyls);
|
||
# undef YYSTACK_RELOCATE
|
||
if (yyss1 != yyssa)
|
||
YYSTACK_FREE (yyss1);
|
||
}
|
||
# endif
|
||
#endif /* no yyoverflow */
|
||
|
||
yyssp = yyss + yysize - 1;
|
||
yyvsp = yyvs + yysize - 1;
|
||
yylsp = yyls + yysize - 1;
|
||
|
||
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
|
||
(unsigned long int) yystacksize));
|
||
|
||
if (yyss + yystacksize - 1 <= yyssp)
|
||
YYABORT;
|
||
}
|
||
|
||
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
|
||
|
||
goto yybackup;
|
||
|
||
/*-----------.
|
||
| yybackup. |
|
||
`-----------*/
|
||
yybackup:
|
||
|
||
/* Do appropriate processing given the current state. */
|
||
/* Read a look-ahead token if we need one and don't already have one. */
|
||
/* yyresume: */
|
||
|
||
/* First try to decide what to do without reference to look-ahead token. */
|
||
|
||
yyn = yypact[yystate];
|
||
if (yyn == YYPACT_NINF)
|
||
goto yydefault;
|
||
|
||
/* Not known => get a look-ahead token if don't already have one. */
|
||
|
||
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
|
||
if (yychar == YYEMPTY)
|
||
{
|
||
YYDPRINTF ((stderr, "Reading a token: "));
|
||
yychar = YYLEX;
|
||
}
|
||
|
||
if (yychar <= YYEOF)
|
||
{
|
||
yychar = yytoken = YYEOF;
|
||
YYDPRINTF ((stderr, "Now at end of input.\n"));
|
||
}
|
||
else
|
||
{
|
||
yytoken = YYTRANSLATE (yychar);
|
||
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
|
||
}
|
||
|
||
/* If the proper action on seeing token YYTOKEN is to reduce or to
|
||
detect an error, take that action. */
|
||
yyn += yytoken;
|
||
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
|
||
goto yydefault;
|
||
yyn = yytable[yyn];
|
||
if (yyn <= 0)
|
||
{
|
||
if (yyn == 0 || yyn == YYTABLE_NINF)
|
||
goto yyerrlab;
|
||
yyn = -yyn;
|
||
goto yyreduce;
|
||
}
|
||
|
||
if (yyn == YYFINAL)
|
||
YYACCEPT;
|
||
|
||
/* Shift the look-ahead token. */
|
||
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
|
||
|
||
/* Discard the token being shifted unless it is eof. */
|
||
if (yychar != YYEOF)
|
||
yychar = YYEMPTY;
|
||
|
||
*++yyvsp = yylval;
|
||
*++yylsp = yylloc;
|
||
|
||
/* Count tokens shifted since error; after three, turn off error
|
||
status. */
|
||
if (yyerrstatus)
|
||
yyerrstatus--;
|
||
|
||
yystate = yyn;
|
||
goto yynewstate;
|
||
|
||
|
||
/*-----------------------------------------------------------.
|
||
| yydefault -- do the default action for the current state. |
|
||
`-----------------------------------------------------------*/
|
||
yydefault:
|
||
yyn = yydefact[yystate];
|
||
if (yyn == 0)
|
||
goto yyerrlab;
|
||
goto yyreduce;
|
||
|
||
|
||
/*-----------------------------.
|
||
| yyreduce -- Do a reduction. |
|
||
`-----------------------------*/
|
||
yyreduce:
|
||
/* yyn is the number of a rule to reduce with. */
|
||
yylen = yyr2[yyn];
|
||
|
||
/* If YYLEN is nonzero, implement the default value of the action:
|
||
`$$ = $1'.
|
||
|
||
Otherwise, the following line sets YYVAL to garbage.
|
||
This behavior is undocumented and Bison
|
||
users should not rely upon it. Assigning to YYVAL
|
||
unconditionally makes the parser a bit smaller, and it avoids a
|
||
GCC warning that YYVAL may be used uninitialized. */
|
||
yyval = yyvsp[1-yylen];
|
||
|
||
/* Default location. */
|
||
YYLLOC_DEFAULT (yyloc, yylsp - yylen, yylen);
|
||
YY_REDUCE_PRINT (yyn);
|
||
switch (yyn)
|
||
{
|
||
case 3:
|
||
#line 381 "cppBison.yxx"
|
||
{
|
||
current_expr = (yyvsp[0].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
#line 385 "cppBison.yxx"
|
||
{
|
||
current_type = (yyvsp[0].u.type);
|
||
}
|
||
break;
|
||
|
||
case 10:
|
||
#line 403 "cppBison.yxx"
|
||
{
|
||
delete (yyvsp[-1].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 11:
|
||
#line 415 "cppBison.yxx"
|
||
{
|
||
push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) |
|
||
((yyvsp[-1].u.integer) & CPPInstance::SC_c_binding));
|
||
}
|
||
break;
|
||
|
||
case 12:
|
||
#line 420 "cppBison.yxx"
|
||
{
|
||
pop_storage_class();
|
||
}
|
||
break;
|
||
|
||
case 20:
|
||
#line 434 "cppBison.yxx"
|
||
{
|
||
if (publish_nest_level != 0) {
|
||
yyerror("Unclosed __begin_publish", publish_loc);
|
||
publish_nest_level = 0;
|
||
current_scope->set_current_vis(V_public);
|
||
}
|
||
|
||
publish_previous = current_scope->get_current_vis();
|
||
publish_loc = (yylsp[0]);
|
||
publish_nest_level++;
|
||
current_scope->set_current_vis(V_published);
|
||
}
|
||
break;
|
||
|
||
case 21:
|
||
#line 447 "cppBison.yxx"
|
||
{
|
||
if (publish_nest_level != 1) {
|
||
yyerror("Unmatched __end_publish", (yylsp[0]));
|
||
} else {
|
||
current_scope->set_current_vis(publish_previous);
|
||
}
|
||
publish_nest_level = 0;
|
||
}
|
||
break;
|
||
|
||
case 22:
|
||
#line 456 "cppBison.yxx"
|
||
{
|
||
current_scope->set_current_vis(V_published);
|
||
}
|
||
break;
|
||
|
||
case 23:
|
||
#line 460 "cppBison.yxx"
|
||
{
|
||
if (publish_nest_level > 0) {
|
||
current_scope->set_current_vis(V_published);
|
||
} else {
|
||
current_scope->set_current_vis(V_public);
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 24:
|
||
#line 468 "cppBison.yxx"
|
||
{
|
||
current_scope->set_current_vis(V_protected);
|
||
}
|
||
break;
|
||
|
||
case 25:
|
||
#line 472 "cppBison.yxx"
|
||
{
|
||
current_scope->set_current_vis(V_private);
|
||
}
|
||
break;
|
||
|
||
case 26:
|
||
#line 479 "cppBison.yxx"
|
||
{
|
||
CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"),
|
||
V_public);
|
||
push_scope(new_scope);
|
||
}
|
||
break;
|
||
|
||
case 27:
|
||
#line 485 "cppBison.yxx"
|
||
{
|
||
delete current_scope;
|
||
pop_scope();
|
||
}
|
||
break;
|
||
|
||
case 28:
|
||
#line 494 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = 0;
|
||
}
|
||
break;
|
||
|
||
case 29:
|
||
#line 498 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_extern;
|
||
}
|
||
break;
|
||
|
||
case 30:
|
||
#line 502 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-2].u.integer) | (int)CPPInstance::SC_extern;
|
||
if ((yyvsp[0].str) == "C") {
|
||
(yyval.u.integer) |= (int)CPPInstance::SC_c_binding;
|
||
} else if ((yyvsp[0].str) == "C++") {
|
||
(yyval.u.integer) &= ~(int)CPPInstance::SC_c_binding;
|
||
} else {
|
||
yywarning("Ignoring unknown linkage type \"" + (yyvsp[0].str) + "\"", (yylsp[0]));
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 31:
|
||
#line 513 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_static;
|
||
}
|
||
break;
|
||
|
||
case 32:
|
||
#line 517 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_inline;
|
||
}
|
||
break;
|
||
|
||
case 33:
|
||
#line 521 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_virtual;
|
||
}
|
||
break;
|
||
|
||
case 34:
|
||
#line 525 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_explicit;
|
||
}
|
||
break;
|
||
|
||
case 35:
|
||
#line 529 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_volatile;
|
||
}
|
||
break;
|
||
|
||
case 36:
|
||
#line 533 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_mutable;
|
||
}
|
||
break;
|
||
|
||
case 37:
|
||
#line 537 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_register;
|
||
}
|
||
break;
|
||
|
||
case 38:
|
||
#line 541 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_blocking;
|
||
}
|
||
break;
|
||
|
||
case 39:
|
||
#line 548 "cppBison.yxx"
|
||
{
|
||
/* multiple_var_declaration adds itself to the scope. */
|
||
}
|
||
break;
|
||
|
||
case 40:
|
||
#line 552 "cppBison.yxx"
|
||
{
|
||
// We don't really care about the storage class here. In fact, it's
|
||
// not actually legal to define a class or struct using a particular
|
||
// storage class, but we require it just to help yacc out in its
|
||
// parsing.
|
||
|
||
current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1]));
|
||
}
|
||
break;
|
||
|
||
case 41:
|
||
#line 561 "cppBison.yxx"
|
||
{
|
||
if ((yyvsp[-1].u.instance) != (CPPInstance *)NULL) {
|
||
(yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer));
|
||
current_scope->add_declaration((yyvsp[-1].u.instance), global_scope, current_lexer, (yylsp[-1]));
|
||
(yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr));
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 42:
|
||
#line 572 "cppBison.yxx"
|
||
{
|
||
// We don't need to push/pop type, because we can't nest
|
||
// multiple_var_declarations.
|
||
if ((yyvsp[0].u.decl)->as_type_declaration()) {
|
||
current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type;
|
||
} else {
|
||
current_type = (yyvsp[0].u.decl)->as_type();
|
||
}
|
||
push_storage_class((yyvsp[-1].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 43:
|
||
#line 583 "cppBison.yxx"
|
||
{
|
||
pop_storage_class();
|
||
}
|
||
break;
|
||
|
||
case 44:
|
||
#line 587 "cppBison.yxx"
|
||
{
|
||
// We don't need to push/pop type, because we can't nest
|
||
// multiple_var_declarations.
|
||
current_type = (yyvsp[0].u.type);
|
||
push_storage_class((yyvsp[-2].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 45:
|
||
#line 594 "cppBison.yxx"
|
||
{
|
||
pop_storage_class();
|
||
}
|
||
break;
|
||
|
||
case 46:
|
||
#line 605 "cppBison.yxx"
|
||
{
|
||
CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident),
|
||
current_storage_class,
|
||
(yylsp[-1]).file);
|
||
inst->set_initializer((yyvsp[0].u.expr));
|
||
current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1]));
|
||
}
|
||
break;
|
||
|
||
case 47:
|
||
#line 613 "cppBison.yxx"
|
||
{
|
||
CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident),
|
||
current_storage_class,
|
||
(yylsp[-3]).file);
|
||
inst->set_initializer((yyvsp[-2].u.expr));
|
||
current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3]));
|
||
}
|
||
break;
|
||
|
||
case 48:
|
||
#line 624 "cppBison.yxx"
|
||
{
|
||
(yyvsp[-1].u.inst_ident)->add_modifier(IIT_const);
|
||
CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident),
|
||
current_storage_class,
|
||
(yylsp[-1]).file);
|
||
inst->set_initializer((yyvsp[0].u.expr));
|
||
current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1]));
|
||
}
|
||
break;
|
||
|
||
case 49:
|
||
#line 633 "cppBison.yxx"
|
||
{
|
||
(yyvsp[-3].u.inst_ident)->add_modifier(IIT_const);
|
||
CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident),
|
||
current_storage_class,
|
||
(yylsp[-3]).file);
|
||
inst->set_initializer((yyvsp[-2].u.expr));
|
||
current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3]));
|
||
}
|
||
break;
|
||
|
||
case 50:
|
||
#line 646 "cppBison.yxx"
|
||
{
|
||
// We don't need to push/pop type, because we can't nest
|
||
// multiple_var_declarations.
|
||
if ((yyvsp[0].u.decl)->as_type_declaration()) {
|
||
current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type;
|
||
} else {
|
||
current_type = (yyvsp[0].u.decl)->as_type();
|
||
}
|
||
push_storage_class((yyvsp[-1].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 51:
|
||
#line 657 "cppBison.yxx"
|
||
{
|
||
pop_storage_class();
|
||
}
|
||
break;
|
||
|
||
case 52:
|
||
#line 661 "cppBison.yxx"
|
||
{
|
||
// We don't need to push/pop type, because we can't nest
|
||
// multiple_var_declarations.
|
||
current_type = (yyvsp[0].u.type);
|
||
push_storage_class((yyvsp[-2].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 53:
|
||
#line 668 "cppBison.yxx"
|
||
{
|
||
pop_storage_class();
|
||
}
|
||
break;
|
||
|
||
case 54:
|
||
#line 672 "cppBison.yxx"
|
||
{
|
||
if ((yyvsp[-1].u.instance) != (CPPDeclaration *)NULL) {
|
||
CPPInstance *inst = (yyvsp[-1].u.instance)->as_instance();
|
||
if (inst != (CPPInstance *)NULL) {
|
||
inst->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer));
|
||
current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1]));
|
||
current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-1]));
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 55:
|
||
#line 686 "cppBison.yxx"
|
||
{
|
||
CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident),
|
||
current_storage_class,
|
||
(yylsp[-1]).file);
|
||
inst->set_initializer((yyvsp[0].u.expr));
|
||
current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-1]));
|
||
}
|
||
break;
|
||
|
||
case 56:
|
||
#line 694 "cppBison.yxx"
|
||
{
|
||
CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident),
|
||
current_storage_class,
|
||
(yylsp[-3]).file);
|
||
inst->set_initializer((yyvsp[-2].u.expr));
|
||
current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-3]));
|
||
}
|
||
break;
|
||
|
||
case 57:
|
||
#line 705 "cppBison.yxx"
|
||
{
|
||
(yyvsp[-1].u.inst_ident)->add_modifier(IIT_const);
|
||
CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident),
|
||
current_storage_class,
|
||
(yylsp[-1]).file);
|
||
inst->set_initializer((yyvsp[0].u.expr));
|
||
current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-1]));
|
||
}
|
||
break;
|
||
|
||
case 58:
|
||
#line 714 "cppBison.yxx"
|
||
{
|
||
(yyvsp[-3].u.inst_ident)->add_modifier(IIT_const);
|
||
CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident),
|
||
current_storage_class,
|
||
(yylsp[-3]).file);
|
||
inst->set_initializer((yyvsp[-2].u.expr));
|
||
current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-3]));
|
||
}
|
||
break;
|
||
|
||
case 59:
|
||
#line 728 "cppBison.yxx"
|
||
{
|
||
push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope));
|
||
}
|
||
break;
|
||
|
||
case 60:
|
||
#line 732 "cppBison.yxx"
|
||
{
|
||
pop_scope();
|
||
CPPType *type;
|
||
if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name()) {
|
||
// This is a constructor, and has no return.
|
||
type = new CPPSimpleType(CPPSimpleType::T_void);
|
||
} else {
|
||
// This isn't a constructor, so it has an implicit return type of
|
||
// int.
|
||
type = new CPPSimpleType(CPPSimpleType::T_int);
|
||
}
|
||
|
||
CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[-5].u.identifier));
|
||
ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
|
||
(yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file);
|
||
}
|
||
break;
|
||
|
||
case 61:
|
||
#line 750 "cppBison.yxx"
|
||
{
|
||
push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope));
|
||
}
|
||
break;
|
||
|
||
case 62:
|
||
#line 754 "cppBison.yxx"
|
||
{
|
||
pop_scope();
|
||
CPPType *type;
|
||
if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name()) {
|
||
// This is a constructor, and has no return.
|
||
type = new CPPSimpleType(CPPSimpleType::T_void);
|
||
} else {
|
||
// This isn't a constructor, so it has an implicit return type of
|
||
// int.
|
||
type = new CPPSimpleType(CPPSimpleType::T_int);
|
||
}
|
||
|
||
CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[-5].u.identifier));
|
||
ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
|
||
(yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file);
|
||
}
|
||
break;
|
||
|
||
case 63:
|
||
#line 774 "cppBison.yxx"
|
||
{
|
||
push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope));
|
||
}
|
||
break;
|
||
|
||
case 64:
|
||
#line 778 "cppBison.yxx"
|
||
{
|
||
pop_scope();
|
||
if ((yyvsp[-5].u.identifier)->is_scoped()) {
|
||
yyerror("Invalid destructor name: ~" + (yyvsp[-5].u.identifier)->get_fully_scoped_name(), (yylsp[-5]));
|
||
} else {
|
||
CPPIdentifier *ident =
|
||
new CPPIdentifier("~" + (yyvsp[-5].u.identifier)->get_simple_name(), (yylsp[-5]).file);
|
||
delete (yyvsp[-5].u.identifier);
|
||
|
||
CPPType *type;
|
||
type = new CPPSimpleType(CPPSimpleType::T_void);
|
||
|
||
CPPInstanceIdentifier *ii = new CPPInstanceIdentifier(ident);
|
||
ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
|
||
(yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file);
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 65:
|
||
#line 804 "cppBison.yxx"
|
||
{
|
||
push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope));
|
||
}
|
||
break;
|
||
|
||
case 66:
|
||
#line 808 "cppBison.yxx"
|
||
{
|
||
pop_scope();
|
||
CPPType *type = (yyvsp[-9].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
assert(type != NULL);
|
||
|
||
CPPInstanceIdentifier *ii = (yyvsp[-6].u.inst_ident);
|
||
ii->add_modifier(IIT_pointer);
|
||
ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
(yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-9]).file);
|
||
}
|
||
break;
|
||
|
||
case 67:
|
||
#line 819 "cppBison.yxx"
|
||
{
|
||
push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope));
|
||
}
|
||
break;
|
||
|
||
case 68:
|
||
#line 823 "cppBison.yxx"
|
||
{
|
||
pop_scope();
|
||
CPPType *type = (yyvsp[-10].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
assert(type != NULL);
|
||
|
||
CPPInstanceIdentifier *ii = (yyvsp[-6].u.inst_ident);
|
||
ii->add_scoped_pointer_modifier((yyvsp[-8].u.identifier));
|
||
ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
(yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-10]).file);
|
||
}
|
||
break;
|
||
|
||
case 69:
|
||
#line 836 "cppBison.yxx"
|
||
{
|
||
if ((yyvsp[-3].u.identifier) != NULL) {
|
||
push_scope((yyvsp[-3].u.identifier)->get_scope(current_scope, global_scope));
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 70:
|
||
#line 842 "cppBison.yxx"
|
||
{
|
||
if ((yyvsp[-7].u.identifier) != NULL) {
|
||
pop_scope();
|
||
}
|
||
|
||
// We use formal_parameter_identifier, because that can match a type
|
||
// name with or without an identifier, but especially without, which
|
||
// is what follows the keyword "operator" in a typecast function.
|
||
// As an added bonus, the type of the formal_parameter will be the
|
||
// typecast type, i.e. the return type of the typecast function.
|
||
|
||
// We give all typecast operators the name "operator typecast".
|
||
// Only their return type will differentiate them. (Naturally, this
|
||
// violates actual C++ rules, but we're not an actual C++ compiler
|
||
// so we don't care. And this is the easiest way to do it.)
|
||
CPPIdentifier *ident = (yyvsp[-7].u.identifier);
|
||
if (ident == NULL) {
|
||
ident = new CPPIdentifier("operator typecast", (yylsp[-7]).file);
|
||
} else {
|
||
ident->add_name("operator typecast");
|
||
}
|
||
(yyval.u.instance) = CPPInstance::make_typecast_function
|
||
(new CPPInstance((yyvsp[-6].u.type), (yyvsp[-5].u.inst_ident), 0, (yylsp[-5]).file), ident, (yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 71:
|
||
#line 867 "cppBison.yxx"
|
||
{
|
||
if ((yyvsp[-4].u.identifier) != NULL) {
|
||
push_scope((yyvsp[-4].u.identifier)->get_scope(current_scope, global_scope));
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 72:
|
||
#line 873 "cppBison.yxx"
|
||
{
|
||
if ((yyvsp[-8].u.identifier) != NULL) {
|
||
pop_scope();
|
||
}
|
||
|
||
CPPIdentifier *ident = (yyvsp[-8].u.identifier);
|
||
if (ident == NULL) {
|
||
ident = new CPPIdentifier("operator typecast", (yylsp[-8]).file);
|
||
} else {
|
||
ident->add_name("operator typecast");
|
||
}
|
||
(yyvsp[-5].u.inst_ident)->add_modifier(IIT_const);
|
||
(yyval.u.instance) = CPPInstance::make_typecast_function
|
||
(new CPPInstance((yyvsp[-6].u.type), (yyvsp[-5].u.inst_ident), 0, (yylsp[-5]).file), ident, (yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 73:
|
||
#line 893 "cppBison.yxx"
|
||
{
|
||
CPPDeclaration *decl =
|
||
(yyvsp[0].u.identifier)->find_symbol(current_scope, global_scope, current_lexer);
|
||
if (decl != (CPPDeclaration *)NULL) {
|
||
(yyval.u.instance) = decl->as_instance();
|
||
} else {
|
||
(yyval.u.instance) = (CPPInstance *)NULL;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 74:
|
||
#line 906 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = 0;
|
||
}
|
||
break;
|
||
|
||
case 75:
|
||
#line 910 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (int)CPPFunctionType::F_const_method;
|
||
}
|
||
break;
|
||
|
||
case 76:
|
||
#line 914 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-3].u.integer);
|
||
}
|
||
break;
|
||
|
||
case 77:
|
||
#line 918 "cppBison.yxx"
|
||
{
|
||
(yyval.u.integer) = (yyvsp[-4].u.integer);
|
||
}
|
||
break;
|
||
|
||
case 78:
|
||
#line 925 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "!";
|
||
}
|
||
break;
|
||
|
||
case 79:
|
||
#line 929 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "~";
|
||
}
|
||
break;
|
||
|
||
case 80:
|
||
#line 933 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "*";
|
||
}
|
||
break;
|
||
|
||
case 81:
|
||
#line 937 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "/";
|
||
}
|
||
break;
|
||
|
||
case 82:
|
||
#line 941 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "%";
|
||
}
|
||
break;
|
||
|
||
case 83:
|
||
#line 945 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "+";
|
||
}
|
||
break;
|
||
|
||
case 84:
|
||
#line 949 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "-";
|
||
}
|
||
break;
|
||
|
||
case 85:
|
||
#line 953 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "|";
|
||
}
|
||
break;
|
||
|
||
case 86:
|
||
#line 957 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "&";
|
||
}
|
||
break;
|
||
|
||
case 87:
|
||
#line 961 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "^";
|
||
}
|
||
break;
|
||
|
||
case 88:
|
||
#line 965 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "||";
|
||
}
|
||
break;
|
||
|
||
case 89:
|
||
#line 969 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "&&";
|
||
}
|
||
break;
|
||
|
||
case 90:
|
||
#line 973 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "==";
|
||
}
|
||
break;
|
||
|
||
case 91:
|
||
#line 977 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "!=";
|
||
}
|
||
break;
|
||
|
||
case 92:
|
||
#line 981 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "<=";
|
||
}
|
||
break;
|
||
|
||
case 93:
|
||
#line 985 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = ">=";
|
||
}
|
||
break;
|
||
|
||
case 94:
|
||
#line 989 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "<";
|
||
}
|
||
break;
|
||
|
||
case 95:
|
||
#line 993 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = ">";
|
||
}
|
||
break;
|
||
|
||
case 96:
|
||
#line 997 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "<<";
|
||
}
|
||
break;
|
||
|
||
case 97:
|
||
#line 1001 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = ">>";
|
||
}
|
||
break;
|
||
|
||
case 98:
|
||
#line 1005 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "=";
|
||
}
|
||
break;
|
||
|
||
case 99:
|
||
#line 1009 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = ",";
|
||
}
|
||
break;
|
||
|
||
case 100:
|
||
#line 1013 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "++";
|
||
}
|
||
break;
|
||
|
||
case 101:
|
||
#line 1017 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "--";
|
||
}
|
||
break;
|
||
|
||
case 102:
|
||
#line 1021 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "*=";
|
||
}
|
||
break;
|
||
|
||
case 103:
|
||
#line 1025 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "/=";
|
||
}
|
||
break;
|
||
|
||
case 104:
|
||
#line 1029 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "%=";
|
||
}
|
||
break;
|
||
|
||
case 105:
|
||
#line 1033 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "+=";
|
||
}
|
||
break;
|
||
|
||
case 106:
|
||
#line 1037 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "-=";
|
||
}
|
||
break;
|
||
|
||
case 107:
|
||
#line 1041 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "|=";
|
||
}
|
||
break;
|
||
|
||
case 108:
|
||
#line 1045 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "&=";
|
||
}
|
||
break;
|
||
|
||
case 109:
|
||
#line 1049 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "^=";
|
||
}
|
||
break;
|
||
|
||
case 110:
|
||
#line 1053 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "<<=";
|
||
}
|
||
break;
|
||
|
||
case 111:
|
||
#line 1057 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = ">>=";
|
||
}
|
||
break;
|
||
|
||
case 112:
|
||
#line 1061 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "->";
|
||
}
|
||
break;
|
||
|
||
case 113:
|
||
#line 1065 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "[]";
|
||
}
|
||
break;
|
||
|
||
case 114:
|
||
#line 1069 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "()";
|
||
}
|
||
break;
|
||
|
||
case 115:
|
||
#line 1073 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "new";
|
||
}
|
||
break;
|
||
|
||
case 116:
|
||
#line 1077 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = "delete";
|
||
}
|
||
break;
|
||
|
||
case 119:
|
||
#line 1089 "cppBison.yxx"
|
||
{
|
||
push_scope(new CPPTemplateScope(current_scope));
|
||
}
|
||
break;
|
||
|
||
case 120:
|
||
#line 1093 "cppBison.yxx"
|
||
{
|
||
pop_scope();
|
||
}
|
||
break;
|
||
|
||
case 123:
|
||
#line 1105 "cppBison.yxx"
|
||
{
|
||
CPPTemplateScope *ts = current_scope->as_template_scope();
|
||
assert(ts != NULL);
|
||
ts->add_template_parameter((yyvsp[0].u.decl));
|
||
}
|
||
break;
|
||
|
||
case 124:
|
||
#line 1111 "cppBison.yxx"
|
||
{
|
||
CPPTemplateScope *ts = current_scope->as_template_scope();
|
||
assert(ts != NULL);
|
||
ts->add_template_parameter((yyvsp[0].u.decl));
|
||
}
|
||
break;
|
||
|
||
case 125:
|
||
#line 1120 "cppBison.yxx"
|
||
{
|
||
(yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier)));
|
||
}
|
||
break;
|
||
|
||
case 126:
|
||
#line 1124 "cppBison.yxx"
|
||
{
|
||
(yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type)));
|
||
}
|
||
break;
|
||
|
||
case 127:
|
||
#line 1128 "cppBison.yxx"
|
||
{
|
||
CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file);
|
||
inst->set_initializer((yyvsp[0].u.expr));
|
||
(yyval.u.decl) = inst;
|
||
}
|
||
break;
|
||
|
||
case 128:
|
||
#line 1134 "cppBison.yxx"
|
||
{
|
||
(yyvsp[-1].u.inst_ident)->add_modifier(IIT_const);
|
||
CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file);
|
||
inst->set_initializer((yyvsp[0].u.expr));
|
||
(yyval.u.decl) = inst;
|
||
}
|
||
break;
|
||
|
||
case 129:
|
||
#line 1144 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type));
|
||
}
|
||
break;
|
||
|
||
case 130:
|
||
#line 1148 "cppBison.yxx"
|
||
{
|
||
yywarning("Not a type: " + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0]));
|
||
(yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown));
|
||
}
|
||
break;
|
||
|
||
case 131:
|
||
#line 1153 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
assert((yyval.u.type) != NULL);
|
||
}
|
||
break;
|
||
|
||
case 132:
|
||
#line 1158 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier)));
|
||
}
|
||
break;
|
||
|
||
case 133:
|
||
#line 1166 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier));
|
||
}
|
||
break;
|
||
|
||
case 134:
|
||
#line 1170 "cppBison.yxx"
|
||
{
|
||
// For an operator function. We implement this simply by building a
|
||
// ficticious name for the function; in other respects it's just
|
||
// like a regular function.
|
||
CPPIdentifier *ident = (yyvsp[-1].u.identifier);
|
||
if (ident == NULL) {
|
||
ident = new CPPIdentifier("operator "+(yyvsp[0].str), (yylsp[0]).file);
|
||
} else {
|
||
ident->_names.push_back("operator "+(yyvsp[0].str));
|
||
}
|
||
|
||
(yyval.u.inst_ident) = new CPPInstanceIdentifier(ident);
|
||
}
|
||
break;
|
||
|
||
case 135:
|
||
#line 1184 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_const);
|
||
}
|
||
break;
|
||
|
||
case 136:
|
||
#line 1189 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_pointer);
|
||
}
|
||
break;
|
||
|
||
case 137:
|
||
#line 1194 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_reference);
|
||
}
|
||
break;
|
||
|
||
case 138:
|
||
#line 1199 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier));
|
||
}
|
||
break;
|
||
|
||
case 139:
|
||
#line 1204 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 140:
|
||
#line 1209 "cppBison.yxx"
|
||
{
|
||
// bitfield definition. We ignore the bitfield for now.
|
||
(yyval.u.inst_ident) = (yyvsp[-2].u.inst_ident);
|
||
}
|
||
break;
|
||
|
||
case 141:
|
||
#line 1214 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_paren);
|
||
}
|
||
break;
|
||
|
||
case 142:
|
||
#line 1219 "cppBison.yxx"
|
||
{
|
||
push_scope((yyvsp[-1].u.inst_ident)->get_scope(current_scope, global_scope));
|
||
}
|
||
break;
|
||
|
||
case 143:
|
||
#line 1223 "cppBison.yxx"
|
||
{
|
||
pop_scope();
|
||
(yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident);
|
||
if ((yyvsp[-2].u.param_list)->is_parameter_expr() && (yyvsp[0].u.integer) == 0) {
|
||
// Oops, this must have been an instance declaration with a
|
||
// parameter list, not a function prototype.
|
||
(yyval.u.inst_ident)->add_initializer_modifier((yyvsp[-2].u.param_list));
|
||
|
||
} else {
|
||
// This was (probably) a function prototype.
|
||
(yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 144:
|
||
#line 1241 "cppBison.yxx"
|
||
{
|
||
(yyval.u.param_list) = new CPPParameterList;
|
||
}
|
||
break;
|
||
|
||
case 145:
|
||
#line 1245 "cppBison.yxx"
|
||
{
|
||
(yyval.u.param_list) = new CPPParameterList;
|
||
(yyval.u.param_list)->_includes_ellipsis = true;
|
||
}
|
||
break;
|
||
|
||
case 146:
|
||
#line 1250 "cppBison.yxx"
|
||
{
|
||
(yyval.u.param_list) = (yyvsp[0].u.param_list);
|
||
}
|
||
break;
|
||
|
||
case 147:
|
||
#line 1254 "cppBison.yxx"
|
||
{
|
||
(yyval.u.param_list) = (yyvsp[-2].u.param_list);
|
||
(yyval.u.param_list)->_includes_ellipsis = true;
|
||
}
|
||
break;
|
||
|
||
case 148:
|
||
#line 1259 "cppBison.yxx"
|
||
{
|
||
(yyval.u.param_list) = (yyvsp[-1].u.param_list);
|
||
(yyval.u.param_list)->_includes_ellipsis = true;
|
||
}
|
||
break;
|
||
|
||
case 149:
|
||
#line 1267 "cppBison.yxx"
|
||
{
|
||
(yyval.u.param_list) = new CPPParameterList;
|
||
(yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance));
|
||
}
|
||
break;
|
||
|
||
case 150:
|
||
#line 1272 "cppBison.yxx"
|
||
{
|
||
(yyval.u.param_list) = (yyvsp[-2].u.param_list);
|
||
(yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance));
|
||
}
|
||
break;
|
||
|
||
case 151:
|
||
#line 1280 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (CPPExpression *)NULL;
|
||
}
|
||
break;
|
||
|
||
case 152:
|
||
#line 1284 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 153:
|
||
#line 1291 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (CPPExpression *)NULL;
|
||
}
|
||
break;
|
||
|
||
case 154:
|
||
#line 1295 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 155:
|
||
#line 1302 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (CPPExpression *)NULL;
|
||
}
|
||
break;
|
||
|
||
case 156:
|
||
#line 1306 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (CPPExpression *)NULL;
|
||
}
|
||
break;
|
||
|
||
case 157:
|
||
#line 1310 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (CPPExpression *)NULL;
|
||
}
|
||
break;
|
||
|
||
case 158:
|
||
#line 1314 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[-1].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 159:
|
||
#line 1318 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (CPPExpression *)NULL;
|
||
}
|
||
break;
|
||
|
||
case 163:
|
||
#line 1331 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 167:
|
||
#line 1340 "cppBison.yxx"
|
||
{
|
||
(yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file);
|
||
(yyval.u.instance)->set_initializer((yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 168:
|
||
#line 1345 "cppBison.yxx"
|
||
{
|
||
yywarning("Not a type: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2]));
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown));
|
||
(yyval.u.instance) = new CPPInstance(type, (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file);
|
||
(yyval.u.instance)->set_initializer((yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 169:
|
||
#line 1353 "cppBison.yxx"
|
||
{
|
||
(yyvsp[-1].u.inst_ident)->add_modifier(IIT_const);
|
||
(yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file);
|
||
(yyval.u.instance)->set_initializer((yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 170:
|
||
#line 1359 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_parameter));
|
||
(yyval.u.instance) = new CPPInstance(type, "expr");
|
||
(yyval.u.instance)->set_initializer((yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 171:
|
||
#line 1369 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL);
|
||
}
|
||
break;
|
||
|
||
case 172:
|
||
#line 1373 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier));
|
||
}
|
||
break;
|
||
|
||
case 173:
|
||
#line 1377 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier));
|
||
}
|
||
break;
|
||
|
||
case 174:
|
||
#line 1381 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_const);
|
||
}
|
||
break;
|
||
|
||
case 175:
|
||
#line 1386 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_pointer);
|
||
}
|
||
break;
|
||
|
||
case 176:
|
||
#line 1391 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_reference);
|
||
}
|
||
break;
|
||
|
||
case 177:
|
||
#line 1396 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier));
|
||
}
|
||
break;
|
||
|
||
case 178:
|
||
#line 1401 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 179:
|
||
#line 1409 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL);
|
||
}
|
||
break;
|
||
|
||
case 180:
|
||
#line 1413 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier));
|
||
}
|
||
break;
|
||
|
||
case 181:
|
||
#line 1417 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier));
|
||
}
|
||
break;
|
||
|
||
case 182:
|
||
#line 1421 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_const);
|
||
}
|
||
break;
|
||
|
||
case 183:
|
||
#line 1426 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_pointer);
|
||
}
|
||
break;
|
||
|
||
case 184:
|
||
#line 1431 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_reference);
|
||
}
|
||
break;
|
||
|
||
case 185:
|
||
#line 1436 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier));
|
||
}
|
||
break;
|
||
|
||
case 186:
|
||
#line 1441 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 187:
|
||
#line 1446 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_paren);
|
||
(yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 188:
|
||
#line 1452 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_paren);
|
||
}
|
||
break;
|
||
|
||
case 189:
|
||
#line 1460 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL);
|
||
}
|
||
break;
|
||
|
||
case 190:
|
||
#line 1464 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_const);
|
||
}
|
||
break;
|
||
|
||
case 191:
|
||
#line 1469 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_pointer);
|
||
}
|
||
break;
|
||
|
||
case 192:
|
||
#line 1474 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_reference);
|
||
}
|
||
break;
|
||
|
||
case 193:
|
||
#line 1479 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[0].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier));
|
||
}
|
||
break;
|
||
|
||
case 194:
|
||
#line 1484 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 195:
|
||
#line 1489 "cppBison.yxx"
|
||
{
|
||
(yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident);
|
||
(yyval.u.inst_ident)->add_modifier(IIT_paren);
|
||
(yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 196:
|
||
#line 1498 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type));
|
||
}
|
||
break;
|
||
|
||
case 197:
|
||
#line 1502 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
assert((yyval.u.type) != NULL);
|
||
}
|
||
break;
|
||
|
||
case 198:
|
||
#line 1507 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier)));
|
||
}
|
||
break;
|
||
|
||
case 199:
|
||
#line 1511 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type));
|
||
}
|
||
break;
|
||
|
||
case 200:
|
||
#line 1515 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type));
|
||
}
|
||
break;
|
||
|
||
case 201:
|
||
#line 1519 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type));
|
||
}
|
||
break;
|
||
|
||
case 202:
|
||
#line 1523 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type));
|
||
}
|
||
break;
|
||
|
||
case 203:
|
||
#line 1527 "cppBison.yxx"
|
||
{
|
||
CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
if (type != NULL) {
|
||
(yyval.u.type) = type;
|
||
} else {
|
||
CPPExtensionType *et =
|
||
CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file))
|
||
->as_extension_type();
|
||
CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope);
|
||
if (scope != NULL) {
|
||
scope->define_extension_type(et);
|
||
}
|
||
(yyval.u.type) = et;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 204:
|
||
#line 1543 "cppBison.yxx"
|
||
{
|
||
CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
if (type != NULL) {
|
||
(yyval.u.type) = type;
|
||
} else {
|
||
CPPExtensionType *et =
|
||
CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file))
|
||
->as_extension_type();
|
||
CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope);
|
||
if (scope != NULL) {
|
||
scope->define_extension_type(et);
|
||
}
|
||
(yyval.u.type) = et;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 205:
|
||
#line 1562 "cppBison.yxx"
|
||
{
|
||
(yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type));
|
||
}
|
||
break;
|
||
|
||
case 206:
|
||
#line 1566 "cppBison.yxx"
|
||
{
|
||
(yyval.u.decl) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
assert((yyval.u.decl) != NULL);
|
||
}
|
||
break;
|
||
|
||
case 207:
|
||
#line 1571 "cppBison.yxx"
|
||
{
|
||
(yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier)));
|
||
}
|
||
break;
|
||
|
||
case 208:
|
||
#line 1575 "cppBison.yxx"
|
||
{
|
||
(yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type));
|
||
}
|
||
break;
|
||
|
||
case 209:
|
||
#line 1579 "cppBison.yxx"
|
||
{
|
||
(yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type)));
|
||
}
|
||
break;
|
||
|
||
case 210:
|
||
#line 1583 "cppBison.yxx"
|
||
{
|
||
(yyval.u.decl) = CPPType::new_type((yyvsp[0].u.enum_type));
|
||
}
|
||
break;
|
||
|
||
case 211:
|
||
#line 1587 "cppBison.yxx"
|
||
{
|
||
(yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type)));
|
||
}
|
||
break;
|
||
|
||
case 212:
|
||
#line 1591 "cppBison.yxx"
|
||
{
|
||
CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
if (type != NULL) {
|
||
(yyval.u.decl) = type;
|
||
} else {
|
||
CPPExtensionType *et =
|
||
CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file))
|
||
->as_extension_type();
|
||
CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope);
|
||
if (scope != NULL) {
|
||
scope->define_extension_type(et);
|
||
}
|
||
(yyval.u.decl) = et;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 213:
|
||
#line 1607 "cppBison.yxx"
|
||
{
|
||
CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
if (type != NULL) {
|
||
(yyval.u.decl) = type;
|
||
} else {
|
||
CPPExtensionType *et =
|
||
CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file))
|
||
->as_extension_type();
|
||
CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope);
|
||
if (scope != NULL) {
|
||
scope->define_extension_type(et);
|
||
}
|
||
(yyval.u.decl) = et;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 214:
|
||
#line 1626 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type));
|
||
}
|
||
break;
|
||
|
||
case 215:
|
||
#line 1630 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
assert((yyval.u.type) != NULL);
|
||
}
|
||
break;
|
||
|
||
case 216:
|
||
#line 1635 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier)));
|
||
}
|
||
break;
|
||
|
||
case 217:
|
||
#line 1639 "cppBison.yxx"
|
||
{
|
||
CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
if (type != NULL) {
|
||
(yyval.u.type) = type;
|
||
} else {
|
||
CPPExtensionType *et =
|
||
CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file))
|
||
->as_extension_type();
|
||
CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope);
|
||
if (scope != NULL) {
|
||
scope->define_extension_type(et);
|
||
}
|
||
(yyval.u.type) = et;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 218:
|
||
#line 1655 "cppBison.yxx"
|
||
{
|
||
CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
if (type != NULL) {
|
||
(yyval.u.type) = type;
|
||
} else {
|
||
CPPExtensionType *et =
|
||
CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file))
|
||
->as_extension_type();
|
||
CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope);
|
||
if (scope != NULL) {
|
||
scope->define_extension_type(et);
|
||
}
|
||
(yyval.u.type) = et;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 219:
|
||
#line 1674 "cppBison.yxx"
|
||
{
|
||
CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[-1]).file);
|
||
(yyval.u.type) = inst->_type;
|
||
delete inst;
|
||
}
|
||
break;
|
||
|
||
case 220:
|
||
#line 1680 "cppBison.yxx"
|
||
{
|
||
(yyvsp[0].u.inst_ident)->add_modifier(IIT_const);
|
||
CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[-2]).file);
|
||
(yyval.u.type) = inst->_type;
|
||
delete inst;
|
||
}
|
||
break;
|
||
|
||
case 221:
|
||
#line 1690 "cppBison.yxx"
|
||
{
|
||
CPPVisibility starting_vis =
|
||
((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public;
|
||
|
||
CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("anon"),
|
||
starting_vis);
|
||
CPPStructType *st = new CPPStructType((yyvsp[-1].u.extension_enum), NULL, current_scope,
|
||
new_scope, (yylsp[-1]).file);
|
||
new_scope->set_struct_type(st);
|
||
|
||
push_scope(new_scope);
|
||
push_struct(st);
|
||
}
|
||
break;
|
||
|
||
case 222:
|
||
#line 1704 "cppBison.yxx"
|
||
{
|
||
(yyval.u.struct_type) = current_struct;
|
||
current_struct->_incomplete = false;
|
||
pop_struct();
|
||
pop_scope();
|
||
}
|
||
break;
|
||
|
||
case 223:
|
||
#line 1714 "cppBison.yxx"
|
||
{
|
||
CPPVisibility starting_vis =
|
||
((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public;
|
||
|
||
CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope, current_lexer);
|
||
if (scope == NULL) {
|
||
scope = current_scope;
|
||
}
|
||
CPPScope *new_scope = new CPPScope(scope, (yyvsp[0].u.identifier)->_names.back(),
|
||
starting_vis);
|
||
|
||
CPPStructType *st = new CPPStructType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope,
|
||
new_scope, (yylsp[-1]).file);
|
||
new_scope->set_struct_type(st);
|
||
current_scope->define_extension_type(st);
|
||
|
||
push_scope(new_scope);
|
||
push_struct(st);
|
||
}
|
||
break;
|
||
|
||
case 224:
|
||
#line 1734 "cppBison.yxx"
|
||
{
|
||
(yyval.u.struct_type) = current_struct;
|
||
current_struct->_incomplete = false;
|
||
pop_struct();
|
||
pop_scope();
|
||
}
|
||
break;
|
||
|
||
case 229:
|
||
#line 1754 "cppBison.yxx"
|
||
{
|
||
current_struct->append_derivation((yyvsp[0].u.type), V_public, false);
|
||
}
|
||
break;
|
||
|
||
case 230:
|
||
#line 1758 "cppBison.yxx"
|
||
{
|
||
current_struct->append_derivation((yyvsp[0].u.type), V_protected, false);
|
||
}
|
||
break;
|
||
|
||
case 231:
|
||
#line 1762 "cppBison.yxx"
|
||
{
|
||
current_struct->append_derivation((yyvsp[0].u.type), V_private, false);
|
||
}
|
||
break;
|
||
|
||
case 232:
|
||
#line 1766 "cppBison.yxx"
|
||
{
|
||
current_struct->append_derivation((yyvsp[0].u.type), V_public, true);
|
||
}
|
||
break;
|
||
|
||
case 233:
|
||
#line 1770 "cppBison.yxx"
|
||
{
|
||
current_struct->append_derivation((yyvsp[0].u.type), V_protected, true);
|
||
}
|
||
break;
|
||
|
||
case 234:
|
||
#line 1774 "cppBison.yxx"
|
||
{
|
||
current_struct->append_derivation((yyvsp[0].u.type), V_private, true);
|
||
}
|
||
break;
|
||
|
||
case 235:
|
||
#line 1778 "cppBison.yxx"
|
||
{
|
||
current_struct->append_derivation((yyvsp[0].u.type), V_public, true);
|
||
}
|
||
break;
|
||
|
||
case 236:
|
||
#line 1782 "cppBison.yxx"
|
||
{
|
||
current_struct->append_derivation((yyvsp[0].u.type), V_protected, true);
|
||
}
|
||
break;
|
||
|
||
case 237:
|
||
#line 1786 "cppBison.yxx"
|
||
{
|
||
current_struct->append_derivation((yyvsp[0].u.type), V_private, true);
|
||
}
|
||
break;
|
||
|
||
case 238:
|
||
#line 1793 "cppBison.yxx"
|
||
{
|
||
current_enum = new CPPEnumType(NULL, current_scope, (yylsp[-1]).file);
|
||
}
|
||
break;
|
||
|
||
case 239:
|
||
#line 1797 "cppBison.yxx"
|
||
{
|
||
(yyval.u.enum_type) = current_enum;
|
||
current_enum = NULL;
|
||
}
|
||
break;
|
||
|
||
case 240:
|
||
#line 1805 "cppBison.yxx"
|
||
{
|
||
current_enum = new CPPEnumType((yyvsp[-1].u.identifier), current_scope, (yylsp[-2]).file);
|
||
}
|
||
break;
|
||
|
||
case 241:
|
||
#line 1809 "cppBison.yxx"
|
||
{
|
||
(yyval.u.enum_type) = current_enum;
|
||
current_enum = NULL;
|
||
}
|
||
break;
|
||
|
||
case 245:
|
||
#line 1823 "cppBison.yxx"
|
||
{
|
||
assert(current_enum != NULL);
|
||
current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name(), current_scope);
|
||
}
|
||
break;
|
||
|
||
case 246:
|
||
#line 1828 "cppBison.yxx"
|
||
{
|
||
assert(current_enum != NULL);
|
||
current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), current_scope, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 247:
|
||
#line 1833 "cppBison.yxx"
|
||
{
|
||
assert(current_enum != NULL);
|
||
current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name(), current_scope);
|
||
}
|
||
break;
|
||
|
||
case 248:
|
||
#line 1838 "cppBison.yxx"
|
||
{
|
||
assert(current_enum != NULL);
|
||
current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), current_scope, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 249:
|
||
#line 1846 "cppBison.yxx"
|
||
{
|
||
(yyval.u.extension_enum) = CPPExtensionType::T_enum;
|
||
}
|
||
break;
|
||
|
||
case 250:
|
||
#line 1853 "cppBison.yxx"
|
||
{
|
||
(yyval.u.extension_enum) = CPPExtensionType::T_class;
|
||
}
|
||
break;
|
||
|
||
case 251:
|
||
#line 1857 "cppBison.yxx"
|
||
{
|
||
(yyval.u.extension_enum) = CPPExtensionType::T_struct;
|
||
}
|
||
break;
|
||
|
||
case 252:
|
||
#line 1861 "cppBison.yxx"
|
||
{
|
||
(yyval.u.extension_enum) = CPPExtensionType::T_union;
|
||
}
|
||
break;
|
||
|
||
case 253:
|
||
#line 1868 "cppBison.yxx"
|
||
{
|
||
CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer);
|
||
if (scope == NULL) {
|
||
// This must be a new namespace declaration.
|
||
CPPScope *parent_scope =
|
||
(yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope, current_lexer);
|
||
if (parent_scope == NULL) {
|
||
parent_scope = current_scope;
|
||
}
|
||
scope = new CPPScope(parent_scope, (yyvsp[-1].u.identifier)->_names.back(), V_public);
|
||
}
|
||
|
||
CPPNamespace *nspace = new CPPNamespace((yyvsp[-1].u.identifier), scope, (yylsp[-2]).file);
|
||
current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[-2]));
|
||
current_scope->define_namespace(nspace);
|
||
push_scope(scope);
|
||
}
|
||
break;
|
||
|
||
case 254:
|
||
#line 1886 "cppBison.yxx"
|
||
{
|
||
pop_scope();
|
||
}
|
||
break;
|
||
|
||
case 256:
|
||
#line 1894 "cppBison.yxx"
|
||
{
|
||
CPPUsing *using_decl = new CPPUsing((yyvsp[0].u.identifier), false, (yylsp[-1]).file);
|
||
current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[-1]));
|
||
current_scope->add_using(using_decl, global_scope, current_lexer);
|
||
}
|
||
break;
|
||
|
||
case 257:
|
||
#line 1900 "cppBison.yxx"
|
||
{
|
||
CPPUsing *using_decl = new CPPUsing((yyvsp[0].u.identifier), true, (yylsp[-2]).file);
|
||
current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[-2]));
|
||
current_scope->add_using(using_decl, global_scope, current_lexer);
|
||
}
|
||
break;
|
||
|
||
case 261:
|
||
#line 1915 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool);
|
||
}
|
||
break;
|
||
|
||
case 262:
|
||
#line 1919 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char);
|
||
}
|
||
break;
|
||
|
||
case 263:
|
||
#line 1923 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t);
|
||
}
|
||
break;
|
||
|
||
case 264:
|
||
#line 1927 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int,
|
||
CPPSimpleType::F_short);
|
||
}
|
||
break;
|
||
|
||
case 265:
|
||
#line 1932 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int,
|
||
CPPSimpleType::F_long);
|
||
}
|
||
break;
|
||
|
||
case 266:
|
||
#line 1937 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int,
|
||
CPPSimpleType::F_longlong);
|
||
}
|
||
break;
|
||
|
||
case 267:
|
||
#line 1942 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int,
|
||
CPPSimpleType::F_unsigned);
|
||
}
|
||
break;
|
||
|
||
case 268:
|
||
#line 1947 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int,
|
||
CPPSimpleType::F_signed);
|
||
}
|
||
break;
|
||
|
||
case 269:
|
||
#line 1952 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int);
|
||
}
|
||
break;
|
||
|
||
case 270:
|
||
#line 1956 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = (yyvsp[0].u.simple_type);
|
||
(yyval.u.simple_type)->_flags |= CPPSimpleType::F_short;
|
||
}
|
||
break;
|
||
|
||
case 271:
|
||
#line 1961 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = (yyvsp[0].u.simple_type);
|
||
if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) {
|
||
(yyval.u.simple_type)->_flags |= CPPSimpleType::F_longlong;
|
||
} else {
|
||
(yyval.u.simple_type)->_flags |= CPPSimpleType::F_long;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 272:
|
||
#line 1970 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = (yyvsp[0].u.simple_type);
|
||
(yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned;
|
||
}
|
||
break;
|
||
|
||
case 273:
|
||
#line 1975 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = (yyvsp[0].u.simple_type);
|
||
(yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed;
|
||
}
|
||
break;
|
||
|
||
case 274:
|
||
#line 1983 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float);
|
||
}
|
||
break;
|
||
|
||
case 275:
|
||
#line 1987 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float,
|
||
CPPSimpleType::F_long);
|
||
}
|
||
break;
|
||
|
||
case 276:
|
||
#line 1992 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double);
|
||
}
|
||
break;
|
||
|
||
case 277:
|
||
#line 1996 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float,
|
||
CPPSimpleType::F_longlong);
|
||
}
|
||
break;
|
||
|
||
case 278:
|
||
#line 2001 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double,
|
||
CPPSimpleType::F_long);
|
||
}
|
||
break;
|
||
|
||
case 279:
|
||
#line 2009 "cppBison.yxx"
|
||
{
|
||
(yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void);
|
||
}
|
||
break;
|
||
|
||
case 280:
|
||
#line 2018 "cppBison.yxx"
|
||
{
|
||
current_lexer->_resolve_identifiers = false;
|
||
}
|
||
break;
|
||
|
||
case 281:
|
||
#line 2022 "cppBison.yxx"
|
||
{
|
||
current_lexer->_resolve_identifiers = true;
|
||
}
|
||
break;
|
||
|
||
case 284:
|
||
#line 2034 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 285:
|
||
#line 2037 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 286:
|
||
#line 2040 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 287:
|
||
#line 2043 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 288:
|
||
#line 2046 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 289:
|
||
#line 2049 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 290:
|
||
#line 2052 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 291:
|
||
#line 2055 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 365:
|
||
#line 2075 "cppBison.yxx"
|
||
{
|
||
}
|
||
break;
|
||
|
||
case 389:
|
||
#line 2084 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (CPPExpression *)NULL;
|
||
}
|
||
break;
|
||
|
||
case 390:
|
||
#line 2088 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 391:
|
||
#line 2095 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (CPPExpression *)NULL;
|
||
}
|
||
break;
|
||
|
||
case 392:
|
||
#line 2099 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 393:
|
||
#line 2106 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 394:
|
||
#line 2110 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 395:
|
||
#line 2117 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 396:
|
||
#line 2121 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 397:
|
||
#line 2125 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 398:
|
||
#line 2129 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 399:
|
||
#line 2133 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type)));
|
||
}
|
||
break;
|
||
|
||
case 400:
|
||
#line 2137 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 401:
|
||
#line 2141 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 402:
|
||
#line 2145 "cppBison.yxx"
|
||
{
|
||
if ((yyvsp[0].u.expr)->_type == CPPExpression::T_integer) {
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
(yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer;
|
||
} else if ((yyvsp[0].u.expr)->_type == CPPExpression::T_real) {
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
(yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real;
|
||
} else {
|
||
(yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr));
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 403:
|
||
#line 2157 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 404:
|
||
#line 2161 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 405:
|
||
#line 2165 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 406:
|
||
#line 2169 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 407:
|
||
#line 2173 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 408:
|
||
#line 2177 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 409:
|
||
#line 2181 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 410:
|
||
#line 2185 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 411:
|
||
#line 2189 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 412:
|
||
#line 2193 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 413:
|
||
#line 2197 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 414:
|
||
#line 2201 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 415:
|
||
#line 2205 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 416:
|
||
#line 2209 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 417:
|
||
#line 2213 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 418:
|
||
#line 2217 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 419:
|
||
#line 2221 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 420:
|
||
#line 2225 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 421:
|
||
#line 2229 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 422:
|
||
#line 2233 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 423:
|
||
#line 2237 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 424:
|
||
#line 2241 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 425:
|
||
#line 2245 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 426:
|
||
#line 2249 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[-1].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 427:
|
||
#line 2257 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 428:
|
||
#line 2261 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 429:
|
||
#line 2265 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 430:
|
||
#line 2269 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 431:
|
||
#line 2273 "cppBison.yxx"
|
||
{
|
||
// A constructor call.
|
||
CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer);
|
||
assert(type != NULL);
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 432:
|
||
#line 2280 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 433:
|
||
#line 2286 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 434:
|
||
#line 2292 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 435:
|
||
#line 2298 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 436:
|
||
#line 2304 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int,
|
||
CPPSimpleType::F_short));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 437:
|
||
#line 2311 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int,
|
||
CPPSimpleType::F_long));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 438:
|
||
#line 2318 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int,
|
||
CPPSimpleType::F_unsigned));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 439:
|
||
#line 2325 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int,
|
||
CPPSimpleType::F_signed));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 440:
|
||
#line 2332 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 441:
|
||
#line 2338 "cppBison.yxx"
|
||
{
|
||
CPPType *type =
|
||
CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double));
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 442:
|
||
#line 2344 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type)));
|
||
}
|
||
break;
|
||
|
||
case 443:
|
||
#line 2348 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type)));
|
||
}
|
||
break;
|
||
|
||
case 444:
|
||
#line 2352 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 445:
|
||
#line 2356 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 446:
|
||
#line 2360 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 447:
|
||
#line 2364 "cppBison.yxx"
|
||
{
|
||
if ((yyvsp[0].u.expr)->_type == CPPExpression::T_integer) {
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
(yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer;
|
||
} else if ((yyvsp[0].u.expr)->_type == CPPExpression::T_real) {
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
(yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real;
|
||
} else {
|
||
(yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr));
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 448:
|
||
#line 2376 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 449:
|
||
#line 2380 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 450:
|
||
#line 2384 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 451:
|
||
#line 2388 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 452:
|
||
#line 2392 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 453:
|
||
#line 2396 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 454:
|
||
#line 2400 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 455:
|
||
#line 2404 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 456:
|
||
#line 2408 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 457:
|
||
#line 2412 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 458:
|
||
#line 2416 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 459:
|
||
#line 2420 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 460:
|
||
#line 2424 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 461:
|
||
#line 2428 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 462:
|
||
#line 2432 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 463:
|
||
#line 2436 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 464:
|
||
#line 2440 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 465:
|
||
#line 2444 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 466:
|
||
#line 2448 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 467:
|
||
#line 2452 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 468:
|
||
#line 2456 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 469:
|
||
#line 2460 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 470:
|
||
#line 2464 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 471:
|
||
#line 2468 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 472:
|
||
#line 2472 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 473:
|
||
#line 2476 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[-1].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 474:
|
||
#line 2483 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 475:
|
||
#line 2487 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(true);
|
||
}
|
||
break;
|
||
|
||
case 476:
|
||
#line 2491 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(false);
|
||
}
|
||
break;
|
||
|
||
case 477:
|
||
#line 2495 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 478:
|
||
#line 2499 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression((yyvsp[0].u.real));
|
||
}
|
||
break;
|
||
|
||
case 479:
|
||
#line 2503 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression((yyvsp[0].str));
|
||
}
|
||
break;
|
||
|
||
case 480:
|
||
#line 2507 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer);
|
||
}
|
||
break;
|
||
|
||
case 481:
|
||
#line 2521 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 482:
|
||
#line 2525 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 483:
|
||
#line 2529 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 484:
|
||
#line 2533 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 485:
|
||
#line 2537 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type)));
|
||
}
|
||
break;
|
||
|
||
case 486:
|
||
#line 2541 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type)));
|
||
}
|
||
break;
|
||
|
||
case 487:
|
||
#line 2545 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr)));
|
||
}
|
||
break;
|
||
|
||
case 488:
|
||
#line 2549 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 489:
|
||
#line 2553 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 490:
|
||
#line 2557 "cppBison.yxx"
|
||
{
|
||
if ((yyvsp[0].u.expr)->_type == CPPExpression::T_integer) {
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
(yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer;
|
||
} else if ((yyvsp[0].u.expr)->_type == CPPExpression::T_real) {
|
||
(yyval.u.expr) = (yyvsp[0].u.expr);
|
||
(yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real;
|
||
} else {
|
||
(yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr));
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 491:
|
||
#line 2569 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 492:
|
||
#line 2573 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 493:
|
||
#line 2577 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 494:
|
||
#line 2581 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 495:
|
||
#line 2585 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 496:
|
||
#line 2589 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 497:
|
||
#line 2593 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 498:
|
||
#line 2597 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 499:
|
||
#line 2601 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 500:
|
||
#line 2605 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 501:
|
||
#line 2609 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 502:
|
||
#line 2613 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 503:
|
||
#line 2617 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 504:
|
||
#line 2621 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 505:
|
||
#line 2625 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 506:
|
||
#line 2629 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 507:
|
||
#line 2633 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 508:
|
||
#line 2637 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 509:
|
||
#line 2641 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 510:
|
||
#line 2645 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 511:
|
||
#line 2649 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 512:
|
||
#line 2653 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 513:
|
||
#line 2657 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 514:
|
||
#line 2661 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr));
|
||
}
|
||
break;
|
||
|
||
case 515:
|
||
#line 2665 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = (yyvsp[-1].u.expr);
|
||
}
|
||
break;
|
||
|
||
case 516:
|
||
#line 2672 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 517:
|
||
#line 2676 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(true);
|
||
}
|
||
break;
|
||
|
||
case 518:
|
||
#line 2680 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression(false);
|
||
}
|
||
break;
|
||
|
||
case 519:
|
||
#line 2684 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer));
|
||
}
|
||
break;
|
||
|
||
case 520:
|
||
#line 2688 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression((yyvsp[0].u.real));
|
||
}
|
||
break;
|
||
|
||
case 521:
|
||
#line 2692 "cppBison.yxx"
|
||
{
|
||
(yyval.u.expr) = new CPPExpression((yyvsp[0].str));
|
||
}
|
||
break;
|
||
|
||
case 522:
|
||
#line 2699 "cppBison.yxx"
|
||
{
|
||
CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true);
|
||
if (type == NULL) {
|
||
type = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier)));
|
||
}
|
||
(yyval.u.type) = type;
|
||
}
|
||
break;
|
||
|
||
case 523:
|
||
#line 2707 "cppBison.yxx"
|
||
{
|
||
CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true, current_lexer);
|
||
if (type == NULL) {
|
||
type = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier)));
|
||
}
|
||
(yyval.u.type) = type;
|
||
}
|
||
break;
|
||
|
||
case 524:
|
||
#line 2715 "cppBison.yxx"
|
||
{
|
||
(yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier)));
|
||
}
|
||
break;
|
||
|
||
case 525:
|
||
#line 2738 "cppBison.yxx"
|
||
{
|
||
(yyval.u.identifier) = (yyvsp[0].u.identifier);
|
||
}
|
||
break;
|
||
|
||
case 526:
|
||
#line 2742 "cppBison.yxx"
|
||
{
|
||
(yyval.u.identifier) = (yyvsp[0].u.identifier);
|
||
}
|
||
break;
|
||
|
||
case 527:
|
||
#line 2749 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = (yyvsp[0].str);
|
||
}
|
||
break;
|
||
|
||
case 528:
|
||
#line 2753 "cppBison.yxx"
|
||
{
|
||
(yyval.str) = (yyvsp[-1].str) + (yyvsp[0].str);
|
||
}
|
||
break;
|
||
|
||
|
||
}
|
||
|
||
/* Line 1037 of yacc.c. */
|
||
#line 6072 "y.tab.c"
|
||
|
||
yyvsp -= yylen;
|
||
yyssp -= yylen;
|
||
yylsp -= yylen;
|
||
|
||
YY_STACK_PRINT (yyss, yyssp);
|
||
|
||
*++yyvsp = yyval;
|
||
*++yylsp = yyloc;
|
||
|
||
/* Now `shift' the result of the reduction. Determine what state
|
||
that goes to, based on the state we popped back to and the rule
|
||
number reduced by. */
|
||
|
||
yyn = yyr1[yyn];
|
||
|
||
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
|
||
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
|
||
yystate = yytable[yystate];
|
||
else
|
||
yystate = yydefgoto[yyn - YYNTOKENS];
|
||
|
||
goto yynewstate;
|
||
|
||
|
||
/*------------------------------------.
|
||
| yyerrlab -- here on detecting error |
|
||
`------------------------------------*/
|
||
yyerrlab:
|
||
/* If not already recovering from an error, report this error. */
|
||
if (!yyerrstatus)
|
||
{
|
||
++yynerrs;
|
||
#if YYERROR_VERBOSE
|
||
yyn = yypact[yystate];
|
||
|
||
if (YYPACT_NINF < yyn && yyn < YYLAST)
|
||
{
|
||
YYSIZE_T yysize = 0;
|
||
int yytype = YYTRANSLATE (yychar);
|
||
const char* yyprefix;
|
||
char *yymsg;
|
||
int yyx;
|
||
|
||
/* Start YYX at -YYN if negative to avoid negative indexes in
|
||
YYCHECK. */
|
||
int yyxbegin = yyn < 0 ? -yyn : 0;
|
||
|
||
/* Stay within bounds of both yycheck and yytname. */
|
||
int yychecklim = YYLAST - yyn;
|
||
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
|
||
int yycount = 0;
|
||
|
||
yyprefix = ", expecting ";
|
||
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
|
||
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
|
||
{
|
||
yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
|
||
yycount += 1;
|
||
if (yycount == 5)
|
||
{
|
||
yysize = 0;
|
||
break;
|
||
}
|
||
}
|
||
yysize += (sizeof ("syntax error, unexpected ")
|
||
+ yystrlen (yytname[yytype]));
|
||
yymsg = (char *) YYSTACK_ALLOC (yysize);
|
||
if (yymsg != 0)
|
||
{
|
||
char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
|
||
yyp = yystpcpy (yyp, yytname[yytype]);
|
||
|
||
if (yycount < 5)
|
||
{
|
||
yyprefix = ", expecting ";
|
||
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
|
||
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
|
||
{
|
||
yyp = yystpcpy (yyp, yyprefix);
|
||
yyp = yystpcpy (yyp, yytname[yyx]);
|
||
yyprefix = " or ";
|
||
}
|
||
}
|
||
yyerror (yymsg);
|
||
YYSTACK_FREE (yymsg);
|
||
}
|
||
else
|
||
yyerror ("syntax error; also virtual memory exhausted");
|
||
}
|
||
else
|
||
#endif /* YYERROR_VERBOSE */
|
||
yyerror ("syntax error");
|
||
}
|
||
|
||
yyerror_range[0] = yylloc;
|
||
|
||
if (yyerrstatus == 3)
|
||
{
|
||
/* If just tried and failed to reuse look-ahead token after an
|
||
error, discard it. */
|
||
|
||
if (yychar <= YYEOF)
|
||
{
|
||
/* If at end of input, pop the error token,
|
||
then the rest of the stack, then return failure. */
|
||
if (yychar == YYEOF)
|
||
for (;;)
|
||
{
|
||
yyerror_range[0] = *yylsp;
|
||
YYPOPSTACK;
|
||
if (yyssp == yyss)
|
||
YYABORT;
|
||
yydestruct ("Error: popping",
|
||
yystos[*yyssp], yyvsp, yylsp);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
yydestruct ("Error: discarding", yytoken, &yylval, &yylloc);
|
||
yychar = YYEMPTY;
|
||
}
|
||
}
|
||
|
||
/* Else will try to reuse look-ahead token after shifting the error
|
||
token. */
|
||
goto yyerrlab1;
|
||
|
||
|
||
/*---------------------------------------------------.
|
||
| yyerrorlab -- error raised explicitly by YYERROR. |
|
||
`---------------------------------------------------*/
|
||
yyerrorlab:
|
||
|
||
#ifdef __GNUC__
|
||
/* Pacify GCC when the user code never invokes YYERROR and the label
|
||
yyerrorlab therefore never appears in user code. */
|
||
if (0)
|
||
goto yyerrorlab;
|
||
#endif
|
||
|
||
yyerror_range[0] = yylsp[1-yylen];
|
||
yylsp -= yylen;
|
||
yyvsp -= yylen;
|
||
yyssp -= yylen;
|
||
yystate = *yyssp;
|
||
goto yyerrlab1;
|
||
|
||
|
||
/*-------------------------------------------------------------.
|
||
| yyerrlab1 -- common code for both syntax error and YYERROR. |
|
||
`-------------------------------------------------------------*/
|
||
yyerrlab1:
|
||
yyerrstatus = 3; /* Each real token shifted decrements this. */
|
||
|
||
for (;;)
|
||
{
|
||
yyn = yypact[yystate];
|
||
if (yyn != YYPACT_NINF)
|
||
{
|
||
yyn += YYTERROR;
|
||
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
|
||
{
|
||
yyn = yytable[yyn];
|
||
if (0 < yyn)
|
||
break;
|
||
}
|
||
}
|
||
|
||
/* Pop the current state because it cannot handle the error token. */
|
||
if (yyssp == yyss)
|
||
YYABORT;
|
||
|
||
yyerror_range[0] = *yylsp;
|
||
yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp);
|
||
YYPOPSTACK;
|
||
yystate = *yyssp;
|
||
YY_STACK_PRINT (yyss, yyssp);
|
||
}
|
||
|
||
if (yyn == YYFINAL)
|
||
YYACCEPT;
|
||
|
||
*++yyvsp = yylval;
|
||
|
||
yyerror_range[1] = yylloc;
|
||
/* Using YYLLOC is tempting, but would change the location of
|
||
the look-ahead. YYLOC is available though. */
|
||
YYLLOC_DEFAULT (yyloc, yyerror_range - 1, 2);
|
||
*++yylsp = yyloc;
|
||
|
||
/* Shift the error token. */
|
||
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
|
||
|
||
yystate = yyn;
|
||
goto yynewstate;
|
||
|
||
|
||
/*-------------------------------------.
|
||
| yyacceptlab -- YYACCEPT comes here. |
|
||
`-------------------------------------*/
|
||
yyacceptlab:
|
||
yyresult = 0;
|
||
goto yyreturn;
|
||
|
||
/*-----------------------------------.
|
||
| yyabortlab -- YYABORT comes here. |
|
||
`-----------------------------------*/
|
||
yyabortlab:
|
||
yydestruct ("Error: discarding lookahead",
|
||
yytoken, &yylval, &yylloc);
|
||
yychar = YYEMPTY;
|
||
yyresult = 1;
|
||
goto yyreturn;
|
||
|
||
#ifndef yyoverflow
|
||
/*----------------------------------------------.
|
||
| yyoverflowlab -- parser overflow comes here. |
|
||
`----------------------------------------------*/
|
||
yyoverflowlab:
|
||
yyerror ("parser stack overflow");
|
||
yyresult = 2;
|
||
/* Fall through. */
|
||
#endif
|
||
|
||
yyreturn:
|
||
#ifndef yyoverflow
|
||
if (yyss != yyssa)
|
||
YYSTACK_FREE (yyss);
|
||
#endif
|
||
return yyresult;
|
||
}
|
||
|
||
|
||
|