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