From ad52775476d367199a4cd3b3b47ff8959e63bd59 Mon Sep 17 00:00:00 2001 From: Alexis Hetu Date: Tue, 7 Jul 2015 13:31:44 -0400 Subject: [PATCH] Invariant keyword support MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Added support for the invariant keyword in the parser. Also made sure all in/out types were handled properly in OutputASM.cpp. Change-Id: I40f0bc9caf5bccc691aa60dfaa90bed5d1d7d238 Reviewed-on: https://swiftshader-review.googlesource.com/3663 Tested-by: Alexis Hétu Reviewed-by: Nicolas Capens --- src/OpenGL/compiler/OutputASM.cpp | 12 + src/OpenGL/compiler/ParseHelper.cpp | 18 + src/OpenGL/compiler/ParseHelper.h | 1 + src/OpenGL/compiler/glslang.y | 10 + src/OpenGL/compiler/glslang_tab.cpp | 1502 ++++++++++++++++++----------------- 5 files changed, 804 insertions(+), 739 deletions(-) diff --git a/src/OpenGL/compiler/OutputASM.cpp b/src/OpenGL/compiler/OutputASM.cpp index d2686724d..72d77830d 100644 --- a/src/OpenGL/compiler/OutputASM.cpp +++ b/src/OpenGL/compiler/OutputASM.cpp @@ -1866,6 +1866,12 @@ namespace glsl case EvqFragmentIn: return sw::Shader::PARAMETER_INPUT; case EvqInvariantVaryingIn: return sw::Shader::PARAMETER_INPUT; // FIXME: Guarantee invariance at the backend case EvqInvariantVaryingOut: return sw::Shader::PARAMETER_OUTPUT; // FIXME: Guarantee invariance at the backend + case EvqSmooth: return sw::Shader::PARAMETER_OUTPUT; + case EvqFlat: return sw::Shader::PARAMETER_OUTPUT; + case EvqCentroidOut: return sw::Shader::PARAMETER_OUTPUT; + case EvqSmoothIn: return sw::Shader::PARAMETER_INPUT; + case EvqFlatIn: return sw::Shader::PARAMETER_INPUT; + case EvqCentroidIn: return sw::Shader::PARAMETER_INPUT; case EvqUniform: return sw::Shader::PARAMETER_CONST; case EvqIn: return sw::Shader::PARAMETER_TEMP; case EvqOut: return sw::Shader::PARAMETER_TEMP; @@ -1906,6 +1912,12 @@ namespace glsl case EvqFragmentIn: return varyingRegister(operand); case EvqInvariantVaryingIn: return varyingRegister(operand); case EvqInvariantVaryingOut: return varyingRegister(operand); + case EvqSmooth: return varyingRegister(operand); + case EvqFlat: return varyingRegister(operand); + case EvqCentroidOut: return varyingRegister(operand); + case EvqSmoothIn: return varyingRegister(operand); + case EvqFlatIn: return varyingRegister(operand); + case EvqCentroidIn: return varyingRegister(operand); case EvqUniform: return uniformRegister(operand); case EvqIn: return temporaryRegister(operand); case EvqOut: return temporaryRegister(operand); diff --git a/src/OpenGL/compiler/ParseHelper.cpp b/src/OpenGL/compiler/ParseHelper.cpp index f27486ea7..2fa4512c9 100644 --- a/src/OpenGL/compiler/ParseHelper.cpp +++ b/src/OpenGL/compiler/ParseHelper.cpp @@ -1053,6 +1053,24 @@ bool TParseContext::functionCallLValueErrorCheck(const TFunction *fnCandidate, T return false; } +void TParseContext::es3InvariantErrorCheck(const TQualifier qualifier, const TSourceLoc &invariantLocation) +{ + switch(qualifier) + { + case EvqVaryingOut: + case EvqSmoothOut: + case EvqFlatOut: + case EvqCentroidOut: + case EvqVertexOut: + case EvqFragmentOut: + break; + default: + error(invariantLocation, "Only out variables can be invariant.", "invariant"); + recover(); + break; + } +} + bool TParseContext::supportsExtension(const char* extension) { const TExtensionBehavior& extbehavior = extensionBehavior(); diff --git a/src/OpenGL/compiler/ParseHelper.h b/src/OpenGL/compiler/ParseHelper.h index 52a644e99..fc9f1029e 100644 --- a/src/OpenGL/compiler/ParseHelper.h +++ b/src/OpenGL/compiler/ParseHelper.h @@ -133,6 +133,7 @@ public: bool singleDeclarationErrorCheck(const TPublicType &publicType, const TSourceLoc &identifierLocation); bool layoutLocationErrorCheck(const TSourceLoc& location, const TLayoutQualifier &layoutQualifier); bool functionCallLValueErrorCheck(const TFunction *fnCandidate, TIntermAggregate *); + void es3InvariantErrorCheck(const TQualifier qualifier, const TSourceLoc &invariantLocation); const TExtensionBehavior& extensionBehavior() const { return mDirectiveHandler.extensionBehavior(); } bool supportsExtension(const char* extension); diff --git a/src/OpenGL/compiler/glslang.y b/src/OpenGL/compiler/glslang.y index 21793d85f..47f22fad9 100644 --- a/src/OpenGL/compiler/glslang.y +++ b/src/OpenGL/compiler/glslang.y @@ -997,6 +997,16 @@ type_qualifier $$.setBasic(EbtVoid, $2.qualifier, @2); $$.layoutQualifier = $1; } + | INVARIANT storage_qualifier { + context->es3InvariantErrorCheck($2.qualifier, @1); + $$.setBasic(EbtVoid, $2.qualifier, @2); + $$.invariant = true; + } + | INVARIANT interpolation_qualifier storage_qualifier { + context->es3InvariantErrorCheck($3.qualifier, @1); + $$ = context->joinInterpolationQualifiers(@2, $2.qualifier, @3, $3.qualifier); + $$.invariant = true; + } ; storage_qualifier diff --git a/src/OpenGL/compiler/glslang_tab.cpp b/src/OpenGL/compiler/glslang_tab.cpp index 1853808a2..ca610b934 100644 --- a/src/OpenGL/compiler/glslang_tab.cpp +++ b/src/OpenGL/compiler/glslang_tab.cpp @@ -592,18 +592,18 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 110 +#define YYFINAL 112 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2519 +#define YYLAST 2525 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 128 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 93 /* YYNRULES -- Number of rules. */ -#define YYNRULES 270 +#define YYNRULES 272 /* YYNRULES -- Number of states. */ -#define YYNSTATES 410 +#define YYNSTATES 413 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -674,21 +674,21 @@ static const yytype_uint16 yyprhs[] = 297, 303, 307, 310, 314, 317, 318, 320, 322, 324, 326, 328, 332, 339, 347, 356, 362, 364, 367, 373, 380, 388, 393, 396, 398, 401, 403, 405, 407, 409, - 411, 414, 416, 419, 421, 423, 426, 428, 430, 432, - 435, 438, 440, 442, 445, 447, 449, 451, 456, 458, - 462, 464, 468, 472, 474, 478, 483, 485, 487, 489, - 491, 493, 495, 497, 499, 501, 503, 505, 507, 509, - 511, 513, 515, 517, 519, 521, 523, 525, 527, 529, - 531, 533, 535, 537, 539, 541, 543, 545, 547, 549, - 551, 553, 555, 557, 559, 561, 563, 565, 567, 569, - 571, 572, 579, 580, 586, 588, 591, 595, 600, 602, - 606, 608, 613, 615, 617, 619, 621, 623, 625, 627, - 629, 631, 633, 635, 638, 639, 640, 646, 648, 650, - 651, 654, 655, 658, 661, 665, 667, 670, 672, 675, - 681, 685, 687, 688, 695, 699, 702, 704, 709, 710, - 717, 718, 727, 728, 736, 738, 740, 742, 743, 746, - 750, 753, 756, 759, 763, 766, 768, 771, 773, 775, - 776 + 411, 414, 416, 419, 421, 423, 426, 429, 433, 435, + 437, 439, 442, 445, 447, 449, 452, 454, 456, 458, + 463, 465, 469, 471, 475, 479, 481, 485, 490, 492, + 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, + 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, + 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, + 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, + 574, 576, 578, 579, 586, 587, 593, 595, 598, 602, + 607, 609, 613, 615, 620, 622, 624, 626, 628, 630, + 632, 634, 636, 638, 640, 642, 645, 646, 647, 653, + 655, 657, 658, 661, 662, 665, 668, 672, 674, 677, + 679, 682, 688, 692, 694, 695, 702, 706, 709, 711, + 716, 717, 724, 725, 734, 735, 743, 745, 747, 749, + 750, 753, 757, 760, 763, 766, 770, 773, 775, 778, + 780, 782, 783 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -736,42 +736,43 @@ static const yytype_int16 yyrhs[] = 113, 189, -1, 3, 76, -1, 175, -1, 173, 175, -1, 53, -1, 52, -1, 9, -1, 8, -1, 44, -1, 3, 44, -1, 174, -1, 171, 174, -1, 171, - -1, 177, -1, 177, 174, -1, 9, -1, 40, -1, - 41, -1, 51, 40, -1, 51, 41, -1, 43, -1, - 180, -1, 176, 180, -1, 4, -1, 5, -1, 6, - -1, 75, 104, 178, 105, -1, 179, -1, 178, 111, - 179, -1, 76, -1, 76, 113, 79, -1, 76, 113, - 80, -1, 181, -1, 181, 106, 107, -1, 181, 106, - 157, 107, -1, 55, -1, 11, -1, 12, -1, 13, - -1, 10, -1, 31, -1, 32, -1, 33, -1, 25, - -1, 26, -1, 27, -1, 28, -1, 29, -1, 30, - -1, 34, -1, 35, -1, 36, -1, 37, -1, 38, - -1, 39, -1, 45, -1, 46, -1, 47, -1, 48, - -1, 49, -1, 50, -1, 57, -1, 58, -1, 59, - -1, 70, -1, 61, -1, 62, -1, 63, -1, 64, - -1, 65, -1, 66, -1, 67, -1, 68, -1, 69, - -1, 72, -1, 73, -1, 74, -1, 182, -1, 77, - -1, -1, 54, 76, 108, 183, 185, 109, -1, -1, - 54, 108, 184, 185, 109, -1, 186, -1, 185, 186, - -1, 175, 187, 114, -1, 173, 175, 187, 114, -1, - 188, -1, 187, 111, 188, -1, 76, -1, 76, 106, - 157, 107, -1, 154, -1, 159, -1, 193, -1, 192, - -1, 190, -1, 202, -1, 203, -1, 205, -1, 207, - -1, 209, -1, 216, -1, 108, 109, -1, -1, -1, - 108, 194, 201, 195, 109, -1, 200, -1, 192, -1, - -1, 198, 200, -1, -1, 199, 192, -1, 108, 109, - -1, 108, 201, 109, -1, 191, -1, 201, 191, -1, - 114, -1, 156, 114, -1, 19, 104, 156, 105, 204, - -1, 197, 17, 197, -1, 197, -1, -1, 22, 104, - 156, 105, 206, 193, -1, 23, 157, 112, -1, 24, - 112, -1, 156, -1, 170, 76, 113, 189, -1, -1, - 56, 104, 210, 208, 105, 196, -1, -1, 16, 211, - 197, 56, 104, 156, 105, 114, -1, -1, 18, 104, - 212, 213, 215, 105, 196, -1, 202, -1, 190, -1, - 208, -1, -1, 214, 114, -1, 214, 114, 156, -1, - 15, 114, -1, 14, 114, -1, 21, 114, -1, 21, - 156, 114, -1, 20, 114, -1, 218, -1, 217, 218, - -1, 219, -1, 159, -1, -1, 160, 220, 200, -1 + -1, 177, -1, 177, 174, -1, 3, 174, -1, 3, + 171, 174, -1, 9, -1, 40, -1, 41, -1, 51, + 40, -1, 51, 41, -1, 43, -1, 180, -1, 176, + 180, -1, 4, -1, 5, -1, 6, -1, 75, 104, + 178, 105, -1, 179, -1, 178, 111, 179, -1, 76, + -1, 76, 113, 79, -1, 76, 113, 80, -1, 181, + -1, 181, 106, 107, -1, 181, 106, 157, 107, -1, + 55, -1, 11, -1, 12, -1, 13, -1, 10, -1, + 31, -1, 32, -1, 33, -1, 25, -1, 26, -1, + 27, -1, 28, -1, 29, -1, 30, -1, 34, -1, + 35, -1, 36, -1, 37, -1, 38, -1, 39, -1, + 45, -1, 46, -1, 47, -1, 48, -1, 49, -1, + 50, -1, 57, -1, 58, -1, 59, -1, 70, -1, + 61, -1, 62, -1, 63, -1, 64, -1, 65, -1, + 66, -1, 67, -1, 68, -1, 69, -1, 72, -1, + 73, -1, 74, -1, 182, -1, 77, -1, -1, 54, + 76, 108, 183, 185, 109, -1, -1, 54, 108, 184, + 185, 109, -1, 186, -1, 185, 186, -1, 175, 187, + 114, -1, 173, 175, 187, 114, -1, 188, -1, 187, + 111, 188, -1, 76, -1, 76, 106, 157, 107, -1, + 154, -1, 159, -1, 193, -1, 192, -1, 190, -1, + 202, -1, 203, -1, 205, -1, 207, -1, 209, -1, + 216, -1, 108, 109, -1, -1, -1, 108, 194, 201, + 195, 109, -1, 200, -1, 192, -1, -1, 198, 200, + -1, -1, 199, 192, -1, 108, 109, -1, 108, 201, + 109, -1, 191, -1, 201, 191, -1, 114, -1, 156, + 114, -1, 19, 104, 156, 105, 204, -1, 197, 17, + 197, -1, 197, -1, -1, 22, 104, 156, 105, 206, + 193, -1, 23, 157, 112, -1, 24, 112, -1, 156, + -1, 170, 76, 113, 189, -1, -1, 56, 104, 210, + 208, 105, 196, -1, -1, 16, 211, 197, 56, 104, + 156, 105, 114, -1, -1, 18, 104, 212, 213, 215, + 105, 196, -1, 202, -1, 190, -1, 208, -1, -1, + 214, 114, -1, 214, 114, 156, -1, 15, 114, -1, + 14, 114, -1, 21, 114, -1, 21, 156, 114, -1, + 20, 114, -1, 218, -1, 217, 218, -1, 219, -1, + 159, -1, -1, 160, 220, 200, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -790,21 +791,21 @@ static const yytype_uint16 yyrline[] = 782, 810, 815, 825, 830, 840, 843, 846, 849, 855, 862, 865, 869, 873, 878, 883, 890, 894, 898, 902, 907, 912, 916, 923, 933, 939, 942, 948, 954, 961, - 970, 979, 982, 985, 992, 996, 1003, 1006, 1010, 1014, - 1023, 1032, 1040, 1050, 1057, 1060, 1063, 1069, 1076, 1079, - 1085, 1088, 1091, 1097, 1100, 1105, 1120, 1124, 1128, 1132, - 1136, 1140, 1145, 1150, 1155, 1160, 1165, 1170, 1175, 1180, - 1185, 1190, 1195, 1200, 1206, 1212, 1218, 1224, 1230, 1236, - 1242, 1248, 1254, 1259, 1264, 1273, 1278, 1283, 1288, 1293, + 970, 979, 982, 985, 992, 996, 1000, 1005, 1013, 1016, + 1020, 1024, 1033, 1042, 1050, 1060, 1067, 1070, 1073, 1079, + 1086, 1089, 1095, 1098, 1101, 1107, 1110, 1115, 1130, 1134, + 1138, 1142, 1146, 1150, 1155, 1160, 1165, 1170, 1175, 1180, + 1185, 1190, 1195, 1200, 1205, 1210, 1216, 1222, 1228, 1234, + 1240, 1246, 1252, 1258, 1264, 1269, 1274, 1283, 1288, 1293, 1298, 1303, 1308, 1313, 1318, 1323, 1328, 1333, 1338, 1343, - 1356, 1356, 1359, 1359, 1365, 1368, 1384, 1387, 1396, 1400, - 1406, 1413, 1428, 1432, 1436, 1437, 1443, 1444, 1445, 1446, - 1447, 1448, 1449, 1453, 1454, 1454, 1454, 1464, 1465, 1469, - 1469, 1470, 1470, 1475, 1478, 1488, 1491, 1497, 1498, 1502, - 1510, 1514, 1521, 1521, 1528, 1531, 1540, 1545, 1562, 1562, - 1567, 1567, 1574, 1574, 1582, 1585, 1591, 1594, 1600, 1604, - 1611, 1614, 1617, 1620, 1623, 1632, 1636, 1643, 1646, 1652, - 1652 + 1348, 1353, 1366, 1366, 1369, 1369, 1375, 1378, 1394, 1397, + 1406, 1410, 1416, 1423, 1438, 1442, 1446, 1447, 1453, 1454, + 1455, 1456, 1457, 1458, 1459, 1463, 1464, 1464, 1464, 1474, + 1475, 1479, 1479, 1480, 1480, 1485, 1488, 1498, 1501, 1507, + 1508, 1512, 1520, 1524, 1531, 1531, 1538, 1541, 1550, 1555, + 1572, 1572, 1577, 1577, 1584, 1584, 1592, 1595, 1601, 1604, + 1610, 1614, 1621, 1624, 1627, 1630, 1633, 1642, 1646, 1653, + 1656, 1662, 1662 }; #endif @@ -909,21 +910,21 @@ static const yytype_uint8 yyr1[] = 164, 165, 165, 165, 165, 166, 166, 166, 166, 167, 168, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 169, 169, 170, 170, 171, 171, 172, 173, 173, - 173, 173, 173, 173, 173, 173, 174, 174, 174, 174, - 174, 174, 175, 175, 176, 176, 176, 177, 178, 178, - 179, 179, 179, 180, 180, 180, 181, 181, 181, 181, + 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, + 174, 174, 174, 174, 175, 175, 176, 176, 176, 177, + 178, 178, 179, 179, 179, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 183, 182, 184, 182, 185, 185, 186, 186, 187, 187, - 188, 188, 189, 190, 191, 191, 192, 192, 192, 192, - 192, 192, 192, 193, 194, 195, 193, 196, 196, 198, - 197, 199, 197, 200, 200, 201, 201, 202, 202, 203, - 204, 204, 206, 205, 207, 207, 208, 208, 210, 209, - 211, 209, 212, 209, 213, 213, 214, 214, 215, 215, - 216, 216, 216, 216, 216, 217, 217, 218, 218, 220, - 219 + 181, 181, 183, 182, 184, 182, 185, 185, 186, 186, + 187, 187, 188, 188, 189, 190, 191, 191, 192, 192, + 192, 192, 192, 192, 192, 193, 194, 195, 193, 196, + 196, 198, 197, 199, 197, 200, 200, 201, 201, 202, + 202, 203, 204, 204, 206, 205, 207, 207, 208, 208, + 210, 209, 211, 209, 212, 209, 213, 213, 214, 214, + 215, 215, 216, 216, 216, 216, 216, 217, 217, 218, + 218, 220, 219 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -942,21 +943,21 @@ static const yytype_uint8 yyr2[] = 5, 3, 2, 3, 2, 0, 1, 1, 1, 1, 1, 3, 6, 7, 8, 5, 1, 2, 5, 6, 7, 4, 2, 1, 2, 1, 1, 1, 1, 1, - 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, - 2, 1, 1, 2, 1, 1, 1, 4, 1, 3, - 1, 3, 3, 1, 3, 4, 1, 1, 1, 1, + 2, 1, 2, 1, 1, 2, 2, 3, 1, 1, + 1, 2, 2, 1, 1, 2, 1, 1, 1, 4, + 1, 3, 1, 3, 3, 1, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 6, 0, 5, 1, 2, 3, 4, 1, 3, - 1, 4, 1, 1, 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, 0, 6, 3, 2, 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, 0, 6, 0, 5, 1, 2, 3, 4, + 1, 3, 1, 4, 1, 1, 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, 0, 6, 3, 2, 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 @@ -964,444 +965,436 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 0, 144, 145, 146, 0, 128, 136, 160, 157, - 158, 159, 164, 165, 166, 167, 168, 169, 161, 162, - 163, 170, 171, 172, 173, 174, 175, 137, 138, 141, - 129, 176, 177, 178, 179, 180, 181, 0, 126, 125, - 0, 156, 182, 183, 184, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 185, 195, 196, 197, 0, 199, - 268, 269, 0, 95, 105, 0, 110, 116, 133, 0, - 131, 123, 0, 134, 142, 153, 198, 0, 265, 267, - 130, 122, 0, 139, 140, 0, 202, 0, 86, 0, - 93, 105, 127, 106, 107, 108, 96, 0, 105, 0, - 87, 117, 132, 0, 92, 0, 124, 143, 135, 0, - 1, 266, 0, 200, 0, 150, 0, 148, 0, 270, - 97, 102, 104, 109, 0, 111, 98, 0, 0, 85, - 0, 0, 0, 0, 204, 2, 6, 4, 5, 7, - 28, 0, 0, 0, 154, 35, 34, 36, 33, 3, - 9, 29, 11, 16, 17, 0, 0, 22, 0, 37, - 0, 41, 44, 47, 52, 55, 57, 59, 61, 63, - 65, 67, 84, 0, 26, 88, 0, 0, 0, 147, - 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 233, 237, 37, 69, 82, 0, 213, - 0, 142, 216, 235, 215, 214, 0, 217, 218, 219, - 220, 221, 222, 99, 101, 103, 0, 0, 0, 0, - 212, 121, 0, 210, 0, 208, 0, 205, 30, 31, - 0, 13, 14, 0, 0, 20, 19, 0, 156, 23, - 25, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 146, 147, 148, 0, 128, 138, 162, 159, + 160, 161, 166, 167, 168, 169, 170, 171, 163, 164, + 165, 172, 173, 174, 175, 176, 177, 139, 140, 143, + 129, 178, 179, 180, 181, 182, 183, 0, 126, 125, + 0, 158, 184, 185, 186, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 187, 197, 198, 199, 0, 201, + 270, 271, 0, 95, 105, 0, 110, 116, 133, 0, + 131, 123, 0, 134, 144, 155, 200, 0, 267, 269, + 130, 122, 0, 136, 0, 141, 142, 0, 204, 0, + 86, 0, 93, 105, 127, 106, 107, 108, 96, 0, + 105, 0, 87, 117, 132, 0, 92, 0, 124, 145, + 135, 0, 1, 268, 137, 0, 202, 0, 152, 0, + 150, 0, 272, 97, 102, 104, 109, 0, 111, 98, + 0, 0, 85, 0, 0, 0, 0, 206, 2, 6, + 4, 5, 7, 28, 0, 0, 0, 156, 35, 34, + 36, 33, 3, 9, 29, 11, 16, 17, 0, 0, + 22, 0, 37, 0, 41, 44, 47, 52, 55, 57, + 59, 61, 63, 65, 67, 84, 0, 26, 88, 0, + 0, 0, 149, 0, 0, 0, 252, 0, 0, 0, + 0, 0, 0, 0, 0, 226, 235, 239, 37, 69, + 82, 0, 215, 0, 144, 218, 237, 217, 216, 0, + 219, 220, 221, 222, 223, 224, 99, 101, 103, 0, + 0, 0, 0, 214, 121, 0, 212, 0, 210, 0, + 207, 30, 31, 0, 13, 14, 0, 0, 20, 19, + 0, 158, 23, 25, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 203, 151, 152, 149, 261, 260, - 231, 252, 0, 264, 262, 0, 0, 0, 245, 248, - 223, 0, 72, 73, 75, 74, 77, 78, 79, 80, - 81, 76, 71, 0, 0, 238, 234, 236, 0, 0, - 0, 115, 0, 118, 0, 0, 0, 206, 0, 89, - 8, 0, 15, 27, 12, 18, 24, 38, 39, 40, - 43, 42, 45, 46, 50, 51, 48, 49, 53, 54, - 56, 58, 60, 62, 64, 66, 0, 201, 0, 0, - 0, 0, 0, 263, 0, 244, 0, 225, 70, 83, - 0, 0, 112, 119, 0, 207, 0, 209, 0, 90, - 10, 0, 0, 230, 232, 255, 254, 257, 231, 242, - 246, 0, 0, 0, 0, 100, 113, 0, 120, 211, - 0, 68, 0, 256, 0, 0, 241, 239, 0, 0, - 0, 226, 114, 0, 0, 258, 0, 231, 243, 0, - 228, 249, 227, 91, 0, 259, 253, 240, 247, 251 + 0, 0, 0, 0, 0, 157, 0, 205, 153, 154, + 151, 263, 262, 233, 254, 0, 266, 264, 0, 0, + 0, 247, 250, 225, 0, 72, 73, 75, 74, 77, + 78, 79, 80, 81, 76, 71, 0, 0, 240, 236, + 238, 0, 0, 0, 115, 0, 118, 0, 0, 0, + 208, 0, 89, 8, 0, 15, 27, 12, 18, 24, + 38, 39, 40, 43, 42, 45, 46, 50, 51, 48, + 49, 53, 54, 56, 58, 60, 62, 64, 66, 0, + 203, 0, 0, 0, 0, 0, 265, 0, 246, 0, + 227, 70, 83, 0, 0, 112, 119, 0, 209, 0, + 211, 0, 90, 10, 0, 0, 232, 234, 257, 256, + 259, 233, 244, 248, 0, 0, 0, 0, 100, 113, + 0, 120, 213, 0, 68, 0, 258, 0, 0, 243, + 241, 0, 0, 0, 228, 114, 0, 0, 260, 0, + 233, 245, 0, 230, 251, 229, 91, 0, 261, 255, + 242, 249, 253 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 149, 150, 151, 311, 152, 153, 154, 155, 156, - 157, 158, 195, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 196, 197, 293, 198, 173, - 105, 199, 200, 62, 63, 64, 121, 96, 97, 122, - 65, 66, 67, 68, 98, 69, 70, 71, 72, 73, - 116, 117, 174, 75, 76, 176, 114, 133, 134, 224, - 225, 221, 202, 203, 204, 205, 281, 374, 401, 338, - 339, 340, 402, 206, 207, 208, 387, 209, 388, 210, - 373, 211, 346, 270, 341, 367, 384, 385, 212, 77, - 78, 79, 89 + -1, 152, 153, 154, 314, 155, 156, 157, 158, 159, + 160, 161, 198, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 199, 200, 296, 201, 176, + 107, 202, 203, 62, 63, 64, 124, 98, 99, 125, + 65, 66, 67, 68, 100, 69, 70, 71, 72, 73, + 119, 120, 177, 75, 76, 179, 117, 136, 137, 227, + 228, 224, 205, 206, 207, 208, 284, 377, 404, 341, + 342, 343, 405, 209, 210, 211, 390, 212, 391, 213, + 376, 214, 349, 273, 344, 370, 387, 388, 215, 77, + 78, 79, 91 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -331 +#define YYPACT_NINF -334 static const yytype_int16 yypact[] = { - 2157, -28, -331, -331, -331, 141, -331, -331, -331, -331, - -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, - -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, - -331, -331, -331, -331, -331, -331, -331, 4, -331, -331, - -44, -331, -331, -331, -331, -331, -331, -331, -331, -331, - -331, -331, -331, -331, -331, -331, -331, -331, -78, -331, - -331, -31, -35, -24, 10, -71, -331, 45, 38, 1176, - -331, -331, 2442, 38, -331, 1, -331, 2082, -331, -331, - -331, -331, 2442, -331, -331, 49, -331, 72, -331, 51, - -331, 19, -331, -331, -331, -331, -331, 2306, 110, 92, - -331, -79, -331, 67, -331, 2232, -331, -331, -331, 1246, - -331, -331, 25, -331, 2232, 58, -70, -331, 404, -331, - -331, -331, -331, 103, 2306, -89, -331, 1344, 1635, -331, - 136, 2306, 105, 1827, -331, 78, -331, -331, -331, -331, - -331, 1635, 1635, 1635, -331, -331, -331, -331, -331, -331, - -331, 16, -331, -331, -331, 79, -21, 1730, 83, -331, - 1635, 34, 40, 28, -65, 47, 57, 61, 64, 100, - 101, -72, -331, 86, -331, -331, 2232, 1912, 82, -331, - 72, 84, 85, -331, 93, 96, 87, 1442, 98, 1635, - 91, 106, 102, -331, -331, 188, -331, -331, -15, -331, - -31, 108, -331, -331, -331, -331, 520, -331, -331, -331, - -331, -331, -331, 90, -331, -331, 1537, 1635, 104, 109, - -331, -331, 105, 107, 5, -331, -61, -331, -331, -331, - -20, -331, -331, 1635, 2374, -331, -331, 1635, 113, -331, - -331, -331, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, - 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, - 1635, 1635, -331, 1997, -331, -331, -331, -331, -331, -331, - 111, -331, 1635, -331, -331, 6, 1635, 97, -331, -331, - -331, 636, -331, -331, -331, -331, -331, -331, -331, -331, - -331, -331, -331, 1635, 1635, -331, -331, -331, 1635, 112, - 114, -331, 1635, 115, 21, 1635, 105, -331, -75, -331, - -331, 117, 120, -331, 116, -331, -331, -331, -331, -331, - 34, 34, 40, 40, 28, 28, 28, 28, -65, -65, - 47, 57, 61, 64, 100, 101, 31, -331, 159, 51, - 868, 984, -17, -331, -5, -331, 1081, 636, -331, -331, - 119, 1635, 121, -331, 1635, -331, 125, -331, 1635, -331, - -331, 1635, 118, -331, -331, -331, -331, 1081, 111, -331, - 120, 157, 2306, 130, 127, -331, -331, 1635, -331, -331, - 131, -331, 1635, -331, 126, 134, 224, -331, 138, 129, - 752, -331, -331, 133, -1, 1635, 752, 111, -331, 1635, - -331, -331, -331, -331, 135, 120, -331, -331, -331, -331 + 2163, 10, -334, -334, -334, 169, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, 69, -334, -334, + -48, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -82, -334, + -334, -78, -73, -71, 1, -59, -334, -32, 113, 1182, + -334, -334, 2448, 113, -334, -23, -334, 2088, -334, -334, + -334, -334, 113, -334, 2448, -334, -334, 11, -334, 9, + -334, 20, -334, 121, -334, -334, -334, -334, -334, 2312, + 150, 22, -334, -79, -334, 37, -334, 2238, -334, -334, + -334, 1252, -334, -334, -334, 62, -334, 2238, 44, -41, + -334, 410, -334, -334, -334, -334, 105, 2312, -76, -334, + 1350, 1641, -334, 107, 2312, 117, 1833, -334, 91, -334, + -334, -334, -334, -334, 1641, 1641, 1641, -334, -334, -334, + -334, -334, -334, -334, 19, -334, -334, -334, 103, -24, + 1736, 120, -334, 1641, 80, -42, -36, 15, 43, 99, + 108, 104, 141, 142, -69, -334, 127, -334, -334, 2238, + 1918, 87, -334, 9, 122, 124, -334, 135, 136, 129, + 1448, 140, 1641, 133, 143, 137, -334, -334, 118, -334, + -334, 12, -334, -78, 145, -334, -334, -334, -334, 526, + -334, -334, -334, -334, -334, -334, 144, -334, -334, 1543, + 1641, 138, 148, -334, -334, 117, 146, 28, -334, -58, + -334, -334, -334, -15, -334, -334, 1641, 2380, -334, -334, + 1641, 154, -334, -334, -334, 1641, 1641, 1641, 1641, 1641, + 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, + 1641, 1641, 1641, 1641, 1641, -334, 2003, -334, -334, -334, + -334, -334, -334, 152, -334, 1641, -334, -334, 41, 1641, + 149, -334, -334, -334, 642, -334, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -334, 1641, 1641, -334, -334, + -334, 1641, 151, 155, -334, 1641, 157, 57, 1641, 117, + -334, -85, -334, -334, 156, 160, -334, 161, -334, -334, + -334, -334, -334, 80, 80, -42, -42, -36, -36, -36, + -36, 15, 15, 43, 99, 108, 104, 141, 142, 72, + -334, 211, 20, 874, 990, -10, -334, 3, -334, 1087, + 642, -334, -334, 165, 1641, 163, -334, 1641, -334, 166, + -334, 1641, -334, -334, 1641, 164, -334, -334, -334, -334, + 1087, 152, -334, 160, 198, 2312, 172, 170, -334, -334, + 1641, -334, -334, 171, -334, 1641, -334, 167, 175, 265, + -334, 178, 174, 758, -334, -334, 176, 13, 1641, 758, + 152, -334, 1641, -334, -334, -334, -334, 177, 160, -334, + -334, -334, -334 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -331, -331, -331, -331, -331, -331, -331, 14, -331, -331, - -331, -331, 63, -331, -82, -74, -122, -88, -4, -6, - -3, 2, 7, 8, -331, -91, -124, -331, -138, -113, - -331, 3, 9, -331, -331, -331, 137, 164, 160, 145, - -331, -331, -325, -331, -331, -103, -2, -68, 254, -331, - -331, 94, 0, -331, -331, -331, -331, -101, -123, 43, - -36, -210, -69, -198, -328, -126, -331, -331, -125, -330, - -331, -331, -83, -8, -64, -331, -331, -331, -331, -331, - -87, -331, -331, -331, -331, -331, -331, -331, -331, -331, - 199, -331, -331 + -334, -334, -334, -334, -334, -334, -334, 46, -334, -334, + -334, -334, 66, -334, -46, -44, -67, -34, 30, 33, + 29, 32, 34, 31, -334, -104, -127, -334, -144, -119, + -334, 14, 17, -334, -334, -334, 168, 204, 199, 173, + -334, -334, -325, 8, -334, -101, 7, -68, 293, -334, + -334, 119, 0, -334, -334, -334, -334, -97, -123, 76, + -6, -208, -40, -206, -328, -83, -334, -334, -94, -333, + -334, -334, -86, 25, -38, -334, -334, -334, -334, -334, + -60, -334, -334, -334, -334, -334, -334, -334, -334, -334, + 253, -334, -334 }; /* 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 -230 +#define YYTABLE_NINF -232 static const yytype_int16 yytable[] = { - 74, 106, 131, 60, 220, 230, 119, 301, 297, 61, - 227, 131, 364, 177, 219, 308, 80, 216, 172, 92, - 260, 371, 249, 250, 217, 126, 87, 127, 92, 123, - 131, 358, 85, 239, 128, 179, 172, 132, 386, 359, - 99, 180, 371, 100, 83, 84, 132, 7, 81, 275, - 93, 94, 95, 309, 227, 261, 123, 251, 252, 93, - 94, 95, 400, 222, 86, 132, 102, 407, 400, 74, - 90, 108, 107, 131, 131, 263, 277, 74, 27, 28, - 60, 29, 112, 88, 236, 310, 61, 91, 368, 37, - 237, 294, 353, 220, 294, 312, 294, 74, 172, 295, - 369, 231, 232, 300, 404, 74, 294, 109, 132, 132, - 294, 247, 248, 316, 74, -94, 306, 294, 201, 307, - 343, 101, 233, 336, 74, 172, 234, 324, 325, 326, - 327, 74, 306, 74, 342, 355, 253, 254, 344, 175, - 227, 376, 294, 361, 378, 2, 3, 4, 115, 297, - 93, 94, 95, 242, 243, 244, 245, 113, 246, 118, - 131, 265, 266, 320, 321, 328, 329, 392, 125, 348, - 349, 178, 159, 322, 323, 129, 74, 74, 220, 213, - 80, 223, -27, 255, 235, 350, 256, 240, 257, 408, - 159, 258, 356, 262, 259, 132, 298, 271, 268, 269, - 272, 273, 276, 278, 228, 229, 201, 172, 370, 345, - 279, 280, -26, 305, 172, 362, 303, 302, -21, -229, - -28, 352, 382, 241, 360, 351, 375, 220, 354, 370, - 220, 294, 379, 389, 377, 390, 391, 381, 393, 396, - 395, 397, 399, 372, 394, 380, 192, 403, 315, 409, - 331, 330, 159, 220, 332, 120, 363, 405, 124, 82, - 333, 214, 398, 74, 372, 304, 334, 172, 335, 215, - 357, 406, 365, 347, 267, 220, 111, 366, 0, 159, - 383, 201, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 292, 0, 0, 106, 317, 318, 319, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 0, 0, 0, 0, 0, 0, + 74, 108, 233, 300, 223, 122, 134, 175, 83, 82, + 94, 222, 304, 230, 60, 367, 134, 61, 311, 7, + 180, 361, 89, 263, 374, 129, 175, 130, 87, 362, + 219, 126, 92, 242, 131, 134, 90, 220, 389, 135, + 93, 95, 96, 97, 103, 374, 278, 250, 251, 135, + 27, 28, 101, 29, 80, 102, 312, 230, 264, 126, + 88, 37, 38, 39, 182, 403, 225, 410, 135, 74, + 183, 403, 109, 280, 248, 104, 249, 74, 134, 134, + 110, 239, 266, 111, 115, 118, 81, 240, 175, 114, + 313, 60, 315, 223, 61, 371, 297, 356, 128, 74, + 303, 297, 252, 253, 234, 235, -94, 74, 372, 85, + 86, 135, 135, 319, 297, 175, 7, 74, 407, 116, + 339, 204, 7, 297, 297, 236, 298, 74, 121, 237, + 94, 345, 256, 257, 74, 347, 74, 254, 255, 309, + 83, 82, 310, 230, 300, 132, 379, 27, 28, 381, + 29, 80, 297, 27, 28, 346, 29, 181, 37, 38, + 39, 95, 96, 97, 37, 134, 268, 269, 309, 351, + 352, 358, 395, 2, 3, 4, 178, 162, 223, 74, + 74, 216, 353, 297, 364, 327, 328, 329, 330, 359, + 95, 96, 97, 226, 411, -27, 162, 175, 135, 245, + 246, 247, 323, 324, 175, 373, 325, 326, 238, 204, + 231, 232, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 331, 332, 243, 258, 373, 223, 260, 244, + 223, 295, 261, 259, 265, 262, 271, 384, 272, 274, + 275, 397, 383, 276, 279, 281, 283, 282, 375, -26, + 301, 305, 308, 223, 408, 306, 366, 175, 162, -21, + -231, 348, 355, 363, 354, -28, 74, 365, 385, 375, + 357, 297, 378, 382, 392, 223, 380, 393, 396, 394, + 399, 398, 400, 318, 204, 162, 195, 402, 333, 335, + 406, 412, 334, 336, 338, 217, 337, 123, 84, 127, + 218, 307, 270, 360, 368, 409, 369, 108, 401, 350, + 386, 320, 321, 322, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 204, 204, 0, 0, 0, 0, 204, + 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, + 204, 0, 0, 0, 162, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 201, 201, 0, 0, 0, 0, 201, 201, 0, 0, + 0, 0, 0, 204, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 0, 0, 0, 0, 0, 201, 159, 0, - 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 201, 0, 0, 0, 0, 0, 201, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 181, 182, - 183, 159, 184, 185, 186, 187, 188, 189, 190, 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, - 191, 42, 43, 44, 0, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 0, 55, 56, 57, 58, - 135, 59, 136, 137, 138, 139, 140, 0, 0, 141, - 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, - 0, 0, 192, 193, 0, 0, 0, 0, 194, 145, - 146, 147, 148, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 181, 182, 183, 0, 184, 185, - 186, 187, 188, 189, 190, 12, 13, 14, 15, 16, + 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 184, 185, 186, 162, 187, 188, + 189, 190, 191, 192, 193, 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, 191, 42, 43, 44, + 36, 37, 38, 39, 40, 41, 194, 42, 43, 44, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 0, 55, 56, 57, 58, 135, 59, 136, 137, - 138, 139, 140, 0, 0, 141, 142, 0, 0, 0, + 54, 0, 55, 56, 57, 58, 138, 59, 139, 140, + 141, 142, 143, 0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 0, 0, 0, 192, 296, - 0, 0, 0, 0, 194, 145, 146, 147, 148, 1, + 0, 0, 0, 0, 146, 0, 0, 0, 195, 196, + 0, 0, 0, 0, 197, 148, 149, 150, 151, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 181, 182, 183, 0, 184, 185, 186, 187, 188, 189, - 190, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 184, 185, 186, 0, 187, 188, 189, 190, 191, 192, + 193, 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, 191, 42, 43, 44, 0, 45, 46, 47, + 40, 41, 194, 42, 43, 44, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, - 57, 58, 135, 59, 136, 137, 138, 139, 140, 0, - 0, 141, 142, 0, 0, 0, 0, 0, 0, 0, + 57, 58, 138, 59, 139, 140, 141, 142, 143, 0, + 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 143, 0, 0, 0, 192, 0, 0, 0, 0, 0, - 194, 145, 146, 147, 148, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 181, 182, 183, 0, - 184, 185, 186, 187, 188, 189, 190, 12, 13, 14, + 146, 0, 0, 0, 195, 299, 0, 0, 0, 0, + 197, 148, 149, 150, 151, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 184, 185, 186, 0, + 187, 188, 189, 190, 191, 192, 193, 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, 191, 42, + 34, 35, 36, 37, 38, 39, 40, 41, 194, 42, 43, 44, 0, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 0, 55, 56, 57, 58, 135, 59, - 136, 137, 138, 139, 140, 0, 0, 141, 142, 0, + 52, 53, 54, 0, 55, 56, 57, 58, 138, 59, + 139, 140, 141, 142, 143, 0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, - 118, 0, 0, 0, 0, 0, 194, 145, 146, 147, - 148, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 181, 182, 183, 0, 184, 185, 186, 187, - 188, 189, 190, 12, 13, 14, 15, 16, 17, 18, + 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, + 195, 0, 0, 0, 0, 0, 197, 148, 149, 150, + 151, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 184, 185, 186, 0, 187, 188, 189, 190, + 191, 192, 193, 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, 191, 42, 43, 44, 0, 45, + 38, 39, 40, 41, 194, 42, 43, 44, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, - 55, 56, 57, 58, 135, 59, 136, 137, 138, 139, - 140, 0, 0, 141, 142, 0, 0, 0, 0, 0, + 55, 56, 57, 58, 138, 59, 139, 140, 141, 142, + 143, 0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 194, 145, 146, 147, 148, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 0, 0, 146, 0, 0, 0, 121, 0, 0, 0, + 0, 0, 197, 148, 149, 150, 151, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 184, 185, + 186, 0, 187, 188, 189, 190, 191, 192, 193, 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, 0, 45, 46, 47, 48, 49, + 194, 42, 43, 44, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, 57, 58, - 135, 59, 136, 137, 138, 139, 140, 0, 0, 141, - 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 130, 2, 3, 4, 143, 6, - 7, 8, 9, 10, 11, 0, 0, 0, 194, 145, - 146, 147, 148, 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, 0, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 0, 55, 56, 57, 58, 135, 59, 136, - 137, 138, 139, 140, 0, 0, 141, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 3, 4, 0, 0, 143, 8, 9, 10, 11, - 0, 0, 0, 0, 0, 0, 145, 146, 147, 148, - 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, 0, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, - 57, 0, 103, 59, 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, - 104, 31, 32, 33, 34, 35, 36, 0, 0, 0, - 40, 41, 0, 42, 43, 44, 0, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, - 57, 0, 135, 59, 136, 137, 138, 139, 140, 0, - 0, 141, 142, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 143, 0, 0, 144, 8, 9, 10, 11, 0, 0, - 0, 145, 146, 147, 148, 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, 0, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 0, 55, 56, 57, 0, - 135, 59, 136, 137, 138, 139, 140, 0, 0, 141, - 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, - 0, 218, 8, 9, 10, 11, 0, 0, 0, 145, - 146, 147, 148, 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, 0, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 0, 55, 56, 57, 0, 135, 59, - 136, 137, 138, 139, 140, 0, 0, 141, 142, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 143, 8, 9, 10, - 11, 0, 0, 0, 0, 0, 274, 145, 146, 147, - 148, 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, 0, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, - 56, 57, 0, 135, 59, 136, 137, 138, 139, 140, - 0, 0, 141, 142, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 0, 0, 299, 8, 9, 10, 11, 0, - 0, 0, 145, 146, 147, 148, 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, 0, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 0, 55, 56, 57, - 0, 135, 59, 136, 137, 138, 139, 140, 0, 0, - 141, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 138, 59, 139, 140, 141, 142, 143, 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, 197, 148, + 149, 150, 151, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, - 145, 146, 147, 148, 0, 12, 13, 14, 15, 16, + 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, 238, 0, 42, 43, 44, + 27, 28, 0, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 0, 42, 43, 44, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 0, 55, 56, 57, 0, 135, 59, 136, 137, - 138, 139, 140, 0, 0, 141, 142, 0, 0, 0, + 54, 0, 55, 56, 57, 58, 138, 59, 139, 140, + 141, 142, 143, 0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 130, 2, 3, 4, 143, 6, 7, 8, 9, 10, - 11, 0, 0, 0, 0, 145, 146, 147, 148, 0, + 133, 2, 3, 4, 146, 6, 7, 8, 9, 10, + 11, 0, 0, 0, 197, 148, 149, 150, 151, 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, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, - 56, 57, 58, 0, 59, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 130, 2, 3, 4, 0, - 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 226, 12, 13, 14, + 56, 57, 58, 138, 59, 139, 140, 141, 142, 143, + 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, 148, 149, 150, 151, 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, 0, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 0, 55, 56, 57, 58, 0, 59, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 130, 2, 3, 4, 0, 6, 7, 8, 9, 10, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 264, 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, 0, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, - 56, 57, 58, 0, 59, 0, 0, 0, 0, 0, - 0, 0, 110, 0, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 337, 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, + 25, 26, 0, 0, 0, 0, 0, 31, 32, 33, + 34, 35, 36, 0, 0, 0, 40, 41, 0, 42, 43, 44, 0, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 0, 55, 56, 57, 58, 0, 59, - 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, 0, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, - 56, 57, 58, 0, 59, 130, 2, 3, 4, 0, - 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, + 52, 53, 54, 0, 55, 56, 57, 0, 105, 59, + 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, 27, 28, 0, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 0, 42, + 25, 26, 0, 0, 0, 0, 106, 31, 32, 33, + 34, 35, 36, 0, 0, 0, 40, 41, 0, 42, 43, 44, 0, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 0, 55, 56, 57, 58, 0, 59, - 2, 3, 4, 0, 0, 0, 8, 9, 10, 11, + 52, 53, 54, 0, 55, 56, 57, 0, 138, 59, + 139, 140, 141, 142, 143, 0, 0, 144, 145, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 146, 0, 0, 147, + 8, 9, 10, 11, 0, 0, 0, 148, 149, 150, + 151, 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, + 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 0, 55, 56, 57, 0, 138, 59, 139, 140, + 141, 142, 143, 0, 0, 144, 145, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 146, 0, 0, 221, 8, 9, + 10, 11, 0, 0, 0, 148, 149, 150, 151, 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, 0, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, + 55, 56, 57, 0, 138, 59, 139, 140, 141, 142, + 143, 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, 277, 148, 149, 150, 151, 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, 0, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 0, 55, 56, 57, 0, 138, + 59, 139, 140, 141, 142, 143, 0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, + 302, 8, 9, 10, 11, 0, 0, 0, 148, 149, + 150, 151, 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, 0, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 0, 55, 56, 57, 0, 138, 59, 139, + 140, 141, 142, 143, 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, 0, 148, 149, 150, 151, 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, 0, 45, 46, 47, + 40, 241, 0, 42, 43, 44, 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, 55, 56, - 57, 0, 0, 59, 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, 0, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 0, 55, 56, 57, 0, - 313, 59, 8, 9, 10, 11, 314, 0, 0, 0, + 57, 0, 138, 59, 139, 140, 141, 142, 143, 0, + 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 133, 2, 3, 4, + 146, 6, 7, 8, 9, 10, 11, 0, 0, 0, + 0, 148, 149, 150, 151, 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, 0, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 0, 55, 56, 57, 58, 0, + 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 133, 2, 3, 4, 0, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 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, 0, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, + 55, 56, 57, 58, 0, 59, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 133, 2, 3, 4, + 0, 6, 7, 8, 9, 10, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 267, 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, 0, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 0, 55, 56, 57, 58, 0, + 59, 0, 0, 0, 0, 0, 0, 0, 112, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 340, 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, 0, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, + 55, 56, 57, 58, 0, 59, 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, 0, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 0, 55, 56, 57, 58, 0, + 59, 133, 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, 0, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, + 55, 56, 57, 58, 0, 59, 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, 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, 0, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 0, 55, 56, 57, 0, 0, 59 + 52, 53, 54, 0, 55, 56, 57, 0, 0, 59, + 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, + 0, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 0, 55, 56, 57, 0, 316, 59, 8, 9, + 10, 11, 317, 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, 0, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 0, + 55, 56, 57, 0, 0, 59 }; static const yytype_int16 yycheck[] = { - 0, 69, 105, 0, 128, 143, 89, 217, 206, 0, - 133, 114, 340, 114, 127, 76, 44, 106, 109, 9, - 92, 346, 87, 88, 113, 104, 104, 106, 9, 97, - 133, 106, 76, 157, 113, 105, 127, 105, 368, 114, - 111, 111, 367, 114, 40, 41, 114, 9, 76, 187, - 40, 41, 42, 114, 177, 127, 124, 122, 123, 40, - 41, 42, 390, 131, 108, 133, 68, 397, 396, 69, - 105, 73, 72, 176, 177, 176, 189, 77, 40, 41, - 77, 43, 82, 114, 105, 105, 77, 111, 105, 51, - 111, 111, 302, 217, 111, 233, 111, 97, 189, 114, - 105, 85, 86, 216, 105, 105, 111, 106, 176, 177, - 111, 83, 84, 237, 114, 105, 111, 111, 118, 114, - 114, 76, 106, 261, 124, 216, 110, 249, 250, 251, - 252, 131, 111, 133, 272, 114, 89, 90, 276, 114, - 263, 351, 111, 112, 354, 4, 5, 6, 76, 347, - 40, 41, 42, 119, 120, 121, 116, 108, 118, 108, - 263, 79, 80, 245, 246, 253, 254, 377, 76, 293, - 294, 113, 109, 247, 248, 108, 176, 177, 302, 76, - 44, 76, 104, 126, 105, 298, 125, 104, 124, 399, - 127, 91, 305, 107, 93, 263, 106, 104, 114, 114, - 104, 114, 104, 112, 141, 142, 206, 298, 346, 112, - 104, 109, 104, 106, 305, 56, 107, 113, 105, 108, - 104, 107, 104, 160, 107, 113, 107, 351, 113, 367, - 354, 111, 107, 76, 113, 105, 109, 361, 107, 105, - 114, 17, 113, 346, 382, 358, 108, 114, 234, 114, - 256, 255, 189, 377, 257, 91, 339, 395, 98, 5, - 258, 124, 388, 263, 367, 222, 259, 358, 260, 124, - 306, 396, 341, 281, 180, 399, 77, 341, -1, 216, - 367, 281, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 113, -1, -1, 372, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 340, 341, -1, -1, -1, -1, 346, 347, -1, -1, + 0, 69, 146, 209, 131, 91, 107, 111, 1, 1, + 9, 130, 220, 136, 0, 343, 117, 0, 76, 9, + 117, 106, 104, 92, 349, 104, 130, 106, 76, 114, + 106, 99, 105, 160, 113, 136, 114, 113, 371, 107, + 111, 40, 41, 42, 76, 370, 190, 83, 84, 117, + 40, 41, 111, 43, 44, 114, 114, 180, 127, 127, + 108, 51, 52, 53, 105, 393, 134, 400, 136, 69, + 111, 399, 72, 192, 116, 68, 118, 77, 179, 180, + 73, 105, 179, 106, 84, 76, 76, 111, 192, 82, + 105, 77, 236, 220, 77, 105, 111, 305, 76, 99, + 219, 111, 87, 88, 85, 86, 105, 107, 105, 40, + 41, 179, 180, 240, 111, 219, 9, 117, 105, 108, + 264, 121, 9, 111, 111, 106, 114, 127, 108, 110, + 9, 275, 89, 90, 134, 279, 136, 122, 123, 111, + 133, 133, 114, 266, 350, 108, 354, 40, 41, 357, + 43, 44, 111, 40, 41, 114, 43, 113, 51, 52, + 53, 40, 41, 42, 51, 266, 79, 80, 111, 296, + 297, 114, 380, 4, 5, 6, 114, 111, 305, 179, + 180, 76, 301, 111, 112, 252, 253, 254, 255, 308, + 40, 41, 42, 76, 402, 104, 130, 301, 266, 119, + 120, 121, 248, 249, 308, 349, 250, 251, 105, 209, + 144, 145, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 256, 257, 104, 126, 370, 354, 124, 163, + 357, 113, 91, 125, 107, 93, 114, 364, 114, 104, + 104, 385, 361, 114, 104, 112, 109, 104, 349, 104, + 106, 113, 106, 380, 398, 107, 342, 361, 192, 105, + 108, 112, 107, 107, 113, 104, 266, 56, 104, 370, + 113, 111, 107, 107, 76, 402, 113, 105, 107, 109, + 105, 114, 17, 237, 284, 219, 108, 113, 258, 260, + 114, 114, 259, 261, 263, 127, 262, 93, 5, 100, + 127, 225, 183, 309, 344, 399, 344, 375, 391, 284, + 370, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 343, 344, -1, -1, -1, -1, 349, + 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 301, -1, -1, + 370, -1, -1, -1, 308, 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 298, -1, -1, -1, -1, -1, 367, 305, -1, - -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 393, -1, -1, -1, -1, -1, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 390, -1, -1, -1, -1, -1, 396, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 358, 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, -1, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, -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, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 361, 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, @@ -1422,7 +1415,7 @@ static const yytype_int16 yycheck[] = 74, 75, 76, 77, 78, 79, 80, 81, 82, -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, -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, 22, 23, 24, 25, 26, 27, @@ -1445,161 +1438,173 @@ static const yytype_int16 yycheck[] = 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, -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, 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, + 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, - -1, 57, 58, 59, -1, 61, 62, 63, 64, 65, + 56, 57, 58, 59, -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, -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, -1, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, -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, -1, 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, -1, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, - 74, -1, 76, 77, 78, 79, 80, 81, 82, -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, - 36, 37, 38, 39, -1, -1, -1, -1, -1, 45, - 46, 47, 48, 49, 50, -1, -1, -1, 54, 55, - -1, 57, 58, 59, -1, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, -1, 72, 73, 74, -1, - 76, 77, 78, 79, 80, 81, 82, -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, 36, 37, - 38, 39, -1, -1, -1, -1, -1, 45, 46, 47, - 48, 49, 50, -1, -1, -1, 54, 55, -1, 57, - 58, 59, -1, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, -1, 72, 73, 74, -1, 76, 77, - 78, 79, 80, 81, 82, -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, -1, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, -1, 72, - 73, 74, -1, 76, 77, 78, 79, 80, 81, 82, - -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, 36, 37, 38, 39, -1, -1, -1, -1, -1, - 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, - 55, -1, 57, 58, 59, -1, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, - -1, 76, 77, 78, 79, 80, 81, 82, -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, 114, 115, + 116, 117, 118, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, - 115, 116, 117, 118, -1, 25, 26, 27, 28, 29, + -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, + 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, -1, 72, 73, 74, -1, 76, 77, 78, 79, + 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, -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, + 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, -1, 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, -1, 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, -1, 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, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + -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, 40, 41, -1, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + 38, 39, -1, -1, -1, -1, -1, 45, 46, 47, + 48, 49, 50, -1, -1, -1, 54, 55, -1, 57, 58, 59, -1, 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, -1, 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, + 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, 40, 41, -1, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + 38, 39, -1, -1, -1, -1, 114, 45, 46, 47, + 48, 49, 50, -1, -1, -1, 54, 55, -1, 57, 58, 59, -1, 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, + 68, 69, 70, -1, 72, 73, 74, -1, 76, 77, + 78, 79, 80, 81, 82, -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, 36, 37, 38, 39, + -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, + 50, -1, -1, -1, 54, 55, -1, 57, 58, 59, + -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, -1, 72, 73, 74, -1, 76, 77, 78, 79, + 80, 81, 82, -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, 36, 37, 38, 39, -1, -1, + -1, -1, -1, 45, 46, 47, 48, 49, 50, -1, + -1, -1, 54, 55, -1, 57, 58, 59, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, + 72, 73, 74, -1, 76, 77, 78, 79, 80, 81, + 82, -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, -1, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, -1, 76, + 77, 78, 79, 80, 81, 82, -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, 36, 37, 38, + 39, -1, -1, -1, -1, -1, 45, 46, 47, 48, + 49, 50, -1, -1, -1, 54, 55, -1, 57, 58, + 59, -1, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, -1, 72, 73, 74, -1, 76, 77, 78, + 79, 80, 81, 82, -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, -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, -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, - 74, -1, -1, 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, -1, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, -1, 72, 73, 74, -1, - 76, 77, 10, 11, 12, 13, 82, -1, -1, -1, + 74, -1, 76, 77, 78, 79, 80, 81, 82, -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, -1, 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, -1, 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, -1, 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, -1, 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, -1, 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, -1, 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, 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, -1, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, -1, 72, 73, 74, -1, -1, 77 + 68, 69, 70, -1, 72, 73, 74, -1, -1, 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, + -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, -1, 72, 73, 74, -1, 76, 77, 10, 11, + 12, 13, 82, -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, -1, 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 @@ -1614,39 +1619,40 @@ static const yytype_uint8 yystos[] = 66, 67, 68, 69, 70, 72, 73, 74, 75, 77, 159, 160, 161, 162, 163, 168, 169, 170, 171, 173, 174, 175, 176, 177, 180, 181, 182, 217, 218, 219, - 44, 76, 176, 40, 41, 76, 108, 104, 114, 220, - 105, 111, 9, 40, 41, 42, 165, 166, 172, 111, - 114, 76, 174, 76, 114, 158, 175, 180, 174, 106, - 0, 218, 180, 108, 184, 76, 178, 179, 108, 200, - 165, 164, 167, 175, 166, 76, 104, 106, 113, 108, - 3, 173, 175, 185, 186, 76, 78, 79, 80, 81, - 82, 85, 86, 104, 107, 115, 116, 117, 118, 129, - 130, 131, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 157, 180, 114, 183, 185, 113, 105, - 111, 14, 15, 16, 18, 19, 20, 21, 22, 23, - 24, 56, 108, 109, 114, 140, 153, 154, 156, 159, - 160, 180, 190, 191, 192, 193, 201, 202, 203, 205, - 207, 209, 216, 76, 164, 167, 106, 113, 107, 157, - 154, 189, 175, 76, 187, 188, 109, 186, 140, 140, - 156, 85, 86, 106, 110, 105, 105, 111, 55, 154, - 104, 140, 119, 120, 121, 116, 118, 83, 84, 87, - 88, 122, 123, 89, 90, 126, 125, 124, 91, 93, - 92, 127, 107, 185, 109, 79, 80, 179, 114, 114, - 211, 104, 104, 114, 114, 156, 104, 157, 112, 104, - 109, 194, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 113, 155, 111, 114, 109, 191, 106, 107, - 157, 189, 113, 107, 187, 106, 111, 114, 76, 114, - 105, 132, 156, 76, 82, 135, 154, 140, 140, 140, - 142, 142, 143, 143, 144, 144, 144, 144, 145, 145, - 146, 147, 148, 149, 150, 151, 156, 109, 197, 198, - 199, 212, 156, 114, 156, 112, 210, 201, 154, 154, - 157, 113, 107, 189, 113, 114, 157, 188, 106, 114, - 107, 112, 56, 200, 192, 190, 202, 213, 105, 105, - 156, 170, 173, 208, 195, 107, 189, 113, 189, 107, - 157, 154, 104, 208, 214, 215, 197, 204, 206, 76, - 105, 109, 189, 107, 156, 114, 105, 17, 193, 113, - 192, 196, 200, 114, 105, 156, 196, 197, 189, 114 + 44, 76, 171, 174, 176, 40, 41, 76, 108, 104, + 114, 220, 105, 111, 9, 40, 41, 42, 165, 166, + 172, 111, 114, 76, 174, 76, 114, 158, 175, 180, + 174, 106, 0, 218, 174, 180, 108, 184, 76, 178, + 179, 108, 200, 165, 164, 167, 175, 166, 76, 104, + 106, 113, 108, 3, 173, 175, 185, 186, 76, 78, + 79, 80, 81, 82, 85, 86, 104, 107, 115, 116, + 117, 118, 129, 130, 131, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 157, 180, 114, 183, + 185, 113, 105, 111, 14, 15, 16, 18, 19, 20, + 21, 22, 23, 24, 56, 108, 109, 114, 140, 153, + 154, 156, 159, 160, 180, 190, 191, 192, 193, 201, + 202, 203, 205, 207, 209, 216, 76, 164, 167, 106, + 113, 107, 157, 154, 189, 175, 76, 187, 188, 109, + 186, 140, 140, 156, 85, 86, 106, 110, 105, 105, + 111, 55, 154, 104, 140, 119, 120, 121, 116, 118, + 83, 84, 87, 88, 122, 123, 89, 90, 126, 125, + 124, 91, 93, 92, 127, 107, 185, 109, 79, 80, + 179, 114, 114, 211, 104, 104, 114, 114, 156, 104, + 157, 112, 104, 109, 194, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 113, 155, 111, 114, 109, + 191, 106, 107, 157, 189, 113, 107, 187, 106, 111, + 114, 76, 114, 105, 132, 156, 76, 82, 135, 154, + 140, 140, 140, 142, 142, 143, 143, 144, 144, 144, + 144, 145, 145, 146, 147, 148, 149, 150, 151, 156, + 109, 197, 198, 199, 212, 156, 114, 156, 112, 210, + 201, 154, 154, 157, 113, 107, 189, 113, 114, 157, + 188, 106, 114, 107, 112, 56, 200, 192, 190, 202, + 213, 105, 105, 156, 170, 173, 208, 195, 107, 189, + 113, 189, 107, 157, 154, 104, 208, 214, 215, 197, + 204, 206, 76, 105, 109, 189, 107, 156, 114, 105, + 17, 193, 113, 192, 196, 200, 114, 105, 156, 196, + 197, 189, 114 }; #define yyerrok (yyerrstatus = 0) @@ -3673,19 +3679,37 @@ yyreduce: case 136: { - (yyval.interm.type).qualifier = EvqConstExpr; + context->es3InvariantErrorCheck((yyvsp[(2) - (2)].interm.type).qualifier, (yylsp[(1) - (2)])); + (yyval.interm.type).setBasic(EbtVoid, (yyvsp[(2) - (2)].interm.type).qualifier, (yylsp[(2) - (2)])); + (yyval.interm.type).invariant = true; } break; case 137: { + context->es3InvariantErrorCheck((yyvsp[(3) - (3)].interm.type).qualifier, (yylsp[(1) - (3)])); + (yyval.interm.type) = context->joinInterpolationQualifiers((yylsp[(2) - (3)]), (yyvsp[(2) - (3)].interm.type).qualifier, (yylsp[(3) - (3)]), (yyvsp[(3) - (3)].interm.type).qualifier); + (yyval.interm.type).invariant = true; + } + break; + + case 138: + + { + (yyval.interm.type).qualifier = EvqConstExpr; + } + break; + + case 139: + + { ES3_ONLY("in", (yylsp[(1) - (1)]), "storage qualifier"); (yyval.interm.type).qualifier = (context->getShaderType() == GL_FRAGMENT_SHADER) ? EvqFragmentIn : EvqVertexIn; } break; - case 138: + case 140: { ES3_ONLY("out", (yylsp[(1) - (1)]), "storage qualifier"); @@ -3693,7 +3717,7 @@ yyreduce: } break; - case 139: + case 141: { ES3_ONLY("centroid in", (yylsp[(1) - (2)]), "storage qualifier"); @@ -3706,7 +3730,7 @@ yyreduce: } break; - case 140: + case 142: { ES3_ONLY("centroid out", (yylsp[(1) - (2)]), "storage qualifier"); @@ -3719,7 +3743,7 @@ yyreduce: } break; - case 141: + case 143: { if (context->globalErrorCheck((yylsp[(1) - (1)]), context->symbolTable.atGlobalLevel(), "uniform")) @@ -3728,7 +3752,7 @@ yyreduce: } break; - case 142: + case 144: { (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); @@ -3742,7 +3766,7 @@ yyreduce: } break; - case 143: + case 145: { (yyval.interm.type) = (yyvsp[(2) - (2)].interm.type); @@ -3750,28 +3774,28 @@ yyreduce: } break; - case 144: + case 146: { (yyval.interm.precision) = EbpHigh; } break; - case 145: + case 147: { (yyval.interm.precision) = EbpMedium; } break; - case 146: + case 148: { (yyval.interm.precision) = EbpLow; } break; - case 147: + case 149: { ES3_ONLY("layout", (yylsp[(1) - (4)]), "qualifier"); @@ -3779,49 +3803,49 @@ yyreduce: } break; - case 148: + case 150: { (yyval.interm.layoutQualifier) = (yyvsp[(1) - (1)].interm.layoutQualifier); } break; - case 149: + case 151: { (yyval.interm.layoutQualifier) = context->joinLayoutQualifiers((yyvsp[(1) - (3)].interm.layoutQualifier), (yyvsp[(3) - (3)].interm.layoutQualifier)); } break; - case 150: + case 152: { (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(*(yyvsp[(1) - (1)].lex).string, (yylsp[(1) - (1)])); } break; - case 151: + case 153: { (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(*(yyvsp[(1) - (3)].lex).string, (yylsp[(1) - (3)]), *(yyvsp[(3) - (3)].lex).string, (yyvsp[(3) - (3)].lex).i, (yylsp[(3) - (3)])); } break; - case 152: + case 154: { (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(*(yyvsp[(1) - (3)].lex).string, (yylsp[(1) - (3)]), *(yyvsp[(3) - (3)].lex).string, (yyvsp[(3) - (3)].lex).i, (yylsp[(3) - (3)])); } break; - case 153: + case 155: { (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } break; - case 154: + case 156: { ES3_ONLY("[]", (yylsp[(2) - (3)]), "implicitly sized array"); @@ -3830,7 +3854,7 @@ yyreduce: } break; - case 155: + case 157: { (yyval.interm.type) = (yyvsp[(1) - (4)].interm.type); @@ -3846,7 +3870,7 @@ yyreduce: } break; - case 156: + case 158: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3854,7 +3878,7 @@ yyreduce: } break; - case 157: + case 159: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3862,7 +3886,7 @@ yyreduce: } break; - case 158: + case 160: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3870,7 +3894,7 @@ yyreduce: } break; - case 159: + case 161: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3878,7 +3902,7 @@ yyreduce: } break; - case 160: + case 162: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3886,7 +3910,7 @@ yyreduce: } break; - case 161: + case 163: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3895,7 +3919,7 @@ yyreduce: } break; - case 162: + case 164: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3904,7 +3928,7 @@ yyreduce: } break; - case 163: + case 165: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3913,7 +3937,7 @@ yyreduce: } break; - case 164: + case 166: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3922,7 +3946,7 @@ yyreduce: } break; - case 165: + case 167: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3931,7 +3955,7 @@ yyreduce: } break; - case 166: + case 168: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3940,7 +3964,7 @@ yyreduce: } break; - case 167: + case 169: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3949,7 +3973,7 @@ yyreduce: } break; - case 168: + case 170: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3958,7 +3982,7 @@ yyreduce: } break; - case 169: + case 171: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3967,7 +3991,7 @@ yyreduce: } break; - case 170: + case 172: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3976,7 +4000,7 @@ yyreduce: } break; - case 171: + case 173: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3985,7 +4009,7 @@ yyreduce: } break; - case 172: + case 174: { TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; @@ -3994,7 +4018,7 @@ yyreduce: } break; - case 173: + case 175: { FRAG_VERT_ONLY("mat2", (yylsp[(1) - (1)])); @@ -4004,7 +4028,7 @@ yyreduce: } break; - case 174: + case 176: { FRAG_VERT_ONLY("mat3", (yylsp[(1) - (1)])); @@ -4014,7 +4038,7 @@ yyreduce: } break; - case 175: + case 177: { FRAG_VERT_ONLY("mat4", (yylsp[(1) - (1)])); @@ -4024,7 +4048,7 @@ yyreduce: } break; - case 176: + case 178: { FRAG_VERT_ONLY("mat2x3", (yylsp[(1) - (1)])); @@ -4034,7 +4058,7 @@ yyreduce: } break; - case 177: + case 179: { FRAG_VERT_ONLY("mat3x2", (yylsp[(1) - (1)])); @@ -4044,7 +4068,7 @@ yyreduce: } break; - case 178: + case 180: { FRAG_VERT_ONLY("mat2x4", (yylsp[(1) - (1)])); @@ -4054,7 +4078,7 @@ yyreduce: } break; - case 179: + case 181: { FRAG_VERT_ONLY("mat4x2", (yylsp[(1) - (1)])); @@ -4064,7 +4088,7 @@ yyreduce: } break; - case 180: + case 182: { FRAG_VERT_ONLY("mat3x4", (yylsp[(1) - (1)])); @@ -4074,7 +4098,7 @@ yyreduce: } break; - case 181: + case 183: { FRAG_VERT_ONLY("mat4x3", (yylsp[(1) - (1)])); @@ -4084,7 +4108,7 @@ yyreduce: } break; - case 182: + case 184: { FRAG_VERT_ONLY("sampler2D", (yylsp[(1) - (1)])); @@ -4093,7 +4117,7 @@ yyreduce: } break; - case 183: + case 185: { FRAG_VERT_ONLY("samplerCube", (yylsp[(1) - (1)])); @@ -4102,7 +4126,7 @@ yyreduce: } break; - case 184: + case 186: { if (!context->supportsExtension("GL_OES_EGL_image_external")) { @@ -4115,7 +4139,7 @@ yyreduce: } break; - case 185: + case 187: { FRAG_VERT_ONLY("sampler3D", (yylsp[(1) - (1)])); @@ -4124,7 +4148,7 @@ yyreduce: } break; - case 186: + case 188: { FRAG_VERT_ONLY("sampler2DArray", (yylsp[(1) - (1)])); @@ -4133,7 +4157,7 @@ yyreduce: } break; - case 187: + case 189: { FRAG_VERT_ONLY("isampler2D", (yylsp[(1) - (1)])); @@ -4142,7 +4166,7 @@ yyreduce: } break; - case 188: + case 190: { FRAG_VERT_ONLY("isampler3D", (yylsp[(1) - (1)])); @@ -4151,7 +4175,7 @@ yyreduce: } break; - case 189: + case 191: { FRAG_VERT_ONLY("isamplerCube", (yylsp[(1) - (1)])); @@ -4160,7 +4184,7 @@ yyreduce: } break; - case 190: + case 192: { FRAG_VERT_ONLY("isampler2DArray", (yylsp[(1) - (1)])); @@ -4169,7 +4193,7 @@ yyreduce: } break; - case 191: + case 193: { FRAG_VERT_ONLY("usampler2D", (yylsp[(1) - (1)])); @@ -4178,7 +4202,7 @@ yyreduce: } break; - case 192: + case 194: { FRAG_VERT_ONLY("usampler3D", (yylsp[(1) - (1)])); @@ -4187,7 +4211,7 @@ yyreduce: } break; - case 193: + case 195: { FRAG_VERT_ONLY("usamplerCube", (yylsp[(1) - (1)])); @@ -4196,7 +4220,7 @@ yyreduce: } break; - case 194: + case 196: { FRAG_VERT_ONLY("usampler2DArray", (yylsp[(1) - (1)])); @@ -4205,7 +4229,7 @@ yyreduce: } break; - case 195: + case 197: { FRAG_VERT_ONLY("sampler2DShadow", (yylsp[(1) - (1)])); @@ -4214,7 +4238,7 @@ yyreduce: } break; - case 196: + case 198: { FRAG_VERT_ONLY("samplerCubeShadow", (yylsp[(1) - (1)])); @@ -4223,7 +4247,7 @@ yyreduce: } break; - case 197: + case 199: { FRAG_VERT_ONLY("sampler2DArrayShadow", (yylsp[(1) - (1)])); @@ -4232,7 +4256,7 @@ yyreduce: } break; - case 198: + case 200: { FRAG_VERT_ONLY("struct", (yylsp[(1) - (1)])); @@ -4241,7 +4265,7 @@ yyreduce: } break; - case 199: + case 201: { // @@ -4255,38 +4279,38 @@ yyreduce: } break; - case 200: + case 202: { if (context->enterStructDeclaration((yylsp[(2) - (3)]), *(yyvsp[(2) - (3)].lex).string)) context->recover(); } break; - case 201: + case 203: { (yyval.interm.type) = context->addStructure((yylsp[(1) - (6)]), (yylsp[(2) - (6)]), (yyvsp[(2) - (6)].lex).string, (yyvsp[(5) - (6)].interm.fieldList)); } break; - case 202: + case 204: { if (context->enterStructDeclaration((yylsp[(2) - (2)]), *(yyvsp[(2) - (2)].lex).string)) context->recover(); } break; - case 203: + case 205: { (yyval.interm.type) = context->addStructure((yylsp[(1) - (5)]), (yylsp[(1) - (5)]), NewPoolTString(""), (yyvsp[(4) - (5)].interm.fieldList)); } break; - case 204: + case 206: { (yyval.interm.fieldList) = (yyvsp[(1) - (1)].interm.fieldList); } break; - case 205: + case 207: { (yyval.interm.fieldList) = (yyvsp[(1) - (2)].interm.fieldList); @@ -4303,14 +4327,14 @@ yyreduce: } break; - case 206: + case 208: { (yyval.interm.fieldList) = context->addStructDeclaratorList((yyvsp[(1) - (3)].interm.type), (yyvsp[(2) - (3)].interm.fieldList)); } break; - case 207: + case 209: { // ES3 Only, but errors should be handled elsewhere @@ -4320,7 +4344,7 @@ yyreduce: } break; - case 208: + case 210: { (yyval.interm.fieldList) = NewPoolTFieldList(); @@ -4328,14 +4352,14 @@ yyreduce: } break; - case 209: + case 211: { (yyval.interm.fieldList)->push_back((yyvsp[(3) - (3)].interm.field)); } break; - case 210: + case 212: { if (context->reservedErrorCheck((yylsp[(1) - (1)]), *(yyvsp[(1) - (1)].lex).string)) @@ -4346,7 +4370,7 @@ yyreduce: } break; - case 211: + case 213: { if (context->reservedErrorCheck((yylsp[(1) - (4)]), *(yyvsp[(1) - (4)].lex).string)) @@ -4362,77 +4386,77 @@ yyreduce: } break; - case 212: + case 214: { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 213: + case 215: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 214: + case 216: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); } break; - case 215: + case 217: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 216: + case 218: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 217: + case 219: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 218: + case 220: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 219: + case 221: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermSwitch); } break; - case 220: + case 222: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermCase); } break; - case 221: + case 223: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 222: + case 224: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 223: + case 225: { (yyval.interm.intermAggregate) = 0; } break; - case 224: + case 226: { context->symbolTable.push(); } break; - case 225: + case 227: { context->symbolTable.pop(); } break; - case 226: + case 228: { if ((yyvsp[(3) - (5)].interm.intermAggregate) != 0) { @@ -4443,44 +4467,44 @@ yyreduce: } break; - case 227: + case 229: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 228: + case 230: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 229: + case 231: { context->symbolTable.push(); } break; - case 230: + case 232: { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } break; - case 231: + case 233: { context->symbolTable.push(); } break; - case 232: + case 234: { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } break; - case 233: + case 235: { (yyval.interm.intermNode) = 0; } break; - case 234: + case 236: { if ((yyvsp[(2) - (3)].interm.intermAggregate)) { @@ -4491,31 +4515,31 @@ yyreduce: } break; - case 235: + case 237: { (yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode), (yyloc)); } break; - case 236: + case 238: { (yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermAggregate), (yyvsp[(2) - (2)].interm.intermNode), (yyloc)); } break; - case 237: + case 239: { (yyval.interm.intermNode) = 0; } break; - case 238: + case 240: { (yyval.interm.intermNode) = static_cast((yyvsp[(1) - (2)].interm.intermTypedNode)); } break; - case 239: + case 241: { if (context->boolErrorCheck((yylsp[(1) - (5)]), (yyvsp[(3) - (5)].interm.intermTypedNode))) @@ -4524,7 +4548,7 @@ yyreduce: } break; - case 240: + case 242: { (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode); @@ -4532,7 +4556,7 @@ yyreduce: } break; - case 241: + case 243: { (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode); @@ -4540,12 +4564,12 @@ yyreduce: } break; - case 242: + case 244: { context->incrSwitchNestingLevel(); } break; - case 243: + case 245: { (yyval.interm.intermSwitch) = context->addSwitch((yyvsp[(3) - (6)].interm.intermTypedNode), (yyvsp[(6) - (6)].interm.intermAggregate), (yylsp[(1) - (6)])); @@ -4553,21 +4577,21 @@ yyreduce: } break; - case 244: + case 246: { (yyval.interm.intermCase) = context->addCase((yyvsp[(2) - (3)].interm.intermTypedNode), (yylsp[(1) - (3)])); } break; - case 245: + case 247: { (yyval.interm.intermCase) = context->addDefault((yylsp[(1) - (2)])); } break; - case 246: + case 248: { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); @@ -4576,7 +4600,7 @@ yyreduce: } break; - case 247: + case 249: { TIntermNode* intermNode; @@ -4594,12 +4618,12 @@ yyreduce: } break; - case 248: + case 250: { context->symbolTable.push(); context->incrLoopNestingLevel(); } break; - case 249: + case 251: { context->symbolTable.pop(); @@ -4608,12 +4632,12 @@ yyreduce: } break; - case 250: + case 252: { context->incrLoopNestingLevel(); } break; - case 251: + case 253: { if (context->boolErrorCheck((yylsp[(8) - (8)]), (yyvsp[(6) - (8)].interm.intermTypedNode))) @@ -4624,12 +4648,12 @@ yyreduce: } break; - case 252: + case 254: { context->symbolTable.push(); context->incrLoopNestingLevel(); } break; - case 253: + case 255: { context->symbolTable.pop(); @@ -4638,35 +4662,35 @@ yyreduce: } break; - case 254: + case 256: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 255: + case 257: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 256: + case 258: { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 257: + case 259: { (yyval.interm.intermTypedNode) = 0; } break; - case 258: + case 260: { (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode); @@ -4674,7 +4698,7 @@ yyreduce: } break; - case 259: + case 261: { (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode); @@ -4682,35 +4706,35 @@ yyreduce: } break; - case 260: + case 262: { (yyval.interm.intermNode) = context->addBranch(EOpContinue, (yylsp[(1) - (2)])); } break; - case 261: + case 263: { (yyval.interm.intermNode) = context->addBranch(EOpBreak, (yylsp[(1) - (2)])); } break; - case 262: + case 264: { (yyval.interm.intermNode) = context->addBranch(EOpReturn, (yylsp[(1) - (2)])); } break; - case 263: + case 265: { (yyval.interm.intermNode) = context->addBranch(EOpReturn, (yyvsp[(2) - (3)].interm.intermTypedNode), (yylsp[(1) - (3)])); } break; - case 264: + case 266: { FRAG_ONLY("discard", (yylsp[(1) - (2)])); @@ -4718,7 +4742,7 @@ yyreduce: } break; - case 265: + case 267: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); @@ -4726,7 +4750,7 @@ yyreduce: } break; - case 266: + case 268: { (yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode), (yyloc)); @@ -4734,21 +4758,21 @@ yyreduce: } break; - case 267: + case 269: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 268: + case 270: { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 269: + case 271: { TFunction* function = (yyvsp[(1) - (1)].interm).function; @@ -4837,7 +4861,7 @@ yyreduce: } break; - case 270: + case 272: { //?? Check that all paths return a value if return type != void ? -- 2.11.0