summaryrefslogtreecommitdiffstats
path: root/Source/ThirdParty/ANGLE/src/compiler/glslang_tab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/ThirdParty/ANGLE/src/compiler/glslang_tab.cpp')
-rw-r--r--Source/ThirdParty/ANGLE/src/compiler/glslang_tab.cpp1503
1 files changed, 815 insertions, 688 deletions
diff --git a/Source/ThirdParty/ANGLE/src/compiler/glslang_tab.cpp b/Source/ThirdParty/ANGLE/src/compiler/glslang_tab.cpp
index d00c7a3..37a0f05 100644
--- a/Source/ThirdParty/ANGLE/src/compiler/glslang_tab.cpp
+++ b/Source/ThirdParty/ANGLE/src/compiler/glslang_tab.cpp
@@ -106,57 +106,59 @@
WHILE = 295,
SAMPLER2D = 296,
SAMPLERCUBE = 297,
- IDENTIFIER = 298,
- TYPE_NAME = 299,
- FLOATCONSTANT = 300,
- INTCONSTANT = 301,
- BOOLCONSTANT = 302,
- FIELD_SELECTION = 303,
- LEFT_OP = 304,
- RIGHT_OP = 305,
- INC_OP = 306,
- DEC_OP = 307,
- LE_OP = 308,
- GE_OP = 309,
- EQ_OP = 310,
- NE_OP = 311,
- AND_OP = 312,
- OR_OP = 313,
- XOR_OP = 314,
- MUL_ASSIGN = 315,
- DIV_ASSIGN = 316,
- ADD_ASSIGN = 317,
- MOD_ASSIGN = 318,
- LEFT_ASSIGN = 319,
- RIGHT_ASSIGN = 320,
- AND_ASSIGN = 321,
- XOR_ASSIGN = 322,
- OR_ASSIGN = 323,
- SUB_ASSIGN = 324,
- LEFT_PAREN = 325,
- RIGHT_PAREN = 326,
- LEFT_BRACKET = 327,
- RIGHT_BRACKET = 328,
- LEFT_BRACE = 329,
- RIGHT_BRACE = 330,
- DOT = 331,
- COMMA = 332,
- COLON = 333,
- EQUAL = 334,
- SEMICOLON = 335,
- BANG = 336,
- DASH = 337,
- TILDE = 338,
- PLUS = 339,
- STAR = 340,
- SLASH = 341,
- PERCENT = 342,
- LEFT_ANGLE = 343,
- RIGHT_ANGLE = 344,
- VERTICAL_BAR = 345,
- CARET = 346,
- AMPERSAND = 347,
- QUESTION = 348
+ SAMPLER_EXTERNAL_OES = 298,
+ SAMPLER2DRECT = 299,
+ IDENTIFIER = 300,
+ TYPE_NAME = 301,
+ FLOATCONSTANT = 302,
+ INTCONSTANT = 303,
+ BOOLCONSTANT = 304,
+ FIELD_SELECTION = 305,
+ LEFT_OP = 306,
+ RIGHT_OP = 307,
+ INC_OP = 308,
+ DEC_OP = 309,
+ LE_OP = 310,
+ GE_OP = 311,
+ EQ_OP = 312,
+ NE_OP = 313,
+ AND_OP = 314,
+ OR_OP = 315,
+ XOR_OP = 316,
+ MUL_ASSIGN = 317,
+ DIV_ASSIGN = 318,
+ ADD_ASSIGN = 319,
+ MOD_ASSIGN = 320,
+ LEFT_ASSIGN = 321,
+ RIGHT_ASSIGN = 322,
+ AND_ASSIGN = 323,
+ XOR_ASSIGN = 324,
+ OR_ASSIGN = 325,
+ SUB_ASSIGN = 326,
+ LEFT_PAREN = 327,
+ RIGHT_PAREN = 328,
+ LEFT_BRACKET = 329,
+ RIGHT_BRACKET = 330,
+ LEFT_BRACE = 331,
+ RIGHT_BRACE = 332,
+ DOT = 333,
+ COMMA = 334,
+ COLON = 335,
+ EQUAL = 336,
+ SEMICOLON = 337,
+ BANG = 338,
+ DASH = 339,
+ TILDE = 340,
+ PLUS = 341,
+ STAR = 342,
+ SLASH = 343,
+ PERCENT = 344,
+ LEFT_ANGLE = 345,
+ RIGHT_ANGLE = 346,
+ VERTICAL_BAR = 347,
+ CARET = 348,
+ AMPERSAND = 349,
+ QUESTION = 350
};
#endif
/* Tokens. */
@@ -200,57 +202,59 @@
#define WHILE 295
#define SAMPLER2D 296
#define SAMPLERCUBE 297
-#define IDENTIFIER 298
-#define TYPE_NAME 299
-#define FLOATCONSTANT 300
-#define INTCONSTANT 301
-#define BOOLCONSTANT 302
-#define FIELD_SELECTION 303
-#define LEFT_OP 304
-#define RIGHT_OP 305
-#define INC_OP 306
-#define DEC_OP 307
-#define LE_OP 308
-#define GE_OP 309
-#define EQ_OP 310
-#define NE_OP 311
-#define AND_OP 312
-#define OR_OP 313
-#define XOR_OP 314
-#define MUL_ASSIGN 315
-#define DIV_ASSIGN 316
-#define ADD_ASSIGN 317
-#define MOD_ASSIGN 318
-#define LEFT_ASSIGN 319
-#define RIGHT_ASSIGN 320
-#define AND_ASSIGN 321
-#define XOR_ASSIGN 322
-#define OR_ASSIGN 323
-#define SUB_ASSIGN 324
-#define LEFT_PAREN 325
-#define RIGHT_PAREN 326
-#define LEFT_BRACKET 327
-#define RIGHT_BRACKET 328
-#define LEFT_BRACE 329
-#define RIGHT_BRACE 330
-#define DOT 331
-#define COMMA 332
-#define COLON 333
-#define EQUAL 334
-#define SEMICOLON 335
-#define BANG 336
-#define DASH 337
-#define TILDE 338
-#define PLUS 339
-#define STAR 340
-#define SLASH 341
-#define PERCENT 342
-#define LEFT_ANGLE 343
-#define RIGHT_ANGLE 344
-#define VERTICAL_BAR 345
-#define CARET 346
-#define AMPERSAND 347
-#define QUESTION 348
+#define SAMPLER_EXTERNAL_OES 298
+#define SAMPLER2DRECT 299
+#define IDENTIFIER 300
+#define TYPE_NAME 301
+#define FLOATCONSTANT 302
+#define INTCONSTANT 303
+#define BOOLCONSTANT 304
+#define FIELD_SELECTION 305
+#define LEFT_OP 306
+#define RIGHT_OP 307
+#define INC_OP 308
+#define DEC_OP 309
+#define LE_OP 310
+#define GE_OP 311
+#define EQ_OP 312
+#define NE_OP 313
+#define AND_OP 314
+#define OR_OP 315
+#define XOR_OP 316
+#define MUL_ASSIGN 317
+#define DIV_ASSIGN 318
+#define ADD_ASSIGN 319
+#define MOD_ASSIGN 320
+#define LEFT_ASSIGN 321
+#define RIGHT_ASSIGN 322
+#define AND_ASSIGN 323
+#define XOR_ASSIGN 324
+#define OR_ASSIGN 325
+#define SUB_ASSIGN 326
+#define LEFT_PAREN 327
+#define RIGHT_PAREN 328
+#define LEFT_BRACKET 329
+#define RIGHT_BRACKET 330
+#define LEFT_BRACE 331
+#define RIGHT_BRACE 332
+#define DOT 333
+#define COMMA 334
+#define COLON 335
+#define EQUAL 336
+#define SEMICOLON 337
+#define BANG 338
+#define DASH 339
+#define TILDE 340
+#define PLUS 341
+#define STAR 342
+#define SLASH 343
+#define PERCENT 344
+#define LEFT_ANGLE 345
+#define RIGHT_ANGLE 346
+#define VERTICAL_BAR 347
+#define CARET 348
+#define AMPERSAND 349
+#define QUESTION 350
@@ -259,12 +263,24 @@
//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
+// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
-// This file is auto-generated by generate_glslang_parser.sh. DO NOT EDIT!
+// This file is auto-generated by generate_parser.sh. DO NOT EDIT!
+
+// Ignore errors in auto-generated code.
+#if defined(__GNUC__)
+#pragma GCC diagnostic ignored "-Wunused-function"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#pragma GCC diagnostic ignored "-Wswitch-enum"
+#elif defined(_MSC_VER)
+#pragma warning(disable: 4065)
+#pragma warning(disable: 4189)
+#pragma warning(disable: 4505)
+#pragma warning(disable: 4701)
+#endif
#include "compiler/SymbolTable.h"
#include "compiler/ParseHelper.h"
@@ -325,7 +341,7 @@ typedef union YYSTYPE
};
} interm;
}
-/* Line 187 of yacc.c. */
+/* Line 193 of yacc.c. */
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -415,7 +431,7 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -578,22 +594,22 @@ union yyalloc
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 69
+#define YYFINAL 71
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1334
+#define YYLAST 1416
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 94
+#define YYNTOKENS 96
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 78
+#define YYNNTS 83
/* YYNRULES -- Number of rules. */
-#define YYNRULES 193
+#define YYNRULES 201
/* YYNRULES -- Number of states. */
-#define YYNSTATES 296
+#define YYNSTATES 304
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 348
+#define YYMAXUTOK 350
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -635,7 +651,8 @@ static const yytype_uint8 yytranslate[] =
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95
};
#if YYDEBUG
@@ -656,99 +673,102 @@ static const yytype_uint16 yyprhs[] =
298, 303, 306, 308, 311, 313, 315, 317, 320, 322,
324, 327, 329, 331, 333, 335, 340, 342, 344, 346,
348, 350, 352, 354, 356, 358, 360, 362, 364, 366,
- 368, 370, 372, 374, 376, 378, 380, 386, 391, 393,
- 396, 400, 402, 406, 408, 413, 415, 417, 419, 421,
- 423, 425, 427, 429, 431, 434, 435, 436, 442, 444,
- 446, 449, 453, 455, 458, 460, 463, 469, 473, 475,
- 477, 482, 483, 490, 491, 500, 501, 509, 511, 513,
- 515, 516, 519, 523, 526, 529, 532, 536, 539, 541,
- 544, 546, 548, 549
+ 368, 370, 372, 374, 376, 378, 380, 382, 384, 385,
+ 392, 393, 399, 401, 404, 408, 410, 414, 416, 421,
+ 423, 425, 427, 429, 431, 433, 435, 437, 439, 442,
+ 443, 444, 450, 452, 454, 455, 458, 459, 462, 465,
+ 469, 471, 474, 476, 479, 485, 489, 491, 493, 498,
+ 499, 506, 507, 516, 517, 525, 527, 529, 531, 532,
+ 535, 539, 542, 545, 548, 552, 555, 557, 560, 562,
+ 564, 565
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 168, 0, -1, 43, -1, 95, -1, 46, -1, 45,
- -1, 47, -1, 70, 122, 71, -1, 96, -1, 97,
- 72, 98, 73, -1, 99, -1, 97, 76, 48, -1,
- 97, 51, -1, 97, 52, -1, 122, -1, 100, -1,
- 101, -1, 97, 76, 101, -1, 103, 71, -1, 102,
- 71, -1, 104, 39, -1, 104, -1, 104, 120, -1,
- 103, 77, 120, -1, 105, 70, -1, 137, -1, 43,
- -1, 48, -1, 97, -1, 51, 106, -1, 52, 106,
- -1, 107, 106, -1, 84, -1, 82, -1, 81, -1,
- 106, -1, 108, 85, 106, -1, 108, 86, 106, -1,
- 108, -1, 109, 84, 108, -1, 109, 82, 108, -1,
- 109, -1, 110, -1, 111, 88, 110, -1, 111, 89,
- 110, -1, 111, 53, 110, -1, 111, 54, 110, -1,
- 111, -1, 112, 55, 111, -1, 112, 56, 111, -1,
- 112, -1, 113, -1, 114, -1, 115, -1, 116, 57,
- 115, -1, 116, -1, 117, 59, 116, -1, 117, -1,
- 118, 58, 117, -1, 118, -1, 118, 93, 122, 78,
- 120, -1, 119, -1, 106, 121, 120, -1, 79, -1,
- 60, -1, 61, -1, 62, -1, 69, -1, 120, -1,
- 122, 77, 120, -1, 119, -1, 125, 80, -1, 133,
- 80, -1, 7, 138, 139, 80, -1, 126, 71, -1,
- 128, -1, 127, -1, 128, 130, -1, 127, 77, 130,
- -1, 135, 43, 70, -1, 137, 43, -1, 137, 43,
- 72, 123, 73, -1, 136, 131, 129, -1, 131, 129,
- -1, 136, 131, 132, -1, 131, 132, -1, -1, 33,
- -1, 34, -1, 35, -1, 137, -1, 134, -1, 133,
- 77, 43, -1, 133, 77, 43, 72, 73, -1, 133,
- 77, 43, 72, 123, 73, -1, 133, 77, 43, 79,
- 146, -1, 135, -1, 135, 43, -1, 135, 43, 72,
- 73, -1, 135, 43, 72, 123, 73, -1, 135, 43,
- 79, 146, -1, 3, 43, -1, 137, -1, 136, 137,
+ 175, 0, -1, 45, -1, 97, -1, 48, -1, 47,
+ -1, 49, -1, 72, 124, 73, -1, 98, -1, 99,
+ 74, 100, 75, -1, 101, -1, 99, 78, 50, -1,
+ 99, 53, -1, 99, 54, -1, 124, -1, 102, -1,
+ 103, -1, 99, 78, 103, -1, 105, 73, -1, 104,
+ 73, -1, 106, 39, -1, 106, -1, 106, 122, -1,
+ 105, 79, 122, -1, 107, 72, -1, 142, -1, 45,
+ -1, 50, -1, 99, -1, 53, 108, -1, 54, 108,
+ -1, 109, 108, -1, 86, -1, 84, -1, 83, -1,
+ 108, -1, 110, 87, 108, -1, 110, 88, 108, -1,
+ 110, -1, 111, 86, 110, -1, 111, 84, 110, -1,
+ 111, -1, 112, -1, 113, 90, 112, -1, 113, 91,
+ 112, -1, 113, 55, 112, -1, 113, 56, 112, -1,
+ 113, -1, 114, 57, 113, -1, 114, 58, 113, -1,
+ 114, -1, 115, -1, 116, -1, 117, -1, 118, 59,
+ 117, -1, 118, -1, 119, 61, 118, -1, 119, -1,
+ 120, 60, 119, -1, 120, -1, 120, 95, 124, 80,
+ 122, -1, 121, -1, 108, 123, 122, -1, 81, -1,
+ 62, -1, 63, -1, 64, -1, 71, -1, 122, -1,
+ 124, 79, 122, -1, 121, -1, 127, 82, -1, 135,
+ 82, -1, 7, 140, 141, 82, -1, 128, 73, -1,
+ 130, -1, 129, -1, 130, 132, -1, 129, 79, 132,
+ -1, 137, 45, 72, -1, 139, 45, -1, 139, 45,
+ 74, 125, 75, -1, 138, 133, 131, -1, 133, 131,
+ -1, 138, 133, 134, -1, 133, 134, -1, -1, 33,
+ -1, 34, -1, 35, -1, 139, -1, 136, -1, 135,
+ 79, 45, -1, 135, 79, 45, 74, 75, -1, 135,
+ 79, 45, 74, 125, 75, -1, 135, 79, 45, 81,
+ 150, -1, 137, -1, 137, 45, -1, 137, 45, 74,
+ 75, -1, 137, 45, 74, 125, 75, -1, 137, 45,
+ 81, 150, -1, 3, 45, -1, 139, -1, 138, 139,
-1, 9, -1, 8, -1, 37, -1, 3, 37, -1,
- 36, -1, 139, -1, 138, 139, -1, 4, -1, 5,
- -1, 6, -1, 140, -1, 140, 72, 123, 73, -1,
+ 36, -1, 141, -1, 140, 141, -1, 4, -1, 5,
+ -1, 6, -1, 142, -1, 142, 74, 125, 75, -1,
39, -1, 11, -1, 12, -1, 10, -1, 27, -1,
28, -1, 29, -1, 21, -1, 22, -1, 23, -1,
24, -1, 25, -1, 26, -1, 30, -1, 31, -1,
- 32, -1, 41, -1, 42, -1, 141, -1, 44, -1,
- 38, 43, 74, 142, 75, -1, 38, 74, 142, 75,
- -1, 143, -1, 142, 143, -1, 137, 144, 80, -1,
- 145, -1, 144, 77, 145, -1, 43, -1, 43, 72,
- 123, 73, -1, 120, -1, 124, -1, 150, -1, 149,
- -1, 147, -1, 156, -1, 157, -1, 160, -1, 167,
- -1, 74, 75, -1, -1, -1, 74, 151, 155, 152,
- 75, -1, 154, -1, 149, -1, 74, 75, -1, 74,
- 155, 75, -1, 148, -1, 155, 148, -1, 80, -1,
- 122, 80, -1, 18, 70, 122, 71, 158, -1, 148,
- 16, 148, -1, 148, -1, 122, -1, 135, 43, 79,
- 146, -1, -1, 40, 70, 161, 159, 71, 153, -1,
- -1, 15, 162, 148, 40, 70, 122, 71, 80, -1,
- -1, 17, 70, 163, 164, 166, 71, 153, -1, 156,
- -1, 147, -1, 159, -1, -1, 165, 80, -1, 165,
- 80, 122, -1, 14, 80, -1, 13, 80, -1, 20,
- 80, -1, 20, 122, 80, -1, 19, 80, -1, 169,
- -1, 168, 169, -1, 170, -1, 124, -1, -1, 125,
- 171, 154, -1
+ 32, -1, 41, -1, 42, -1, 43, -1, 44, -1,
+ 143, -1, 46, -1, -1, 38, 45, 76, 144, 146,
+ 77, -1, -1, 38, 76, 145, 146, 77, -1, 147,
+ -1, 146, 147, -1, 139, 148, 82, -1, 149, -1,
+ 148, 79, 149, -1, 45, -1, 45, 74, 125, 75,
+ -1, 122, -1, 126, -1, 154, -1, 153, -1, 151,
+ -1, 163, -1, 164, -1, 167, -1, 174, -1, 76,
+ 77, -1, -1, -1, 76, 155, 162, 156, 77, -1,
+ 161, -1, 153, -1, -1, 159, 161, -1, -1, 160,
+ 153, -1, 76, 77, -1, 76, 162, 77, -1, 152,
+ -1, 162, 152, -1, 82, -1, 124, 82, -1, 18,
+ 72, 124, 73, 165, -1, 158, 16, 158, -1, 158,
+ -1, 124, -1, 137, 45, 81, 150, -1, -1, 40,
+ 72, 168, 166, 73, 157, -1, -1, 15, 169, 158,
+ 40, 72, 124, 73, 82, -1, -1, 17, 72, 170,
+ 171, 173, 73, 157, -1, 163, -1, 151, -1, 166,
+ -1, -1, 172, 82, -1, 172, 82, 124, -1, 14,
+ 82, -1, 13, 82, -1, 20, 82, -1, 20, 124,
+ 82, -1, 19, 82, -1, 176, -1, 175, 176, -1,
+ 177, -1, 126, -1, -1, 127, 178, 161, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 153, 153, 188, 191, 204, 209, 214, 220, 223,
- 296, 299, 408, 418, 431, 439, 538, 541, 549, 553,
- 560, 564, 571, 577, 586, 594, 656, 663, 673, 676,
- 686, 696, 717, 718, 719, 724, 725, 734, 746, 747,
- 755, 766, 770, 771, 781, 791, 801, 814, 815, 825,
- 838, 842, 846, 850, 851, 864, 865, 878, 879, 892,
- 893, 910, 911, 924, 925, 926, 927, 928, 932, 935,
- 946, 954, 979, 984, 991, 1027, 1030, 1037, 1045, 1066,
- 1085, 1096, 1125, 1130, 1140, 1145, 1155, 1158, 1161, 1164,
- 1170, 1177, 1187, 1199, 1217, 1241, 1264, 1268, 1282, 1302,
- 1331, 1351, 1427, 1436, 1459, 1462, 1468, 1476, 1484, 1492,
- 1495, 1502, 1505, 1508, 1514, 1517, 1532, 1536, 1540, 1544,
- 1553, 1558, 1563, 1568, 1573, 1578, 1583, 1588, 1593, 1598,
- 1604, 1610, 1616, 1621, 1626, 1631, 1644, 1657, 1665, 1668,
- 1683, 1714, 1718, 1724, 1732, 1748, 1752, 1756, 1757, 1763,
- 1764, 1765, 1766, 1767, 1771, 1772, 1772, 1772, 1780, 1781,
- 1786, 1789, 1797, 1800, 1806, 1807, 1811, 1819, 1823, 1833,
- 1838, 1855, 1855, 1860, 1860, 1867, 1867, 1875, 1878, 1884,
- 1887, 1893, 1897, 1904, 1911, 1918, 1925, 1936, 1945, 1949,
- 1956, 1959, 1965, 1965
+ 0, 165, 165, 200, 203, 216, 221, 226, 232, 235,
+ 308, 311, 420, 430, 443, 451, 550, 553, 561, 565,
+ 572, 576, 583, 589, 598, 606, 661, 668, 678, 681,
+ 691, 701, 722, 723, 724, 729, 730, 739, 751, 752,
+ 760, 771, 775, 776, 786, 796, 806, 819, 820, 830,
+ 843, 847, 851, 855, 856, 869, 870, 883, 884, 897,
+ 898, 915, 916, 929, 930, 931, 932, 933, 937, 940,
+ 951, 959, 986, 991, 998, 1036, 1039, 1046, 1054, 1075,
+ 1096, 1107, 1136, 1141, 1151, 1156, 1166, 1169, 1172, 1175,
+ 1181, 1188, 1191, 1213, 1231, 1255, 1278, 1282, 1300, 1308,
+ 1340, 1360, 1449, 1458, 1481, 1484, 1490, 1498, 1506, 1514,
+ 1524, 1531, 1534, 1537, 1543, 1546, 1561, 1565, 1569, 1573,
+ 1582, 1587, 1592, 1597, 1602, 1607, 1612, 1617, 1622, 1627,
+ 1633, 1639, 1645, 1650, 1655, 1664, 1673, 1678, 1691, 1691,
+ 1705, 1705, 1714, 1717, 1732, 1768, 1772, 1778, 1786, 1802,
+ 1806, 1810, 1811, 1817, 1818, 1819, 1820, 1821, 1825, 1826,
+ 1826, 1826, 1836, 1837, 1841, 1841, 1842, 1842, 1847, 1850,
+ 1860, 1863, 1869, 1870, 1874, 1882, 1886, 1896, 1901, 1918,
+ 1918, 1923, 1923, 1930, 1930, 1938, 1941, 1947, 1950, 1956,
+ 1960, 1967, 1974, 1981, 1988, 1999, 2008, 2012, 2019, 2022,
+ 2028, 2028
};
#endif
@@ -764,16 +784,16 @@ static const char *const yytname[] =
"BVEC4", "IVEC2", "IVEC3", "IVEC4", "VEC2", "VEC3", "VEC4", "MATRIX2",
"MATRIX3", "MATRIX4", "IN_QUAL", "OUT_QUAL", "INOUT_QUAL", "UNIFORM",
"VARYING", "STRUCT", "VOID_TYPE", "WHILE", "SAMPLER2D", "SAMPLERCUBE",
- "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", "INTCONSTANT",
- "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP",
- "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
- "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN",
- "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
- "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET",
- "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON",
- "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH",
- "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET",
- "AMPERSAND", "QUESTION", "$accept", "variable_identifier",
+ "SAMPLER_EXTERNAL_OES", "SAMPLER2DRECT", "IDENTIFIER", "TYPE_NAME",
+ "FLOATCONSTANT", "INTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION",
+ "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP",
+ "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN",
+ "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
+ "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN",
+ "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT",
+ "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS",
+ "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR",
+ "CARET", "AMPERSAND", "QUESTION", "$accept", "variable_identifier",
"primary_expression", "postfix_expression", "integer_expression",
"function_call", "function_call_or_method", "function_call_generic",
"function_call_header_no_parameters",
@@ -792,16 +812,16 @@ static const char *const yytname[] =
"init_declarator_list", "single_declaration", "fully_specified_type",
"type_qualifier", "type_specifier", "precision_qualifier",
"type_specifier_no_prec", "type_specifier_nonarray", "struct_specifier",
- "struct_declaration_list", "struct_declaration",
+ "@1", "@2", "struct_declaration_list", "struct_declaration",
"struct_declarator_list", "struct_declarator", "initializer",
"declaration_statement", "statement", "simple_statement",
- "compound_statement", "@1", "@2", "statement_no_new_scope",
- "compound_statement_no_new_scope", "statement_list",
- "expression_statement", "selection_statement",
- "selection_rest_statement", "condition", "iteration_statement", "@3",
- "@4", "@5", "for_init_statement", "conditionopt", "for_rest_statement",
+ "compound_statement", "@3", "@4", "statement_no_new_scope",
+ "statement_with_scope", "@5", "@6", "compound_statement_no_new_scope",
+ "statement_list", "expression_statement", "selection_statement",
+ "selection_rest_statement", "condition", "iteration_statement", "@7",
+ "@8", "@9", "for_init_statement", "conditionopt", "for_rest_statement",
"jump_statement", "translation_unit", "external_declaration",
- "function_definition", "@6", 0
+ "function_definition", "@10", 0
};
#endif
@@ -819,33 +839,34 @@ static const yytype_uint16 yytoknum[] =
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348
+ 345, 346, 347, 348, 349, 350
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 94, 95, 96, 96, 96, 96, 96, 97, 97,
- 97, 97, 97, 97, 98, 99, 100, 100, 101, 101,
- 102, 102, 103, 103, 104, 105, 105, 105, 106, 106,
- 106, 106, 107, 107, 107, 108, 108, 108, 109, 109,
- 109, 110, 111, 111, 111, 111, 111, 112, 112, 112,
- 113, 114, 115, 116, 116, 117, 117, 118, 118, 119,
- 119, 120, 120, 121, 121, 121, 121, 121, 122, 122,
- 123, 124, 124, 124, 125, 126, 126, 127, 127, 128,
- 129, 129, 130, 130, 130, 130, 131, 131, 131, 131,
- 132, 133, 133, 133, 133, 133, 134, 134, 134, 134,
- 134, 134, 135, 135, 136, 136, 136, 136, 136, 137,
- 137, 138, 138, 138, 139, 139, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 141, 141, 142, 142,
- 143, 144, 144, 145, 145, 146, 147, 148, 148, 149,
- 149, 149, 149, 149, 150, 151, 152, 150, 153, 153,
- 154, 154, 155, 155, 156, 156, 157, 158, 158, 159,
- 159, 161, 160, 162, 160, 163, 160, 164, 164, 165,
- 165, 166, 166, 167, 167, 167, 167, 167, 168, 168,
- 169, 169, 171, 170
+ 0, 96, 97, 98, 98, 98, 98, 98, 99, 99,
+ 99, 99, 99, 99, 100, 101, 102, 102, 103, 103,
+ 104, 104, 105, 105, 106, 107, 107, 107, 108, 108,
+ 108, 108, 109, 109, 109, 110, 110, 110, 111, 111,
+ 111, 112, 113, 113, 113, 113, 113, 114, 114, 114,
+ 115, 116, 117, 118, 118, 119, 119, 120, 120, 121,
+ 121, 122, 122, 123, 123, 123, 123, 123, 124, 124,
+ 125, 126, 126, 126, 127, 128, 128, 129, 129, 130,
+ 131, 131, 132, 132, 132, 132, 133, 133, 133, 133,
+ 134, 135, 135, 135, 135, 135, 136, 136, 136, 136,
+ 136, 136, 137, 137, 138, 138, 138, 138, 138, 139,
+ 139, 140, 140, 140, 141, 141, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142, 144, 143,
+ 145, 143, 146, 146, 147, 148, 148, 149, 149, 150,
+ 151, 152, 152, 153, 153, 153, 153, 153, 154, 155,
+ 156, 154, 157, 157, 159, 158, 160, 158, 161, 161,
+ 162, 162, 163, 163, 164, 165, 165, 166, 166, 168,
+ 167, 169, 167, 170, 167, 171, 171, 172, 172, 173,
+ 173, 174, 174, 174, 174, 174, 175, 175, 176, 176,
+ 178, 177
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -864,13 +885,14 @@ static const yytype_uint8 yyr2[] =
4, 2, 1, 2, 1, 1, 1, 2, 1, 1,
2, 1, 1, 1, 1, 4, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 5, 4, 1, 2,
- 3, 1, 3, 1, 4, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 0, 0, 5, 1, 1,
- 2, 3, 1, 2, 1, 2, 5, 3, 1, 1,
- 4, 0, 6, 0, 8, 0, 7, 1, 1, 1,
- 0, 2, 3, 2, 2, 2, 3, 2, 1, 2,
- 1, 1, 0, 3
+ 1, 1, 1, 1, 1, 1, 1, 1, 0, 6,
+ 0, 5, 1, 2, 3, 1, 3, 1, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
+ 0, 5, 1, 1, 0, 2, 0, 2, 2, 3,
+ 1, 2, 1, 2, 5, 3, 1, 1, 4, 0,
+ 6, 0, 8, 0, 7, 1, 1, 1, 0, 2,
+ 3, 2, 2, 2, 3, 2, 1, 2, 1, 1,
+ 0, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -880,378 +902,398 @@ static const yytype_uint8 yydefact[] =
{
0, 0, 111, 112, 113, 0, 105, 104, 119, 117,
118, 123, 124, 125, 126, 127, 128, 120, 121, 122,
- 129, 130, 131, 108, 106, 0, 116, 132, 133, 135,
- 191, 192, 0, 76, 86, 0, 91, 96, 0, 102,
- 0, 109, 114, 134, 0, 188, 190, 107, 101, 0,
- 0, 0, 71, 0, 74, 86, 0, 87, 88, 89,
- 77, 0, 86, 0, 72, 97, 103, 110, 0, 1,
- 189, 0, 0, 0, 0, 138, 0, 193, 78, 83,
+ 129, 130, 131, 108, 106, 0, 116, 132, 133, 134,
+ 135, 137, 199, 200, 0, 76, 86, 0, 91, 96,
+ 0, 102, 0, 109, 114, 136, 0, 196, 198, 107,
+ 101, 0, 0, 140, 71, 0, 74, 86, 0, 87,
+ 88, 89, 77, 0, 86, 0, 72, 97, 103, 110,
+ 0, 1, 197, 0, 138, 0, 0, 201, 78, 83,
85, 90, 0, 92, 79, 0, 0, 2, 5, 4,
6, 27, 0, 0, 0, 34, 33, 32, 3, 8,
28, 10, 15, 16, 0, 0, 21, 0, 35, 0,
38, 41, 42, 47, 50, 51, 52, 53, 55, 57,
- 59, 70, 0, 25, 73, 0, 143, 0, 141, 137,
- 139, 0, 0, 173, 0, 0, 0, 0, 0, 155,
- 160, 164, 35, 61, 68, 0, 146, 0, 102, 149,
- 162, 148, 147, 0, 150, 151, 152, 153, 80, 82,
- 84, 0, 0, 98, 0, 145, 100, 29, 30, 0,
- 12, 13, 0, 0, 19, 18, 0, 116, 22, 24,
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 115, 136, 0, 0, 140,
- 184, 183, 0, 175, 0, 187, 185, 0, 171, 154,
- 0, 64, 65, 66, 67, 63, 0, 0, 165, 161,
- 163, 0, 93, 0, 95, 99, 7, 0, 14, 26,
+ 59, 70, 0, 25, 73, 0, 0, 0, 142, 0,
+ 0, 181, 0, 0, 0, 0, 0, 159, 168, 172,
+ 35, 61, 68, 0, 150, 0, 114, 153, 170, 152,
+ 151, 0, 154, 155, 156, 157, 80, 82, 84, 0,
+ 0, 98, 0, 149, 100, 29, 30, 0, 12, 13,
+ 0, 0, 19, 18, 0, 20, 22, 24, 31, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 115, 0, 147, 0, 145, 141, 143,
+ 192, 191, 166, 183, 0, 195, 193, 0, 179, 158,
+ 0, 64, 65, 66, 67, 63, 0, 0, 173, 169,
+ 171, 0, 93, 0, 95, 99, 7, 0, 14, 26,
11, 17, 23, 36, 37, 40, 39, 45, 46, 43,
- 44, 48, 49, 54, 56, 58, 0, 0, 142, 0,
- 0, 0, 186, 0, 156, 62, 69, 0, 94, 9,
- 0, 144, 0, 178, 177, 180, 0, 169, 0, 0,
- 0, 81, 60, 0, 179, 0, 0, 168, 166, 0,
- 0, 157, 0, 181, 0, 0, 0, 159, 172, 158,
- 0, 182, 176, 167, 170, 174
+ 44, 48, 49, 54, 56, 58, 0, 139, 0, 0,
+ 144, 0, 0, 0, 0, 0, 194, 0, 160, 62,
+ 69, 0, 94, 9, 0, 0, 146, 0, 165, 167,
+ 186, 185, 188, 166, 177, 0, 0, 0, 81, 60,
+ 148, 0, 187, 0, 0, 176, 174, 0, 0, 161,
+ 0, 189, 0, 166, 0, 163, 180, 162, 0, 190,
+ 184, 175, 178, 182
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 98, 99, 100, 227, 101, 102, 103, 104, 105,
- 106, 107, 142, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 143, 144, 216, 145, 122,
- 146, 147, 32, 33, 34, 79, 60, 61, 80, 35,
- 36, 37, 38, 123, 40, 41, 42, 43, 74, 75,
- 127, 128, 166, 149, 150, 151, 152, 210, 270, 288,
- 289, 153, 154, 155, 278, 269, 156, 253, 202, 250,
- 265, 275, 276, 157, 44, 45, 46, 53
+ 106, 107, 140, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 141, 142, 216, 143, 122,
+ 144, 145, 34, 35, 36, 79, 62, 63, 80, 37,
+ 38, 39, 40, 41, 42, 43, 123, 45, 125, 75,
+ 127, 128, 196, 197, 164, 147, 148, 149, 150, 210,
+ 277, 296, 251, 252, 253, 297, 151, 152, 153, 286,
+ 276, 154, 257, 202, 254, 272, 283, 284, 155, 46,
+ 47, 48, 55
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -250
+#define YYPACT_NINF -266
static const yytype_int16 yypact[] =
{
- 1225, 36, -250, -250, -250, 150, -250, -250, -250, -250,
- -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
- -250, -250, -250, -250, -250, -33, -250, -250, -250, -250,
- -250, -60, -22, -17, 21, -62, -250, 22, 1266, -250,
- 1290, -250, 11, -250, 1138, -250, -250, -250, -250, 1290,
- 14, 1266, -250, 27, -250, 34, 41, -250, -250, -250,
- -250, 1266, 129, 61, -250, 17, -250, -250, 908, -250,
- -250, 31, 1266, 72, 1042, -250, 283, -250, -250, -250,
- -250, 90, 1266, -46, -250, 194, 908, 65, -250, -250,
- -250, -250, 908, 908, 908, -250, -250, -250, -250, -250,
- -40, -250, -250, -250, 80, -25, 975, 87, -250, 908,
- 35, 13, -250, -26, 68, -250, -250, -250, 110, 109,
- -54, -250, 96, -250, -250, 1083, 98, 33, -250, -250,
- -250, 91, 92, -250, 104, 107, 99, 760, 108, 105,
- -250, -250, 24, -250, -250, 37, -250, -60, 112, -250,
- -250, -250, -250, 365, -250, -250, -250, -250, 111, -250,
- -250, 827, 908, -250, 113, -250, -250, -250, -250, 4,
- -250, -250, 908, 1179, -250, -250, 908, 114, -250, -250,
- -250, 908, 908, 908, 908, 908, 908, 908, 908, 908,
- 908, 908, 908, 908, 908, -250, -250, 908, 72, -250,
- -250, -250, 447, -250, 908, -250, -250, 42, -250, -250,
- 447, -250, -250, -250, -250, -250, 908, 908, -250, -250,
- -250, 908, -250, 115, -250, -250, -250, 116, 117, -250,
- 120, -250, -250, -250, -250, 35, 35, -250, -250, -250,
- -250, -26, -26, -250, 110, 109, 51, 119, -250, 144,
- 611, 23, -250, 693, 447, -250, -250, 122, -250, -250,
- 908, -250, 123, -250, -250, 693, 447, 117, 153, 126,
- 128, -250, -250, 908, -250, 127, 137, 171, -250, 130,
- 529, -250, 28, 908, 529, 447, 908, -250, -250, -250,
- 131, 117, -250, -250, -250, -250
+ 1253, -20, -266, -266, -266, 148, -266, -266, -266, -266,
+ -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+ -266, -266, -266, -266, -266, -39, -266, -266, -266, -266,
+ -266, -266, -266, -18, -2, 6, 21, -61, -266, 51,
+ 1296, -266, 1370, -266, 25, -266, 1209, -266, -266, -266,
+ -266, 1370, 42, -266, -266, 50, -266, 71, 95, -266,
+ -266, -266, -266, 1296, 123, 105, -266, 9, -266, -266,
+ 974, -266, -266, 81, -266, 1296, 290, -266, -266, -266,
+ -266, 125, 1296, -13, -266, 776, 974, 99, -266, -266,
+ -266, -266, 974, 974, 974, -266, -266, -266, -266, -266,
+ 35, -266, -266, -266, 100, -6, 1040, 104, -266, 974,
+ 36, -64, -266, -21, 102, -266, -266, -266, 113, 117,
+ -51, -266, 108, -266, -266, 1296, 129, 1109, -266, 97,
+ 103, -266, 112, 114, 106, 842, 115, 116, -266, -266,
+ 39, -266, -266, -43, -266, -18, 47, -266, -266, -266,
+ -266, 374, -266, -266, -266, -266, 118, -266, -266, 908,
+ 974, -266, 120, -266, -266, -266, -266, 19, -266, -266,
+ 974, 1333, -266, -266, 974, 119, -266, -266, -266, 974,
+ 974, 974, 974, 974, 974, 974, 974, 974, 974, 974,
+ 974, 974, 974, -266, 1152, 122, -29, -266, -266, -266,
+ -266, -266, 121, -266, 974, -266, -266, 5, -266, -266,
+ 458, -266, -266, -266, -266, -266, 974, 974, -266, -266,
+ -266, 974, -266, 137, -266, -266, -266, 138, 111, -266,
+ 142, -266, -266, -266, -266, 36, 36, -266, -266, -266,
+ -266, -21, -21, -266, 113, 117, 82, -266, 974, 129,
+ -266, 175, 50, 626, 710, 38, -266, 197, 458, -266,
+ -266, 141, -266, -266, 974, 155, -266, 145, -266, -266,
+ -266, -266, 197, 121, 111, 186, 159, 160, -266, -266,
+ -266, 974, -266, 166, 176, 236, -266, 174, 542, -266,
+ 43, 974, 542, 121, 974, -266, -266, -266, 177, 111,
+ -266, -266, -266, -266
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -250, -250, -250, -250, -250, -250, -250, 39, -250, -250,
- -250, -250, -45, -250, -18, -250, -79, -30, -250, -250,
- -250, 38, 52, 20, -250, -63, -85, -250, -92, -71,
- 6, 9, -250, -250, -250, 132, 172, 166, 148, -250,
- -250, -246, -21, 0, 226, -24, -250, -250, 162, -66,
- -250, 45, -159, -3, -136, -249, -250, -250, -250, -36,
- 196, 46, 1, -250, -250, -13, -250, -250, -250, -250,
- -250, -250, -250, -250, -250, 211, -250, -250
+ -266, -266, -266, -266, -266, -266, -266, 85, -266, -266,
+ -266, -266, -44, -266, -15, -266, -55, -19, -266, -266,
+ -266, 72, 70, 73, -266, -66, -83, -266, -92, -73,
+ 13, 14, -266, -266, -266, 180, 206, 201, 184, -266,
+ -266, -241, -25, -30, 262, -4, 0, -266, -266, -266,
+ 143, -122, -266, 22, -145, 16, -144, -226, -266, -266,
+ -266, -17, -265, -266, -266, -54, 63, 20, -266, -266,
+ 4, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+ 231, -266, -266
};
/* 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 -76
+#define YYTABLE_NINF -165
static const yytype_int16 yytable[] =
{
- 39, 165, 169, 224, 193, 121, 30, 268, 130, 31,
- 50, 170, 171, 62, 164, 63, 67, 220, 64, 268,
- 52, 178, 121, 108, 56, 71, 161, 185, 186, 6,
- 7, 287, 172, 162, 62, 287, 173, 56, 66, 194,
- 108, 51, 6, 7, 39, 207, 175, 167, 168, 54,
- 30, 73, 176, 31, 57, 58, 59, 23, 24, 130,
- 55, 81, 187, 188, 180, 65, 249, 57, 58, 59,
- 23, 24, 73, 47, 73, 226, 148, 165, 47, 48,
- 228, 217, 81, 68, 211, 212, 213, 84, 72, 85,
- 223, 232, -75, 214, 266, 183, 86, 184, 121, 290,
- 217, 76, 246, 215, 83, 217, 237, 238, 239, 240,
- 198, 124, 251, 199, 217, 126, 108, 218, 220, 217,
- 181, 182, 252, 189, 190, 73, 247, 294, 217, 260,
- 277, 255, 256, 158, 121, -26, 233, 234, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 293,
- 257, 174, 108, 148, 2, 3, 4, 179, 121, 241,
- 242, 267, 57, 58, 59, 235, 236, 191, 192, 195,
- 197, 200, 201, 267, 203, 272, 108, 204, 208, 205,
- 209, 282, -25, 221, 262, -20, 225, 285, 258, 259,
- -27, 291, 261, 273, 217, 271, 279, 280, 2, 3,
- 4, 165, 148, 281, 8, 9, 10, 283, 284, 286,
- 148, 295, 231, 245, 159, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 78, 82, 243,
- 160, 49, 25, 26, 125, 27, 28, 87, 29, 88,
- 89, 90, 91, 248, 244, 92, 93, 263, 292, 77,
- 148, 264, 274, 148, 148, 70, 254, 0, 0, 0,
- 0, 0, 0, 0, 94, 148, 148, 163, 0, 0,
- 0, 0, 0, 0, 0, 95, 96, 0, 97, 0,
- 148, 0, 0, 0, 148, 148, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 131, 132, 133, 0,
- 134, 135, 136, 137, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 0, 0, 0, 23,
- 24, 25, 26, 138, 27, 28, 87, 29, 88, 89,
- 90, 91, 0, 0, 92, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 94, 0, 0, 0, 139, 140, 0,
- 0, 0, 0, 141, 95, 96, 0, 97, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10, 131, 132,
- 133, 0, 134, 135, 136, 137, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 0, 0,
- 0, 23, 24, 25, 26, 138, 27, 28, 87, 29,
- 88, 89, 90, 91, 0, 0, 92, 93, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 94, 0, 0, 0, 139,
- 219, 0, 0, 0, 0, 141, 95, 96, 0, 97,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 131, 132, 133, 0, 134, 135, 136, 137, 11, 12,
+ 44, 77, 167, 163, 121, 199, 52, 220, 285, 191,
+ 68, 64, 162, 32, 33, 224, 275, 49, 65, 121,
+ 181, 66, 182, 176, 58, 50, 108, 269, 301, 6,
+ 7, 275, 64, 81, 183, 184, 217, 53, 69, 218,
+ 44, 108, 44, 207, 192, 126, 44, 73, 165, 166,
+ 249, 44, 81, 250, 59, 60, 61, 23, 24, 32,
+ 33, 159, 295, 44, 54, 178, 295, 173, 160, 185,
+ 186, 56, 199, 174, 58, 44, 146, 163, 228, 6,
+ 7, 84, 44, 85, 217, 57, 223, 256, 168, 169,
+ 86, 232, 226, 121, -75, 126, 67, 126, 217, 70,
+ 246, 211, 212, 213, 59, 60, 61, 23, 24, 170,
+ 214, 273, 255, 171, 220, 108, 298, 217, 74, -25,
+ 215, 70, 217, 179, 180, 44, 76, 44, 237, 238,
+ 239, 240, 49, 259, 260, 233, 234, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 261, 302,
+ 83, 146, 2, 3, 4, 121, 59, 60, 61, 187,
+ 188, 217, 264, 124, 126, 274, 235, 236, 241, 242,
+ 156, -26, 189, 172, 195, 265, 177, 108, 190, 200,
+ 274, 279, 121, 193, 203, 201, 204, 208, 205, 290,
+ 217, -116, 221, 209, 44, 225, 248, -164, 268, 299,
+ 58, 2, 3, 4, 108, 6, 7, 8, 9, 10,
+ 146, 163, 262, 263, -27, 267, 278, 281, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 0, 0, 0, 23, 24, 25, 26, 138, 27, 28,
- 87, 29, 88, 89, 90, 91, 0, 0, 92, 93,
+ 280, 287, 288, 23, 24, 25, 26, 289, 27, 28,
+ 29, 30, 87, 31, 88, 89, 90, 91, 291, 292,
+ 92, 93, 293, 146, 146, 294, 231, 146, 146, 303,
+ 244, 243, 157, 78, 245, 82, 158, 51, 194, 94,
+ 270, 266, 146, 258, 271, 300, 282, 72, 0, 0,
+ 95, 96, 0, 97, 0, 0, 0, 0, 146, 0,
+ 0, 0, 146, 1, 2, 3, 4, 5, 6, 7,
+ 8, 9, 10, 129, 130, 131, 0, 132, 133, 134,
+ 135, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 0, 0, 0, 23, 24, 25, 26,
+ 136, 27, 28, 29, 30, 87, 31, 88, 89, 90,
+ 91, 0, 0, 92, 93, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 94, 0, 0,
- 0, 139, 0, 0, 0, 0, 0, 141, 95, 96,
- 0, 97, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 131, 132, 133, 0, 134, 135, 136, 137,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 0, 0, 0, 23, 24, 25, 26, 138,
- 27, 28, 87, 29, 88, 89, 90, 91, 0, 0,
- 92, 93, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 94,
- 0, 0, 0, 76, 0, 0, 0, 0, 0, 141,
- 95, 96, 0, 97, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 0, 0, 0, 0, 0, 0,
- 0, 0, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 0, 0, 0, 23, 24, 25,
- 26, 0, 27, 28, 87, 29, 88, 89, 90, 91,
- 0, 0, 92, 93, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 94, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 141, 95, 96, 0, 97, 56, 2, 3, 4,
- 0, 6, 7, 8, 9, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 0, 0, 0, 23,
- 24, 25, 26, 0, 27, 28, 87, 29, 88, 89,
- 90, 91, 0, 0, 92, 93, 0, 0, 0, 0,
+ 0, 0, 94, 0, 0, 0, 137, 138, 0, 0,
+ 0, 0, 139, 95, 96, 0, 97, 1, 2, 3,
+ 4, 5, 6, 7, 8, 9, 10, 129, 130, 131,
+ 0, 132, 133, 134, 135, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 0, 0, 0,
+ 23, 24, 25, 26, 136, 27, 28, 29, 30, 87,
+ 31, 88, 89, 90, 91, 0, 0, 92, 93, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 94, 2, 3, 4, 0, 0, 0,
- 8, 9, 10, 0, 95, 96, 0, 97, 0, 0,
- 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 0, 0, 0, 0, 0, 25, 26,
- 0, 27, 28, 87, 29, 88, 89, 90, 91, 0,
+ 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,
+ 137, 219, 0, 0, 0, 0, 139, 95, 96, 0,
+ 97, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+ 10, 129, 130, 131, 0, 132, 133, 134, 135, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 0, 0, 0, 23, 24, 25, 26, 136, 27,
+ 28, 29, 30, 87, 31, 88, 89, 90, 91, 0,
0, 92, 93, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 2, 3, 4, 0, 0, 0, 8, 9, 10,
- 206, 95, 96, 0, 97, 0, 0, 0, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 0, 0, 0, 0, 0, 25, 26, 0, 27, 28,
- 87, 29, 88, 89, 90, 91, 0, 0, 92, 93,
+ 94, 0, 0, 0, 137, 0, 0, 0, 0, 0,
+ 139, 95, 96, 0, 97, 1, 2, 3, 4, 5,
+ 6, 7, 8, 9, 10, 129, 130, 131, 0, 132,
+ 133, 134, 135, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 0, 0, 0, 23, 24,
+ 25, 26, 136, 27, 28, 29, 30, 87, 31, 88,
+ 89, 90, 91, 0, 0, 92, 93, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 94, 0, 0,
- 222, 0, 0, 0, 0, 0, 0, 0, 95, 96,
- 0, 97, 2, 3, 4, 0, 0, 0, 8, 9,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 0, 0, 0, 0, 0, 25, 26, 0, 27,
- 28, 87, 29, 88, 89, 90, 91, 0, 0, 92,
+ 0, 0, 0, 0, 94, 0, 0, 0, 76, 0,
+ 0, 0, 0, 0, 139, 95, 96, 0, 97, 1,
+ 2, 3, 4, 5, 6, 7, 8, 9, 10, 129,
+ 130, 131, 0, 132, 133, 134, 135, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
+ 0, 0, 23, 24, 25, 26, 136, 27, 28, 29,
+ 30, 87, 31, 88, 89, 90, 91, 0, 0, 92,
93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 94, 2,
- 3, 4, 0, 0, 0, 8, 9, 10, 0, 95,
- 96, 0, 97, 0, 0, 0, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 0, 0,
- 0, 0, 0, 25, 177, 0, 27, 28, 87, 29,
- 88, 89, 90, 91, 0, 0, 92, 93, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 94, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 139, 95,
+ 96, 0, 97, 1, 2, 3, 4, 5, 6, 7,
+ 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
+ 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 0, 0, 0, 23, 24, 25, 26,
+ 0, 27, 28, 29, 30, 87, 31, 88, 89, 90,
+ 91, 0, 0, 92, 93, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 94, 2, 3, 4, 0,
- 0, 0, 8, 9, 10, 0, 95, 96, 0, 97,
- 0, 0, 0, 11, 12, 13, 14, 15, 16, 17,
+ 0, 0, 94, 0, 0, 0, 8, 9, 10, 0,
+ 0, 0, 139, 95, 96, 0, 97, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
+ 0, 0, 0, 0, 25, 26, 0, 27, 28, 29,
+ 30, 87, 31, 88, 89, 90, 91, 0, 0, 92,
+ 93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 94, 0,
+ 0, 161, 8, 9, 10, 0, 0, 0, 0, 95,
+ 96, 0, 97, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 0, 0, 0, 0, 0,
- 25, 26, 0, 27, 28, 0, 29, 2, 3, 4,
- 0, 0, 0, 8, 9, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 0, 129, 0, 0,
- 0, 25, 26, 0, 27, 28, 0, 29, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 69, 0,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 0, 0, 0, 0, 0, 0, 0, 196, 11,
+ 25, 26, 0, 27, 28, 29, 30, 87, 31, 88,
+ 89, 90, 91, 0, 0, 92, 93, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 94, 0, 0, 0, 8, 9,
+ 10, 0, 0, 0, 206, 95, 96, 0, 97, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 0, 0, 0, 23, 24, 25, 26, 0, 27,
- 28, 0, 29, 2, 3, 4, 0, 0, 0, 8,
- 9, 10, 0, 0, 0, 0, 0, 0, 0, 0,
+ 22, 0, 0, 0, 0, 0, 25, 26, 0, 27,
+ 28, 29, 30, 87, 31, 88, 89, 90, 91, 0,
+ 0, 92, 93, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 94, 0, 0, 222, 8, 9, 10, 0, 0, 0,
+ 0, 95, 96, 0, 97, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 0, 0, 0,
+ 0, 0, 25, 26, 0, 27, 28, 29, 30, 87,
+ 31, 88, 89, 90, 91, 0, 0, 92, 93, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,
+ 8, 9, 10, 0, 0, 0, 0, 95, 96, 0,
+ 97, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 0, 0, 0, 0, 0, 25, 175,
+ 0, 27, 28, 29, 30, 87, 31, 88, 89, 90,
+ 91, 0, 0, 92, 93, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 94, 2, 3, 4, 0, 0, 0, 8,
+ 9, 10, 0, 95, 96, 0, 97, 0, 0, 0,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 0, 0, 0, 0, 0, 25, 26, 0,
- 27, 28, 229, 29, 0, 0, 0, 230, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10, 0, 0,
- 0, 0, 0, 0, 0, 0, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 0, 0,
- 0, 23, 24, 25, 26, 0, 27, 28, 0, 29,
+ 27, 28, 29, 30, 0, 31, 2, 3, 4, 0,
+ 0, 0, 8, 9, 10, 0, 0, 0, 0, 0,
+ 0, 0, 0, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 0, 198, 0, 0, 0,
+ 25, 26, 0, 27, 28, 29, 30, 0, 31, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,
+ 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
+ 9, 10, 0, 0, 0, 0, 0, 0, 0, 247,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 0, 0, 0, 23, 24, 25, 26, 0,
+ 27, 28, 29, 30, 0, 31, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 0, 0, 0, 0,
+ 0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 0, 0, 0, 23,
+ 24, 25, 26, 0, 27, 28, 29, 30, 0, 31,
2, 3, 4, 0, 0, 0, 8, 9, 10, 0,
0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
- 8, 9, 10, 0, 25, 26, 0, 27, 28, 0,
- 29, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 0, 0, 0, 0, 25, 26, 0, 27, 28, 29,
+ 30, 0, 31, 8, 9, 10, 0, 0, 0, 0,
+ 0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 0, 0, 0, 0,
+ 0, 25, 26, 0, 27, 28, 29, 30, 229, 31,
+ 8, 9, 10, 230, 0, 0, 0, 0, 0, 0,
+ 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 0, 0, 0, 0, 0, 25, 26,
- 0, 27, 28, 0, 29
+ 0, 27, 28, 29, 30, 0, 31
};
static const yytype_int16 yycheck[] =
{
- 0, 86, 94, 162, 58, 68, 0, 253, 74, 0,
- 43, 51, 52, 34, 85, 77, 40, 153, 80, 265,
- 80, 106, 85, 68, 3, 49, 72, 53, 54, 8,
- 9, 280, 72, 79, 55, 284, 76, 3, 38, 93,
- 85, 74, 8, 9, 44, 137, 71, 92, 93, 71,
- 44, 51, 77, 44, 33, 34, 35, 36, 37, 125,
- 77, 61, 88, 89, 109, 43, 202, 33, 34, 35,
- 36, 37, 72, 37, 74, 71, 76, 162, 37, 43,
- 172, 77, 82, 72, 60, 61, 62, 70, 74, 72,
- 161, 176, 71, 69, 71, 82, 79, 84, 161, 71,
- 77, 74, 194, 79, 43, 77, 185, 186, 187, 188,
- 77, 80, 204, 80, 77, 43, 161, 80, 254, 77,
- 85, 86, 80, 55, 56, 125, 197, 286, 77, 78,
- 266, 216, 217, 43, 197, 70, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 285,
- 221, 71, 197, 153, 4, 5, 6, 70, 221, 189,
- 190, 253, 33, 34, 35, 183, 184, 57, 59, 73,
- 72, 80, 80, 265, 70, 260, 221, 70, 70, 80,
- 75, 273, 70, 72, 40, 71, 73, 16, 73, 73,
- 70, 283, 73, 70, 77, 73, 43, 71, 4, 5,
- 6, 286, 202, 75, 10, 11, 12, 80, 71, 79,
- 210, 80, 173, 193, 82, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 55, 62, 191,
- 82, 5, 38, 39, 72, 41, 42, 43, 44, 45,
- 46, 47, 48, 198, 192, 51, 52, 250, 284, 53,
- 250, 250, 265, 253, 254, 44, 210, -1, -1, -1,
- -1, -1, -1, -1, 70, 265, 266, 73, -1, -1,
- -1, -1, -1, -1, -1, 81, 82, -1, 84, -1,
- 280, -1, -1, -1, 284, 285, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, -1,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, -1, -1, -1, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, -1, -1, 51, 52, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 70, -1, -1, -1, 74, 75, -1,
- -1, -1, -1, 80, 81, 82, -1, 84, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
- -1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, -1, -1, 51, 52, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 70, -1, -1, -1, 74,
- 75, -1, -1, -1, -1, 80, 81, 82, -1, 84,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
+ 0, 55, 94, 86, 70, 127, 45, 151, 273, 60,
+ 40, 36, 85, 0, 0, 160, 257, 37, 79, 85,
+ 84, 82, 86, 106, 3, 45, 70, 253, 293, 8,
+ 9, 272, 57, 63, 55, 56, 79, 76, 42, 82,
+ 40, 85, 42, 135, 95, 75, 46, 51, 92, 93,
+ 79, 51, 82, 82, 33, 34, 35, 36, 37, 46,
+ 46, 74, 288, 63, 82, 109, 292, 73, 81, 90,
+ 91, 73, 194, 79, 3, 75, 76, 160, 170, 8,
+ 9, 72, 82, 74, 79, 79, 159, 82, 53, 54,
+ 81, 174, 73, 159, 73, 125, 45, 127, 79, 74,
+ 192, 62, 63, 64, 33, 34, 35, 36, 37, 74,
+ 71, 73, 204, 78, 258, 159, 73, 79, 76, 72,
+ 81, 74, 79, 87, 88, 125, 76, 127, 183, 184,
+ 185, 186, 37, 216, 217, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191, 221, 294,
+ 45, 151, 4, 5, 6, 221, 33, 34, 35, 57,
+ 58, 79, 80, 82, 194, 257, 181, 182, 187, 188,
+ 45, 72, 59, 73, 45, 248, 72, 221, 61, 82,
+ 272, 264, 248, 75, 72, 82, 72, 72, 82, 281,
+ 79, 72, 74, 77, 194, 75, 74, 76, 252, 291,
+ 3, 4, 5, 6, 248, 8, 9, 10, 11, 12,
+ 210, 294, 75, 75, 72, 40, 75, 72, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- -1, -1, -1, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, -1, -1, 51, 52,
+ 75, 45, 73, 36, 37, 38, 39, 77, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 82, 73,
+ 53, 54, 16, 253, 254, 81, 171, 257, 258, 82,
+ 190, 189, 82, 57, 191, 64, 82, 5, 125, 72,
+ 254, 249, 272, 210, 254, 292, 272, 46, -1, -1,
+ 83, 84, -1, 86, -1, -1, -1, -1, 288, -1,
+ -1, -1, 292, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, -1, -1, -1, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, -1, -1, 53, 54, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
- -1, 74, -1, -1, -1, -1, -1, 80, 81, 82,
- -1, 84, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, -1, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, -1, -1, -1, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, -1, -1,
- 51, 52, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
- -1, -1, -1, 74, -1, -1, -1, -1, -1, 80,
- 81, 82, -1, 84, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
- -1, -1, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, -1, -1, -1, 36, 37, 38,
- 39, -1, 41, 42, 43, 44, 45, 46, 47, 48,
- -1, -1, 51, 52, -1, -1, -1, -1, -1, -1,
+ -1, -1, 72, -1, -1, -1, 76, 77, -1, -1,
+ -1, -1, 82, 83, 84, -1, 86, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, -1, -1, 53, 54, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 70, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 80, 81, 82, -1, 84, 3, 4, 5, 6,
- -1, 8, 9, 10, 11, 12, -1, -1, -1, -1,
- -1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, -1, -1, -1, 36,
- 37, 38, 39, -1, 41, 42, 43, 44, 45, 46,
- 47, 48, -1, -1, 51, 52, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
+ 76, 77, -1, -1, -1, -1, 82, 83, 84, -1,
+ 86, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, -1, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, -1, -1, -1, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, -1,
+ -1, 53, 54, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 72, -1, -1, -1, 76, -1, -1, -1, -1, -1,
+ 82, 83, 84, -1, 86, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, -1, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, -1, -1, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, -1, -1, 53, 54, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 70, 4, 5, 6, -1, -1, -1,
- 10, 11, 12, -1, 81, 82, -1, 84, -1, -1,
+ -1, -1, -1, -1, 72, -1, -1, -1, 76, -1,
+ -1, -1, -1, -1, 82, 83, 84, -1, 86, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
+ -1, -1, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, -1, -1, 53,
+ 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 72, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 82, 83,
+ 84, -1, 86, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
-1, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, -1, -1, -1, -1, -1, 38, 39,
- -1, 41, 42, 43, 44, 45, 46, 47, 48, -1,
- -1, 51, 52, -1, -1, -1, -1, -1, -1, -1,
+ 30, 31, 32, -1, -1, -1, 36, 37, 38, 39,
+ -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, -1, -1, 53, 54, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 70, 4, 5, 6, -1, -1, -1, 10, 11, 12,
- 80, 81, 82, -1, 84, -1, -1, -1, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- -1, -1, -1, -1, -1, 38, 39, -1, 41, 42,
- 43, 44, 45, 46, 47, 48, -1, -1, 51, 52,
+ -1, -1, 72, -1, -1, -1, 10, 11, 12, -1,
+ -1, -1, 82, 83, 84, -1, 86, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
+ -1, -1, -1, -1, 38, 39, -1, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, -1, -1, 53,
+ 54, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 72, -1,
+ -1, 75, 10, 11, 12, -1, -1, -1, -1, 83,
+ 84, -1, 86, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, -1, -1, -1, -1,
+ 38, 39, -1, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, -1, -1, 53, 54, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
- 73, -1, -1, -1, -1, -1, -1, -1, 81, 82,
- -1, 84, 4, 5, 6, -1, -1, -1, 10, 11,
- 12, -1, -1, -1, -1, -1, -1, -1, -1, 21,
+ -1, -1, -1, -1, 72, -1, -1, -1, 10, 11,
+ 12, -1, -1, -1, 82, 83, 84, -1, 86, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, -1, -1, -1, -1, -1, 38, 39, -1, 41,
- 42, 43, 44, 45, 46, 47, 48, -1, -1, 51,
- 52, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 70, 4,
- 5, 6, -1, -1, -1, 10, 11, 12, -1, 81,
- 82, -1, 84, -1, -1, -1, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
- -1, -1, -1, 38, 39, -1, 41, 42, 43, 44,
- 45, 46, 47, 48, -1, -1, 51, 52, -1, -1,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, -1,
+ -1, 53, 54, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 70, 4, 5, 6, -1,
- -1, -1, 10, 11, 12, -1, 81, 82, -1, 84,
- -1, -1, -1, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, -1, -1, -1, -1, -1,
- 38, 39, -1, 41, 42, -1, 44, 4, 5, 6,
- -1, -1, -1, 10, 11, 12, -1, -1, -1, -1,
- -1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, -1, 75, -1, -1,
- -1, 38, 39, -1, 41, 42, -1, 44, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 0, -1,
- -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, -1, -1, -1, -1, -1, -1, -1, 75, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, -1, -1, -1, 36, 37, 38, 39, -1, 41,
- 42, -1, 44, 4, 5, 6, -1, -1, -1, 10,
- 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
+ 72, -1, -1, 75, 10, 11, 12, -1, -1, -1,
+ -1, 83, 84, -1, 86, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
+ -1, -1, 38, 39, -1, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, -1, -1, 53, 54, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
+ 10, 11, 12, -1, -1, -1, -1, 83, 84, -1,
+ 86, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, -1, -1, -1, -1, -1, 38, 39,
+ -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, -1, -1, 53, 54, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 72, 4, 5, 6, -1, -1, -1, 10,
+ 11, 12, -1, 83, 84, -1, 86, -1, -1, -1,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, -1, -1, -1, -1, -1, 38, 39, -1,
- 41, 42, 43, 44, -1, -1, -1, 48, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
- -1, -1, -1, -1, -1, -1, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
- -1, 36, 37, 38, 39, -1, 41, 42, -1, 44,
+ 41, 42, 43, 44, -1, 46, 4, 5, 6, -1,
+ -1, -1, 10, 11, 12, -1, -1, -1, -1, -1,
+ -1, -1, -1, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, 77, -1, -1, -1,
+ 38, 39, -1, 41, 42, 43, 44, -1, 46, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
+ -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, -1, 77,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, -1, -1, -1, 36, 37, 38, 39, -1,
+ 41, 42, 43, 44, -1, 46, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, -1, -1, -1, 36,
+ 37, 38, 39, -1, 41, 42, 43, 44, -1, 46,
4, 5, 6, -1, -1, -1, 10, 11, 12, -1,
-1, -1, -1, -1, -1, -1, -1, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
- 10, 11, 12, -1, 38, 39, -1, 41, 42, -1,
- 44, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ -1, -1, -1, -1, 38, 39, -1, 41, 42, 43,
+ 44, -1, 46, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, -1, -1, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, -1, -1, -1, -1,
+ -1, 38, 39, -1, 41, 42, 43, 44, 45, 46,
+ 10, 11, 12, 50, -1, -1, -1, -1, -1, -1,
+ -1, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, -1, -1, -1, -1, -1, 38, 39,
- -1, 41, 42, -1, 44
+ -1, 41, 42, 43, 44, -1, 46
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1260,34 +1302,35 @@ static const yytype_uint8 yystos[] =
{
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 36, 37, 38, 39, 41, 42, 44,
- 124, 125, 126, 127, 128, 133, 134, 135, 136, 137,
- 138, 139, 140, 141, 168, 169, 170, 37, 43, 138,
- 43, 74, 80, 171, 71, 77, 3, 33, 34, 35,
- 130, 131, 136, 77, 80, 43, 137, 139, 72, 0,
- 169, 139, 74, 137, 142, 143, 74, 154, 130, 129,
- 132, 137, 131, 43, 70, 72, 79, 43, 45, 46,
- 47, 48, 51, 52, 70, 81, 82, 84, 95, 96,
- 97, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 123, 137, 80, 142, 43, 144, 145, 75,
- 143, 13, 14, 15, 17, 18, 19, 20, 40, 74,
- 75, 80, 106, 119, 120, 122, 124, 125, 137, 147,
- 148, 149, 150, 155, 156, 157, 160, 167, 43, 129,
- 132, 72, 79, 73, 123, 120, 146, 106, 106, 122,
- 51, 52, 72, 76, 71, 71, 77, 39, 120, 70,
- 106, 85, 86, 82, 84, 53, 54, 88, 89, 55,
- 56, 57, 59, 58, 93, 73, 75, 72, 77, 80,
- 80, 80, 162, 70, 70, 80, 80, 122, 70, 75,
- 151, 60, 61, 62, 69, 79, 121, 77, 80, 75,
- 148, 72, 73, 123, 146, 73, 71, 98, 122, 43,
- 48, 101, 120, 106, 106, 108, 108, 110, 110, 110,
- 110, 111, 111, 115, 116, 117, 122, 123, 145, 148,
- 163, 122, 80, 161, 155, 120, 120, 123, 73, 73,
- 78, 73, 40, 147, 156, 164, 71, 122, 135, 159,
- 152, 73, 120, 70, 159, 165, 166, 148, 158, 43,
- 71, 75, 122, 80, 71, 16, 79, 149, 153, 154,
- 71, 122, 153, 148, 146, 80
+ 30, 31, 32, 36, 37, 38, 39, 41, 42, 43,
+ 44, 46, 126, 127, 128, 129, 130, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 175, 176, 177, 37,
+ 45, 140, 45, 76, 82, 178, 73, 79, 3, 33,
+ 34, 35, 132, 133, 138, 79, 82, 45, 139, 141,
+ 74, 0, 176, 141, 76, 145, 76, 161, 132, 131,
+ 134, 139, 133, 45, 72, 74, 81, 45, 47, 48,
+ 49, 50, 53, 54, 72, 83, 84, 86, 97, 98,
+ 99, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 125, 142, 82, 144, 139, 146, 147, 13,
+ 14, 15, 17, 18, 19, 20, 40, 76, 77, 82,
+ 108, 121, 122, 124, 126, 127, 142, 151, 152, 153,
+ 154, 162, 163, 164, 167, 174, 45, 131, 134, 74,
+ 81, 75, 125, 122, 150, 108, 108, 124, 53, 54,
+ 74, 78, 73, 73, 79, 39, 122, 72, 108, 87,
+ 88, 84, 86, 55, 56, 90, 91, 57, 58, 59,
+ 61, 60, 95, 75, 146, 45, 148, 149, 77, 147,
+ 82, 82, 169, 72, 72, 82, 82, 124, 72, 77,
+ 155, 62, 63, 64, 71, 81, 123, 79, 82, 77,
+ 152, 74, 75, 125, 150, 75, 73, 100, 124, 45,
+ 50, 103, 122, 108, 108, 110, 110, 112, 112, 112,
+ 112, 113, 113, 117, 118, 119, 124, 77, 74, 79,
+ 82, 158, 159, 160, 170, 124, 82, 168, 162, 122,
+ 122, 125, 75, 75, 80, 125, 149, 40, 161, 153,
+ 151, 163, 171, 73, 124, 137, 166, 156, 75, 122,
+ 75, 72, 166, 172, 173, 158, 165, 45, 73, 77,
+ 124, 82, 73, 16, 81, 153, 157, 161, 73, 124,
+ 157, 158, 150, 82
};
#define yyerrok (yyerrstatus = 0)
@@ -1361,7 +1404,7 @@ while (YYID (0))
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
@@ -2614,13 +2657,6 @@ yyreduce:
//
// Constructor
//
- if ((yyvsp[(1) - (1)].interm.type).array) {
- // Constructors for arrays are not allowed.
- context->error((yyvsp[(1) - (1)].interm.type).line, "cannot construct this type", "array", "");
- context->recover();
- (yyvsp[(1) - (1)].interm.type).setArray(false);
- }
-
TOperator op = EOpNull;
if ((yyvsp[(1) - (1)].interm.type).userDef) {
op = EOpConstructStruct;
@@ -3119,6 +3155,8 @@ yyreduce:
prototype->setOp(EOpPrototype);
(yyval.interm.intermNode) = prototype;
+
+ context->symbolTable.pop();
;}
break;
@@ -3172,7 +3210,9 @@ yyreduce:
(yyval.interm).function = (yyvsp[(1) - (2)].interm.function);
(yyval.interm).line = (yyvsp[(2) - (2)].lex).line;
- context->symbolTable.insert(*(yyval.interm).function);
+ // We're at the inner scope level of the function's arguments and body statement.
+ // Add the function prototype to the surrounding scope instead.
+ context->symbolTable.getOuterLevel()->insert(*(yyval.interm).function);
;}
break;
@@ -3240,6 +3280,8 @@ yyreduce:
TType type((yyvsp[(1) - (3)].interm.type));
function = new TFunction((yyvsp[(2) - (3)].lex).string, type);
(yyval.interm.function) = function;
+
+ context->symbolTable.push();
;}
break;
@@ -3360,20 +3402,20 @@ yyreduce:
{
(yyval.interm) = (yyvsp[(1) - (1)].interm);
-
- if ((yyval.interm).type.precision == EbpUndefined) {
- (yyval.interm).type.precision = context->symbolTable.getDefaultPrecision((yyvsp[(1) - (1)].interm).type.type);
- if (context->precisionErrorCheck((yyvsp[(1) - (1)].interm).line, (yyval.interm).type.precision, (yyvsp[(1) - (1)].interm).type.type)) {
- context->recover();
- }
- }
;}
break;
case 92:
{
- (yyval.interm).intermAggregate = context->intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, context->intermediate.addSymbol(0, *(yyvsp[(3) - (3)].lex).string, TType((yyvsp[(1) - (3)].interm).type), (yyvsp[(3) - (3)].lex).line), (yyvsp[(3) - (3)].lex).line);
+ if ((yyvsp[(1) - (3)].interm).type.type == EbtInvariant && !(yyvsp[(3) - (3)].lex).symbol)
+ {
+ context->error((yyvsp[(3) - (3)].lex).line, "undeclared identifier declared as invariant", (yyvsp[(3) - (3)].lex).string->c_str(), "");
+ context->recover();
+ }
+
+ TIntermSymbol* symbol = context->intermediate.addSymbol(0, *(yyvsp[(3) - (3)].lex).string, TType((yyvsp[(1) - (3)].interm).type), (yyvsp[(3) - (3)].lex).line);
+ (yyval.interm).intermAggregate = context->intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, symbol, (yyvsp[(3) - (3)].lex).line);
if (context->structQualifierErrorCheck((yyvsp[(3) - (3)].lex).line, (yyval.interm).type))
context->recover();
@@ -3381,8 +3423,11 @@ yyreduce:
if (context->nonInitConstErrorCheck((yyvsp[(3) - (3)].lex).line, *(yyvsp[(3) - (3)].lex).string, (yyval.interm).type))
context->recover();
- if (context->nonInitErrorCheck((yyvsp[(3) - (3)].lex).line, *(yyvsp[(3) - (3)].lex).string, (yyval.interm).type))
+ TVariable* variable = 0;
+ if (context->nonInitErrorCheck((yyvsp[(3) - (3)].lex).line, *(yyvsp[(3) - (3)].lex).string, (yyval.interm).type, variable))
context->recover();
+ if (symbol && variable)
+ symbol->setId(variable->getUniqueId());
;}
break;
@@ -3426,12 +3471,12 @@ yyreduce:
if (context->arraySizeErrorCheck((yyvsp[(4) - (6)].lex).line, (yyvsp[(5) - (6)].interm.intermTypedNode), size))
context->recover();
(yyvsp[(1) - (6)].interm).type.setArray(true, size);
- TVariable* variable;
+ TVariable* variable = 0;
if (context->arrayErrorCheck((yyvsp[(4) - (6)].lex).line, *(yyvsp[(3) - (6)].lex).string, (yyvsp[(1) - (6)].interm).type, variable))
context->recover();
TType type = TType((yyvsp[(1) - (6)].interm).type);
type.setArraySize(size);
- (yyval.interm).intermAggregate = context->intermediate.growAggregate((yyvsp[(1) - (6)].interm).intermNode, context->intermediate.addSymbol(0, *(yyvsp[(3) - (6)].lex).string, type, (yyvsp[(3) - (6)].lex).line), (yyvsp[(3) - (6)].lex).line);
+ (yyval.interm).intermAggregate = context->intermediate.growAggregate((yyvsp[(1) - (6)].interm).intermNode, context->intermediate.addSymbol(variable ? variable->getUniqueId() : 0, *(yyvsp[(3) - (6)].lex).string, type, (yyvsp[(3) - (6)].lex).line), (yyvsp[(3) - (6)].lex).line);
}
;}
break;
@@ -3471,7 +3516,8 @@ yyreduce:
case 97:
{
- (yyval.interm).intermAggregate = context->intermediate.makeAggregate(context->intermediate.addSymbol(0, *(yyvsp[(2) - (2)].lex).string, TType((yyvsp[(1) - (2)].interm.type)), (yyvsp[(2) - (2)].lex).line), (yyvsp[(2) - (2)].lex).line);
+ TIntermSymbol* symbol = context->intermediate.addSymbol(0, *(yyvsp[(2) - (2)].lex).string, TType((yyvsp[(1) - (2)].interm.type)), (yyvsp[(2) - (2)].lex).line);
+ (yyval.interm).intermAggregate = context->intermediate.makeAggregate(symbol, (yyvsp[(2) - (2)].lex).line);
if (context->structQualifierErrorCheck((yyvsp[(2) - (2)].lex).line, (yyval.interm).type))
context->recover();
@@ -3481,32 +3527,23 @@ yyreduce:
(yyval.interm).type = (yyvsp[(1) - (2)].interm.type);
- if (context->nonInitErrorCheck((yyvsp[(2) - (2)].lex).line, *(yyvsp[(2) - (2)].lex).string, (yyval.interm).type))
+ TVariable* variable = 0;
+ if (context->nonInitErrorCheck((yyvsp[(2) - (2)].lex).line, *(yyvsp[(2) - (2)].lex).string, (yyval.interm).type, variable))
context->recover();
+ if (variable && symbol)
+ symbol->setId(variable->getUniqueId());
;}
break;
case 98:
{
- (yyval.interm).intermAggregate = context->intermediate.makeAggregate(context->intermediate.addSymbol(0, *(yyvsp[(2) - (4)].lex).string, TType((yyvsp[(1) - (4)].interm.type)), (yyvsp[(2) - (4)].lex).line), (yyvsp[(2) - (4)].lex).line);
-
- if (context->structQualifierErrorCheck((yyvsp[(2) - (4)].lex).line, (yyvsp[(1) - (4)].interm.type)))
- context->recover();
-
- if (context->nonInitConstErrorCheck((yyvsp[(2) - (4)].lex).line, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type)))
- context->recover();
+ context->error((yyvsp[(2) - (4)].lex).line, "unsized array declarations not supported", (yyvsp[(2) - (4)].lex).string->c_str(), "");
+ context->recover();
+ TIntermSymbol* symbol = context->intermediate.addSymbol(0, *(yyvsp[(2) - (4)].lex).string, TType((yyvsp[(1) - (4)].interm.type)), (yyvsp[(2) - (4)].lex).line);
+ (yyval.interm).intermAggregate = context->intermediate.makeAggregate(symbol, (yyvsp[(2) - (4)].lex).line);
(yyval.interm).type = (yyvsp[(1) - (4)].interm.type);
-
- if (context->arrayTypeErrorCheck((yyvsp[(3) - (4)].lex).line, (yyvsp[(1) - (4)].interm.type)) || context->arrayQualifierErrorCheck((yyvsp[(3) - (4)].lex).line, (yyvsp[(1) - (4)].interm.type)))
- context->recover();
- else {
- (yyvsp[(1) - (4)].interm.type).setArray(true);
- TVariable* variable;
- if (context->arrayErrorCheck((yyvsp[(3) - (4)].lex).line, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), variable))
- context->recover();
- }
;}
break;
@@ -3518,7 +3555,8 @@ yyreduce:
if (context->arraySizeErrorCheck((yyvsp[(2) - (5)].lex).line, (yyvsp[(4) - (5)].interm.intermTypedNode), size))
context->recover();
type.setArraySize(size);
- (yyval.interm).intermAggregate = context->intermediate.makeAggregate(context->intermediate.addSymbol(0, *(yyvsp[(2) - (5)].lex).string, type, (yyvsp[(2) - (5)].lex).line), (yyvsp[(2) - (5)].lex).line);
+ TIntermSymbol* symbol = context->intermediate.addSymbol(0, *(yyvsp[(2) - (5)].lex).string, type, (yyvsp[(2) - (5)].lex).line);
+ (yyval.interm).intermAggregate = context->intermediate.makeAggregate(symbol, (yyvsp[(2) - (5)].lex).line);
if (context->structQualifierErrorCheck((yyvsp[(2) - (5)].lex).line, (yyvsp[(1) - (5)].interm.type)))
context->recover();
@@ -3536,9 +3574,11 @@ yyreduce:
context->recover();
(yyvsp[(1) - (5)].interm.type).setArray(true, size);
- TVariable* variable;
+ TVariable* variable = 0;
if (context->arrayErrorCheck((yyvsp[(3) - (5)].lex).line, *(yyvsp[(2) - (5)].lex).string, (yyvsp[(1) - (5)].interm.type), variable))
context->recover();
+ if (variable && symbol)
+ symbol->setId(variable->getUniqueId());
}
;}
break;
@@ -3571,8 +3611,21 @@ yyreduce:
{
VERTEX_ONLY("invariant declaration", (yyvsp[(1) - (2)].lex).line);
- (yyval.interm).qualifier = EvqInvariantVaryingOut;
- (yyval.interm).intermAggregate = 0;
+ if (context->globalErrorCheck((yyvsp[(1) - (2)].lex).line, context->symbolTable.atGlobalLevel(), "invariant varying"))
+ context->recover();
+ (yyval.interm).type.setBasic(EbtInvariant, EvqInvariantVaryingOut, (yyvsp[(2) - (2)].lex).line);
+ if (!(yyvsp[(2) - (2)].lex).symbol)
+ {
+ context->error((yyvsp[(2) - (2)].lex).line, "undeclared identifier declared as invariant", (yyvsp[(2) - (2)].lex).string->c_str(), "");
+ context->recover();
+
+ (yyval.interm).intermAggregate = 0;
+ }
+ else
+ {
+ TIntermSymbol *symbol = context->intermediate.addSymbol(0, *(yyvsp[(2) - (2)].lex).string, TType((yyval.interm).type), (yyvsp[(2) - (2)].lex).line);
+ (yyval.interm).intermAggregate = context->intermediate.makeAggregate(symbol, (yyvsp[(2) - (2)].lex).line);
+ }
;}
break;
@@ -3667,6 +3720,13 @@ yyreduce:
{
(yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
+
+ if ((yyval.interm.type).precision == EbpUndefined) {
+ (yyval.interm.type).precision = context->symbolTable.getDefaultPrecision((yyvsp[(1) - (1)].interm.type).type);
+ if (context->precisionErrorCheck((yyvsp[(1) - (1)].interm.type).line, (yyval.interm.type).precision, (yyvsp[(1) - (1)].interm.type).type)) {
+ context->recover();
+ }
+ }
;}
break;
@@ -3886,13 +3946,39 @@ yyreduce:
case 134:
{
+ if (!context->supportsExtension("GL_OES_EGL_image_external")) {
+ context->error((yyvsp[(1) - (1)].lex).line, "unsupported type", "samplerExternalOES", "");
+ context->recover();
+ }
+ FRAG_VERT_ONLY("samplerExternalOES", (yyvsp[(1) - (1)].lex).line);
+ TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
+ (yyval.interm.type).setBasic(EbtSamplerExternalOES, qual, (yyvsp[(1) - (1)].lex).line);
+ ;}
+ break;
+
+ case 135:
+
+ {
+ if (!context->supportsExtension("GL_ARB_texture_rectangle")) {
+ context->error((yyvsp[(1) - (1)].lex).line, "unsupported type", "sampler2DRect", "");
+ context->recover();
+ }
+ FRAG_VERT_ONLY("sampler2DRect", (yyvsp[(1) - (1)].lex).line);
+ TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
+ (yyval.interm.type).setBasic(EbtSampler2DRect, qual, (yyvsp[(1) - (1)].lex).line);
+ ;}
+ break;
+
+ case 136:
+
+ {
FRAG_VERT_ONLY("struct", (yyvsp[(1) - (1)].interm.type).line);
(yyval.interm.type) = (yyvsp[(1) - (1)].interm.type);
(yyval.interm.type).qualifier = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
;}
break;
- case 135:
+ case 137:
{
//
@@ -3906,40 +3992,52 @@ yyreduce:
;}
break;
- case 136:
+ case 138:
+
+ { if (context->enterStructDeclaration((yyvsp[(2) - (3)].lex).line, *(yyvsp[(2) - (3)].lex).string)) context->recover(); ;}
+ break;
+
+ case 139:
{
- if (context->reservedErrorCheck((yyvsp[(2) - (5)].lex).line, *(yyvsp[(2) - (5)].lex).string))
+ if (context->reservedErrorCheck((yyvsp[(2) - (6)].lex).line, *(yyvsp[(2) - (6)].lex).string))
context->recover();
- TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), *(yyvsp[(2) - (5)].lex).string);
- TVariable* userTypeDef = new TVariable((yyvsp[(2) - (5)].lex).string, *structure, true);
+ TType* structure = new TType((yyvsp[(5) - (6)].interm.typeList), *(yyvsp[(2) - (6)].lex).string);
+ TVariable* userTypeDef = new TVariable((yyvsp[(2) - (6)].lex).string, *structure, true);
if (! context->symbolTable.insert(*userTypeDef)) {
- context->error((yyvsp[(2) - (5)].lex).line, "redefinition", (yyvsp[(2) - (5)].lex).string->c_str(), "struct");
+ context->error((yyvsp[(2) - (6)].lex).line, "redefinition", (yyvsp[(2) - (6)].lex).string->c_str(), "struct");
context->recover();
}
- (yyval.interm.type).setBasic(EbtStruct, EvqTemporary, (yyvsp[(1) - (5)].lex).line);
+ (yyval.interm.type).setBasic(EbtStruct, EvqTemporary, (yyvsp[(1) - (6)].lex).line);
(yyval.interm.type).userDef = structure;
+ context->exitStructDeclaration();
;}
break;
- case 137:
+ case 140:
+
+ { if (context->enterStructDeclaration((yyvsp[(2) - (2)].lex).line, *(yyvsp[(2) - (2)].lex).string)) context->recover(); ;}
+ break;
+
+ case 141:
{
- TType* structure = new TType((yyvsp[(3) - (4)].interm.typeList), TString(""));
- (yyval.interm.type).setBasic(EbtStruct, EvqTemporary, (yyvsp[(1) - (4)].lex).line);
+ TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString(""));
+ (yyval.interm.type).setBasic(EbtStruct, EvqTemporary, (yyvsp[(1) - (5)].lex).line);
(yyval.interm.type).userDef = structure;
+ context->exitStructDeclaration();
;}
break;
- case 138:
+ case 142:
{
(yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList);
;}
break;
- case 139:
+ case 143:
{
(yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList);
@@ -3955,7 +4053,7 @@ yyreduce:
;}
break;
- case 140:
+ case 144:
{
(yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList);
@@ -3971,6 +4069,7 @@ yyreduce:
type->setBasicType((yyvsp[(1) - (3)].interm.type).type);
type->setNominalSize((yyvsp[(1) - (3)].interm.type).size);
type->setMatrix((yyvsp[(1) - (3)].interm.type).matrix);
+ type->setPrecision((yyvsp[(1) - (3)].interm.type).precision);
// don't allow arrays of arrays
if (type->isArray()) {
@@ -3983,11 +4082,15 @@ yyreduce:
type->setStruct((yyvsp[(1) - (3)].interm.type).userDef->getStruct());
type->setTypeName((yyvsp[(1) - (3)].interm.type).userDef->getTypeName());
}
+
+ if (context->structNestingErrorCheck((yyvsp[(1) - (3)].interm.type).line, *type)) {
+ context->recover();
+ }
}
;}
break;
- case 141:
+ case 145:
{
(yyval.interm.typeList) = NewPoolTTypeList();
@@ -3995,14 +4098,14 @@ yyreduce:
;}
break;
- case 142:
+ case 146:
{
(yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine));
;}
break;
- case 143:
+ case 147:
{
if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string))
@@ -4014,7 +4117,7 @@ yyreduce:
;}
break;
- case 144:
+ case 148:
{
if (context->reservedErrorCheck((yyvsp[(1) - (4)].lex).line, *(yyvsp[(1) - (4)].lex).string))
@@ -4031,126 +4134,150 @@ yyreduce:
;}
break;
- case 145:
+ case 149:
{ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); ;}
break;
- case 146:
+ case 150:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); ;}
break;
- case 147:
+ case 151:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); ;}
break;
- case 148:
+ case 152:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); ;}
break;
- case 149:
+ case 153:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); ;}
break;
- case 150:
+ case 154:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); ;}
break;
- case 151:
+ case 155:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); ;}
break;
- case 152:
+ case 156:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); ;}
break;
- case 153:
+ case 157:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); ;}
break;
- case 154:
+ case 158:
{ (yyval.interm.intermAggregate) = 0; ;}
break;
- case 155:
+ case 159:
{ context->symbolTable.push(); ;}
break;
- case 156:
+ case 160:
{ context->symbolTable.pop(); ;}
break;
- case 157:
+ case 161:
{
- if ((yyvsp[(3) - (5)].interm.intermAggregate) != 0)
+ if ((yyvsp[(3) - (5)].interm.intermAggregate) != 0) {
(yyvsp[(3) - (5)].interm.intermAggregate)->setOp(EOpSequence);
+ (yyvsp[(3) - (5)].interm.intermAggregate)->setEndLine((yyvsp[(5) - (5)].lex).line);
+ }
(yyval.interm.intermAggregate) = (yyvsp[(3) - (5)].interm.intermAggregate);
;}
break;
- case 158:
+ case 162:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); ;}
break;
- case 159:
+ case 163:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); ;}
break;
- case 160:
+ case 164:
+
+ { context->symbolTable.push(); ;}
+ break;
+
+ case 165:
+
+ { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); ;}
+ break;
+
+ case 166:
+
+ { context->symbolTable.push(); ;}
+ break;
+
+ case 167:
+
+ { context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); ;}
+ break;
+
+ case 168:
{
(yyval.interm.intermNode) = 0;
;}
break;
- case 161:
+ case 169:
{
- if ((yyvsp[(2) - (3)].interm.intermAggregate))
+ if ((yyvsp[(2) - (3)].interm.intermAggregate)) {
(yyvsp[(2) - (3)].interm.intermAggregate)->setOp(EOpSequence);
+ (yyvsp[(2) - (3)].interm.intermAggregate)->setEndLine((yyvsp[(3) - (3)].lex).line);
+ }
(yyval.interm.intermNode) = (yyvsp[(2) - (3)].interm.intermAggregate);
;}
break;
- case 162:
+ case 170:
{
(yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode), 0);
;}
break;
- case 163:
+ case 171:
{
(yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermAggregate), (yyvsp[(2) - (2)].interm.intermNode), 0);
;}
break;
- case 164:
+ case 172:
{ (yyval.interm.intermNode) = 0; ;}
break;
- case 165:
+ case 173:
{ (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[(1) - (2)].interm.intermTypedNode)); ;}
break;
- case 166:
+ case 174:
{
if (context->boolErrorCheck((yyvsp[(1) - (5)].lex).line, (yyvsp[(3) - (5)].interm.intermTypedNode)))
@@ -4159,7 +4286,7 @@ yyreduce:
;}
break;
- case 167:
+ case 175:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode);
@@ -4167,7 +4294,7 @@ yyreduce:
;}
break;
- case 168:
+ case 176:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode);
@@ -4175,7 +4302,7 @@ yyreduce:
;}
break;
- case 169:
+ case 177:
{
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
@@ -4184,7 +4311,7 @@ yyreduce:
;}
break;
- case 170:
+ case 178:
{
TIntermNode* intermNode;
@@ -4202,12 +4329,12 @@ yyreduce:
;}
break;
- case 171:
+ case 179:
{ context->symbolTable.push(); ++context->loopNestingLevel; ;}
break;
- case 172:
+ case 180:
{
context->symbolTable.pop();
@@ -4216,12 +4343,12 @@ yyreduce:
;}
break;
- case 173:
+ case 181:
{ ++context->loopNestingLevel; ;}
break;
- case 174:
+ case 182:
{
if (context->boolErrorCheck((yyvsp[(8) - (8)].lex).line, (yyvsp[(6) - (8)].interm.intermTypedNode)))
@@ -4232,12 +4359,12 @@ yyreduce:
;}
break;
- case 175:
+ case 183:
{ context->symbolTable.push(); ++context->loopNestingLevel; ;}
break;
- case 176:
+ case 184:
{
context->symbolTable.pop();
@@ -4246,35 +4373,35 @@ yyreduce:
;}
break;
- case 177:
+ case 185:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
;}
break;
- case 178:
+ case 186:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
;}
break;
- case 179:
+ case 187:
{
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
;}
break;
- case 180:
+ case 188:
{
(yyval.interm.intermTypedNode) = 0;
;}
break;
- case 181:
+ case 189:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode);
@@ -4282,7 +4409,7 @@ yyreduce:
;}
break;
- case 182:
+ case 190:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode);
@@ -4290,7 +4417,7 @@ yyreduce:
;}
break;
- case 183:
+ case 191:
{
if (context->loopNestingLevel <= 0) {
@@ -4301,7 +4428,7 @@ yyreduce:
;}
break;
- case 184:
+ case 192:
{
if (context->loopNestingLevel <= 0) {
@@ -4312,7 +4439,7 @@ yyreduce:
;}
break;
- case 185:
+ case 193:
{
(yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).line);
@@ -4323,7 +4450,7 @@ yyreduce:
;}
break;
- case 186:
+ case 194:
{
(yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).line);
@@ -4338,7 +4465,7 @@ yyreduce:
;}
break;
- case 187:
+ case 195:
{
FRAG_ONLY("discard", (yyvsp[(1) - (2)].lex).line);
@@ -4346,7 +4473,7 @@ yyreduce:
;}
break;
- case 188:
+ case 196:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
@@ -4354,7 +4481,7 @@ yyreduce:
;}
break;
- case 189:
+ case 197:
{
(yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode), 0);
@@ -4362,21 +4489,21 @@ yyreduce:
;}
break;
- case 190:
+ case 198:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
;}
break;
- case 191:
+ case 199:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
;}
break;
- case 192:
+ case 200:
{
TFunction* function = (yyvsp[(1) - (1)].interm).function;
@@ -4410,11 +4537,6 @@ yyreduce:
}
//
- // New symbol table scope for body of function plus its arguments
- //
- context->symbolTable.push();
-
- //
// Remember the return type for later checking for RETURN statements.
//
context->currentFunctionType = &(prevDec->getReturnType());
@@ -4461,7 +4583,7 @@ yyreduce:
;}
break;
- case 193:
+ case 201:
{
//?? Check that all paths return a value if return type != void ?
@@ -4470,7 +4592,7 @@ yyreduce:
context->error((yyvsp[(1) - (3)].interm).line, "function does not return a value:", "", (yyvsp[(1) - (3)].interm).function->getName().c_str());
context->recover();
}
- context->symbolTable.pop();
+
(yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermAggregate, (yyvsp[(3) - (3)].interm.intermNode), 0);
context->intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[(1) - (3)].interm).line);
(yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[(1) - (3)].interm).function->getMangledName().c_str());
@@ -4481,6 +4603,11 @@ yyreduce:
(yyval.interm.intermNode)->getAsAggregate()->setOptimize(context->contextPragma.optimize);
(yyval.interm.intermNode)->getAsAggregate()->setDebug(context->contextPragma.debug);
(yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(context->contextPragma.pragmaTable);
+
+ if ((yyvsp[(3) - (3)].interm.intermNode) && (yyvsp[(3) - (3)].interm.intermNode)->getAsAggregate())
+ (yyval.interm.intermNode)->getAsAggregate()->setEndLine((yyvsp[(3) - (3)].interm.intermNode)->getAsAggregate()->getEndLine());
+
+ context->symbolTable.pop();
;}
break;