Commit a3a36664 by Olli Etuaho

Implement parsing switch statements

Put in some groundwork for parsing switch statements and case labels in the parser, including definitions for IntermNode classes. Intermediate functions for adding the statements are stubbed to only generate errors for now. Tested by manually disabling shading language version checks for switch in a Chromium build and checking that the expected errors are generated. BUG=angle:921 Change-Id: I064b3e0c4c1b724a083cf5bc78eebfdd3794eb1b Reviewed-on: https://chromium-review.googlesource.com/250380Reviewed-by: 's avatarOlli Etuaho <oetuaho@nvidia.com> Tested-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>
parent a6d110e2
...@@ -244,6 +244,21 @@ bool TIntermSelection::replaceChildNode( ...@@ -244,6 +244,21 @@ bool TIntermSelection::replaceChildNode(
return false; return false;
} }
bool TIntermSwitch::replaceChildNode(
TIntermNode *original, TIntermNode *replacement)
{
REPLACE_IF_IS(mInit, TIntermTyped, original, replacement);
REPLACE_IF_IS(mStatementList, TIntermAggregate, original, replacement);
return false;
}
bool TIntermCase::replaceChildNode(
TIntermNode *original, TIntermNode *replacement)
{
REPLACE_IF_IS(mCondition, TIntermTyped, original, replacement);
return false;
}
// //
// Say whether or not an operation node changes the value of a variable. // Say whether or not an operation node changes the value of a variable.
// //
......
...@@ -33,6 +33,8 @@ class TIntermBinary; ...@@ -33,6 +33,8 @@ class TIntermBinary;
class TIntermUnary; class TIntermUnary;
class TIntermConstantUnion; class TIntermConstantUnion;
class TIntermSelection; class TIntermSelection;
class TIntermSwitch;
class TIntermCase;
class TIntermTyped; class TIntermTyped;
class TIntermSymbol; class TIntermSymbol;
class TIntermLoop; class TIntermLoop;
...@@ -66,6 +68,8 @@ class TIntermNode ...@@ -66,6 +68,8 @@ class TIntermNode
virtual TIntermBinary *getAsBinaryNode() { return 0; } virtual TIntermBinary *getAsBinaryNode() { return 0; }
virtual TIntermUnary *getAsUnaryNode() { return 0; } virtual TIntermUnary *getAsUnaryNode() { return 0; }
virtual TIntermSelection *getAsSelectionNode() { return 0; } virtual TIntermSelection *getAsSelectionNode() { return 0; }
virtual TIntermSwitch *getAsSwitchNode() { return 0; }
virtual TIntermCase *getAsCaseNode() { return 0; }
virtual TIntermSymbol *getAsSymbolNode() { return 0; } virtual TIntermSymbol *getAsSymbolNode() { return 0; }
virtual TIntermLoop *getAsLoopNode() { return 0; } virtual TIntermLoop *getAsLoopNode() { return 0; }
virtual TIntermRaw *getAsRawNode() { return 0; } virtual TIntermRaw *getAsRawNode() { return 0; }
...@@ -453,7 +457,7 @@ class TIntermAggregate : public TIntermOperator ...@@ -453,7 +457,7 @@ class TIntermAggregate : public TIntermOperator
}; };
// //
// For if tests. Simplified since there is no switch statement. // For if tests.
// //
class TIntermSelection : public TIntermTyped class TIntermSelection : public TIntermTyped
{ {
...@@ -489,6 +493,55 @@ protected: ...@@ -489,6 +493,55 @@ protected:
TIntermNode *mFalseBlock; TIntermNode *mFalseBlock;
}; };
//
// Switch statement.
//
class TIntermSwitch : public TIntermNode
{
public:
TIntermSwitch(TIntermTyped *init, TIntermAggregate *statementList)
: TIntermNode(),
mInit(init),
mStatementList(statementList)
{
}
void traverse(TIntermTraverser *it) override;
bool replaceChildNode(
TIntermNode *original, TIntermNode *replacement) override;
TIntermSwitch *getAsSwitchNode() override { return this; }
protected:
TIntermTyped *mInit;
TIntermAggregate *mStatementList;
};
//
// Case label.
//
class TIntermCase : public TIntermNode
{
public:
TIntermCase(TIntermTyped *condition)
: TIntermNode(),
mCondition(condition)
{
}
void traverse(TIntermTraverser *it) override;
bool replaceChildNode(
TIntermNode *original, TIntermNode *replacement) override;
TIntermCase *getAsCaseNode() override { return this; }
bool hasCondition() const { return mCondition != nullptr; }
TIntermTyped *getCondition() const { return mCondition; }
protected:
TIntermTyped *mCondition;
};
enum Visit enum Visit
{ {
PreVisit, PreVisit,
...@@ -525,6 +578,8 @@ class TIntermTraverser ...@@ -525,6 +578,8 @@ class TIntermTraverser
virtual bool visitBinary(Visit, TIntermBinary *) { return true; } virtual bool visitBinary(Visit, TIntermBinary *) { return true; }
virtual bool visitUnary(Visit, TIntermUnary *) { return true; } virtual bool visitUnary(Visit, TIntermUnary *) { return true; }
virtual bool visitSelection(Visit, TIntermSelection *) { return true; } virtual bool visitSelection(Visit, TIntermSelection *) { return true; }
virtual bool visitSwitch(Visit, TIntermSwitch *) { return true; }
virtual bool visitCase(Visit, TIntermCase *) { return true; }
virtual bool visitAggregate(Visit, TIntermAggregate *) { return true; } virtual bool visitAggregate(Visit, TIntermAggregate *) { return true; }
virtual bool visitLoop(Visit, TIntermLoop *) { return true; } virtual bool visitLoop(Visit, TIntermLoop *) { return true; }
virtual bool visitBranch(Visit, TIntermBranch *) { return true; } virtual bool visitBranch(Visit, TIntermBranch *) { return true; }
......
...@@ -194,6 +194,60 @@ void TIntermSelection::traverse(TIntermTraverser *it) ...@@ -194,6 +194,60 @@ void TIntermSelection::traverse(TIntermTraverser *it)
} }
// //
// Traverse a switch node. Same comments in binary node apply here.
//
void TIntermSwitch::traverse(TIntermTraverser *it)
{
bool visit = true;
if (it->preVisit)
visit = it->visitSwitch(PreVisit, this);
if (visit)
{
it->incrementDepth(this);
if (it->rightToLeft)
{
if (mStatementList)
mStatementList->traverse(it);
if (it->inVisit)
visit = it->visitSwitch(InVisit, this);
if (visit)
mInit->traverse(it);
}
else
{
mInit->traverse(it);
if (it->inVisit)
visit = it->visitSwitch(InVisit, this);
if (visit && mStatementList)
mStatementList->traverse(it);
}
it->decrementDepth();
}
if (visit && it->postVisit)
it->visitSwitch(PostVisit, this);
}
//
// Traverse a switch node. Same comments in binary node apply here.
//
void TIntermCase::traverse(TIntermTraverser *it)
{
bool visit = true;
if (it->preVisit)
visit = it->visitCase(PreVisit, this);
if (visit && mCondition)
mCondition->traverse(it);
if (visit && it->postVisit)
it->visitCase(PostVisit, this);
}
//
// Traverse a loop node. Same comments in binary node apply here. // Traverse a loop node. Same comments in binary node apply here.
// //
void TIntermLoop::traverse(TIntermTraverser *it) void TIntermLoop::traverse(TIntermTraverser *it)
......
...@@ -458,6 +458,22 @@ TIntermTyped *TIntermediate::addSelection( ...@@ -458,6 +458,22 @@ TIntermTyped *TIntermediate::addSelection(
return node; return node;
} }
TIntermSwitch *TIntermediate::addSwitch(
TIntermTyped *init, TIntermAggregate *statementList, const TSourceLoc &line)
{
mInfoSink.info.message(EPrefixInternalError, line,
"Switch statements are disabled for now");
return nullptr;
}
TIntermCase *TIntermediate::addCase(
TIntermTyped *condition, const TSourceLoc &line)
{
mInfoSink.info.message(EPrefixInternalError, line,
"Case labels and default labels are disabled for now");
return nullptr;
}
// //
// Constant terminal nodes. Has a union that contains bool, float or int constants // Constant terminal nodes. Has a union that contains bool, float or int constants
// //
......
...@@ -43,6 +43,10 @@ class TIntermediate ...@@ -43,6 +43,10 @@ class TIntermediate
TIntermNode *addSelection(TIntermTyped *cond, TIntermNodePair code, const TSourceLoc &); TIntermNode *addSelection(TIntermTyped *cond, TIntermNodePair code, const TSourceLoc &);
TIntermTyped *addSelection( TIntermTyped *addSelection(
TIntermTyped *cond, TIntermTyped *trueBlock, TIntermTyped *falseBlock, const TSourceLoc &); TIntermTyped *cond, TIntermTyped *trueBlock, TIntermTyped *falseBlock, const TSourceLoc &);
TIntermSwitch *addSwitch(
TIntermTyped *init, TIntermAggregate *statementList, const TSourceLoc &line);
TIntermCase *addCase(
TIntermTyped *condition, const TSourceLoc &line);
TIntermTyped *addComma( TIntermTyped *addComma(
TIntermTyped *left, TIntermTyped *right, const TSourceLoc &); TIntermTyped *left, TIntermTyped *right, const TSourceLoc &);
TIntermConstantUnion *addConstantUnion(ConstantUnion *, const TType &, const TSourceLoc &); TIntermConstantUnion *addConstantUnion(ConstantUnion *, const TType &, const TSourceLoc &);
......
...@@ -2608,6 +2608,42 @@ TPublicType TParseContext::addStructure(const TSourceLoc& structLine, const TSou ...@@ -2608,6 +2608,42 @@ TPublicType TParseContext::addStructure(const TSourceLoc& structLine, const TSou
return publicType; return publicType;
} }
TIntermSwitch *TParseContext::addSwitch(TIntermTyped *init, TIntermAggregate *statementList, const TSourceLoc &loc)
{
TIntermSwitch *node = intermediate.addSwitch(init, statementList, loc);
if (node == nullptr)
{
error(loc, "erroneous switch statement", "switch");
recover();
return nullptr;
}
return node;
}
TIntermCase *TParseContext::addCase(TIntermTyped *condition, const TSourceLoc &loc)
{
TIntermCase *node = intermediate.addCase(condition, loc);
if (node == nullptr)
{
error(loc, "erroneous case statement", "case");
recover();
return nullptr;
}
return node;
}
TIntermCase *TParseContext::addDefault(const TSourceLoc &loc)
{
TIntermCase *node = intermediate.addCase(nullptr, loc);
if (node == nullptr)
{
error(loc, "erroneous default statement", "default");
recover();
return nullptr;
}
return node;
}
TIntermTyped *TParseContext::addUnaryMath(TOperator op, TIntermTyped *child, const TSourceLoc &loc) TIntermTyped *TParseContext::addUnaryMath(TOperator op, TIntermTyped *child, const TSourceLoc &loc)
{ {
TIntermTyped *node = intermediate.addUnaryMath(op, child, loc); TIntermTyped *node = intermediate.addUnaryMath(op, child, loc);
......
...@@ -164,6 +164,10 @@ struct TParseContext { ...@@ -164,6 +164,10 @@ struct TParseContext {
bool structNestingErrorCheck(const TSourceLoc& line, const TField& field); bool structNestingErrorCheck(const TSourceLoc& line, const TField& field);
TIntermSwitch *addSwitch(TIntermTyped *init, TIntermAggregate *statementList, const TSourceLoc &loc);
TIntermCase *addCase(TIntermTyped *condition, const TSourceLoc &loc);
TIntermCase *addDefault(const TSourceLoc &loc);
TIntermTyped *addUnaryMath(TOperator op, TIntermTyped *child, const TSourceLoc &); TIntermTyped *addUnaryMath(TOperator op, TIntermTyped *child, const TSourceLoc &);
TIntermTyped *addUnaryMathLValue(TOperator op, TIntermTyped *child, const TSourceLoc &); TIntermTyped *addUnaryMathLValue(TOperator op, TIntermTyped *child, const TSourceLoc &);
TIntermTyped *addBinaryMath(TOperator op, TIntermTyped *left, TIntermTyped *right, TIntermTyped *addBinaryMath(TOperator op, TIntermTyped *left, TIntermTyped *right,
......
...@@ -71,6 +71,8 @@ WHICH GENERATES THE GLSL ES PARSER (glslang_tab.cpp AND glslang_tab.h). ...@@ -71,6 +71,8 @@ WHICH GENERATES THE GLSL ES PARSER (glslang_tab.cpp AND glslang_tab.h).
TIntermNodePair nodePair; TIntermNodePair nodePair;
TIntermTyped* intermTypedNode; TIntermTyped* intermTypedNode;
TIntermAggregate* intermAggregate; TIntermAggregate* intermAggregate;
TIntermSwitch* intermSwitch;
TIntermCase* intermCase;
}; };
union { union {
TPublicType type; TPublicType type;
...@@ -178,6 +180,8 @@ extern void yyerror(YYLTYPE* yylloc, TParseContext* context, void *scanner, cons ...@@ -178,6 +180,8 @@ extern void yyerror(YYLTYPE* yylloc, TParseContext* context, void *scanner, cons
%type <interm.intermNode> declaration external_declaration %type <interm.intermNode> declaration external_declaration
%type <interm.intermNode> for_init_statement compound_statement_no_new_scope %type <interm.intermNode> for_init_statement compound_statement_no_new_scope
%type <interm.nodePair> selection_rest_statement for_rest_statement %type <interm.nodePair> selection_rest_statement for_rest_statement
%type <interm.intermSwitch> switch_statement
%type <interm.intermCase> case_label
%type <interm.intermNode> iteration_statement jump_statement statement_no_new_scope statement_with_scope %type <interm.intermNode> iteration_statement jump_statement statement_no_new_scope statement_with_scope
%type <interm> single_declaration init_declarator_list %type <interm> single_declaration init_declarator_list
...@@ -1521,12 +1525,14 @@ statement ...@@ -1521,12 +1525,14 @@ statement
| simple_statement { $$ = $1; } | simple_statement { $$ = $1; }
; ;
// Grammar Note: No labeled statements; 'goto' is not supported. // Grammar Note: Labeled statements for SWITCH only; 'goto' is not supported.
simple_statement simple_statement
: declaration_statement { $$ = $1; } : declaration_statement { $$ = $1; }
| expression_statement { $$ = $1; } | expression_statement { $$ = $1; }
| selection_statement { $$ = $1; } | selection_statement { $$ = $1; }
| switch_statement { $$ = $1; }
| case_label { $$ = $1; }
| iteration_statement { $$ = $1; } | iteration_statement { $$ = $1; }
| jump_statement { $$ = $1; } | jump_statement { $$ = $1; }
; ;
...@@ -1599,7 +1605,20 @@ selection_rest_statement ...@@ -1599,7 +1605,20 @@ selection_rest_statement
} }
; ;
// Grammar Note: No 'switch'. Switch statements not supported. switch_statement
: SWITCH LEFT_PAREN expression RIGHT_PAREN compound_statement {
$$ = context->addSwitch($3, $5, @1);
}
;
case_label
: CASE constant_expression COLON {
$$ = context->addCase($2, @1);
}
| DEFAULT COLON {
$$ = context->addDefault(@1);
}
;
condition condition
// In 1996 c++ draft, conditions can include single declarations // In 1996 c++ draft, conditions can include single declarations
......
...@@ -286,6 +286,8 @@ union YYSTYPE ...@@ -286,6 +286,8 @@ union YYSTYPE
TIntermNodePair nodePair; TIntermNodePair nodePair;
TIntermTyped* intermTypedNode; TIntermTyped* intermTypedNode;
TIntermAggregate* intermAggregate; TIntermAggregate* intermAggregate;
TIntermSwitch* intermSwitch;
TIntermCase* intermCase;
}; };
union { union {
TPublicType type; TPublicType type;
...@@ -619,16 +621,16 @@ union yyalloc ...@@ -619,16 +621,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */ /* YYFINAL -- State number of the termination state. */
#define YYFINAL 114 #define YYFINAL 114
/* YYLAST -- Last index in YYTABLE. */ /* YYLAST -- Last index in YYTABLE. */
#define YYLAST 2394 #define YYLAST 2308
/* YYNTOKENS -- Number of terminals. */ /* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 128 #define YYNTOKENS 128
/* YYNNTS -- Number of nonterminals. */ /* YYNNTS -- Number of nonterminals. */
#define YYNNTS 91 #define YYNNTS 93
/* YYNRULES -- Number of rules. */ /* YYNRULES -- Number of rules. */
#define YYNRULES 263 #define YYNRULES 268
/* YYNSTATES -- Number of states. */ /* YYNSTATES -- Number of states. */
#define YYNSTATES 392 #define YYNSTATES 404
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */ by yylex, with out-of-bounds checking. */
...@@ -687,33 +689,33 @@ static const yytype_uint8 yytranslate[] = ...@@ -687,33 +689,33 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] = static const yytype_uint16 yyrline[] =
{ {
0, 205, 205, 206, 209, 233, 236, 241, 246, 251, 0, 209, 209, 210, 213, 237, 240, 245, 250, 255,
256, 262, 265, 268, 271, 274, 277, 283, 291, 402, 260, 266, 269, 272, 275, 278, 281, 287, 295, 406,
405, 413, 416, 422, 426, 433, 439, 448, 456, 459, 409, 417, 420, 426, 430, 437, 443, 452, 460, 463,
469, 472, 475, 478, 488, 489, 490, 491, 499, 500, 473, 476, 479, 482, 492, 493, 494, 495, 503, 504,
503, 506, 513, 514, 517, 523, 524, 528, 535, 536, 507, 510, 517, 518, 521, 527, 528, 532, 539, 540,
539, 542, 545, 551, 552, 555, 561, 562, 569, 570, 543, 546, 549, 555, 556, 559, 565, 566, 573, 574,
577, 578, 585, 586, 592, 593, 599, 600, 606, 607, 581, 582, 589, 590, 596, 597, 603, 604, 610, 611,
624, 625, 638, 639, 640, 641, 645, 646, 647, 651, 628, 629, 642, 643, 644, 645, 649, 650, 651, 655,
655, 659, 663, 670, 673, 684, 692, 700, 727, 733, 659, 663, 667, 674, 677, 688, 696, 704, 731, 737,
744, 748, 752, 756, 763, 819, 822, 829, 837, 858, 748, 752, 756, 760, 767, 823, 826, 833, 841, 862,
879, 889, 917, 922, 932, 937, 947, 950, 953, 956, 883, 893, 921, 926, 936, 941, 951, 954, 957, 960,
962, 969, 972, 976, 980, 984, 991, 995, 999, 1006, 966, 973, 976, 980, 984, 988, 995, 999, 1003, 1010,
1010, 1014, 1021, 1030, 1036, 1039, 1045, 1051, 1058, 1067, 1014, 1018, 1025, 1034, 1040, 1043, 1049, 1055, 1062, 1071,
1076, 1084, 1087, 1094, 1098, 1105, 1108, 1112, 1116, 1125, 1080, 1088, 1091, 1098, 1102, 1109, 1112, 1116, 1120, 1129,
1134, 1142, 1152, 1164, 1167, 1170, 1176, 1183, 1186, 1192, 1138, 1146, 1156, 1168, 1171, 1174, 1180, 1187, 1190, 1196,
1195, 1198, 1204, 1207, 1222, 1226, 1230, 1234, 1238, 1242, 1199, 1202, 1208, 1211, 1226, 1230, 1234, 1238, 1242, 1246,
1247, 1252, 1257, 1262, 1267, 1272, 1277, 1282, 1287, 1292, 1251, 1256, 1261, 1266, 1271, 1276, 1281, 1286, 1291, 1296,
1297, 1302, 1307, 1312, 1317, 1322, 1327, 1332, 1337, 1342, 1301, 1306, 1311, 1316, 1321, 1326, 1331, 1336, 1341, 1346,
1347, 1351, 1355, 1359, 1363, 1367, 1371, 1375, 1379, 1383, 1351, 1355, 1359, 1363, 1367, 1371, 1375, 1379, 1383, 1387,
1387, 1391, 1395, 1399, 1403, 1407, 1415, 1423, 1427, 1440, 1391, 1395, 1399, 1403, 1407, 1411, 1419, 1427, 1431, 1444,
1440, 1443, 1443, 1449, 1452, 1468, 1471, 1480, 1484, 1490, 1444, 1447, 1447, 1453, 1456, 1472, 1475, 1484, 1488, 1494,
1497, 1512, 1516, 1520, 1521, 1527, 1528, 1529, 1530, 1531, 1501, 1516, 1520, 1524, 1525, 1531, 1532, 1533, 1534, 1535,
1535, 1536, 1536, 1536, 1546, 1547, 1551, 1551, 1552, 1552, 1536, 1537, 1541, 1542, 1542, 1542, 1552, 1553, 1557, 1557,
1557, 1560, 1570, 1573, 1579, 1580, 1584, 1592, 1596, 1606, 1558, 1558, 1563, 1566, 1576, 1579, 1585, 1586, 1590, 1598,
1611, 1628, 1628, 1633, 1633, 1640, 1640, 1648, 1651, 1657, 1602, 1609, 1615, 1618, 1625, 1630, 1647, 1647, 1652, 1652,
1660, 1666, 1670, 1677, 1680, 1683, 1686, 1689, 1698, 1702, 1659, 1659, 1667, 1670, 1676, 1679, 1685, 1689, 1696, 1699,
1709, 1712, 1718, 1718 1702, 1705, 1708, 1717, 1721, 1728, 1731, 1737, 1737
}; };
#endif #endif
...@@ -773,8 +775,9 @@ static const char *const yytname[] = ...@@ -773,8 +775,9 @@ static const char *const yytname[] =
"compound_statement", "$@3", "$@4", "statement_no_new_scope", "compound_statement", "$@3", "$@4", "statement_no_new_scope",
"statement_with_scope", "$@5", "$@6", "compound_statement_no_new_scope", "statement_with_scope", "$@5", "$@6", "compound_statement_no_new_scope",
"statement_list", "expression_statement", "selection_statement", "statement_list", "expression_statement", "selection_statement",
"selection_rest_statement", "condition", "iteration_statement", "$@7", "selection_rest_statement", "switch_statement", "case_label",
"$@8", "$@9", "for_init_statement", "conditionopt", "for_rest_statement", "condition", "iteration_statement", "$@7", "$@8", "$@9",
"for_init_statement", "conditionopt", "for_rest_statement",
"jump_statement", "translation_unit", "external_declaration", "jump_statement", "translation_unit", "external_declaration",
"function_definition", "$@10", YY_NULLPTR "function_definition", "$@10", YY_NULLPTR
}; };
...@@ -801,12 +804,12 @@ static const yytype_uint16 yytoknum[] = ...@@ -801,12 +804,12 @@ static const yytype_uint16 yytoknum[] =
}; };
# endif # endif
#define YYPACT_NINF -341 #define YYPACT_NINF -334
#define yypact_value_is_default(Yystate) \ #define yypact_value_is_default(Yystate) \
(!!((Yystate) == (-341))) (!!((Yystate) == (-334)))
#define YYTABLE_NINF -227 #define YYTABLE_NINF -229
#define yytable_value_is_error(Yytable_value) \ #define yytable_value_is_error(Yytable_value) \
0 0
...@@ -815,46 +818,47 @@ static const yytype_uint16 yytoknum[] = ...@@ -815,46 +818,47 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */ STATE-NUM. */
static const yytype_int16 yypact[] = static const yytype_int16 yypact[] =
{ {
2032, -25, -341, -341, -341, 147, -341, -341, -341, -341, 1946, -28, -334, -334, -334, 179, -334, -334, -334, -334,
-341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
-341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
-341, -341, -341, -341, -341, -341, -341, 98, -341, -341, -334, -334, -334, -334, -334, -334, -334, 91, -334, -334,
-42, -341, -341, -341, -341, -341, -341, -341, -341, -341, -40, -334, -334, -334, -334, -334, -334, -334, -334, -334,
-341, -341, -341, -341, -341, -341, -341, -341, -341, -57, -334, -334, -334, -334, -334, -334, -334, -334, -334, -90,
-341, -341, -55, -28, -30, 2, -66, -341, 99, 14, -334, -334, -88, -62, -64, 10, 5, -334, 117, 14,
1149, -341, -341, 2317, 14, -341, -19, -341, 1957, -341, 1161, -334, -334, 2231, 14, -334, 18, -334, 1871, -334,
-341, -341, -341, 2317, -341, -341, -341, -341, -341, 21, -334, -334, -334, 2231, -334, -334, -334, -334, -334, -14,
37, -341, 26, -341, 55, -341, -341, -341, -341, -341, 27, -334, 33, -334, 55, -334, -334, -334, -334, -334,
2181, 114, 104, -341, 53, -82, -341, 58, -341, 2107, 2095, 147, 127, -334, 73, -34, -334, 87, -334, 2021,
-341, -341, -341, 1510, -341, -341, 56, 2107, -341, 48, -334, -334, -334, 1424, -334, -334, 67, 2021, -334, 86,
-83, -341, 377, -341, -341, -341, -341, 104, 2181, -38, -4, -334, 389, -334, -334, -334, -334, 127, 2095, -21,
-341, 1219, 1510, -341, 129, 2181, 104, 1702, -341, 73, -334, 260, 1424, -334, 157, 2095, 127, 1616, -334, 101,
-341, -341, -341, -341, 1510, 1510, 1510, -341, -341, -341, -334, -334, -334, -334, 1424, 1424, 1424, -334, -334, -334,
-341, -341, -341, -60, -341, -341, -341, 77, -13, 1605, -334, -334, -334, 19, -334, -334, -334, 102, -3, 1519,
93, -341, 1510, 44, 15, 100, -51, 97, 76, 83, 107, -334, 1424, 71, -32, 126, -48, 134, 103, 106,
85, 119, 118, -65, -341, 105, -341, -341, 1787, 2107, 109, 152, 151, -71, -334, 138, -334, -334, 1701, 2021,
109, -341, 37, 101, 103, -341, 110, 116, 108, 1317, 146, -334, 27, 133, 135, -334, 144, 154, 136, 1231,
120, 117, -341, -341, 47, -341, -341, -10, -341, -55, 155, 1424, 139, 156, 153, -334, -334, 119, -334, -334,
65, -341, -341, -341, -341, 493, -341, -341, -341, -341, 29, -334, -88, 17, -334, -334, -334, -334, 505, -334,
107, -341, -341, 1412, 1510, -341, 111, -341, -341, 104, -334, -334, -334, -334, -334, 149, -334, -334, 1326, 1424,
121, -8, -341, -56, -341, -341, -341, -3, -341, -341, -334, 158, -334, -334, 127, 150, 60, -334, -56, -334,
1510, 2249, -341, -341, 1510, 124, -341, -341, -341, 1510, -334, -334, 1, -334, -334, 1424, 2163, -334, -334, 1424,
1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 159, -334, -334, -334, 1424, 1424, 1424, 1424, 1424, 1424,
1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, -341, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
-341, 1872, -341, -341, -341, -341, -341, 123, -341, 1510, 1424, 1424, 1424, 1424, -334, -334, 1786, -334, -334, -334,
-341, -341, 5, -341, -341, 609, -341, -341, -341, -341, -334, -334, 160, -334, 1424, -334, -334, 61, 1424, 162,
-341, -341, -341, -341, -341, -341, -341, 1510, 1510, -341, -334, -334, -334, 621, -334, -334, -334, -334, -334, -334,
-341, -341, 1510, -341, 122, -341, -341, 16, 1510, 104, -334, -334, -334, -334, -334, 1424, 1424, -334, -334, -334,
-341, -24, -341, -341, 125, 126, 73, 130, -341, -341, 1424, -334, 168, -334, -334, 62, 1424, 127, -334, -25,
-341, -341, -341, -341, 44, 44, 15, 15, 100, 100, -334, -334, 169, 166, 101, 165, -334, -334, -334, -334,
100, 100, -51, -51, 97, 76, 83, 85, 119, 118, -334, -334, 71, 71, -32, -32, 126, 126, 126, 126,
79, -341, 169, 26, 841, 957, 7, -341, 1054, 609, -48, -48, 134, 103, 106, 109, 152, 151, 116, -334,
-341, -341, 128, -341, -341, 131, -341, 1510, -341, -341, 205, 33, 853, 969, 15, -334, 25, -334, 1066, 621,
1510, 132, -341, -341, -341, -341, 1054, 123, 126, 104, -334, -334, 171, -334, -334, 172, -334, 1424, -334, -334,
2181, 135, 133, -341, -341, 136, -341, 1510, -341, 134, 1424, 176, -334, -334, -334, -334, 1066, 160, 173, 166,
139, 216, -341, 137, 725, -341, 140, 9, 1510, 725, 127, 2095, 177, 175, -334, -334, 193, -334, 1424, -334,
123, 1510, -341, -341, -341, -341, 141, 126, -341, -341, 187, 197, 287, -334, -334, 198, 737, -334, 199, 28,
-341, -341 1424, 737, 160, 1424, -334, -334, -334, -334, 202, 166,
-334, -334, -334, -334
}; };
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
...@@ -868,70 +872,71 @@ static const yytype_uint16 yydefact[] = ...@@ -868,70 +872,71 @@ static const yytype_uint16 yydefact[] =
128, 174, 175, 176, 177, 178, 179, 0, 125, 124, 128, 174, 175, 176, 177, 178, 179, 0, 125, 124,
0, 154, 180, 182, 195, 196, 183, 184, 185, 186, 0, 154, 180, 182, 195, 196, 183, 184, 185, 186,
187, 188, 189, 190, 191, 181, 192, 193, 194, 0, 187, 188, 189, 190, 191, 181, 192, 193, 194, 0,
198, 261, 262, 0, 96, 106, 0, 111, 116, 132, 198, 266, 267, 0, 96, 106, 0, 111, 116, 132,
0, 130, 122, 0, 133, 141, 152, 197, 0, 258, 0, 130, 122, 0, 133, 141, 152, 197, 0, 263,
260, 129, 121, 0, 138, 139, 2, 3, 201, 0, 265, 129, 121, 0, 138, 139, 2, 3, 201, 0,
0, 87, 0, 94, 106, 126, 107, 108, 109, 97, 0, 87, 0, 94, 106, 126, 107, 108, 109, 97,
0, 106, 0, 88, 2, 117, 131, 0, 93, 0, 0, 106, 0, 88, 2, 117, 131, 0, 93, 0,
123, 142, 134, 0, 1, 259, 0, 0, 199, 149, 123, 142, 134, 0, 1, 264, 0, 0, 199, 149,
0, 147, 0, 263, 98, 103, 105, 110, 0, 112, 0, 147, 0, 268, 98, 103, 105, 110, 0, 112,
99, 0, 0, 86, 0, 0, 0, 0, 203, 4, 99, 0, 0, 86, 0, 0, 0, 0, 203, 4,
8, 6, 7, 9, 0, 0, 0, 36, 35, 37, 8, 6, 7, 9, 0, 0, 0, 36, 35, 37,
34, 5, 11, 30, 13, 18, 19, 0, 0, 24, 34, 5, 11, 30, 13, 18, 19, 0, 0, 24,
0, 38, 0, 42, 45, 48, 53, 56, 58, 60, 0, 38, 0, 42, 45, 48, 53, 56, 58, 60,
62, 64, 66, 68, 85, 0, 28, 89, 0, 0, 62, 64, 66, 68, 85, 0, 28, 89, 0, 0,
0, 146, 0, 0, 0, 243, 0, 0, 0, 0, 0, 146, 0, 0, 0, 248, 0, 0, 0, 0,
0, 221, 230, 234, 38, 70, 83, 0, 212, 0, 0, 0, 0, 0, 223, 232, 236, 38, 70, 83,
152, 215, 232, 214, 213, 0, 216, 217, 218, 219, 0, 212, 0, 152, 215, 234, 214, 213, 0, 216,
100, 102, 104, 0, 0, 118, 0, 211, 120, 0, 217, 218, 219, 220, 221, 100, 102, 104, 0, 0,
209, 0, 207, 0, 204, 31, 32, 0, 15, 16, 118, 0, 211, 120, 0, 209, 0, 207, 0, 204,
0, 0, 22, 21, 0, 23, 25, 27, 33, 0, 31, 32, 0, 15, 16, 0, 0, 22, 21, 0,
23, 25, 27, 33, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 153, 202, 0, 150, 151, 148,
202, 0, 150, 151, 148, 254, 253, 228, 245, 0, 259, 258, 230, 250, 0, 262, 260, 0, 0, 0,
257, 255, 0, 241, 220, 0, 73, 74, 76, 75, 243, 246, 222, 0, 73, 74, 76, 75, 78, 79,
78, 79, 80, 81, 82, 77, 72, 0, 0, 235, 80, 81, 82, 77, 72, 0, 0, 237, 233, 235,
231, 233, 0, 113, 0, 115, 119, 0, 0, 0, 0, 113, 0, 115, 119, 0, 0, 0, 205, 0,
205, 0, 90, 10, 0, 17, 2, 3, 14, 20, 90, 10, 0, 17, 2, 3, 14, 20, 26, 39,
26, 39, 40, 41, 44, 43, 46, 47, 51, 52, 40, 41, 44, 43, 46, 47, 51, 52, 49, 50,
49, 50, 54, 55, 57, 59, 61, 63, 65, 67, 54, 55, 57, 59, 61, 63, 65, 67, 0, 200,
0, 200, 0, 0, 0, 0, 0, 256, 0, 222, 0, 0, 0, 0, 0, 261, 0, 242, 0, 224,
71, 84, 0, 114, 206, 0, 208, 0, 91, 12, 71, 84, 0, 114, 206, 0, 208, 0, 91, 12,
0, 0, 227, 229, 248, 247, 250, 228, 239, 0, 0, 0, 229, 231, 253, 252, 255, 230, 0, 244,
0, 0, 0, 101, 210, 0, 69, 0, 249, 0, 0, 0, 0, 0, 101, 210, 0, 69, 0, 254,
0, 238, 236, 0, 0, 223, 0, 0, 251, 0, 0, 0, 240, 238, 241, 0, 0, 225, 0, 0,
228, 0, 225, 242, 224, 92, 0, 252, 246, 237, 256, 0, 230, 0, 227, 247, 226, 92, 0, 257,
240, 244 251, 239, 245, 249
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] = static const yytype_int16 yypgoto[] =
{ {
-341, -39, -341, -341, -341, -341, -341, -341, 20, -341, -334, -39, -334, -334, -334, -334, -334, -334, 76, -334,
-341, -341, -341, 54, -341, -47, -41, -123, -44, -6, -334, -334, -334, -100, -334, -12, -11, -86, -15, 78,
3, -7, -2, 4, 6, -341, -98, -129, -341, -137, 89, 85, 90, 92, 93, -334, -104, -126, -334, -136,
-124, -341, 8, 13, -341, -341, -341, 138, 164, 158, -120, -334, 4, 12, -334, -334, -334, 223, 258, 253,
142, -341, -341, -317, -341, -341, -99, 25, -68, 257, 228, -334, -334, -324, -334, -334, -102, -44, -68, 352,
-341, -341, 82, 1, 0, -341, -341, -341, -103, -125, -334, -334, 178, -45, 0, -334, -334, -334, -99, -132,
46, -31, -209, -64, -199, -318, -341, -341, -341, -110, 137, 51, -211, 16, -186, -325, -6, -334, -334, -26,
-340, -341, -341, -88, -1, -63, -341, -341, -80, -341, -333, -334, -334, -89, 80, 26, -334, -334, -334, -334,
-341, -341, -341, -341, -341, -341, -341, -341, 195, -341, 2, -334, -334, -334, -334, -334, -334, -334, -334, -334,
-341 292, -334, -334
}; };
/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] = static const yytype_int16 yydefgoto[] =
{ {
-1, 220, 151, 152, 153, 304, 154, 155, 156, 157, -1, 225, 151, 152, 153, 312, 154, 155, 156, 157,
158, 159, 160, 194, 162, 163, 164, 165, 166, 167, 158, 159, 160, 197, 162, 163, 164, 165, 166, 167,
168, 169, 170, 171, 172, 173, 195, 196, 287, 197, 168, 169, 170, 171, 172, 173, 198, 199, 295, 200,
175, 109, 198, 199, 63, 64, 65, 125, 99, 100, 175, 109, 201, 202, 63, 64, 65, 125, 99, 100,
126, 66, 67, 68, 69, 101, 70, 71, 72, 73, 126, 66, 67, 68, 69, 101, 70, 71, 72, 73,
74, 120, 121, 75, 176, 77, 179, 117, 137, 138, 74, 120, 121, 75, 176, 77, 179, 117, 137, 138,
221, 222, 218, 201, 202, 203, 204, 275, 362, 383, 226, 227, 223, 204, 205, 206, 207, 283, 373, 395,
332, 333, 334, 384, 205, 206, 207, 372, 361, 208, 340, 341, 342, 396, 208, 209, 210, 383, 211, 212,
338, 267, 335, 356, 369, 370, 209, 78, 79, 80, 372, 213, 348, 272, 343, 366, 380, 381, 214, 78,
92 79, 80, 92
}; };
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
...@@ -939,314 +944,283 @@ static const yytype_int16 yydefgoto[] = ...@@ -939,314 +944,283 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] = static const yytype_int16 yytable[] =
{ {
76, 89, 110, 217, 123, 295, 291, 216, 61, 227, 76, 89, 110, 123, 61, 229, 222, 135, 303, 174,
135, 95, 224, 62, 178, 174, 353, 371, 135, 81, 232, 221, 62, 161, 90, 135, 81, 363, 178, 95,
301, 359, 181, 7, 131, 228, 229, 257, 182, 105, 309, 262, 299, 7, 370, 106, 91, 174, 111, 105,
236, 132, 127, 174, 86, 87, 246, 247, 135, 359, 112, 161, 127, 241, 382, 135, 86, 87, 116, 251,
389, 136, 96, 97, 98, 102, 230, 90, 103, 136, 252, 136, 370, 93, 230, 231, 229, 94, 82, 136,
231, 82, 272, 224, 27, 28, 382, 29, 302, 91, 96, 97, 98, 277, 27, 28, 263, 29, 310, 401,
127, 382, 258, 129, 95, 37, 88, 219, 213, 136, 127, 394, 243, 129, 95, 37, 394, 224, 88, 136,
76, 248, 249, 76, 111, 214, 261, 93, 76, 135, 76, 279, 131, 76, 253, 254, 135, 135, 76, 132,
135, 94, 347, 76, 116, 217, 61, 113, 210, 294, 266, 357, 61, 76, 247, 218, 248, 174, 215, 358,
348, 62, 233, 305, 106, 96, 97, 98, 234, 112, 62, 161, 219, 222, 118, 96, 97, 98, 302, 313,
76, 288, 303, 299, 289, 310, 300, -95, 288, 76, 76, 181, 238, 119, 233, 234, 311, 182, 239, 76,
136, 136, 357, 119, 386, 174, 288, 76, 288, 337, 136, 136, 296, 318, 174, -95, 102, 76, 161, 103,
288, 330, 200, 318, 319, 320, 321, 299, 76, 118, 367, -28, 203, 113, 113, 235, 296, 338, 76, 236,
344, 242, 336, 243, 122, 76, 224, 76, 84, 85, 368, 84, 85, 398, 229, 76, 296, 76, 344, 296,
291, 276, 277, 278, 279, 280, 281, 282, 283, 284, 296, 122, 346, 297, 319, 320, 321, 161, 161, 161,
285, 2, 3, 4, 96, 97, 98, 130, 340, 341,
286, 180, 135, 239, 240, 241, 133, 161, 342, -28,
177, 113, 390, 81, 345, 104, 87, -29, 76, 76,
86, 87, 232, 244, 245, 161, 250, 251, 262, 263,
288, 350, 308, 136, 174, 314, 315, 237, 225, 226,
174, 358, 252, 316, 317, 200, 322, 323, 253, 254,
255, 256, 259, 292, 268, 265, 238, 266, 296, 358,
269, 366, 270, 365, 273, 351, 274, 298, -154, 343,
377, -226, 349, 380, -198, 363, 367, 288, 364, 360,
374, 387, 375, 376, 379, 352, 324, 326, 378, 174,
381, 309, 217, 327, 385, 391, 325, 360, 124, 128,
328, 76, 83, 329, 264, 297, 211, 161, 346, 388,
212, 354, 355, 115, 339, 200, 368, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 110, 311, 312, 313, 161, 161, 161, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
161, 161, 0, 0, 0, 0, 0, 0, 0, 0, 161, 161, 161, 299, 135, 326, 327, 328, 329, 350,
373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 307, 296, 307, 308, 345, 354, 130, 76, 76,
0, 0, 0, 0, 200, 200, 0, 0, 200, 200, 352, 177, 402, 2, 3, 4, 355, 96, 97, 98,
0, 0, 0, 0, 0, 0, 161, 0, 0, 0, 244, 245, 246, 104, 87, 133, 174, 316, 136, 180,
0, 0, 161, 0, 0, 0, 200, 0, 0, 0, 161, 81, 174, 86, 87, -29, 161, 237, 203, 249,
76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 242, 369, 284, 285, 286, 287, 288, 289, 290,
0, 0, 0, 0, 200, 0, 0, 0, 0, 200, 291, 292, 293, 255, 256, 267, 268, 296, 360, 257,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 369, 258, 294, 259, 377, 322, 323, 376, 324, 325,
11, 183, 184, 185, 0, 186, 187, 188, 189, 0, 330, 331, 389, 260, 261, 264, 371, 270, 273, 271,
0, 161, 12, 13, 14, 15, 16, 17, 18, 19, 275, 280, 362, 174, 399, 300, 306, 161, 274, 278,
20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 281, 361, 282, -154, 371, 304, 76, 222, -228, -198,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 8, 9, 10, 11, 347, 353, 359, 296, 374, 375,
39, 40, 41, 190, 42, 43, 44, 45, 46, 47, 378, 194, 386, 203, 387, 12, 13, 14, 15, 16,
48, 49, 50, 51, 52, 53, 54, 55, 0, 56, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
57, 58, 59, 139, 60, 140, 141, 142, 143, 0, 388, 390, 391, 110, 392, 31, 32, 33, 34, 35,
0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 36, 393, 317, 397, 40, 41, 403, 42, 43, 44,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
0, 146, 0, 0, 0, 191, 192, 0, 0, 0, 55, 385, 56, 57, 58, 332, 139, 60, 140, 141,
0, 193, 147, 148, 149, 150, 1, 2, 3, 4, 142, 143, 203, 203, 334, 144, 145, 333, 203, 203,
5, 6, 7, 8, 9, 10, 11, 183, 184, 185, 335, 216, 124, 336, 128, 337, 217, 83, 356, 364,
0, 186, 187, 188, 189, 0, 0, 0, 12, 13, 269, 305, 384, 349, 146, 400, 203, 220, 379, 365,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 115, 76, 0, 0, 0, 147, 148, 149, 150, 0,
24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0,
33, 34, 35, 36, 37, 38, 39, 40, 41, 190, 0, 203, 1, 2, 3, 4, 5, 6, 7, 8,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 0, 56, 57, 58, 59, 139,
60, 140, 141, 142, 143, 0, 0, 0, 144, 145,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 146, 0, 0,
0, 191, 290, 0, 0, 0, 0, 193, 147, 148,
149, 150, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 183, 184, 185, 0, 186, 187, 188, 9, 10, 11, 183, 184, 185, 0, 186, 187, 188,
189, 0, 0, 0, 12, 13, 14, 15, 16, 17, 189, 190, 191, 192, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 0, 29, 30, 31, 32, 33, 34, 35, 36, 28, 0, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 190, 42, 43, 44, 45, 37, 38, 39, 40, 41, 193, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
0, 56, 57, 58, 59, 139, 60, 140, 141, 142, 0, 56, 57, 58, 59, 139, 60, 140, 141, 142,
143, 0, 0, 0, 144, 145, 0, 0, 0, 0, 143, 0, 0, 0, 144, 145, 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, 146, 0, 0, 0, 191, 0, 0, 0, 0, 0, 146, 0, 0, 0, 194, 195, 0,
0, 0, 0, 193, 147, 148, 149, 150, 1, 2, 0, 0, 0, 196, 147, 148, 149, 150, 1, 2,
3, 4, 5, 6, 7, 8, 9, 10, 11, 183, 3, 4, 5, 6, 7, 8, 9, 10, 11, 183,
184, 185, 0, 186, 187, 188, 189, 0, 0, 0, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 0, 29, 30, 22, 23, 24, 25, 26, 27, 28, 0, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 190, 42, 43, 44, 45, 46, 47, 48, 49, 41, 193, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 54, 55, 0, 56, 57, 58, 50, 51, 52, 53, 54, 55, 0, 56, 57, 58,
59, 139, 60, 140, 141, 142, 143, 0, 0, 0, 59, 139, 60, 140, 141, 142, 143, 0, 0, 0,
144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
0, 0, 0, 122, 0, 0, 0, 0, 0, 193, 0, 0, 0, 194, 298, 0, 0, 0, 0, 196,
147, 148, 149, 150, 1, 2, 3, 4, 5, 6, 147, 148, 149, 150, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 183, 184, 185, 0, 186, 7, 8, 9, 10, 11, 183, 184, 185, 0, 186,
187, 188, 189, 0, 0, 0, 12, 13, 14, 15, 187, 188, 189, 190, 191, 192, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 190, 42, 43, 35, 36, 37, 38, 39, 40, 41, 193, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 0, 56, 57, 58, 59, 139, 60, 140, 54, 55, 0, 56, 57, 58, 59, 139, 60, 140,
141, 142, 143, 0, 0, 0, 144, 145, 0, 0, 141, 142, 143, 0, 0, 0, 144, 145, 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, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 194,
0, 0, 0, 0, 0, 193, 147, 148, 149, 150, 0, 0, 0, 0, 0, 196, 147, 148, 149, 150,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 183, 184, 185, 0, 186, 187, 188, 189, 190,
0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 191, 192, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 0,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 0, 42, 43, 44, 45, 46, 47, 39, 40, 41, 193, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 0, 56, 48, 49, 50, 51, 52, 53, 54, 55, 0, 56,
57, 58, 59, 139, 60, 140, 141, 142, 143, 0, 57, 58, 59, 139, 60, 140, 141, 142, 143, 0,
0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 144, 145, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 134, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4, 146, 6, 7, 8, 9, 10, 11, 0, 0, 0, 146, 0, 0, 0, 122, 0, 0, 0, 0,
0, 193, 147, 148, 149, 150, 0, 0, 0, 12, 0, 196, 147, 148, 149, 150, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 183, 184, 185,
0, 186, 187, 188, 189, 190, 191, 192, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 0, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 193,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 0, 56, 57, 58, 59, 139,
60, 140, 141, 142, 143, 0, 0, 0, 144, 145,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 146, 0, 0,
0, 0, 0, 0, 0, 0, 0, 196, 147, 148,
149, 150, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 0, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 0, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
0, 56, 57, 58, 59, 139, 60, 140, 141, 142,
143, 0, 0, 0, 144, 145, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 134,
2, 3, 4, 146, 6, 7, 8, 9, 10, 11,
0, 0, 0, 196, 147, 148, 149, 150, 0, 0,
0, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 0, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 0, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 0, 56, 57,
58, 59, 139, 60, 140, 141, 142, 143, 0, 0,
0, 144, 145, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 3, 4, 0, 0,
146, 8, 9, 10, 11, 0, 0, 0, 0, 0,
0, 147, 148, 149, 150, 0, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 0, 0, 0, 0, 0, 31, 32, 33, 34,
35, 36, 0, 0, 0, 40, 41, 0, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 0, 56, 57, 58, 0, 107, 60, 0,
0, 8, 9, 10, 11, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 0, 0, 0, 0, 108, 31, 32, 33, 34,
35, 36, 0, 0, 0, 40, 41, 0, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 0, 56, 57, 58, 0, 139, 60, 140,
141, 142, 143, 0, 0, 0, 144, 145, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 146, 8, 9, 10, 11,
0, 0, 0, 0, 0, 276, 147, 148, 149, 150,
0, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 0, 0, 0, 0,
0, 31, 32, 33, 34, 35, 36, 0, 0, 0,
40, 41, 0, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 0, 56, 57,
58, 0, 139, 60, 140, 141, 142, 143, 0, 0,
0, 144, 145, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
146, 0, 0, 301, 8, 9, 10, 11, 0, 0,
0, 147, 148, 149, 150, 0, 0, 0, 0, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 0, 29, 30, 31, 23, 24, 25, 26, 0, 0, 0, 0, 0, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 0, 0, 0, 40, 41,
0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 0, 56, 57, 58, 59, 51, 52, 53, 54, 55, 0, 56, 57, 58, 0,
139, 60, 140, 141, 142, 143, 0, 0, 0, 144, 139, 60, 140, 141, 142, 143, 0, 0, 0, 144,
145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2, 3, 4, 0, 0, 146, 8, 0, 0, 0, 0, 0, 0, 0, 0, 146, 8,
9, 10, 11, 0, 0, 0, 0, 0, 0, 147, 9, 10, 11, 0, 0, 0, 0, 0, 0, 147,
148, 149, 150, 0, 12, 13, 14, 15, 16, 17, 148, 149, 150, 0, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
0, 0, 0, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 31, 32, 33, 34, 35, 36,
0, 0, 0, 40, 41, 0, 42, 43, 44, 45, 0, 0, 0, 40, 240, 0, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
0, 56, 57, 58, 0, 107, 60, 0, 0, 8,
9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
0, 0, 0, 108, 31, 32, 33, 34, 35, 36,
0, 0, 0, 40, 41, 0, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
0, 56, 57, 58, 0, 139, 60, 140, 141, 142, 0, 56, 57, 58, 0, 139, 60, 140, 141, 142,
143, 0, 0, 0, 144, 145, 0, 0, 0, 0, 143, 0, 0, 0, 144, 145, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 134,
2, 3, 4, 146, 6, 7, 8, 9, 10, 11,
0, 0, 0, 0, 147, 148, 149, 150, 0, 0,
0, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 0, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 0, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 0, 56, 57,
58, 59, 0, 60, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 134, 2, 3, 4, 0, 6,
7, 8, 9, 10, 11, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 228, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 0, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 0, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 0, 56, 57, 58, 59, 0, 60, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 134,
2, 3, 4, 0, 6, 7, 8, 9, 10, 11,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 146, 0, 0, 215, 8, 9, 10, 265, 12, 13, 14, 15, 16, 17, 18, 19, 20,
11, 0, 0, 0, 147, 148, 149, 150, 0, 0, 21, 22, 23, 24, 25, 26, 27, 28, 0, 29,
0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 40, 41, 0, 42, 43, 44, 45, 46, 47, 48,
0, 0, 31, 32, 33, 34, 35, 36, 0, 0, 49, 50, 51, 52, 53, 54, 55, 0, 56, 57,
0, 40, 41, 0, 42, 43, 44, 45, 46, 47, 58, 59, 0, 60, 0, 0, 0, 0, 0, 0,
48, 49, 50, 51, 52, 53, 54, 55, 0, 56, 0, 114, 0, 0, 1, 2, 3, 4, 5, 6,
57, 58, 0, 139, 60, 140, 141, 142, 143, 0, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0,
0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339, 12, 13, 14, 15,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
0, 146, 8, 9, 10, 11, 0, 0, 0, 0, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34,
0, 271, 147, 148, 149, 150, 0, 12, 13, 14, 35, 36, 37, 38, 39, 40, 41, 0, 42, 43,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
25, 26, 0, 0, 0, 0, 0, 31, 32, 33, 54, 55, 0, 56, 57, 58, 59, 0, 60, 1,
34, 35, 36, 0, 0, 0, 40, 41, 0, 42, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 0, 56, 57, 58, 0, 139, 60,
140, 141, 142, 143, 0, 0, 0, 144, 145, 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, 146, 0, 0, 293, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20,
8, 9, 10, 11, 0, 0, 0, 147, 148, 149, 21, 22, 23, 24, 25, 26, 27, 28, 0, 29,
150, 0, 0, 0, 0, 12, 13, 14, 15, 16, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 40, 41, 0, 42, 43, 44, 45, 46, 47, 48,
0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 49, 50, 51, 52, 53, 54, 55, 0, 56, 57,
36, 0, 0, 0, 40, 41, 0, 42, 43, 44, 58, 59, 0, 60, 134, 2, 3, 4, 0, 6,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0,
55, 0, 56, 57, 58, 0, 139, 60, 140, 141, 0, 0, 0, 0, 0, 0, 12, 13, 14, 15,
142, 143, 0, 0, 0, 144, 145, 0, 0, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 0, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 0, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 0, 56, 57, 58, 59, 0, 60, 2,
3, 4, 0, 0, 0, 8, 9, 10, 11, 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, 146, 8, 9, 10, 11, 0,
0, 0, 0, 0, 0, 147, 148, 149, 150, 0,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 0, 0, 0, 0, 0, 22, 23, 24, 25, 26, 0, 0, 0, 0, 0,
31, 32, 33, 34, 35, 36, 0, 0, 0, 40, 31, 32, 33, 34, 35, 36, 0, 0, 0, 40,
235, 0, 42, 43, 44, 45, 46, 47, 48, 49, 41, 0, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 54, 55, 0, 56, 57, 58, 50, 51, 52, 53, 54, 55, 0, 56, 57, 58,
0, 139, 60, 140, 141, 142, 143, 0, 0, 0, 0, 0, 60, 8, 9, 10, 11, 0, 0, 0,
144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
0, 0, 0, 0, 0, 134, 2, 3, 4, 146, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 24, 25, 26, 0, 0, 0, 0, 0, 31, 32,
147, 148, 149, 150, 0, 0, 0, 12, 13, 14, 33, 34, 35, 36, 0, 0, 0, 40, 41, 0,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 52, 53, 54, 55, 0, 56, 57, 58, 0, 314,
34, 35, 36, 37, 38, 39, 40, 41, 0, 42, 315, 8, 9, 10, 11, 0, 0, 0, 0, 0,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 0, 56, 57, 58, 59, 0, 60,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
134, 2, 3, 4, 0, 6, 7, 8, 9, 10,
11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 223, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 0,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 0, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 0, 56,
57, 58, 59, 0, 60, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 134, 2, 3, 4, 0,
6, 7, 8, 9, 10, 11, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 260, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 0, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 0, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 0, 56, 57, 58, 59, 0, 60,
0, 0, 0, 0, 0, 0, 0, 114, 0, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 331, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 0,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 0, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 0, 56,
57, 58, 59, 0, 60, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 0, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 0, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 0, 56, 57, 58, 59, 0, 60,
134, 2, 3, 4, 0, 6, 7, 8, 9, 10,
11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 0,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 0, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 0, 56,
57, 58, 59, 0, 60, 2, 3, 4, 0, 0,
0, 8, 9, 10, 11, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 0, 0, 0, 0, 0, 31, 32, 33, 34, 26, 0, 0, 0, 0, 0, 31, 32, 33, 34,
35, 36, 0, 0, 0, 40, 41, 0, 42, 43, 35, 36, 0, 0, 0, 40, 41, 0, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 0, 56, 57, 58, 0, 0, 60, 8, 54, 55, 0, 56, 57, 58, 0, 0, 60
9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 0,
0, 0, 0, 0, 31, 32, 33, 34, 35, 36,
0, 0, 0, 40, 41, 0, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
0, 56, 57, 58, 0, 306, 307, 8, 9, 10,
11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 0, 0, 0,
0, 0, 31, 32, 33, 34, 35, 36, 0, 0,
0, 40, 41, 0, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 0, 56,
57, 58, 0, 0, 60
}; };
static const yytype_int16 yycheck[] = static const yytype_int16 yycheck[] =
{ {
0, 40, 70, 132, 92, 214, 205, 131, 0, 146, 0, 40, 70, 92, 0, 137, 132, 109, 219, 113,
109, 9, 137, 0, 117, 113, 334, 357, 117, 44, 146, 131, 0, 113, 104, 117, 44, 342, 117, 9,
76, 338, 105, 9, 106, 85, 86, 92, 111, 68, 76, 92, 208, 9, 348, 69, 114, 131, 73, 68,
159, 113, 100, 131, 76, 77, 87, 88, 137, 356, 74, 131, 100, 159, 367, 137, 76, 77, 83, 87,
380, 109, 40, 41, 42, 111, 106, 104, 114, 117, 88, 109, 366, 105, 144, 145, 178, 111, 76, 117,
110, 76, 189, 178, 40, 41, 374, 43, 114, 114, 40, 41, 42, 189, 40, 41, 127, 43, 114, 392,
128, 379, 127, 102, 9, 51, 108, 135, 106, 137, 128, 386, 162, 102, 9, 51, 391, 135, 108, 137,
70, 122, 123, 73, 73, 113, 179, 105, 78, 178, 70, 191, 106, 73, 122, 123, 178, 179, 78, 113,
179, 111, 106, 83, 83, 214, 78, 106, 127, 213, 179, 106, 78, 83, 116, 106, 118, 191, 127, 114,
114, 78, 105, 230, 69, 40, 41, 42, 111, 74, 78, 191, 113, 219, 108, 40, 41, 42, 218, 235,
100, 111, 105, 111, 114, 234, 114, 105, 111, 109, 100, 105, 105, 76, 85, 86, 105, 111, 111, 109,
178, 179, 105, 76, 105, 213, 111, 117, 111, 114, 178, 179, 111, 239, 218, 105, 111, 117, 218, 114,
111, 258, 122, 246, 247, 248, 249, 111, 128, 108, 105, 104, 122, 106, 106, 106, 111, 263, 128, 110,
114, 116, 269, 118, 108, 135, 261, 137, 40, 41, 105, 40, 41, 105, 266, 135, 111, 137, 274, 111,
339, 94, 95, 96, 97, 98, 99, 100, 101, 102, 111, 108, 278, 114, 244, 245, 246, 247, 248, 249,
103, 4, 5, 6, 40, 41, 42, 104, 287, 288, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
113, 113, 261, 119, 120, 121, 108, 113, 292, 104, 260, 261, 262, 349, 266, 251, 252, 253, 254, 295,
114, 106, 381, 44, 298, 76, 77, 104, 178, 179, 296, 111, 111, 111, 114, 114, 114, 104, 178, 179,
76, 77, 105, 83, 84, 131, 89, 90, 79, 80, 300, 114, 393, 4, 5, 6, 306, 40, 41, 42,
111, 112, 231, 261, 292, 242, 243, 104, 144, 145, 119, 120, 121, 76, 77, 108, 300, 236, 266, 113,
298, 338, 126, 244, 245, 205, 250, 251, 125, 124, 300, 44, 306, 76, 77, 104, 306, 105, 208, 83,
91, 93, 107, 106, 104, 114, 162, 114, 107, 356, 84, 104, 348, 94, 95, 96, 97, 98, 99, 100,
104, 350, 114, 347, 104, 56, 109, 106, 104, 107, 101, 102, 103, 89, 90, 79, 80, 111, 112, 126,
367, 108, 107, 17, 104, 107, 104, 111, 107, 338, 366, 125, 113, 124, 360, 247, 248, 357, 249, 250,
105, 378, 109, 107, 105, 333, 252, 254, 114, 347, 255, 256, 378, 91, 93, 107, 348, 114, 104, 114,
113, 231, 381, 255, 114, 114, 253, 356, 94, 101, 114, 112, 341, 357, 390, 106, 106, 357, 104, 104,
256, 261, 5, 257, 182, 219, 128, 213, 299, 379, 104, 56, 109, 104, 366, 107, 266, 393, 108, 104,
128, 335, 335, 78, 275, 275, 356, -1, -1, -1, 10, 11, 12, 13, 112, 107, 107, 111, 107, 107,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, 108, 105, 283, 109, 25, 26, 27, 28, 29,
-1, -1, 360, 239, 240, 241, 242, 243, 244, 245, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 107, 114, 105, 371, 17, 45, 46, 47, 48, 49,
256, 257, -1, -1, -1, -1, -1, -1, -1, -1, 50, 113, 236, 114, 54, 55, 114, 57, 58, 59,
359, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
-1, -1, -1, -1, 334, 335, -1, -1, 338, 339, 70, 370, 72, 73, 74, 257, 76, 77, 78, 79,
-1, -1, -1, -1, -1, -1, 292, -1, -1, -1, 80, 81, 342, 343, 259, 85, 86, 258, 348, 349,
-1, -1, 298, -1, -1, -1, 356, -1, -1, -1, 260, 128, 94, 261, 101, 262, 128, 5, 307, 343,
360, -1, -1, -1, -1, -1, -1, -1, -1, -1, 182, 224, 368, 283, 104, 391, 366, 107, 366, 343,
-1, -1, -1, -1, 374, -1, -1, -1, -1, 379, 78, 371, -1, -1, -1, 115, 116, 117, 118, -1,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 386, -1, -1, -1,
13, 14, 15, 16, -1, 18, 19, 20, 21, -1, -1, 391, 3, 4, 5, 6, 7, 8, 9, 10,
-1, 347, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 104, -1, -1, -1, 108, 109, -1, -1, -1,
-1, 114, 115, 116, 117, 118, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-1, 18, 19, 20, 21, -1, -1, -1, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, -1, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, -1, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 104, -1, -1,
-1, 108, 109, -1, -1, -1, -1, 114, 115, 116,
117, 118, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20,
21, -1, -1, -1, 25, 26, 27, 28, 29, 30, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
...@@ -1254,10 +1228,10 @@ static const yytype_int16 yycheck[] = ...@@ -1254,10 +1228,10 @@ static const yytype_int16 yycheck[] =
-1, 72, 73, 74, 75, 76, 77, 78, 79, 80, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, -1, -1, -1, 85, 86, -1, -1, -1, -1, 81, -1, -1, -1, 85, 86, -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, 104, -1, -1, -1, 108, -1, -1, -1, -1, -1, 104, -1, -1, -1, 108, 109, -1,
-1, -1, -1, 114, 115, 116, 117, 118, 3, 4, -1, -1, -1, 114, 115, 116, 117, 118, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, -1, 18, 19, 20, 21, -1, -1, -1, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, -1, 43, 44, 35, 36, 37, 38, 39, 40, 41, -1, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
...@@ -1266,10 +1240,10 @@ static const yytype_int16 yycheck[] = ...@@ -1266,10 +1240,10 @@ static const yytype_int16 yycheck[] =
75, 76, 77, 78, 79, 80, 81, -1, -1, -1, 75, 76, 77, 78, 79, 80, 81, -1, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104,
-1, -1, -1, 108, -1, -1, -1, -1, -1, 114, -1, -1, -1, 108, 109, -1, -1, -1, -1, 114,
115, 116, 117, 118, 3, 4, 5, 6, 7, 8, 115, 116, 117, 118, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18,
19, 20, 21, -1, -1, -1, 25, 26, 27, 28, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, -1, 43, 44, 45, 46, 47, 48, 39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
...@@ -1277,152 +1251,165 @@ static const yytype_int16 yycheck[] = ...@@ -1277,152 +1251,165 @@ static const yytype_int16 yycheck[] =
69, 70, -1, 72, 73, 74, 75, 76, 77, 78, 69, 70, -1, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, -1, -1, -1, 85, 86, -1, -1, 79, 80, 81, -1, -1, -1, 85, 86, -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, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, 108,
-1, -1, -1, -1, -1, 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, 114, 115, 116, 117, 118,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22,
-1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, -1, 57, 58, 59, 60, 61, 62, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, -1, 72, 63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, -1, 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
6, 104, 8, 9, 10, 11, 12, 13, -1, -1, -1, 104, -1, -1, -1, 108, -1, -1, -1, -1,
-1, 114, 115, 116, 117, 118, -1, -1, -1, 25, -1, 114, 115, 116, 117, 118, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-1, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, -1, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, -1, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, -1, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 104, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 114, 115, 116,
117, 118, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, -1, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, -1, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
-1, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, -1, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4, 5, 6, 104, 8, 9, 10, 11, 12, 13,
-1, -1, -1, 114, 115, 116, 117, 118, -1, -1,
-1, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, -1, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, -1, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, -1, -1,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 4, 5, 6, -1, -1,
104, 10, 11, 12, 13, -1, -1, -1, -1, -1,
-1, 115, 116, 117, 118, -1, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
49, 50, -1, -1, -1, 54, 55, -1, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 70, -1, 72, 73, 74, -1, 76, 77, -1,
-1, 10, 11, 12, 13, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, -1, -1, -1, -1, 114, 45, 46, 47, 48,
49, 50, -1, -1, -1, 54, 55, -1, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 70, -1, 72, 73, 74, -1, 76, 77, 78,
79, 80, 81, -1, -1, -1, 85, 86, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 104, 10, 11, 12, 13,
-1, -1, -1, -1, -1, 114, 115, 116, 117, 118,
-1, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
-1, 45, 46, 47, 48, 49, 50, -1, -1, -1,
54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, -1, 72, 73,
74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
-1, 85, 86, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
104, -1, -1, 107, 10, 11, 12, 13, -1, -1,
-1, 115, 116, 117, 118, -1, -1, -1, -1, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, -1, 43, 44, 45, 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 46, 47, 48, 49, 50, -1, -1, -1, 54, 55,
-1, 57, 58, 59, 60, 61, 62, 63, 64, 65, -1, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 70, -1, 72, 73, 74, 75, 66, 67, 68, 69, 70, -1, 72, 73, 74, -1,
76, 77, 78, 79, 80, 81, -1, -1, -1, 85, 76, 77, 78, 79, 80, 81, -1, -1, -1, 85,
86, -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 4, 5, 6, -1, -1, 104, 10, -1, -1, -1, -1, -1, -1, -1, -1, 104, 10,
11, 12, 13, -1, -1, -1, -1, -1, -1, 115, 11, 12, 13, -1, -1, -1, -1, -1, -1, 115,
116, 117, 118, -1, 25, 26, 27, 28, 29, 30, 116, 117, 118, -1, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
-1, -1, -1, -1, 45, 46, 47, 48, 49, 50, -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
-1, -1, -1, 54, 55, -1, 57, 58, 59, 60, -1, -1, -1, 54, 55, -1, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
-1, 72, 73, 74, -1, 76, 77, -1, -1, 10,
11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
-1, -1, -1, 114, 45, 46, 47, 48, 49, 50,
-1, -1, -1, 54, 55, -1, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
-1, 72, 73, 74, -1, 76, 77, 78, 79, 80, -1, 72, 73, 74, -1, 76, 77, 78, 79, 80,
81, -1, -1, -1, 85, 86, -1, -1, -1, -1, 81, -1, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4, 5, 6, 104, 8, 9, 10, 11, 12, 13,
-1, -1, -1, -1, 115, 116, 117, 118, -1, -1,
-1, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, -1, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, -1, 72, 73,
74, 75, -1, 77, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3, 4, 5, 6, -1, 8,
9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 109, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, -1, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 70, -1, 72, 73, 74, 75, -1, 77, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4, 5, 6, -1, 8, 9, 10, 11, 12, 13,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 104, -1, -1, 107, 10, 11, 12, 109, 25, 26, 27, 28, 29, 30, 31, 32, 33,
13, -1, -1, -1, 115, 116, 117, 118, -1, -1, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43,
-1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
33, 34, 35, 36, 37, 38, 39, -1, -1, -1, 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
-1, -1, 45, 46, 47, 48, 49, 50, -1, -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, 73,
-1, 54, 55, -1, 57, 58, 59, 60, 61, 62, 74, 75, -1, 77, -1, -1, -1, -1, -1, -1,
63, 64, 65, 66, 67, 68, 69, 70, -1, 72, -1, 0, -1, -1, 3, 4, 5, 6, 7, 8,
73, 74, -1, 76, 77, 78, 79, 80, 81, -1, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 25, 26, 27, 28,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
-1, 104, 10, 11, 12, 13, -1, -1, -1, -1, 39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
-1, 114, 115, 116, 117, 118, -1, 25, 26, 27, 49, 50, 51, 52, 53, 54, 55, -1, 57, 58,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
38, 39, -1, -1, -1, -1, -1, 45, 46, 47, 69, 70, -1, 72, 73, 74, 75, -1, 77, 3,
48, 49, 50, -1, -1, -1, 54, 55, -1, 57, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, -1, 72, 73, 74, -1, 76, 77,
78, 79, 80, 81, -1, -1, -1, 85, 86, -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, 104, -1, -1, 107, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33,
10, 11, 12, 13, -1, -1, -1, 115, 116, 117, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43,
118, -1, -1, -1, -1, 25, 26, 27, 28, 29, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 54, 55, -1, 57, 58, 59, 60, 61, 62, 63,
-1, -1, -1, -1, -1, 45, 46, 47, 48, 49, 64, 65, 66, 67, 68, 69, 70, -1, 72, 73,
50, -1, -1, -1, 54, 55, -1, 57, 58, 59, 74, 75, -1, 77, 3, 4, 5, 6, -1, 8,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1,
70, -1, 72, 73, 74, -1, 76, 77, 78, 79, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28,
80, 81, -1, -1, -1, 85, 86, -1, -1, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, -1, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, -1, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 70, -1, 72, 73, 74, 75, -1, 77, 4,
5, 6, -1, -1, -1, 10, 11, 12, 13, -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, 104, 10, 11, 12, 13, -1,
-1, -1, -1, -1, -1, 115, 116, 117, 118, -1,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, -1, -1, -1, -1, -1, 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
45, 46, 47, 48, 49, 50, -1, -1, -1, 54, 45, 46, 47, 48, 49, 50, -1, -1, -1, 54,
55, -1, 57, 58, 59, 60, 61, 62, 63, 64, 55, -1, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, -1, 72, 73, 74, 65, 66, 67, 68, 69, 70, -1, 72, 73, 74,
-1, 76, 77, 78, 79, 80, 81, -1, -1, -1, -1, -1, 77, 10, 11, 12, 13, -1, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
-1, -1, -1, -1, -1, 3, 4, 5, 6, 104, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
8, 9, 10, 11, 12, 13, -1, -1, -1, -1, 37, 38, 39, -1, -1, -1, -1, -1, 45, 46,
115, 116, 117, 118, -1, -1, -1, 25, 26, 27, 47, 48, 49, 50, -1, -1, -1, 54, 55, -1,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
38, 39, 40, 41, -1, 43, 44, 45, 46, 47, 67, 68, 69, 70, -1, 72, 73, 74, -1, 76,
48, 49, 50, 51, 52, 53, 54, 55, -1, 57, 77, 10, 11, 12, 13, -1, -1, -1, -1, -1,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, -1, 72, 73, 74, 75, -1, 77,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 109, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
73, 74, 75, -1, 77, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 3, 4, 5, 6, -1,
8, 9, 10, 11, 12, 13, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 109, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, -1, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, -1, 72, 73, 74, 75, -1, 77,
-1, -1, -1, -1, -1, -1, -1, 0, -1, -1,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 109, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
73, 74, 75, -1, 77, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, -1, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, -1, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, -1, 72, 73, 74, 75, -1, 77,
3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, -1, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
73, 74, 75, -1, 77, 4, 5, 6, -1, -1,
-1, 10, 11, 12, 13, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 25, 26, 27, 28, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, -1, -1, -1, -1, -1, 45, 46, 47, 48, 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
49, 50, -1, -1, -1, 54, 55, -1, 57, 58, 49, 50, -1, -1, -1, 54, 55, -1, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 70, -1, 72, 73, 74, -1, -1, 77, 10, 69, 70, -1, 72, 73, 74, -1, -1, 77
11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
-1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
-1, -1, -1, 54, 55, -1, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
-1, 72, 73, 74, -1, 76, 77, 10, 11, 12,
13, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
-1, -1, 45, 46, 47, 48, 49, 50, -1, -1,
-1, 54, 55, -1, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, -1, 72,
73, 74, -1, -1, 77
}; };
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
...@@ -1436,11 +1423,11 @@ static const yytype_uint8 yystos[] = ...@@ -1436,11 +1423,11 @@ static const yytype_uint8 yystos[] =
54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 72, 73, 74, 75, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75,
77, 160, 161, 162, 163, 164, 169, 170, 171, 172, 77, 160, 161, 162, 163, 164, 169, 170, 171, 172,
174, 175, 176, 177, 178, 181, 182, 183, 215, 216, 174, 175, 176, 177, 178, 181, 182, 183, 217, 218,
217, 44, 76, 177, 40, 41, 76, 77, 108, 129, 219, 44, 76, 177, 40, 41, 76, 77, 108, 129,
104, 114, 218, 105, 111, 9, 40, 41, 42, 166, 104, 114, 220, 105, 111, 9, 40, 41, 42, 166,
167, 173, 111, 114, 76, 129, 175, 76, 114, 159, 167, 173, 111, 114, 76, 129, 175, 76, 114, 159,
176, 181, 175, 106, 0, 216, 181, 185, 108, 76, 176, 181, 175, 106, 0, 218, 181, 185, 108, 76,
179, 180, 108, 201, 166, 165, 168, 176, 167, 129, 179, 180, 108, 201, 166, 165, 168, 176, 167, 129,
104, 106, 113, 108, 3, 174, 176, 186, 187, 76, 104, 106, 113, 108, 3, 174, 176, 186, 187, 76,
78, 79, 80, 81, 85, 86, 104, 115, 116, 117, 78, 79, 80, 81, 85, 86, 104, 115, 116, 117,
...@@ -1448,27 +1435,28 @@ static const yytype_uint8 yystos[] = ...@@ -1448,27 +1435,28 @@ static const yytype_uint8 yystos[] =
140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
150, 151, 152, 153, 154, 158, 182, 114, 186, 184, 150, 151, 152, 153, 154, 158, 182, 114, 186, 184,
113, 105, 111, 14, 15, 16, 18, 19, 20, 21, 113, 105, 111, 14, 15, 16, 18, 19, 20, 21,
56, 108, 109, 114, 141, 154, 155, 157, 160, 161, 22, 23, 24, 56, 108, 109, 114, 141, 154, 155,
182, 191, 192, 193, 194, 202, 203, 204, 207, 214, 157, 160, 161, 182, 191, 192, 193, 194, 202, 203,
129, 165, 168, 106, 113, 107, 158, 155, 190, 176, 204, 206, 207, 209, 216, 129, 165, 168, 106, 113,
129, 188, 189, 109, 187, 141, 141, 157, 85, 86, 107, 158, 155, 190, 176, 129, 188, 189, 109, 187,
106, 110, 105, 105, 111, 55, 155, 104, 141, 119, 141, 141, 157, 85, 86, 106, 110, 105, 105, 111,
120, 121, 116, 118, 83, 84, 87, 88, 122, 123, 55, 155, 104, 141, 119, 120, 121, 116, 118, 83,
89, 90, 126, 125, 124, 91, 93, 92, 127, 107, 84, 87, 88, 122, 123, 89, 90, 126, 125, 124,
109, 186, 79, 80, 180, 114, 114, 209, 104, 104, 91, 93, 92, 127, 107, 109, 186, 79, 80, 180,
114, 114, 157, 104, 109, 195, 94, 95, 96, 97, 114, 114, 211, 104, 104, 114, 114, 157, 104, 158,
98, 99, 100, 101, 102, 103, 113, 156, 111, 114, 112, 104, 109, 195, 94, 95, 96, 97, 98, 99,
109, 192, 106, 107, 158, 190, 107, 188, 106, 111, 100, 101, 102, 103, 113, 156, 111, 114, 109, 192,
114, 76, 114, 105, 133, 157, 76, 77, 129, 136, 106, 107, 158, 190, 107, 188, 106, 111, 114, 76,
155, 141, 141, 141, 143, 143, 144, 144, 145, 145, 114, 105, 133, 157, 76, 77, 129, 136, 155, 141,
145, 145, 146, 146, 147, 148, 149, 150, 151, 152, 141, 141, 143, 143, 144, 144, 145, 145, 145, 145,
157, 109, 198, 199, 200, 210, 157, 114, 208, 202, 146, 146, 147, 148, 149, 150, 151, 152, 157, 109,
198, 199, 200, 212, 157, 114, 157, 112, 210, 202,
155, 155, 158, 107, 114, 158, 189, 106, 114, 107, 155, 155, 158, 107, 114, 158, 189, 106, 114, 107,
112, 56, 201, 193, 191, 203, 211, 105, 157, 171, 112, 56, 201, 193, 191, 203, 213, 105, 105, 157,
174, 206, 196, 107, 107, 158, 155, 104, 206, 212, 171, 174, 208, 196, 107, 107, 158, 155, 104, 208,
213, 198, 205, 129, 105, 109, 107, 157, 114, 105, 214, 215, 198, 205, 194, 129, 105, 109, 107, 157,
17, 113, 193, 197, 201, 114, 105, 157, 197, 198, 114, 105, 17, 113, 193, 197, 201, 114, 105, 157,
190, 114 197, 198, 190, 114
}; };
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
...@@ -1496,11 +1484,11 @@ static const yytype_uint8 yyr1[] = ...@@ -1496,11 +1484,11 @@ static const yytype_uint8 yyr1[] =
182, 182, 182, 182, 182, 182, 182, 182, 182, 184, 182, 182, 182, 182, 182, 182, 182, 182, 182, 184,
183, 185, 183, 186, 186, 187, 187, 188, 188, 189, 183, 185, 183, 186, 186, 187, 187, 188, 188, 189,
189, 190, 191, 192, 192, 193, 193, 193, 193, 193, 189, 190, 191, 192, 192, 193, 193, 193, 193, 193,
194, 195, 196, 194, 197, 197, 199, 198, 200, 198, 193, 193, 194, 195, 196, 194, 197, 197, 199, 198,
201, 201, 202, 202, 203, 203, 204, 205, 205, 206, 200, 198, 201, 201, 202, 202, 203, 203, 204, 205,
206, 208, 207, 209, 207, 210, 207, 211, 211, 212, 205, 206, 207, 207, 208, 208, 210, 209, 211, 209,
212, 213, 213, 214, 214, 214, 214, 214, 215, 215, 212, 209, 213, 213, 214, 214, 215, 215, 216, 216,
216, 216, 218, 217 216, 216, 216, 217, 217, 218, 218, 220, 219
}; };
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
...@@ -1528,11 +1516,11 @@ static const yytype_uint8 yyr2[] = ...@@ -1528,11 +1516,11 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
6, 0, 5, 1, 2, 3, 4, 1, 3, 1, 6, 0, 5, 1, 2, 3, 4, 1, 3, 1,
4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 0, 0, 5, 1, 1, 0, 2, 0, 2, 1, 1, 2, 0, 0, 5, 1, 1, 0, 2,
2, 3, 1, 2, 1, 2, 5, 3, 1, 1, 0, 2, 2, 3, 1, 2, 1, 2, 5, 3,
4, 0, 6, 0, 8, 0, 7, 1, 1, 1, 1, 5, 3, 2, 1, 4, 0, 6, 0, 8,
0, 2, 3, 2, 2, 2, 3, 2, 1, 2, 0, 7, 1, 1, 1, 0, 2, 3, 2, 2,
1, 1, 0, 3 2, 3, 2, 1, 2, 1, 1, 0, 3
}; };
...@@ -4504,36 +4492,48 @@ yyreduce: ...@@ -4504,36 +4492,48 @@ yyreduce:
case 218: case 218:
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[0].interm.intermSwitch); }
break; break;
case 219: case 219:
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[0].interm.intermCase); }
break; break;
case 220: case 220:
{ (yyval.interm.intermAggregate) = 0; } { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
break; break;
case 221: case 221:
{ context->symbolTable.push(); } { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
break; break;
case 222: case 222:
{ context->symbolTable.pop(); } { (yyval.interm.intermAggregate) = 0; }
break; break;
case 223: case 223:
{ context->symbolTable.push(); }
break;
case 224:
{ context->symbolTable.pop(); }
break;
case 225:
{ {
if ((yyvsp[-2].interm.intermAggregate) != 0) { if ((yyvsp[-2].interm.intermAggregate) != 0) {
(yyvsp[-2].interm.intermAggregate)->setOp(EOpSequence); (yyvsp[-2].interm.intermAggregate)->setOp(EOpSequence);
...@@ -4544,43 +4544,43 @@ yyreduce: ...@@ -4544,43 +4544,43 @@ yyreduce:
break; break;
case 224: case 226:
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
break; break;
case 225: case 227:
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
break; break;
case 226: case 228:
{ context->symbolTable.push(); } { context->symbolTable.push(); }
break; break;
case 227: case 229:
{ context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
break; break;
case 228: case 230:
{ context->symbolTable.push(); } { context->symbolTable.push(); }
break; break;
case 229: case 231:
{ context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
break; break;
case 230: case 232:
{ {
(yyval.interm.intermNode) = 0; (yyval.interm.intermNode) = 0;
...@@ -4588,7 +4588,7 @@ yyreduce: ...@@ -4588,7 +4588,7 @@ yyreduce:
break; break;
case 231: case 233:
{ {
if ((yyvsp[-1].interm.intermAggregate)) { if ((yyvsp[-1].interm.intermAggregate)) {
...@@ -4600,7 +4600,7 @@ yyreduce: ...@@ -4600,7 +4600,7 @@ yyreduce:
break; break;
case 232: case 234:
{ {
(yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[0].interm.intermNode), (yyloc)); (yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[0].interm.intermNode), (yyloc));
...@@ -4608,7 +4608,7 @@ yyreduce: ...@@ -4608,7 +4608,7 @@ yyreduce:
break; break;
case 233: case 235:
{ {
(yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[-1].interm.intermAggregate), (yyvsp[0].interm.intermNode), (yyloc)); (yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[-1].interm.intermAggregate), (yyvsp[0].interm.intermNode), (yyloc));
...@@ -4616,19 +4616,19 @@ yyreduce: ...@@ -4616,19 +4616,19 @@ yyreduce:
break; break;
case 234: case 236:
{ (yyval.interm.intermNode) = 0; } { (yyval.interm.intermNode) = 0; }
break; break;
case 235: case 237:
{ (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); } { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
break; break;
case 236: case 238:
{ {
if (context->boolErrorCheck((yylsp[-4]), (yyvsp[-2].interm.intermTypedNode))) if (context->boolErrorCheck((yylsp[-4]), (yyvsp[-2].interm.intermTypedNode)))
...@@ -4638,7 +4638,7 @@ yyreduce: ...@@ -4638,7 +4638,7 @@ yyreduce:
break; break;
case 237: case 239:
{ {
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
...@@ -4647,7 +4647,7 @@ yyreduce: ...@@ -4647,7 +4647,7 @@ yyreduce:
break; break;
case 238: case 240:
{ {
(yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
...@@ -4656,7 +4656,31 @@ yyreduce: ...@@ -4656,7 +4656,31 @@ yyreduce:
break; break;
case 239: case 241:
{
(yyval.interm.intermSwitch) = context->addSwitch((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermAggregate), (yylsp[-4]));
}
break;
case 242:
{
(yyval.interm.intermCase) = context->addCase((yyvsp[-1].interm.intermTypedNode), (yylsp[-2]));
}
break;
case 243:
{
(yyval.interm.intermCase) = context->addDefault((yylsp[-1]));
}
break;
case 244:
{ {
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
...@@ -4666,7 +4690,7 @@ yyreduce: ...@@ -4666,7 +4690,7 @@ yyreduce:
break; break;
case 240: case 245:
{ {
TIntermNode* intermNode; TIntermNode* intermNode;
...@@ -4685,13 +4709,13 @@ yyreduce: ...@@ -4685,13 +4709,13 @@ yyreduce:
break; break;
case 241: case 246:
{ context->symbolTable.push(); ++context->mLoopNestingLevel; } { context->symbolTable.push(); ++context->mLoopNestingLevel; }
break; break;
case 242: case 247:
{ {
context->symbolTable.pop(); context->symbolTable.pop();
...@@ -4701,13 +4725,13 @@ yyreduce: ...@@ -4701,13 +4725,13 @@ yyreduce:
break; break;
case 243: case 248:
{ ++context->mLoopNestingLevel; } { ++context->mLoopNestingLevel; }
break; break;
case 244: case 249:
{ {
if (context->boolErrorCheck((yylsp[0]), (yyvsp[-2].interm.intermTypedNode))) if (context->boolErrorCheck((yylsp[0]), (yyvsp[-2].interm.intermTypedNode)))
...@@ -4719,13 +4743,13 @@ yyreduce: ...@@ -4719,13 +4743,13 @@ yyreduce:
break; break;
case 245: case 250:
{ context->symbolTable.push(); ++context->mLoopNestingLevel; } { context->symbolTable.push(); ++context->mLoopNestingLevel; }
break; break;
case 246: case 251:
{ {
context->symbolTable.pop(); context->symbolTable.pop();
...@@ -4735,7 +4759,7 @@ yyreduce: ...@@ -4735,7 +4759,7 @@ yyreduce:
break; break;
case 247: case 252:
{ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
...@@ -4743,7 +4767,7 @@ yyreduce: ...@@ -4743,7 +4767,7 @@ yyreduce:
break; break;
case 248: case 253:
{ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
...@@ -4751,7 +4775,7 @@ yyreduce: ...@@ -4751,7 +4775,7 @@ yyreduce:
break; break;
case 249: case 254:
{ {
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
...@@ -4759,7 +4783,7 @@ yyreduce: ...@@ -4759,7 +4783,7 @@ yyreduce:
break; break;
case 250: case 255:
{ {
(yyval.interm.intermTypedNode) = 0; (yyval.interm.intermTypedNode) = 0;
...@@ -4767,7 +4791,7 @@ yyreduce: ...@@ -4767,7 +4791,7 @@ yyreduce:
break; break;
case 251: case 256:
{ {
(yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
...@@ -4776,7 +4800,7 @@ yyreduce: ...@@ -4776,7 +4800,7 @@ yyreduce:
break; break;
case 252: case 257:
{ {
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
...@@ -4785,7 +4809,7 @@ yyreduce: ...@@ -4785,7 +4809,7 @@ yyreduce:
break; break;
case 253: case 258:
{ {
(yyval.interm.intermNode) = context->addBranch(EOpContinue, (yylsp[-1])); (yyval.interm.intermNode) = context->addBranch(EOpContinue, (yylsp[-1]));
...@@ -4793,7 +4817,7 @@ yyreduce: ...@@ -4793,7 +4817,7 @@ yyreduce:
break; break;
case 254: case 259:
{ {
(yyval.interm.intermNode) = context->addBranch(EOpBreak, (yylsp[-1])); (yyval.interm.intermNode) = context->addBranch(EOpBreak, (yylsp[-1]));
...@@ -4801,7 +4825,7 @@ yyreduce: ...@@ -4801,7 +4825,7 @@ yyreduce:
break; break;
case 255: case 260:
{ {
(yyval.interm.intermNode) = context->addBranch(EOpReturn, (yylsp[-1])); (yyval.interm.intermNode) = context->addBranch(EOpReturn, (yylsp[-1]));
...@@ -4809,7 +4833,7 @@ yyreduce: ...@@ -4809,7 +4833,7 @@ yyreduce:
break; break;
case 256: case 261:
{ {
(yyval.interm.intermNode) = context->addBranch(EOpReturn, (yyvsp[-1].interm.intermTypedNode), (yylsp[-2])); (yyval.interm.intermNode) = context->addBranch(EOpReturn, (yyvsp[-1].interm.intermTypedNode), (yylsp[-2]));
...@@ -4817,7 +4841,7 @@ yyreduce: ...@@ -4817,7 +4841,7 @@ yyreduce:
break; break;
case 257: case 262:
{ {
FRAG_ONLY("discard", (yylsp[-1])); FRAG_ONLY("discard", (yylsp[-1]));
...@@ -4826,7 +4850,7 @@ yyreduce: ...@@ -4826,7 +4850,7 @@ yyreduce:
break; break;
case 258: case 263:
{ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
...@@ -4835,7 +4859,7 @@ yyreduce: ...@@ -4835,7 +4859,7 @@ yyreduce:
break; break;
case 259: case 264:
{ {
(yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode), (yyloc)); (yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode), (yyloc));
...@@ -4844,7 +4868,7 @@ yyreduce: ...@@ -4844,7 +4868,7 @@ yyreduce:
break; break;
case 260: case 265:
{ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
...@@ -4852,7 +4876,7 @@ yyreduce: ...@@ -4852,7 +4876,7 @@ yyreduce:
break; break;
case 261: case 266:
{ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
...@@ -4860,7 +4884,7 @@ yyreduce: ...@@ -4860,7 +4884,7 @@ yyreduce:
break; break;
case 262: case 267:
{ {
TFunction* function = (yyvsp[0].interm).function; TFunction* function = (yyvsp[0].interm).function;
...@@ -4950,7 +4974,7 @@ yyreduce: ...@@ -4950,7 +4974,7 @@ yyreduce:
break; break;
case 263: case 268:
{ {
//?? Check that all paths return a value if return type != void ? //?? Check that all paths return a value if return type != void ?
......
...@@ -204,6 +204,8 @@ union YYSTYPE ...@@ -204,6 +204,8 @@ union YYSTYPE
TIntermNodePair nodePair; TIntermNodePair nodePair;
TIntermTyped* intermTypedNode; TIntermTyped* intermTypedNode;
TIntermAggregate* intermAggregate; TIntermAggregate* intermAggregate;
TIntermSwitch* intermSwitch;
TIntermCase* intermCase;
}; };
union { union {
TPublicType type; TPublicType type;
......
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