Robust distinction between IDENTIFIER and TYPE_NAME tokens.
To distinguish the tokens we used to track the lexer context,
which is fragile. This patch implements a better way -
combine the two tokens into a common parser rule and let
the parser context decide if the declaration is valid,
which it already does by checking the naming conflicts.
TEST=WebGL conformance tests.
Review URL: https://codereview.appspot.com/8797044
git-svn-id: http://angleproject.googlecode.com/svn/trunk@2190 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/compiler/ParseHelper.h b/src/compiler/ParseHelper.h
index fc58153..3521ee6 100644
--- a/src/compiler/ParseHelper.h
+++ b/src/compiler/ParseHelper.h
@@ -33,10 +33,8 @@
compileOptions(options),
sourcePath(sourcePath),
treeRoot(0),
- lexAfterType(false),
loopNestingLevel(0),
structNestingLevel(0),
- inTypeParen(false),
currentFunctionType(NULL),
functionReturnsValue(false),
checksPrecisionErrors(checksPrecErrors),
@@ -51,10 +49,8 @@
int compileOptions;
const char* sourcePath; // Path of source file or NULL.
TIntermNode* treeRoot; // root of parse tree being created
- bool lexAfterType; // true if we've recognized a type, so can only be looking for an identifier
int loopNestingLevel; // 0 if outside all loops
int structNestingLevel; // incremented while parsing a struct declaration
- bool inTypeParen; // true if in parentheses, looking only for an identifier
const TType* currentFunctionType; // the return type of the function that's currently being parsed
bool functionReturnsValue; // true if a non-void function has a return
bool checksPrecisionErrors; // true if an error will be generated when a variable is declared without precision, explicit or implicit.
diff --git a/src/compiler/glslang.l b/src/compiler/glslang.l
index a74a207..a926cdf 100644
--- a/src/compiler/glslang.l
+++ b/src/compiler/glslang.l
@@ -98,36 +98,36 @@
"out" { return OUT_QUAL; }
"inout" { return INOUT_QUAL; }
-"float" { context->lexAfterType = true; return FLOAT_TYPE; }
-"int" { context->lexAfterType = true; return INT_TYPE; }
-"void" { context->lexAfterType = true; return VOID_TYPE; }
-"bool" { context->lexAfterType = true; return BOOL_TYPE; }
+"float" { return FLOAT_TYPE; }
+"int" { return INT_TYPE; }
+"void" { return VOID_TYPE; }
+"bool" { return BOOL_TYPE; }
"true" { yylval->lex.b = true; return BOOLCONSTANT; }
"false" { yylval->lex.b = false; return BOOLCONSTANT; }
"discard" { return DISCARD; }
"return" { return RETURN; }
-"mat2" { context->lexAfterType = true; return MATRIX2; }
-"mat3" { context->lexAfterType = true; return MATRIX3; }
-"mat4" { context->lexAfterType = true; return MATRIX4; }
+"mat2" { return MATRIX2; }
+"mat3" { return MATRIX3; }
+"mat4" { return MATRIX4; }
-"vec2" { context->lexAfterType = true; return VEC2; }
-"vec3" { context->lexAfterType = true; return VEC3; }
-"vec4" { context->lexAfterType = true; return VEC4; }
-"ivec2" { context->lexAfterType = true; return IVEC2; }
-"ivec3" { context->lexAfterType = true; return IVEC3; }
-"ivec4" { context->lexAfterType = true; return IVEC4; }
-"bvec2" { context->lexAfterType = true; return BVEC2; }
-"bvec3" { context->lexAfterType = true; return BVEC3; }
-"bvec4" { context->lexAfterType = true; return BVEC4; }
+"vec2" { return VEC2; }
+"vec3" { return VEC3; }
+"vec4" { return VEC4; }
+"ivec2" { return IVEC2; }
+"ivec3" { return IVEC3; }
+"ivec4" { return IVEC4; }
+"bvec2" { return BVEC2; }
+"bvec3" { return BVEC3; }
+"bvec4" { return BVEC4; }
-"sampler2D" { context->lexAfterType = true; return SAMPLER2D; }
-"samplerCube" { context->lexAfterType = true; return SAMPLERCUBE; }
-"samplerExternalOES" { context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; }
-"sampler2DRect" { context->lexAfterType = true; return SAMPLER2DRECT; }
+"sampler2D" { return SAMPLER2D; }
+"samplerCube" { return SAMPLERCUBE; }
+"samplerExternalOES" { return SAMPLER_EXTERNAL_OES; }
+"sampler2DRect" { return SAMPLER2DRECT; }
-"struct" { context->lexAfterType = true; return STRUCT; }
+"struct" { return STRUCT; }
"asm" { return reserved_word(yyscanner); }
@@ -222,14 +222,14 @@
"!=" { return NE_OP; }
"<<" { return LEFT_OP; }
">>" { return RIGHT_OP; }
-";" { context->lexAfterType = false; return SEMICOLON; }
-("{"|"<%") { context->lexAfterType = false; return LEFT_BRACE; }
+";" { return SEMICOLON; }
+("{"|"<%") { return LEFT_BRACE; }
("}"|"%>") { return RIGHT_BRACE; }
-"," { if (context->inTypeParen) context->lexAfterType = false; return COMMA; }
+"," { return COMMA; }
":" { return COLON; }
-"=" { context->lexAfterType = false; return EQUAL; }
-"(" { context->lexAfterType = false; context->inTypeParen = true; return LEFT_PAREN; }
-")" { context->inTypeParen = false; return RIGHT_PAREN; }
+"=" { return EQUAL; }
+"(" { return LEFT_PAREN; }
+")" { return RIGHT_PAREN; }
("["|"<:") { return LEFT_BRACKET; }
("]"|":>") { return RIGHT_BRACKET; }
"." { BEGIN(FIELDS); return DOT; }
@@ -280,12 +280,10 @@
int token = IDENTIFIER;
TSymbol* symbol = yyextra->symbolTable.find(yytext);
- if (yyextra->lexAfterType == false && symbol && symbol->isVariable()) {
+ if (symbol && symbol->isVariable()) {
TVariable* variable = static_cast<TVariable*>(symbol);
- if (variable->isUserType()) {
- yyextra->lexAfterType = true;
+ if (variable->isUserType())
token = TYPE_NAME;
- }
}
yylval->lex.symbol = symbol;
return token;
diff --git a/src/compiler/glslang.y b/src/compiler/glslang.y
index 8dbcee3..b7e2bd6 100644
--- a/src/compiler/glslang.y
+++ b/src/compiler/glslang.y
@@ -127,6 +127,7 @@
%token <lex> COMMA COLON EQUAL SEMICOLON BANG DASH TILDE PLUS STAR SLASH PERCENT
%token <lex> LEFT_ANGLE RIGHT_ANGLE VERTICAL_BAR CARET AMPERSAND QUESTION
+%type <lex> identifier
%type <interm> assignment_operator unary_operator
%type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
%type <interm.intermTypedNode> expression integer_expression assignment_expression
@@ -164,6 +165,10 @@
%start translation_unit
%%
+identifier
+ : IDENTIFIER
+ | TYPE_NAME
+
variable_identifier
: IDENTIFIER {
// The symbol table search was done in the lexical phase
@@ -1102,7 +1107,7 @@
parameter_declarator
// Type + name
- : type_specifier IDENTIFIER {
+ : type_specifier identifier {
if ($1.type == EbtVoid) {
context->error($2.line, "illegal use of type 'void'", $2.string->c_str());
context->recover();
@@ -1113,7 +1118,7 @@
$$.line = $2.line;
$$.param = param;
}
- | type_specifier IDENTIFIER LEFT_BRACKET constant_expression RIGHT_BRACKET {
+ | type_specifier identifier LEFT_BRACKET constant_expression RIGHT_BRACKET {
// Check that we can make an array out of this type
if (context->arrayTypeErrorCheck($3.line, $1))
context->recover();
@@ -1197,7 +1202,7 @@
: single_declaration {
$$ = $1;
}
- | init_declarator_list COMMA IDENTIFIER {
+ | init_declarator_list COMMA identifier {
if ($1.type.type == EbtInvariant && !$3.symbol)
{
context->error($3.line, "undeclared identifier declared as invariant", $3.string->c_str());
@@ -1219,7 +1224,7 @@
if (symbol && variable)
symbol->setId(variable->getUniqueId());
}
- | init_declarator_list COMMA IDENTIFIER LEFT_BRACKET RIGHT_BRACKET {
+ | init_declarator_list COMMA identifier LEFT_BRACKET RIGHT_BRACKET {
if (context->structQualifierErrorCheck($3.line, $1.type))
context->recover();
@@ -1237,7 +1242,7 @@
context->recover();
}
}
- | init_declarator_list COMMA IDENTIFIER LEFT_BRACKET constant_expression RIGHT_BRACKET {
+ | init_declarator_list COMMA identifier LEFT_BRACKET constant_expression RIGHT_BRACKET {
if (context->structQualifierErrorCheck($3.line, $1.type))
context->recover();
@@ -1261,7 +1266,7 @@
$$.intermAggregate = context->intermediate.growAggregate($1.intermNode, context->intermediate.addSymbol(variable ? variable->getUniqueId() : 0, *$3.string, type, $3.line), $3.line);
}
}
- | init_declarator_list COMMA IDENTIFIER EQUAL initializer {
+ | init_declarator_list COMMA identifier EQUAL initializer {
if (context->structQualifierErrorCheck($3.line, $1.type))
context->recover();
@@ -1288,7 +1293,7 @@
$$.type = $1;
$$.intermAggregate = context->intermediate.makeAggregate(context->intermediate.addSymbol(0, "", TType($1), $1.line), $1.line);
}
- | fully_specified_type IDENTIFIER {
+ | fully_specified_type identifier {
TIntermSymbol* symbol = context->intermediate.addSymbol(0, *$2.string, TType($1), $2.line);
$$.intermAggregate = context->intermediate.makeAggregate(symbol, $2.line);
@@ -1306,7 +1311,7 @@
if (variable && symbol)
symbol->setId(variable->getUniqueId());
}
- | fully_specified_type IDENTIFIER LEFT_BRACKET RIGHT_BRACKET {
+ | fully_specified_type identifier LEFT_BRACKET RIGHT_BRACKET {
context->error($2.line, "unsized array declarations not supported", $2.string->c_str());
context->recover();
@@ -1314,7 +1319,7 @@
$$.intermAggregate = context->intermediate.makeAggregate(symbol, $2.line);
$$.type = $1;
}
- | fully_specified_type IDENTIFIER LEFT_BRACKET constant_expression RIGHT_BRACKET {
+ | fully_specified_type identifier LEFT_BRACKET constant_expression RIGHT_BRACKET {
TType type = TType($1);
int size;
if (context->arraySizeErrorCheck($2.line, $4, size))
@@ -1346,7 +1351,7 @@
symbol->setId(variable->getUniqueId());
}
}
- | fully_specified_type IDENTIFIER EQUAL initializer {
+ | fully_specified_type identifier EQUAL initializer {
if (context->structQualifierErrorCheck($2.line, $1))
context->recover();
@@ -1697,7 +1702,7 @@
;
struct_specifier
- : STRUCT IDENTIFIER LEFT_BRACE { if (context->enterStructDeclaration($2.line, *$2.string)) context->recover(); } struct_declaration_list RIGHT_BRACE {
+ : STRUCT identifier LEFT_BRACE { if (context->enterStructDeclaration($2.line, *$2.string)) context->recover(); } struct_declaration_list RIGHT_BRACE {
if (context->reservedErrorCheck($2.line, *$2.string))
context->recover();
@@ -1784,7 +1789,7 @@
;
struct_declarator
- : IDENTIFIER {
+ : identifier {
if (context->reservedErrorCheck($1.line, *$1.string))
context->recover();
@@ -1792,7 +1797,7 @@
$$.line = $1.line;
$$.type->setFieldName(*$1.string);
}
- | IDENTIFIER LEFT_BRACKET constant_expression RIGHT_BRACKET {
+ | identifier LEFT_BRACKET constant_expression RIGHT_BRACKET {
if (context->reservedErrorCheck($1.line, *$1.string))
context->recover();
@@ -1907,7 +1912,7 @@
if (context->boolErrorCheck($1->getLine(), $1))
context->recover();
}
- | fully_specified_type IDENTIFIER EQUAL initializer {
+ | fully_specified_type identifier EQUAL initializer {
TIntermNode* intermNode;
if (context->structQualifierErrorCheck($2.line, $1))
context->recover();
diff --git a/src/compiler/glslang_lex.cpp b/src/compiler/glslang_lex.cpp
index 61454f0..7d8494d 100644
--- a/src/compiler/glslang_lex.cpp
+++ b/src/compiler/glslang_lex.cpp
@@ -1215,19 +1215,19 @@
YY_BREAK
case 20:
YY_RULE_SETUP
-{ context->lexAfterType = true; return FLOAT_TYPE; }
+{ return FLOAT_TYPE; }
YY_BREAK
case 21:
YY_RULE_SETUP
-{ context->lexAfterType = true; return INT_TYPE; }
+{ return INT_TYPE; }
YY_BREAK
case 22:
YY_RULE_SETUP
-{ context->lexAfterType = true; return VOID_TYPE; }
+{ return VOID_TYPE; }
YY_BREAK
case 23:
YY_RULE_SETUP
-{ context->lexAfterType = true; return BOOL_TYPE; }
+{ return BOOL_TYPE; }
YY_BREAK
case 24:
YY_RULE_SETUP
@@ -1247,71 +1247,71 @@
YY_BREAK
case 28:
YY_RULE_SETUP
-{ context->lexAfterType = true; return MATRIX2; }
+{ return MATRIX2; }
YY_BREAK
case 29:
YY_RULE_SETUP
-{ context->lexAfterType = true; return MATRIX3; }
+{ return MATRIX3; }
YY_BREAK
case 30:
YY_RULE_SETUP
-{ context->lexAfterType = true; return MATRIX4; }
+{ return MATRIX4; }
YY_BREAK
case 31:
YY_RULE_SETUP
-{ context->lexAfterType = true; return VEC2; }
+{ return VEC2; }
YY_BREAK
case 32:
YY_RULE_SETUP
-{ context->lexAfterType = true; return VEC3; }
+{ return VEC3; }
YY_BREAK
case 33:
YY_RULE_SETUP
-{ context->lexAfterType = true; return VEC4; }
+{ return VEC4; }
YY_BREAK
case 34:
YY_RULE_SETUP
-{ context->lexAfterType = true; return IVEC2; }
+{ return IVEC2; }
YY_BREAK
case 35:
YY_RULE_SETUP
-{ context->lexAfterType = true; return IVEC3; }
+{ return IVEC3; }
YY_BREAK
case 36:
YY_RULE_SETUP
-{ context->lexAfterType = true; return IVEC4; }
+{ return IVEC4; }
YY_BREAK
case 37:
YY_RULE_SETUP
-{ context->lexAfterType = true; return BVEC2; }
+{ return BVEC2; }
YY_BREAK
case 38:
YY_RULE_SETUP
-{ context->lexAfterType = true; return BVEC3; }
+{ return BVEC3; }
YY_BREAK
case 39:
YY_RULE_SETUP
-{ context->lexAfterType = true; return BVEC4; }
+{ return BVEC4; }
YY_BREAK
case 40:
YY_RULE_SETUP
-{ context->lexAfterType = true; return SAMPLER2D; }
+{ return SAMPLER2D; }
YY_BREAK
case 41:
YY_RULE_SETUP
-{ context->lexAfterType = true; return SAMPLERCUBE; }
+{ return SAMPLERCUBE; }
YY_BREAK
case 42:
YY_RULE_SETUP
-{ context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; }
+{ return SAMPLER_EXTERNAL_OES; }
YY_BREAK
case 43:
YY_RULE_SETUP
-{ context->lexAfterType = true; return SAMPLER2DRECT; }
+{ return SAMPLER2DRECT; }
YY_BREAK
case 44:
YY_RULE_SETUP
-{ context->lexAfterType = true; return STRUCT; }
+{ return STRUCT; }
YY_BREAK
case 45:
YY_RULE_SETUP
@@ -1622,11 +1622,11 @@
YY_BREAK
case 121:
YY_RULE_SETUP
-{ context->lexAfterType = false; return SEMICOLON; }
+{ return SEMICOLON; }
YY_BREAK
case 122:
YY_RULE_SETUP
-{ context->lexAfterType = false; return LEFT_BRACE; }
+{ return LEFT_BRACE; }
YY_BREAK
case 123:
YY_RULE_SETUP
@@ -1634,7 +1634,7 @@
YY_BREAK
case 124:
YY_RULE_SETUP
-{ if (context->inTypeParen) context->lexAfterType = false; return COMMA; }
+{ return COMMA; }
YY_BREAK
case 125:
YY_RULE_SETUP
@@ -1642,15 +1642,15 @@
YY_BREAK
case 126:
YY_RULE_SETUP
-{ context->lexAfterType = false; return EQUAL; }
+{ return EQUAL; }
YY_BREAK
case 127:
YY_RULE_SETUP
-{ context->lexAfterType = false; context->inTypeParen = true; return LEFT_PAREN; }
+{ return LEFT_PAREN; }
YY_BREAK
case 128:
YY_RULE_SETUP
-{ context->inTypeParen = false; return RIGHT_PAREN; }
+{ return RIGHT_PAREN; }
YY_BREAK
case 129:
YY_RULE_SETUP
@@ -2934,12 +2934,10 @@
int token = IDENTIFIER;
TSymbol* symbol = yyextra->symbolTable.find(yytext);
- if (yyextra->lexAfterType == false && symbol && symbol->isVariable()) {
+ if (symbol && symbol->isVariable()) {
TVariable* variable = static_cast<TVariable*>(symbol);
- if (variable->isUserType()) {
- yyextra->lexAfterType = true;
+ if (variable->isUserType())
token = TYPE_NAME;
- }
}
yylval->lex.symbol = symbol;
return token;
diff --git a/src/compiler/glslang_tab.cpp b/src/compiler/glslang_tab.cpp
index 2231728..c7ecd80 100644
--- a/src/compiler/glslang_tab.cpp
+++ b/src/compiler/glslang_tab.cpp
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.2. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
- Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 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
@@ -45,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.2"
+#define YYBISON_VERSION "2.5"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -396,11 +395,11 @@
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -423,24 +422,24 @@
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -469,23 +468,7 @@
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ 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 \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
+# define YYCOPY_NEEDED 1
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
@@ -505,19 +488,39 @@
#endif
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* 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 \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 71
+#define YYFINAL 74
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1416
+#define YYLAST 1437
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 96
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 83
+#define YYNNTS 84
/* YYNRULES -- Number of rules. */
-#define YYNRULES 201
+#define YYNRULES 203
/* YYNRULES -- Number of states. */
-#define YYNSTATES 304
+#define YYNSTATES 307
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -572,115 +575,116 @@
YYRHS. */
static const yytype_uint16 yyprhs[] =
{
- 0, 0, 3, 5, 7, 9, 11, 13, 17, 19,
- 24, 26, 30, 33, 36, 38, 40, 42, 46, 49,
- 52, 55, 57, 60, 64, 67, 69, 71, 73, 75,
- 78, 81, 84, 86, 88, 90, 92, 96, 100, 102,
- 106, 110, 112, 114, 118, 122, 126, 130, 132, 136,
- 140, 142, 144, 146, 148, 152, 154, 158, 160, 164,
- 166, 172, 174, 178, 180, 182, 184, 186, 188, 190,
- 194, 196, 199, 202, 207, 210, 212, 214, 217, 221,
- 225, 228, 234, 238, 241, 245, 248, 249, 251, 253,
- 255, 257, 259, 263, 269, 276, 282, 284, 287, 292,
- 298, 303, 306, 308, 311, 313, 315, 317, 320, 322,
- 324, 327, 329, 331, 333, 335, 340, 342, 344, 346,
+ 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
+ 21, 23, 28, 30, 34, 37, 40, 42, 44, 46,
+ 50, 53, 56, 59, 61, 64, 68, 71, 73, 75,
+ 77, 79, 82, 85, 88, 90, 92, 94, 96, 100,
+ 104, 106, 110, 114, 116, 118, 122, 126, 130, 134,
+ 136, 140, 144, 146, 148, 150, 152, 156, 158, 162,
+ 164, 168, 170, 176, 178, 182, 184, 186, 188, 190,
+ 192, 194, 198, 200, 203, 206, 211, 214, 216, 218,
+ 221, 225, 229, 232, 238, 242, 245, 249, 252, 253,
+ 255, 257, 259, 261, 263, 267, 273, 280, 286, 288,
+ 291, 296, 302, 307, 310, 312, 315, 317, 319, 321,
+ 324, 326, 328, 331, 333, 335, 337, 339, 344, 346,
348, 350, 352, 354, 356, 358, 360, 362, 364, 366,
- 368, 370, 372, 374, 376, 378, 380, 382, 384, 385,
- 392, 393, 399, 401, 404, 408, 410, 414, 416, 421,
- 423, 425, 427, 429, 431, 433, 435, 437, 439, 442,
- 443, 444, 450, 452, 454, 455, 458, 459, 462, 465,
- 469, 471, 474, 476, 479, 485, 489, 491, 493, 498,
- 499, 506, 507, 516, 517, 525, 527, 529, 531, 532,
- 535, 539, 542, 545, 548, 552, 555, 557, 560, 562,
- 564, 565
+ 368, 370, 372, 374, 376, 378, 380, 382, 384, 386,
+ 388, 389, 396, 397, 403, 405, 408, 412, 414, 418,
+ 420, 425, 427, 429, 431, 433, 435, 437, 439, 441,
+ 443, 446, 447, 448, 454, 456, 458, 459, 462, 463,
+ 466, 469, 473, 475, 478, 480, 483, 489, 493, 495,
+ 497, 502, 503, 510, 511, 520, 521, 529, 531, 533,
+ 535, 536, 539, 543, 546, 549, 552, 556, 559, 561,
+ 564, 566, 568, 569
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 175, 0, -1, 45, -1, 97, -1, 48, -1, 47,
- -1, 49, -1, 72, 124, 73, -1, 98, -1, 99,
- 74, 100, 75, -1, 101, -1, 99, 78, 50, -1,
- 99, 53, -1, 99, 54, -1, 124, -1, 102, -1,
- 103, -1, 99, 78, 103, -1, 105, 73, -1, 104,
- 73, -1, 106, 39, -1, 106, -1, 106, 122, -1,
- 105, 79, 122, -1, 107, 72, -1, 142, -1, 45,
- -1, 50, -1, 99, -1, 53, 108, -1, 54, 108,
- -1, 109, 108, -1, 86, -1, 84, -1, 83, -1,
- 108, -1, 110, 87, 108, -1, 110, 88, 108, -1,
- 110, -1, 111, 86, 110, -1, 111, 84, 110, -1,
- 111, -1, 112, -1, 113, 90, 112, -1, 113, 91,
- 112, -1, 113, 55, 112, -1, 113, 56, 112, -1,
- 113, -1, 114, 57, 113, -1, 114, 58, 113, -1,
- 114, -1, 115, -1, 116, -1, 117, -1, 118, 59,
- 117, -1, 118, -1, 119, 61, 118, -1, 119, -1,
- 120, 60, 119, -1, 120, -1, 120, 95, 124, 80,
- 122, -1, 121, -1, 108, 123, 122, -1, 81, -1,
- 62, -1, 63, -1, 64, -1, 71, -1, 122, -1,
- 124, 79, 122, -1, 121, -1, 127, 82, -1, 135,
- 82, -1, 7, 140, 141, 82, -1, 128, 73, -1,
- 130, -1, 129, -1, 130, 132, -1, 129, 79, 132,
- -1, 137, 45, 72, -1, 139, 45, -1, 139, 45,
- 74, 125, 75, -1, 138, 133, 131, -1, 133, 131,
- -1, 138, 133, 134, -1, 133, 134, -1, -1, 33,
- -1, 34, -1, 35, -1, 139, -1, 136, -1, 135,
- 79, 45, -1, 135, 79, 45, 74, 75, -1, 135,
- 79, 45, 74, 125, 75, -1, 135, 79, 45, 81,
- 150, -1, 137, -1, 137, 45, -1, 137, 45, 74,
- 75, -1, 137, 45, 74, 125, 75, -1, 137, 45,
- 81, 150, -1, 3, 45, -1, 139, -1, 138, 139,
- -1, 9, -1, 8, -1, 37, -1, 3, 37, -1,
- 36, -1, 141, -1, 140, 141, -1, 4, -1, 5,
- -1, 6, -1, 142, -1, 142, 74, 125, 75, -1,
- 39, -1, 11, -1, 12, -1, 10, -1, 27, -1,
- 28, -1, 29, -1, 21, -1, 22, -1, 23, -1,
- 24, -1, 25, -1, 26, -1, 30, -1, 31, -1,
- 32, -1, 41, -1, 42, -1, 43, -1, 44, -1,
- 143, -1, 46, -1, -1, 38, 45, 76, 144, 146,
- 77, -1, -1, 38, 76, 145, 146, 77, -1, 147,
- -1, 146, 147, -1, 139, 148, 82, -1, 149, -1,
- 148, 79, 149, -1, 45, -1, 45, 74, 125, 75,
- -1, 122, -1, 126, -1, 154, -1, 153, -1, 151,
- -1, 163, -1, 164, -1, 167, -1, 174, -1, 76,
- 77, -1, -1, -1, 76, 155, 162, 156, 77, -1,
- 161, -1, 153, -1, -1, 159, 161, -1, -1, 160,
- 153, -1, 76, 77, -1, 76, 162, 77, -1, 152,
- -1, 162, 152, -1, 82, -1, 124, 82, -1, 18,
- 72, 124, 73, 165, -1, 158, 16, 158, -1, 158,
- -1, 124, -1, 137, 45, 81, 150, -1, -1, 40,
- 72, 168, 166, 73, 157, -1, -1, 15, 169, 158,
- 40, 72, 124, 73, 82, -1, -1, 17, 72, 170,
- 171, 173, 73, 157, -1, 163, -1, 151, -1, 166,
- -1, -1, 172, 82, -1, 172, 82, 124, -1, 14,
- 82, -1, 13, 82, -1, 20, 82, -1, 20, 124,
- 82, -1, 19, 82, -1, 176, -1, 175, 176, -1,
- 177, -1, 126, -1, -1, 127, 178, 161, -1
+ 176, 0, -1, 45, -1, 46, -1, 45, -1, 98,
+ -1, 48, -1, 47, -1, 49, -1, 72, 125, 73,
+ -1, 99, -1, 100, 74, 101, 75, -1, 102, -1,
+ 100, 78, 50, -1, 100, 53, -1, 100, 54, -1,
+ 125, -1, 103, -1, 104, -1, 100, 78, 104, -1,
+ 106, 73, -1, 105, 73, -1, 107, 39, -1, 107,
+ -1, 107, 123, -1, 106, 79, 123, -1, 108, 72,
+ -1, 143, -1, 45, -1, 50, -1, 100, -1, 53,
+ 109, -1, 54, 109, -1, 110, 109, -1, 86, -1,
+ 84, -1, 83, -1, 109, -1, 111, 87, 109, -1,
+ 111, 88, 109, -1, 111, -1, 112, 86, 111, -1,
+ 112, 84, 111, -1, 112, -1, 113, -1, 114, 90,
+ 113, -1, 114, 91, 113, -1, 114, 55, 113, -1,
+ 114, 56, 113, -1, 114, -1, 115, 57, 114, -1,
+ 115, 58, 114, -1, 115, -1, 116, -1, 117, -1,
+ 118, -1, 119, 59, 118, -1, 119, -1, 120, 61,
+ 119, -1, 120, -1, 121, 60, 120, -1, 121, -1,
+ 121, 95, 125, 80, 123, -1, 122, -1, 109, 124,
+ 123, -1, 81, -1, 62, -1, 63, -1, 64, -1,
+ 71, -1, 123, -1, 125, 79, 123, -1, 122, -1,
+ 128, 82, -1, 136, 82, -1, 7, 141, 142, 82,
+ -1, 129, 73, -1, 131, -1, 130, -1, 131, 133,
+ -1, 130, 79, 133, -1, 138, 45, 72, -1, 140,
+ 97, -1, 140, 97, 74, 126, 75, -1, 139, 134,
+ 132, -1, 134, 132, -1, 139, 134, 135, -1, 134,
+ 135, -1, -1, 33, -1, 34, -1, 35, -1, 140,
+ -1, 137, -1, 136, 79, 97, -1, 136, 79, 97,
+ 74, 75, -1, 136, 79, 97, 74, 126, 75, -1,
+ 136, 79, 97, 81, 151, -1, 138, -1, 138, 97,
+ -1, 138, 97, 74, 75, -1, 138, 97, 74, 126,
+ 75, -1, 138, 97, 81, 151, -1, 3, 45, -1,
+ 140, -1, 139, 140, -1, 9, -1, 8, -1, 37,
+ -1, 3, 37, -1, 36, -1, 142, -1, 141, 142,
+ -1, 4, -1, 5, -1, 6, -1, 143, -1, 143,
+ 74, 126, 75, -1, 39, -1, 11, -1, 12, -1,
+ 10, -1, 27, -1, 28, -1, 29, -1, 21, -1,
+ 22, -1, 23, -1, 24, -1, 25, -1, 26, -1,
+ 30, -1, 31, -1, 32, -1, 41, -1, 42, -1,
+ 43, -1, 44, -1, 144, -1, 46, -1, -1, 38,
+ 97, 76, 145, 147, 77, -1, -1, 38, 76, 146,
+ 147, 77, -1, 148, -1, 147, 148, -1, 140, 149,
+ 82, -1, 150, -1, 149, 79, 150, -1, 97, -1,
+ 97, 74, 126, 75, -1, 123, -1, 127, -1, 155,
+ -1, 154, -1, 152, -1, 164, -1, 165, -1, 168,
+ -1, 175, -1, 76, 77, -1, -1, -1, 76, 156,
+ 163, 157, 77, -1, 162, -1, 154, -1, -1, 160,
+ 162, -1, -1, 161, 154, -1, 76, 77, -1, 76,
+ 163, 77, -1, 153, -1, 163, 153, -1, 82, -1,
+ 125, 82, -1, 18, 72, 125, 73, 166, -1, 159,
+ 16, 159, -1, 159, -1, 125, -1, 138, 97, 81,
+ 151, -1, -1, 40, 72, 169, 167, 73, 158, -1,
+ -1, 15, 170, 159, 40, 72, 125, 73, 82, -1,
+ -1, 17, 72, 171, 172, 174, 73, 158, -1, 164,
+ -1, 152, -1, 167, -1, -1, 173, 82, -1, 173,
+ 82, 125, -1, 14, 82, -1, 13, 82, -1, 20,
+ 82, -1, 20, 125, 82, -1, 19, 82, -1, 177,
+ -1, 176, 177, -1, 178, -1, 127, -1, -1, 128,
+ 179, 162, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 168, 168, 203, 206, 219, 224, 229, 235, 238,
- 317, 320, 421, 431, 444, 452, 552, 555, 563, 567,
- 574, 578, 585, 591, 600, 608, 663, 670, 680, 683,
- 693, 703, 724, 725, 726, 731, 732, 741, 753, 754,
- 762, 773, 777, 778, 788, 798, 808, 821, 822, 832,
- 845, 849, 853, 857, 858, 871, 872, 885, 886, 899,
- 900, 917, 918, 931, 932, 933, 934, 935, 939, 942,
- 953, 961, 988, 993, 1007, 1045, 1048, 1055, 1063, 1084,
- 1105, 1116, 1145, 1150, 1160, 1165, 1175, 1178, 1181, 1184,
- 1190, 1197, 1200, 1222, 1240, 1264, 1287, 1291, 1309, 1317,
- 1349, 1369, 1458, 1467, 1490, 1493, 1499, 1507, 1515, 1523,
- 1533, 1540, 1543, 1546, 1552, 1555, 1570, 1574, 1578, 1582,
- 1591, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631, 1636,
- 1642, 1648, 1654, 1659, 1664, 1673, 1682, 1687, 1700, 1700,
- 1714, 1714, 1723, 1726, 1741, 1777, 1781, 1787, 1795, 1811,
- 1815, 1819, 1820, 1826, 1827, 1828, 1829, 1830, 1834, 1835,
- 1835, 1835, 1845, 1846, 1850, 1850, 1851, 1851, 1856, 1859,
- 1869, 1872, 1878, 1879, 1883, 1891, 1895, 1905, 1910, 1927,
- 1927, 1932, 1932, 1939, 1939, 1947, 1950, 1956, 1959, 1965,
- 1969, 1976, 1983, 1990, 1997, 2008, 2017, 2021, 2028, 2031,
- 2037, 2037
+ 0, 169, 169, 170, 173, 208, 211, 224, 229, 234,
+ 240, 243, 322, 325, 426, 436, 449, 457, 557, 560,
+ 568, 572, 579, 583, 590, 596, 605, 613, 668, 675,
+ 685, 688, 698, 708, 729, 730, 731, 736, 737, 746,
+ 758, 759, 767, 778, 782, 783, 793, 803, 813, 826,
+ 827, 837, 850, 854, 858, 862, 863, 876, 877, 890,
+ 891, 904, 905, 922, 923, 936, 937, 938, 939, 940,
+ 944, 947, 958, 966, 993, 998, 1012, 1050, 1053, 1060,
+ 1068, 1089, 1110, 1121, 1150, 1155, 1165, 1170, 1180, 1183,
+ 1186, 1189, 1195, 1202, 1205, 1227, 1245, 1269, 1292, 1296,
+ 1314, 1322, 1354, 1374, 1463, 1472, 1495, 1498, 1504, 1512,
+ 1520, 1528, 1538, 1545, 1548, 1551, 1557, 1560, 1575, 1579,
+ 1583, 1587, 1596, 1601, 1606, 1611, 1616, 1621, 1626, 1631,
+ 1636, 1641, 1647, 1653, 1659, 1664, 1669, 1678, 1687, 1692,
+ 1705, 1705, 1719, 1719, 1728, 1731, 1746, 1782, 1786, 1792,
+ 1800, 1816, 1820, 1824, 1825, 1831, 1832, 1833, 1834, 1835,
+ 1839, 1840, 1840, 1840, 1850, 1851, 1855, 1855, 1856, 1856,
+ 1861, 1864, 1874, 1877, 1883, 1884, 1888, 1896, 1900, 1910,
+ 1915, 1932, 1932, 1937, 1937, 1944, 1944, 1952, 1955, 1961,
+ 1964, 1970, 1974, 1981, 1988, 1995, 2002, 2013, 2022, 2026,
+ 2033, 2036, 2042, 2042
};
#endif
@@ -705,10 +709,10 @@
"LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT",
"COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS",
"STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR",
- "CARET", "AMPERSAND", "QUESTION", "$accept", "variable_identifier",
- "primary_expression", "postfix_expression", "integer_expression",
- "function_call", "function_call_or_method", "function_call_generic",
- "function_call_header_no_parameters",
+ "CARET", "AMPERSAND", "QUESTION", "$accept", "identifier",
+ "variable_identifier", "primary_expression", "postfix_expression",
+ "integer_expression", "function_call", "function_call_or_method",
+ "function_call_generic", "function_call_header_no_parameters",
"function_call_header_with_parameters", "function_call_header",
"function_identifier", "unary_expression", "unary_operator",
"multiplicative_expression", "additive_expression", "shift_expression",
@@ -758,454 +762,463 @@
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 96, 97, 98, 98, 98, 98, 98, 99, 99,
- 99, 99, 99, 99, 100, 101, 102, 102, 103, 103,
- 104, 104, 105, 105, 106, 107, 107, 107, 108, 108,
- 108, 108, 109, 109, 109, 110, 110, 110, 111, 111,
- 111, 112, 113, 113, 113, 113, 113, 114, 114, 114,
- 115, 116, 117, 118, 118, 119, 119, 120, 120, 121,
- 121, 122, 122, 123, 123, 123, 123, 123, 124, 124,
- 125, 126, 126, 126, 127, 128, 128, 129, 129, 130,
- 131, 131, 132, 132, 132, 132, 133, 133, 133, 133,
- 134, 135, 135, 135, 135, 135, 136, 136, 136, 136,
- 136, 136, 137, 137, 138, 138, 138, 138, 138, 139,
- 139, 140, 140, 140, 141, 141, 142, 142, 142, 142,
- 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
- 142, 142, 142, 142, 142, 142, 142, 142, 144, 143,
- 145, 143, 146, 146, 147, 148, 148, 149, 149, 150,
- 151, 152, 152, 153, 153, 153, 153, 153, 154, 155,
- 156, 154, 157, 157, 159, 158, 160, 158, 161, 161,
- 162, 162, 163, 163, 164, 165, 165, 166, 166, 168,
- 167, 169, 167, 170, 167, 171, 171, 172, 172, 173,
- 173, 174, 174, 174, 174, 174, 175, 175, 176, 176,
- 178, 177
+ 0, 96, 97, 97, 98, 99, 99, 99, 99, 99,
+ 100, 100, 100, 100, 100, 100, 101, 102, 103, 103,
+ 104, 104, 105, 105, 106, 106, 107, 108, 108, 108,
+ 109, 109, 109, 109, 110, 110, 110, 111, 111, 111,
+ 112, 112, 112, 113, 114, 114, 114, 114, 114, 115,
+ 115, 115, 116, 117, 118, 119, 119, 120, 120, 121,
+ 121, 122, 122, 123, 123, 124, 124, 124, 124, 124,
+ 125, 125, 126, 127, 127, 127, 128, 129, 129, 130,
+ 130, 131, 132, 132, 133, 133, 133, 133, 134, 134,
+ 134, 134, 135, 136, 136, 136, 136, 136, 137, 137,
+ 137, 137, 137, 137, 138, 138, 139, 139, 139, 139,
+ 139, 140, 140, 141, 141, 141, 142, 142, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 145, 144, 146, 144, 147, 147, 148, 149, 149, 150,
+ 150, 151, 152, 153, 153, 154, 154, 154, 154, 154,
+ 155, 156, 157, 155, 158, 158, 160, 159, 161, 159,
+ 162, 162, 163, 163, 164, 164, 165, 166, 166, 167,
+ 167, 169, 168, 170, 168, 171, 168, 172, 172, 173,
+ 173, 174, 174, 175, 175, 175, 175, 175, 176, 176,
+ 177, 177, 179, 178
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
- 0, 2, 1, 1, 1, 1, 1, 3, 1, 4,
- 1, 3, 2, 2, 1, 1, 1, 3, 2, 2,
- 2, 1, 2, 3, 2, 1, 1, 1, 1, 2,
- 2, 2, 1, 1, 1, 1, 3, 3, 1, 3,
- 3, 1, 1, 3, 3, 3, 3, 1, 3, 3,
- 1, 1, 1, 1, 3, 1, 3, 1, 3, 1,
- 5, 1, 3, 1, 1, 1, 1, 1, 1, 3,
- 1, 2, 2, 4, 2, 1, 1, 2, 3, 3,
- 2, 5, 3, 2, 3, 2, 0, 1, 1, 1,
- 1, 1, 3, 5, 6, 5, 1, 2, 4, 5,
- 4, 2, 1, 2, 1, 1, 1, 2, 1, 1,
- 2, 1, 1, 1, 1, 4, 1, 1, 1, 1,
+ 0, 2, 1, 1, 1, 1, 1, 1, 1, 3,
+ 1, 4, 1, 3, 2, 2, 1, 1, 1, 3,
+ 2, 2, 2, 1, 2, 3, 2, 1, 1, 1,
+ 1, 2, 2, 2, 1, 1, 1, 1, 3, 3,
+ 1, 3, 3, 1, 1, 3, 3, 3, 3, 1,
+ 3, 3, 1, 1, 1, 1, 3, 1, 3, 1,
+ 3, 1, 5, 1, 3, 1, 1, 1, 1, 1,
+ 1, 3, 1, 2, 2, 4, 2, 1, 1, 2,
+ 3, 3, 2, 5, 3, 2, 3, 2, 0, 1,
+ 1, 1, 1, 1, 3, 5, 6, 5, 1, 2,
+ 4, 5, 4, 2, 1, 2, 1, 1, 1, 2,
+ 1, 1, 2, 1, 1, 1, 1, 4, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 0, 6,
- 0, 5, 1, 2, 3, 1, 3, 1, 4, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
- 0, 5, 1, 1, 0, 2, 0, 2, 2, 3,
- 1, 2, 1, 2, 5, 3, 1, 1, 4, 0,
- 6, 0, 8, 0, 7, 1, 1, 1, 0, 2,
- 3, 2, 2, 2, 3, 2, 1, 2, 1, 1,
- 0, 3
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 6, 0, 5, 1, 2, 3, 1, 3, 1,
+ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 0, 0, 5, 1, 1, 0, 2, 0, 2,
+ 2, 3, 1, 2, 1, 2, 5, 3, 1, 1,
+ 4, 0, 6, 0, 8, 0, 7, 1, 1, 1,
+ 0, 2, 3, 2, 2, 2, 3, 2, 1, 2,
+ 1, 1, 0, 3
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 0, 111, 112, 113, 0, 105, 104, 119, 117,
- 118, 123, 124, 125, 126, 127, 128, 120, 121, 122,
- 129, 130, 131, 108, 106, 0, 116, 132, 133, 134,
- 135, 137, 199, 200, 0, 76, 86, 0, 91, 96,
- 0, 102, 0, 109, 114, 136, 0, 196, 198, 107,
- 101, 0, 0, 140, 71, 0, 74, 86, 0, 87,
- 88, 89, 77, 0, 86, 0, 72, 97, 103, 110,
- 0, 1, 197, 0, 138, 0, 0, 201, 78, 83,
- 85, 90, 0, 92, 79, 0, 0, 2, 5, 4,
- 6, 27, 0, 0, 0, 34, 33, 32, 3, 8,
- 28, 10, 15, 16, 0, 0, 21, 0, 35, 0,
- 38, 41, 42, 47, 50, 51, 52, 53, 55, 57,
- 59, 70, 0, 25, 73, 0, 0, 0, 142, 0,
- 0, 181, 0, 0, 0, 0, 0, 159, 168, 172,
- 35, 61, 68, 0, 150, 0, 114, 153, 170, 152,
- 151, 0, 154, 155, 156, 157, 80, 82, 84, 0,
- 0, 98, 0, 149, 100, 29, 30, 0, 12, 13,
- 0, 0, 19, 18, 0, 20, 22, 24, 31, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 115, 0, 147, 0, 145, 141, 143,
- 192, 191, 166, 183, 0, 195, 193, 0, 179, 158,
- 0, 64, 65, 66, 67, 63, 0, 0, 173, 169,
- 171, 0, 93, 0, 95, 99, 7, 0, 14, 26,
- 11, 17, 23, 36, 37, 40, 39, 45, 46, 43,
- 44, 48, 49, 54, 56, 58, 0, 139, 0, 0,
- 144, 0, 0, 0, 0, 0, 194, 0, 160, 62,
- 69, 0, 94, 9, 0, 0, 146, 0, 165, 167,
- 186, 185, 188, 166, 177, 0, 0, 0, 81, 60,
- 148, 0, 187, 0, 0, 176, 174, 0, 0, 161,
- 0, 189, 0, 166, 0, 163, 180, 162, 0, 190,
- 184, 175, 178, 182
+ 0, 0, 113, 114, 115, 0, 107, 106, 121, 119,
+ 120, 125, 126, 127, 128, 129, 130, 122, 123, 124,
+ 131, 132, 133, 110, 108, 0, 118, 134, 135, 136,
+ 137, 139, 201, 202, 0, 78, 88, 0, 93, 98,
+ 0, 104, 0, 111, 116, 138, 0, 198, 200, 109,
+ 103, 0, 2, 3, 142, 0, 73, 0, 76, 88,
+ 0, 89, 90, 91, 79, 0, 88, 0, 74, 2,
+ 99, 105, 112, 0, 1, 199, 0, 0, 140, 0,
+ 203, 80, 85, 87, 92, 0, 94, 81, 0, 0,
+ 4, 7, 6, 8, 29, 0, 0, 0, 36, 35,
+ 34, 5, 10, 30, 12, 17, 18, 0, 0, 23,
+ 0, 37, 0, 40, 43, 44, 49, 52, 53, 54,
+ 55, 57, 59, 61, 72, 0, 27, 75, 0, 0,
+ 144, 0, 0, 0, 183, 0, 0, 0, 0, 0,
+ 161, 170, 174, 37, 63, 70, 0, 152, 0, 116,
+ 155, 172, 154, 153, 0, 156, 157, 158, 159, 82,
+ 84, 86, 0, 0, 100, 0, 151, 102, 31, 32,
+ 0, 14, 15, 0, 0, 21, 20, 0, 22, 24,
+ 26, 33, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 117, 149, 0, 147,
+ 143, 145, 0, 194, 193, 168, 185, 0, 197, 195,
+ 0, 181, 160, 0, 66, 67, 68, 69, 65, 0,
+ 0, 175, 171, 173, 0, 95, 0, 97, 101, 9,
+ 0, 16, 28, 13, 19, 25, 38, 39, 42, 41,
+ 47, 48, 45, 46, 50, 51, 56, 58, 60, 0,
+ 0, 0, 146, 141, 0, 0, 0, 0, 0, 196,
+ 0, 162, 64, 71, 0, 96, 11, 0, 0, 148,
+ 0, 167, 169, 188, 187, 190, 168, 179, 0, 0,
+ 0, 83, 62, 150, 0, 189, 0, 0, 178, 176,
+ 0, 0, 163, 0, 191, 0, 168, 0, 165, 182,
+ 164, 0, 192, 186, 177, 180, 184
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 98, 99, 100, 227, 101, 102, 103, 104, 105,
- 106, 107, 140, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 141, 142, 216, 143, 122,
- 144, 145, 34, 35, 36, 79, 62, 63, 80, 37,
- 38, 39, 40, 41, 42, 43, 123, 45, 125, 75,
- 127, 128, 196, 197, 164, 147, 148, 149, 150, 210,
- 277, 296, 251, 252, 253, 297, 151, 152, 153, 286,
- 276, 154, 257, 202, 254, 272, 283, 284, 155, 46,
- 47, 48, 55
+ -1, 197, 101, 102, 103, 230, 104, 105, 106, 107,
+ 108, 109, 110, 143, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 144, 145, 219, 146,
+ 125, 147, 148, 34, 35, 36, 82, 64, 65, 83,
+ 37, 38, 39, 40, 41, 42, 43, 126, 45, 131,
+ 77, 129, 130, 198, 199, 167, 150, 151, 152, 153,
+ 213, 280, 299, 254, 255, 256, 300, 154, 155, 156,
+ 289, 279, 157, 260, 205, 257, 275, 286, 287, 158,
+ 46, 47, 48, 57
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -266
+#define YYPACT_NINF -261
static const yytype_int16 yypact[] =
{
- 1253, -20, -266, -266, -266, 148, -266, -266, -266, -266,
- -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
- -266, -266, -266, -266, -266, -39, -266, -266, -266, -266,
- -266, -266, -266, -18, -2, 6, 21, -61, -266, 51,
- 1296, -266, 1370, -266, 25, -266, 1209, -266, -266, -266,
- -266, 1370, 42, -266, -266, 50, -266, 71, 95, -266,
- -266, -266, -266, 1296, 123, 105, -266, 9, -266, -266,
- 974, -266, -266, 81, -266, 1296, 290, -266, -266, -266,
- -266, 125, 1296, -13, -266, 776, 974, 99, -266, -266,
- -266, -266, 974, 974, 974, -266, -266, -266, -266, -266,
- 35, -266, -266, -266, 100, -6, 1040, 104, -266, 974,
- 36, -64, -266, -21, 102, -266, -266, -266, 113, 117,
- -51, -266, 108, -266, -266, 1296, 129, 1109, -266, 97,
- 103, -266, 112, 114, 106, 842, 115, 116, -266, -266,
- 39, -266, -266, -43, -266, -18, 47, -266, -266, -266,
- -266, 374, -266, -266, -266, -266, 118, -266, -266, 908,
- 974, -266, 120, -266, -266, -266, -266, 19, -266, -266,
- 974, 1333, -266, -266, 974, 119, -266, -266, -266, 974,
- 974, 974, 974, 974, 974, 974, 974, 974, 974, 974,
- 974, 974, 974, -266, 1152, 122, -29, -266, -266, -266,
- -266, -266, 121, -266, 974, -266, -266, 5, -266, -266,
- 458, -266, -266, -266, -266, -266, 974, 974, -266, -266,
- -266, 974, -266, 137, -266, -266, -266, 138, 111, -266,
- 142, -266, -266, -266, -266, 36, 36, -266, -266, -266,
- -266, -21, -21, -266, 113, 117, 82, -266, 974, 129,
- -266, 175, 50, 626, 710, 38, -266, 197, 458, -266,
- -266, 141, -266, -266, 974, 155, -266, 145, -266, -266,
- -266, -266, 197, 121, 111, 186, 159, 160, -266, -266,
- -266, 974, -266, 166, 176, 236, -266, 174, 542, -266,
- 43, 974, 542, 121, 974, -266, -266, -266, 177, 111,
- -266, -266, -266, -266
+ 1274, -14, -261, -261, -261, 122, -261, -261, -261, -261,
+ -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+ -261, -261, -261, -261, -261, -13, -261, -261, -261, -261,
+ -261, -261, -261, -57, -59, -41, 63, 7, -261, 89,
+ 1317, -261, 1391, -261, -1, -261, 1230, -261, -261, -261,
+ -261, 1391, -261, -261, -261, -26, -261, 11, -261, 75,
+ 76, -261, -261, -261, -261, 1317, 128, 92, -261, 3,
+ -46, -261, -261, 995, -261, -261, 36, 1317, -261, 293,
+ -261, -261, -261, -261, 92, 1317, -37, -261, 194, 995,
+ 58, -261, -261, -261, -261, 995, 995, 995, -261, -261,
+ -261, -261, -261, 14, -261, -261, -261, 95, -9, 1061,
+ 104, -261, 995, 77, -27, -261, -29, 113, -261, -261,
+ -261, 119, 126, -47, -261, 108, -261, -261, 92, 1130,
+ -261, 1317, 106, 107, -261, 118, 120, 109, 863, 123,
+ 117, -261, -261, 96, -261, -261, 23, -261, -57, 83,
+ -261, -261, -261, -261, 377, -261, -261, -261, -261, 124,
+ -261, -261, 929, 995, -261, 121, -261, -261, -261, -261,
+ 1, -261, -261, 995, 1354, -261, -261, 995, 125, -261,
+ -261, -261, 995, 995, 995, 995, 995, 995, 995, 995,
+ 995, 995, 995, 995, 995, 995, -261, 134, 24, -261,
+ -261, -261, 1173, -261, -261, 133, -261, 995, -261, -261,
+ 38, -261, -261, 461, -261, -261, -261, -261, -261, 995,
+ 995, -261, -261, -261, 995, -261, 136, -261, -261, -261,
+ 137, 135, -261, 127, -261, -261, -261, -261, 77, 77,
+ -261, -261, -261, -261, -29, -29, -261, 119, 126, 93,
+ 995, 92, -261, -261, 160, 11, 629, 713, 28, -261,
+ 797, 461, -261, -261, 152, -261, -261, 995, 153, -261,
+ 157, -261, -261, -261, -261, 797, 133, 135, 92, 158,
+ 168, -261, -261, -261, 995, -261, 148, 161, 230, -261,
+ 169, 545, -261, 42, 995, 545, 133, 995, -261, -261,
+ -261, 167, 135, -261, -261, -261, -261
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -266, -266, -266, -266, -266, -266, -266, 85, -266, -266,
- -266, -266, -44, -266, -15, -266, -55, -19, -266, -266,
- -266, 72, 70, 73, -266, -66, -83, -266, -92, -73,
- 13, 14, -266, -266, -266, 180, 206, 201, 184, -266,
- -266, -241, -25, -30, 262, -4, 0, -266, -266, -266,
- 143, -122, -266, 22, -145, 16, -144, -226, -266, -266,
- -266, -17, -265, -266, -266, -54, 63, 20, -266, -266,
- 4, -266, -266, -266, -266, -266, -266, -266, -266, -266,
- 231, -266, -266
+ -261, -24, -261, -261, -261, -261, -261, -261, 78, -261,
+ -261, -261, -261, -43, -261, -10, -261, -64, -5, -261,
+ -261, -261, 59, 60, 61, -261, -68, -87, -261, -91,
+ -71, 9, 10, -261, -261, -261, 173, 200, 196, 178,
+ -261, -261, -236, -25, -36, 259, -30, 0, -261, -261,
+ -261, 139, -121, -261, 16, -145, 8, -147, -237, -261,
+ -261, -261, -23, -260, -261, -261, -54, 55, 17, -261,
+ -261, -4, -261, -261, -261, -261, -261, -261, -261, -261,
+ -261, 227, -261, -261
};
/* 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 -165
+ number is the opposite. If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -167
static const yytype_int16 yytable[] =
{
- 44, 77, 167, 163, 121, 199, 52, 220, 285, 191,
- 68, 64, 162, 32, 33, 224, 275, 49, 65, 121,
- 181, 66, 182, 176, 58, 50, 108, 269, 301, 6,
- 7, 275, 64, 81, 183, 184, 217, 53, 69, 218,
- 44, 108, 44, 207, 192, 126, 44, 73, 165, 166,
- 249, 44, 81, 250, 59, 60, 61, 23, 24, 32,
- 33, 159, 295, 44, 54, 178, 295, 173, 160, 185,
- 186, 56, 199, 174, 58, 44, 146, 163, 228, 6,
- 7, 84, 44, 85, 217, 57, 223, 256, 168, 169,
- 86, 232, 226, 121, -75, 126, 67, 126, 217, 70,
- 246, 211, 212, 213, 59, 60, 61, 23, 24, 170,
- 214, 273, 255, 171, 220, 108, 298, 217, 74, -25,
- 215, 70, 217, 179, 180, 44, 76, 44, 237, 238,
- 239, 240, 49, 259, 260, 233, 234, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 261, 302,
- 83, 146, 2, 3, 4, 121, 59, 60, 61, 187,
- 188, 217, 264, 124, 126, 274, 235, 236, 241, 242,
- 156, -26, 189, 172, 195, 265, 177, 108, 190, 200,
- 274, 279, 121, 193, 203, 201, 204, 208, 205, 290,
- 217, -116, 221, 209, 44, 225, 248, -164, 268, 299,
- 58, 2, 3, 4, 108, 6, 7, 8, 9, 10,
- 146, 163, 262, 263, -27, 267, 278, 281, 11, 12,
+ 44, 55, 166, 80, 71, 124, 170, 223, 201, 32,
+ 33, 66, 72, 194, 58, 70, 288, 165, 227, 272,
+ 124, 76, 179, 49, 278, 56, 186, 187, 88, 84,
+ 111, 50, 52, 53, 66, 89, 304, 162, 59, 278,
+ 44, 128, 44, 86, 163, 111, 44, 210, 195, 84,
+ 78, 44, 168, 169, 298, 32, 33, 184, 298, 185,
+ 159, 188, 189, 54, 176, 44, 60, 171, 172, 181,
+ 177, 6, 7, 73, 229, 87, 166, 44, 60, 149,
+ 220, 201, 231, 6, 7, 44, 67, 79, 173, 68,
+ 235, 226, 174, 128, 124, 128, 61, 62, 63, 23,
+ 24, 276, 220, 251, 249, 221, 252, 220, 61, 62,
+ 63, 23, 24, 49, 223, 301, 258, 220, 127, 111,
+ 259, 220, 240, 241, 242, 243, 2, 3, 4, 44,
+ -28, 44, 262, 263, 69, 53, -77, 52, 53, 236,
+ 237, 111, 111, 111, 111, 111, 111, 111, 111, 111,
+ 111, 111, 305, 264, 149, -27, 124, 73, 214, 215,
+ 216, 61, 62, 63, 182, 183, 128, 217, 175, 277,
+ 190, 191, 220, 267, 238, 239, 180, 218, 192, 268,
+ 282, 111, 124, 196, 277, 244, 245, 193, 203, 204,
+ 206, 208, 207, 293, 212, 211, 228, -118, 224, -29,
+ 270, 271, 44, 302, 8, 9, 10, 111, 250, -166,
+ 166, 265, 266, 149, 220, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 281, 283, 284,
+ 294, 291, 25, 26, 295, 27, 28, 29, 30, 90,
+ 31, 91, 92, 93, 94, 292, 296, 95, 96, 306,
+ 297, 246, 234, 247, 290, 248, 149, 149, 160, 81,
+ 149, 149, 85, 161, 51, 273, 97, 269, 261, 164,
+ 202, 285, 303, 75, 274, 149, 0, 98, 99, 0,
+ 100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 149, 0, 0, 0, 149, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 132, 133, 134, 0,
+ 135, 136, 137, 138, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 0, 0, 0, 23,
+ 24, 25, 26, 139, 27, 28, 29, 30, 90, 31,
+ 91, 92, 93, 94, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 97, 0, 0, 0, 140,
+ 141, 0, 0, 0, 0, 142, 98, 99, 0, 100,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 132, 133, 134, 0, 135, 136, 137, 138, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 280, 287, 288, 23, 24, 25, 26, 289, 27, 28,
- 29, 30, 87, 31, 88, 89, 90, 91, 291, 292,
- 92, 93, 293, 146, 146, 294, 231, 146, 146, 303,
- 244, 243, 157, 78, 245, 82, 158, 51, 194, 94,
- 270, 266, 146, 258, 271, 300, 282, 72, 0, 0,
- 95, 96, 0, 97, 0, 0, 0, 0, 146, 0,
- 0, 0, 146, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 129, 130, 131, 0, 132, 133, 134,
- 135, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 0, 0, 0, 23, 24, 25, 26,
- 136, 27, 28, 29, 30, 87, 31, 88, 89, 90,
- 91, 0, 0, 92, 93, 0, 0, 0, 0, 0,
+ 0, 0, 0, 23, 24, 25, 26, 139, 27, 28,
+ 29, 30, 90, 31, 91, 92, 93, 94, 0, 0,
+ 95, 96, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
+ 0, 0, 0, 140, 222, 0, 0, 0, 0, 142,
+ 98, 99, 0, 100, 1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 132, 133, 134, 0, 135, 136,
+ 137, 138, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 0, 0, 0, 23, 24, 25,
+ 26, 139, 27, 28, 29, 30, 90, 31, 91, 92,
+ 93, 94, 0, 0, 95, 96, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 94, 0, 0, 0, 137, 138, 0, 0,
- 0, 0, 139, 95, 96, 0, 97, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 129, 130, 131,
- 0, 132, 133, 134, 135, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 0, 0, 0,
- 23, 24, 25, 26, 136, 27, 28, 29, 30, 87,
- 31, 88, 89, 90, 91, 0, 0, 92, 93, 0,
+ 0, 0, 0, 97, 0, 0, 0, 140, 0, 0,
+ 0, 0, 0, 142, 98, 99, 0, 100, 1, 2,
+ 3, 4, 5, 6, 7, 8, 9, 10, 132, 133,
+ 134, 0, 135, 136, 137, 138, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 0, 0,
+ 0, 23, 24, 25, 26, 139, 27, 28, 29, 30,
+ 90, 31, 91, 92, 93, 94, 0, 0, 95, 96,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,
- 137, 219, 0, 0, 0, 0, 139, 95, 96, 0,
- 97, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 129, 130, 131, 0, 132, 133, 134, 135, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 0, 0, 0, 23, 24, 25, 26, 136, 27,
- 28, 29, 30, 87, 31, 88, 89, 90, 91, 0,
- 0, 92, 93, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 0, 0, 0, 137, 0, 0, 0, 0, 0,
- 139, 95, 96, 0, 97, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 129, 130, 131, 0, 132,
- 133, 134, 135, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 0, 0, 0, 23, 24,
- 25, 26, 136, 27, 28, 29, 30, 87, 31, 88,
- 89, 90, 91, 0, 0, 92, 93, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 94, 0, 0, 0, 76, 0,
- 0, 0, 0, 0, 139, 95, 96, 0, 97, 1,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 129,
- 130, 131, 0, 132, 133, 134, 135, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
- 0, 0, 23, 24, 25, 26, 136, 27, 28, 29,
- 30, 87, 31, 88, 89, 90, 91, 0, 0, 92,
- 93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 94, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 139, 95,
- 96, 0, 97, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
- 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 0, 0, 0, 23, 24, 25, 26,
- 0, 27, 28, 29, 30, 87, 31, 88, 89, 90,
- 91, 0, 0, 92, 93, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 94, 0, 0, 0, 8, 9, 10, 0,
- 0, 0, 139, 95, 96, 0, 97, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
- 0, 0, 0, 0, 25, 26, 0, 27, 28, 29,
- 30, 87, 31, 88, 89, 90, 91, 0, 0, 92,
- 93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 94, 0,
- 0, 161, 8, 9, 10, 0, 0, 0, 0, 95,
- 96, 0, 97, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 0, 0, 0, 0, 0,
- 25, 26, 0, 27, 28, 29, 30, 87, 31, 88,
- 89, 90, 91, 0, 0, 92, 93, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 94, 0, 0, 0, 8, 9,
- 10, 0, 0, 0, 206, 95, 96, 0, 97, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 0, 0, 0, 0, 0, 25, 26, 0, 27,
- 28, 29, 30, 87, 31, 88, 89, 90, 91, 0,
- 0, 92, 93, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 0, 0, 222, 8, 9, 10, 0, 0, 0,
- 0, 95, 96, 0, 97, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 0, 0, 0,
- 0, 0, 25, 26, 0, 27, 28, 29, 30, 87,
- 31, 88, 89, 90, 91, 0, 0, 92, 93, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,
- 8, 9, 10, 0, 0, 0, 0, 95, 96, 0,
- 97, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 0, 0, 0, 0, 0, 25, 175,
- 0, 27, 28, 29, 30, 87, 31, 88, 89, 90,
- 91, 0, 0, 92, 93, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 94, 2, 3, 4, 0, 0, 0, 8,
- 9, 10, 0, 95, 96, 0, 97, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 97, 0, 0,
+ 0, 79, 0, 0, 0, 0, 0, 142, 98, 99,
+ 0, 100, 1, 2, 3, 4, 5, 6, 7, 8,
+ 9, 10, 132, 133, 134, 0, 135, 136, 137, 138,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 0, 0, 0, 0, 0, 25, 26, 0,
- 27, 28, 29, 30, 0, 31, 2, 3, 4, 0,
- 0, 0, 8, 9, 10, 0, 0, 0, 0, 0,
- 0, 0, 0, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 0, 198, 0, 0, 0,
- 25, 26, 0, 27, 28, 29, 30, 0, 31, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,
- 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 0, 0, 0, 0, 0, 0, 0, 247,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 0, 0, 0, 23, 24, 25, 26, 0,
- 27, 28, 29, 30, 0, 31, 1, 2, 3, 4,
+ 21, 22, 0, 0, 0, 23, 24, 25, 26, 139,
+ 27, 28, 29, 30, 90, 31, 91, 92, 93, 94,
+ 0, 0, 95, 96, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 97, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 142, 98, 99, 0, 100, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 0, 0, 0, 0,
0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 0, 0, 0, 23,
- 24, 25, 26, 0, 27, 28, 29, 30, 0, 31,
- 2, 3, 4, 0, 0, 0, 8, 9, 10, 0,
- 0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
- 0, 0, 0, 0, 25, 26, 0, 27, 28, 29,
- 30, 0, 31, 8, 9, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
+ 24, 25, 26, 0, 27, 28, 29, 30, 90, 31,
+ 91, 92, 93, 94, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 97, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 142, 98, 99, 0, 100,
+ 60, 2, 3, 4, 0, 6, 7, 8, 9, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 0, 0, 0, 23, 24, 25, 26, 0, 27, 28,
+ 29, 30, 90, 31, 91, 92, 93, 94, 0, 0,
+ 95, 96, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
+ 0, 0, 0, 8, 9, 10, 0, 0, 0, 0,
+ 98, 99, 0, 100, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 0, 0, 0, 0,
- 0, 25, 26, 0, 27, 28, 29, 30, 229, 31,
- 8, 9, 10, 230, 0, 0, 0, 0, 0, 0,
+ 0, 25, 26, 0, 27, 28, 29, 30, 90, 31,
+ 91, 92, 93, 94, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 97, 0, 0, 0, 8,
+ 9, 10, 0, 0, 0, 209, 98, 99, 0, 100,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 0, 0, 0, 0, 0, 25, 26, 0,
+ 27, 28, 29, 30, 90, 31, 91, 92, 93, 94,
+ 0, 0, 95, 96, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 97, 0, 0, 225, 8, 9, 10, 0, 0,
+ 0, 0, 98, 99, 0, 100, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 0, 0,
+ 0, 0, 0, 25, 26, 0, 27, 28, 29, 30,
+ 90, 31, 91, 92, 93, 94, 0, 0, 95, 96,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 97, 0, 0,
+ 0, 8, 9, 10, 0, 0, 0, 0, 98, 99,
+ 0, 100, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 0, 0, 0, 0, 0, 25,
+ 178, 0, 27, 28, 29, 30, 90, 31, 91, 92,
+ 93, 94, 0, 0, 95, 96, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 97, 2, 3, 4, 0, 0, 0,
+ 8, 9, 10, 0, 98, 99, 0, 100, 0, 0,
0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 0, 0, 0, 0, 0, 25, 26,
- 0, 27, 28, 29, 30, 0, 31
+ 0, 27, 28, 29, 30, 0, 31, 2, 3, 4,
+ 0, 0, 0, 8, 9, 10, 0, 0, 0, 0,
+ 0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 0, 200, 0, 0,
+ 0, 25, 26, 0, 27, 28, 29, 30, 0, 31,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 74, 0, 0, 1, 2, 3, 4, 5, 6, 7,
+ 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
+ 253, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 0, 0, 0, 23, 24, 25, 26,
+ 0, 27, 28, 29, 30, 0, 31, 1, 2, 3,
+ 4, 5, 6, 7, 8, 9, 10, 0, 0, 0,
+ 0, 0, 0, 0, 0, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 0, 0, 0,
+ 23, 24, 25, 26, 0, 27, 28, 29, 30, 0,
+ 31, 2, 3, 4, 0, 0, 0, 8, 9, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 0, 0, 0, 0, 0, 25, 26, 0, 27, 28,
+ 29, 30, 0, 31, 8, 9, 10, 0, 0, 0,
+ 0, 0, 0, 0, 0, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 0, 0, 0,
+ 0, 0, 25, 26, 0, 27, 28, 29, 30, 232,
+ 31, 8, 9, 10, 233, 0, 0, 0, 0, 0,
+ 0, 0, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 0, 0, 0, 0, 0, 25,
+ 26, 0, 27, 28, 29, 30, 0, 31
};
+#define yypact_value_is_default(yystate) \
+ ((yystate) == (-261))
+
+#define yytable_value_is_error(yytable_value) \
+ YYID (0)
+
static const yytype_int16 yycheck[] =
{
- 0, 55, 94, 86, 70, 127, 45, 151, 273, 60,
- 40, 36, 85, 0, 0, 160, 257, 37, 79, 85,
- 84, 82, 86, 106, 3, 45, 70, 253, 293, 8,
- 9, 272, 57, 63, 55, 56, 79, 76, 42, 82,
- 40, 85, 42, 135, 95, 75, 46, 51, 92, 93,
- 79, 51, 82, 82, 33, 34, 35, 36, 37, 46,
- 46, 74, 288, 63, 82, 109, 292, 73, 81, 90,
- 91, 73, 194, 79, 3, 75, 76, 160, 170, 8,
- 9, 72, 82, 74, 79, 79, 159, 82, 53, 54,
- 81, 174, 73, 159, 73, 125, 45, 127, 79, 74,
- 192, 62, 63, 64, 33, 34, 35, 36, 37, 74,
- 71, 73, 204, 78, 258, 159, 73, 79, 76, 72,
- 81, 74, 79, 87, 88, 125, 76, 127, 183, 184,
- 185, 186, 37, 216, 217, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191, 221, 294,
- 45, 151, 4, 5, 6, 221, 33, 34, 35, 57,
- 58, 79, 80, 82, 194, 257, 181, 182, 187, 188,
- 45, 72, 59, 73, 45, 248, 72, 221, 61, 82,
- 272, 264, 248, 75, 72, 82, 72, 72, 82, 281,
- 79, 72, 74, 77, 194, 75, 74, 76, 252, 291,
- 3, 4, 5, 6, 248, 8, 9, 10, 11, 12,
- 210, 294, 75, 75, 72, 40, 75, 72, 21, 22,
+ 0, 25, 89, 57, 40, 73, 97, 154, 129, 0,
+ 0, 36, 42, 60, 73, 39, 276, 88, 163, 256,
+ 88, 51, 109, 37, 260, 82, 55, 56, 74, 65,
+ 73, 45, 45, 46, 59, 81, 296, 74, 79, 275,
+ 40, 77, 42, 67, 81, 88, 46, 138, 95, 85,
+ 76, 51, 95, 96, 291, 46, 46, 84, 295, 86,
+ 84, 90, 91, 76, 73, 65, 3, 53, 54, 112,
+ 79, 8, 9, 74, 73, 72, 163, 77, 3, 79,
+ 79, 202, 173, 8, 9, 85, 79, 76, 74, 82,
+ 177, 162, 78, 129, 162, 131, 33, 34, 35, 36,
+ 37, 73, 79, 79, 195, 82, 82, 79, 33, 34,
+ 35, 36, 37, 37, 261, 73, 207, 79, 82, 162,
+ 82, 79, 186, 187, 188, 189, 4, 5, 6, 129,
+ 72, 131, 219, 220, 45, 46, 73, 45, 46, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 297, 224, 154, 72, 224, 74, 62, 63,
+ 64, 33, 34, 35, 87, 88, 202, 71, 73, 260,
+ 57, 58, 79, 80, 184, 185, 72, 81, 59, 250,
+ 267, 224, 250, 75, 275, 190, 191, 61, 82, 82,
+ 72, 82, 72, 284, 77, 72, 75, 72, 74, 72,
+ 40, 255, 202, 294, 10, 11, 12, 250, 74, 76,
+ 297, 75, 75, 213, 79, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 75, 75, 72,
+ 82, 73, 38, 39, 73, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 77, 16, 53, 54, 82,
+ 81, 192, 174, 193, 278, 194, 256, 257, 85, 59,
+ 260, 261, 66, 85, 5, 257, 72, 251, 213, 75,
+ 131, 275, 295, 46, 257, 275, -1, 83, 84, -1,
+ 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 291, -1, -1, -1, 295, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, -1,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, -1, -1, -1, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, -1, -1, 53, 54, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 72, -1, -1, -1, 76,
+ 77, -1, -1, -1, -1, 82, 83, 84, -1, 86,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 75, 45, 73, 36, 37, 38, 39, 77, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 82, 73,
- 53, 54, 16, 253, 254, 81, 171, 257, 258, 82,
- 190, 189, 82, 57, 191, 64, 82, 5, 125, 72,
- 254, 249, 272, 210, 254, 292, 272, 46, -1, -1,
- 83, 84, -1, 86, -1, -1, -1, -1, 288, -1,
- -1, -1, 292, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, -1, -1, -1, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, -1, -1, 53, 54, -1, -1, -1, -1, -1,
+ -1, -1, -1, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, -1, -1,
+ 53, 54, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 72,
+ -1, -1, -1, 76, 77, -1, -1, -1, -1, 82,
+ 83, 84, -1, 86, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, -1, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, -1, -1, -1, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, -1, -1, 53, 54, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 72, -1, -1, -1, 76, 77, -1, -1,
- -1, -1, 82, 83, 84, -1, 86, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, -1, -1, 53, 54, -1,
+ -1, -1, -1, 72, -1, -1, -1, 76, -1, -1,
+ -1, -1, -1, 82, 83, 84, -1, 86, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
+ -1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, -1, -1, 53, 54,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
- 76, 77, -1, -1, -1, -1, 82, 83, 84, -1,
- 86, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, -1, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, -1, -1, -1, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, -1,
- -1, 53, 54, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 72, -1, -1, -1, 76, -1, -1, -1, -1, -1,
- 82, 83, 84, -1, 86, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, -1, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, -1, -1, -1, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, -1, -1, 53, 54, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 72, -1, -1, -1, 76, -1,
- -1, -1, -1, -1, 82, 83, 84, -1, 86, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
- -1, -1, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, -1, -1, 53,
- 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 72, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 82, 83,
- 84, -1, 86, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
- -1, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, -1, -1, -1, 36, 37, 38, 39,
- -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, -1, -1, 53, 54, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 72, -1, -1, -1, 10, 11, 12, -1,
- -1, -1, 82, 83, 84, -1, 86, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
- -1, -1, -1, -1, 38, 39, -1, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, -1, -1, 53,
- 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 72, -1,
- -1, 75, 10, 11, 12, -1, -1, -1, -1, 83,
- 84, -1, 86, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, -1, -1, -1, -1, -1,
- 38, 39, -1, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, -1, -1, 53, 54, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 72, -1, -1, -1, 10, 11,
- 12, -1, -1, -1, 82, 83, 84, -1, 86, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, -1, -1, -1, -1, -1, 38, 39, -1, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, -1,
- -1, 53, 54, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 72, -1, -1, 75, 10, 11, 12, -1, -1, -1,
- -1, 83, 84, -1, 86, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
- -1, -1, 38, 39, -1, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, -1, -1, 53, 54, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
- 10, 11, 12, -1, -1, -1, -1, 83, 84, -1,
- 86, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, -1, -1, -1, -1, -1, 38, 39,
- -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, -1, -1, 53, 54, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 72, 4, 5, 6, -1, -1, -1, 10,
- 11, 12, -1, 83, 84, -1, 86, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 72, -1, -1,
+ -1, 76, -1, -1, -1, -1, -1, 82, 83, 84,
+ -1, 86, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, -1, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, -1, -1, -1, -1, -1, 38, 39, -1,
- 41, 42, 43, 44, -1, 46, 4, 5, 6, -1,
- -1, -1, 10, 11, 12, -1, -1, -1, -1, -1,
- -1, -1, -1, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, -1, 77, -1, -1, -1,
- 38, 39, -1, 41, 42, 43, 44, -1, 46, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
- -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, -1, -1, -1, -1, -1, -1, -1, 77,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, -1, -1, -1, 36, 37, 38, 39, -1,
- 41, 42, 43, 44, -1, 46, 3, 4, 5, 6,
+ 31, 32, -1, -1, -1, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ -1, -1, 53, 54, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 72, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 82, 83, 84, -1, 86, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, -1, -1, -1, -1,
-1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, -1, -1, -1, 36,
- 37, 38, 39, -1, 41, 42, 43, 44, -1, 46,
- 4, 5, 6, -1, -1, -1, 10, 11, 12, -1,
- -1, -1, -1, -1, -1, -1, -1, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
- -1, -1, -1, -1, 38, 39, -1, 41, 42, 43,
- 44, -1, 46, 10, 11, 12, -1, -1, -1, -1,
- -1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
+ 37, 38, 39, -1, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, -1, -1, 53, 54, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 72, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 82, 83, 84, -1, 86,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ -1, -1, -1, -1, -1, -1, -1, -1, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ -1, -1, -1, 36, 37, 38, 39, -1, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, -1, -1,
+ 53, 54, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 72,
+ -1, -1, -1, 10, 11, 12, -1, -1, -1, -1,
+ 83, 84, -1, 86, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, -1, -1, -1, -1,
-1, 38, 39, -1, 41, 42, 43, 44, 45, 46,
- 10, 11, 12, 50, -1, -1, -1, -1, -1, -1,
+ 47, 48, 49, 50, -1, -1, 53, 54, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 72, -1, -1, -1, 10,
+ 11, 12, -1, -1, -1, 82, 83, 84, -1, 86,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, -1, -1, -1, -1, -1, 38, 39, -1,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ -1, -1, 53, 54, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 72, -1, -1, 75, 10, 11, 12, -1, -1,
+ -1, -1, 83, 84, -1, 86, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
+ -1, -1, -1, 38, 39, -1, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, -1, -1, 53, 54,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 72, -1, -1,
+ -1, 10, 11, 12, -1, -1, -1, -1, 83, 84,
+ -1, 86, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, -1, -1, -1, -1, -1, 38,
+ 39, -1, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, -1, -1, 53, 54, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 72, 4, 5, 6, -1, -1, -1,
+ 10, 11, 12, -1, 83, 84, -1, 86, -1, -1,
-1, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, -1, -1, -1, -1, -1, 38, 39,
- -1, 41, 42, 43, 44, -1, 46
+ -1, 41, 42, 43, 44, -1, 46, 4, 5, 6,
+ -1, -1, -1, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, -1, 77, -1, -1,
+ -1, 38, 39, -1, 41, 42, 43, 44, -1, 46,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 0, -1, -1, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
+ 77, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, -1, -1, -1, 36, 37, 38, 39,
+ -1, 41, 42, 43, 44, -1, 46, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, -1, -1, -1,
+ -1, -1, -1, -1, -1, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
+ 36, 37, 38, 39, -1, 41, 42, 43, 44, -1,
+ 46, 4, 5, 6, -1, -1, -1, 10, 11, 12,
+ -1, -1, -1, -1, -1, -1, -1, -1, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ -1, -1, -1, -1, -1, 38, 39, -1, 41, 42,
+ 43, 44, -1, 46, 10, 11, 12, -1, -1, -1,
+ -1, -1, -1, -1, -1, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
+ -1, -1, 38, 39, -1, 41, 42, 43, 44, 45,
+ 46, 10, 11, 12, 50, -1, -1, -1, -1, -1,
+ -1, -1, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, -1, -1, -1, -1, -1, 38,
+ 39, -1, 41, 42, 43, 44, -1, 46
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1215,34 +1228,34 @@
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 36, 37, 38, 39, 41, 42, 43,
- 44, 46, 126, 127, 128, 129, 130, 135, 136, 137,
- 138, 139, 140, 141, 142, 143, 175, 176, 177, 37,
- 45, 140, 45, 76, 82, 178, 73, 79, 3, 33,
- 34, 35, 132, 133, 138, 79, 82, 45, 139, 141,
- 74, 0, 176, 141, 76, 145, 76, 161, 132, 131,
- 134, 139, 133, 45, 72, 74, 81, 45, 47, 48,
- 49, 50, 53, 54, 72, 83, 84, 86, 97, 98,
- 99, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 125, 142, 82, 144, 139, 146, 147, 13,
- 14, 15, 17, 18, 19, 20, 40, 76, 77, 82,
- 108, 121, 122, 124, 126, 127, 142, 151, 152, 153,
- 154, 162, 163, 164, 167, 174, 45, 131, 134, 74,
- 81, 75, 125, 122, 150, 108, 108, 124, 53, 54,
- 74, 78, 73, 73, 79, 39, 122, 72, 108, 87,
- 88, 84, 86, 55, 56, 90, 91, 57, 58, 59,
- 61, 60, 95, 75, 146, 45, 148, 149, 77, 147,
- 82, 82, 169, 72, 72, 82, 82, 124, 72, 77,
- 155, 62, 63, 64, 71, 81, 123, 79, 82, 77,
- 152, 74, 75, 125, 150, 75, 73, 100, 124, 45,
- 50, 103, 122, 108, 108, 110, 110, 112, 112, 112,
- 112, 113, 113, 117, 118, 119, 124, 77, 74, 79,
- 82, 158, 159, 160, 170, 124, 82, 168, 162, 122,
- 122, 125, 75, 75, 80, 125, 149, 40, 161, 153,
- 151, 163, 171, 73, 124, 137, 166, 156, 75, 122,
- 75, 72, 166, 172, 173, 158, 165, 45, 73, 77,
- 124, 82, 73, 16, 81, 153, 157, 161, 73, 124,
- 157, 158, 150, 82
+ 44, 46, 127, 128, 129, 130, 131, 136, 137, 138,
+ 139, 140, 141, 142, 143, 144, 176, 177, 178, 37,
+ 45, 141, 45, 46, 76, 97, 82, 179, 73, 79,
+ 3, 33, 34, 35, 133, 134, 139, 79, 82, 45,
+ 97, 140, 142, 74, 0, 177, 142, 146, 76, 76,
+ 162, 133, 132, 135, 140, 134, 97, 72, 74, 81,
+ 45, 47, 48, 49, 50, 53, 54, 72, 83, 84,
+ 86, 98, 99, 100, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 126, 143, 82, 140, 147,
+ 148, 145, 13, 14, 15, 17, 18, 19, 20, 40,
+ 76, 77, 82, 109, 122, 123, 125, 127, 128, 143,
+ 152, 153, 154, 155, 163, 164, 165, 168, 175, 97,
+ 132, 135, 74, 81, 75, 126, 123, 151, 109, 109,
+ 125, 53, 54, 74, 78, 73, 73, 79, 39, 123,
+ 72, 109, 87, 88, 84, 86, 55, 56, 90, 91,
+ 57, 58, 59, 61, 60, 95, 75, 97, 149, 150,
+ 77, 148, 147, 82, 82, 170, 72, 72, 82, 82,
+ 125, 72, 77, 156, 62, 63, 64, 71, 81, 124,
+ 79, 82, 77, 153, 74, 75, 126, 151, 75, 73,
+ 101, 125, 45, 50, 104, 123, 109, 109, 111, 111,
+ 113, 113, 113, 113, 114, 114, 118, 119, 120, 125,
+ 74, 79, 82, 77, 159, 160, 161, 171, 125, 82,
+ 169, 163, 123, 123, 126, 75, 75, 80, 126, 150,
+ 40, 162, 154, 152, 164, 172, 73, 125, 138, 167,
+ 157, 75, 123, 75, 72, 167, 173, 174, 159, 166,
+ 97, 73, 77, 125, 82, 73, 16, 81, 154, 158,
+ 162, 73, 125, 158, 159, 151, 82
};
#define yyerrok (yyerrstatus = 0)
@@ -1278,7 +1291,6 @@
{ \
yychar = (Token); \
yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
@@ -1320,19 +1332,10 @@
#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. */
+/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && 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
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
@@ -1528,7 +1531,6 @@
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -1631,115 +1633,142 @@
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
+
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
{
- int yyn = yypact[yystate];
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = 0;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+ /* There are many possibilities here to consider:
+ - Assume YYFAIL is not used. It's too flawed to consider. See
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+ for details. YYERROR is fine as it does not invoke this
+ function.
+ - If this state is a consistent state with a default action, then
+ the only way this function was invoked is if the default action
+ is an error action. In that case, don't check for expected
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* 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 + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
-
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
-
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
}
+
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
+
+ yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
+ }
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -1774,6 +1803,7 @@
}
}
+
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
@@ -1790,12 +1820,9 @@
#endif /* ! YYPARSE_PARAM */
-
-
-
-/*-------------------------.
-| yyparse or yypush_parse. |
-`-------------------------*/
+/*----------.
+| yyparse. |
+`----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1982,7 +2009,7 @@
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
@@ -2013,8 +2040,8 @@
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
@@ -2067,7 +2094,7 @@
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
- case 2:
+ case 4:
{
// The symbol table search was done in the lexical phase
@@ -2103,14 +2130,14 @@
}
break;
- case 3:
+ case 5:
{
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
}
break;
- case 4:
+ case 6:
{
//
@@ -2127,7 +2154,7 @@
}
break;
- case 5:
+ case 7:
{
ConstantUnion *unionArray = new ConstantUnion[1];
@@ -2136,7 +2163,7 @@
}
break;
- case 6:
+ case 8:
{
ConstantUnion *unionArray = new ConstantUnion[1];
@@ -2145,21 +2172,21 @@
}
break;
- case 7:
+ case 9:
{
(yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode);
}
break;
- case 8:
+ case 10:
{
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
}
break;
- case 9:
+ case 11:
{
if (!(yyvsp[(1) - (4)].interm.intermTypedNode)->isArray() && !(yyvsp[(1) - (4)].interm.intermTypedNode)->isMatrix() && !(yyvsp[(1) - (4)].interm.intermTypedNode)->isVector()) {
@@ -2242,14 +2269,14 @@
}
break;
- case 10:
+ case 12:
{
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
}
break;
- case 11:
+ case 13:
{
if ((yyvsp[(1) - (3)].interm.intermTypedNode)->isArray()) {
@@ -2354,7 +2381,7 @@
}
break;
- case 12:
+ case 14:
{
if (context->lValueErrorCheck((yyvsp[(2) - (2)].lex).line, "++", (yyvsp[(1) - (2)].interm.intermTypedNode)))
@@ -2368,7 +2395,7 @@
}
break;
- case 13:
+ case 15:
{
if (context->lValueErrorCheck((yyvsp[(2) - (2)].lex).line, "--", (yyvsp[(1) - (2)].interm.intermTypedNode)))
@@ -2382,7 +2409,7 @@
}
break;
- case 14:
+ case 16:
{
if (context->integerErrorCheck((yyvsp[(1) - (1)].interm.intermTypedNode), "[]"))
@@ -2391,7 +2418,7 @@
}
break;
- case 15:
+ case 17:
{
TFunction* fnCall = (yyvsp[(1) - (1)].interm).function;
@@ -2492,14 +2519,14 @@
}
break;
- case 16:
+ case 18:
{
(yyval.interm) = (yyvsp[(1) - (1)].interm);
}
break;
- case 17:
+ case 19:
{
context->error((yyvsp[(3) - (3)].interm).line, "methods are not supported", "");
@@ -2508,31 +2535,31 @@
}
break;
- case 18:
-
- {
- (yyval.interm) = (yyvsp[(1) - (2)].interm);
- (yyval.interm).line = (yyvsp[(2) - (2)].lex).line;
- }
- break;
-
- case 19:
-
- {
- (yyval.interm) = (yyvsp[(1) - (2)].interm);
- (yyval.interm).line = (yyvsp[(2) - (2)].lex).line;
- }
- break;
-
case 20:
{
+ (yyval.interm) = (yyvsp[(1) - (2)].interm);
+ (yyval.interm).line = (yyvsp[(2) - (2)].lex).line;
+ }
+ break;
+
+ case 21:
+
+ {
+ (yyval.interm) = (yyvsp[(1) - (2)].interm);
+ (yyval.interm).line = (yyvsp[(2) - (2)].lex).line;
+ }
+ break;
+
+ case 22:
+
+ {
(yyval.interm).function = (yyvsp[(1) - (2)].interm.function);
(yyval.interm).intermNode = 0;
}
break;
- case 21:
+ case 23:
{
(yyval.interm).function = (yyvsp[(1) - (1)].interm.function);
@@ -2540,7 +2567,7 @@
}
break;
- case 22:
+ case 24:
{
TParameter param = { 0, new TType((yyvsp[(2) - (2)].interm.intermTypedNode)->getType()) };
@@ -2550,7 +2577,7 @@
}
break;
- case 23:
+ case 25:
{
TParameter param = { 0, new TType((yyvsp[(3) - (3)].interm.intermTypedNode)->getType()) };
@@ -2560,14 +2587,14 @@
}
break;
- case 24:
+ case 26:
{
(yyval.interm.function) = (yyvsp[(1) - (2)].interm.function);
}
break;
- case 25:
+ case 27:
{
//
@@ -2626,36 +2653,36 @@
}
break;
- case 26:
-
- {
- if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string))
- context->recover();
- TType type(EbtVoid, EbpUndefined);
- TFunction *function = new TFunction((yyvsp[(1) - (1)].lex).string, type);
- (yyval.interm.function) = function;
- }
- break;
-
- case 27:
-
- {
- if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string))
- context->recover();
- TType type(EbtVoid, EbpUndefined);
- TFunction *function = new TFunction((yyvsp[(1) - (1)].lex).string, type);
- (yyval.interm.function) = function;
- }
- break;
-
case 28:
{
+ if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string))
+ context->recover();
+ TType type(EbtVoid, EbpUndefined);
+ TFunction *function = new TFunction((yyvsp[(1) - (1)].lex).string, type);
+ (yyval.interm.function) = function;
+ }
+ break;
+
+ case 29:
+
+ {
+ if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string))
+ context->recover();
+ TType type(EbtVoid, EbpUndefined);
+ TFunction *function = new TFunction((yyvsp[(1) - (1)].lex).string, type);
+ (yyval.interm.function) = function;
+ }
+ break;
+
+ case 30:
+
+ {
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
}
break;
- case 29:
+ case 31:
{
if (context->lValueErrorCheck((yyvsp[(1) - (2)].lex).line, "++", (yyvsp[(2) - (2)].interm.intermTypedNode)))
@@ -2669,7 +2696,7 @@
}
break;
- case 30:
+ case 32:
{
if (context->lValueErrorCheck((yyvsp[(1) - (2)].lex).line, "--", (yyvsp[(2) - (2)].interm.intermTypedNode)))
@@ -2683,7 +2710,7 @@
}
break;
- case 31:
+ case 33:
{
if ((yyvsp[(1) - (2)].interm).op != EOpNull) {
@@ -2704,27 +2731,27 @@
}
break;
- case 32:
+ case 34:
{ (yyval.interm).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm).op = EOpNull; }
break;
- case 33:
+ case 35:
{ (yyval.interm).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm).op = EOpNegative; }
break;
- case 34:
+ case 36:
{ (yyval.interm).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm).op = EOpLogicalNot; }
break;
- case 35:
+ case 37:
{ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
break;
- case 36:
+ case 38:
{
FRAG_VERT_ONLY("*", (yyvsp[(2) - (3)].lex).line);
@@ -2737,7 +2764,7 @@
}
break;
- case 37:
+ case 39:
{
FRAG_VERT_ONLY("/", (yyvsp[(2) - (3)].lex).line);
@@ -2750,12 +2777,12 @@
}
break;
- case 38:
+ case 40:
{ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
break;
- case 39:
+ case 41:
{
(yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpAdd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
@@ -2767,7 +2794,7 @@
}
break;
- case 40:
+ case 42:
{
(yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpSub, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
@@ -2779,18 +2806,18 @@
}
break;
- case 41:
-
- { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
- break;
-
- case 42:
-
- { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
- break;
-
case 43:
+ { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
+ break;
+
+ case 44:
+
+ { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
+ break;
+
+ case 45:
+
{
(yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLessThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
if ((yyval.interm.intermTypedNode) == 0) {
@@ -2803,7 +2830,7 @@
}
break;
- case 44:
+ case 46:
{
(yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpGreaterThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
@@ -2817,7 +2844,7 @@
}
break;
- case 45:
+ case 47:
{
(yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLessThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
@@ -2831,7 +2858,7 @@
}
break;
- case 46:
+ case 48:
{
(yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpGreaterThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
@@ -2845,12 +2872,12 @@
}
break;
- case 47:
+ case 49:
{ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
break;
- case 48:
+ case 50:
{
(yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
@@ -2864,7 +2891,7 @@
}
break;
- case 49:
+ case 51:
{
(yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpNotEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
@@ -2878,16 +2905,6 @@
}
break;
- case 50:
-
- { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
- break;
-
- case 51:
-
- { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
- break;
-
case 52:
{ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
@@ -2900,16 +2917,7 @@
case 54:
- {
- (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLogicalAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
- if ((yyval.interm.intermTypedNode) == 0) {
- context->binaryOpError((yyvsp[(2) - (3)].lex).line, "&&", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
- context->recover();
- ConstantUnion *unionArray = new ConstantUnion[1];
- unionArray->setBConst(false);
- (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yyvsp[(2) - (3)].lex).line);
- }
- }
+ { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
break;
case 55:
@@ -2920,9 +2928,9 @@
case 56:
{
- (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLogicalXor, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
+ (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLogicalAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
if ((yyval.interm.intermTypedNode) == 0) {
- context->binaryOpError((yyvsp[(2) - (3)].lex).line, "^^", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
+ context->binaryOpError((yyvsp[(2) - (3)].lex).line, "&&", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
context->recover();
ConstantUnion *unionArray = new ConstantUnion[1];
unionArray->setBConst(false);
@@ -2939,9 +2947,9 @@
case 58:
{
- (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLogicalOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
+ (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLogicalXor, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
if ((yyval.interm.intermTypedNode) == 0) {
- context->binaryOpError((yyvsp[(2) - (3)].lex).line, "||", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
+ context->binaryOpError((yyvsp[(2) - (3)].lex).line, "^^", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
context->recover();
ConstantUnion *unionArray = new ConstantUnion[1];
unionArray->setBConst(false);
@@ -2958,6 +2966,25 @@
case 60:
{
+ (yyval.interm.intermTypedNode) = context->intermediate.addBinaryMath(EOpLogicalOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line, context->symbolTable);
+ if ((yyval.interm.intermTypedNode) == 0) {
+ context->binaryOpError((yyvsp[(2) - (3)].lex).line, "||", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString());
+ context->recover();
+ ConstantUnion *unionArray = new ConstantUnion[1];
+ unionArray->setBConst(false);
+ (yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtBool, EbpUndefined, EvqConst), (yyvsp[(2) - (3)].lex).line);
+ }
+ }
+ break;
+
+ case 61:
+
+ { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
+ break;
+
+ case 62:
+
+ {
if (context->boolErrorCheck((yyvsp[(2) - (5)].lex).line, (yyvsp[(1) - (5)].interm.intermTypedNode)))
context->recover();
@@ -2973,12 +3000,12 @@
}
break;
- case 61:
+ case 63:
{ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
break;
- case 62:
+ case 64:
{
if (context->lValueErrorCheck((yyvsp[(2) - (3)].interm).line, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)))
@@ -2992,39 +3019,39 @@
}
break;
- case 63:
+ case 65:
{ (yyval.interm).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm).op = EOpAssign; }
break;
- case 64:
+ case 66:
{ FRAG_VERT_ONLY("*=", (yyvsp[(1) - (1)].lex).line); (yyval.interm).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm).op = EOpMulAssign; }
break;
- case 65:
+ case 67:
{ FRAG_VERT_ONLY("/=", (yyvsp[(1) - (1)].lex).line); (yyval.interm).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm).op = EOpDivAssign; }
break;
- case 66:
+ case 68:
{ (yyval.interm).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm).op = EOpAddAssign; }
break;
- case 67:
+ case 69:
{ (yyval.interm).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm).op = EOpSubAssign; }
break;
- case 68:
+ case 70:
{
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
}
break;
- case 69:
+ case 71:
{
(yyval.interm.intermTypedNode) = context->intermediate.addComma((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).line);
@@ -3036,7 +3063,7 @@
}
break;
- case 70:
+ case 72:
{
if (context->constErrorCheck((yyvsp[(1) - (1)].interm.intermTypedNode)))
@@ -3045,7 +3072,7 @@
}
break;
- case 71:
+ case 73:
{
TFunction &function = *((yyvsp[(1) - (2)].interm).function);
@@ -3076,7 +3103,7 @@
}
break;
- case 72:
+ case 74:
{
if ((yyvsp[(1) - (2)].interm).intermAggregate)
@@ -3085,7 +3112,7 @@
}
break;
- case 73:
+ case 75:
{
if (((yyvsp[(2) - (4)].interm.precision) == EbpHigh) && (context->shaderType == SH_FRAGMENT_SHADER) && !context->fragmentPrecisionHigh) {
@@ -3100,7 +3127,7 @@
}
break;
- case 74:
+ case 76:
{
//
@@ -3139,23 +3166,23 @@
}
break;
- case 75:
-
- {
- (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function);
- }
- break;
-
- case 76:
-
- {
- (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function);
- }
- break;
-
case 77:
{
+ (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function);
+ }
+ break;
+
+ case 78:
+
+ {
+ (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function);
+ }
+ break;
+
+ case 79:
+
+ {
// Add the parameter
(yyval.interm.function) = (yyvsp[(1) - (2)].interm.function);
if ((yyvsp[(2) - (2)].interm).param.type->getBasicType() != EbtVoid)
@@ -3165,7 +3192,7 @@
}
break;
- case 78:
+ case 80:
{
//
@@ -3187,7 +3214,7 @@
}
break;
- case 79:
+ case 81:
{
if ((yyvsp[(1) - (3)].interm.type).qualifier != EvqGlobal && (yyvsp[(1) - (3)].interm.type).qualifier != EvqTemporary) {
@@ -3208,7 +3235,7 @@
}
break;
- case 80:
+ case 82:
{
if ((yyvsp[(1) - (2)].interm.type).type == EbtVoid) {
@@ -3223,7 +3250,7 @@
}
break;
- case 81:
+ case 83:
{
// Check that we can make an array out of this type
@@ -3245,26 +3272,6 @@
}
break;
- case 82:
-
- {
- (yyval.interm) = (yyvsp[(3) - (3)].interm);
- if (context->paramErrorCheck((yyvsp[(3) - (3)].interm).line, (yyvsp[(1) - (3)].interm.type).qualifier, (yyvsp[(2) - (3)].interm.qualifier), (yyval.interm).param.type))
- context->recover();
- }
- break;
-
- case 83:
-
- {
- (yyval.interm) = (yyvsp[(2) - (2)].interm);
- if (context->parameterSamplerErrorCheck((yyvsp[(2) - (2)].interm).line, (yyvsp[(1) - (2)].interm.qualifier), *(yyvsp[(2) - (2)].interm).param.type))
- context->recover();
- if (context->paramErrorCheck((yyvsp[(2) - (2)].interm).line, EvqTemporary, (yyvsp[(1) - (2)].interm.qualifier), (yyval.interm).param.type))
- context->recover();
- }
- break;
-
case 84:
{
@@ -3288,47 +3295,67 @@
case 86:
{
- (yyval.interm.qualifier) = EvqIn;
+ (yyval.interm) = (yyvsp[(3) - (3)].interm);
+ if (context->paramErrorCheck((yyvsp[(3) - (3)].interm).line, (yyvsp[(1) - (3)].interm.type).qualifier, (yyvsp[(2) - (3)].interm.qualifier), (yyval.interm).param.type))
+ context->recover();
}
break;
case 87:
{
- (yyval.interm.qualifier) = EvqIn;
+ (yyval.interm) = (yyvsp[(2) - (2)].interm);
+ if (context->parameterSamplerErrorCheck((yyvsp[(2) - (2)].interm).line, (yyvsp[(1) - (2)].interm.qualifier), *(yyvsp[(2) - (2)].interm).param.type))
+ context->recover();
+ if (context->paramErrorCheck((yyvsp[(2) - (2)].interm).line, EvqTemporary, (yyvsp[(1) - (2)].interm.qualifier), (yyval.interm).param.type))
+ context->recover();
}
break;
case 88:
{
- (yyval.interm.qualifier) = EvqOut;
+ (yyval.interm.qualifier) = EvqIn;
}
break;
case 89:
{
- (yyval.interm.qualifier) = EvqInOut;
+ (yyval.interm.qualifier) = EvqIn;
}
break;
case 90:
{
+ (yyval.interm.qualifier) = EvqOut;
+ }
+ break;
+
+ case 91:
+
+ {
+ (yyval.interm.qualifier) = EvqInOut;
+ }
+ break;
+
+ case 92:
+
+ {
TParameter param = { 0, new TType((yyvsp[(1) - (1)].interm.type)) };
(yyval.interm).param = param;
}
break;
- case 91:
+ case 93:
{
(yyval.interm) = (yyvsp[(1) - (1)].interm);
}
break;
- case 92:
+ case 94:
{
if ((yyvsp[(1) - (3)].interm).type.type == EbtInvariant && !(yyvsp[(3) - (3)].lex).symbol)
@@ -3354,7 +3381,7 @@
}
break;
- case 93:
+ case 95:
{
if (context->structQualifierErrorCheck((yyvsp[(3) - (5)].lex).line, (yyvsp[(1) - (5)].interm).type))
@@ -3376,7 +3403,7 @@
}
break;
- case 94:
+ case 96:
{
if (context->structQualifierErrorCheck((yyvsp[(3) - (6)].lex).line, (yyvsp[(1) - (6)].interm).type))
@@ -3404,7 +3431,7 @@
}
break;
- case 95:
+ case 97:
{
if (context->structQualifierErrorCheck((yyvsp[(3) - (5)].lex).line, (yyvsp[(1) - (5)].interm).type))
@@ -3428,7 +3455,7 @@
}
break;
- case 96:
+ case 98:
{
(yyval.interm).type = (yyvsp[(1) - (1)].interm.type);
@@ -3436,7 +3463,7 @@
}
break;
- case 97:
+ case 99:
{
TIntermSymbol* symbol = context->intermediate.addSymbol(0, *(yyvsp[(2) - (2)].lex).string, TType((yyvsp[(1) - (2)].interm.type)), (yyvsp[(2) - (2)].lex).line);
@@ -3458,7 +3485,7 @@
}
break;
- case 98:
+ case 100:
{
context->error((yyvsp[(2) - (4)].lex).line, "unsized array declarations not supported", (yyvsp[(2) - (4)].lex).string->c_str());
@@ -3470,7 +3497,7 @@
}
break;
- case 99:
+ case 101:
{
TType type = TType((yyvsp[(1) - (5)].interm.type));
@@ -3506,7 +3533,7 @@
}
break;
- case 100:
+ case 102:
{
if (context->structQualifierErrorCheck((yyvsp[(2) - (4)].lex).line, (yyvsp[(1) - (4)].interm.type)))
@@ -3530,7 +3557,7 @@
}
break;
- case 101:
+ case 103:
{
VERTEX_ONLY("invariant declaration", (yyvsp[(1) - (2)].lex).line);
@@ -3552,7 +3579,7 @@
}
break;
- case 102:
+ case 104:
{
(yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
@@ -3565,7 +3592,7 @@
}
break;
- case 103:
+ case 105:
{
if ((yyvsp[(2) - (2)].interm.type).array) {
@@ -3589,14 +3616,14 @@
}
break;
- case 104:
+ case 106:
{
(yyval.interm.type).setBasic(EbtVoid, EvqConst, (yyvsp[(1) - (1)].lex).line);
}
break;
- case 105:
+ case 107:
{
VERTEX_ONLY("attribute", (yyvsp[(1) - (1)].lex).line);
@@ -3606,7 +3633,7 @@
}
break;
- case 106:
+ case 108:
{
if (context->globalErrorCheck((yyvsp[(1) - (1)].lex).line, context->symbolTable.atGlobalLevel(), "varying"))
@@ -3618,7 +3645,7 @@
}
break;
- case 107:
+ case 109:
{
if (context->globalErrorCheck((yyvsp[(1) - (2)].lex).line, context->symbolTable.atGlobalLevel(), "invariant varying"))
@@ -3630,7 +3657,7 @@
}
break;
- case 108:
+ case 110:
{
if (context->globalErrorCheck((yyvsp[(1) - (1)].lex).line, context->symbolTable.atGlobalLevel(), "uniform"))
@@ -3639,7 +3666,7 @@
}
break;
- case 109:
+ case 111:
{
(yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
@@ -3653,7 +3680,7 @@
}
break;
- case 110:
+ case 112:
{
(yyval.interm.type) = (yyvsp[(2) - (2)].interm.type);
@@ -3661,35 +3688,35 @@
}
break;
- case 111:
+ case 113:
{
(yyval.interm.precision) = EbpHigh;
}
break;
- case 112:
+ case 114:
{
(yyval.interm.precision) = EbpMedium;
}
break;
- case 113:
+ case 115:
{
(yyval.interm.precision) = EbpLow;
}
break;
- case 114:
+ case 116:
{
(yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
}
break;
- case 115:
+ case 117:
{
(yyval.interm.type) = (yyvsp[(1) - (4)].interm.type);
@@ -3705,7 +3732,7 @@
}
break;
- case 116:
+ case 118:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
@@ -3713,27 +3740,11 @@
}
break;
- case 117:
-
- {
- TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line);
- }
- break;
-
- case 118:
-
- {
- TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- (yyval.interm.type).setBasic(EbtInt, qual, (yyvsp[(1) - (1)].lex).line);
- }
- break;
-
case 119:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- (yyval.interm.type).setBasic(EbtBool, qual, (yyvsp[(1) - (1)].lex).line);
+ (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line);
}
break;
@@ -3741,8 +3752,7 @@
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line);
- (yyval.interm.type).setAggregate(2);
+ (yyval.interm.type).setBasic(EbtInt, qual, (yyvsp[(1) - (1)].lex).line);
}
break;
@@ -3750,8 +3760,7 @@
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line);
- (yyval.interm.type).setAggregate(3);
+ (yyval.interm.type).setBasic(EbtBool, qual, (yyvsp[(1) - (1)].lex).line);
}
break;
@@ -3760,7 +3769,7 @@
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
(yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line);
- (yyval.interm.type).setAggregate(4);
+ (yyval.interm.type).setAggregate(2);
}
break;
@@ -3768,8 +3777,8 @@
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- (yyval.interm.type).setBasic(EbtBool, qual, (yyvsp[(1) - (1)].lex).line);
- (yyval.interm.type).setAggregate(2);
+ (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line);
+ (yyval.interm.type).setAggregate(3);
}
break;
@@ -3777,8 +3786,8 @@
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- (yyval.interm.type).setBasic(EbtBool, qual, (yyvsp[(1) - (1)].lex).line);
- (yyval.interm.type).setAggregate(3);
+ (yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line);
+ (yyval.interm.type).setAggregate(4);
}
break;
@@ -3787,7 +3796,7 @@
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
(yyval.interm.type).setBasic(EbtBool, qual, (yyvsp[(1) - (1)].lex).line);
- (yyval.interm.type).setAggregate(4);
+ (yyval.interm.type).setAggregate(2);
}
break;
@@ -3795,8 +3804,8 @@
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- (yyval.interm.type).setBasic(EbtInt, qual, (yyvsp[(1) - (1)].lex).line);
- (yyval.interm.type).setAggregate(2);
+ (yyval.interm.type).setBasic(EbtBool, qual, (yyvsp[(1) - (1)].lex).line);
+ (yyval.interm.type).setAggregate(3);
}
break;
@@ -3804,8 +3813,8 @@
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- (yyval.interm.type).setBasic(EbtInt, qual, (yyvsp[(1) - (1)].lex).line);
- (yyval.interm.type).setAggregate(3);
+ (yyval.interm.type).setBasic(EbtBool, qual, (yyvsp[(1) - (1)].lex).line);
+ (yyval.interm.type).setAggregate(4);
}
break;
@@ -3814,13 +3823,31 @@
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
(yyval.interm.type).setBasic(EbtInt, qual, (yyvsp[(1) - (1)].lex).line);
- (yyval.interm.type).setAggregate(4);
+ (yyval.interm.type).setAggregate(2);
}
break;
case 129:
{
+ TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
+ (yyval.interm.type).setBasic(EbtInt, qual, (yyvsp[(1) - (1)].lex).line);
+ (yyval.interm.type).setAggregate(3);
+ }
+ break;
+
+ case 130:
+
+ {
+ TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
+ (yyval.interm.type).setBasic(EbtInt, qual, (yyvsp[(1) - (1)].lex).line);
+ (yyval.interm.type).setAggregate(4);
+ }
+ break;
+
+ case 131:
+
+ {
FRAG_VERT_ONLY("mat2", (yyvsp[(1) - (1)].lex).line);
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
(yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line);
@@ -3828,7 +3855,7 @@
}
break;
- case 130:
+ case 132:
{
FRAG_VERT_ONLY("mat3", (yyvsp[(1) - (1)].lex).line);
@@ -3838,7 +3865,7 @@
}
break;
- case 131:
+ case 133:
{
FRAG_VERT_ONLY("mat4", (yyvsp[(1) - (1)].lex).line);
@@ -3848,7 +3875,7 @@
}
break;
- case 132:
+ case 134:
{
FRAG_VERT_ONLY("sampler2D", (yyvsp[(1) - (1)].lex).line);
@@ -3857,7 +3884,7 @@
}
break;
- case 133:
+ case 135:
{
FRAG_VERT_ONLY("samplerCube", (yyvsp[(1) - (1)].lex).line);
@@ -3866,7 +3893,7 @@
}
break;
- case 134:
+ case 136:
{
if (!context->supportsExtension("GL_OES_EGL_image_external")) {
@@ -3879,7 +3906,7 @@
}
break;
- case 135:
+ case 137:
{
if (!context->supportsExtension("GL_ARB_texture_rectangle")) {
@@ -3892,7 +3919,7 @@
}
break;
- case 136:
+ case 138:
{
FRAG_VERT_ONLY("struct", (yyvsp[(1) - (1)].interm.type).line);
@@ -3901,7 +3928,7 @@
}
break;
- case 137:
+ case 139:
{
//
@@ -3915,12 +3942,12 @@
}
break;
- case 138:
+ case 140:
{ if (context->enterStructDeclaration((yyvsp[(2) - (3)].lex).line, *(yyvsp[(2) - (3)].lex).string)) context->recover(); }
break;
- case 139:
+ case 141:
{
if (context->reservedErrorCheck((yyvsp[(2) - (6)].lex).line, *(yyvsp[(2) - (6)].lex).string))
@@ -3938,12 +3965,12 @@
}
break;
- case 140:
+ case 142:
{ if (context->enterStructDeclaration((yyvsp[(2) - (2)].lex).line, *(yyvsp[(2) - (2)].lex).string)) context->recover(); }
break;
- case 141:
+ case 143:
{
TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString(""));
@@ -3953,14 +3980,14 @@
}
break;
- case 142:
+ case 144:
{
(yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList);
}
break;
- case 143:
+ case 145:
{
(yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList);
@@ -3976,7 +4003,7 @@
}
break;
- case 144:
+ case 146:
{
(yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList);
@@ -4013,7 +4040,7 @@
}
break;
- case 145:
+ case 147:
{
(yyval.interm.typeList) = NewPoolTTypeList();
@@ -4021,14 +4048,14 @@
}
break;
- case 146:
+ case 148:
{
(yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine));
}
break;
- case 147:
+ case 149:
{
if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string))
@@ -4040,7 +4067,7 @@
}
break;
- case 148:
+ case 150:
{
if (context->reservedErrorCheck((yyvsp[(1) - (4)].lex).line, *(yyvsp[(1) - (4)].lex).string))
@@ -4057,19 +4084,9 @@
}
break;
- case 149:
-
- { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
- break;
-
- case 150:
-
- { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
- break;
-
case 151:
- { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); }
+ { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
break;
case 152:
@@ -4079,7 +4096,7 @@
case 153:
- { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
+ { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); }
break;
case 154:
@@ -4104,21 +4121,31 @@
case 158:
- { (yyval.interm.intermAggregate) = 0; }
+ { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break;
case 159:
- { context->symbolTable.push(); }
+ { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break;
case 160:
- { context->symbolTable.pop(); }
+ { (yyval.interm.intermAggregate) = 0; }
break;
case 161:
+ { context->symbolTable.push(); }
+ break;
+
+ case 162:
+
+ { context->symbolTable.pop(); }
+ break;
+
+ case 163:
+
{
if ((yyvsp[(3) - (5)].interm.intermAggregate) != 0) {
(yyvsp[(3) - (5)].interm.intermAggregate)->setOp(EOpSequence);
@@ -4128,24 +4155,14 @@
}
break;
- case 162:
-
- { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
- break;
-
- case 163:
-
- { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
- break;
-
case 164:
- { context->symbolTable.push(); }
+ { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break;
case 165:
- { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); }
+ { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break;
case 166:
@@ -4160,12 +4177,22 @@
case 168:
+ { context->symbolTable.push(); }
+ break;
+
+ case 169:
+
+ { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); }
+ break;
+
+ case 170:
+
{
(yyval.interm.intermNode) = 0;
}
break;
- case 169:
+ case 171:
{
if ((yyvsp[(2) - (3)].interm.intermAggregate)) {
@@ -4176,31 +4203,31 @@
}
break;
- case 170:
+ case 172:
{
(yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode), 0);
}
break;
- case 171:
+ case 173:
{
(yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermAggregate), (yyvsp[(2) - (2)].interm.intermNode), 0);
}
break;
- case 172:
+ case 174:
{ (yyval.interm.intermNode) = 0; }
break;
- case 173:
+ case 175:
{ (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[(1) - (2)].interm.intermTypedNode)); }
break;
- case 174:
+ case 176:
{
if (context->boolErrorCheck((yyvsp[(1) - (5)].lex).line, (yyvsp[(3) - (5)].interm.intermTypedNode)))
@@ -4209,7 +4236,7 @@
}
break;
- case 175:
+ case 177:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode);
@@ -4217,7 +4244,7 @@
}
break;
- case 176:
+ case 178:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode);
@@ -4225,7 +4252,7 @@
}
break;
- case 177:
+ case 179:
{
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
@@ -4234,7 +4261,7 @@
}
break;
- case 178:
+ case 180:
{
TIntermNode* intermNode;
@@ -4252,12 +4279,12 @@
}
break;
- case 179:
+ case 181:
{ context->symbolTable.push(); ++context->loopNestingLevel; }
break;
- case 180:
+ case 182:
{
context->symbolTable.pop();
@@ -4266,12 +4293,12 @@
}
break;
- case 181:
+ case 183:
{ ++context->loopNestingLevel; }
break;
- case 182:
+ case 184:
{
if (context->boolErrorCheck((yyvsp[(8) - (8)].lex).line, (yyvsp[(6) - (8)].interm.intermTypedNode)))
@@ -4282,12 +4309,12 @@
}
break;
- case 183:
+ case 185:
{ context->symbolTable.push(); ++context->loopNestingLevel; }
break;
- case 184:
+ case 186:
{
context->symbolTable.pop();
@@ -4296,43 +4323,43 @@
}
break;
- case 185:
-
- {
- (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
- }
- break;
-
- case 186:
-
- {
- (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
- }
- break;
-
case 187:
{
- (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
+ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
}
break;
case 188:
{
- (yyval.interm.intermTypedNode) = 0;
+ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
}
break;
case 189:
{
+ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
+ }
+ break;
+
+ case 190:
+
+ {
+ (yyval.interm.intermTypedNode) = 0;
+ }
+ break;
+
+ case 191:
+
+ {
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = 0;
}
break;
- case 190:
+ case 192:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode);
@@ -4340,7 +4367,7 @@
}
break;
- case 191:
+ case 193:
{
if (context->loopNestingLevel <= 0) {
@@ -4351,7 +4378,7 @@
}
break;
- case 192:
+ case 194:
{
if (context->loopNestingLevel <= 0) {
@@ -4362,7 +4389,7 @@
}
break;
- case 193:
+ case 195:
{
(yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).line);
@@ -4373,7 +4400,7 @@
}
break;
- case 194:
+ case 196:
{
(yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).line);
@@ -4388,7 +4415,7 @@
}
break;
- case 195:
+ case 197:
{
FRAG_ONLY("discard", (yyvsp[(1) - (2)].lex).line);
@@ -4396,7 +4423,7 @@
}
break;
- case 196:
+ case 198:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
@@ -4404,7 +4431,7 @@
}
break;
- case 197:
+ case 199:
{
(yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode), 0);
@@ -4412,23 +4439,23 @@
}
break;
- case 198:
-
- {
- (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
- }
- break;
-
- case 199:
-
- {
- (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
- }
- break;
-
case 200:
{
+ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
+ }
+ break;
+
+ case 201:
+
+ {
+ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
+ }
+ break;
+
+ case 202:
+
+ {
TFunction* function = (yyvsp[(1) - (1)].interm).function;
const TSymbol *builtIn = context->symbolTable.findBuiltIn(function->getMangledName());
@@ -4515,7 +4542,7 @@
}
break;
- case 201:
+ case 203:
{
//?? Check that all paths return a value if return type != void ?
@@ -4546,6 +4573,17 @@
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -4573,6 +4611,10 @@
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -4580,37 +4622,36 @@
#if ! YYERROR_VERBOSE
yyerror (context, YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (context, yymsg);
- }
- else
- {
- yyerror (context, YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (context, yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
@@ -4669,7 +4710,7 @@
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -4728,8 +4769,13 @@
yyreturn:
if (yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval, context);
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval, context);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
diff --git a/src/compiler/glslang_tab.h b/src/compiler/glslang_tab.h
index 3e461ee..0c67257 100644
--- a/src/compiler/glslang_tab.h
+++ b/src/compiler/glslang_tab.h
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.2. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
- Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 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