diff options
Diffstat (limited to 'src/glsl/glsl_parser.cpp')
-rw-r--r-- | src/glsl/glsl_parser.cpp | 3084 |
1 files changed, 1604 insertions, 1480 deletions
diff --git a/src/glsl/glsl_parser.cpp b/src/glsl/glsl_parser.cpp index 8b196ae7fc6..1db7e901a96 100644 --- a/src/glsl/glsl_parser.cpp +++ b/src/glsl/glsl_parser.cpp @@ -214,123 +214,125 @@ VOID_TOK = 329, WHILE = 330, IDENTIFIER = 331, - FLOATCONSTANT = 332, - INTCONSTANT = 333, - UINTCONSTANT = 334, - BOOLCONSTANT = 335, - FIELD_SELECTION = 336, - LEFT_OP = 337, - RIGHT_OP = 338, - INC_OP = 339, - DEC_OP = 340, - LE_OP = 341, - GE_OP = 342, - EQ_OP = 343, - NE_OP = 344, - AND_OP = 345, - OR_OP = 346, - XOR_OP = 347, - MUL_ASSIGN = 348, - DIV_ASSIGN = 349, - ADD_ASSIGN = 350, - MOD_ASSIGN = 351, - LEFT_ASSIGN = 352, - RIGHT_ASSIGN = 353, - AND_ASSIGN = 354, - XOR_ASSIGN = 355, - OR_ASSIGN = 356, - SUB_ASSIGN = 357, - INVARIANT = 358, - LOWP = 359, - MEDIUMP = 360, - HIGHP = 361, - SUPERP = 362, - PRECISION = 363, - VERSION = 364, - EXTENSION = 365, - LINE = 366, - COLON = 367, - EOL = 368, - INTERFACE = 369, - OUTPUT = 370, - PRAGMA_DEBUG_ON = 371, - PRAGMA_DEBUG_OFF = 372, - PRAGMA_OPTIMIZE_ON = 373, - PRAGMA_OPTIMIZE_OFF = 374, - PRAGMA_INVARIANT_ALL = 375, - LAYOUT_TOK = 376, - ASM = 377, - CLASS = 378, - UNION = 379, - ENUM = 380, - TYPEDEF = 381, - TEMPLATE = 382, - THIS = 383, - PACKED_TOK = 384, - GOTO = 385, - INLINE_TOK = 386, - NOINLINE = 387, - VOLATILE = 388, - PUBLIC_TOK = 389, - STATIC = 390, - EXTERN = 391, - EXTERNAL = 392, - LONG_TOK = 393, - SHORT_TOK = 394, - DOUBLE_TOK = 395, - HALF = 396, - FIXED_TOK = 397, - UNSIGNED = 398, - INPUT_TOK = 399, - OUPTUT = 400, - HVEC2 = 401, - HVEC3 = 402, - HVEC4 = 403, - DVEC2 = 404, - DVEC3 = 405, - DVEC4 = 406, - FVEC2 = 407, - FVEC3 = 408, - FVEC4 = 409, - SAMPLER2DRECT = 410, - SAMPLER3DRECT = 411, - SAMPLER2DRECTSHADOW = 412, - SIZEOF = 413, - CAST = 414, - NAMESPACE = 415, - USING = 416, - ERROR_TOK = 417, - COMMON = 418, - PARTITION = 419, - ACTIVE = 420, - SAMPLERBUFFER = 421, - FILTER = 422, - IMAGE1D = 423, - IMAGE2D = 424, - IMAGE3D = 425, - IMAGECUBE = 426, - IMAGE1DARRAY = 427, - IMAGE2DARRAY = 428, - IIMAGE1D = 429, - IIMAGE2D = 430, - IIMAGE3D = 431, - IIMAGECUBE = 432, - IIMAGE1DARRAY = 433, - IIMAGE2DARRAY = 434, - UIMAGE1D = 435, - UIMAGE2D = 436, - UIMAGE3D = 437, - UIMAGECUBE = 438, - UIMAGE1DARRAY = 439, - UIMAGE2DARRAY = 440, - IMAGE1DSHADOW = 441, - IMAGE2DSHADOW = 442, - IMAGEBUFFER = 443, - IIMAGEBUFFER = 444, - UIMAGEBUFFER = 445, - IMAGE1DARRAYSHADOW = 446, - IMAGE2DARRAYSHADOW = 447, - ROW_MAJOR = 448 + TYPE_IDENTIFIER = 332, + NEW_IDENTIFIER = 333, + FLOATCONSTANT = 334, + INTCONSTANT = 335, + UINTCONSTANT = 336, + BOOLCONSTANT = 337, + FIELD_SELECTION = 338, + LEFT_OP = 339, + RIGHT_OP = 340, + INC_OP = 341, + DEC_OP = 342, + LE_OP = 343, + GE_OP = 344, + EQ_OP = 345, + NE_OP = 346, + AND_OP = 347, + OR_OP = 348, + XOR_OP = 349, + MUL_ASSIGN = 350, + DIV_ASSIGN = 351, + ADD_ASSIGN = 352, + MOD_ASSIGN = 353, + LEFT_ASSIGN = 354, + RIGHT_ASSIGN = 355, + AND_ASSIGN = 356, + XOR_ASSIGN = 357, + OR_ASSIGN = 358, + SUB_ASSIGN = 359, + INVARIANT = 360, + LOWP = 361, + MEDIUMP = 362, + HIGHP = 363, + SUPERP = 364, + PRECISION = 365, + VERSION = 366, + EXTENSION = 367, + LINE = 368, + COLON = 369, + EOL = 370, + INTERFACE = 371, + OUTPUT = 372, + PRAGMA_DEBUG_ON = 373, + PRAGMA_DEBUG_OFF = 374, + PRAGMA_OPTIMIZE_ON = 375, + PRAGMA_OPTIMIZE_OFF = 376, + PRAGMA_INVARIANT_ALL = 377, + LAYOUT_TOK = 378, + ASM = 379, + CLASS = 380, + UNION = 381, + ENUM = 382, + TYPEDEF = 383, + TEMPLATE = 384, + THIS = 385, + PACKED_TOK = 386, + GOTO = 387, + INLINE_TOK = 388, + NOINLINE = 389, + VOLATILE = 390, + PUBLIC_TOK = 391, + STATIC = 392, + EXTERN = 393, + EXTERNAL = 394, + LONG_TOK = 395, + SHORT_TOK = 396, + DOUBLE_TOK = 397, + HALF = 398, + FIXED_TOK = 399, + UNSIGNED = 400, + INPUT_TOK = 401, + OUPTUT = 402, + HVEC2 = 403, + HVEC3 = 404, + HVEC4 = 405, + DVEC2 = 406, + DVEC3 = 407, + DVEC4 = 408, + FVEC2 = 409, + FVEC3 = 410, + FVEC4 = 411, + SAMPLER2DRECT = 412, + SAMPLER3DRECT = 413, + SAMPLER2DRECTSHADOW = 414, + SIZEOF = 415, + CAST = 416, + NAMESPACE = 417, + USING = 418, + ERROR_TOK = 419, + COMMON = 420, + PARTITION = 421, + ACTIVE = 422, + SAMPLERBUFFER = 423, + FILTER = 424, + IMAGE1D = 425, + IMAGE2D = 426, + IMAGE3D = 427, + IMAGECUBE = 428, + IMAGE1DARRAY = 429, + IMAGE2DARRAY = 430, + IIMAGE1D = 431, + IIMAGE2D = 432, + IIMAGE3D = 433, + IIMAGECUBE = 434, + IIMAGE1DARRAY = 435, + IIMAGE2DARRAY = 436, + UIMAGE1D = 437, + UIMAGE2D = 438, + UIMAGE3D = 439, + UIMAGECUBE = 440, + UIMAGE1DARRAY = 441, + UIMAGE2DARRAY = 442, + IMAGE1DSHADOW = 443, + IMAGE2DSHADOW = 444, + IMAGEBUFFER = 445, + IIMAGEBUFFER = 446, + UIMAGEBUFFER = 447, + IMAGE1DARRAYSHADOW = 448, + IMAGE2DARRAYSHADOW = 449, + ROW_MAJOR = 450 }; #endif @@ -374,7 +376,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 378 "glsl_parser.cpp" +#line 380 "glsl_parser.cpp" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -399,7 +401,7 @@ typedef struct YYLTYPE /* Line 264 of yacc.c */ -#line 403 "glsl_parser.cpp" +#line 405 "glsl_parser.cpp" #ifdef short # undef short @@ -616,20 +618,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3738 +#define YYLAST 3692 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 218 +#define YYNTOKENS 220 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 87 +#define YYNNTS 93 /* YYNRULES -- Number of rules. */ -#define YYNRULES 279 +#define YYNRULES 291 /* YYNRULES -- Number of states. */ -#define YYNSTATES 415 +#define YYNSTATES 434 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 448 +#define YYMAXUTOK 450 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -640,16 +642,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 202, 2, 2, 2, 206, 209, 2, - 194, 195, 204, 200, 199, 201, 198, 205, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 213, 215, - 207, 214, 208, 212, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 204, 2, 2, 2, 208, 211, 2, + 196, 197, 206, 202, 201, 203, 200, 207, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 215, 217, + 209, 216, 210, 214, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 196, 2, 197, 210, 2, 2, 2, 2, 2, + 2, 198, 2, 199, 212, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 216, 211, 217, 203, 2, 2, 2, + 2, 2, 2, 218, 213, 219, 205, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -681,7 +683,8 @@ static const yytype_uint8 yytranslate[] = 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193 + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195 }; #if YYDEBUG @@ -690,151 +693,158 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint16 yyprhs[] = { 0, 0, 3, 4, 9, 10, 14, 17, 20, 23, - 26, 29, 30, 33, 39, 41, 44, 46, 48, 50, - 52, 54, 56, 60, 62, 67, 69, 73, 76, 79, - 81, 83, 85, 89, 92, 95, 98, 100, 103, 107, - 110, 112, 114, 116, 118, 121, 124, 127, 129, 131, - 133, 135, 137, 141, 145, 149, 151, 155, 159, 161, - 165, 169, 171, 175, 179, 183, 187, 189, 193, 197, - 199, 203, 205, 209, 211, 215, 217, 221, 223, 227, - 229, 233, 235, 241, 243, 247, 249, 251, 253, 255, - 257, 259, 261, 263, 265, 267, 269, 271, 275, 277, - 280, 283, 288, 291, 293, 295, 298, 302, 306, 309, - 315, 319, 322, 326, 329, 330, 332, 334, 336, 338, - 340, 344, 350, 357, 365, 374, 380, 382, 385, 390, - 396, 403, 411, 416, 419, 421, 424, 429, 431, 435, - 437, 441, 443, 445, 447, 449, 451, 453, 456, 458, - 461, 464, 468, 470, 472, 474, 476, 479, 481, 483, - 486, 489, 491, 493, 496, 498, 502, 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, - 573, 575, 577, 579, 581, 583, 585, 587, 589, 591, - 593, 595, 597, 599, 601, 603, 605, 607, 609, 611, - 613, 615, 617, 619, 621, 627, 632, 634, 637, 641, - 643, 647, 649, 654, 656, 658, 660, 662, 664, 666, - 668, 670, 672, 674, 676, 679, 683, 685, 687, 690, - 694, 696, 699, 701, 704, 710, 714, 716, 718, 723, - 729, 733, 736, 742, 750, 757, 759, 761, 763, 764, - 767, 771, 774, 777, 780, 784, 787, 789, 791, 793 + 26, 29, 30, 33, 35, 37, 39, 45, 47, 50, + 52, 54, 56, 58, 60, 62, 64, 68, 70, 75, + 77, 81, 84, 87, 89, 91, 93, 97, 100, 103, + 106, 108, 111, 115, 118, 120, 122, 124, 127, 130, + 133, 135, 138, 142, 145, 147, 150, 153, 156, 158, + 160, 162, 164, 166, 170, 174, 178, 180, 184, 188, + 190, 194, 198, 200, 204, 208, 212, 216, 218, 222, + 226, 228, 232, 234, 238, 240, 244, 246, 250, 252, + 256, 258, 262, 264, 270, 272, 276, 278, 280, 282, + 284, 286, 288, 290, 292, 294, 296, 298, 300, 304, + 306, 309, 312, 317, 320, 322, 324, 327, 331, 335, + 338, 344, 348, 351, 355, 358, 359, 361, 363, 365, + 367, 369, 373, 379, 386, 394, 403, 409, 411, 414, + 419, 425, 432, 440, 445, 448, 450, 453, 458, 460, + 464, 466, 470, 472, 474, 476, 478, 480, 482, 485, + 487, 490, 493, 497, 499, 501, 503, 505, 508, 510, + 512, 515, 518, 520, 522, 525, 527, 531, 536, 538, + 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, + 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, + 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, + 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, + 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, + 640, 642, 644, 646, 648, 650, 656, 661, 663, 666, + 670, 672, 676, 678, 683, 685, 687, 689, 691, 693, + 695, 697, 699, 701, 703, 705, 708, 709, 714, 716, + 718, 721, 725, 727, 730, 732, 735, 741, 745, 747, + 749, 754, 760, 764, 767, 773, 781, 788, 790, 792, + 794, 795, 798, 802, 805, 808, 811, 815, 818, 820, + 822, 824 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 219, 0, -1, -1, 221, 223, 220, 225, -1, -1, - 109, 78, 113, -1, 116, 113, -1, 117, 113, -1, - 118, 113, -1, 119, 113, -1, 120, 113, -1, -1, - 223, 224, -1, 110, 76, 112, 76, 113, -1, 303, - -1, 225, 303, -1, 76, -1, 226, -1, 78, -1, - 79, -1, 77, -1, 80, -1, 194, 253, 195, -1, - 227, -1, 228, 196, 229, 197, -1, 230, -1, 228, - 198, 76, -1, 228, 84, -1, 228, 85, -1, 253, - -1, 231, -1, 232, -1, 228, 198, 232, -1, 234, - 195, -1, 233, 195, -1, 235, 74, -1, 235, -1, - 235, 251, -1, 234, 199, 251, -1, 236, 194, -1, - 274, -1, 76, -1, 81, -1, 228, -1, 84, 237, - -1, 85, 237, -1, 238, 237, -1, 200, -1, 201, - -1, 202, -1, 203, -1, 237, -1, 239, 204, 237, - -1, 239, 205, 237, -1, 239, 206, 237, -1, 239, - -1, 240, 200, 239, -1, 240, 201, 239, -1, 240, - -1, 241, 82, 240, -1, 241, 83, 240, -1, 241, - -1, 242, 207, 241, -1, 242, 208, 241, -1, 242, - 86, 241, -1, 242, 87, 241, -1, 242, -1, 243, - 88, 242, -1, 243, 89, 242, -1, 243, -1, 244, - 209, 243, -1, 244, -1, 245, 210, 244, -1, 245, - -1, 246, 211, 245, -1, 246, -1, 247, 90, 246, - -1, 247, -1, 248, 92, 247, -1, 248, -1, 249, - 91, 248, -1, 249, -1, 249, 212, 253, 213, 251, - -1, 250, -1, 237, 252, 251, -1, 214, -1, 93, - -1, 94, -1, 96, -1, 95, -1, 102, -1, 97, - -1, 98, -1, 99, -1, 100, -1, 101, -1, 251, - -1, 253, 199, 251, -1, 250, -1, 256, 215, -1, - 264, 215, -1, 108, 278, 275, 215, -1, 257, 195, - -1, 259, -1, 258, -1, 259, 261, -1, 258, 199, - 261, -1, 266, 76, 194, -1, 274, 76, -1, 274, - 76, 196, 254, 197, -1, 271, 262, 260, -1, 262, - 260, -1, 271, 262, 263, -1, 262, 263, -1, -1, - 33, -1, 34, -1, 35, -1, 274, -1, 265, -1, - 264, 199, 76, -1, 264, 199, 76, 196, 197, -1, - 264, 199, 76, 196, 254, 197, -1, 264, 199, 76, - 196, 197, 214, 284, -1, 264, 199, 76, 196, 254, - 197, 214, 284, -1, 264, 199, 76, 214, 284, -1, - 266, -1, 266, 76, -1, 266, 76, 196, 197, -1, - 266, 76, 196, 254, 197, -1, 266, 76, 196, 197, - 214, 284, -1, 266, 76, 196, 254, 197, 214, 284, - -1, 266, 76, 214, 284, -1, 103, 76, -1, 274, - -1, 272, 274, -1, 121, 194, 268, 195, -1, 269, - -1, 268, 199, 269, -1, 76, -1, 76, 214, 78, - -1, 40, -1, 39, -1, 38, -1, 4, -1, 273, - -1, 267, -1, 267, 273, -1, 270, -1, 270, 273, - -1, 103, 273, -1, 103, 270, 273, -1, 103, -1, - 4, -1, 3, -1, 37, -1, 32, 37, -1, 33, - -1, 34, -1, 32, 33, -1, 32, 34, -1, 36, - -1, 275, -1, 278, 275, -1, 276, -1, 276, 196, - 197, -1, 276, 196, 254, 197, -1, 277, -1, 279, - -1, 76, -1, 74, -1, 6, -1, 7, -1, 8, - -1, 5, -1, 29, -1, 30, -1, 31, -1, 20, - -1, 21, -1, 22, -1, 23, -1, 24, -1, 25, - -1, 26, -1, 27, -1, 28, -1, 41, -1, 42, - -1, 43, -1, 44, -1, 45, -1, 46, -1, 47, - -1, 48, -1, 49, -1, 50, -1, 51, -1, 155, - -1, 52, -1, 53, -1, 54, -1, 55, -1, 157, - -1, 56, -1, 57, -1, 58, -1, 59, -1, 60, - -1, 61, -1, 62, -1, 63, -1, 64, -1, 65, - -1, 66, -1, 67, -1, 68, -1, 69, -1, 70, - -1, 71, -1, 72, -1, 106, -1, 105, -1, 104, - -1, 73, 76, 216, 280, 217, -1, 73, 216, 280, - 217, -1, 281, -1, 280, 281, -1, 274, 282, 215, - -1, 283, -1, 282, 199, 283, -1, 76, -1, 76, - 196, 254, 197, -1, 251, -1, 255, -1, 288, -1, - 287, -1, 285, -1, 292, -1, 293, -1, 296, -1, - 297, -1, 298, -1, 302, -1, 216, 217, -1, 216, - 291, 217, -1, 290, -1, 287, -1, 216, 217, -1, - 216, 291, 217, -1, 286, -1, 291, 286, -1, 215, - -1, 253, 215, -1, 14, 194, 253, 195, 294, -1, - 286, 12, 286, -1, 286, -1, 253, -1, 266, 76, - 214, 284, -1, 17, 194, 253, 195, 288, -1, 18, - 253, 213, -1, 19, 213, -1, 75, 194, 295, 195, - 289, -1, 11, 286, 75, 194, 253, 195, 215, -1, - 13, 194, 299, 301, 195, 289, -1, 292, -1, 285, - -1, 295, -1, -1, 300, 215, -1, 300, 215, 253, - -1, 10, 215, -1, 9, 215, -1, 16, 215, -1, - 16, 253, 215, -1, 15, 215, -1, 304, -1, 255, - -1, 222, -1, 256, 290, -1 + 221, 0, -1, -1, 223, 225, 222, 228, -1, -1, + 111, 80, 115, -1, 118, 115, -1, 119, 115, -1, + 120, 115, -1, 121, 115, -1, 122, 115, -1, -1, + 225, 227, -1, 76, -1, 77, -1, 78, -1, 112, + 226, 114, 226, 115, -1, 311, -1, 228, 311, -1, + 76, -1, 78, -1, 229, -1, 80, -1, 81, -1, + 79, -1, 82, -1, 196, 260, 197, -1, 230, -1, + 231, 198, 232, 199, -1, 233, -1, 231, 200, 226, + -1, 231, 86, -1, 231, 87, -1, 260, -1, 234, + -1, 235, -1, 231, 200, 240, -1, 237, 197, -1, + 236, 197, -1, 238, 74, -1, 238, -1, 238, 258, + -1, 237, 201, 258, -1, 239, 196, -1, 281, -1, + 229, -1, 83, -1, 242, 197, -1, 241, 197, -1, + 243, 74, -1, 243, -1, 243, 258, -1, 242, 201, + 258, -1, 229, 196, -1, 231, -1, 86, 244, -1, + 87, 244, -1, 245, 244, -1, 202, -1, 203, -1, + 204, -1, 205, -1, 244, -1, 246, 206, 244, -1, + 246, 207, 244, -1, 246, 208, 244, -1, 246, -1, + 247, 202, 246, -1, 247, 203, 246, -1, 247, -1, + 248, 84, 247, -1, 248, 85, 247, -1, 248, -1, + 249, 209, 248, -1, 249, 210, 248, -1, 249, 88, + 248, -1, 249, 89, 248, -1, 249, -1, 250, 90, + 249, -1, 250, 91, 249, -1, 250, -1, 251, 211, + 250, -1, 251, -1, 252, 212, 251, -1, 252, -1, + 253, 213, 252, -1, 253, -1, 254, 92, 253, -1, + 254, -1, 255, 94, 254, -1, 255, -1, 256, 93, + 255, -1, 256, -1, 256, 214, 260, 215, 258, -1, + 257, -1, 244, 259, 258, -1, 216, -1, 95, -1, + 96, -1, 98, -1, 97, -1, 104, -1, 99, -1, + 100, -1, 101, -1, 102, -1, 103, -1, 258, -1, + 260, 201, 258, -1, 257, -1, 263, 217, -1, 271, + 217, -1, 110, 285, 282, 217, -1, 264, 197, -1, + 266, -1, 265, -1, 266, 268, -1, 265, 201, 268, + -1, 273, 229, 196, -1, 281, 226, -1, 281, 226, + 198, 261, 199, -1, 278, 269, 267, -1, 269, 267, + -1, 278, 269, 270, -1, 269, 270, -1, -1, 33, + -1, 34, -1, 35, -1, 281, -1, 272, -1, 271, + 201, 226, -1, 271, 201, 226, 198, 199, -1, 271, + 201, 226, 198, 261, 199, -1, 271, 201, 226, 198, + 199, 216, 291, -1, 271, 201, 226, 198, 261, 199, + 216, 291, -1, 271, 201, 226, 216, 291, -1, 273, + -1, 273, 226, -1, 273, 226, 198, 199, -1, 273, + 226, 198, 261, 199, -1, 273, 226, 198, 199, 216, + 291, -1, 273, 226, 198, 261, 199, 216, 291, -1, + 273, 226, 216, 291, -1, 105, 229, -1, 281, -1, + 279, 281, -1, 123, 196, 275, 197, -1, 276, -1, + 275, 201, 276, -1, 226, -1, 226, 216, 80, -1, + 40, -1, 39, -1, 38, -1, 4, -1, 280, -1, + 274, -1, 274, 280, -1, 277, -1, 277, 280, -1, + 105, 280, -1, 105, 277, 280, -1, 105, -1, 4, + -1, 3, -1, 37, -1, 32, 37, -1, 33, -1, + 34, -1, 32, 33, -1, 32, 34, -1, 36, -1, + 282, -1, 285, 282, -1, 283, -1, 283, 198, 199, + -1, 283, 198, 261, 199, -1, 284, -1, 286, -1, + 77, -1, 74, -1, 6, -1, 7, -1, 8, -1, + 5, -1, 29, -1, 30, -1, 31, -1, 20, -1, + 21, -1, 22, -1, 23, -1, 24, -1, 25, -1, + 26, -1, 27, -1, 28, -1, 41, -1, 42, -1, + 43, -1, 44, -1, 45, -1, 46, -1, 47, -1, + 48, -1, 49, -1, 50, -1, 51, -1, 157, -1, + 52, -1, 53, -1, 54, -1, 55, -1, 159, -1, + 56, -1, 57, -1, 58, -1, 59, -1, 60, -1, + 61, -1, 62, -1, 63, -1, 64, -1, 65, -1, + 66, -1, 67, -1, 68, -1, 69, -1, 70, -1, + 71, -1, 72, -1, 108, -1, 107, -1, 106, -1, + 73, 226, 218, 287, 219, -1, 73, 218, 287, 219, + -1, 288, -1, 287, 288, -1, 281, 289, 217, -1, + 290, -1, 289, 201, 290, -1, 226, -1, 226, 198, + 261, 199, -1, 258, -1, 262, -1, 295, -1, 294, + -1, 292, -1, 300, -1, 301, -1, 304, -1, 305, + -1, 306, -1, 310, -1, 218, 219, -1, -1, 218, + 296, 299, 219, -1, 298, -1, 294, -1, 218, 219, + -1, 218, 299, 219, -1, 293, -1, 299, 293, -1, + 217, -1, 260, 217, -1, 14, 196, 260, 197, 302, + -1, 293, 12, 293, -1, 293, -1, 260, -1, 273, + 226, 216, 291, -1, 17, 196, 260, 197, 295, -1, + 18, 260, 215, -1, 19, 215, -1, 75, 196, 303, + 197, 297, -1, 11, 293, 75, 196, 260, 197, 217, + -1, 13, 196, 307, 309, 197, 297, -1, 300, -1, + 292, -1, 303, -1, -1, 308, 217, -1, 308, 217, + 260, -1, 10, 217, -1, 9, 217, -1, 16, 217, + -1, 16, 260, 217, -1, 15, 217, -1, 312, -1, + 262, -1, 224, -1, 263, 298, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 213, 213, 212, 219, 221, 246, 247, 248, 249, - 250, 262, 264, 268, 277, 285, 296, 300, 307, 314, - 321, 328, 335, 342, 343, 349, 353, 360, 366, 375, - 379, 383, 384, 393, 394, 398, 399, 403, 409, 421, - 425, 431, 438, 449, 450, 456, 462, 472, 473, 474, - 475, 479, 480, 486, 492, 501, 502, 508, 517, 518, - 524, 533, 534, 540, 546, 552, 561, 562, 568, 577, - 578, 587, 588, 597, 598, 607, 608, 617, 618, 627, - 628, 637, 638, 647, 648, 657, 658, 659, 660, 661, - 662, 663, 664, 665, 666, 667, 671, 675, 691, 695, - 699, 703, 712, 716, 717, 721, 726, 734, 745, 755, - 770, 777, 782, 793, 806, 809, 814, 819, 828, 832, - 833, 842, 851, 860, 869, 878, 891, 902, 911, 920, - 929, 938, 947, 956, 970, 977, 988, 995, 996, 1015, - 1044, 1085, 1090, 1095, 1103, 1111, 1112, 1113, 1118, 1119, - 1124, 1129, 1135, 1143, 1148, 1153, 1158, 1164, 1169, 1174, - 1179, 1184, 1192, 1196, 1204, 1205, 1211, 1220, 1226, 1232, - 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, - 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, - 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, - 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, - 1291, 1295, 1305, 1315, 1328, 1334, 1343, 1348, 1356, 1371, - 1376, 1384, 1390, 1399, 1403, 1409, 1410, 1414, 1415, 1416, - 1417, 1418, 1419, 1420, 1424, 1430, 1439, 1440, 1444, 1450, - 1459, 1469, 1481, 1487, 1496, 1505, 1510, 1518, 1522, 1536, - 1540, 1541, 1545, 1552, 1559, 1569, 1570, 1574, 1576, 1582, - 1587, 1596, 1602, 1608, 1614, 1620, 1629, 1630, 1631, 1635 + 0, 218, 218, 217, 229, 231, 271, 272, 273, 274, + 275, 287, 289, 293, 294, 295, 299, 308, 316, 327, + 328, 332, 339, 346, 353, 360, 367, 374, 375, 381, + 385, 392, 398, 407, 411, 415, 416, 425, 426, 430, + 431, 435, 441, 453, 457, 463, 470, 480, 481, 485, + 486, 490, 496, 508, 519, 520, 526, 532, 542, 543, + 544, 545, 549, 550, 556, 562, 571, 572, 578, 587, + 588, 594, 603, 604, 610, 616, 622, 631, 632, 638, + 647, 648, 657, 658, 667, 668, 677, 678, 687, 688, + 697, 698, 707, 708, 717, 718, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 741, 745, 761, + 765, 770, 774, 783, 787, 788, 792, 797, 805, 819, + 829, 844, 851, 856, 867, 880, 883, 888, 893, 902, + 906, 907, 917, 927, 937, 947, 957, 971, 982, 991, + 1000, 1009, 1018, 1027, 1036, 1050, 1057, 1068, 1075, 1076, + 1095, 1147, 1188, 1193, 1198, 1206, 1214, 1215, 1216, 1221, + 1222, 1227, 1232, 1238, 1246, 1251, 1256, 1261, 1267, 1272, + 1277, 1282, 1287, 1295, 1299, 1307, 1308, 1314, 1323, 1329, + 1335, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, + 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, + 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, + 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, + 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, + 1393, 1394, 1398, 1408, 1418, 1431, 1438, 1447, 1452, 1460, + 1475, 1480, 1488, 1495, 1504, 1508, 1514, 1515, 1519, 1520, + 1521, 1522, 1523, 1524, 1525, 1529, 1536, 1535, 1549, 1550, + 1554, 1560, 1569, 1579, 1591, 1597, 1606, 1615, 1620, 1628, + 1632, 1646, 1650, 1651, 1655, 1662, 1669, 1679, 1680, 1684, + 1686, 1692, 1697, 1706, 1712, 1718, 1724, 1730, 1739, 1740, + 1741, 1745 }; #endif @@ -857,38 +867,41 @@ static const char *const yytname[] = "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER", - "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "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", "INVARIANT", - "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION", - "EXTENSION", "LINE", "COLON", "EOL", "INTERFACE", "OUTPUT", - "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON", - "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL", "LAYOUT_TOK", "ASM", - "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", - "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", - "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", - "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", - "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", "FVEC4", - "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", "SIZEOF", - "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON", "PARTITION", - "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D", - "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", - "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", - "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", - "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", - "UIMAGEBUFFER", "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "ROW_MAJOR", - "'('", "')'", "'['", "']'", "'.'", "','", "'+'", "'-'", "'!'", "'~'", - "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", "'^'", "'|'", "'?'", "':'", - "'='", "';'", "'{'", "'}'", "$accept", "translation_unit", "$@1", - "version_statement", "pragma_statement", "extension_statement_list", - "extension_statement", "external_declaration_list", - "variable_identifier", "primary_expression", "postfix_expression", - "integer_expression", "function_call", "function_call_or_method", - "function_call_generic", "function_call_header_no_parameters", + "TYPE_IDENTIFIER", "NEW_IDENTIFIER", "FLOATCONSTANT", "INTCONSTANT", + "UINTCONSTANT", "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", "INVARIANT", "LOWP", "MEDIUMP", "HIGHP", + "SUPERP", "PRECISION", "VERSION", "EXTENSION", "LINE", "COLON", "EOL", + "INTERFACE", "OUTPUT", "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", + "PRAGMA_OPTIMIZE_ON", "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL", + "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE", + "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE", + "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK", + "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT", + "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", + "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", + "SIZEOF", "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON", + "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D", + "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D", + "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY", + "UIMAGE1D", "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY", + "UIMAGE2DARRAY", "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER", + "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAYSHADOW", + "IMAGE2DARRAYSHADOW", "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'", + "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", + "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept", + "translation_unit", "$@1", "version_statement", "pragma_statement", + "extension_statement_list", "any_identifier", "extension_statement", + "external_declaration_list", "variable_identifier", "primary_expression", + "postfix_expression", "integer_expression", "function_call", + "function_call_or_method", "function_call_generic", + "function_call_header_no_parameters", "function_call_header_with_parameters", "function_call_header", - "function_identifier", "unary_expression", "unary_operator", + "function_identifier", "method_call_generic", + "method_call_header_no_parameters", "method_call_header_with_parameters", + "method_call_header", "unary_expression", "unary_operator", "multiplicative_expression", "additive_expression", "shift_expression", "relational_expression", "equality_expression", "and_expression", "exclusive_or_expression", "inclusive_or_expression", @@ -907,7 +920,7 @@ static const char *const yytname[] = "precision_qualifier", "struct_specifier", "struct_declaration_list", "struct_declaration", "struct_declarator_list", "struct_declarator", "initializer", "declaration_statement", "statement", "simple_statement", - "compound_statement", "statement_no_new_scope", + "compound_statement", "$@2", "statement_no_new_scope", "compound_statement_no_new_scope", "statement_list", "expression_statement", "selection_statement", "selection_rest_statement", "condition", "switch_statement", @@ -941,76 +954,80 @@ static const yytype_uint16 yytoknum[] = 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 40, 41, 91, 93, 46, 44, - 43, 45, 33, 126, 42, 47, 37, 60, 62, 38, - 94, 124, 63, 58, 61, 59, 123, 125 + 445, 446, 447, 448, 449, 450, 40, 41, 91, 93, + 46, 44, 43, 45, 33, 126, 42, 47, 37, 60, + 62, 38, 94, 124, 63, 58, 61, 59, 123, 125 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 218, 220, 219, 221, 221, 222, 222, 222, 222, - 222, 223, 223, 224, 225, 225, 226, 227, 227, 227, - 227, 227, 227, 228, 228, 228, 228, 228, 228, 229, - 230, 231, 231, 232, 232, 233, 233, 234, 234, 235, - 236, 236, 236, 237, 237, 237, 237, 238, 238, 238, - 238, 239, 239, 239, 239, 240, 240, 240, 241, 241, - 241, 242, 242, 242, 242, 242, 243, 243, 243, 244, - 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, - 249, 250, 250, 251, 251, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 253, 253, 254, 255, - 255, 255, 256, 257, 257, 258, 258, 259, 260, 260, - 261, 261, 261, 261, 262, 262, 262, 262, 263, 264, - 264, 264, 264, 264, 264, 264, 265, 265, 265, 265, - 265, 265, 265, 265, 266, 266, 267, 268, 268, 269, - 269, 270, 270, 270, 271, 272, 272, 272, 272, 272, - 272, 272, 272, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 274, 274, 275, 275, 275, 276, 276, 276, - 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, - 277, 278, 278, 278, 279, 279, 280, 280, 281, 282, - 282, 283, 283, 284, 285, 286, 286, 287, 287, 287, - 287, 287, 287, 287, 288, 288, 289, 289, 290, 290, - 291, 291, 292, 292, 293, 294, 294, 295, 295, 296, - 297, 297, 298, 298, 298, 299, 299, 300, 300, 301, - 301, 302, 302, 302, 302, 302, 303, 303, 303, 304 + 0, 220, 222, 221, 223, 223, 224, 224, 224, 224, + 224, 225, 225, 226, 226, 226, 227, 228, 228, 229, + 229, 230, 230, 230, 230, 230, 230, 231, 231, 231, + 231, 231, 231, 232, 233, 234, 234, 235, 235, 236, + 236, 237, 237, 238, 239, 239, 239, 240, 240, 241, + 241, 242, 242, 243, 244, 244, 244, 244, 245, 245, + 245, 245, 246, 246, 246, 246, 247, 247, 247, 248, + 248, 248, 249, 249, 249, 249, 249, 250, 250, 250, + 251, 251, 252, 252, 253, 253, 254, 254, 255, 255, + 256, 256, 257, 257, 258, 258, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 260, 260, 261, + 262, 262, 262, 263, 264, 264, 265, 265, 266, 267, + 267, 268, 268, 268, 268, 269, 269, 269, 269, 270, + 271, 271, 271, 271, 271, 271, 271, 272, 272, 272, + 272, 272, 272, 272, 272, 273, 273, 274, 275, 275, + 276, 276, 277, 277, 277, 278, 279, 279, 279, 279, + 279, 279, 279, 279, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 281, 281, 282, 282, 282, 283, 283, + 283, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 285, 285, 285, 286, 286, 287, 287, 288, + 289, 289, 290, 290, 291, 292, 293, 293, 294, 294, + 294, 294, 294, 294, 294, 295, 296, 295, 297, 297, + 298, 298, 299, 299, 300, 300, 301, 302, 302, 303, + 303, 304, 305, 305, 306, 306, 306, 307, 307, 308, + 308, 309, 309, 310, 310, 310, 310, 310, 311, 311, + 311, 312 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 0, 4, 0, 3, 2, 2, 2, 2, - 2, 0, 2, 5, 1, 2, 1, 1, 1, 1, - 1, 1, 3, 1, 4, 1, 3, 2, 2, 1, - 1, 1, 3, 2, 2, 2, 1, 2, 3, 2, - 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, - 1, 1, 3, 3, 3, 1, 3, 3, 1, 3, - 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, - 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 5, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, - 2, 4, 2, 1, 1, 2, 3, 3, 2, 5, - 3, 2, 3, 2, 0, 1, 1, 1, 1, 1, - 3, 5, 6, 7, 8, 5, 1, 2, 4, 5, - 6, 7, 4, 2, 1, 2, 4, 1, 3, 1, - 3, 1, 1, 1, 1, 1, 1, 2, 1, 2, - 2, 3, 1, 1, 1, 1, 2, 1, 1, 2, - 2, 1, 1, 2, 1, 3, 4, 1, 1, 1, + 2, 0, 2, 1, 1, 1, 5, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 4, 1, + 3, 2, 2, 1, 1, 1, 3, 2, 2, 2, + 1, 2, 3, 2, 1, 1, 1, 2, 2, 2, + 1, 2, 3, 2, 1, 2, 2, 2, 1, 1, + 1, 1, 1, 3, 3, 3, 1, 3, 3, 1, + 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, + 1, 3, 1, 5, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 2, 2, 4, 2, 1, 1, 2, 3, 3, 2, + 5, 3, 2, 3, 2, 0, 1, 1, 1, 1, + 1, 3, 5, 6, 7, 8, 5, 1, 2, 4, + 5, 6, 7, 4, 2, 1, 2, 4, 1, 3, + 1, 3, 1, 1, 1, 1, 1, 1, 2, 1, + 2, 2, 3, 1, 1, 1, 1, 2, 1, 1, + 2, 2, 1, 1, 2, 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, 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, 1, 1, 2, 3, 1, 1, 2, 3, - 1, 2, 1, 2, 5, 3, 1, 1, 4, 5, - 3, 2, 5, 7, 6, 1, 1, 1, 0, 2, - 3, 2, 2, 2, 3, 2, 1, 1, 1, 2 + 1, 1, 1, 1, 1, 5, 4, 1, 2, 3, + 1, 3, 1, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 0, 4, 1, 1, + 2, 3, 1, 2, 1, 2, 5, 3, 1, 1, + 4, 5, 3, 2, 5, 7, 6, 1, 1, 1, + 0, 2, 3, 2, 2, 2, 3, 2, 1, 1, + 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1019,637 +1036,620 @@ static const yytype_uint8 yyr2[] = static const yytype_uint16 yydefact[] = { 4, 0, 0, 11, 0, 1, 2, 5, 0, 0, - 12, 0, 154, 153, 174, 171, 172, 173, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 175, 176, 177, - 0, 157, 158, 161, 155, 143, 142, 141, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, - 200, 201, 202, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 0, 170, 169, 152, 223, 222, 221, 0, 0, 0, - 0, 0, 0, 0, 198, 203, 278, 3, 277, 0, - 0, 104, 114, 0, 119, 126, 146, 148, 0, 145, - 134, 162, 164, 167, 0, 168, 14, 276, 0, 159, - 160, 156, 0, 0, 133, 0, 150, 0, 6, 7, - 8, 9, 10, 0, 15, 99, 0, 279, 102, 114, - 144, 115, 116, 117, 105, 0, 114, 0, 100, 127, - 147, 149, 135, 0, 163, 0, 0, 0, 0, 226, - 151, 0, 139, 0, 137, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 20, 18, 19, - 21, 42, 0, 0, 0, 47, 48, 49, 50, 252, - 0, 248, 17, 23, 43, 25, 30, 31, 0, 0, - 36, 0, 51, 0, 55, 58, 61, 66, 69, 71, - 73, 75, 77, 79, 81, 83, 96, 0, 234, 0, - 134, 237, 250, 236, 235, 0, 238, 239, 240, 241, - 242, 243, 106, 111, 113, 118, 0, 120, 107, 0, - 0, 165, 51, 98, 0, 40, 13, 0, 231, 0, - 229, 225, 227, 101, 0, 136, 0, 272, 271, 0, - 0, 0, 275, 273, 0, 0, 0, 261, 0, 44, - 45, 0, 244, 0, 27, 28, 0, 0, 34, 33, - 0, 170, 37, 39, 86, 87, 89, 88, 91, 92, - 93, 94, 95, 90, 85, 0, 46, 0, 0, 0, + 12, 13, 14, 15, 0, 165, 164, 185, 182, 183, + 184, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 186, 187, 188, 0, 168, 169, 172, 166, 154, 153, + 152, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 210, 211, 212, 213, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 0, 181, 180, 163, 234, 233, 232, + 0, 0, 0, 0, 0, 0, 0, 209, 214, 290, + 3, 289, 0, 0, 115, 125, 0, 130, 137, 157, + 159, 0, 156, 145, 173, 175, 178, 0, 179, 17, + 288, 0, 170, 171, 167, 0, 0, 19, 20, 144, + 0, 161, 0, 6, 7, 8, 9, 10, 0, 18, + 110, 0, 291, 113, 125, 155, 126, 127, 128, 116, + 0, 125, 0, 111, 13, 15, 138, 0, 158, 160, + 146, 0, 174, 0, 0, 0, 237, 0, 162, 0, + 150, 0, 148, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 22, 23, 25, 46, 0, + 0, 0, 58, 59, 60, 61, 264, 256, 260, 21, + 27, 54, 29, 34, 35, 0, 0, 40, 0, 62, + 0, 66, 69, 72, 77, 80, 82, 84, 86, 88, + 90, 92, 94, 107, 0, 245, 0, 145, 248, 262, + 247, 246, 0, 249, 250, 251, 252, 253, 254, 117, + 122, 124, 129, 0, 131, 0, 0, 118, 176, 62, + 109, 0, 44, 16, 242, 0, 240, 236, 238, 0, + 112, 0, 147, 0, 284, 283, 0, 0, 0, 287, + 285, 0, 0, 0, 273, 0, 55, 56, 0, 255, + 0, 31, 32, 0, 0, 38, 37, 0, 181, 41, + 43, 97, 98, 100, 99, 102, 103, 104, 105, 106, + 101, 96, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 253, 249, - 251, 108, 110, 112, 0, 0, 128, 0, 233, 132, - 166, 224, 0, 0, 228, 140, 138, 0, 266, 265, - 268, 0, 274, 0, 260, 152, 257, 0, 0, 22, - 245, 0, 29, 26, 32, 38, 84, 52, 53, 54, - 56, 57, 59, 60, 64, 65, 62, 63, 67, 68, - 70, 72, 74, 76, 78, 80, 0, 97, 0, 121, - 0, 125, 0, 129, 0, 230, 0, 267, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, 122, 130, - 0, 232, 0, 269, 0, 256, 254, 259, 0, 247, - 262, 246, 82, 109, 123, 0, 131, 0, 270, 264, - 0, 258, 124, 263, 255 + 0, 0, 0, 0, 0, 265, 261, 263, 119, 121, + 123, 0, 0, 139, 0, 244, 143, 177, 0, 0, + 239, 235, 151, 149, 0, 278, 277, 280, 0, 286, + 0, 272, 163, 269, 0, 0, 26, 0, 0, 33, + 30, 0, 36, 0, 0, 50, 42, 95, 63, 64, + 65, 67, 68, 70, 71, 75, 76, 73, 74, 78, + 79, 81, 83, 85, 87, 89, 91, 0, 108, 0, + 132, 0, 136, 0, 140, 0, 241, 0, 279, 0, + 0, 0, 0, 0, 0, 257, 28, 53, 48, 47, + 0, 181, 51, 0, 0, 0, 133, 141, 0, 243, + 0, 281, 0, 268, 266, 271, 0, 259, 274, 258, + 52, 93, 120, 134, 0, 142, 0, 282, 276, 0, + 270, 135, 275, 267 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 9, 3, 86, 6, 10, 87, 182, 183, - 184, 341, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 285, 207, 234, 208, 209, 90, - 91, 92, 223, 134, 135, 224, 93, 94, 95, 96, - 153, 154, 97, 136, 98, 99, 235, 101, 102, 103, - 104, 105, 148, 149, 239, 240, 319, 211, 212, 213, - 214, 400, 401, 215, 216, 217, 396, 338, 218, 219, - 220, 330, 378, 379, 221, 106, 107 + -1, 2, 9, 3, 89, 6, 160, 10, 90, 189, + 190, 191, 348, 192, 193, 194, 195, 196, 197, 198, + 352, 353, 354, 355, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 292, + 214, 241, 215, 216, 93, 94, 95, 230, 139, 140, + 231, 96, 97, 98, 99, 161, 162, 100, 141, 101, + 102, 242, 104, 105, 106, 107, 108, 155, 156, 245, + 246, 326, 218, 219, 220, 221, 270, 418, 419, 222, + 223, 224, 414, 345, 225, 226, 227, 337, 389, 390, + 228, 109, 110 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -321 +#define YYPACT_NINF -366 static const yytype_int16 yypact[] = { - -86, -57, 45, -321, -56, -321, -50, -321, -10, 3320, - -321, -26, -321, -321, -321, -321, -321, -321, -321, -321, - -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, - 79, -321, -321, -321, -321, -321, -321, -321, -321, -321, - -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, - -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, - -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, - -70, -321, -321, 43, -321, -321, -321, 18, -22, -12, - -5, 2, 25, -101, -321, -321, -321, 3320, -321, -43, - -55, -54, 6, -148, -321, 52, 211, 211, 3509, -321, - -321, -321, -47, -321, 3581, -321, -321, -321, 110, -321, - -321, -321, -14, 3509, -321, 211, -321, 3581, -321, -321, - -321, -321, -321, 131, -321, -321, 389, -321, -321, 15, - -321, -321, -321, -321, -321, 3509, 109, 136, -321, -152, - -321, -321, -321, 2400, -321, 105, 3509, 143, 1781, -321, - -321, 7, 9, -107, -321, 10, 12, 1249, 27, 36, - 17, 2015, 40, 2952, 22, 42, -65, -321, -321, -321, - -321, -321, 2952, 2952, 2952, -321, -321, -321, -321, -321, - 604, -321, -321, -321, -20, -321, -321, -321, 47, -92, - 3136, 46, -67, 2952, -24, -16, 111, -73, 108, 37, - 41, 39, 162, 161, -82, -321, -321, -147, -321, 44, - 61, -321, -321, -321, -321, 819, -321, -321, -321, -321, - -321, -321, -321, -321, -321, 181, 3509, -160, -321, 2584, - 2952, -321, -321, -321, 63, -321, -321, 1898, 62, -146, - -321, -321, -321, -321, 183, -321, 131, -321, -321, 187, - 1664, 2952, -321, -321, -144, 2952, -140, -321, 2216, -321, - -321, -81, -321, 1034, -321, -321, 2952, 3437, -321, -321, - 2952, 70, -321, -321, -321, -321, -321, -321, -321, -321, - -321, -321, -321, -321, -321, 2952, -321, 2952, 2952, 2952, - 2952, 2952, 2952, 2952, 2952, 2952, 2952, 2952, 2952, 2952, - 2952, 2952, 2952, 2952, 2952, 2952, 2952, 2952, -321, -321, - -321, 74, -321, -321, 2768, 2952, 64, 69, -321, -321, - -321, -321, 2952, 143, -321, -321, -321, 82, -321, -321, - 2216, -74, -321, -68, -321, 235, 78, 203, 85, -321, - -321, 84, 78, 88, -321, -321, -321, -321, -321, -321, - -24, -24, -16, -16, 111, 111, 111, 111, -73, -73, - 108, 37, 41, 39, 162, 161, -129, -321, 2952, 71, - 86, -321, 2952, 72, 87, -321, 2952, -321, 73, 92, - 1249, 75, 76, 1463, -321, 2952, 95, 2952, 80, -321, - 2952, -321, -63, 2952, 1463, 277, -321, -321, 2952, -321, - -321, -321, -321, -321, -321, 2952, -321, 81, 78, -321, - 1249, -321, -321, -321, -321 + -57, -43, 62, -366, -50, -366, -30, -366, 67, 3341, + -366, -366, -366, -366, -6, -366, -366, -366, -366, -366, + -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, + -366, -366, -366, 8, -366, -366, -366, -366, -366, -366, + -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, + -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, + -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, + -366, -366, -366, -65, -366, -366, 226, -366, -366, -366, + 51, -31, -28, 6, 13, 15, -44, -366, -366, -366, + 3341, -366, -183, -47, -29, 18, -169, -366, 140, 24, + 24, 3460, -366, -366, -366, -24, -366, 3533, -366, -366, + -366, 67, -366, -366, -366, 3460, -48, -366, -366, -366, + 24, -366, 3533, -366, -366, -366, -366, -366, 67, -366, + -366, 408, -366, -366, 55, -366, -366, -366, -366, -366, + 3460, 200, 67, -366, -20, -18, -178, 23, -366, -366, + -366, 2225, -366, 72, 67, 1598, -366, 3460, -366, 4, + 10, -84, -366, 11, 14, 1059, 40, 42, 29, 1836, + 43, 2783, 34, 54, -366, -366, -366, -366, -366, 2783, + 2783, 2783, -366, -366, -366, -366, -366, 32, -366, 56, + -366, -71, -366, -366, -366, 57, -81, 2969, 61, -27, + 2783, 35, -88, -41, -70, 33, 60, 41, 59, 181, + 180, -89, -366, -366, -168, -366, 58, 80, -366, -366, + -366, -366, 625, -366, -366, -366, -366, -366, -366, -366, + -366, -366, 67, 3460, -177, 2411, 2783, -366, -366, -366, + -366, 78, -366, -366, 81, -137, -366, -366, -366, 1717, + -366, 201, -366, 67, -366, -366, 205, 1478, 2783, -366, + -366, -134, 2783, -115, -366, 2039, -366, -366, -60, -366, + 1059, -366, -366, 2783, 140, -366, -366, 2783, 85, -366, + -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, + -366, -366, 2783, -366, 2783, 2783, 2783, 2783, 2783, 2783, + 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, + 2783, 2783, 2783, 2783, 2783, -366, -366, -366, 86, -366, + -366, 2597, 2783, 69, 87, -366, -366, -366, 2783, 67, + -366, -366, -366, -366, 91, -366, -366, 2039, -59, -366, + -46, -366, 129, 88, 67, 93, -366, 842, 89, 88, + -366, 95, -366, 96, -37, 3155, -366, -366, -366, -366, + -366, 35, 35, -88, -88, -41, -41, -41, -41, -70, + -70, 33, 60, 41, 59, 181, 180, -96, -366, 2783, + 76, 97, -366, 2783, 79, 98, -366, 2783, -366, 77, + 101, 1059, 83, 90, 1275, -366, -366, -366, -366, -366, + 2783, 102, -366, 2783, 108, 2783, 94, -366, 2783, -366, + -26, 2783, 1275, 297, -366, -366, 2783, -366, -366, -366, + -366, -366, -366, -366, 2783, -366, 100, 88, -366, 1059, + -366, -366, -366, -366 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, - -321, -321, -321, -321, 26, -321, -321, -321, -321, -135, - -321, -91, -88, -106, -90, -3, -6, -4, -2, -1, - 0, -321, -139, -174, -321, -156, -217, 11, 13, -321, - -321, -321, 83, 170, 164, 89, -321, -321, -243, -321, - -321, 56, -71, -321, -321, -72, -9, -32, -321, -321, - 227, -321, 160, -131, -321, -15, -195, 57, -154, -320, - -69, -84, 222, 133, 66, -321, -321, -13, -321, -321, - -321, -321, -321, -321, -321, 231, -321 + -366, -366, -366, -366, -366, -366, -7, -366, -366, -62, + -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, + -366, -366, -366, -366, -101, -366, -113, -109, -121, -61, + 5, 3, 9, 16, 2, 7, -366, -142, -100, -366, + -164, -225, 21, 22, -366, -366, -366, 82, 186, 173, + 92, -366, -366, -242, -366, -366, 68, -73, -366, -366, + -74, -9, -67, -366, -366, 243, -366, 170, -147, -366, + 0, -298, 73, -159, -365, -58, -366, -80, 239, 63, + 84, -366, -366, -2, -366, -366, -366, -366, -366, -366, + -366, 246, -366 }; /* 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 -170 +#define YYTABLE_NINF -115 static const yytype_int16 yytable[] = { - 100, 116, 115, 249, 233, 254, 112, 256, 232, 305, - 130, -169, 317, 294, 295, 337, 272, 242, 261, 130, - 88, 4, 89, 1, 140, 141, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 314, 259, 260, 131, - 132, 133, 228, 150, 229, 5, 12, 13, 131, 132, - 133, 137, 307, 323, 315, 307, 318, 7, 286, 307, - 8, 310, 230, 399, 264, 265, 11, 138, 308, 324, - 307, 332, 144, 334, 399, 30, 31, 32, 100, 33, - 34, 35, 36, 37, 385, 151, 108, 337, 245, 142, - 233, 118, 246, 123, 232, 331, 345, 370, 88, 333, - 89, 119, 336, 269, 147, 374, 242, 270, 120, 310, - 342, 346, 109, 110, 339, 121, 111, 210, 307, 114, - 371, 380, 74, 75, 76, 307, 225, 381, 139, -41, - 306, 307, 407, 367, 296, 297, 307, 147, 122, 147, - 128, 318, 131, 132, 133, 129, 113, 284, 210, 143, - 366, 386, 347, 348, 349, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 210, 125, 126, 336, 233, 266, 389, 267, 232, - 287, 288, 289, 233, 290, 291, 145, 232, 354, 355, - 356, 357, 404, 292, 293, 406, 298, 299, 318, 350, - 351, -103, 146, 411, 352, 353, 210, 152, 358, 359, - 412, 402, 227, 318, 12, 13, 318, 225, 236, 238, - 392, 250, 243, 244, 318, 247, 395, 248, 147, 233, - 251, 318, 252, 232, 255, 257, 258, 408, 12, 13, - 273, 210, 268, 30, 31, 32, 300, 33, 34, 210, - 302, 301, 303, 304, 210, -40, 414, 311, 322, 125, - 320, 325, 327, 116, 115, -35, 373, 30, 31, 32, - 368, 33, 34, 35, 36, 37, 376, 307, 372, 382, - 383, 384, -41, 388, 391, 387, 390, 394, 393, 410, - 398, 180, 403, 344, 405, 361, 413, 360, 362, 222, - 226, 363, 326, 364, 117, 365, 237, 328, 375, 312, - 409, 127, 397, 263, 0, 313, 329, 377, 124, 0, - 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, + 103, 14, 121, 120, 312, 261, 256, 263, 248, 240, + 324, 11, 12, 13, 119, 271, 272, 268, 301, 302, + 235, 321, 135, 344, 382, 148, 149, 15, 16, 417, + 91, 92, 142, 314, 130, 131, 147, 4, 236, 322, + 152, 112, 113, 299, 300, 114, 158, 417, 143, 315, + 239, 136, 137, 138, 1, 159, 33, 34, 35, 135, + 36, 37, 5, 317, 329, 7, 116, 314, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 266, 267, + 330, 103, 8, 339, 123, 407, 314, 124, 136, 137, + 138, 146, 150, 240, 338, 344, 381, 279, 340, 293, + 341, 343, 248, 385, 153, 314, 154, 423, 111, 349, + 425, 91, 92, 252, 297, 298, 276, 253, 430, 403, + 277, 125, 217, 305, 306, 313, 431, 273, 126, 274, + 127, 232, 15, 16, 239, 234, 325, 346, 391, 303, + 304, 314, 314, 11, 12, 13, 154, 244, 154, 377, + 133, 392, 128, 115, 404, 314, 217, 77, 78, 79, + 399, 33, 34, 35, 400, 36, 37, 38, 39, 40, + 157, 426, 134, 343, 151, 314, -19, 356, -20, 240, + 365, 366, 367, 368, 361, 362, 240, 243, 317, 291, + 363, 364, 357, 358, 359, 360, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 351, 217, 378, -114, 144, 12, 145, 237, + 239, 250, 325, 410, 232, 318, 251, 239, 254, 15, + 16, 255, 413, 136, 137, 138, 257, 240, 258, 262, + 154, 294, 295, 296, 369, 370, 259, 427, 217, 264, + 265, 269, -45, 308, 275, 402, 217, 280, 33, 34, + 35, 217, 36, 37, 38, 39, 40, 350, 121, 120, + 433, 307, 309, 310, 311, 130, -44, 327, 239, 328, + 334, 332, -39, 325, 379, 383, 384, 387, 396, 314, + 394, 397, 405, 398, 411, 408, 406, 409, 412, -49, + 420, 187, 117, 421, 118, 325, 416, 422, 325, 429, + 424, 372, 371, 375, 233, 319, 325, 432, 373, 376, + 229, 333, 244, 122, 325, 320, 374, 249, 217, 386, + 335, 132, 428, 347, 415, 388, 129, 393, 217, 0, + 0, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 217, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 210, 0, 0, 210, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, - 0, 0, 12, 13, 14, 15, 16, 17, 155, 156, - 157, 210, 158, 159, 160, 161, 162, 163, 164, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 0, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 165, 166, 167, 168, 169, 170, - 171, 0, 0, 172, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, + 0, 15, 16, 17, 18, 19, 20, 163, 164, 165, + 217, 166, 167, 168, 169, 170, 171, 172, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 0, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 173, 117, 75, 118, 174, 175, 176, + 177, 178, 0, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 73, 74, 75, 76, 0, 77, 0, 0, + 0, 0, 0, 76, 77, 78, 79, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 0, 85, 0, 0, 0, + 0, 0, 0, 0, 0, 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 174, 0, 0, 0, 0, 0, 175, - 176, 177, 178, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 179, 180, 181, 12, 13, 14, - 15, 16, 17, 155, 156, 157, 0, 158, 159, 160, - 161, 162, 163, 164, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 165, - 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, + 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, + 182, 183, 184, 185, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 186, 187, 188, 15, 16, + 17, 18, 19, 20, 163, 164, 165, 0, 166, 167, + 168, 169, 170, 171, 172, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 173, 117, 75, 118, 174, 175, 176, 177, 178, 0, + 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 73, 74, 75, - 76, 0, 77, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, + 76, 77, 78, 79, 0, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, - 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, - 0, 0, 0, 0, 175, 176, 177, 178, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, - 180, 262, 12, 13, 14, 15, 16, 17, 155, 156, - 157, 0, 158, 159, 160, 161, 162, 163, 164, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 0, 33, 34, 35, 36, 37, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 181, 0, 0, 0, 0, 0, 182, 183, 184, + 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 186, 187, 316, 15, 16, 17, 18, 19, + 20, 163, 164, 165, 0, 166, 167, 168, 169, 170, + 171, 172, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 165, 166, 167, 168, 169, 170, - 171, 0, 0, 172, 173, 0, 0, 0, 0, 0, + 68, 69, 70, 71, 72, 73, 74, 173, 117, 75, + 118, 174, 175, 176, 177, 178, 0, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 73, 74, 75, 76, 0, 77, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 77, 78, + 79, 0, 80, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, + 0, 0, 0, 0, 182, 183, 184, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, + 187, 395, 15, 16, 17, 18, 19, 20, 163, 164, + 165, 0, 166, 167, 168, 169, 170, 171, 172, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 0, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 173, 117, 75, 118, 174, 175, + 176, 177, 178, 0, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 76, 77, 78, 79, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 174, 0, 0, 0, 0, 0, 175, - 176, 177, 178, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 179, 180, 309, 12, 13, 14, - 15, 16, 17, 155, 156, 157, 0, 158, 159, 160, - 161, 162, 163, 164, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 165, - 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 73, 74, 75, - 76, 0, 77, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, - 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, - 0, 0, 0, 0, 175, 176, 177, 178, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, - 180, 340, 12, 13, 14, 15, 16, 17, 155, 156, - 157, 0, 158, 159, 160, 161, 162, 163, 164, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 0, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 165, 166, 167, 168, 169, 170, - 171, 0, 0, 172, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, + 0, 182, 183, 184, 185, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 186, 187, 15, 16, + 17, 18, 19, 20, 163, 164, 165, 0, 166, 167, + 168, 169, 170, 171, 172, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 173, 117, 75, 118, 174, 175, 176, 177, 178, 0, + 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 73, 74, 75, 76, 0, 77, 0, 0, + 76, 77, 78, 79, 0, 80, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 0, 85, 0, 0, 0, + 0, 0, 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 174, 0, 0, 0, 0, 0, 175, - 176, 177, 178, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 179, 180, 12, 13, 14, 15, - 16, 17, 155, 156, 157, 0, 158, 159, 160, 161, - 162, 163, 164, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 0, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 165, 166, - 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 73, 74, 75, 76, - 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 181, 0, 0, 0, 0, 0, 182, 183, 184, + 185, 15, 16, 17, 18, 19, 20, 0, 0, 0, + 0, 0, 186, 131, 0, 0, 0, 0, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 0, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 0, 117, 75, 118, 174, 175, 176, + 177, 178, 0, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, - 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 77, 78, 79, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 17, 18, 19, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 0, 0, 0, 0, 0, 87, 0, 88, 0, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 0, 181, 75, 0, 0, 0, 0, + 182, 183, 184, 185, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 186, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, - 0, 0, 0, 175, 176, 177, 178, 12, 13, 14, - 15, 16, 17, 0, 0, 0, 0, 0, 179, 126, - 0, 0, 0, 0, 18, 19, 20, 21, 22, 23, + 0, 0, 17, 18, 19, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 0, 0, 0, 0, 0, 87, 0, 88, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, - 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 73, 74, 75, - 76, 0, 77, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 83, 14, 15, 16, 17, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 0, 0, 0, 0, 0, 0, 84, - 0, 85, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 0, 72, 174, 0, - 0, 0, 0, 0, 175, 176, 177, 178, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, - 0, 0, 0, 0, 0, 74, 75, 76, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 247, 0, 0, + 0, 0, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 14, 15, 16, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 0, 0, 0, 0, 0, 0, 84, 0, 85, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 0, 72, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, - 0, 0, 74, 75, 76, 0, 0, 0, 0, 0, + 0, 17, 18, 19, 20, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, + 0, 0, 0, 0, 87, 0, 88, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 0, 117, 75, 118, 174, 175, 176, 177, 178, + 0, 0, 179, 180, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, + 0, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 14, 15, 16, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 0, 0, 0, - 0, 0, 0, 84, 0, 85, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 0, 166, 167, 168, 169, 170, 171, 0, 0, 172, - 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 321, 0, 0, 0, 74, - 75, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, - 0, 0, 0, 0, 0, 175, 176, 177, 178, 12, - 13, 14, 15, 16, 17, 0, 0, 0, 0, 0, - 253, 0, 0, 0, 0, 0, 18, 19, 20, 21, + 0, 0, 181, 0, 0, 0, 0, 0, 182, 183, + 184, 185, 15, 16, 17, 18, 19, 20, 0, 0, + 0, 0, 0, 260, 0, 0, 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 0, 33, 34, 35, 36, 37, 38, 39, 40, + 32, 33, 34, 35, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 0, 166, 167, 168, 169, 170, 171, 0, 0, - 172, 173, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, - 74, 75, 76, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, + 71, 72, 73, 74, 0, 117, 75, 118, 174, 175, + 176, 177, 178, 0, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 342, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 84, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 14, 15, 16, 17, 0, - 174, 0, 0, 0, 0, 0, 175, 176, 177, 178, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 0, 166, 167, 168, 169, - 170, 171, 0, 0, 172, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 74, 75, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 18, 19, 20, 0, 181, 0, 0, 0, 0, + 0, 182, 183, 184, 185, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 0, 117, 75, 118, 174, 175, 176, 177, 178, 0, + 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 84, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, - 15, 16, 17, 0, 174, 0, 0, 231, 0, 0, - 175, 176, 177, 178, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, - 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, + 0, 0, 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 74, 75, - 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, + 0, 181, 0, 0, 238, 0, 0, 182, 183, 184, + 185, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 0, 117, 75, 118, + 174, 175, 176, 177, 178, 0, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, - 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 14, 15, 16, 17, 0, 174, 0, - 0, 316, 0, 0, 175, 176, 177, 178, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 0, 166, 167, 168, 169, 170, 171, - 0, 0, 172, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 74, 75, 76, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, + 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 18, 19, 20, 0, 181, 0, 0, + 323, 0, 0, 182, 183, 184, 185, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 0, 117, 75, 118, 174, 175, 176, 177, + 178, 0, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 84, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 14, 15, 16, - 17, 0, 174, 0, 0, 369, 0, 0, 175, 176, - 177, 178, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 0, 166, 167, - 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 74, 75, 76, 0, + 0, 0, 0, 0, 87, 0, 88, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, + 19, 20, 0, 181, 0, 0, 380, 0, 0, 182, + 183, 184, 185, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 0, 117, + 75, 118, 174, 175, 176, 177, 178, 0, 0, 179, + 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 84, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 15, 16, 17, 0, 174, 0, 0, 0, - 0, 0, 175, 176, 177, 178, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 38, 39, 40, + 0, 0, 0, 0, 17, 18, 19, 20, 0, 181, + 0, 0, 0, 0, 0, 182, 183, 184, 185, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 271, 0, 166, 167, 168, 169, 170, 171, 0, 0, - 172, 173, 0, 0, 0, 0, 0, 0, 0, 0, + 71, 72, 73, 278, 0, 117, 75, 118, 174, 175, + 176, 177, 178, 0, 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 74, 75, 76, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 84, 0, 85, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 12, 13, 14, 15, 16, 17, 0, - 174, 0, 0, 0, 0, 0, 175, 176, 177, 178, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 0, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 18, 19, 20, 0, 181, 0, 0, 0, 0, + 0, 182, 183, 184, 185, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 401, + 0, 117, 75, 118, 174, 175, 176, 177, 178, 0, + 0, 179, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 73, 74, 75, 76, 0, 77, 0, - 0, 0, 0, 0, 0, 0, 78, 79, 80, 81, - 82, 83, 14, 15, 16, 17, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 0, - 0, 0, 0, 0, 0, 84, 0, 85, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 87, 0, 88, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 16, 17, 18, 19, 20, + 0, 181, 0, 0, 0, 0, 0, 182, 183, 184, + 185, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 0, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 0, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 76, 77, 78, 79, + 0, 80, 0, 0, 0, 0, 0, 0, 0, 81, + 82, 83, 84, 85, 86, 17, 18, 19, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 0, 0, 0, 0, 0, 0, 87, 0, + 88, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 0, 343, 14, 15, 16, 17, 171, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 74, 75, 76, 0, 0, 0, 0, 0, 0, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 0, 72, 14, 15, 16, 17, - 0, 0, 84, 0, 85, 0, 0, 0, 0, 0, - 0, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 74, 75, 76, 0, 0, 0, 0, - 0, 0, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 0, 72, 0, 0, - 0, 0, 0, 0, 84, 0, 85, 0, 0, 0, + 70, 71, 72, 73, 74, 0, 0, 75, 17, 18, + 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 0, 77, 78, 79, 0, + 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 87, 0, 88, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 84, 0, 85 + 87, 0, 88 }; static const yytype_int16 yycheck[] = { - 9, 73, 73, 157, 143, 161, 76, 163, 143, 91, - 4, 76, 229, 86, 87, 258, 190, 148, 174, 4, - 9, 78, 9, 109, 96, 97, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 196, 172, 173, 33, - 34, 35, 194, 115, 196, 0, 3, 4, 33, 34, - 35, 199, 199, 199, 214, 199, 230, 113, 193, 199, - 110, 215, 214, 383, 84, 85, 76, 215, 215, 215, - 199, 215, 104, 213, 394, 32, 33, 34, 87, 36, - 37, 38, 39, 40, 213, 117, 112, 330, 195, 98, - 229, 113, 199, 194, 229, 251, 270, 314, 87, 255, - 87, 113, 258, 195, 113, 322, 237, 199, 113, 263, - 266, 285, 33, 34, 195, 113, 37, 126, 199, 76, - 315, 195, 104, 105, 106, 199, 135, 195, 76, 194, - 212, 199, 195, 307, 207, 208, 199, 146, 113, 148, - 195, 315, 33, 34, 35, 199, 216, 214, 157, 196, - 306, 368, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 180, 215, 216, 330, 314, 196, 372, 198, 314, - 204, 205, 206, 322, 200, 201, 76, 322, 294, 295, - 296, 297, 387, 82, 83, 390, 88, 89, 372, 290, - 291, 195, 216, 398, 292, 293, 215, 76, 298, 299, - 405, 385, 76, 387, 3, 4, 390, 226, 113, 76, - 376, 194, 215, 214, 398, 215, 380, 215, 237, 368, - 194, 405, 215, 368, 194, 213, 194, 393, 3, 4, - 194, 250, 195, 32, 33, 34, 209, 36, 37, 258, - 211, 210, 90, 92, 263, 194, 410, 76, 196, 215, - 197, 78, 75, 335, 335, 195, 197, 32, 33, 34, - 196, 36, 37, 38, 39, 40, 194, 199, 214, 76, - 195, 197, 194, 197, 197, 214, 214, 195, 215, 12, - 214, 216, 197, 267, 214, 301, 215, 300, 302, 129, - 136, 303, 246, 304, 77, 305, 146, 250, 323, 226, - 394, 89, 381, 180, -1, 226, 250, 330, 87, -1, - -1, 330, -1, -1, -1, -1, -1, -1, -1, -1, + 9, 8, 76, 76, 93, 169, 165, 171, 155, 151, + 235, 76, 77, 78, 76, 86, 87, 181, 88, 89, + 198, 198, 4, 265, 322, 99, 100, 3, 4, 394, + 9, 9, 201, 201, 217, 218, 98, 80, 216, 216, + 107, 33, 34, 84, 85, 37, 120, 412, 217, 217, + 151, 33, 34, 35, 111, 122, 32, 33, 34, 4, + 36, 37, 0, 222, 201, 115, 73, 201, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 179, 180, + 217, 90, 112, 217, 115, 383, 201, 115, 33, 34, + 35, 98, 101, 235, 258, 337, 321, 197, 262, 200, + 215, 265, 249, 328, 111, 201, 115, 405, 114, 273, + 408, 90, 90, 197, 202, 203, 197, 201, 416, 215, + 201, 115, 131, 90, 91, 214, 424, 198, 115, 200, + 115, 140, 3, 4, 235, 142, 236, 197, 197, 209, + 210, 201, 201, 76, 77, 78, 155, 154, 157, 313, + 197, 197, 196, 218, 379, 201, 165, 106, 107, 108, + 197, 32, 33, 34, 201, 36, 37, 38, 39, 40, + 218, 197, 201, 337, 198, 201, 196, 277, 196, 321, + 301, 302, 303, 304, 297, 298, 328, 115, 347, 216, + 299, 300, 292, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 274, 222, 314, 197, 76, 77, 78, 196, + 321, 217, 322, 387, 233, 232, 216, 328, 217, 3, + 4, 217, 391, 33, 34, 35, 196, 379, 196, 196, + 249, 206, 207, 208, 305, 306, 217, 411, 257, 215, + 196, 219, 196, 212, 197, 355, 265, 196, 32, 33, + 34, 270, 36, 37, 38, 39, 40, 274, 342, 342, + 429, 211, 213, 92, 94, 217, 196, 199, 379, 198, + 75, 80, 197, 383, 198, 216, 199, 196, 199, 201, + 197, 196, 216, 197, 217, 216, 199, 199, 197, 197, + 400, 218, 76, 403, 78, 405, 216, 199, 408, 12, + 216, 308, 307, 311, 141, 233, 416, 217, 309, 312, + 134, 253, 329, 80, 424, 233, 310, 157, 337, 329, + 257, 92, 412, 270, 392, 337, 90, 344, 347, -1, + -1, 257, -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, 391, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 380, -1, -1, 383, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 410, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, -1, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, -1, -1, 84, 85, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 103, 104, 105, 106, -1, 108, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 121, -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, 155, -1, 157, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 412, -1, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 429, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, -1, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 194, -1, -1, -1, -1, -1, 200, - 201, 202, 203, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 215, 216, 217, 3, 4, 5, - 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, -1, -1, 84, 85, + -1, 123, -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, 103, 104, 105, - 106, -1, 108, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, - -1, 157, -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, 194, -1, - -1, -1, -1, -1, 200, 201, 202, 203, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, - 216, 217, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, -1, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, -1, -1, 84, 85, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 196, -1, -1, -1, -1, -1, + 202, 203, 204, 205, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 217, 218, 219, 3, 4, + 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 103, 104, 105, 106, -1, 108, -1, -1, + 105, 106, 107, 108, -1, 110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 121, -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, 155, -1, 157, -1, -1, -1, + -1, -1, 157, -1, 159, -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, 194, -1, -1, -1, -1, -1, 200, - 201, 202, 203, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 215, 216, 217, 3, 4, 5, - 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, -1, -1, 84, 85, + -1, 196, -1, -1, -1, -1, -1, 202, 203, 204, + 205, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 217, 218, 219, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, -1, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, - 106, -1, 108, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, + 108, -1, 110, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -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, 155, - -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, + -1, 159, -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, 194, -1, - -1, -1, -1, -1, 200, 201, 202, 203, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, - 216, 217, 3, 4, 5, 6, 7, 8, 9, 10, + -1, -1, -1, -1, -1, -1, -1, -1, 196, -1, + -1, -1, -1, -1, 202, 203, 204, 205, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 217, + 218, 219, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, 36, 37, 38, 39, 40, @@ -1657,295 +1657,312 @@ static const yytype_int16 yycheck[] = 51, 52, 53, 54, 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, -1, -1, 84, 85, -1, -1, -1, -1, -1, + 81, 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 103, 104, 105, 106, -1, 108, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -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, 155, -1, 157, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 157, -1, 159, -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, 194, -1, -1, -1, -1, -1, 200, - 201, 202, 203, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 215, 216, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, -1, -1, 84, 85, -1, + -1, -1, -1, -1, -1, 196, -1, -1, -1, -1, + -1, 202, 203, 204, 205, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 217, 218, 3, 4, + 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, - -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, + 105, 106, 107, 108, -1, 110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -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, 155, -1, - 157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 194, -1, -1, - -1, -1, -1, 200, 201, 202, 203, 3, 4, 5, - 6, 7, 8, -1, -1, -1, -1, -1, 215, 216, - -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - 76, 77, 78, 79, 80, 81, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, - 106, -1, 108, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 121, 5, 6, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, -1, -1, -1, -1, -1, -1, 155, - -1, 157, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, -1, 76, 194, -1, - -1, -1, -1, -1, 200, 201, 202, 203, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, - -1, -1, -1, -1, -1, 104, 105, 106, -1, -1, + -1, 196, -1, -1, -1, -1, -1, 202, 203, 204, + 205, 3, 4, 5, 6, 7, 8, -1, -1, -1, + -1, -1, 217, 218, -1, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, -1, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, -1, 76, 77, 78, 79, 80, 81, + 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 105, 106, 107, 108, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5, 6, 7, 8, -1, -1, -1, + -1, 123, -1, 5, 6, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - -1, -1, -1, -1, -1, -1, 155, -1, 157, 41, + -1, -1, -1, -1, -1, 157, -1, 159, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, -1, 76, -1, -1, -1, -1, -1, + 72, 73, 74, -1, 196, 77, -1, -1, -1, -1, + 202, 203, 204, 205, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 217, -1, -1, -1, -1, + -1, -1, -1, -1, 106, 107, 108, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5, 6, 7, 8, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, + -1, -1, -1, -1, -1, 157, -1, 159, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, -1, 77, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 219, -1, -1, + -1, -1, -1, 106, 107, 108, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5, 6, 7, 8, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, + -1, -1, -1, -1, 157, -1, 159, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, + -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, + -1, -1, 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 217, -1, - -1, -1, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 5, 6, 7, 8, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 157, -1, 159, -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, 196, -1, -1, -1, -1, -1, 202, 203, + 204, 205, 3, 4, 5, 6, 7, 8, -1, -1, + -1, -1, -1, 217, -1, -1, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, -1, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, 76, 77, 78, 79, 80, + 81, 82, 83, -1, -1, 86, 87, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -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, 157, -1, 159, -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, + 5, 6, 7, 8, -1, 196, -1, -1, -1, -1, + -1, 202, 203, 204, 205, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, - -1, -1, -1, 155, -1, 157, 41, 42, 43, 44, + -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - -1, 76, 77, 78, 79, 80, 81, -1, -1, 84, - 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 217, -1, -1, -1, 104, - 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 106, 107, 108, -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, - 155, -1, 157, -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, 194, - -1, -1, -1, -1, -1, 200, 201, 202, 203, 3, - 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, - 215, -1, -1, -1, -1, -1, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, -1, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, 76, 77, 78, 79, 80, 81, -1, -1, - 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, - 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 121, -1, -1, + -1, -1, 157, -1, 159, -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, 5, 6, 7, 8, + -1, 196, -1, -1, 199, -1, -1, 202, 203, 204, + 205, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, 76, 77, 78, + 79, 80, 81, 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 155, -1, 157, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 106, 107, 108, -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, 5, 6, 7, 8, -1, - 194, -1, -1, -1, -1, -1, 200, 201, 202, 203, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, -1, 76, 77, 78, 79, - 80, 81, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, + 159, -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, 5, 6, 7, 8, -1, 196, -1, -1, + 199, -1, -1, 202, 203, 204, 205, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, 76, 77, 78, 79, 80, 81, 82, + 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 155, -1, 157, -1, -1, + -1, -1, -1, 106, 107, 108, -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, 5, - 6, 7, 8, -1, 194, -1, -1, 197, -1, -1, - 200, 201, 202, 203, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - 76, 77, 78, 79, 80, 81, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 104, 105, - 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 157, -1, 159, -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, 155, - -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5, 6, + 7, 8, -1, 196, -1, -1, 199, -1, -1, 202, + 203, 204, 205, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, 76, + 77, 78, 79, 80, 81, 82, 83, -1, -1, 86, + 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, + 107, 108, -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, 5, 6, 7, 8, -1, 194, -1, - -1, 197, -1, -1, 200, 201, 202, 203, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, -1, 76, 77, 78, 79, 80, 81, - -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 157, -1, 159, -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, 5, 6, 7, 8, -1, 196, + -1, -1, -1, -1, -1, 202, 203, 204, 205, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, 76, 77, 78, 79, 80, + 81, 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 155, -1, 157, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 106, 107, 108, -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, 5, 6, 7, - 8, -1, 194, -1, -1, 197, -1, -1, 200, 201, - 202, 203, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, 76, 77, - 78, 79, 80, 81, -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 157, -1, 159, -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, 155, -1, 157, + 5, 6, 7, 8, -1, 196, -1, -1, -1, -1, + -1, 202, 203, 204, 205, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 106, 107, 108, -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, 5, 6, 7, 8, -1, 194, -1, -1, -1, - -1, -1, 200, 201, 202, 203, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, 76, 77, 78, 79, 80, 81, -1, -1, - 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 157, -1, 159, -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, 3, 4, 5, 6, 7, 8, + -1, 196, -1, -1, -1, -1, -1, 202, 203, 204, + 205, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, -1, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 155, -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + -1, 110, -1, -1, -1, -1, -1, -1, -1, 118, + 119, 120, 121, 122, 123, 5, 6, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, -1, - 194, -1, -1, -1, -1, -1, 200, 201, 202, 203, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, -1, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 30, 31, -1, -1, -1, -1, -1, -1, 157, -1, + 159, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, -1, 76, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 70, 71, 72, 73, 74, -1, -1, 77, 5, 6, + 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, -1, 106, 107, 108, -1, + -1, -1, -1, -1, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, + 77, -1, -1, -1, -1, -1, -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 103, 104, 105, 106, -1, 108, -1, - -1, -1, -1, -1, -1, -1, 116, 117, 118, 119, - 120, 121, 5, 6, 7, 8, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, - -1, -1, -1, -1, -1, 155, -1, 157, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, 76, 5, 6, 7, 8, 81, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 104, 105, 106, -1, -1, -1, -1, -1, -1, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, -1, 76, 5, 6, 7, 8, - -1, -1, 155, -1, 157, -1, -1, -1, -1, -1, - -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 104, 105, 106, -1, -1, -1, -1, - -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, -1, 76, -1, -1, - -1, -1, -1, -1, 155, -1, 157, -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, -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, 155, -1, 157 + 157, -1, 159 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 109, 219, 221, 78, 0, 223, 113, 110, 220, - 224, 76, 3, 4, 5, 6, 7, 8, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 76, 103, 104, 105, 106, 108, 116, 117, - 118, 119, 120, 121, 155, 157, 222, 225, 255, 256, - 257, 258, 259, 264, 265, 266, 267, 270, 272, 273, - 274, 275, 276, 277, 278, 279, 303, 304, 112, 33, - 34, 37, 76, 216, 76, 270, 273, 278, 113, 113, - 113, 113, 113, 194, 303, 215, 216, 290, 195, 199, - 4, 33, 34, 35, 261, 262, 271, 199, 215, 76, - 273, 273, 274, 196, 275, 76, 216, 274, 280, 281, - 273, 275, 76, 268, 269, 9, 10, 11, 13, 14, - 15, 16, 17, 18, 19, 75, 76, 77, 78, 79, - 80, 81, 84, 85, 194, 200, 201, 202, 203, 215, - 216, 217, 226, 227, 228, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 253, 255, 256, - 274, 285, 286, 287, 288, 291, 292, 293, 296, 297, - 298, 302, 261, 260, 263, 274, 262, 76, 194, 196, - 214, 197, 237, 250, 254, 274, 113, 280, 76, 282, - 283, 217, 281, 215, 214, 195, 199, 215, 215, 286, - 194, 194, 215, 215, 253, 194, 253, 213, 194, 237, - 237, 253, 217, 291, 84, 85, 196, 198, 195, 195, - 199, 74, 251, 194, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 214, 252, 237, 204, 205, 206, - 200, 201, 82, 83, 86, 87, 207, 208, 88, 89, - 209, 210, 211, 90, 92, 91, 212, 199, 215, 217, - 286, 76, 260, 263, 196, 214, 197, 254, 251, 284, - 197, 217, 196, 199, 215, 78, 269, 75, 285, 292, - 299, 253, 215, 253, 213, 103, 253, 266, 295, 195, - 217, 229, 253, 76, 232, 251, 251, 237, 237, 237, - 239, 239, 240, 240, 241, 241, 241, 241, 242, 242, - 243, 244, 245, 246, 247, 248, 253, 251, 196, 197, - 254, 284, 214, 197, 254, 283, 194, 295, 300, 301, - 195, 195, 76, 195, 197, 213, 254, 214, 197, 284, - 214, 197, 253, 215, 195, 286, 294, 288, 214, 287, - 289, 290, 251, 197, 284, 214, 284, 195, 253, 289, - 12, 284, 284, 215, 286 + 0, 111, 221, 223, 80, 0, 225, 115, 112, 222, + 227, 76, 77, 78, 226, 3, 4, 5, 6, 7, + 8, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 77, 105, 106, 107, 108, + 110, 118, 119, 120, 121, 122, 123, 157, 159, 224, + 228, 262, 263, 264, 265, 266, 271, 272, 273, 274, + 277, 279, 280, 281, 282, 283, 284, 285, 286, 311, + 312, 114, 33, 34, 37, 218, 226, 76, 78, 229, + 277, 280, 285, 115, 115, 115, 115, 115, 196, 311, + 217, 218, 298, 197, 201, 4, 33, 34, 35, 268, + 269, 278, 201, 217, 76, 78, 226, 229, 280, 280, + 281, 198, 282, 226, 281, 287, 288, 218, 280, 282, + 226, 275, 276, 9, 10, 11, 13, 14, 15, 16, + 17, 18, 19, 75, 79, 80, 81, 82, 83, 86, + 87, 196, 202, 203, 204, 205, 217, 218, 219, 229, + 230, 231, 233, 234, 235, 236, 237, 238, 239, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 260, 262, 263, 281, 292, 293, + 294, 295, 299, 300, 301, 304, 305, 306, 310, 268, + 267, 270, 281, 269, 226, 198, 216, 196, 199, 244, + 257, 261, 281, 115, 226, 289, 290, 219, 288, 287, + 217, 216, 197, 201, 217, 217, 293, 196, 196, 217, + 217, 260, 196, 260, 215, 196, 244, 244, 260, 219, + 296, 86, 87, 198, 200, 197, 197, 201, 74, 258, + 196, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 216, 259, 244, 206, 207, 208, 202, 203, 84, + 85, 88, 89, 209, 210, 90, 91, 211, 212, 213, + 92, 94, 93, 214, 201, 217, 219, 293, 226, 267, + 270, 198, 216, 199, 261, 258, 291, 199, 198, 201, + 217, 219, 80, 276, 75, 292, 300, 307, 260, 217, + 260, 215, 105, 260, 273, 303, 197, 299, 232, 260, + 226, 229, 240, 241, 242, 243, 258, 258, 244, 244, + 244, 246, 246, 247, 247, 248, 248, 248, 248, 249, + 249, 250, 251, 252, 253, 254, 255, 260, 258, 198, + 199, 261, 291, 216, 199, 261, 290, 196, 303, 308, + 309, 197, 197, 226, 197, 219, 199, 196, 197, 197, + 201, 74, 258, 215, 261, 216, 199, 291, 216, 199, + 260, 217, 197, 293, 302, 295, 216, 294, 297, 298, + 258, 258, 199, 291, 216, 291, 197, 260, 297, 12, + 291, 291, 217, 293 }; #define yyerrok (yyerrstatus = 0) @@ -2636,7 +2653,7 @@ YYLTYPE yylloc; } /* Line 1251 of yacc.c */ -#line 2640 "glsl_parser.cpp" +#line 2657 "glsl_parser.cpp" yylsp[0] = yylloc; goto yysetstate; @@ -2824,43 +2841,69 @@ yyreduce: case 2: /* Line 1464 of yacc.c */ -#line 213 "glsl_parser.ypp" +#line 218 "glsl_parser.ypp" { _mesa_glsl_initialize_types(state); ;} break; - case 5: + case 3: /* Line 1464 of yacc.c */ #line 222 "glsl_parser.ypp" { + delete state->symbols; + state->symbols = new(ralloc_parent(state)) glsl_symbol_table; + _mesa_glsl_initialize_types(state); + ;} + break; + + case 5: + +/* Line 1464 of yacc.c */ +#line 232 "glsl_parser.ypp" + { + bool supported = false; + switch ((yyvsp[(2) - (3)].n)) { case 100: state->es_shader = true; + supported = state->Const.GLSL_100ES; + break; case 110: + supported = state->Const.GLSL_110; + break; case 120: + supported = state->Const.GLSL_120; + break; case 130: - /* FINISHME: Check against implementation support versions. */ - state->language_version = (yyvsp[(2) - (3)].n); - state->version_string = - talloc_asprintf(state, "GLSL%s %d.%02d", - state->es_shader ? " ES" : "", - state->language_version / 100, - state->language_version % 100); + supported = state->Const.GLSL_130; break; default: - _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "Shading language version" - "%u is not supported\n", (yyvsp[(2) - (3)].n)); + supported = false; break; } + + state->language_version = (yyvsp[(2) - (3)].n); + state->version_string = + ralloc_asprintf(state, "GLSL%s %d.%02d", + state->es_shader ? " ES" : "", + state->language_version / 100, + state->language_version % 100); + + if (!supported) { + _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "%s is not supported. " + "Supported versions are: %s\n", + state->version_string, + state->supported_version_string); + } ;} break; case 10: /* Line 1464 of yacc.c */ -#line 251 "glsl_parser.ypp" +#line 276 "glsl_parser.ypp" { if (state->language_version < 120) { _mesa_glsl_warning(& (yylsp[(1) - (2)]), state, @@ -2872,10 +2915,10 @@ yyreduce: ;} break; - case 13: + case 16: /* Line 1464 of yacc.c */ -#line 269 "glsl_parser.ypp" +#line 300 "glsl_parser.ypp" { if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) { YYERROR; @@ -2883,10 +2926,10 @@ yyreduce: ;} break; - case 14: + case 17: /* Line 1464 of yacc.c */ -#line 278 "glsl_parser.ypp" +#line 309 "glsl_parser.ypp" { /* FINISHME: The NULL test is required because pragmas are set to * FINISHME: NULL. (See production rule for external_declaration.) @@ -2896,10 +2939,10 @@ yyreduce: ;} break; - case 15: + case 18: /* Line 1464 of yacc.c */ -#line 286 "glsl_parser.ypp" +#line 317 "glsl_parser.ypp" { /* FINISHME: The NULL test is required because pragmas are set to * FINISHME: NULL. (See production rule for external_declaration.) @@ -2909,10 +2952,10 @@ yyreduce: ;} break; - case 17: + case 21: /* Line 1464 of yacc.c */ -#line 301 "glsl_parser.ypp" +#line 333 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL); @@ -2921,10 +2964,10 @@ yyreduce: ;} break; - case 18: + case 22: /* Line 1464 of yacc.c */ -#line 308 "glsl_parser.ypp" +#line 340 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL); @@ -2933,10 +2976,10 @@ yyreduce: ;} break; - case 19: + case 23: /* Line 1464 of yacc.c */ -#line 315 "glsl_parser.ypp" +#line 347 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL); @@ -2945,10 +2988,10 @@ yyreduce: ;} break; - case 20: + case 24: /* Line 1464 of yacc.c */ -#line 322 "glsl_parser.ypp" +#line 354 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL); @@ -2957,10 +3000,10 @@ yyreduce: ;} break; - case 21: + case 25: /* Line 1464 of yacc.c */ -#line 329 "glsl_parser.ypp" +#line 361 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL); @@ -2969,19 +3012,19 @@ yyreduce: ;} break; - case 22: + case 26: /* Line 1464 of yacc.c */ -#line 336 "glsl_parser.ypp" +#line 368 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(2) - (3)].expression); ;} break; - case 24: + case 28: /* Line 1464 of yacc.c */ -#line 344 "glsl_parser.ypp" +#line 376 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL); @@ -2989,19 +3032,19 @@ yyreduce: ;} break; - case 25: + case 29: /* Line 1464 of yacc.c */ -#line 350 "glsl_parser.ypp" +#line 382 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(1) - (1)].expression); ;} break; - case 26: + case 30: /* Line 1464 of yacc.c */ -#line 354 "glsl_parser.ypp" +#line 386 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL); @@ -3010,10 +3053,10 @@ yyreduce: ;} break; - case 27: + case 31: /* Line 1464 of yacc.c */ -#line 361 "glsl_parser.ypp" +#line 393 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL); @@ -3021,10 +3064,10 @@ yyreduce: ;} break; - case 28: + case 32: /* Line 1464 of yacc.c */ -#line 367 "glsl_parser.ypp" +#line 399 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL); @@ -3032,10 +3075,10 @@ yyreduce: ;} break; - case 32: + case 36: /* Line 1464 of yacc.c */ -#line 385 "glsl_parser.ypp" +#line 417 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); @@ -3043,10 +3086,10 @@ yyreduce: ;} break; - case 37: + case 41: /* Line 1464 of yacc.c */ -#line 404 "glsl_parser.ypp" +#line 436 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(1) - (2)].expression); (yyval.expression)->set_location(yylloc); @@ -3054,10 +3097,10 @@ yyreduce: ;} break; - case 38: + case 42: /* Line 1464 of yacc.c */ -#line 410 "glsl_parser.ypp" +#line 442 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(1) - (3)].expression); (yyval.expression)->set_location(yylloc); @@ -3065,10 +3108,10 @@ yyreduce: ;} break; - case 40: + case 44: /* Line 1464 of yacc.c */ -#line 426 "glsl_parser.ypp" +#line 458 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier)); @@ -3076,10 +3119,10 @@ yyreduce: ;} break; - case 41: + case 45: /* Line 1464 of yacc.c */ -#line 432 "glsl_parser.ypp" +#line 464 "glsl_parser.ypp" { void *ctx = state; ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier)); @@ -3088,10 +3131,10 @@ yyreduce: ;} break; - case 42: + case 46: /* Line 1464 of yacc.c */ -#line 439 "glsl_parser.ypp" +#line 471 "glsl_parser.ypp" { void *ctx = state; ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier)); @@ -3100,10 +3143,44 @@ yyreduce: ;} break; - case 44: + case 51: /* Line 1464 of yacc.c */ -#line 451 "glsl_parser.ypp" +#line 491 "glsl_parser.ypp" + { + (yyval.expression) = (yyvsp[(1) - (2)].expression); + (yyval.expression)->set_location(yylloc); + (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].expression)->link); + ;} + break; + + case 52: + +/* Line 1464 of yacc.c */ +#line 497 "glsl_parser.ypp" + { + (yyval.expression) = (yyvsp[(1) - (3)].expression); + (yyval.expression)->set_location(yylloc); + (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link); + ;} + break; + + case 53: + +/* Line 1464 of yacc.c */ +#line 509 "glsl_parser.ypp" + { + void *ctx = state; + ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (2)].identifier)); + (yyval.expression) = new(ctx) ast_function_expression(callee); + (yyval.expression)->set_location(yylloc); + ;} + break; + + case 55: + +/* Line 1464 of yacc.c */ +#line 521 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL); @@ -3111,10 +3188,10 @@ yyreduce: ;} break; - case 45: + case 56: /* Line 1464 of yacc.c */ -#line 457 "glsl_parser.ypp" +#line 527 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL); @@ -3122,10 +3199,10 @@ yyreduce: ;} break; - case 46: + case 57: /* Line 1464 of yacc.c */ -#line 463 "glsl_parser.ypp" +#line 533 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL); @@ -3133,38 +3210,38 @@ yyreduce: ;} break; - case 47: + case 58: /* Line 1464 of yacc.c */ -#line 472 "glsl_parser.ypp" +#line 542 "glsl_parser.ypp" { (yyval.n) = ast_plus; ;} break; - case 48: + case 59: /* Line 1464 of yacc.c */ -#line 473 "glsl_parser.ypp" +#line 543 "glsl_parser.ypp" { (yyval.n) = ast_neg; ;} break; - case 49: + case 60: /* Line 1464 of yacc.c */ -#line 474 "glsl_parser.ypp" +#line 544 "glsl_parser.ypp" { (yyval.n) = ast_logic_not; ;} break; - case 50: + case 61: /* Line 1464 of yacc.c */ -#line 475 "glsl_parser.ypp" +#line 545 "glsl_parser.ypp" { (yyval.n) = ast_bit_not; ;} break; - case 52: + case 63: /* Line 1464 of yacc.c */ -#line 481 "glsl_parser.ypp" +#line 551 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3172,10 +3249,10 @@ yyreduce: ;} break; - case 53: + case 64: /* Line 1464 of yacc.c */ -#line 487 "glsl_parser.ypp" +#line 557 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3183,10 +3260,10 @@ yyreduce: ;} break; - case 54: + case 65: /* Line 1464 of yacc.c */ -#line 493 "glsl_parser.ypp" +#line 563 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3194,10 +3271,10 @@ yyreduce: ;} break; - case 56: + case 67: /* Line 1464 of yacc.c */ -#line 503 "glsl_parser.ypp" +#line 573 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3205,10 +3282,10 @@ yyreduce: ;} break; - case 57: + case 68: /* Line 1464 of yacc.c */ -#line 509 "glsl_parser.ypp" +#line 579 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3216,10 +3293,10 @@ yyreduce: ;} break; - case 59: + case 70: /* Line 1464 of yacc.c */ -#line 519 "glsl_parser.ypp" +#line 589 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3227,10 +3304,10 @@ yyreduce: ;} break; - case 60: + case 71: /* Line 1464 of yacc.c */ -#line 525 "glsl_parser.ypp" +#line 595 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3238,10 +3315,10 @@ yyreduce: ;} break; - case 62: + case 73: /* Line 1464 of yacc.c */ -#line 535 "glsl_parser.ypp" +#line 605 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3249,10 +3326,10 @@ yyreduce: ;} break; - case 63: + case 74: /* Line 1464 of yacc.c */ -#line 541 "glsl_parser.ypp" +#line 611 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3260,10 +3337,10 @@ yyreduce: ;} break; - case 64: + case 75: /* Line 1464 of yacc.c */ -#line 547 "glsl_parser.ypp" +#line 617 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3271,10 +3348,10 @@ yyreduce: ;} break; - case 65: + case 76: /* Line 1464 of yacc.c */ -#line 553 "glsl_parser.ypp" +#line 623 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3282,10 +3359,10 @@ yyreduce: ;} break; - case 67: + case 78: /* Line 1464 of yacc.c */ -#line 563 "glsl_parser.ypp" +#line 633 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3293,10 +3370,10 @@ yyreduce: ;} break; - case 68: + case 79: /* Line 1464 of yacc.c */ -#line 569 "glsl_parser.ypp" +#line 639 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3304,10 +3381,10 @@ yyreduce: ;} break; - case 70: + case 81: /* Line 1464 of yacc.c */ -#line 579 "glsl_parser.ypp" +#line 649 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3315,10 +3392,10 @@ yyreduce: ;} break; - case 72: + case 83: /* Line 1464 of yacc.c */ -#line 589 "glsl_parser.ypp" +#line 659 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3326,10 +3403,10 @@ yyreduce: ;} break; - case 74: + case 85: /* Line 1464 of yacc.c */ -#line 599 "glsl_parser.ypp" +#line 669 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3337,10 +3414,10 @@ yyreduce: ;} break; - case 76: + case 87: /* Line 1464 of yacc.c */ -#line 609 "glsl_parser.ypp" +#line 679 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3348,10 +3425,10 @@ yyreduce: ;} break; - case 78: + case 89: /* Line 1464 of yacc.c */ -#line 619 "glsl_parser.ypp" +#line 689 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3359,10 +3436,10 @@ yyreduce: ;} break; - case 80: + case 91: /* Line 1464 of yacc.c */ -#line 629 "glsl_parser.ypp" +#line 699 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3370,10 +3447,10 @@ yyreduce: ;} break; - case 82: + case 93: /* Line 1464 of yacc.c */ -#line 639 "glsl_parser.ypp" +#line 709 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].expression)); @@ -3381,10 +3458,10 @@ yyreduce: ;} break; - case 84: + case 95: /* Line 1464 of yacc.c */ -#line 649 "glsl_parser.ypp" +#line 719 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); @@ -3392,96 +3469,96 @@ yyreduce: ;} break; - case 85: + case 96: /* Line 1464 of yacc.c */ -#line 657 "glsl_parser.ypp" +#line 727 "glsl_parser.ypp" { (yyval.n) = ast_assign; ;} break; - case 86: + case 97: /* Line 1464 of yacc.c */ -#line 658 "glsl_parser.ypp" +#line 728 "glsl_parser.ypp" { (yyval.n) = ast_mul_assign; ;} break; - case 87: + case 98: /* Line 1464 of yacc.c */ -#line 659 "glsl_parser.ypp" +#line 729 "glsl_parser.ypp" { (yyval.n) = ast_div_assign; ;} break; - case 88: + case 99: /* Line 1464 of yacc.c */ -#line 660 "glsl_parser.ypp" +#line 730 "glsl_parser.ypp" { (yyval.n) = ast_mod_assign; ;} break; - case 89: + case 100: /* Line 1464 of yacc.c */ -#line 661 "glsl_parser.ypp" +#line 731 "glsl_parser.ypp" { (yyval.n) = ast_add_assign; ;} break; - case 90: + case 101: /* Line 1464 of yacc.c */ -#line 662 "glsl_parser.ypp" +#line 732 "glsl_parser.ypp" { (yyval.n) = ast_sub_assign; ;} break; - case 91: + case 102: /* Line 1464 of yacc.c */ -#line 663 "glsl_parser.ypp" +#line 733 "glsl_parser.ypp" { (yyval.n) = ast_ls_assign; ;} break; - case 92: + case 103: /* Line 1464 of yacc.c */ -#line 664 "glsl_parser.ypp" +#line 734 "glsl_parser.ypp" { (yyval.n) = ast_rs_assign; ;} break; - case 93: + case 104: /* Line 1464 of yacc.c */ -#line 665 "glsl_parser.ypp" +#line 735 "glsl_parser.ypp" { (yyval.n) = ast_and_assign; ;} break; - case 94: + case 105: /* Line 1464 of yacc.c */ -#line 666 "glsl_parser.ypp" +#line 736 "glsl_parser.ypp" { (yyval.n) = ast_xor_assign; ;} break; - case 95: + case 106: /* Line 1464 of yacc.c */ -#line 667 "glsl_parser.ypp" +#line 737 "glsl_parser.ypp" { (yyval.n) = ast_or_assign; ;} break; - case 96: + case 107: /* Line 1464 of yacc.c */ -#line 672 "glsl_parser.ypp" +#line 742 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(1) - (1)].expression); ;} break; - case 97: + case 108: /* Line 1464 of yacc.c */ -#line 676 "glsl_parser.ypp" +#line 746 "glsl_parser.ypp" { void *ctx = state; if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) { @@ -3496,28 +3573,29 @@ yyreduce: ;} break; - case 99: + case 110: /* Line 1464 of yacc.c */ -#line 696 "glsl_parser.ypp" +#line 766 "glsl_parser.ypp" { + state->symbols->pop_scope(); (yyval.node) = (yyvsp[(1) - (2)].function); ;} break; - case 100: + case 111: /* Line 1464 of yacc.c */ -#line 700 "glsl_parser.ypp" +#line 771 "glsl_parser.ypp" { (yyval.node) = (yyvsp[(1) - (2)].declarator_list); ;} break; - case 101: + case 112: /* Line 1464 of yacc.c */ -#line 704 "glsl_parser.ypp" +#line 775 "glsl_parser.ypp" { (yyvsp[(3) - (4)].type_specifier)->precision = (yyvsp[(2) - (4)].n); (yyvsp[(3) - (4)].type_specifier)->is_precision_statement = true; @@ -3525,43 +3603,46 @@ yyreduce: ;} break; - case 105: + case 116: /* Line 1464 of yacc.c */ -#line 722 "glsl_parser.ypp" +#line 793 "glsl_parser.ypp" { (yyval.function) = (yyvsp[(1) - (2)].function); (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link); ;} break; - case 106: + case 117: /* Line 1464 of yacc.c */ -#line 727 "glsl_parser.ypp" +#line 798 "glsl_parser.ypp" { (yyval.function) = (yyvsp[(1) - (3)].function); (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link); ;} break; - case 107: + case 118: /* Line 1464 of yacc.c */ -#line 735 "glsl_parser.ypp" +#line 806 "glsl_parser.ypp" { void *ctx = state; (yyval.function) = new(ctx) ast_function(); (yyval.function)->set_location(yylloc); (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_type); (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier); + + state->symbols->add_function(new(state) ir_function((yyvsp[(2) - (3)].identifier))); + state->symbols->push_scope(); ;} break; - case 108: + case 119: /* Line 1464 of yacc.c */ -#line 746 "glsl_parser.ypp" +#line 820 "glsl_parser.ypp" { void *ctx = state; (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); @@ -3573,10 +3654,10 @@ yyreduce: ;} break; - case 109: + case 120: /* Line 1464 of yacc.c */ -#line 756 "glsl_parser.ypp" +#line 830 "glsl_parser.ypp" { void *ctx = state; (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); @@ -3590,10 +3671,10 @@ yyreduce: ;} break; - case 110: + case 121: /* Line 1464 of yacc.c */ -#line 771 "glsl_parser.ypp" +#line 845 "glsl_parser.ypp" { (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i; @@ -3602,20 +3683,20 @@ yyreduce: ;} break; - case 111: + case 122: /* Line 1464 of yacc.c */ -#line 778 "glsl_parser.ypp" +#line 852 "glsl_parser.ypp" { (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator); (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier); ;} break; - case 112: + case 123: /* Line 1464 of yacc.c */ -#line 783 "glsl_parser.ypp" +#line 857 "glsl_parser.ypp" { void *ctx = state; (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i; @@ -3628,10 +3709,10 @@ yyreduce: ;} break; - case 113: + case 124: /* Line 1464 of yacc.c */ -#line 794 "glsl_parser.ypp" +#line 868 "glsl_parser.ypp" { void *ctx = state; (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); @@ -3642,39 +3723,39 @@ yyreduce: ;} break; - case 114: + case 125: /* Line 1464 of yacc.c */ -#line 806 "glsl_parser.ypp" +#line 880 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); ;} break; - case 115: + case 126: /* Line 1464 of yacc.c */ -#line 810 "glsl_parser.ypp" +#line 884 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.in = 1; ;} break; - case 116: + case 127: /* Line 1464 of yacc.c */ -#line 815 "glsl_parser.ypp" +#line 889 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.out = 1; ;} break; - case 117: + case 128: /* Line 1464 of yacc.c */ -#line 820 "glsl_parser.ypp" +#line 894 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.in = 1; @@ -3682,10 +3763,10 @@ yyreduce: ;} break; - case 120: + case 131: /* Line 1464 of yacc.c */ -#line 834 "glsl_parser.ypp" +#line 908 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL); @@ -3693,13 +3774,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (3)].identifier), ir_var_auto)); ;} break; - case 121: + case 132: /* Line 1464 of yacc.c */ -#line 843 "glsl_parser.ypp" +#line 918 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL); @@ -3707,13 +3789,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto)); ;} break; - case 122: + case 133: /* Line 1464 of yacc.c */ -#line 852 "glsl_parser.ypp" +#line 928 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL); @@ -3721,13 +3804,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (6)].identifier), ir_var_auto)); ;} break; - case 123: + case 134: /* Line 1464 of yacc.c */ -#line 861 "glsl_parser.ypp" +#line 938 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression)); @@ -3735,13 +3819,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (7)].identifier), ir_var_auto)); ;} break; - case 124: + case 135: /* Line 1464 of yacc.c */ -#line 870 "glsl_parser.ypp" +#line 948 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].identifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression)); @@ -3749,13 +3834,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (8)].identifier), ir_var_auto)); ;} break; - case 125: + case 136: /* Line 1464 of yacc.c */ -#line 879 "glsl_parser.ypp" +#line 958 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression)); @@ -3763,13 +3849,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto)); ;} break; - case 126: + case 137: /* Line 1464 of yacc.c */ -#line 892 "glsl_parser.ypp" +#line 972 "glsl_parser.ypp" { void *ctx = state; if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) { @@ -3782,10 +3869,10 @@ yyreduce: ;} break; - case 127: + case 138: /* Line 1464 of yacc.c */ -#line 903 "glsl_parser.ypp" +#line 983 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL); @@ -3796,10 +3883,10 @@ yyreduce: ;} break; - case 128: + case 139: /* Line 1464 of yacc.c */ -#line 912 "glsl_parser.ypp" +#line 992 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL); @@ -3810,10 +3897,10 @@ yyreduce: ;} break; - case 129: + case 140: /* Line 1464 of yacc.c */ -#line 921 "glsl_parser.ypp" +#line 1001 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL); @@ -3824,10 +3911,10 @@ yyreduce: ;} break; - case 130: + case 141: /* Line 1464 of yacc.c */ -#line 930 "glsl_parser.ypp" +#line 1010 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression)); @@ -3838,10 +3925,10 @@ yyreduce: ;} break; - case 131: + case 142: /* Line 1464 of yacc.c */ -#line 939 "glsl_parser.ypp" +#line 1019 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].identifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression)); @@ -3852,10 +3939,10 @@ yyreduce: ;} break; - case 132: + case 143: /* Line 1464 of yacc.c */ -#line 948 "glsl_parser.ypp" +#line 1028 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression)); @@ -3866,10 +3953,10 @@ yyreduce: ;} break; - case 133: + case 144: /* Line 1464 of yacc.c */ -#line 957 "glsl_parser.ypp" +#line 1037 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL); @@ -3882,10 +3969,10 @@ yyreduce: ;} break; - case 134: + case 145: /* Line 1464 of yacc.c */ -#line 971 "glsl_parser.ypp" +#line 1051 "glsl_parser.ypp" { void *ctx = state; (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); @@ -3894,10 +3981,10 @@ yyreduce: ;} break; - case 135: + case 146: /* Line 1464 of yacc.c */ -#line 978 "glsl_parser.ypp" +#line 1058 "glsl_parser.ypp" { void *ctx = state; (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); @@ -3907,19 +3994,19 @@ yyreduce: ;} break; - case 136: + case 147: /* Line 1464 of yacc.c */ -#line 989 "glsl_parser.ypp" +#line 1069 "glsl_parser.ypp" { (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier); ;} break; - case 138: + case 149: /* Line 1464 of yacc.c */ -#line 997 "glsl_parser.ypp" +#line 1077 "glsl_parser.ypp" { if (((yyvsp[(1) - (3)].type_qualifier).flags.i & (yyvsp[(3) - (3)].type_qualifier).flags.i) != 0) { _mesa_glsl_error(& (yylsp[(3) - (3)]), state, @@ -3937,16 +4024,17 @@ yyreduce: ;} break; - case 139: + case 150: /* Line 1464 of yacc.c */ -#line 1016 "glsl_parser.ypp" +#line 1096 "glsl_parser.ypp" { bool got_one = false; memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); - if (state->ARB_fragment_coord_conventions_enable) { + /* Layout qualifiers for ARB_fragment_coord_conventions. */ + if (!got_one && state->ARB_fragment_coord_conventions_enable) { if (strcmp((yyvsp[(1) - (1)].identifier), "origin_upper_left") == 0) { got_one = true; (yyval.type_qualifier).flags.q.origin_upper_left = 1; @@ -3954,27 +4042,49 @@ yyreduce: got_one = true; (yyval.type_qualifier).flags.q.pixel_center_integer = 1; } + + if (got_one && state->ARB_fragment_coord_conventions_warn) { + _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, + "GL_ARB_fragment_coord_conventions layout " + "identifier `%s' used\n", (yyvsp[(1) - (1)].identifier)); + } + } + + /* Layout qualifiers for AMD_conservative_depth. */ + if (!got_one && state->AMD_conservative_depth_enable) { + if (strcmp((yyvsp[(1) - (1)].identifier), "depth_any") == 0) { + got_one = true; + (yyval.type_qualifier).flags.q.depth_any = 1; + } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_greater") == 0) { + got_one = true; + (yyval.type_qualifier).flags.q.depth_greater = 1; + } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_less") == 0) { + got_one = true; + (yyval.type_qualifier).flags.q.depth_less = 1; + } else if (strcmp((yyvsp[(1) - (1)].identifier), "depth_unchanged") == 0) { + got_one = true; + (yyval.type_qualifier).flags.q.depth_unchanged = 1; + } + + if (got_one && state->AMD_conservative_depth_warn) { + _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, + "GL_AMD_conservative_depth " + "layout qualifier `%s' is used\n", (yyvsp[(1) - (1)].identifier)); + } } - /* If the identifier didn't match any known layout identifiers, - * emit an error. - */ if (!got_one) { _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "unrecognized layout identifier " "`%s'\n", (yyvsp[(1) - (1)].identifier)); YYERROR; - } else if (state->ARB_fragment_coord_conventions_warn) { - _mesa_glsl_warning(& (yylsp[(1) - (1)]), state, - "GL_ARB_fragment_coord_conventions layout " - "identifier `%s' used\n", (yyvsp[(1) - (1)].identifier)); } ;} break; - case 140: + case 151: /* Line 1464 of yacc.c */ -#line 1045 "glsl_parser.ypp" +#line 1148 "glsl_parser.ypp" { bool got_one = false; @@ -4014,80 +4124,80 @@ yyreduce: ;} break; - case 141: + case 152: /* Line 1464 of yacc.c */ -#line 1086 "glsl_parser.ypp" +#line 1189 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.smooth = 1; ;} break; - case 142: + case 153: /* Line 1464 of yacc.c */ -#line 1091 "glsl_parser.ypp" +#line 1194 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.flat = 1; ;} break; - case 143: + case 154: /* Line 1464 of yacc.c */ -#line 1096 "glsl_parser.ypp" +#line 1199 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.noperspective = 1; ;} break; - case 144: + case 155: /* Line 1464 of yacc.c */ -#line 1104 "glsl_parser.ypp" +#line 1207 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.constant = 1; ;} break; - case 147: + case 158: /* Line 1464 of yacc.c */ -#line 1114 "glsl_parser.ypp" +#line 1217 "glsl_parser.ypp" { (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier); (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i; ;} break; - case 149: + case 160: /* Line 1464 of yacc.c */ -#line 1120 "glsl_parser.ypp" +#line 1223 "glsl_parser.ypp" { (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier); (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i; ;} break; - case 150: + case 161: /* Line 1464 of yacc.c */ -#line 1125 "glsl_parser.ypp" +#line 1228 "glsl_parser.ypp" { (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier); (yyval.type_qualifier).flags.q.invariant = 1; ;} break; - case 151: + case 162: /* Line 1464 of yacc.c */ -#line 1130 "glsl_parser.ypp" +#line 1233 "glsl_parser.ypp" { (yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier); (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).flags.i; @@ -4095,50 +4205,50 @@ yyreduce: ;} break; - case 152: + case 163: /* Line 1464 of yacc.c */ -#line 1136 "glsl_parser.ypp" +#line 1239 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.invariant = 1; ;} break; - case 153: + case 164: /* Line 1464 of yacc.c */ -#line 1144 "glsl_parser.ypp" +#line 1247 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.constant = 1; ;} break; - case 154: + case 165: /* Line 1464 of yacc.c */ -#line 1149 "glsl_parser.ypp" +#line 1252 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.attribute = 1; ;} break; - case 155: + case 166: /* Line 1464 of yacc.c */ -#line 1154 "glsl_parser.ypp" +#line 1257 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.varying = 1; ;} break; - case 156: + case 167: /* Line 1464 of yacc.c */ -#line 1159 "glsl_parser.ypp" +#line 1262 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.centroid = 1; @@ -4146,79 +4256,79 @@ yyreduce: ;} break; - case 157: + case 168: /* Line 1464 of yacc.c */ -#line 1165 "glsl_parser.ypp" +#line 1268 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.in = 1; ;} break; - case 158: + case 169: /* Line 1464 of yacc.c */ -#line 1170 "glsl_parser.ypp" +#line 1273 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.out = 1; ;} break; - case 159: + case 170: /* Line 1464 of yacc.c */ -#line 1175 "glsl_parser.ypp" +#line 1278 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.in = 1; ;} break; - case 160: + case 171: /* Line 1464 of yacc.c */ -#line 1180 "glsl_parser.ypp" +#line 1283 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.out = 1; ;} break; - case 161: + case 172: /* Line 1464 of yacc.c */ -#line 1185 "glsl_parser.ypp" +#line 1288 "glsl_parser.ypp" { memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier))); (yyval.type_qualifier).flags.q.uniform = 1; ;} break; - case 162: + case 173: /* Line 1464 of yacc.c */ -#line 1193 "glsl_parser.ypp" +#line 1296 "glsl_parser.ypp" { (yyval.type_specifier) = (yyvsp[(1) - (1)].type_specifier); ;} break; - case 163: + case 174: /* Line 1464 of yacc.c */ -#line 1197 "glsl_parser.ypp" +#line 1300 "glsl_parser.ypp" { (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier); (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n); ;} break; - case 165: + case 176: /* Line 1464 of yacc.c */ -#line 1206 "glsl_parser.ypp" +#line 1309 "glsl_parser.ypp" { (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier); (yyval.type_specifier)->is_array = true; @@ -4226,10 +4336,10 @@ yyreduce: ;} break; - case 166: + case 177: /* Line 1464 of yacc.c */ -#line 1212 "glsl_parser.ypp" +#line 1315 "glsl_parser.ypp" { (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier); (yyval.type_specifier)->is_array = true; @@ -4237,10 +4347,10 @@ yyreduce: ;} break; - case 167: + case 178: /* Line 1464 of yacc.c */ -#line 1221 "glsl_parser.ypp" +#line 1324 "glsl_parser.ypp" { void *ctx = state; (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n)); @@ -4248,10 +4358,10 @@ yyreduce: ;} break; - case 168: + case 179: /* Line 1464 of yacc.c */ -#line 1227 "glsl_parser.ypp" +#line 1330 "glsl_parser.ypp" { void *ctx = state; (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier)); @@ -4259,10 +4369,10 @@ yyreduce: ;} break; - case 169: + case 180: /* Line 1464 of yacc.c */ -#line 1233 "glsl_parser.ypp" +#line 1336 "glsl_parser.ypp" { void *ctx = state; (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier)); @@ -4270,367 +4380,367 @@ yyreduce: ;} break; - case 170: + case 181: /* Line 1464 of yacc.c */ -#line 1241 "glsl_parser.ypp" +#line 1344 "glsl_parser.ypp" { (yyval.n) = ast_void; ;} break; - case 171: + case 182: /* Line 1464 of yacc.c */ -#line 1242 "glsl_parser.ypp" +#line 1345 "glsl_parser.ypp" { (yyval.n) = ast_float; ;} break; - case 172: + case 183: /* Line 1464 of yacc.c */ -#line 1243 "glsl_parser.ypp" +#line 1346 "glsl_parser.ypp" { (yyval.n) = ast_int; ;} break; - case 173: + case 184: /* Line 1464 of yacc.c */ -#line 1244 "glsl_parser.ypp" +#line 1347 "glsl_parser.ypp" { (yyval.n) = ast_uint; ;} break; - case 174: + case 185: /* Line 1464 of yacc.c */ -#line 1245 "glsl_parser.ypp" +#line 1348 "glsl_parser.ypp" { (yyval.n) = ast_bool; ;} break; - case 175: + case 186: /* Line 1464 of yacc.c */ -#line 1246 "glsl_parser.ypp" +#line 1349 "glsl_parser.ypp" { (yyval.n) = ast_vec2; ;} break; - case 176: + case 187: /* Line 1464 of yacc.c */ -#line 1247 "glsl_parser.ypp" +#line 1350 "glsl_parser.ypp" { (yyval.n) = ast_vec3; ;} break; - case 177: + case 188: /* Line 1464 of yacc.c */ -#line 1248 "glsl_parser.ypp" +#line 1351 "glsl_parser.ypp" { (yyval.n) = ast_vec4; ;} break; - case 178: + case 189: /* Line 1464 of yacc.c */ -#line 1249 "glsl_parser.ypp" +#line 1352 "glsl_parser.ypp" { (yyval.n) = ast_bvec2; ;} break; - case 179: + case 190: /* Line 1464 of yacc.c */ -#line 1250 "glsl_parser.ypp" +#line 1353 "glsl_parser.ypp" { (yyval.n) = ast_bvec3; ;} break; - case 180: + case 191: /* Line 1464 of yacc.c */ -#line 1251 "glsl_parser.ypp" +#line 1354 "glsl_parser.ypp" { (yyval.n) = ast_bvec4; ;} break; - case 181: + case 192: /* Line 1464 of yacc.c */ -#line 1252 "glsl_parser.ypp" +#line 1355 "glsl_parser.ypp" { (yyval.n) = ast_ivec2; ;} break; - case 182: + case 193: /* Line 1464 of yacc.c */ -#line 1253 "glsl_parser.ypp" +#line 1356 "glsl_parser.ypp" { (yyval.n) = ast_ivec3; ;} break; - case 183: + case 194: /* Line 1464 of yacc.c */ -#line 1254 "glsl_parser.ypp" +#line 1357 "glsl_parser.ypp" { (yyval.n) = ast_ivec4; ;} break; - case 184: + case 195: /* Line 1464 of yacc.c */ -#line 1255 "glsl_parser.ypp" +#line 1358 "glsl_parser.ypp" { (yyval.n) = ast_uvec2; ;} break; - case 185: + case 196: /* Line 1464 of yacc.c */ -#line 1256 "glsl_parser.ypp" +#line 1359 "glsl_parser.ypp" { (yyval.n) = ast_uvec3; ;} break; - case 186: + case 197: /* Line 1464 of yacc.c */ -#line 1257 "glsl_parser.ypp" +#line 1360 "glsl_parser.ypp" { (yyval.n) = ast_uvec4; ;} break; - case 187: + case 198: /* Line 1464 of yacc.c */ -#line 1258 "glsl_parser.ypp" +#line 1361 "glsl_parser.ypp" { (yyval.n) = ast_mat2; ;} break; - case 188: + case 199: /* Line 1464 of yacc.c */ -#line 1259 "glsl_parser.ypp" +#line 1362 "glsl_parser.ypp" { (yyval.n) = ast_mat2x3; ;} break; - case 189: + case 200: /* Line 1464 of yacc.c */ -#line 1260 "glsl_parser.ypp" +#line 1363 "glsl_parser.ypp" { (yyval.n) = ast_mat2x4; ;} break; - case 190: + case 201: /* Line 1464 of yacc.c */ -#line 1261 "glsl_parser.ypp" +#line 1364 "glsl_parser.ypp" { (yyval.n) = ast_mat3x2; ;} break; - case 191: + case 202: /* Line 1464 of yacc.c */ -#line 1262 "glsl_parser.ypp" +#line 1365 "glsl_parser.ypp" { (yyval.n) = ast_mat3; ;} break; - case 192: + case 203: /* Line 1464 of yacc.c */ -#line 1263 "glsl_parser.ypp" +#line 1366 "glsl_parser.ypp" { (yyval.n) = ast_mat3x4; ;} break; - case 193: + case 204: /* Line 1464 of yacc.c */ -#line 1264 "glsl_parser.ypp" +#line 1367 "glsl_parser.ypp" { (yyval.n) = ast_mat4x2; ;} break; - case 194: + case 205: /* Line 1464 of yacc.c */ -#line 1265 "glsl_parser.ypp" +#line 1368 "glsl_parser.ypp" { (yyval.n) = ast_mat4x3; ;} break; - case 195: + case 206: /* Line 1464 of yacc.c */ -#line 1266 "glsl_parser.ypp" +#line 1369 "glsl_parser.ypp" { (yyval.n) = ast_mat4; ;} break; - case 196: + case 207: /* Line 1464 of yacc.c */ -#line 1267 "glsl_parser.ypp" +#line 1370 "glsl_parser.ypp" { (yyval.n) = ast_sampler1d; ;} break; - case 197: + case 208: /* Line 1464 of yacc.c */ -#line 1268 "glsl_parser.ypp" +#line 1371 "glsl_parser.ypp" { (yyval.n) = ast_sampler2d; ;} break; - case 198: + case 209: /* Line 1464 of yacc.c */ -#line 1269 "glsl_parser.ypp" +#line 1372 "glsl_parser.ypp" { (yyval.n) = ast_sampler2drect; ;} break; - case 199: + case 210: /* Line 1464 of yacc.c */ -#line 1270 "glsl_parser.ypp" +#line 1373 "glsl_parser.ypp" { (yyval.n) = ast_sampler3d; ;} break; - case 200: + case 211: /* Line 1464 of yacc.c */ -#line 1271 "glsl_parser.ypp" +#line 1374 "glsl_parser.ypp" { (yyval.n) = ast_samplercube; ;} break; - case 201: + case 212: /* Line 1464 of yacc.c */ -#line 1272 "glsl_parser.ypp" +#line 1375 "glsl_parser.ypp" { (yyval.n) = ast_sampler1dshadow; ;} break; - case 202: + case 213: /* Line 1464 of yacc.c */ -#line 1273 "glsl_parser.ypp" +#line 1376 "glsl_parser.ypp" { (yyval.n) = ast_sampler2dshadow; ;} break; - case 203: + case 214: /* Line 1464 of yacc.c */ -#line 1274 "glsl_parser.ypp" +#line 1377 "glsl_parser.ypp" { (yyval.n) = ast_sampler2drectshadow; ;} break; - case 204: + case 215: /* Line 1464 of yacc.c */ -#line 1275 "glsl_parser.ypp" +#line 1378 "glsl_parser.ypp" { (yyval.n) = ast_samplercubeshadow; ;} break; - case 205: + case 216: /* Line 1464 of yacc.c */ -#line 1276 "glsl_parser.ypp" +#line 1379 "glsl_parser.ypp" { (yyval.n) = ast_sampler1darray; ;} break; - case 206: + case 217: /* Line 1464 of yacc.c */ -#line 1277 "glsl_parser.ypp" +#line 1380 "glsl_parser.ypp" { (yyval.n) = ast_sampler2darray; ;} break; - case 207: + case 218: /* Line 1464 of yacc.c */ -#line 1278 "glsl_parser.ypp" +#line 1381 "glsl_parser.ypp" { (yyval.n) = ast_sampler1darrayshadow; ;} break; - case 208: + case 219: /* Line 1464 of yacc.c */ -#line 1279 "glsl_parser.ypp" +#line 1382 "glsl_parser.ypp" { (yyval.n) = ast_sampler2darrayshadow; ;} break; - case 209: + case 220: /* Line 1464 of yacc.c */ -#line 1280 "glsl_parser.ypp" +#line 1383 "glsl_parser.ypp" { (yyval.n) = ast_isampler1d; ;} break; - case 210: + case 221: /* Line 1464 of yacc.c */ -#line 1281 "glsl_parser.ypp" +#line 1384 "glsl_parser.ypp" { (yyval.n) = ast_isampler2d; ;} break; - case 211: + case 222: /* Line 1464 of yacc.c */ -#line 1282 "glsl_parser.ypp" +#line 1385 "glsl_parser.ypp" { (yyval.n) = ast_isampler3d; ;} break; - case 212: + case 223: /* Line 1464 of yacc.c */ -#line 1283 "glsl_parser.ypp" +#line 1386 "glsl_parser.ypp" { (yyval.n) = ast_isamplercube; ;} break; - case 213: + case 224: /* Line 1464 of yacc.c */ -#line 1284 "glsl_parser.ypp" +#line 1387 "glsl_parser.ypp" { (yyval.n) = ast_isampler1darray; ;} break; - case 214: + case 225: /* Line 1464 of yacc.c */ -#line 1285 "glsl_parser.ypp" +#line 1388 "glsl_parser.ypp" { (yyval.n) = ast_isampler2darray; ;} break; - case 215: + case 226: /* Line 1464 of yacc.c */ -#line 1286 "glsl_parser.ypp" +#line 1389 "glsl_parser.ypp" { (yyval.n) = ast_usampler1d; ;} break; - case 216: + case 227: /* Line 1464 of yacc.c */ -#line 1287 "glsl_parser.ypp" +#line 1390 "glsl_parser.ypp" { (yyval.n) = ast_usampler2d; ;} break; - case 217: + case 228: /* Line 1464 of yacc.c */ -#line 1288 "glsl_parser.ypp" +#line 1391 "glsl_parser.ypp" { (yyval.n) = ast_usampler3d; ;} break; - case 218: + case 229: /* Line 1464 of yacc.c */ -#line 1289 "glsl_parser.ypp" +#line 1392 "glsl_parser.ypp" { (yyval.n) = ast_usamplercube; ;} break; - case 219: + case 230: /* Line 1464 of yacc.c */ -#line 1290 "glsl_parser.ypp" +#line 1393 "glsl_parser.ypp" { (yyval.n) = ast_usampler1darray; ;} break; - case 220: + case 231: /* Line 1464 of yacc.c */ -#line 1291 "glsl_parser.ypp" +#line 1394 "glsl_parser.ypp" { (yyval.n) = ast_usampler2darray; ;} break; - case 221: + case 232: /* Line 1464 of yacc.c */ -#line 1295 "glsl_parser.ypp" +#line 1398 "glsl_parser.ypp" { if (!state->es_shader && state->language_version < 130) _mesa_glsl_error(& (yylsp[(1) - (1)]), state, @@ -4643,10 +4753,10 @@ yyreduce: ;} break; - case 222: + case 233: /* Line 1464 of yacc.c */ -#line 1305 "glsl_parser.ypp" +#line 1408 "glsl_parser.ypp" { if (!state->es_shader && state->language_version < 130) _mesa_glsl_error(& (yylsp[(1) - (1)]), state, @@ -4659,10 +4769,10 @@ yyreduce: ;} break; - case 223: + case 234: /* Line 1464 of yacc.c */ -#line 1315 "glsl_parser.ypp" +#line 1418 "glsl_parser.ypp" { if (!state->es_shader && state->language_version < 130) _mesa_glsl_error(& (yylsp[(1) - (1)]), state, @@ -4675,21 +4785,22 @@ yyreduce: ;} break; - case 224: + case 235: /* Line 1464 of yacc.c */ -#line 1329 "glsl_parser.ypp" +#line 1432 "glsl_parser.ypp" { void *ctx = state; (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node)); (yyval.struct_specifier)->set_location(yylloc); + state->symbols->add_type((yyvsp[(2) - (5)].identifier), glsl_type::void_type); ;} break; - case 225: + case 236: /* Line 1464 of yacc.c */ -#line 1335 "glsl_parser.ypp" +#line 1439 "glsl_parser.ypp" { void *ctx = state; (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node)); @@ -4697,30 +4808,30 @@ yyreduce: ;} break; - case 226: + case 237: /* Line 1464 of yacc.c */ -#line 1344 "glsl_parser.ypp" +#line 1448 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list); (yyvsp[(1) - (1)].declarator_list)->link.self_link(); ;} break; - case 227: + case 238: /* Line 1464 of yacc.c */ -#line 1349 "glsl_parser.ypp" +#line 1453 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node); (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link); ;} break; - case 228: + case 239: /* Line 1464 of yacc.c */ -#line 1357 "glsl_parser.ypp" +#line 1461 "glsl_parser.ypp" { void *ctx = state; ast_fully_specified_type *type = new(ctx) ast_fully_specified_type(); @@ -4734,41 +4845,42 @@ yyreduce: ;} break; - case 229: + case 240: /* Line 1464 of yacc.c */ -#line 1372 "glsl_parser.ypp" +#line 1476 "glsl_parser.ypp" { (yyval.declaration) = (yyvsp[(1) - (1)].declaration); (yyvsp[(1) - (1)].declaration)->link.self_link(); ;} break; - case 230: + case 241: /* Line 1464 of yacc.c */ -#line 1377 "glsl_parser.ypp" +#line 1481 "glsl_parser.ypp" { (yyval.declaration) = (yyvsp[(1) - (3)].declaration); (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link); ;} break; - case 231: + case 242: /* Line 1464 of yacc.c */ -#line 1385 "glsl_parser.ypp" +#line 1489 "glsl_parser.ypp" { void *ctx = state; (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL); (yyval.declaration)->set_location(yylloc); + state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[(1) - (1)].identifier), ir_var_auto)); ;} break; - case 232: + case 243: /* Line 1464 of yacc.c */ -#line 1391 "glsl_parser.ypp" +#line 1496 "glsl_parser.ypp" { void *ctx = state; (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL); @@ -4776,31 +4888,31 @@ yyreduce: ;} break; - case 235: + case 246: /* Line 1464 of yacc.c */ -#line 1409 "glsl_parser.ypp" +#line 1514 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;} break; - case 240: + case 251: /* Line 1464 of yacc.c */ -#line 1417 "glsl_parser.ypp" +#line 1522 "glsl_parser.ypp" { (yyval.node) = NULL; ;} break; - case 241: + case 252: /* Line 1464 of yacc.c */ -#line 1418 "glsl_parser.ypp" +#line 1523 "glsl_parser.ypp" { (yyval.node) = NULL; ;} break; - case 244: + case 255: /* Line 1464 of yacc.c */ -#line 1425 "glsl_parser.ypp" +#line 1530 "glsl_parser.ypp" { void *ctx = state; (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL); @@ -4808,28 +4920,38 @@ yyreduce: ;} break; - case 245: + case 256: + +/* Line 1464 of yacc.c */ +#line 1536 "glsl_parser.ypp" + { + state->symbols->push_scope(); + ;} + break; + + case 257: /* Line 1464 of yacc.c */ -#line 1431 "glsl_parser.ypp" +#line 1540 "glsl_parser.ypp" { void *ctx = state; - (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node)); + (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(3) - (4)].node)); (yyval.compound_statement)->set_location(yylloc); + state->symbols->pop_scope(); ;} break; - case 246: + case 258: /* Line 1464 of yacc.c */ -#line 1439 "glsl_parser.ypp" +#line 1549 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;} break; - case 248: + case 260: /* Line 1464 of yacc.c */ -#line 1445 "glsl_parser.ypp" +#line 1555 "glsl_parser.ypp" { void *ctx = state; (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL); @@ -4837,10 +4959,10 @@ yyreduce: ;} break; - case 249: + case 261: /* Line 1464 of yacc.c */ -#line 1451 "glsl_parser.ypp" +#line 1561 "glsl_parser.ypp" { void *ctx = state; (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node)); @@ -4848,10 +4970,10 @@ yyreduce: ;} break; - case 250: + case 262: /* Line 1464 of yacc.c */ -#line 1460 "glsl_parser.ypp" +#line 1570 "glsl_parser.ypp" { if ((yyvsp[(1) - (1)].node) == NULL) { _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n"); @@ -4863,10 +4985,10 @@ yyreduce: ;} break; - case 251: + case 263: /* Line 1464 of yacc.c */ -#line 1470 "glsl_parser.ypp" +#line 1580 "glsl_parser.ypp" { if ((yyvsp[(2) - (2)].node) == NULL) { _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n"); @@ -4877,10 +4999,10 @@ yyreduce: ;} break; - case 252: + case 264: /* Line 1464 of yacc.c */ -#line 1482 "glsl_parser.ypp" +#line 1592 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_expression_statement(NULL); @@ -4888,10 +5010,10 @@ yyreduce: ;} break; - case 253: + case 265: /* Line 1464 of yacc.c */ -#line 1488 "glsl_parser.ypp" +#line 1598 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression)); @@ -4899,10 +5021,10 @@ yyreduce: ;} break; - case 254: + case 266: /* Line 1464 of yacc.c */ -#line 1497 "glsl_parser.ypp" +#line 1607 "glsl_parser.ypp" { (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement, (yyvsp[(5) - (5)].selection_rest_statement).else_statement); @@ -4910,39 +5032,39 @@ yyreduce: ;} break; - case 255: + case 267: /* Line 1464 of yacc.c */ -#line 1506 "glsl_parser.ypp" +#line 1616 "glsl_parser.ypp" { (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node); (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node); ;} break; - case 256: + case 268: /* Line 1464 of yacc.c */ -#line 1511 "glsl_parser.ypp" +#line 1621 "glsl_parser.ypp" { (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node); (yyval.selection_rest_statement).else_statement = NULL; ;} break; - case 257: + case 269: /* Line 1464 of yacc.c */ -#line 1519 "glsl_parser.ypp" +#line 1629 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression); ;} break; - case 258: + case 270: /* Line 1464 of yacc.c */ -#line 1523 "glsl_parser.ypp" +#line 1633 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression)); @@ -4955,10 +5077,10 @@ yyreduce: ;} break; - case 262: + case 274: /* Line 1464 of yacc.c */ -#line 1546 "glsl_parser.ypp" +#line 1656 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while, @@ -4967,10 +5089,10 @@ yyreduce: ;} break; - case 263: + case 275: /* Line 1464 of yacc.c */ -#line 1553 "glsl_parser.ypp" +#line 1663 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while, @@ -4979,10 +5101,10 @@ yyreduce: ;} break; - case 264: + case 276: /* Line 1464 of yacc.c */ -#line 1560 "glsl_parser.ypp" +#line 1670 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for, @@ -4991,39 +5113,39 @@ yyreduce: ;} break; - case 268: + case 280: /* Line 1464 of yacc.c */ -#line 1576 "glsl_parser.ypp" +#line 1686 "glsl_parser.ypp" { (yyval.node) = NULL; ;} break; - case 269: + case 281: /* Line 1464 of yacc.c */ -#line 1583 "glsl_parser.ypp" +#line 1693 "glsl_parser.ypp" { (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node); (yyval.for_rest_statement).rest = NULL; ;} break; - case 270: + case 282: /* Line 1464 of yacc.c */ -#line 1588 "glsl_parser.ypp" +#line 1698 "glsl_parser.ypp" { (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node); (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression); ;} break; - case 271: + case 283: /* Line 1464 of yacc.c */ -#line 1597 "glsl_parser.ypp" +#line 1707 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL); @@ -5031,10 +5153,10 @@ yyreduce: ;} break; - case 272: + case 284: /* Line 1464 of yacc.c */ -#line 1603 "glsl_parser.ypp" +#line 1713 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL); @@ -5042,10 +5164,10 @@ yyreduce: ;} break; - case 273: + case 285: /* Line 1464 of yacc.c */ -#line 1609 "glsl_parser.ypp" +#line 1719 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL); @@ -5053,10 +5175,10 @@ yyreduce: ;} break; - case 274: + case 286: /* Line 1464 of yacc.c */ -#line 1615 "glsl_parser.ypp" +#line 1725 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression)); @@ -5064,10 +5186,10 @@ yyreduce: ;} break; - case 275: + case 287: /* Line 1464 of yacc.c */ -#line 1621 "glsl_parser.ypp" +#line 1731 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL); @@ -5075,44 +5197,46 @@ yyreduce: ;} break; - case 276: + case 288: /* Line 1464 of yacc.c */ -#line 1629 "glsl_parser.ypp" +#line 1739 "glsl_parser.ypp" { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;} break; - case 277: + case 289: /* Line 1464 of yacc.c */ -#line 1630 "glsl_parser.ypp" +#line 1740 "glsl_parser.ypp" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 278: + case 290: /* Line 1464 of yacc.c */ -#line 1631 "glsl_parser.ypp" +#line 1741 "glsl_parser.ypp" { (yyval.node) = NULL; ;} break; - case 279: + case 291: /* Line 1464 of yacc.c */ -#line 1636 "glsl_parser.ypp" +#line 1746 "glsl_parser.ypp" { void *ctx = state; (yyval.function_definition) = new(ctx) ast_function_definition(); (yyval.function_definition)->set_location(yylloc); (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function); (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statement); + + state->symbols->pop_scope(); ;} break; /* Line 1464 of yacc.c */ -#line 5116 "glsl_parser.cpp" +#line 5240 "glsl_parser.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); |