Implemented interpolation qualifier parsing.

TRAC #22857 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2149 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent e229012c
// //
// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. // Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
...@@ -113,6 +113,16 @@ enum TQualifier ...@@ -113,6 +113,16 @@ enum TQualifier
EvqFragColor, EvqFragColor,
EvqFragData, EvqFragData,
// GLSL ES 3.0 vertex output and fragment input
EvqSmooth, // Incomplete qualifier, smooth is the default
EvqFlat, // Incomplete qualifier
EvqSmoothOut = EvqSmooth,
EvqFlatOut = EvqFlat,
EvqCentroidOut, // Implies smooth
EvqSmoothIn,
EvqFlatIn,
EvqCentroidIn, // Implies smooth
// end of list // end of list
EvqLast EvqLast
}; };
...@@ -144,9 +154,29 @@ inline const char* getQualifierString(TQualifier q) ...@@ -144,9 +154,29 @@ inline const char* getQualifierString(TQualifier q)
case EvqFragCoord: return "FragCoord"; break; case EvqFragCoord: return "FragCoord"; break;
case EvqFrontFacing: return "FrontFacing"; break; case EvqFrontFacing: return "FrontFacing"; break;
case EvqFragColor: return "FragColor"; break; case EvqFragColor: return "FragColor"; break;
case EvqFragData: return "FragData"; break; case EvqFragData: return "FragData"; break;
case EvqSmoothOut: return "smooth out"; break;
case EvqCentroidOut: return "centroid out"; break;
case EvqFlatOut: return "flat out"; break;
case EvqSmoothIn: return "smooth in"; break;
case EvqCentroidIn: return "centroid in"; break;
case EvqFlatIn: return "flat in"; break;
default: return "unknown qualifier"; default: return "unknown qualifier";
} }
} }
inline const char* getInterpolationString(TQualifier q)
{
switch(q)
{
case EvqSmoothOut: return "smooth"; break;
case EvqCentroidOut: return "centroid"; break;
case EvqFlatOut: return "flat"; break;
case EvqSmoothIn: return "smooth"; break;
case EvqCentroidIn: return "centroid"; break;
case EvqFlatIn: return "flat"; break;
default: return "unknown interpolation";
}
}
#endif // _BASICTYPES_INCLUDED_ #endif // _BASICTYPES_INCLUDED_
...@@ -1150,7 +1150,7 @@ void OutputHLSL::visitSymbol(TIntermSymbol *node) ...@@ -1150,7 +1150,7 @@ void OutputHLSL::visitSymbol(TIntermSymbol *node)
mReferencedAttributes[name] = node; mReferencedAttributes[name] = node;
out << decorate(name); out << decorate(name);
} }
else if (qualifier == EvqVaryingOut || qualifier == EvqInvariantVaryingOut || qualifier == EvqVaryingIn || qualifier == EvqInvariantVaryingIn) else if (isVarying(qualifier))
{ {
mReferencedVaryings[name] = node; mReferencedVaryings[name] = node;
out << decorate(name); out << decorate(name);
...@@ -1644,7 +1644,7 @@ bool OutputHLSL::visitAggregate(Visit visit, TIntermAggregate *node) ...@@ -1644,7 +1644,7 @@ bool OutputHLSL::visitAggregate(Visit visit, TIntermAggregate *node)
} }
else UNREACHABLE(); else UNREACHABLE();
} }
else if (variable && (variable->getQualifier() == EvqVaryingOut || variable->getQualifier() == EvqInvariantVaryingOut)) else if (variable && isVaryingOut(variable->getQualifier()))
{ {
for (TIntermSequence::iterator sit = sequence.begin(); sit != sequence.end(); sit++) for (TIntermSequence::iterator sit = sequence.begin(); sit != sequence.end(); sit++)
{ {
...@@ -3221,4 +3221,39 @@ GLenum OutputHLSL::glVariablePrecision(const TType &type) ...@@ -3221,4 +3221,39 @@ GLenum OutputHLSL::glVariablePrecision(const TType &type)
return GL_NONE; return GL_NONE;
} }
bool OutputHLSL::isVaryingOut(TQualifier qualifier)
{
switch(qualifier)
{
case EvqVaryingOut:
case EvqInvariantVaryingOut:
case EvqSmoothOut:
case EvqFlatOut:
case EvqCentroidOut:
return true;
}
return false;
}
bool OutputHLSL::isVaryingIn(TQualifier qualifier)
{
switch(qualifier)
{
case EvqVaryingIn:
case EvqInvariantVaryingIn:
case EvqSmoothIn:
case EvqFlatIn:
case EvqCentroidIn:
return true;
}
return false;
}
bool OutputHLSL::isVarying(TQualifier qualifier)
{
return isVaryingIn(qualifier) || isVaryingOut(qualifier);
}
} }
...@@ -168,8 +168,12 @@ class OutputHLSL : public TIntermTraverser ...@@ -168,8 +168,12 @@ class OutputHLSL : public TIntermTraverser
int samplerRegister(TIntermSymbol *sampler); int samplerRegister(TIntermSymbol *sampler);
int uniformRegister(TIntermSymbol *uniform); int uniformRegister(TIntermSymbol *uniform);
void declareUniform(const TType &type, const TString &name, int index); void declareUniform(const TType &type, const TString &name, int index);
static GLenum glVariableType(const TType &type); static GLenum glVariableType(const TType &type);
static GLenum glVariablePrecision(const TType &type); static GLenum glVariablePrecision(const TType &type);
static bool isVaryingIn(TQualifier qualifier);
static bool isVaryingOut(TQualifier qualifier);
static bool isVarying(TQualifier qualifier);
ActiveUniforms mActiveUniforms; ActiveUniforms mActiveUniforms;
}; };
......
// //
// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. // Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// //
...@@ -277,7 +277,7 @@ protected: ...@@ -277,7 +277,7 @@ protected:
void computeDeepestStructNesting(); void computeDeepestStructNesting();
TBasicType type : 6; TBasicType type : 6;
TPrecision precision; TPrecision precision : 4;
TQualifier qualifier : 7; TQualifier qualifier : 7;
int size : 8; // size of vector or matrix, not size of array int size : 8; // size of vector or matrix, not size of array
unsigned int matrix : 1; unsigned int matrix : 1;
......
...@@ -167,7 +167,7 @@ extern void yyerror(TParseContext* context, const char* reason); ...@@ -167,7 +167,7 @@ extern void yyerror(TParseContext* context, const char* reason);
%type <interm.qualifier> parameter_qualifier parameter_type_qualifier %type <interm.qualifier> parameter_qualifier parameter_type_qualifier
%type <interm.precision> precision_qualifier %type <interm.precision> precision_qualifier
%type <interm.type> type_qualifier fully_specified_type type_specifier storage_qualifier %type <interm.type> type_qualifier fully_specified_type type_specifier storage_qualifier interpolation_qualifier
%type <interm.type> type_specifier_no_prec type_specifier_nonarray %type <interm.type> type_specifier_no_prec type_specifier_nonarray
%type <interm.type> struct_specifier %type <interm.type> struct_specifier
%type <interm.typeLine> struct_declarator %type <interm.typeLine> struct_declarator
...@@ -1502,6 +1502,17 @@ fully_specified_type ...@@ -1502,6 +1502,17 @@ fully_specified_type
} }
; ;
interpolation_qualifier
: SMOOTH {
$$.qualifier = EvqSmooth;
$$.line = $1.line;
}
| FLAT {
$$.qualifier = EvqFlat;
$$.line = $1.line;
}
;
parameter_type_qualifier parameter_type_qualifier
: CONST_QUAL { : CONST_QUAL {
$$ = EvqConst; $$ = EvqConst;
...@@ -1511,13 +1522,13 @@ parameter_type_qualifier ...@@ -1511,13 +1522,13 @@ parameter_type_qualifier
type_qualifier type_qualifier
: ATTRIBUTE { : ATTRIBUTE {
VERTEX_ONLY("attribute", $1.line); VERTEX_ONLY("attribute", $1.line);
ES2_ONLY("attribute", $1.line); ES2_ONLY("attribute", $1.line);
if (context->globalErrorCheck($1.line, context->symbolTable.atGlobalLevel(), "attribute")) if (context->globalErrorCheck($1.line, context->symbolTable.atGlobalLevel(), "attribute"))
context->recover(); context->recover();
$$.setBasic(EbtVoid, EvqAttribute, $1.line); $$.setBasic(EbtVoid, EvqAttribute, $1.line);
} }
| VARYING { | VARYING {
ES2_ONLY("varying", $1.line); ES2_ONLY("varying", $1.line);
if (context->globalErrorCheck($1.line, context->symbolTable.atGlobalLevel(), "varying")) if (context->globalErrorCheck($1.line, context->symbolTable.atGlobalLevel(), "varying"))
context->recover(); context->recover();
if (context->shaderType == SH_VERTEX_SHADER) if (context->shaderType == SH_VERTEX_SHADER)
...@@ -1526,7 +1537,7 @@ type_qualifier ...@@ -1526,7 +1537,7 @@ type_qualifier
$$.setBasic(EbtVoid, EvqVaryingIn, $1.line); $$.setBasic(EbtVoid, EvqVaryingIn, $1.line);
} }
| INVARIANT VARYING { | INVARIANT VARYING {
ES2_ONLY("varying", $1.line); ES2_ONLY("varying", $1.line);
if (context->globalErrorCheck($1.line, context->symbolTable.atGlobalLevel(), "invariant varying")) if (context->globalErrorCheck($1.line, context->symbolTable.atGlobalLevel(), "invariant varying"))
context->recover(); context->recover();
if (context->shaderType == SH_VERTEX_SHADER) if (context->shaderType == SH_VERTEX_SHADER)
...@@ -1534,43 +1545,84 @@ type_qualifier ...@@ -1534,43 +1545,84 @@ type_qualifier
else else
$$.setBasic(EbtVoid, EvqInvariantVaryingIn, $1.line); $$.setBasic(EbtVoid, EvqInvariantVaryingIn, $1.line);
} }
| storage_qualifier { | storage_qualifier {
$$.setBasic(EbtVoid, $1.qualifier, $1.line); $$.setBasic(EbtVoid, $1.qualifier, $1.line);
} }
| interpolation_qualifier storage_qualifier {
if ($2.qualifier == EvqSmoothIn) {
if ($1.qualifier == EvqSmooth)
$$.setBasic(EbtVoid, EvqSmoothIn, $2.line);
else if ($1.qualifier == EvqFlat)
$$.setBasic(EbtVoid, EvqFlatIn, $2.line);
else UNREACHABLE();
}
else if ($2.qualifier == EvqCentroidIn) {
if ($1.qualifier == EvqSmooth)
$$.setBasic(EbtVoid, EvqCentroidIn, $2.line);
else if ($1.qualifier == EvqFlat)
$$.setBasic(EbtVoid, EvqFlatIn, $2.line);
else UNREACHABLE();
}
else if ($2.qualifier == EvqSmoothOut) {
if ($1.qualifier == EvqSmooth)
$$.setBasic(EbtVoid, EvqSmoothOut, $2.line);
else if ($1.qualifier == EvqFlat)
$$.setBasic(EbtVoid, EvqFlatOut, $2.line);
else UNREACHABLE();
}
else if ($2.qualifier == EvqCentroidOut) {
if ($1.qualifier == EvqSmooth)
$$.setBasic(EbtVoid, EvqCentroidOut, $2.line);
else if ($1.qualifier == EvqFlat)
$$.setBasic(EbtVoid, EvqFlatOut, $2.line);
else UNREACHABLE();
}
else {
context->error($1.line, "interpolation qualifier requires a fragment 'in' or vertex 'out' storage qualifier", getInterpolationString($1.qualifier));
context->recover();
$$.setBasic(EbtVoid, $2.qualifier, $2.line);
}
}
| interpolation_qualifier {
context->error($1.line, "interpolation qualifier requires a fragment 'in' or vertex 'out' storage qualifier", getInterpolationString($1.qualifier));
context->recover();
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtVoid, qual, $1.line);
}
; ;
storage_qualifier storage_qualifier
: CONST_QUAL { : CONST_QUAL {
$$.qualifier = EvqConst; $$.qualifier = EvqConst;
$$.line = $1.line; $$.line = $1.line;
} }
| IN_QUAL { | IN_QUAL {
ES3_ONLY("in", $1.line); ES3_ONLY("in", $1.line);
$$.qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqVaryingIn : EvqAttribute; $$.qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqSmoothIn : EvqAttribute;
$$.line = $1.line; $$.line = $1.line;
} }
| OUT_QUAL { | OUT_QUAL {
ES3_ONLY("out", $1.line); ES3_ONLY("out", $1.line);
$$.qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragColor : EvqVaryingOut; $$.qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragColor : EvqSmoothOut;
$$.line = $1.line; $$.line = $1.line;
} }
| CENTROID IN_QUAL { | CENTROID IN_QUAL {
ES3_ONLY("in", $1.line); ES3_ONLY("centroid in", $1.line);
// FIXME: Handle centroid qualifier $$.qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqCentroidIn : EvqAttribute;
$$.qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqVaryingIn : EvqAttribute; $$.line = $1.line;
$$.line = $2.line; }
} | CENTROID OUT_QUAL {
| CENTROID OUT_QUAL { ES3_ONLY("centroid out", $1.line);
ES3_ONLY("out", $1.line); $$.qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragColor : EvqCentroidOut;
// FIXME: Handle centroid qualifier $$.line = $1.line;
$$.qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragColor : EvqVaryingOut; }
$$.line = $2.line; | UNIFORM {
}
| UNIFORM {
if (context->globalErrorCheck($1.line, context->symbolTable.atGlobalLevel(), "uniform")) if (context->globalErrorCheck($1.line, context->symbolTable.atGlobalLevel(), "uniform"))
context->recover(); context->recover();
$$.qualifier = EvqUniform; $$.qualifier = EvqUniform;
$$.line = $1.line; $$.line = $1.line;
} }
; ;
......
...@@ -529,18 +529,18 @@ union yyalloc ...@@ -529,18 +529,18 @@ union yyalloc
#endif #endif
/* YYFINAL -- State number of the termination state. */ /* YYFINAL -- State number of the termination state. */
#define YYFINAL 77 #define YYFINAL 81
/* YYLAST -- Last index in YYTABLE. */ /* YYLAST -- Last index in YYTABLE. */
#define YYLAST 1546 #define YYLAST 1551
/* YYNTOKENS -- Number of terminals. */ /* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 105 #define YYNTOKENS 105
/* YYNNTS -- Number of nonterminals. */ /* YYNNTS -- Number of nonterminals. */
#define YYNNTS 85 #define YYNNTS 86
/* YYNRULES -- Number of rules. */ /* YYNRULES -- Number of rules. */
#define YYNRULES 207 #define YYNRULES 211
/* YYNRULES -- Number of states. */ /* YYNRULES -- Number of states. */
#define YYNSTATES 311 #define YYNSTATES 315
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2 #define YYUNDEFTOK 2
...@@ -605,29 +605,30 @@ static const yytype_uint16 yyprhs[] = ...@@ -605,29 +605,30 @@ static const yytype_uint16 yyprhs[] =
194, 196, 199, 202, 207, 210, 212, 214, 217, 221, 194, 196, 199, 202, 207, 210, 212, 214, 217, 221,
225, 228, 234, 238, 241, 245, 248, 249, 251, 253, 225, 228, 234, 238, 241, 245, 248, 249, 251, 253,
255, 257, 259, 263, 269, 276, 282, 284, 287, 292, 255, 257, 259, 263, 269, 276, 282, 284, 287, 292,
298, 303, 306, 308, 311, 313, 315, 317, 320, 322, 298, 303, 306, 308, 311, 313, 315, 317, 319, 321,
324, 326, 328, 331, 334, 336, 338, 341, 343, 345, 324, 326, 329, 331, 333, 335, 337, 340, 343, 345,
347, 349, 354, 356, 358, 360, 362, 364, 366, 368, 347, 350, 352, 354, 356, 358, 363, 365, 367, 369,
370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 371, 373, 375, 377, 379, 381, 383, 385, 387, 389,
390, 392, 394, 396, 398, 399, 406, 407, 413, 415, 391, 393, 395, 397, 399, 401, 403, 405, 407, 408,
418, 422, 424, 428, 430, 435, 437, 439, 441, 443, 415, 416, 422, 424, 427, 431, 433, 437, 439, 444,
445, 447, 449, 451, 453, 456, 457, 458, 464, 466, 446, 448, 450, 452, 454, 456, 458, 460, 462, 465,
468, 469, 472, 473, 476, 479, 483, 485, 488, 490, 466, 467, 473, 475, 477, 478, 481, 482, 485, 488,
493, 499, 503, 505, 507, 512, 513, 520, 521, 530, 492, 494, 497, 499, 502, 508, 512, 514, 516, 521,
531, 539, 541, 543, 545, 546, 549, 553, 556, 559, 522, 529, 530, 539, 540, 548, 550, 552, 554, 555,
562, 566, 569, 571, 574, 576, 578, 579 558, 562, 565, 568, 571, 575, 578, 580, 583, 585,
587, 588
}; };
/* YYRHS -- A `-1'-separated list of the rules' RHS. */ /* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] = static const yytype_int16 yyrhs[] =
{ {
186, 0, -1, 54, -1, 106, -1, 57, -1, 56, 187, 0, -1, 54, -1, 106, -1, 57, -1, 56,
-1, 58, -1, 81, 133, 82, -1, 107, -1, 108, -1, 58, -1, 81, 133, 82, -1, 107, -1, 108,
83, 109, 84, -1, 110, -1, 108, 87, 59, -1, 83, 109, 84, -1, 110, -1, 108, 87, 59, -1,
108, 62, -1, 108, 63, -1, 133, -1, 111, -1, 108, 62, -1, 108, 63, -1, 133, -1, 111, -1,
112, -1, 108, 87, 112, -1, 114, 82, -1, 113, 112, -1, 108, 87, 112, -1, 114, 82, -1, 113,
82, -1, 115, 45, -1, 115, -1, 115, 131, -1, 82, -1, 115, 45, -1, 115, -1, 115, 131, -1,
114, 88, 131, -1, 116, 81, -1, 153, -1, 54, 114, 88, 131, -1, 116, 81, -1, 154, -1, 54,
-1, 59, -1, 108, -1, 62, 117, -1, 63, 117, -1, 59, -1, 108, -1, 62, 117, -1, 63, 117,
-1, 118, 117, -1, 95, -1, 93, -1, 92, -1, -1, 118, 117, -1, 95, -1, 93, -1, 92, -1,
117, -1, 119, 96, 117, -1, 119, 97, 117, -1, 117, -1, 119, 96, 117, -1, 119, 97, 117, -1,
...@@ -641,45 +642,46 @@ static const yytype_int16 yyrhs[] = ...@@ -641,45 +642,46 @@ static const yytype_int16 yyrhs[] =
131, -1, 130, -1, 117, 132, 131, -1, 90, -1, 131, -1, 130, -1, 117, 132, 131, -1, 90, -1,
71, -1, 72, -1, 73, -1, 80, -1, 131, -1, 71, -1, 72, -1, 73, -1, 80, -1, 131, -1,
133, 88, 131, -1, 130, -1, 136, 91, -1, 144, 133, 88, 131, -1, 130, -1, 136, 91, -1, 144,
91, -1, 7, 151, 152, 91, -1, 137, 82, -1, 91, -1, 7, 152, 153, 91, -1, 137, 82, -1,
139, -1, 138, -1, 139, 141, -1, 138, 88, 141, 139, -1, 138, -1, 139, 141, -1, 138, 88, 141,
-1, 146, 54, 81, -1, 150, 54, -1, 150, 54, -1, 146, 54, 81, -1, 151, 54, -1, 151, 54,
83, 134, 84, -1, 147, 142, 140, -1, 142, 140, 83, 134, 84, -1, 148, 142, 140, -1, 142, 140,
-1, 147, 142, 143, -1, 142, 143, -1, -1, 36, -1, 148, 142, 143, -1, 142, 143, -1, -1, 36,
-1, 37, -1, 38, -1, 150, -1, 145, -1, 144, -1, 37, -1, 38, -1, 151, -1, 145, -1, 144,
88, 54, -1, 144, 88, 54, 83, 84, -1, 144, 88, 54, -1, 144, 88, 54, 83, 84, -1, 144,
88, 54, 83, 134, 84, -1, 144, 88, 54, 90, 88, 54, 83, 134, 84, -1, 144, 88, 54, 90,
161, -1, 146, -1, 146, 54, -1, 146, 54, 83, 162, -1, 146, -1, 146, 54, -1, 146, 54, 83,
84, -1, 146, 54, 83, 134, 84, -1, 146, 54, 84, -1, 146, 54, 83, 134, 84, -1, 146, 54,
90, 161, -1, 3, 54, -1, 150, -1, 148, 150, 90, 162, -1, 3, 54, -1, 151, -1, 149, 151,
-1, 9, -1, 8, -1, 40, -1, 3, 40, -1, -1, 43, -1, 42, -1, 9, -1, 8, -1, 40,
149, -1, 9, -1, 36, -1, 37, -1, 41, 36, -1, 3, 40, -1, 150, -1, 147, 150, -1, 147,
-1, 41, 37, -1, 39, -1, 152, -1, 151, 152, -1, 9, -1, 36, -1, 37, -1, 41, 36, -1,
-1, 4, -1, 5, -1, 6, -1, 153, -1, 153, 41, 37, -1, 39, -1, 153, -1, 152, 153, -1,
83, 134, 84, -1, 45, -1, 11, -1, 12, -1, 4, -1, 5, -1, 6, -1, 154, -1, 154, 83,
10, -1, 30, -1, 31, -1, 32, -1, 24, -1, 134, 84, -1, 45, -1, 11, -1, 12, -1, 10,
25, -1, 26, -1, 27, -1, 28, -1, 29, -1, -1, 30, -1, 31, -1, 32, -1, 24, -1, 25,
33, -1, 34, -1, 35, -1, 47, -1, 48, -1, -1, 26, -1, 27, -1, 28, -1, 29, -1, 33,
49, -1, 50, -1, 154, -1, 55, -1, -1, 44, -1, 34, -1, 35, -1, 47, -1, 48, -1, 49,
54, 85, 155, 157, 86, -1, -1, 44, 85, 156, -1, 50, -1, 155, -1, 55, -1, -1, 44, 54,
157, 86, -1, 158, -1, 157, 158, -1, 150, 159, 85, 156, 158, 86, -1, -1, 44, 85, 157, 158,
91, -1, 160, -1, 159, 88, 160, -1, 54, -1, 86, -1, 159, -1, 158, 159, -1, 151, 160, 91,
54, 83, 134, 84, -1, 131, -1, 135, -1, 165, -1, 161, -1, 160, 88, 161, -1, 54, -1, 54,
-1, 164, -1, 162, -1, 174, -1, 175, -1, 178, 83, 134, 84, -1, 131, -1, 135, -1, 166, -1,
-1, 185, -1, 85, 86, -1, -1, -1, 85, 166, 165, -1, 163, -1, 175, -1, 176, -1, 179, -1,
173, 167, 86, -1, 172, -1, 164, -1, -1, 170, 186, -1, 85, 86, -1, -1, -1, 85, 167, 174,
172, -1, -1, 171, 164, -1, 85, 86, -1, 85, 168, 86, -1, 173, -1, 165, -1, -1, 171, 173,
173, 86, -1, 163, -1, 173, 163, -1, 91, -1, -1, -1, 172, 165, -1, 85, 86, -1, 85, 174,
133, 91, -1, 18, 81, 133, 82, 176, -1, 169, 86, -1, 164, -1, 174, 164, -1, 91, -1, 133,
16, 169, -1, 169, -1, 133, -1, 146, 54, 90, 91, -1, 18, 81, 133, 82, 177, -1, 170, 16,
161, -1, -1, 46, 81, 179, 177, 82, 168, -1, 170, -1, 170, -1, 133, -1, 146, 54, 90, 162,
-1, 15, 180, 169, 46, 81, 133, 82, 91, -1, -1, -1, 46, 81, 180, 178, 82, 169, -1, -1,
-1, 17, 81, 181, 182, 184, 82, 168, -1, 174, 15, 181, 170, 46, 81, 133, 82, 91, -1, -1,
-1, 162, -1, 177, -1, -1, 183, 91, -1, 183, 17, 81, 182, 183, 185, 82, 169, -1, 175, -1,
91, 133, -1, 14, 91, -1, 13, 91, -1, 20, 163, -1, 178, -1, -1, 184, 91, -1, 184, 91,
91, -1, 20, 133, 91, -1, 19, 91, -1, 187, 133, -1, 14, 91, -1, 13, 91, -1, 20, 91,
-1, 186, 187, -1, 188, -1, 135, -1, -1, 136, -1, 20, 133, 91, -1, 19, 91, -1, 188, -1,
189, 172, -1 187, 188, -1, 189, -1, 135, -1, -1, 136, 190,
173, -1
}; };
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
...@@ -695,17 +697,18 @@ static const yytype_uint16 yyrline[] = ...@@ -695,17 +697,18 @@ static const yytype_uint16 yyrline[] =
969, 977, 1004, 1009, 1023, 1061, 1064, 1071, 1079, 1100, 969, 977, 1004, 1009, 1023, 1061, 1064, 1071, 1079, 1100,
1121, 1132, 1161, 1166, 1176, 1181, 1191, 1194, 1197, 1200, 1121, 1132, 1161, 1166, 1176, 1181, 1191, 1194, 1197, 1200,
1206, 1213, 1216, 1238, 1256, 1280, 1303, 1307, 1325, 1333, 1206, 1213, 1216, 1238, 1256, 1280, 1303, 1307, 1325, 1333,
1365, 1385, 1474, 1483, 1506, 1512, 1519, 1528, 1537, 1543, 1365, 1385, 1474, 1483, 1506, 1510, 1517, 1523, 1530, 1539,
1547, 1552, 1557, 1563, 1569, 1578, 1588, 1595, 1598, 1601, 1548, 1551, 1587, 1597, 1601, 1606, 1611, 1616, 1621, 1630,
1607, 1610, 1625, 1629, 1633, 1637, 1646, 1651, 1656, 1661, 1640, 1647, 1650, 1653, 1659, 1662, 1677, 1681, 1685, 1689,
1666, 1671, 1676, 1681, 1686, 1691, 1697, 1703, 1709, 1714, 1698, 1703, 1708, 1713, 1718, 1723, 1728, 1733, 1738, 1743,
1719, 1728, 1737, 1742, 1755, 1755, 1769, 1769, 1778, 1781, 1749, 1755, 1761, 1766, 1771, 1780, 1789, 1794, 1807, 1807,
1796, 1832, 1836, 1842, 1850, 1866, 1870, 1874, 1875, 1881, 1821, 1821, 1830, 1833, 1848, 1884, 1888, 1894, 1902, 1918,
1882, 1883, 1884, 1885, 1889, 1890, 1890, 1890, 1900, 1901, 1922, 1926, 1927, 1933, 1934, 1935, 1936, 1937, 1941, 1942,
1905, 1905, 1906, 1906, 1911, 1914, 1924, 1927, 1933, 1934, 1942, 1942, 1952, 1953, 1957, 1957, 1958, 1958, 1963, 1966,
1938, 1946, 1950, 1960, 1965, 1982, 1982, 1987, 1987, 1994, 1976, 1979, 1985, 1986, 1990, 1998, 2002, 2012, 2017, 2034,
1994, 2002, 2005, 2011, 2014, 2020, 2024, 2031, 2038, 2045, 2034, 2039, 2039, 2046, 2046, 2054, 2057, 2063, 2066, 2072,
2052, 2063, 2072, 2076, 2083, 2086, 2092, 2092 2076, 2083, 2090, 2097, 2104, 2115, 2124, 2128, 2135, 2138,
2144, 2144
}; };
#endif #endif
...@@ -749,10 +752,10 @@ static const char *const yytname[] = ...@@ -749,10 +752,10 @@ static const char *const yytname[] =
"function_header", "parameter_declarator", "parameter_declaration", "function_header", "parameter_declarator", "parameter_declaration",
"parameter_qualifier", "parameter_type_specifier", "parameter_qualifier", "parameter_type_specifier",
"init_declarator_list", "single_declaration", "fully_specified_type", "init_declarator_list", "single_declaration", "fully_specified_type",
"parameter_type_qualifier", "type_qualifier", "storage_qualifier", "interpolation_qualifier", "parameter_type_qualifier", "type_qualifier",
"type_specifier", "precision_qualifier", "type_specifier_no_prec", "storage_qualifier", "type_specifier", "precision_qualifier",
"type_specifier_nonarray", "struct_specifier", "$@1", "$@2", "type_specifier_no_prec", "type_specifier_nonarray", "struct_specifier",
"struct_declaration_list", "struct_declaration", "$@1", "$@2", "struct_declaration_list", "struct_declaration",
"struct_declarator_list", "struct_declarator", "initializer", "struct_declarator_list", "struct_declarator", "initializer",
"declaration_statement", "statement", "simple_statement", "declaration_statement", "statement", "simple_statement",
"compound_statement", "$@3", "$@4", "statement_no_new_scope", "compound_statement", "$@3", "$@4", "statement_no_new_scope",
...@@ -797,17 +800,18 @@ static const yytype_uint8 yyr1[] = ...@@ -797,17 +800,18 @@ static const yytype_uint8 yyr1[] =
134, 135, 135, 135, 136, 137, 137, 138, 138, 139, 134, 135, 135, 135, 136, 137, 137, 138, 138, 139,
140, 140, 141, 141, 141, 141, 142, 142, 142, 142, 140, 140, 141, 141, 141, 141, 142, 142, 142, 142,
143, 144, 144, 144, 144, 144, 145, 145, 145, 145, 143, 144, 144, 144, 144, 144, 145, 145, 145, 145,
145, 145, 146, 146, 147, 148, 148, 148, 148, 149, 145, 145, 146, 146, 147, 147, 148, 149, 149, 149,
149, 149, 149, 149, 149, 150, 150, 151, 151, 151, 149, 149, 149, 150, 150, 150, 150, 150, 150, 151,
152, 152, 153, 153, 153, 153, 153, 153, 153, 153, 151, 152, 152, 152, 153, 153, 154, 154, 154, 154,
153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
153, 153, 153, 153, 155, 154, 156, 154, 157, 157, 154, 154, 154, 154, 154, 154, 154, 154, 156, 155,
158, 159, 159, 160, 160, 161, 162, 163, 163, 164, 157, 155, 158, 158, 159, 160, 160, 161, 161, 162,
164, 164, 164, 164, 165, 166, 167, 165, 168, 168, 163, 164, 164, 165, 165, 165, 165, 165, 166, 167,
170, 169, 171, 169, 172, 172, 173, 173, 174, 174, 168, 166, 169, 169, 171, 170, 172, 170, 173, 173,
175, 176, 176, 177, 177, 179, 178, 180, 178, 181, 174, 174, 175, 175, 176, 177, 177, 178, 178, 180,
178, 182, 182, 183, 183, 184, 184, 185, 185, 185, 179, 181, 179, 182, 179, 183, 183, 184, 184, 185,
185, 185, 186, 186, 187, 187, 189, 188 185, 186, 186, 186, 186, 186, 187, 187, 188, 188,
190, 189
}; };
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
...@@ -823,17 +827,18 @@ static const yytype_uint8 yyr2[] = ...@@ -823,17 +827,18 @@ static const yytype_uint8 yyr2[] =
1, 2, 2, 4, 2, 1, 1, 2, 3, 3, 1, 2, 2, 4, 2, 1, 1, 2, 3, 3,
2, 5, 3, 2, 3, 2, 0, 1, 1, 1, 2, 5, 3, 2, 3, 2, 0, 1, 1, 1,
1, 1, 3, 5, 6, 5, 1, 2, 4, 5, 1, 1, 3, 5, 6, 5, 1, 2, 4, 5,
4, 2, 1, 2, 1, 1, 1, 2, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 2,
1, 1, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1,
1, 4, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1,
1, 1, 1, 1, 0, 6, 0, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 6,
3, 1, 3, 1, 4, 1, 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 3, 1, 4, 1,
1, 1, 1, 1, 2, 0, 0, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
0, 2, 0, 2, 2, 3, 1, 2, 1, 2, 0, 5, 1, 1, 0, 2, 0, 2, 2, 3,
5, 3, 1, 1, 4, 0, 6, 0, 8, 0, 1, 2, 1, 2, 5, 3, 1, 1, 4, 0,
7, 1, 1, 1, 0, 2, 3, 2, 2, 2, 6, 0, 8, 0, 7, 1, 1, 1, 0, 2,
3, 2, 1, 2, 1, 1, 0, 3 3, 2, 2, 2, 3, 2, 1, 2, 1, 1,
0, 3
}; };
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
...@@ -841,428 +846,430 @@ static const yytype_uint8 yyr2[] = ...@@ -841,428 +846,430 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */ means the default is an error. */
static const yytype_uint8 yydefact[] = static const yytype_uint8 yydefact[] =
{ {
0, 0, 117, 118, 119, 0, 105, 109, 125, 123, 0, 0, 121, 122, 123, 0, 107, 113, 129, 127,
124, 129, 130, 131, 132, 133, 134, 126, 127, 128, 128, 133, 134, 135, 136, 137, 138, 130, 131, 132,
135, 136, 137, 110, 111, 114, 106, 0, 0, 122, 139, 140, 141, 114, 115, 118, 108, 0, 105, 104,
138, 139, 140, 141, 143, 205, 206, 0, 76, 86, 0, 126, 142, 143, 144, 145, 147, 209, 210, 0,
0, 91, 96, 0, 108, 102, 0, 115, 120, 142, 76, 86, 0, 91, 96, 112, 0, 110, 102, 0,
0, 202, 204, 107, 101, 0, 112, 113, 0, 146, 119, 124, 146, 0, 206, 208, 109, 101, 0, 116,
71, 0, 74, 86, 104, 87, 88, 89, 77, 0, 117, 0, 150, 71, 0, 74, 86, 106, 87, 88,
86, 0, 72, 97, 103, 116, 0, 1, 203, 0, 89, 77, 0, 86, 0, 72, 97, 111, 103, 120,
144, 0, 0, 207, 78, 83, 85, 90, 0, 92, 0, 1, 207, 0, 148, 0, 0, 211, 78, 83,
79, 0, 0, 2, 5, 4, 6, 27, 0, 0, 85, 90, 0, 92, 79, 0, 0, 2, 5, 4,
0, 34, 33, 32, 3, 8, 28, 10, 15, 16, 6, 27, 0, 0, 0, 34, 33, 32, 3, 8,
0, 0, 21, 0, 35, 0, 38, 41, 42, 47, 28, 10, 15, 16, 0, 0, 21, 0, 35, 0,
50, 51, 52, 53, 55, 57, 59, 70, 0, 25, 38, 41, 42, 47, 50, 51, 52, 53, 55, 57,
73, 0, 0, 0, 148, 0, 0, 187, 0, 0, 59, 70, 0, 25, 73, 0, 0, 0, 152, 0,
0, 0, 0, 165, 174, 178, 35, 61, 68, 0, 0, 191, 0, 0, 0, 0, 0, 169, 178, 182,
156, 0, 120, 159, 176, 158, 157, 0, 160, 161, 35, 61, 68, 0, 160, 0, 124, 163, 180, 162,
162, 163, 80, 82, 84, 0, 0, 98, 0, 155, 161, 0, 164, 165, 166, 167, 80, 82, 84, 0,
100, 29, 30, 0, 12, 13, 0, 0, 19, 18, 0, 98, 0, 159, 100, 29, 30, 0, 12, 13,
0, 20, 22, 24, 31, 0, 0, 0, 0, 0, 0, 0, 19, 18, 0, 20, 22, 24, 31, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 153, 0, 151, 147, 149, 198, 197, 172, 189, 0, 0, 0, 125, 0, 157, 0, 155, 151, 153,
0, 201, 199, 0, 185, 164, 0, 64, 65, 66, 202, 201, 176, 193, 0, 205, 203, 0, 189, 168,
67, 63, 0, 0, 179, 175, 177, 0, 93, 0, 0, 64, 65, 66, 67, 63, 0, 0, 183, 179,
95, 99, 7, 0, 14, 26, 11, 17, 23, 36, 181, 0, 93, 0, 95, 99, 7, 0, 14, 26,
37, 40, 39, 45, 46, 43, 44, 48, 49, 54, 11, 17, 23, 36, 37, 40, 39, 45, 46, 43,
56, 58, 0, 145, 0, 0, 150, 0, 0, 0, 44, 48, 49, 54, 56, 58, 0, 149, 0, 0,
0, 0, 200, 0, 166, 62, 69, 0, 94, 9, 154, 0, 0, 0, 0, 0, 204, 0, 170, 62,
0, 0, 152, 0, 171, 173, 192, 191, 194, 172, 69, 0, 94, 9, 0, 0, 156, 0, 175, 177,
0, 183, 0, 0, 0, 81, 60, 154, 0, 193, 196, 195, 198, 176, 0, 187, 0, 0, 0, 81,
0, 0, 182, 180, 0, 0, 167, 0, 195, 0, 60, 158, 0, 197, 0, 0, 186, 184, 0, 0,
172, 0, 169, 186, 168, 0, 196, 190, 181, 184, 171, 0, 199, 0, 176, 0, 173, 190, 172, 0,
188 200, 194, 185, 188, 192
}; };
/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] = static const yytype_int16 yydefgoto[] =
{ {
-1, 104, 105, 106, 233, 107, 108, 109, 110, 111, -1, 108, 109, 110, 237, 111, 112, 113, 114, 115,
112, 113, 146, 115, 116, 117, 118, 119, 120, 121, 116, 117, 150, 119, 120, 121, 122, 123, 124, 125,
122, 123, 124, 125, 126, 147, 148, 222, 149, 128, 126, 127, 128, 129, 130, 151, 152, 226, 153, 132,
150, 151, 37, 38, 39, 85, 68, 69, 86, 40, 154, 155, 39, 40, 41, 89, 71, 72, 90, 42,
41, 42, 70, 43, 44, 45, 46, 47, 129, 49, 43, 44, 45, 73, 46, 47, 48, 49, 50, 133,
131, 81, 133, 134, 202, 203, 170, 153, 154, 155, 52, 135, 85, 137, 138, 206, 207, 174, 157, 158,
156, 216, 284, 303, 257, 258, 259, 304, 157, 158, 159, 160, 220, 288, 307, 261, 262, 263, 308, 161,
159, 293, 283, 160, 263, 208, 260, 278, 290, 291, 162, 163, 297, 287, 164, 267, 212, 264, 282, 294,
161, 50, 51, 52, 61 295, 165, 53, 54, 55, 64
}; };
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */ STATE-NUM. */
#define YYPACT_NINF -268 #define YYPACT_NINF -270
static const yytype_int16 yypact[] = static const yytype_int16 yypact[] =
{ {
1362, -6, -268, -268, -268, 135, -268, -268, -268, -268, 1367, -24, -270, -270, -270, 141, -270, -270, -270, -270,
-268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
-268, -268, -268, -268, -268, -268, -268, -21, -26, -268, -270, -270, -270, -270, -270, -270, -270, 30, -270, -270,
-268, -268, -268, -268, -268, -268, -51, -47, 6, 16, -28, -270, -270, -270, -270, -270, -270, -270, -62, -32,
-20, -268, 46, 1409, -268, -268, 1491, -268, 29, -268, -26, 1, -9, -270, 34, 32, 1414, -270, -270, 1496,
1309, -268, -268, -268, -268, 1491, -268, -268, 31, -268, -270, 15, -270, 1314, -270, -270, -270, -270, 1496, -270,
-268, 67, -268, 27, -268, -268, -268, -268, -268, 1409, -270, 6, -270, -270, 17, -270, 67, -270, -270, -270,
111, 102, -268, -11, -268, -268, 1055, -268, -268, 69, -270, -270, 1414, 113, 57, -270, -20, -270, -270, -270,
-268, 1409, 297, -268, -268, -268, -268, 104, 1409, -45, 1060, -270, -270, 37, -270, 1414, 301, -270, -270, -270,
-268, 193, 1055, 80, -268, -268, -268, -268, 1055, 1055, -270, 80, 1414, -6, -270, 838, 1060, 62, -270, -270,
1055, -268, -268, -268, -268, -268, 21, -268, -268, -268, -270, -270, 1060, 1060, 1060, -270, -270, -270, -270, -270,
81, -15, 1127, 84, -268, 1055, -22, 20, -268, -43, -31, -270, -270, -270, 56, -65, 1132, 72, -270, 1060,
70, -268, -268, -268, 94, 96, -55, -268, 83, -268, 63, -53, -270, -40, 96, -270, -270, -270, 89, 94,
-268, 1409, 114, 1199, -268, 82, 85, -268, 90, 91, -56, -270, 90, -270, -270, 1414, 121, 1204, -270, 85,
86, 908, 93, 89, -268, -268, -53, -268, -268, 14, 86, -270, 97, 100, 93, 913, 104, 101, -270, -270,
-268, -51, 49, -268, -268, -268, -268, 390, -268, -268, 68, -270, -270, 22, -270, -62, 71, -270, -270, -270,
-268, -268, 95, -268, -268, 980, 1055, -268, 97, -268, -270, 394, -270, -270, -270, -270, 103, -270, -270, 985,
-268, -268, -268, 5, -268, -268, 1055, 1450, -268, -268, 1060, -270, 105, -270, -270, -270, -270, -1, -270, -270,
1055, 103, -268, -268, -268, 1055, 1055, 1055, 1055, 1055, 1060, 1455, -270, -270, 1060, 107, -270, -270, -270, 1060,
1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, -268, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
1246, 100, 18, -268, -268, -268, -268, -268, 105, -268, 1060, 1060, 1060, -270, 1251, 108, 39, -270, -270, -270,
1055, -268, -268, 19, -268, -268, 483, -268, -268, -268, -270, -270, 109, -270, 1060, -270, -270, 45, -270, -270,
-268, -268, 1055, 1055, -268, -268, -268, 1055, -268, 101, 487, -270, -270, -270, -270, -270, 1060, 1060, -270, -270,
-268, -268, -268, 107, 99, -268, 112, -268, -268, -268, -270, 1060, -270, 111, -270, -270, -270, 112, 110, -270,
-268, -22, -22, -268, -268, -268, -268, -43, -43, -268, 116, -270, -270, -270, -270, 63, 63, -270, -270, -270,
94, 96, -3, -268, 1055, 114, -268, 142, 67, 669, -270, -40, -40, -270, 89, 94, 79, -270, 1060, 121,
762, 7, -268, 836, 483, -268, -268, 108, -268, -268, -270, 146, 17, 673, 766, 8, -270, 203, 487, -270,
1055, 110, -268, 115, -268, -268, -268, -268, 836, 105, -270, 115, -270, -270, 1060, 118, -270, 122, -270, -270,
155, 99, 143, 116, 120, -268, -268, -268, 1055, -268, -270, -270, 203, 109, 153, 110, 151, 134, 131, -270,
117, 119, 191, -268, 121, 576, -268, 8, 1055, 576, -270, -270, 1060, -270, 127, 137, 205, -270, 132, 580,
105, 1055, -268, -268, -268, 118, 99, -268, -268, -268, -270, 13, 1060, 580, 109, 1060, -270, -270, -270, 133,
-268 110, -270, -270, -270, -270
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] = static const yytype_int16 yypgoto[] =
{ {
-268, -268, -268, -268, -268, -268, -268, 33, -268, -268, -270, -270, -270, -270, -270, -270, -270, 42, -270, -270,
-268, -268, -68, -268, -37, -268, -46, -39, -268, -268, -270, -270, -75, -270, -21, -270, -87, -25, -270, -270,
-268, 17, 34, 32, -268, -74, -88, -268, -99, -85, -270, 26, 41, 25, -270, -76, -95, -270, -102, -89,
10, 11, -268, -268, -268, 126, 152, 161, 144, -268, 11, 12, -270, -270, -270, 157, 188, 182, 164, -270,
-268, -234, -268, -268, -268, -30, 228, -14, 0, -268, -270, -249, -270, -270, -270, 224, -38, 265, -13, 0,
-268, -268, 113, -124, -268, -19, -163, -25, -150, -233, -270, -270, -270, 136, -130, -270, 14, -161, 10, -139,
-268, -268, -268, -65, -267, -268, -268, -56, 23, -7, -248, -270, -270, -270, -27, -269, -270, -270, -61, 52,
-268, -268, -33, -268, -268, -268, -268, -268, -268, -268, 16, -270, -270, -7, -270, -270, -270, -270, -270, -270,
-268, -268, 196, -268, -268 -270, -270, -270, 225, -270, -270
}; };
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says. number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */ If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -171 #define YYTABLE_NINF -175
static const yytype_int16 yytable[] = static const yytype_int16 yytable[] =
{ {
48, 173, 127, 230, 169, 83, 168, 226, 114, 205, 51, 173, 177, 87, 131, 118, 172, 209, 78, 234,
35, 36, 292, 74, 197, 56, 57, 127, 217, 218, 67, 37, 38, 201, 296, 279, 56, 183, 286, 131,
219, 189, 190, 114, 182, 64, 275, 220, 58, 282, 118, 186, 230, 184, 193, 194, 61, 175, 176, 63,
171, 172, 75, 308, 53, 62, 64, 221, 165, 87, 57, 178, 179, 286, 91, 312, 79, 68, 69, 70,
60, 79, 213, 48, 282, 166, 48, 184, 54, 198, 191, 7, 192, 217, 188, 83, 51, 136, 202, 51,
48, 132, 65, 66, 67, 48, 191, 192, 87, 59, 65, 306, 180, 51, 91, 306, 181, 62, 51, 195,
35, 36, 302, 65, 66, 67, 302, 179, 71, 48, 196, 94, 66, 95, 37, 38, 59, 60, 23, 24,
90, 72, 91, 180, 185, 186, 205, 234, 169, 92, 96, 25, 51, 27, 209, 173, 67, 169, 238, 74,
229, 48, 152, 174, 175, 223, 270, 232, 48, 279, 233, 236, 75, -75, 170, 51, 156, 227, 76, 242,
305, 127, 238, 223, 63, 223, 223, 114, -75, 252, 283, 84, 51, 131, 118, 309, 227, 136, 80, 136,
73, 132, 223, 132, 176, 224, 255, 223, 177, 256, 256, 227, 86, 68, 69, 70, 247, 248, 249, 250,
262, 261, 76, 187, 226, 188, 80, 239, 240, 114, 227, 93, 265, 228, 243, 244, 118, 118, 118, 118,
114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 118, 118, 118, 118, 118, 118, 118, 259, 134, 230,
-25, 48, 76, 48, 265, 266, 193, 194, 309, 2, 260, 269, 270, 227, 166, 51, 266, 51, 182, 221,
3, 4, 267, 243, 244, 245, 246, 65, 66, 67, 222, 223, 271, -26, 313, 2, 3, 4, 224, 68,
241, 242, 82, 127, 247, 248, 89, 152, 162, 114, 69, 70, -25, 187, 80, 131, 118, 199, 225, 189,
130, -26, 195, 178, 281, 183, 196, 199, 201, 271, 190, 156, 197, 198, 200, 285, 136, 227, 274, 275,
132, 209, 210, 206, 214, 215, 207, 211, 227, 281, 245, 246, 251, 252, 203, 205, 210, 211, 213, 290,
127, 231, 286, 254, -122, 268, 114, 223, 273, 297, 285, 214, 131, 118, 215, 218, 231, 219, -126, 235,
-170, 269, 285, -27, 287, 53, 288, 294, 295, 306, 301, 258, 277, 56, -174, 272, 273, -27, 227, 289,
48, 299, 274, 8, 9, 10, 296, 300, 298, 310, 310, 278, 291, 292, 51, 298, 284, 2, 3, 4,
237, 301, 249, 169, 163, 84, 152, 11, 12, 13, 173, 6, 7, 8, 9, 10, 299, 300, 302, 303,
14, 15, 16, 17, 18, 19, 20, 21, 22, 251, 156, 304, 305, 241, 314, 253, 255, 11, 12, 13,
250, 88, 164, 55, 307, 276, 272, 28, 29, 264, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
30, 31, 32, 33, 200, 289, 78, 93, 34, 94, 24, 254, 25, 26, 27, 28, 29, 30, 31, 167,
95, 96, 97, 277, 0, 98, 99, 0, 0, 152, 32, 33, 34, 35, 88, 92, 168, 97, 36, 98,
152, 0, 0, 152, 152, 0, 0, 0, 0, 0, 99, 100, 101, 156, 156, 102, 103, 156, 156, 77,
0, 0, 0, 0, 100, 0, 0, 167, 152, 0, 58, 204, 268, 276, 280, 293, 311, 0, 82, 0,
0, 0, 0, 0, 0, 101, 102, 0, 103, 0, 281, 0, 156, 0, 104, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 152, 0, 0, 0, 152, 0, 0, 0, 0, 0, 105, 106, 0, 107, 156,
0, 0, 0, 156, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 139, 140, 141, 0, 142, 143,
144, 145, 0, 0, 0, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
25, 26, 27, 28, 29, 30, 31, 146, 32, 33,
34, 35, 0, 0, 0, 97, 36, 98, 99, 100,
101, 0, 0, 102, 103, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 104, 0, 0, 0, 147, 148, 0, 0,
0, 0, 149, 105, 106, 0, 107, 1, 2, 3,
4, 5, 6, 7, 8, 9, 10, 139, 140, 141,
0, 142, 143, 144, 145, 0, 0, 0, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
146, 32, 33, 34, 35, 0, 0, 0, 97, 36,
98, 99, 100, 101, 0, 0, 102, 103, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 104, 0, 0, 0, 147,
229, 0, 0, 0, 0, 149, 105, 106, 0, 107,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
135, 136, 137, 0, 138, 139, 140, 141, 0, 0, 139, 140, 141, 0, 142, 143, 144, 145, 0, 0,
0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 0, 25, 26, 27, 0, 20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
0, 28, 29, 142, 30, 31, 32, 33, 0, 0, 29, 30, 31, 146, 32, 33, 34, 35, 0, 0,
0, 93, 34, 94, 95, 96, 97, 0, 0, 98, 0, 97, 36, 98, 99, 100, 101, 0, 0, 102,
99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
0, 0, 143, 144, 0, 0, 0, 0, 145, 101, 0, 0, 147, 0, 0, 0, 0, 0, 149, 105,
102, 0, 103, 1, 2, 3, 4, 5, 6, 7, 106, 0, 107, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 135, 136, 137, 0, 138, 139, 140, 8, 9, 10, 139, 140, 141, 0, 142, 143, 144,
141, 0, 0, 0, 11, 12, 13, 14, 15, 16, 145, 0, 0, 0, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 0, 25, 17, 18, 19, 20, 21, 22, 23, 24, 0, 25,
26, 27, 0, 0, 28, 29, 142, 30, 31, 32, 26, 27, 28, 29, 30, 31, 146, 32, 33, 34,
33, 0, 0, 0, 93, 34, 94, 95, 96, 97, 35, 0, 0, 0, 97, 36, 98, 99, 100, 101,
0, 0, 98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 100, 0, 0, 0, 143, 225, 0, 0, 0, 0, 104, 0, 0, 0, 86, 0, 0, 0, 0,
0, 145, 101, 102, 0, 103, 1, 2, 3, 4, 0, 149, 105, 106, 0, 107, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 135, 136, 137, 0, 5, 6, 7, 8, 9, 10, 139, 140, 141, 0,
138, 139, 140, 141, 0, 0, 0, 11, 12, 13, 142, 143, 144, 145, 0, 0, 0, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 0, 25, 26, 27, 0, 0, 28, 29, 142, 24, 0, 25, 26, 27, 28, 29, 30, 31, 146,
30, 31, 32, 33, 0, 0, 0, 93, 34, 94, 32, 33, 34, 35, 0, 0, 0, 97, 36, 98,
95, 96, 97, 0, 0, 98, 99, 0, 0, 0, 99, 100, 101, 0, 0, 102, 103, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 100, 0, 0, 0, 143, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0,
0, 0, 0, 0, 145, 101, 102, 0, 103, 1, 0, 0, 0, 0, 149, 105, 106, 0, 107, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 135, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0,
136, 137, 0, 138, 139, 140, 141, 0, 0, 0,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 0, 25, 26, 27, 0, 0,
28, 29, 142, 30, 31, 32, 33, 0, 0, 0,
93, 34, 94, 95, 96, 97, 0, 0, 98, 99,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 100, 0, 0,
0, 82, 0, 0, 0, 0, 0, 145, 101, 102,
0, 103, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 135, 136, 137, 0, 138, 139, 140, 141,
0, 0, 0, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 0, 25, 26,
27, 0, 0, 28, 29, 142, 30, 31, 32, 33,
0, 0, 0, 93, 34, 94, 95, 96, 97, 0,
0, 98, 99, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
145, 101, 102, 0, 103, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
0, 25, 26, 27, 0, 0, 28, 29, 0, 30,
31, 32, 33, 0, 0, 0, 93, 34, 94, 95,
96, 97, 0, 0, 98, 99, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 280,
2, 3, 4, 100, 6, 7, 8, 9, 10, 0,
0, 0, 0, 145, 101, 102, 0, 103, 0, 0,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 0, 25, 26, 27, 0, 0, 21, 22, 23, 24, 0, 25, 26, 27, 28, 29,
28, 29, 0, 30, 31, 32, 33, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 0, 0, 0,
93, 34, 94, 95, 96, 97, 0, 0, 98, 99, 97, 36, 98, 99, 100, 101, 0, 0, 102, 103,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 100, 8, 9, 0, 0, 0, 0, 0, 0, 0, 104, 8, 9,
10, 0, 0, 0, 0, 0, 0, 0, 101, 102, 10, 0, 0, 0, 0, 0, 0, 149, 105, 106,
0, 103, 11, 12, 13, 14, 15, 16, 17, 18, 0, 107, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 0, 0, 0, 0, 0, 0, 19, 20, 21, 22, 0, 0, 0, 0, 0, 0,
0, 0, 28, 29, 0, 30, 31, 32, 33, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 0,
0, 0, 93, 34, 94, 95, 96, 97, 0, 0, 0, 0, 97, 36, 98, 99, 100, 101, 0, 0,
98, 99, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
8, 9, 10, 0, 0, 0, 0, 0, 0, 212, 0, 0, 171, 8, 9, 10, 0, 0, 0, 0,
101, 102, 0, 103, 11, 12, 13, 14, 15, 16, 105, 106, 0, 107, 0, 0, 0, 11, 12, 13,
17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
0, 0, 0, 0, 28, 29, 0, 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0,
33, 0, 0, 0, 93, 34, 94, 95, 96, 97, 32, 33, 34, 35, 0, 0, 0, 97, 36, 98,
0, 0, 98, 99, 0, 0, 0, 0, 0, 0, 99, 100, 101, 0, 0, 102, 103, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 100, 0, 0, 228, 8, 9, 10, 0, 0, 0, 0, 0, 0, 104, 8, 9, 10, 0, 0,
0, 0, 101, 102, 0, 103, 0, 0, 0, 11, 0, 0, 0, 0, 216, 105, 106, 0, 107, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 0, 0, 0, 0, 0, 0, 0, 0, 28, 22, 0, 0, 0, 0, 0, 0, 0, 0, 30,
29, 0, 30, 31, 32, 33, 0, 0, 0, 93, 31, 0, 32, 33, 34, 35, 0, 0, 0, 97,
34, 94, 95, 96, 97, 0, 0, 98, 99, 0, 36, 98, 99, 100, 101, 0, 0, 102, 103, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 100, 8, 9, 10,
0, 0, 0, 0, 0, 0, 0, 101, 102, 0,
103, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 0, 0, 0, 0, 0, 0, 0,
0, 28, 181, 0, 30, 31, 32, 33, 0, 0,
0, 93, 34, 94, 95, 96, 97, 0, 0, 98,
99, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2, 3, 4, 0, 0, 100, 8,
9, 10, 0, 0, 0, 0, 0, 0, 0, 101,
102, 0, 103, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 0, 0, 0, 0, 0,
0, 0, 0, 28, 29, 0, 30, 31, 32, 33,
2, 3, 4, 0, 34, 0, 8, 9, 10, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 104, 0, 0, 232,
21, 22, 0, 0, 0, 204, 0, 0, 0, 0, 8, 9, 10, 0, 0, 0, 0, 105, 106, 0,
28, 29, 0, 30, 31, 32, 33, 0, 0, 0, 107, 0, 0, 0, 11, 12, 13, 14, 15, 16,
0, 34, 0, 0, 0, 0, 0, 0, 0, 77,
0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 253, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 0, 25, 26,
27, 0, 0, 28, 29, 0, 30, 31, 32, 33,
0, 0, 0, 0, 34, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
0, 25, 26, 27, 0, 0, 28, 29, 0, 30,
31, 32, 33, 2, 3, 4, 0, 34, 0, 8,
9, 10, 0, 0, 0, 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,
0, 0, 0, 28, 29, 0, 30, 31, 32, 33,
8, 9, 10, 0, 34, 0, 0, 0, 0, 0,
0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, 0, 0, 0, 0,
0, 0, 0, 0, 28, 29, 0, 30, 31, 32, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34,
33, 8, 9, 10, 235, 34, 0, 0, 0, 236, 35, 0, 0, 0, 97, 36, 98, 99, 100, 101,
0, 0, 102, 103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 104, 8, 9, 10, 0, 0, 0, 0, 0,
0, 0, 105, 106, 0, 107, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 0, 0,
0, 0, 0, 0, 0, 0, 30, 185, 0, 32,
33, 34, 35, 0, 0, 0, 97, 36, 98, 99,
100, 101, 0, 0, 102, 103, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2, 3,
4, 0, 0, 104, 8, 9, 10, 0, 0, 0,
0, 0, 0, 0, 105, 106, 0, 107, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
0, 0, 0, 0, 0, 0, 0, 0, 30, 31,
0, 32, 33, 34, 35, 2, 3, 4, 0, 36,
0, 8, 9, 10, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 0, 0, 0, 16, 17, 18, 19, 20, 21, 22, 0, 0, 0,
0, 0, 0, 0, 0, 28, 29, 0, 30, 31, 208, 0, 0, 0, 0, 30, 31, 0, 32, 33,
32, 33, 0, 0, 0, 0, 34 34, 35, 0, 0, 0, 0, 36, 0, 0, 0,
0, 0, 0, 0, 81, 0, 0, 1, 2, 3,
4, 5, 6, 7, 8, 9, 10, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 257, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 0, 25, 26, 27, 28, 29, 30, 31,
0, 32, 33, 34, 35, 0, 0, 0, 0, 36,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 0, 25, 26, 27, 28,
29, 30, 31, 0, 32, 33, 34, 35, 2, 3,
4, 0, 36, 0, 8, 9, 10, 0, 0, 0,
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, 0, 0, 0, 30, 31,
0, 32, 33, 34, 35, 8, 9, 10, 0, 36,
0, 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, 0, 0, 0, 30,
31, 0, 32, 33, 34, 35, 8, 9, 10, 239,
36, 0, 0, 0, 240, 0, 0, 0, 0, 0,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 0, 0, 0, 0, 0, 0, 0, 0,
30, 31, 0, 32, 33, 34, 35, 0, 0, 0,
0, 36
}; };
static const yytype_int16 yycheck[] = static const yytype_int16 yycheck[] =
{ {
0, 100, 76, 166, 92, 61, 91, 157, 76, 133, 0, 96, 104, 64, 80, 80, 95, 137, 46, 170,
0, 0, 279, 43, 69, 36, 37, 91, 71, 72, 9, 0, 0, 69, 283, 263, 40, 82, 267, 95,
73, 64, 65, 91, 112, 9, 259, 80, 54, 263, 95, 116, 161, 88, 64, 65, 54, 102, 103, 91,
98, 99, 46, 300, 40, 82, 9, 90, 83, 69, 54, 62, 63, 282, 72, 304, 49, 36, 37, 38,
91, 55, 141, 43, 278, 90, 46, 115, 54, 104, 93, 9, 95, 145, 119, 58, 46, 85, 104, 49,
50, 81, 36, 37, 38, 55, 99, 100, 88, 85, 82, 299, 83, 53, 92, 303, 87, 85, 58, 99,
50, 50, 295, 36, 37, 38, 299, 82, 88, 69, 100, 81, 88, 83, 53, 53, 36, 37, 36, 37,
81, 91, 83, 88, 96, 97, 200, 176, 166, 90, 90, 39, 72, 41, 204, 170, 9, 83, 180, 88,
165, 81, 82, 62, 63, 88, 89, 82, 88, 82, 169, 82, 91, 82, 90, 85, 86, 88, 54, 184,
82, 165, 180, 88, 88, 88, 88, 165, 82, 198, 82, 85, 92, 169, 169, 82, 88, 135, 83, 137,
54, 131, 88, 133, 83, 91, 88, 88, 87, 91, 202, 88, 85, 36, 37, 38, 193, 194, 195, 196,
91, 210, 83, 93, 264, 95, 85, 185, 186, 187, 88, 54, 214, 91, 189, 190, 191, 192, 193, 194,
188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 195, 196, 197, 198, 199, 200, 201, 88, 91, 268,
81, 131, 83, 133, 222, 223, 66, 67, 301, 4, 91, 226, 227, 88, 54, 135, 91, 137, 82, 71,
5, 6, 227, 189, 190, 191, 192, 36, 37, 38, 72, 73, 231, 81, 305, 4, 5, 6, 80, 36,
187, 188, 85, 227, 193, 194, 54, 157, 54, 227, 37, 38, 81, 81, 83, 231, 231, 68, 90, 96,
91, 81, 68, 82, 263, 81, 70, 84, 54, 254, 97, 161, 66, 67, 70, 267, 204, 88, 89, 258,
200, 81, 81, 91, 81, 86, 91, 91, 83, 278, 191, 192, 197, 198, 84, 54, 91, 91, 81, 274,
254, 84, 270, 83, 81, 84, 254, 88, 46, 288, 282, 81, 258, 258, 91, 81, 83, 86, 81, 84,
85, 84, 84, 81, 84, 40, 81, 54, 82, 298, 292, 83, 46, 40, 85, 84, 84, 81, 88, 84,
200, 82, 258, 10, 11, 12, 86, 16, 91, 91, 302, 262, 84, 81, 204, 54, 3, 4, 5, 6,
177, 90, 195, 301, 88, 63, 216, 24, 25, 26, 305, 8, 9, 10, 11, 12, 82, 86, 91, 82,
27, 28, 29, 30, 31, 32, 33, 34, 35, 197, 220, 16, 90, 181, 91, 199, 201, 24, 25, 26,
196, 70, 88, 5, 299, 260, 255, 44, 45, 216, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
47, 48, 49, 50, 131, 278, 50, 54, 55, 56, 37, 200, 39, 40, 41, 42, 43, 44, 45, 92,
57, 58, 59, 260, -1, 62, 63, -1, -1, 259, 47, 48, 49, 50, 66, 73, 92, 54, 55, 56,
260, -1, -1, 263, 264, -1, -1, -1, -1, -1, 57, 58, 59, 263, 264, 62, 63, 267, 268, 45,
-1, -1, -1, -1, 81, -1, -1, 84, 278, -1, 5, 135, 220, 259, 264, 282, 303, -1, 53, -1,
-1, -1, -1, -1, -1, 92, 93, -1, 95, -1, 264, -1, 282, -1, 81, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 295, -1, -1, -1, 299, -1, -1, -1, -1, -1, 92, 93, -1, 95, 299,
-1, -1, -1, 303, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, -1, 17, 18,
19, 20, -1, -1, -1, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, -1,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, -1, -1, -1, 54, 55, 56, 57, 58,
59, -1, -1, 62, 63, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 81, -1, -1, -1, 85, 86, -1, -1,
-1, -1, 91, 92, 93, -1, 95, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-1, 17, 18, 19, 20, -1, -1, -1, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, -1, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, -1, -1, -1, 54, 55,
56, 57, 58, 59, -1, -1, 62, 63, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 81, -1, -1, -1, 85,
86, -1, -1, -1, -1, 91, 92, 93, -1, 95,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, -1, 17, 18, 19, 20, -1, -1, 13, 14, 15, -1, 17, 18, 19, 20, -1, -1,
-1, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, -1, 39, 40, 41, -1, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42,
-1, 44, 45, 46, 47, 48, 49, 50, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62, -1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1,
-1, -1, 85, 86, -1, -1, -1, -1, 91, 92, -1, -1, 85, -1, -1, -1, -1, -1, 91, 92,
93, -1, 95, 3, 4, 5, 6, 7, 8, 9, 93, -1, 95, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, -1, 17, 18, 19, 10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
20, -1, -1, -1, 24, 25, 26, 27, 28, 29, 20, -1, -1, -1, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39,
40, 41, -1, -1, 44, 45, 46, 47, 48, 49, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, -1, -1, -1, 54, 55, 56, 57, 58, 59, 50, -1, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 81, -1, -1, -1, 85, 86, -1, -1, -1, -1, 81, -1, -1, -1, 85, -1, -1, -1, -1,
-1, 91, 92, 93, -1, 95, 3, 4, 5, 6, -1, 91, 92, 93, -1, 95, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1,
17, 18, 19, 20, -1, -1, -1, 24, 25, 26, 17, 18, 19, 20, -1, -1, -1, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, -1, 39, 40, 41, -1, -1, 44, 45, 46, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, -1, -1, -1, 54, 55, 56, 47, 48, 49, 50, -1, -1, -1, 54, 55, 56,
57, 58, 59, -1, -1, 62, 63, -1, -1, -1, 57, 58, 59, -1, -1, 62, 63, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 81, -1, -1, -1, 85, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 91, 92, 93, -1, 95, 3, -1, -1, -1, -1, 91, 92, 93, -1, 95, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
14, 15, -1, 17, 18, 19, 20, -1, -1, -1,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
44, 45, 46, 47, 48, 49, 50, -1, -1, -1,
54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 81, -1, -1,
-1, 85, -1, -1, -1, -1, -1, 91, 92, 93,
-1, 95, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, -1, 17, 18, 19, 20,
-1, -1, -1, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, -1, 39, 40,
41, -1, -1, 44, 45, 46, 47, 48, 49, 50,
-1, -1, -1, 54, 55, 56, 57, 58, 59, -1,
-1, 62, 63, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
81, -1, -1, -1, -1, -1, -1, -1, -1, -1,
91, 92, 93, -1, 95, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-1, 39, 40, 41, -1, -1, 44, 45, -1, 47,
48, 49, 50, -1, -1, -1, 54, 55, 56, 57,
58, 59, -1, -1, 62, 63, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4, 5, 6, 81, 8, 9, 10, 11, 12, -1,
-1, -1, -1, 91, 92, 93, -1, 95, -1, -1,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, -1, 39, 40, 41, -1, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
44, 45, -1, 47, 48, 49, 50, -1, -1, -1, 44, 45, -1, 47, 48, 49, 50, -1, -1, -1,
54, 55, 56, 57, 58, 59, -1, -1, 62, 63, 54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 81, 10, 11, -1, -1, -1, -1, -1, -1, -1, 81, 10, 11,
12, -1, -1, -1, -1, -1, -1, -1, 92, 93, 12, -1, -1, -1, -1, -1, -1, 91, 92, 93,
-1, 95, 24, 25, 26, 27, 28, 29, 30, 31, -1, 95, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, -1, -1, -1, -1, -1, -1, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1,
-1, -1, 44, 45, -1, 47, 48, 49, 50, -1, -1, -1, 44, 45, -1, 47, 48, 49, 50, -1,
-1, -1, 54, 55, 56, 57, 58, 59, -1, -1, -1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
62, 63, -1, -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81,
10, 11, 12, -1, -1, -1, -1, -1, -1, 91, -1, -1, 84, 10, 11, 12, -1, -1, -1, -1,
92, 93, -1, 95, 24, 25, 26, 27, 28, 29, 92, 93, -1, 95, -1, -1, -1, 24, 25, 26,
30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1,
-1, -1, -1, -1, 44, 45, -1, 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1,
50, -1, -1, -1, 54, 55, 56, 57, 58, 59, 47, 48, 49, 50, -1, -1, -1, 54, 55, 56,
-1, -1, 62, 63, -1, -1, -1, -1, -1, -1, 57, 58, 59, -1, -1, 62, 63, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 81, -1, -1, 84, 10, 11, 12, -1, -1, -1, -1, -1, -1, 81, 10, 11, 12, -1, -1,
-1, -1, 92, 93, -1, 95, -1, -1, -1, 24, -1, -1, -1, -1, 91, 92, 93, -1, 95, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, -1, -1, -1, -1, -1, -1, -1, -1, 44, 35, -1, -1, -1, -1, -1, -1, -1, -1, 44,
45, -1, 47, 48, 49, 50, -1, -1, -1, 54, 45, -1, 47, 48, 49, 50, -1, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, -1, 55, 56, 57, 58, 59, -1, -1, 62, 63, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 81, 10, 11, 12, -1, -1, -1, -1, -1, -1, 81, -1, -1, 84,
-1, -1, -1, -1, -1, -1, -1, 92, 93, -1, 10, 11, 12, -1, -1, -1, -1, 92, 93, -1,
95, 24, 25, 26, 27, 28, 29, 30, 31, 32, 95, -1, -1, -1, 24, 25, 26, 27, 28, 29,
33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
-1, 44, 45, -1, 47, 48, 49, 50, -1, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 4, 5, 6, -1, -1, 81, 10,
11, 12, -1, -1, -1, -1, -1, -1, -1, 92,
93, -1, 95, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
-1, -1, -1, 44, 45, -1, 47, 48, 49, 50,
4, 5, 6, -1, 55, -1, 10, 11, 12, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, -1, -1, -1, 86, -1, -1, -1, -1,
44, 45, -1, 47, 48, 49, 50, -1, -1, -1,
-1, 55, -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, -1,
-1, -1, 86, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, -1, 39, 40,
41, -1, -1, 44, 45, -1, 47, 48, 49, 50,
-1, -1, -1, -1, 55, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-1, 39, 40, 41, -1, -1, 44, 45, -1, 47,
48, 49, 50, 4, 5, 6, -1, 55, -1, 10,
11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
-1, -1, -1, 44, 45, -1, 47, 48, 49, 50,
10, 11, 12, -1, 55, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1,
-1, -1, -1, -1, 44, 45, -1, 47, 48, 49, -1, -1, -1, -1, 44, 45, -1, 47, 48, 49,
50, 10, 11, 12, 54, 55, -1, -1, -1, 59, 50, -1, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 81, 10, 11, 12, -1, -1, -1, -1, -1,
-1, -1, 92, 93, -1, 95, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, -1, -1,
-1, -1, -1, -1, -1, -1, 44, 45, -1, 47,
48, 49, 50, -1, -1, -1, 54, 55, 56, 57,
58, 59, -1, -1, 62, 63, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 4, 5,
6, -1, -1, 81, 10, 11, 12, -1, -1, -1,
-1, -1, -1, -1, 92, 93, -1, 95, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-1, -1, -1, -1, -1, -1, -1, -1, 44, 45,
-1, 47, 48, 49, 50, 4, 5, 6, -1, 55,
-1, 10, 11, 12, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 24, 25, 26, 27, 28, -1, -1, -1, -1, -1, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, -1, -1, -1, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1,
-1, -1, -1, -1, -1, 44, 45, -1, 47, 48, 86, -1, -1, -1, -1, 44, 45, -1, 47, 48,
49, 50, -1, -1, -1, -1, 55 49, 50, -1, -1, -1, -1, 55, -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, -1, -1, -1, 86, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, -1, 39, 40, 41, 42, 43, 44, 45,
-1, 47, 48, 49, 50, -1, -1, -1, -1, 55,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, -1, 39, 40, 41, 42,
43, 44, 45, -1, 47, 48, 49, 50, 4, 5,
6, -1, 55, -1, 10, 11, 12, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-1, -1, -1, -1, -1, -1, -1, -1, 44, 45,
-1, 47, 48, 49, 50, 10, 11, 12, -1, 55,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, -1, -1, -1, -1, -1, -1, -1, -1, 44,
45, -1, 47, 48, 49, 50, 10, 11, 12, 54,
55, -1, -1, -1, 59, -1, -1, -1, -1, -1,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, -1, -1, -1, -1, -1, -1, -1, -1,
44, 45, -1, 47, 48, 49, 50, -1, -1, -1,
-1, 55
}; };
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
...@@ -1271,36 +1278,36 @@ static const yytype_uint8 yystos[] = ...@@ -1271,36 +1278,36 @@ static const yytype_uint8 yystos[] =
{ {
0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 24, 25, 26, 27, 28, 29, 30, 31, 32, 12, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 39, 40, 41, 44, 45, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43,
47, 48, 49, 50, 55, 135, 136, 137, 138, 139, 44, 45, 47, 48, 49, 50, 55, 135, 136, 137,
144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 138, 139, 144, 145, 146, 147, 149, 150, 151, 152,
186, 187, 188, 40, 54, 151, 36, 37, 54, 85, 153, 154, 155, 187, 188, 189, 40, 54, 152, 36,
91, 189, 82, 88, 9, 36, 37, 38, 141, 142, 37, 54, 85, 91, 190, 82, 88, 9, 36, 37,
147, 88, 91, 54, 150, 152, 83, 0, 187, 152, 38, 141, 142, 148, 88, 91, 54, 150, 151, 153,
85, 156, 85, 172, 141, 140, 143, 150, 142, 54, 83, 0, 188, 153, 85, 157, 85, 173, 141, 140,
81, 83, 90, 54, 56, 57, 58, 59, 62, 63, 143, 151, 142, 54, 81, 83, 90, 54, 56, 57,
81, 92, 93, 95, 106, 107, 108, 110, 111, 112, 58, 59, 62, 63, 81, 92, 93, 95, 106, 107,
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118,
123, 124, 125, 126, 127, 128, 129, 130, 134, 153, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
91, 155, 150, 157, 158, 13, 14, 15, 17, 18, 129, 130, 134, 154, 91, 156, 151, 158, 159, 13,
19, 20, 46, 85, 86, 91, 117, 130, 131, 133, 14, 15, 17, 18, 19, 20, 46, 85, 86, 91,
135, 136, 153, 162, 163, 164, 165, 173, 174, 175, 117, 130, 131, 133, 135, 136, 154, 163, 164, 165,
178, 185, 54, 140, 143, 83, 90, 84, 134, 131, 166, 174, 175, 176, 179, 186, 54, 140, 143, 83,
161, 117, 117, 133, 62, 63, 83, 87, 82, 82, 90, 84, 134, 131, 162, 117, 117, 133, 62, 63,
88, 45, 131, 81, 117, 96, 97, 93, 95, 64, 83, 87, 82, 82, 88, 45, 131, 81, 117, 96,
65, 99, 100, 66, 67, 68, 70, 69, 104, 84, 97, 93, 95, 64, 65, 99, 100, 66, 67, 68,
157, 54, 159, 160, 86, 158, 91, 91, 180, 81, 70, 69, 104, 84, 158, 54, 160, 161, 86, 159,
81, 91, 91, 133, 81, 86, 166, 71, 72, 73, 91, 91, 181, 81, 81, 91, 91, 133, 81, 86,
80, 90, 132, 88, 91, 86, 163, 83, 84, 134, 167, 71, 72, 73, 80, 90, 132, 88, 91, 86,
161, 84, 82, 109, 133, 54, 59, 112, 131, 117, 164, 83, 84, 134, 162, 84, 82, 109, 133, 54,
117, 119, 119, 121, 121, 121, 121, 122, 122, 126, 59, 112, 131, 117, 117, 119, 119, 121, 121, 121,
127, 128, 133, 86, 83, 88, 91, 169, 170, 171, 121, 122, 122, 126, 127, 128, 133, 86, 83, 88,
181, 133, 91, 179, 173, 131, 131, 134, 84, 84, 91, 170, 171, 172, 182, 133, 91, 180, 174, 131,
89, 134, 160, 46, 172, 164, 162, 174, 182, 82, 131, 134, 84, 84, 89, 134, 161, 46, 173, 165,
3, 133, 146, 177, 167, 84, 131, 84, 81, 177, 163, 175, 183, 82, 3, 133, 146, 178, 168, 84,
183, 184, 169, 176, 54, 82, 86, 133, 91, 82, 131, 84, 81, 178, 184, 185, 170, 177, 54, 82,
16, 90, 164, 168, 172, 82, 133, 168, 169, 161, 86, 133, 91, 82, 16, 90, 165, 169, 173, 82,
91 133, 169, 170, 162, 91
}; };
#define yyerrok (yyerrstatus = 0) #define yyerrok (yyerrstatus = 0)
...@@ -3650,25 +3657,41 @@ yyreduce: ...@@ -3650,25 +3657,41 @@ yyreduce:
case 104: case 104:
{ {
(yyval.interm.qualifier) = EvqConst; (yyval.interm.type).qualifier = EvqSmooth;
(yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line;
} }
break; break;
case 105: case 105:
{ {
(yyval.interm.type).qualifier = EvqFlat;
(yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line;
}
break;
case 106:
{
(yyval.interm.qualifier) = EvqConst;
}
break;
case 107:
{
VERTEX_ONLY("attribute", (yyvsp[(1) - (1)].lex).line); VERTEX_ONLY("attribute", (yyvsp[(1) - (1)].lex).line);
ES2_ONLY("attribute", (yyvsp[(1) - (1)].lex).line); ES2_ONLY("attribute", (yyvsp[(1) - (1)].lex).line);
if (context->globalErrorCheck((yyvsp[(1) - (1)].lex).line, context->symbolTable.atGlobalLevel(), "attribute")) if (context->globalErrorCheck((yyvsp[(1) - (1)].lex).line, context->symbolTable.atGlobalLevel(), "attribute"))
context->recover(); context->recover();
(yyval.interm.type).setBasic(EbtVoid, EvqAttribute, (yyvsp[(1) - (1)].lex).line); (yyval.interm.type).setBasic(EbtVoid, EvqAttribute, (yyvsp[(1) - (1)].lex).line);
} }
break; break;
case 106: case 108:
{ {
ES2_ONLY("varying", (yyvsp[(1) - (1)].lex).line); ES2_ONLY("varying", (yyvsp[(1) - (1)].lex).line);
if (context->globalErrorCheck((yyvsp[(1) - (1)].lex).line, context->symbolTable.atGlobalLevel(), "varying")) if (context->globalErrorCheck((yyvsp[(1) - (1)].lex).line, context->symbolTable.atGlobalLevel(), "varying"))
context->recover(); context->recover();
if (context->shaderType == SH_VERTEX_SHADER) if (context->shaderType == SH_VERTEX_SHADER)
...@@ -3678,10 +3701,10 @@ yyreduce: ...@@ -3678,10 +3701,10 @@ yyreduce:
} }
break; break;
case 107: case 109:
{ {
ES2_ONLY("varying", (yyvsp[(1) - (2)].lex).line); ES2_ONLY("varying", (yyvsp[(1) - (2)].lex).line);
if (context->globalErrorCheck((yyvsp[(1) - (2)].lex).line, context->symbolTable.atGlobalLevel(), "invariant varying")) if (context->globalErrorCheck((yyvsp[(1) - (2)].lex).line, context->symbolTable.atGlobalLevel(), "invariant varying"))
context->recover(); context->recover();
if (context->shaderType == SH_VERTEX_SHADER) if (context->shaderType == SH_VERTEX_SHADER)
...@@ -3691,70 +3714,119 @@ yyreduce: ...@@ -3691,70 +3714,119 @@ yyreduce:
} }
break; break;
case 108: case 110:
{ {
(yyval.interm.type).setBasic(EbtVoid, (yyvsp[(1) - (1)].interm.type).qualifier, (yyvsp[(1) - (1)].interm.type).line); (yyval.interm.type).setBasic(EbtVoid, (yyvsp[(1) - (1)].interm.type).qualifier, (yyvsp[(1) - (1)].interm.type).line);
} }
break; break;
case 109: case 111:
{
if ((yyvsp[(2) - (2)].interm.type).qualifier == EvqSmoothIn) {
if ((yyvsp[(1) - (2)].interm.type).qualifier == EvqSmooth)
(yyval.interm.type).setBasic(EbtVoid, EvqSmoothIn, (yyvsp[(2) - (2)].interm.type).line);
else if ((yyvsp[(1) - (2)].interm.type).qualifier == EvqFlat)
(yyval.interm.type).setBasic(EbtVoid, EvqFlatIn, (yyvsp[(2) - (2)].interm.type).line);
else UNREACHABLE();
}
else if ((yyvsp[(2) - (2)].interm.type).qualifier == EvqCentroidIn) {
if ((yyvsp[(1) - (2)].interm.type).qualifier == EvqSmooth)
(yyval.interm.type).setBasic(EbtVoid, EvqCentroidIn, (yyvsp[(2) - (2)].interm.type).line);
else if ((yyvsp[(1) - (2)].interm.type).qualifier == EvqFlat)
(yyval.interm.type).setBasic(EbtVoid, EvqFlatIn, (yyvsp[(2) - (2)].interm.type).line);
else UNREACHABLE();
}
else if ((yyvsp[(2) - (2)].interm.type).qualifier == EvqSmoothOut) {
if ((yyvsp[(1) - (2)].interm.type).qualifier == EvqSmooth)
(yyval.interm.type).setBasic(EbtVoid, EvqSmoothOut, (yyvsp[(2) - (2)].interm.type).line);
else if ((yyvsp[(1) - (2)].interm.type).qualifier == EvqFlat)
(yyval.interm.type).setBasic(EbtVoid, EvqFlatOut, (yyvsp[(2) - (2)].interm.type).line);
else UNREACHABLE();
}
else if ((yyvsp[(2) - (2)].interm.type).qualifier == EvqCentroidOut) {
if ((yyvsp[(1) - (2)].interm.type).qualifier == EvqSmooth)
(yyval.interm.type).setBasic(EbtVoid, EvqCentroidOut, (yyvsp[(2) - (2)].interm.type).line);
else if ((yyvsp[(1) - (2)].interm.type).qualifier == EvqFlat)
(yyval.interm.type).setBasic(EbtVoid, EvqFlatOut, (yyvsp[(2) - (2)].interm.type).line);
else UNREACHABLE();
}
else {
context->error((yyvsp[(1) - (2)].interm.type).line, "interpolation qualifier requires a fragment 'in' or vertex 'out' storage qualifier", getInterpolationString((yyvsp[(1) - (2)].interm.type).qualifier));
context->recover();
(yyval.interm.type).setBasic(EbtVoid, (yyvsp[(2) - (2)].interm.type).qualifier, (yyvsp[(2) - (2)].interm.type).line);
}
}
break;
case 112:
{
context->error((yyvsp[(1) - (1)].interm.type).line, "interpolation qualifier requires a fragment 'in' or vertex 'out' storage qualifier", getInterpolationString((yyvsp[(1) - (1)].interm.type).qualifier));
context->recover();
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
(yyval.interm.type).setBasic(EbtVoid, qual, (yyvsp[(1) - (1)].interm.type).line);
}
break;
case 113:
{ {
(yyval.interm.type).qualifier = EvqConst; (yyval.interm.type).qualifier = EvqConst;
(yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line;
} }
break; break;
case 110: case 114:
{ {
ES3_ONLY("in", (yyvsp[(1) - (1)].lex).line); ES3_ONLY("in", (yyvsp[(1) - (1)].lex).line);
(yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqVaryingIn : EvqAttribute; (yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqSmoothIn : EvqAttribute;
(yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line;
} }
break; break;
case 111: case 115:
{ {
ES3_ONLY("out", (yyvsp[(1) - (1)].lex).line); ES3_ONLY("out", (yyvsp[(1) - (1)].lex).line);
(yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragColor : EvqVaryingOut; (yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragColor : EvqSmoothOut;
(yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line;
} }
break; break;
case 112: case 116:
{ {
ES3_ONLY("in", (yyvsp[(1) - (2)].lex).line); ES3_ONLY("centroid in", (yyvsp[(1) - (2)].lex).line);
// FIXME: Handle centroid qualifier (yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqCentroidIn : EvqAttribute;
(yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqVaryingIn : EvqAttribute; (yyval.interm.type).line = (yyvsp[(1) - (2)].lex).line;
(yyval.interm.type).line = (yyvsp[(2) - (2)].lex).line;
} }
break; break;
case 113: case 117:
{ {
ES3_ONLY("out", (yyvsp[(1) - (2)].lex).line); ES3_ONLY("centroid out", (yyvsp[(1) - (2)].lex).line);
// FIXME: Handle centroid qualifier (yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragColor : EvqCentroidOut;
(yyval.interm.type).qualifier = (context->shaderType == SH_FRAGMENT_SHADER) ? EvqFragColor : EvqVaryingOut; (yyval.interm.type).line = (yyvsp[(1) - (2)].lex).line;
(yyval.interm.type).line = (yyvsp[(2) - (2)].lex).line;
} }
break; break;
case 114: case 118:
{ {
if (context->globalErrorCheck((yyvsp[(1) - (1)].lex).line, context->symbolTable.atGlobalLevel(), "uniform")) if (context->globalErrorCheck((yyvsp[(1) - (1)].lex).line, context->symbolTable.atGlobalLevel(), "uniform"))
context->recover(); context->recover();
(yyval.interm.type).qualifier = EvqUniform; (yyval.interm.type).qualifier = EvqUniform;
(yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line; (yyval.interm.type).line = (yyvsp[(1) - (1)].lex).line;
} }
break; break;
case 115: case 119:
{ {
(yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
...@@ -3768,7 +3840,7 @@ yyreduce: ...@@ -3768,7 +3840,7 @@ yyreduce:
} }
break; break;
case 116: case 120:
{ {
(yyval.interm.type) = (yyvsp[(2) - (2)].interm.type); (yyval.interm.type) = (yyvsp[(2) - (2)].interm.type);
...@@ -3776,35 +3848,35 @@ yyreduce: ...@@ -3776,35 +3848,35 @@ yyreduce:
} }
break; break;
case 117: case 121:
{ {
(yyval.interm.precision) = EbpHigh; (yyval.interm.precision) = EbpHigh;
} }
break; break;
case 118: case 122:
{ {
(yyval.interm.precision) = EbpMedium; (yyval.interm.precision) = EbpMedium;
} }
break; break;
case 119: case 123:
{ {
(yyval.interm.precision) = EbpLow; (yyval.interm.precision) = EbpLow;
} }
break; break;
case 120: case 124:
{ {
(yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
} }
break; break;
case 121: case 125:
{ {
(yyval.interm.type) = (yyvsp[(1) - (4)].interm.type); (yyval.interm.type) = (yyvsp[(1) - (4)].interm.type);
...@@ -3820,7 +3892,7 @@ yyreduce: ...@@ -3820,7 +3892,7 @@ yyreduce:
} }
break; break;
case 122: case 126:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3828,7 +3900,7 @@ yyreduce: ...@@ -3828,7 +3900,7 @@ yyreduce:
} }
break; break;
case 123: case 127:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3836,7 +3908,7 @@ yyreduce: ...@@ -3836,7 +3908,7 @@ yyreduce:
} }
break; break;
case 124: case 128:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3844,7 +3916,7 @@ yyreduce: ...@@ -3844,7 +3916,7 @@ yyreduce:
} }
break; break;
case 125: case 129:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3852,7 +3924,7 @@ yyreduce: ...@@ -3852,7 +3924,7 @@ yyreduce:
} }
break; break;
case 126: case 130:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3861,7 +3933,7 @@ yyreduce: ...@@ -3861,7 +3933,7 @@ yyreduce:
} }
break; break;
case 127: case 131:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3870,7 +3942,7 @@ yyreduce: ...@@ -3870,7 +3942,7 @@ yyreduce:
} }
break; break;
case 128: case 132:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3879,7 +3951,7 @@ yyreduce: ...@@ -3879,7 +3951,7 @@ yyreduce:
} }
break; break;
case 129: case 133:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3888,7 +3960,7 @@ yyreduce: ...@@ -3888,7 +3960,7 @@ yyreduce:
} }
break; break;
case 130: case 134:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3897,7 +3969,7 @@ yyreduce: ...@@ -3897,7 +3969,7 @@ yyreduce:
} }
break; break;
case 131: case 135:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3906,7 +3978,7 @@ yyreduce: ...@@ -3906,7 +3978,7 @@ yyreduce:
} }
break; break;
case 132: case 136:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3915,7 +3987,7 @@ yyreduce: ...@@ -3915,7 +3987,7 @@ yyreduce:
} }
break; break;
case 133: case 137:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3924,7 +3996,7 @@ yyreduce: ...@@ -3924,7 +3996,7 @@ yyreduce:
} }
break; break;
case 134: case 138:
{ {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
...@@ -3933,7 +4005,7 @@ yyreduce: ...@@ -3933,7 +4005,7 @@ yyreduce:
} }
break; break;
case 135: case 139:
{ {
FRAG_VERT_ONLY("mat2", (yyvsp[(1) - (1)].lex).line); FRAG_VERT_ONLY("mat2", (yyvsp[(1) - (1)].lex).line);
...@@ -3943,7 +4015,7 @@ yyreduce: ...@@ -3943,7 +4015,7 @@ yyreduce:
} }
break; break;
case 136: case 140:
{ {
FRAG_VERT_ONLY("mat3", (yyvsp[(1) - (1)].lex).line); FRAG_VERT_ONLY("mat3", (yyvsp[(1) - (1)].lex).line);
...@@ -3953,7 +4025,7 @@ yyreduce: ...@@ -3953,7 +4025,7 @@ yyreduce:
} }
break; break;
case 137: case 141:
{ {
FRAG_VERT_ONLY("mat4", (yyvsp[(1) - (1)].lex).line); FRAG_VERT_ONLY("mat4", (yyvsp[(1) - (1)].lex).line);
...@@ -3963,7 +4035,7 @@ yyreduce: ...@@ -3963,7 +4035,7 @@ yyreduce:
} }
break; break;
case 138: case 142:
{ {
FRAG_VERT_ONLY("sampler2D", (yyvsp[(1) - (1)].lex).line); FRAG_VERT_ONLY("sampler2D", (yyvsp[(1) - (1)].lex).line);
...@@ -3972,7 +4044,7 @@ yyreduce: ...@@ -3972,7 +4044,7 @@ yyreduce:
} }
break; break;
case 139: case 143:
{ {
FRAG_VERT_ONLY("samplerCube", (yyvsp[(1) - (1)].lex).line); FRAG_VERT_ONLY("samplerCube", (yyvsp[(1) - (1)].lex).line);
...@@ -3981,7 +4053,7 @@ yyreduce: ...@@ -3981,7 +4053,7 @@ yyreduce:
} }
break; break;
case 140: case 144:
{ {
if (!context->supportsExtension("GL_OES_EGL_image_external")) { if (!context->supportsExtension("GL_OES_EGL_image_external")) {
...@@ -3994,7 +4066,7 @@ yyreduce: ...@@ -3994,7 +4066,7 @@ yyreduce:
} }
break; break;
case 141: case 145:
{ {
if (!context->supportsExtension("GL_ARB_texture_rectangle")) { if (!context->supportsExtension("GL_ARB_texture_rectangle")) {
...@@ -4007,7 +4079,7 @@ yyreduce: ...@@ -4007,7 +4079,7 @@ yyreduce:
} }
break; break;
case 142: case 146:
{ {
FRAG_VERT_ONLY("struct", (yyvsp[(1) - (1)].interm.type).line); FRAG_VERT_ONLY("struct", (yyvsp[(1) - (1)].interm.type).line);
...@@ -4016,7 +4088,7 @@ yyreduce: ...@@ -4016,7 +4088,7 @@ yyreduce:
} }
break; break;
case 143: case 147:
{ {
// //
...@@ -4030,12 +4102,12 @@ yyreduce: ...@@ -4030,12 +4102,12 @@ yyreduce:
} }
break; break;
case 144: case 148:
{ if (context->enterStructDeclaration((yyvsp[(2) - (3)].lex).line, *(yyvsp[(2) - (3)].lex).string)) context->recover(); } { if (context->enterStructDeclaration((yyvsp[(2) - (3)].lex).line, *(yyvsp[(2) - (3)].lex).string)) context->recover(); }
break; break;
case 145: case 149:
{ {
if (context->reservedErrorCheck((yyvsp[(2) - (6)].lex).line, *(yyvsp[(2) - (6)].lex).string)) if (context->reservedErrorCheck((yyvsp[(2) - (6)].lex).line, *(yyvsp[(2) - (6)].lex).string))
...@@ -4053,12 +4125,12 @@ yyreduce: ...@@ -4053,12 +4125,12 @@ yyreduce:
} }
break; break;
case 146: case 150:
{ if (context->enterStructDeclaration((yyvsp[(2) - (2)].lex).line, *(yyvsp[(2) - (2)].lex).string)) context->recover(); } { if (context->enterStructDeclaration((yyvsp[(2) - (2)].lex).line, *(yyvsp[(2) - (2)].lex).string)) context->recover(); }
break; break;
case 147: case 151:
{ {
TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString("")); TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString(""));
...@@ -4068,14 +4140,14 @@ yyreduce: ...@@ -4068,14 +4140,14 @@ yyreduce:
} }
break; break;
case 148: case 152:
{ {
(yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList); (yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList);
} }
break; break;
case 149: case 153:
{ {
(yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList); (yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList);
...@@ -4091,7 +4163,7 @@ yyreduce: ...@@ -4091,7 +4163,7 @@ yyreduce:
} }
break; break;
case 150: case 154:
{ {
(yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList); (yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList);
...@@ -4128,7 +4200,7 @@ yyreduce: ...@@ -4128,7 +4200,7 @@ yyreduce:
} }
break; break;
case 151: case 155:
{ {
(yyval.interm.typeList) = NewPoolTTypeList(); (yyval.interm.typeList) = NewPoolTTypeList();
...@@ -4136,14 +4208,14 @@ yyreduce: ...@@ -4136,14 +4208,14 @@ yyreduce:
} }
break; break;
case 152: case 156:
{ {
(yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine)); (yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine));
} }
break; break;
case 153: case 157:
{ {
if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string)) if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string))
...@@ -4155,7 +4227,7 @@ yyreduce: ...@@ -4155,7 +4227,7 @@ yyreduce:
} }
break; break;
case 154: case 158:
{ {
if (context->reservedErrorCheck((yyvsp[(1) - (4)].lex).line, *(yyvsp[(1) - (4)].lex).string)) if (context->reservedErrorCheck((yyvsp[(1) - (4)].lex).line, *(yyvsp[(1) - (4)].lex).string))
...@@ -4172,67 +4244,67 @@ yyreduce: ...@@ -4172,67 +4244,67 @@ yyreduce:
} }
break; break;
case 155: case 159:
{ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
break; break;
case 156: case 160:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break; break;
case 157: case 161:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); }
break; break;
case 158: case 162:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break; break;
case 159: case 163:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break; break;
case 160: case 164:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break; break;
case 161: case 165:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break; break;
case 162: case 166:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break; break;
case 163: case 167:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break; break;
case 164: case 168:
{ (yyval.interm.intermAggregate) = 0; } { (yyval.interm.intermAggregate) = 0; }
break; break;
case 165: case 169:
{ context->symbolTable.push(); } { context->symbolTable.push(); }
break; break;
case 166: case 170:
{ context->symbolTable.pop(); } { context->symbolTable.pop(); }
break; break;
case 167: case 171:
{ {
if ((yyvsp[(3) - (5)].interm.intermAggregate) != 0) { if ((yyvsp[(3) - (5)].interm.intermAggregate) != 0) {
...@@ -4243,44 +4315,44 @@ yyreduce: ...@@ -4243,44 +4315,44 @@ yyreduce:
} }
break; break;
case 168: case 172:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break; break;
case 169: case 173:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break; break;
case 170: case 174:
{ context->symbolTable.push(); } { context->symbolTable.push(); }
break; break;
case 171: case 175:
{ context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); }
break; break;
case 172: case 176:
{ context->symbolTable.push(); } { context->symbolTable.push(); }
break; break;
case 173: case 177:
{ context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); }
break; break;
case 174: case 178:
{ {
(yyval.interm.intermNode) = 0; (yyval.interm.intermNode) = 0;
} }
break; break;
case 175: case 179:
{ {
if ((yyvsp[(2) - (3)].interm.intermAggregate)) { if ((yyvsp[(2) - (3)].interm.intermAggregate)) {
...@@ -4291,31 +4363,31 @@ yyreduce: ...@@ -4291,31 +4363,31 @@ yyreduce:
} }
break; break;
case 176: case 180:
{ {
(yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode), 0); (yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode), 0);
} }
break; break;
case 177: case 181:
{ {
(yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermAggregate), (yyvsp[(2) - (2)].interm.intermNode), 0); (yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermAggregate), (yyvsp[(2) - (2)].interm.intermNode), 0);
} }
break; break;
case 178: case 182:
{ (yyval.interm.intermNode) = 0; } { (yyval.interm.intermNode) = 0; }
break; break;
case 179: case 183:
{ (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[(1) - (2)].interm.intermTypedNode)); } { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[(1) - (2)].interm.intermTypedNode)); }
break; break;
case 180: case 184:
{ {
if (context->boolErrorCheck((yyvsp[(1) - (5)].lex).line, (yyvsp[(3) - (5)].interm.intermTypedNode))) if (context->boolErrorCheck((yyvsp[(1) - (5)].lex).line, (yyvsp[(3) - (5)].interm.intermTypedNode)))
...@@ -4324,7 +4396,7 @@ yyreduce: ...@@ -4324,7 +4396,7 @@ yyreduce:
} }
break; break;
case 181: case 185:
{ {
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode); (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode);
...@@ -4332,7 +4404,7 @@ yyreduce: ...@@ -4332,7 +4404,7 @@ yyreduce:
} }
break; break;
case 182: case 186:
{ {
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode); (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode);
...@@ -4340,7 +4412,7 @@ yyreduce: ...@@ -4340,7 +4412,7 @@ yyreduce:
} }
break; break;
case 183: case 187:
{ {
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
...@@ -4349,7 +4421,7 @@ yyreduce: ...@@ -4349,7 +4421,7 @@ yyreduce:
} }
break; break;
case 184: case 188:
{ {
TIntermNode* intermNode; TIntermNode* intermNode;
...@@ -4367,12 +4439,12 @@ yyreduce: ...@@ -4367,12 +4439,12 @@ yyreduce:
} }
break; break;
case 185: case 189:
{ context->symbolTable.push(); ++context->loopNestingLevel; } { context->symbolTable.push(); ++context->loopNestingLevel; }
break; break;
case 186: case 190:
{ {
context->symbolTable.pop(); context->symbolTable.pop();
...@@ -4381,12 +4453,12 @@ yyreduce: ...@@ -4381,12 +4453,12 @@ yyreduce:
} }
break; break;
case 187: case 191:
{ ++context->loopNestingLevel; } { ++context->loopNestingLevel; }
break; break;
case 188: case 192:
{ {
if (context->boolErrorCheck((yyvsp[(8) - (8)].lex).line, (yyvsp[(6) - (8)].interm.intermTypedNode))) if (context->boolErrorCheck((yyvsp[(8) - (8)].lex).line, (yyvsp[(6) - (8)].interm.intermTypedNode)))
...@@ -4397,12 +4469,12 @@ yyreduce: ...@@ -4397,12 +4469,12 @@ yyreduce:
} }
break; break;
case 189: case 193:
{ context->symbolTable.push(); ++context->loopNestingLevel; } { context->symbolTable.push(); ++context->loopNestingLevel; }
break; break;
case 190: case 194:
{ {
context->symbolTable.pop(); context->symbolTable.pop();
...@@ -4411,35 +4483,35 @@ yyreduce: ...@@ -4411,35 +4483,35 @@ yyreduce:
} }
break; break;
case 191: case 195:
{ {
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
} }
break; break;
case 192: case 196:
{ {
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
} }
break; break;
case 193: case 197:
{ {
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
} }
break; break;
case 194: case 198:
{ {
(yyval.interm.intermTypedNode) = 0; (yyval.interm.intermTypedNode) = 0;
} }
break; break;
case 195: case 199:
{ {
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode); (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode);
...@@ -4447,7 +4519,7 @@ yyreduce: ...@@ -4447,7 +4519,7 @@ yyreduce:
} }
break; break;
case 196: case 200:
{ {
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode); (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode);
...@@ -4455,7 +4527,7 @@ yyreduce: ...@@ -4455,7 +4527,7 @@ yyreduce:
} }
break; break;
case 197: case 201:
{ {
if (context->loopNestingLevel <= 0) { if (context->loopNestingLevel <= 0) {
...@@ -4466,7 +4538,7 @@ yyreduce: ...@@ -4466,7 +4538,7 @@ yyreduce:
} }
break; break;
case 198: case 202:
{ {
if (context->loopNestingLevel <= 0) { if (context->loopNestingLevel <= 0) {
...@@ -4477,7 +4549,7 @@ yyreduce: ...@@ -4477,7 +4549,7 @@ yyreduce:
} }
break; break;
case 199: case 203:
{ {
(yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).line); (yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).line);
...@@ -4488,7 +4560,7 @@ yyreduce: ...@@ -4488,7 +4560,7 @@ yyreduce:
} }
break; break;
case 200: case 204:
{ {
(yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).line); (yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).line);
...@@ -4503,7 +4575,7 @@ yyreduce: ...@@ -4503,7 +4575,7 @@ yyreduce:
} }
break; break;
case 201: case 205:
{ {
FRAG_ONLY("discard", (yyvsp[(1) - (2)].lex).line); FRAG_ONLY("discard", (yyvsp[(1) - (2)].lex).line);
...@@ -4511,7 +4583,7 @@ yyreduce: ...@@ -4511,7 +4583,7 @@ yyreduce:
} }
break; break;
case 202: case 206:
{ {
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
...@@ -4519,7 +4591,7 @@ yyreduce: ...@@ -4519,7 +4591,7 @@ yyreduce:
} }
break; break;
case 203: case 207:
{ {
(yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode), 0); (yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode), 0);
...@@ -4527,21 +4599,21 @@ yyreduce: ...@@ -4527,21 +4599,21 @@ yyreduce:
} }
break; break;
case 204: case 208:
{ {
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
} }
break; break;
case 205: case 209:
{ {
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
} }
break; break;
case 206: case 210:
{ {
TFunction* function = (yyvsp[(1) - (1)].interm).function; TFunction* function = (yyvsp[(1) - (1)].interm).function;
...@@ -4630,7 +4702,7 @@ yyreduce: ...@@ -4630,7 +4702,7 @@ yyreduce:
} }
break; break;
case 207: case 211:
{ {
//?? Check that all paths return a value if return type != void ? //?? Check that all paths return a value if return type != void ?
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment