PALETTE = 309,
PARAMS = 310,
PLANE = 311,
- POINT = 312,
+ POINT_TOK = 312,
POINTSIZE = 313,
POSITION = 314,
PRIMARY = 315,
SCENECOLOR = 321,
SECONDARY = 322,
SHININESS = 323,
- SIZE = 324,
+ SIZE_TOK = 324,
SPECULAR = 325,
SPOT = 326,
STATE = 327,
unsigned attrib;
int integer;
float real;
- unsigned state[5];
+ gl_state_index state[STATE_LENGTH];
int negate;
struct asm_vector vector;
gl_inst_opcode opcode;
+ struct {
+ unsigned swz;
+ unsigned rgba_valid:1;
+ unsigned xyzw_valid:1;
+ unsigned negate:1;
+ } ext_swizzle;
+
/* Line 214 of yacc.c */
-#line 336 "program_parse.tab.c"
+#line 343 "program_parse.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
/* Copy the second part of user declarations. */
/* Line 264 of yacc.c */
-#line 242 "program_parse.y"
+#line 249 "program_parse.y"
extern int yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param,
void *yyscanner);
/* Line 264 of yacc.c */
-#line 367 "program_parse.tab.c"
+#line 374 "program_parse.tab.c"
#ifdef short
# undef short
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 5
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 337
+#define YYLAST 342
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 115
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 133
+#define YYNNTS 134
/* YYNRULES -- Number of rules. */
-#define YYNRULES 262
+#define YYNRULES 264
/* YYNRULES -- Number of states. */
-#define YYNSTATES 431
+#define YYNSTATES 436
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
277, 278, 282, 284, 286, 289, 291, 294, 296, 298,
302, 309, 310, 312, 315, 320, 322, 326, 328, 330,
332, 334, 336, 338, 340, 342, 344, 346, 349, 352,
- 355, 358, 361, 364, 367, 370, 373, 376, 379, 383,
- 385, 387, 389, 395, 397, 399, 401, 404, 406, 408,
- 411, 413, 416, 423, 425, 429, 431, 433, 435, 437,
- 439, 444, 446, 448, 450, 452, 454, 456, 459, 461,
- 463, 469, 471, 474, 476, 478, 484, 487, 488, 495,
- 499, 500, 502, 504, 506, 508, 510, 513, 515, 517,
- 520, 525, 530, 531, 533, 535, 537, 539, 541, 543,
- 545, 547, 553, 555, 559, 565, 571, 573, 577, 583,
- 585, 587, 589, 591, 593, 595, 597, 599, 601, 605,
- 611, 619, 629, 632, 635, 637, 639, 640, 641, 645,
- 646, 650, 654, 656, 661, 664, 667, 670, 673, 677,
- 680, 684, 685, 687, 689, 690, 692, 694, 695, 697,
- 699, 700, 702, 704, 705, 709, 710, 714, 715, 719,
- 721, 723, 725
+ 355, 358, 361, 364, 367, 370, 373, 376, 379, 382,
+ 386, 388, 390, 392, 398, 400, 402, 404, 407, 409,
+ 411, 414, 416, 419, 426, 428, 432, 434, 436, 438,
+ 440, 442, 447, 449, 451, 453, 455, 457, 459, 462,
+ 464, 466, 472, 474, 477, 479, 481, 487, 490, 491,
+ 498, 502, 503, 505, 507, 509, 511, 513, 516, 518,
+ 520, 523, 528, 533, 534, 538, 540, 542, 544, 547,
+ 549, 551, 553, 555, 561, 563, 567, 573, 579, 581,
+ 585, 591, 593, 595, 597, 599, 601, 603, 605, 607,
+ 609, 613, 619, 627, 637, 640, 643, 645, 647, 648,
+ 649, 653, 654, 658, 662, 664, 669, 672, 675, 678,
+ 681, 685, 688, 692, 693, 695, 697, 698, 700, 702,
+ 703, 705, 707, 708, 710, 712, 713, 717, 718, 722,
+ 723, 727, 729, 731, 733
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
136, 107, 136, -1, 13, 138, 107, 137, 107, 137,
-1, 17, 138, 107, 137, 107, 137, 107, 137, -1,
15, 138, 107, 137, 107, 133, 107, 134, -1, 20,
- 137, -1, 82, 242, -1, 83, -1, 84, -1, 85,
+ 137, -1, 82, 243, -1, 83, -1, 84, -1, 85,
-1, 86, -1, 87, -1, 88, -1, 89, -1, 90,
-1, 91, -1, 92, -1, 93, -1, 94, -1, 21,
- 138, 107, 143, 107, 140, -1, 228, 143, 155, -1,
- 228, 143, 156, -1, 144, 157, -1, 152, 154, -1,
- 141, 107, 141, 107, 141, 107, 141, -1, 228, 142,
+ 138, 107, 143, 107, 140, -1, 229, 143, 155, -1,
+ 229, 143, 156, -1, 144, 157, -1, 152, 154, -1,
+ 141, 107, 141, 107, 141, 107, 141, -1, 229, 142,
-1, 22, -1, 98, -1, 98, -1, 160, -1, 145,
- 108, 146, 109, -1, 174, -1, 235, -1, 98, -1,
+ 108, 146, 109, -1, 174, -1, 236, -1, 98, -1,
98, -1, 147, -1, 148, -1, 22, -1, 152, 153,
149, -1, -1, 110, 150, -1, 111, 151, -1, 22,
-1, 22, -1, 98, -1, 102, -1, 102, -1, 102,
-1, 102, -1, 99, -1, 103, -1, -1, 99, -1,
100, -1, 101, -1, 102, -1, -1, 159, -1, 166,
- -1, 229, -1, 231, -1, 234, -1, 247, -1, 7,
+ -1, 230, -1, 232, -1, 235, -1, 248, -1, 7,
98, 112, 160, -1, 95, 161, -1, 37, 165, -1,
- 59, -1, 97, 163, -1, 52, -1, 28, 240, -1,
- 36, -1, 73, 241, -1, 49, 108, 164, 109, -1,
+ 59, -1, 97, 163, -1, 52, -1, 28, 241, -1,
+ 36, -1, 73, 242, -1, 49, 108, 164, 109, -1,
96, 108, 162, 109, -1, 22, -1, -1, 108, 164,
- 109, -1, 22, -1, 59, -1, 28, 240, -1, 36,
- -1, 73, 241, -1, 167, -1, 168, -1, 10, 98,
+ 109, -1, 22, -1, 59, -1, 28, 241, -1, 36,
+ -1, 73, 242, -1, 167, -1, 168, -1, 10, 98,
170, -1, 10, 98, 108, 169, 109, 171, -1, -1,
22, -1, 112, 173, -1, 112, 113, 172, 114, -1,
- 175, -1, 172, 107, 175, -1, 177, -1, 212, -1,
- 222, -1, 177, -1, 212, -1, 223, -1, 176, -1,
- 213, -1, 222, -1, 177, -1, 72, 201, -1, 72,
+ 175, -1, 172, 107, 175, -1, 177, -1, 213, -1,
+ 223, -1, 177, -1, 213, -1, 224, -1, 176, -1,
+ 214, -1, 223, -1, 177, -1, 72, 201, -1, 72,
178, -1, 72, 180, -1, 72, 183, -1, 72, 185,
-1, 72, 191, -1, 72, 187, -1, 72, 194, -1,
- 72, 196, -1, 72, 198, -1, 72, 200, -1, 46,
- 239, 179, -1, 189, -1, 32, -1, 68, -1, 42,
- 108, 190, 109, 181, -1, 189, -1, 59, -1, 25,
- -1, 71, 182, -1, 39, -1, 31, -1, 43, 184,
- -1, 24, -1, 239, 66, -1, 44, 108, 190, 109,
- 239, 186, -1, 189, -1, 74, 243, 188, -1, 28,
- -1, 24, -1, 30, -1, 70, -1, 22, -1, 75,
- 241, 192, 193, -1, 34, -1, 53, -1, 78, -1,
- 79, -1, 77, -1, 76, -1, 35, 195, -1, 28,
- -1, 55, -1, 27, 108, 197, 109, 56, -1, 22,
- -1, 57, 199, -1, 69, -1, 25, -1, 203, 65,
- 108, 206, 109, -1, 203, 202, -1, -1, 65, 108,
- 206, 104, 206, 109, -1, 48, 207, 204, -1, -1,
- 205, -1, 40, -1, 81, -1, 41, -1, 22, -1,
- 50, 208, -1, 62, -1, 51, -1, 80, 241, -1,
- 54, 108, 210, 109, -1, 47, 108, 211, 109, -1,
- -1, 209, -1, 22, -1, 22, -1, 22, -1, 216,
- -1, 219, -1, 214, -1, 217, -1, 61, 33, 108,
- 215, 109, -1, 220, -1, 220, 104, 220, -1, 61,
- 33, 108, 220, 109, -1, 61, 45, 108, 218, 109,
- -1, 221, -1, 221, 104, 221, -1, 61, 45, 108,
- 221, 109, -1, 22, -1, 22, -1, 224, -1, 226,
- -1, 225, -1, 226, -1, 227, -1, 23, -1, 22,
- -1, 113, 227, 114, -1, 113, 227, 107, 227, 114,
- -1, 113, 227, 107, 227, 107, 227, 114, -1, 113,
- 227, 107, 227, 107, 227, 107, 227, 114, -1, 228,
- 23, -1, 228, 22, -1, 110, -1, 111, -1, -1,
- -1, 11, 230, 233, -1, -1, 5, 232, 233, -1,
- 233, 107, 98, -1, 98, -1, 9, 98, 112, 235,
- -1, 64, 59, -1, 64, 36, -1, 64, 236, -1,
- 64, 58, -1, 64, 73, 241, -1, 64, 29, -1,
- 28, 237, 238, -1, -1, 38, -1, 26, -1, -1,
- 60, -1, 67, -1, -1, 38, -1, 26, -1, -1,
- 60, -1, 67, -1, -1, 108, 244, 109, -1, -1,
- 108, 245, 109, -1, -1, 108, 246, 109, -1, 22,
- -1, 22, -1, 22, -1, 6, 98, 112, 98, -1
+ 72, 196, -1, 72, 198, -1, 72, 200, -1, 72,
+ 212, -1, 46, 240, 179, -1, 189, -1, 32, -1,
+ 68, -1, 42, 108, 190, 109, 181, -1, 189, -1,
+ 59, -1, 25, -1, 71, 182, -1, 39, -1, 31,
+ -1, 43, 184, -1, 24, -1, 240, 66, -1, 44,
+ 108, 190, 109, 240, 186, -1, 189, -1, 74, 244,
+ 188, -1, 28, -1, 24, -1, 30, -1, 70, -1,
+ 22, -1, 75, 242, 192, 193, -1, 34, -1, 53,
+ -1, 78, -1, 79, -1, 77, -1, 76, -1, 35,
+ 195, -1, 28, -1, 55, -1, 27, 108, 197, 109,
+ 56, -1, 22, -1, 57, 199, -1, 69, -1, 25,
+ -1, 203, 65, 108, 206, 109, -1, 203, 202, -1,
+ -1, 65, 108, 206, 104, 206, 109, -1, 48, 207,
+ 204, -1, -1, 205, -1, 40, -1, 81, -1, 41,
+ -1, 22, -1, 50, 208, -1, 62, -1, 51, -1,
+ 80, 242, -1, 54, 108, 210, 109, -1, 47, 108,
+ 211, 109, -1, -1, 108, 209, 109, -1, 22, -1,
+ 22, -1, 22, -1, 29, 63, -1, 217, -1, 220,
+ -1, 215, -1, 218, -1, 61, 33, 108, 216, 109,
+ -1, 221, -1, 221, 104, 221, -1, 61, 33, 108,
+ 221, 109, -1, 61, 45, 108, 219, 109, -1, 222,
+ -1, 222, 104, 222, -1, 61, 45, 108, 222, 109,
+ -1, 22, -1, 22, -1, 225, -1, 227, -1, 226,
+ -1, 227, -1, 228, -1, 23, -1, 22, -1, 113,
+ 228, 114, -1, 113, 228, 107, 228, 114, -1, 113,
+ 228, 107, 228, 107, 228, 114, -1, 113, 228, 107,
+ 228, 107, 228, 107, 228, 114, -1, 229, 23, -1,
+ 229, 22, -1, 110, -1, 111, -1, -1, -1, 11,
+ 231, 234, -1, -1, 5, 233, 234, -1, 234, 107,
+ 98, -1, 98, -1, 9, 98, 112, 236, -1, 64,
+ 59, -1, 64, 36, -1, 64, 237, -1, 64, 58,
+ -1, 64, 73, 242, -1, 64, 29, -1, 28, 238,
+ 239, -1, -1, 38, -1, 26, -1, -1, 60, -1,
+ 67, -1, -1, 38, -1, 26, -1, -1, 60, -1,
+ 67, -1, -1, 108, 245, 109, -1, -1, 108, 246,
+ 109, -1, -1, 108, 247, 109, -1, 22, -1, 22,
+ -1, 22, -1, 6, 98, 112, 98, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 249, 249, 252, 260, 272, 273, 276, 298, 299,
- 302, 317, 320, 325, 332, 333, 334, 335, 336, 337,
- 338, 341, 342, 345, 351, 358, 365, 373, 380, 388,
- 433, 440, 446, 447, 448, 449, 450, 451, 452, 453,
- 454, 455, 456, 457, 460, 472, 485, 498, 520, 529,
- 538, 545, 554, 582, 624, 635, 656, 666, 672, 696,
- 713, 713, 715, 722, 734, 735, 736, 739, 751, 763,
- 781, 792, 804, 806, 807, 808, 809, 812, 812, 812,
- 812, 813, 816, 817, 818, 819, 820, 821, 824, 842,
- 846, 852, 856, 860, 864, 873, 882, 886, 891, 897,
- 908, 908, 909, 911, 915, 919, 923, 929, 929, 931,
- 947, 970, 973, 984, 990, 996, 997, 1004, 1010, 1016,
- 1024, 1030, 1036, 1044, 1050, 1056, 1064, 1065, 1068, 1069,
- 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1080, 1089,
- 1093, 1097, 1103, 1112, 1116, 1120, 1129, 1133, 1139, 1145,
- 1152, 1157, 1165, 1175, 1177, 1185, 1191, 1195, 1199, 1205,
- 1216, 1225, 1229, 1234, 1238, 1242, 1246, 1252, 1259, 1263,
- 1269, 1277, 1288, 1295, 1299, 1305, 1315, 1326, 1330, 1348,
- 1357, 1360, 1366, 1370, 1374, 1380, 1391, 1396, 1401, 1406,
- 1411, 1416, 1424, 1427, 1432, 1445, 1453, 1466, 1466, 1468,
- 1468, 1470, 1480, 1485, 1492, 1502, 1511, 1516, 1523, 1533,
- 1543, 1555, 1555, 1556, 1556, 1558, 1565, 1570, 1577, 1585,
- 1593, 1602, 1613, 1617, 1623, 1624, 1625, 1628, 1628, 1631,
- 1631, 1634, 1640, 1648, 1661, 1670, 1679, 1683, 1692, 1701,
- 1712, 1719, 1724, 1733, 1745, 1748, 1757, 1768, 1769, 1770,
- 1773, 1774, 1775, 1778, 1779, 1782, 1783, 1786, 1787, 1790,
- 1801, 1812, 1823
+ 0, 256, 256, 259, 267, 279, 280, 283, 305, 306,
+ 309, 324, 327, 332, 339, 340, 341, 342, 343, 344,
+ 345, 348, 349, 352, 358, 365, 372, 380, 387, 395,
+ 440, 447, 453, 454, 455, 456, 457, 458, 459, 460,
+ 461, 462, 463, 464, 467, 480, 493, 506, 528, 537,
+ 570, 577, 592, 642, 684, 695, 716, 726, 732, 763,
+ 780, 780, 782, 789, 801, 802, 803, 806, 818, 830,
+ 848, 859, 871, 873, 874, 875, 876, 879, 879, 879,
+ 879, 880, 883, 884, 885, 886, 887, 888, 891, 909,
+ 913, 919, 923, 927, 931, 940, 949, 953, 958, 964,
+ 975, 975, 976, 978, 982, 986, 990, 996, 996, 998,
+ 1014, 1037, 1040, 1051, 1057, 1063, 1064, 1071, 1077, 1083,
+ 1091, 1097, 1103, 1111, 1117, 1123, 1131, 1132, 1135, 1136,
+ 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1148,
+ 1157, 1161, 1165, 1171, 1180, 1184, 1188, 1197, 1201, 1207,
+ 1213, 1220, 1225, 1233, 1243, 1245, 1253, 1259, 1263, 1267,
+ 1273, 1284, 1293, 1297, 1302, 1306, 1310, 1314, 1320, 1327,
+ 1331, 1337, 1345, 1356, 1363, 1367, 1373, 1383, 1394, 1398,
+ 1416, 1425, 1428, 1434, 1438, 1442, 1448, 1459, 1464, 1469,
+ 1474, 1479, 1484, 1492, 1495, 1500, 1513, 1521, 1532, 1540,
+ 1540, 1542, 1542, 1544, 1554, 1559, 1566, 1576, 1585, 1590,
+ 1597, 1607, 1617, 1629, 1629, 1630, 1630, 1632, 1642, 1650,
+ 1660, 1668, 1676, 1685, 1696, 1700, 1706, 1707, 1708, 1711,
+ 1711, 1714, 1714, 1717, 1723, 1731, 1744, 1753, 1762, 1766,
+ 1775, 1784, 1795, 1802, 1807, 1816, 1828, 1831, 1840, 1851,
+ 1852, 1853, 1856, 1857, 1858, 1861, 1862, 1865, 1866, 1869,
+ 1870, 1873, 1884, 1895, 1906
};
#endif
"EYE", "FOG", "FOGCOORD", "FRAGMENT", "FRONT", "HALF", "INVERSE",
"INVTRANS", "LIGHT", "LIGHTMODEL", "LIGHTPROD", "LOCAL", "MATERIAL",
"MAT_PROGRAM", "MATRIX", "MATRIXINDEX", "MODELVIEW", "MVP", "NORMAL",
- "OBJECT", "PALETTE", "PARAMS", "PLANE", "POINT", "POINTSIZE", "POSITION",
- "PRIMARY", "PROGRAM", "PROJECTION", "RANGE", "RESULT", "ROW",
- "SCENECOLOR", "SECONDARY", "SHININESS", "SIZE", "SPECULAR", "SPOT",
+ "OBJECT", "PALETTE", "PARAMS", "PLANE", "POINT_TOK", "POINTSIZE",
+ "POSITION", "PRIMARY", "PROGRAM", "PROJECTION", "RANGE", "RESULT", "ROW",
+ "SCENECOLOR", "SECONDARY", "SHININESS", "SIZE_TOK", "SPECULAR", "SPOT",
"STATE", "TEXCOORD", "TEXENV", "TEXGEN", "TEXGEN_Q", "TEXGEN_R",
"TEXGEN_S", "TEXGEN_T", "TEXTURE", "TRANSPOSE", "TEXTURE_UNIT", "TEX_1D",
"TEX_2D", "TEX_3D", "TEX_CUBE", "TEX_RECT", "TEX_SHADOW1D",
"stateMatrixRows", "optMatrixRows", "stateMatrixItem",
"stateOptMatModifier", "stateMatModifier", "stateMatrixRowNum",
"stateMatrixName", "stateOptModMatNum", "stateModMatNum",
- "statePaletteMatNum", "stateProgramMatNum", "programSingleItem",
- "programMultipleItem", "progEnvParams", "progEnvParamNums",
- "progEnvParam", "progLocalParams", "progLocalParamNums",
- "progLocalParam", "progEnvParamNum", "progLocalParamNum",
- "paramConstDecl", "paramConstUse", "paramConstScalarDecl",
- "paramConstScalarUse", "paramConstVector", "signedFloatConstant",
- "optionalSign", "TEMP_statement", "@1", "ADDRESS_statement", "@2",
- "varNameList", "OUTPUT_statement", "resultBinding", "resultColBinding",
- "optResultFaceType", "optResultColorType", "optFaceType", "optColorType",
+ "statePaletteMatNum", "stateProgramMatNum", "stateDepthItem",
+ "programSingleItem", "programMultipleItem", "progEnvParams",
+ "progEnvParamNums", "progEnvParam", "progLocalParams",
+ "progLocalParamNums", "progLocalParam", "progEnvParamNum",
+ "progLocalParamNum", "paramConstDecl", "paramConstUse",
+ "paramConstScalarDecl", "paramConstScalarUse", "paramConstVector",
+ "signedFloatConstant", "optionalSign", "TEMP_statement", "@1",
+ "ADDRESS_statement", "@2", "varNameList", "OUTPUT_statement",
+ "resultBinding", "resultColBinding", "optResultFaceType",
+ "optResultColorType", "optFaceType", "optColorType",
"optTexCoordUnitNum", "optTexImageUnitNum", "optLegacyTexUnitNum",
"texCoordUnitNum", "texImageUnitNum", "legacyTexUnitNum",
"ALIAS_statement", 0
163, 163, 164, 165, 165, 165, 165, 166, 166, 167,
168, 169, 169, 170, 171, 172, 172, 173, 173, 173,
174, 174, 174, 175, 175, 175, 176, 176, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 178, 179,
- 179, 179, 180, 181, 181, 181, 181, 181, 182, 183,
- 184, 184, 185, 186, 187, 188, 189, 189, 189, 190,
- 191, 192, 192, 193, 193, 193, 193, 194, 195, 195,
- 196, 197, 198, 199, 199, 200, 201, 202, 202, 203,
- 204, 204, 205, 205, 205, 206, 207, 207, 207, 207,
- 207, 207, 208, 208, 209, 210, 211, 212, 212, 213,
- 213, 214, 215, 215, 216, 217, 218, 218, 219, 220,
- 221, 222, 222, 223, 223, 224, 225, 225, 226, 226,
- 226, 226, 227, 227, 228, 228, 228, 230, 229, 232,
- 231, 233, 233, 234, 235, 235, 235, 235, 235, 235,
- 236, 237, 237, 237, 238, 238, 238, 239, 239, 239,
- 240, 240, 240, 241, 241, 242, 242, 243, 243, 244,
- 245, 246, 247
+ 177, 177, 177, 177, 177, 177, 177, 177, 177, 178,
+ 179, 179, 179, 180, 181, 181, 181, 181, 181, 182,
+ 183, 184, 184, 185, 186, 187, 188, 189, 189, 189,
+ 190, 191, 192, 192, 193, 193, 193, 193, 194, 195,
+ 195, 196, 197, 198, 199, 199, 200, 201, 202, 202,
+ 203, 204, 204, 205, 205, 205, 206, 207, 207, 207,
+ 207, 207, 207, 208, 208, 209, 210, 211, 212, 213,
+ 213, 214, 214, 215, 216, 216, 217, 218, 219, 219,
+ 220, 221, 222, 223, 223, 224, 224, 225, 226, 226,
+ 227, 227, 227, 227, 228, 228, 229, 229, 229, 231,
+ 230, 233, 232, 234, 234, 235, 236, 236, 236, 236,
+ 236, 236, 237, 238, 238, 238, 239, 239, 239, 240,
+ 240, 240, 241, 241, 241, 242, 242, 243, 243, 244,
+ 244, 245, 246, 247, 248
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
0, 3, 1, 1, 2, 1, 2, 1, 1, 3,
6, 0, 1, 2, 4, 1, 3, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 3, 1,
- 1, 1, 5, 1, 1, 1, 2, 1, 1, 2,
- 1, 2, 6, 1, 3, 1, 1, 1, 1, 1,
- 4, 1, 1, 1, 1, 1, 1, 2, 1, 1,
- 5, 1, 2, 1, 1, 5, 2, 0, 6, 3,
- 0, 1, 1, 1, 1, 1, 2, 1, 1, 2,
- 4, 4, 0, 1, 1, 1, 1, 1, 1, 1,
- 1, 5, 1, 3, 5, 5, 1, 3, 5, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 3, 5,
- 7, 9, 2, 2, 1, 1, 0, 0, 3, 0,
- 3, 3, 1, 4, 2, 2, 2, 2, 3, 2,
- 3, 0, 1, 1, 0, 1, 1, 0, 1, 1,
- 0, 1, 1, 0, 3, 0, 3, 0, 3, 1,
- 1, 1, 4
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
+ 1, 1, 1, 5, 1, 1, 1, 2, 1, 1,
+ 2, 1, 2, 6, 1, 3, 1, 1, 1, 1,
+ 1, 4, 1, 1, 1, 1, 1, 1, 2, 1,
+ 1, 5, 1, 2, 1, 1, 5, 2, 0, 6,
+ 3, 0, 1, 1, 1, 1, 1, 2, 1, 1,
+ 2, 4, 4, 0, 3, 1, 1, 1, 2, 1,
+ 1, 1, 1, 5, 1, 3, 5, 5, 1, 3,
+ 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 3, 5, 7, 9, 2, 2, 1, 1, 0, 0,
+ 3, 0, 3, 3, 1, 4, 2, 2, 2, 2,
+ 3, 2, 3, 0, 1, 1, 0, 1, 1, 0,
+ 1, 1, 0, 1, 1, 0, 3, 0, 3, 0,
+ 3, 1, 1, 1, 4
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
static const yytype_uint16 yydefact[] =
{
0, 3, 4, 0, 6, 1, 9, 0, 5, 0,
- 0, 229, 0, 0, 0, 0, 227, 2, 0, 0,
- 0, 0, 0, 0, 0, 226, 0, 8, 0, 12,
+ 0, 231, 0, 0, 0, 0, 229, 2, 0, 0,
+ 0, 0, 0, 0, 0, 228, 0, 8, 0, 12,
13, 14, 15, 16, 17, 18, 19, 21, 22, 20,
0, 82, 83, 107, 108, 84, 85, 86, 87, 7,
0, 0, 0, 0, 0, 0, 0, 58, 0, 81,
- 57, 0, 0, 0, 0, 0, 69, 0, 0, 224,
- 225, 30, 0, 0, 10, 11, 232, 230, 0, 0,
- 0, 111, 226, 109, 228, 241, 239, 235, 237, 234,
- 253, 236, 226, 77, 78, 79, 80, 47, 226, 226,
- 226, 226, 226, 226, 71, 48, 217, 216, 0, 0,
- 0, 0, 53, 226, 76, 0, 54, 56, 120, 121,
- 197, 198, 122, 213, 214, 0, 0, 262, 88, 233,
- 112, 0, 113, 117, 118, 119, 211, 212, 215, 0,
- 243, 242, 244, 0, 238, 0, 0, 0, 0, 25,
- 0, 24, 23, 250, 105, 103, 253, 90, 0, 0,
- 0, 0, 0, 247, 0, 247, 0, 0, 257, 253,
- 128, 129, 130, 131, 133, 132, 134, 135, 136, 137,
- 0, 250, 95, 0, 93, 91, 253, 0, 100, 89,
- 0, 74, 73, 75, 46, 0, 0, 231, 0, 223,
- 222, 245, 246, 240, 259, 0, 226, 226, 0, 0,
- 226, 251, 252, 104, 106, 0, 0, 0, 168, 169,
- 167, 0, 150, 249, 248, 149, 0, 0, 0, 0,
- 192, 188, 0, 187, 253, 180, 174, 173, 172, 0,
- 0, 0, 0, 94, 0, 96, 0, 0, 92, 226,
- 218, 62, 0, 60, 61, 0, 226, 0, 110, 254,
- 27, 26, 72, 45, 255, 0, 0, 209, 0, 210,
- 0, 171, 0, 159, 0, 151, 0, 156, 157, 140,
- 141, 158, 138, 139, 0, 194, 186, 193, 0, 189,
- 182, 184, 183, 179, 181, 261, 0, 155, 154, 161,
- 162, 0, 0, 102, 0, 99, 0, 0, 0, 55,
- 70, 64, 44, 0, 0, 226, 0, 31, 0, 226,
- 204, 208, 0, 0, 247, 196, 0, 195, 0, 258,
- 166, 165, 163, 164, 160, 185, 0, 97, 98, 101,
- 226, 219, 0, 0, 63, 226, 51, 52, 50, 0,
- 0, 0, 115, 123, 126, 124, 199, 200, 125, 260,
- 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 29, 28, 170, 145, 147, 144, 0,
- 142, 143, 0, 191, 190, 175, 0, 67, 65, 68,
- 66, 0, 0, 0, 127, 177, 226, 114, 256, 148,
- 146, 152, 153, 226, 220, 226, 0, 0, 0, 176,
- 116, 0, 0, 0, 202, 0, 206, 0, 221, 226,
- 201, 0, 205, 0, 0, 49, 203, 207, 0, 0,
- 178
+ 57, 0, 0, 0, 0, 0, 69, 0, 0, 226,
+ 227, 30, 0, 0, 10, 11, 234, 232, 0, 0,
+ 0, 111, 228, 109, 230, 243, 241, 237, 239, 236,
+ 255, 238, 228, 77, 78, 79, 80, 47, 228, 228,
+ 228, 228, 228, 228, 71, 48, 219, 218, 0, 0,
+ 0, 0, 53, 228, 76, 0, 54, 56, 120, 121,
+ 199, 200, 122, 215, 216, 0, 0, 264, 88, 235,
+ 112, 0, 113, 117, 118, 119, 213, 214, 217, 0,
+ 245, 244, 246, 0, 240, 0, 0, 0, 0, 25,
+ 0, 24, 23, 252, 105, 103, 255, 90, 0, 0,
+ 0, 0, 0, 0, 249, 0, 249, 0, 0, 259,
+ 255, 128, 129, 130, 131, 133, 132, 134, 135, 136,
+ 137, 0, 138, 252, 95, 0, 93, 91, 255, 0,
+ 100, 89, 0, 74, 73, 75, 46, 0, 0, 233,
+ 0, 225, 224, 247, 248, 242, 261, 0, 228, 228,
+ 0, 0, 228, 253, 254, 104, 106, 0, 0, 0,
+ 198, 169, 170, 168, 0, 151, 251, 250, 150, 0,
+ 0, 0, 0, 193, 189, 0, 188, 255, 181, 175,
+ 174, 173, 0, 0, 0, 0, 94, 0, 96, 0,
+ 0, 92, 228, 220, 62, 0, 60, 61, 0, 228,
+ 0, 110, 256, 27, 26, 72, 45, 257, 0, 0,
+ 211, 0, 212, 0, 172, 0, 160, 0, 152, 0,
+ 157, 158, 141, 142, 159, 139, 140, 0, 0, 187,
+ 0, 190, 183, 185, 184, 180, 182, 263, 0, 156,
+ 155, 162, 163, 0, 0, 102, 0, 99, 0, 0,
+ 0, 55, 70, 64, 44, 0, 0, 228, 0, 31,
+ 0, 228, 206, 210, 0, 0, 249, 197, 0, 195,
+ 0, 196, 0, 260, 167, 166, 164, 165, 161, 186,
+ 0, 97, 98, 101, 228, 221, 0, 0, 63, 228,
+ 51, 52, 50, 0, 0, 0, 115, 123, 126, 124,
+ 201, 202, 125, 262, 0, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 29, 28, 171,
+ 146, 148, 145, 0, 143, 144, 0, 192, 194, 191,
+ 176, 0, 67, 65, 68, 66, 0, 0, 0, 127,
+ 178, 228, 114, 258, 149, 147, 153, 154, 228, 222,
+ 228, 0, 0, 0, 177, 116, 0, 0, 0, 204,
+ 0, 208, 0, 223, 228, 203, 0, 207, 0, 0,
+ 49, 205, 209, 0, 0, 179
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 3, 4, 6, 8, 9, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 265, 373,
- 39, 146, 71, 58, 67, 312, 313, 348, 114, 59,
- 115, 252, 253, 254, 344, 388, 390, 68, 311, 105,
- 263, 194, 97, 40, 41, 116, 189, 306, 248, 304,
- 157, 42, 43, 44, 131, 83, 258, 351, 132, 117,
- 352, 353, 118, 170, 282, 171, 380, 400, 172, 225,
- 173, 401, 174, 298, 283, 274, 175, 301, 334, 176,
- 220, 177, 272, 178, 238, 179, 394, 409, 180, 293,
- 294, 336, 235, 286, 287, 328, 326, 119, 355, 356,
- 413, 120, 357, 415, 121, 268, 270, 358, 122, 136,
- 123, 124, 138, 72, 45, 55, 46, 50, 77, 47,
- 60, 91, 142, 203, 226, 213, 144, 317, 240, 205,
- 360, 296, 48
+ 31, 32, 33, 34, 35, 36, 37, 38, 268, 377,
+ 39, 146, 71, 58, 67, 314, 315, 352, 114, 59,
+ 115, 255, 256, 257, 348, 393, 395, 68, 313, 105,
+ 266, 196, 97, 40, 41, 116, 191, 308, 251, 306,
+ 157, 42, 43, 44, 131, 83, 261, 355, 132, 117,
+ 356, 357, 118, 171, 285, 172, 384, 405, 173, 228,
+ 174, 406, 175, 300, 286, 277, 176, 303, 338, 177,
+ 223, 178, 275, 179, 241, 180, 399, 414, 181, 295,
+ 296, 340, 238, 289, 330, 332, 328, 182, 119, 359,
+ 360, 418, 120, 361, 420, 121, 271, 273, 362, 122,
+ 136, 123, 124, 138, 72, 45, 55, 46, 50, 77,
+ 47, 60, 91, 142, 205, 229, 215, 144, 319, 243,
+ 207, 364, 298, 48
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -377
+#define YYPACT_NINF -369
static const yytype_int16 yypact[] =
{
- 205, -377, -377, 34, -377, -377, 50, -17, -377, 166,
- -16, -377, 12, 26, 36, 65, -377, -377, -31, -31,
- -31, -31, -31, -31, 72, -67, -31, -377, 108, -377,
- -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
- 109, -377, -377, -377, -377, -377, -377, -377, -377, -377,
- 118, 28, 106, 107, 54, 118, 78, -377, 110, 101,
- -377, 113, 114, 115, 116, 117, -377, 119, 123, -377,
- -377, -377, -15, 120, -377, -377, -377, 121, 131, -13,
- 168, 214, -34, -377, 121, 27, -377, -377, -377, -377,
- 129, -377, -67, -377, -377, -377, -377, -377, -67, -67,
- -67, -67, -67, -67, -377, -377, -377, -377, 1, 88,
- 84, 0, 130, -67, 66, 132, -377, -377, -377, -377,
- -377, -377, -377, -377, -377, -15, 141, -377, -377, -377,
- -377, 133, -377, -377, -377, -377, -377, -377, -377, 188,
- -377, -377, -25, 219, -377, 136, 137, -15, 138, -377,
- 139, -377, -377, 4, -377, -377, 129, -377, 140, 142,
- 143, 40, 144, 63, 145, 91, 58, 16, 146, 129,
- -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
- 182, 4, -377, 147, -377, -377, 129, 148, 149, -377,
- 41, -377, -377, -377, -377, -7, 152, -377, 150, -377,
- -377, -377, -377, -377, -377, 151, -67, -67, 159, 167,
- -67, -377, -377, -377, -377, 242, 243, 244, -377, -377,
- -377, 245, -377, -377, -377, -377, 202, 245, 24, 161,
- 248, -377, 163, -377, 129, 22, -377, -377, -377, 250,
- 246, -2, 165, -377, 253, -377, 254, 253, -377, -67,
- -377, -377, 169, -377, -377, 175, -67, 170, -377, -377,
- -377, -377, -377, -377, 171, 173, 174, -377, 176, -377,
- 177, -377, 178, -377, 179, -377, 180, -377, -377, -377,
- -377, -377, -377, -377, 260, -377, -377, -377, 262, -377,
- -377, -377, -377, -377, -377, -377, 181, -377, -377, -377,
- -377, 128, 269, -377, 183, -377, 185, 186, 42, -377,
- -377, 102, -377, 189, -5, -11, 275, -377, 105, -67,
- -377, -377, 247, 45, 91, -377, 190, -377, 191, -377,
- -377, -377, -377, -377, -377, -377, 192, -377, -377, -377,
- -67, -377, 276, 280, -377, -67, -377, -377, -377, 90,
- 84, 46, -377, -377, -377, -377, -377, -377, -377, -377,
- 195, -377, -377, -377, -377, -377, -377, -377, -377, -377,
- -377, -377, -377, -377, -377, -377, -377, -377, -377, 274,
- -377, -377, -4, -377, -377, -377, 47, -377, -377, -377,
- -377, 199, 200, 201, -377, 252, -11, -377, -377, -377,
- -377, -377, -377, -67, -377, -67, 242, 243, 203, -377,
- -377, 193, 206, 209, 208, 210, 216, 269, -377, -67,
- -377, 242, -377, 243, 48, -377, -377, -377, 269, 213,
- -377
+ 143, -369, -369, 36, -369, -369, 45, -39, -369, 169,
+ -33, -369, -19, -6, -4, 12, -369, -369, -34, -34,
+ -34, -34, -34, -34, 15, 62, -34, -369, 26, -369,
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ 60, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ 20, 56, 107, 110, 37, 20, -3, -369, 111, 109,
+ -369, 113, 114, 116, 117, 118, -369, 119, 125, -369,
+ -369, -369, -15, 121, -369, -369, -369, 122, 132, -18,
+ 167, 210, -11, -369, 122, 63, -369, -369, -369, -369,
+ 130, -369, 62, -369, -369, -369, -369, -369, 62, 62,
+ 62, 62, 62, 62, -369, -369, -369, -369, 9, 72,
+ 87, -1, 131, 62, 104, 134, -369, -369, -369, -369,
+ -369, -369, -369, -369, -369, -15, 142, -369, -369, -369,
+ -369, 135, -369, -369, -369, -369, -369, -369, -369, 182,
+ -369, -369, 52, 219, -369, 138, 139, -15, 140, -369,
+ 141, -369, -369, 61, -369, -369, 130, -369, 144, 145,
+ 146, 180, 11, 147, 85, 148, 99, 89, -2, 149,
+ 130, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -369, 184, -369, 61, -369, 150, -369, -369, 130, 151,
+ 152, -369, 27, -369, -369, -369, -369, -10, 154, -369,
+ 153, -369, -369, -369, -369, -369, -369, 155, 62, 62,
+ 161, 168, 62, -369, -369, -369, -369, 229, 244, 246,
+ -369, -369, -369, -369, 247, -369, -369, -369, -369, 204,
+ 247, 17, 163, 164, -369, 165, -369, 130, 67, -369,
+ -369, -369, 252, 248, 18, 170, -369, 253, -369, 255,
+ 253, -369, 62, -369, -369, 171, -369, -369, 177, 62,
+ 172, -369, -369, -369, -369, -369, -369, 173, 175, 176,
+ -369, 178, -369, 179, -369, 181, -369, 183, -369, 185,
+ -369, -369, -369, -369, -369, -369, -369, 262, 264, -369,
+ 267, -369, -369, -369, -369, -369, -369, -369, 186, -369,
+ -369, -369, -369, 136, 269, -369, 187, -369, 188, 190,
+ 43, -369, -369, 106, -369, 193, -5, -7, 271, -369,
+ 108, 62, -369, -369, 245, 4, 99, -369, 194, -369,
+ 195, -369, 196, -369, -369, -369, -369, -369, -369, -369,
+ 197, -369, -369, -369, 62, -369, 280, 285, -369, 62,
+ -369, -369, -369, 93, 87, 53, -369, -369, -369, -369,
+ -369, -369, -369, -369, 199, -369, -369, -369, -369, -369,
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -369, -369, -369, 278, -369, -369, 8, -369, -369, -369,
+ -369, 57, -369, -369, -369, -369, 203, 205, 206, -369,
+ 250, -7, -369, -369, -369, -369, -369, -369, 62, -369,
+ 62, 229, 244, 208, -369, -369, 198, 211, 202, 213,
+ 214, 218, 269, -369, 62, -369, 229, -369, 244, 54,
+ -369, -369, -369, 269, 215, -369
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
- -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
- -377, -94, -88, 124, -377, -377, -333, -377, -100, -377,
- -377, -377, -377, -377, -377, -377, -377, 134, -377, -377,
- -377, -377, -377, -377, -377, 231, -377, -377, -377, 77,
- -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
- -71, -377, -81, -377, -377, -377, -377, -377, -377, -377,
- -377, -377, -377, -377, -304, 99, -377, -377, -377, -377,
- -377, -377, -377, -377, -377, -377, -377, -377, -23, -377,
- -377, -286, -377, -377, -377, -377, -377, 249, -377, -377,
- -377, -377, -377, -377, -377, -376, -368, 251, -377, -377,
- -377, -80, -110, -82, -377, -377, -377, -377, 273, -377,
- 255, -377, -377, -377, -160, 153, -146, -377, -377, -377,
- -377, -377, -377
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -369, -94, -88, 133, -369, -369, -334, -369, -85, -369,
+ -369, -369, -369, -369, -369, -369, -369, 128, -369, -369,
+ -369, -369, -369, -369, -369, 251, -369, -369, -369, 77,
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -72, -369, -81, -369, -369, -369, -369, -369, -369, -369,
+ -369, -369, -369, -369, -305, 101, -369, -369, -369, -369,
+ -369, -369, -369, -369, -369, -369, -369, -369, -22, -369,
+ -369, -336, -369, -369, -369, -369, -369, -369, 254, -369,
+ -369, -369, -369, -369, -369, -369, -342, -368, 256, -369,
+ -369, -369, -80, -110, -82, -369, -369, -369, -369, 279,
+ -369, 257, -369, -369, -369, -161, 156, -146, -369, -369,
+ -369, -369, -369, -369
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
#define YYTABLE_NINF -60
static const yytype_int16 yytable[] =
{
- 139, 133, 137, 190, 145, 228, 149, 106, 107, 152,
- 214, 148, 391, 150, 151, 251, 147, 346, 147, 381,
- 277, 147, 108, 241, 108, 196, 278, 109, 181, 153,
- 414, 139, 299, 56, 5, 201, 182, 154, 110, 416,
- 245, 236, 202, 69, 70, 426, 109, 208, 277, 183,
- 349, 300, 184, 140, 278, 427, 279, 110, 7, 185,
- 155, 350, 290, 291, 211, 141, 281, 57, 218, 277,
- 376, 212, 412, 186, 156, 278, 69, 70, 402, 113,
- 111, 10, 111, 112, 377, 237, 425, 222, 289, 223,
- 49, 66, 280, 347, 281, 219, 187, 188, 113, 69,
- 70, 224, 113, 292, 378, 229, 85, 86, 230, 231,
- 51, 160, 232, 261, 87, 281, 379, 223, 260, 161,
- 233, 158, 266, 392, 52, 147, 162, 163, 164, 224,
- 165, 424, 166, 159, 53, 393, 88, 89, 234, 308,
- 78, 167, 429, 61, 62, 63, 64, 65, 249, 340,
- 73, 90, 428, 396, 403, 250, 341, 385, 168, 169,
- 397, 404, 81, 54, 382, 191, 82, 139, 192, 193,
- 66, 11, 12, 13, 314, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 361, 362,
- 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
- 93, 94, 95, 96, 330, 331, 332, 333, 1, 2,
- 199, 200, 342, 343, 74, 75, 76, 92, 79, 80,
- 98, 99, 100, 101, 102, 104, 103, 125, 126, 127,
- 386, 374, 56, 139, 354, 137, 130, 143, -59, 197,
- 195, 204, 198, 206, 207, 209, 210, 242, 215, 264,
- 216, 217, 221, 227, 239, 244, 246, 247, 139, 256,
- 259, 262, 257, 314, 267, 269, 271, 273, 275, 284,
- 285, 288, 295, 302, 297, 303, 305, 310, 309, 316,
- 318, 319, 325, 315, 327, 320, 321, 322, 323, 324,
- 329, 335, 337, 411, 338, 339, 345, 359, 387, 383,
- 384, 385, 389, 375, 398, 399, 405, 418, 406, 407,
- 128, 417, 421, 419, 139, 354, 137, 408, 420, 422,
- 423, 139, 430, 314, 307, 410, 276, 395, 84, 255,
- 0, 134, 0, 135, 243, 129, 0, 314
+ 139, 133, 137, 192, 145, 231, 149, 106, 107, 152,
+ 216, 148, 254, 150, 151, 396, 147, 350, 147, 108,
+ 385, 147, 108, 239, 244, 85, 86, 183, 280, 380,
+ 56, 139, 280, 87, 281, 184, 5, 153, 281, 221,
+ 198, 280, 248, 381, 421, 154, 109, 281, 185, 282,
+ 109, 186, 301, 7, 353, 88, 89, 110, 187, 10,
+ 432, 110, 210, 382, 57, 354, 222, 240, 155, 419,
+ 90, 302, 188, 49, 284, 383, 417, 111, 284, 51,
+ 111, 407, 156, 112, 431, 283, 429, 284, 66, 140,
+ 430, 291, 52, 351, 53, 189, 190, 434, 113, 69,
+ 70, 141, 113, 69, 70, 158, 113, 292, 293, 225,
+ 54, 226, 203, 66, 160, 264, 161, 159, 76, 204,
+ 263, 213, 162, 227, 269, 226, 397, 147, 214, 163,
+ 164, 165, 74, 166, 252, 167, 232, 227, 398, 233,
+ 234, 253, 310, 235, 168, 81, 1, 2, 294, 82,
+ 344, 236, 61, 62, 63, 64, 65, 345, 433, 73,
+ 401, 169, 170, 390, 408, 386, 75, 402, 78, 237,
+ 139, 409, 69, 70, 11, 12, 13, 316, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 365, 366, 367, 368, 369, 370, 371, 372, 373,
+ 374, 375, 376, 193, 201, 202, 194, 195, 93, 94,
+ 95, 96, 334, 335, 336, 337, 346, 347, 92, 79,
+ 98, 99, 80, 100, 101, 102, 103, 104, 125, 126,
+ 127, 56, 130, 378, 391, 139, 358, 137, 143, -59,
+ 199, 206, 197, 220, 200, 208, 209, 211, 212, 245,
+ 267, 270, 217, 218, 219, 224, 230, 242, 247, 249,
+ 250, 259, 139, 265, 262, 260, 272, 316, 274, 276,
+ 278, 287, 288, 290, 297, 305, 299, 307, 304, 312,
+ 311, 318, 320, 321, 327, 317, 329, 322, 323, 331,
+ 324, 339, 325, 363, 326, 333, 341, 342, 416, 343,
+ 349, 379, 392, 387, 388, 389, 390, 394, 403, 404,
+ 410, 425, 423, 411, 412, 413, 422, 426, 424, 139,
+ 358, 137, 428, 427, 435, 258, 139, 309, 316, 415,
+ 128, 279, 400, 0, 84, 0, 134, 129, 135, 246,
+ 0, 0, 316
};
static const yytype_int16 yycheck[] =
{
- 82, 82, 82, 113, 92, 165, 100, 22, 23, 103,
- 156, 99, 345, 101, 102, 22, 98, 22, 100, 323,
- 24, 103, 37, 169, 37, 125, 30, 61, 28, 28,
- 406, 113, 34, 64, 0, 60, 36, 36, 72, 407,
- 186, 25, 67, 110, 111, 421, 61, 147, 24, 49,
- 61, 53, 52, 26, 30, 423, 32, 72, 8, 59,
- 59, 72, 40, 41, 60, 38, 70, 98, 28, 24,
- 25, 67, 405, 73, 73, 30, 110, 111, 382, 113,
- 95, 98, 95, 98, 39, 69, 419, 24, 234, 26,
- 106, 98, 68, 98, 70, 55, 96, 97, 113, 110,
- 111, 38, 113, 81, 59, 47, 28, 29, 50, 51,
- 98, 27, 54, 207, 36, 70, 71, 26, 206, 35,
- 62, 33, 210, 33, 98, 207, 42, 43, 44, 38,
- 46, 417, 48, 45, 98, 45, 58, 59, 80, 249,
- 112, 57, 428, 19, 20, 21, 22, 23, 107, 107,
- 26, 73, 104, 107, 107, 114, 114, 109, 74, 75,
- 114, 114, 108, 98, 324, 99, 112, 249, 102, 103,
- 98, 5, 6, 7, 256, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 99, 100, 101, 102, 76, 77, 78, 79, 3, 4,
- 22, 23, 110, 111, 106, 106, 98, 107, 112, 112,
- 107, 107, 107, 107, 107, 102, 107, 107, 107, 98,
- 340, 319, 64, 315, 315, 315, 22, 108, 108, 98,
- 108, 22, 109, 107, 107, 107, 107, 65, 108, 82,
- 108, 108, 108, 108, 108, 108, 108, 108, 340, 107,
- 109, 102, 112, 345, 22, 22, 22, 22, 66, 108,
- 22, 108, 22, 108, 28, 22, 22, 102, 109, 108,
- 107, 107, 22, 113, 22, 109, 109, 109, 109, 109,
- 109, 22, 109, 403, 109, 109, 107, 22, 22, 109,
- 109, 109, 22, 56, 109, 31, 107, 114, 108, 108,
- 79, 108, 104, 107, 396, 396, 396, 65, 109, 109,
- 104, 403, 109, 405, 247, 396, 227, 350, 55, 195,
- -1, 82, -1, 82, 181, 80, -1, 419
+ 82, 82, 82, 113, 92, 166, 100, 22, 23, 103,
+ 156, 99, 22, 101, 102, 349, 98, 22, 100, 37,
+ 325, 103, 37, 25, 170, 28, 29, 28, 24, 25,
+ 64, 113, 24, 36, 30, 36, 0, 28, 30, 28,
+ 125, 24, 188, 39, 412, 36, 61, 30, 49, 32,
+ 61, 52, 34, 8, 61, 58, 59, 72, 59, 98,
+ 428, 72, 147, 59, 98, 72, 55, 69, 59, 411,
+ 73, 53, 73, 106, 70, 71, 410, 95, 70, 98,
+ 95, 386, 73, 98, 426, 68, 422, 70, 98, 26,
+ 424, 237, 98, 98, 98, 96, 97, 433, 113, 110,
+ 111, 38, 113, 110, 111, 33, 113, 40, 41, 24,
+ 98, 26, 60, 98, 27, 209, 29, 45, 98, 67,
+ 208, 60, 35, 38, 212, 26, 33, 209, 67, 42,
+ 43, 44, 106, 46, 107, 48, 47, 38, 45, 50,
+ 51, 114, 252, 54, 57, 108, 3, 4, 81, 112,
+ 107, 62, 19, 20, 21, 22, 23, 114, 104, 26,
+ 107, 74, 75, 109, 107, 326, 106, 114, 112, 80,
+ 252, 114, 110, 111, 5, 6, 7, 259, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 99, 22, 23, 102, 103, 99, 100,
+ 101, 102, 76, 77, 78, 79, 110, 111, 107, 112,
+ 107, 107, 112, 107, 107, 107, 107, 102, 107, 107,
+ 98, 64, 22, 321, 344, 317, 317, 317, 108, 108,
+ 98, 22, 108, 63, 109, 107, 107, 107, 107, 65,
+ 82, 22, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 107, 344, 102, 109, 112, 22, 349, 22, 22,
+ 66, 108, 108, 108, 22, 22, 28, 22, 108, 102,
+ 109, 108, 107, 107, 22, 113, 22, 109, 109, 22,
+ 109, 22, 109, 22, 109, 109, 109, 109, 408, 109,
+ 107, 56, 22, 109, 109, 109, 109, 22, 109, 31,
+ 107, 109, 114, 108, 108, 65, 108, 104, 107, 401,
+ 401, 401, 104, 109, 109, 197, 408, 250, 410, 401,
+ 79, 230, 354, -1, 55, -1, 82, 80, 82, 183,
+ -1, -1, 424
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
98, 5, 6, 7, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 121, 122, 123,
124, 125, 126, 127, 128, 129, 130, 131, 132, 135,
- 158, 159, 166, 167, 168, 229, 231, 234, 247, 106,
- 232, 98, 98, 98, 98, 230, 64, 98, 138, 144,
- 235, 138, 138, 138, 138, 138, 98, 139, 152, 110,
- 111, 137, 228, 138, 106, 106, 98, 233, 112, 112,
- 112, 108, 112, 170, 233, 28, 29, 36, 58, 59,
- 73, 236, 107, 99, 100, 101, 102, 157, 107, 107,
+ 158, 159, 166, 167, 168, 230, 232, 235, 248, 106,
+ 233, 98, 98, 98, 98, 231, 64, 98, 138, 144,
+ 236, 138, 138, 138, 138, 138, 98, 139, 152, 110,
+ 111, 137, 229, 138, 106, 106, 98, 234, 112, 112,
+ 112, 108, 112, 170, 234, 28, 29, 36, 58, 59,
+ 73, 237, 107, 99, 100, 101, 102, 157, 107, 107,
107, 107, 107, 107, 102, 154, 22, 23, 37, 61,
- 72, 95, 98, 113, 143, 145, 160, 174, 177, 212,
- 216, 219, 223, 225, 226, 107, 107, 98, 160, 235,
- 22, 169, 173, 177, 212, 222, 224, 226, 227, 228,
- 26, 38, 237, 108, 241, 137, 136, 228, 137, 136,
+ 72, 95, 98, 113, 143, 145, 160, 174, 177, 213,
+ 217, 220, 224, 226, 227, 107, 107, 98, 160, 236,
+ 22, 169, 173, 177, 213, 223, 225, 227, 228, 229,
+ 26, 38, 238, 108, 242, 137, 136, 229, 137, 136,
137, 137, 136, 28, 36, 59, 73, 165, 33, 45,
- 27, 35, 42, 43, 44, 46, 48, 57, 74, 75,
- 178, 180, 183, 185, 187, 191, 194, 196, 198, 200,
- 203, 28, 36, 49, 52, 59, 73, 96, 97, 161,
- 227, 99, 102, 103, 156, 108, 143, 98, 109, 22,
- 23, 60, 67, 238, 22, 244, 107, 107, 143, 107,
- 107, 60, 67, 240, 241, 108, 108, 108, 28, 55,
- 195, 108, 24, 26, 38, 184, 239, 108, 239, 47,
- 50, 51, 54, 62, 80, 207, 25, 69, 199, 108,
- 243, 241, 65, 240, 108, 241, 108, 108, 163, 107,
- 114, 22, 146, 147, 148, 152, 107, 112, 171, 109,
- 137, 136, 102, 155, 82, 133, 137, 22, 220, 22,
- 221, 22, 197, 22, 190, 66, 190, 24, 30, 32,
- 68, 70, 179, 189, 108, 22, 208, 209, 108, 241,
- 40, 41, 81, 204, 205, 22, 246, 28, 188, 34,
- 53, 192, 108, 22, 164, 22, 162, 164, 227, 109,
- 102, 153, 140, 141, 228, 113, 108, 242, 107, 107,
- 109, 109, 109, 109, 109, 22, 211, 22, 210, 109,
- 76, 77, 78, 79, 193, 22, 206, 109, 109, 109,
- 107, 114, 110, 111, 149, 107, 22, 98, 142, 61,
- 72, 172, 175, 176, 177, 213, 214, 217, 222, 22,
- 245, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 134, 137, 56, 25, 39, 59, 71,
- 181, 189, 239, 109, 109, 109, 227, 22, 150, 22,
- 151, 141, 33, 45, 201, 203, 107, 114, 109, 31,
- 182, 186, 189, 107, 114, 107, 108, 108, 65, 202,
- 175, 227, 141, 215, 220, 218, 221, 108, 114, 107,
- 109, 104, 109, 104, 206, 141, 220, 221, 104, 206,
- 109
+ 27, 29, 35, 42, 43, 44, 46, 48, 57, 74,
+ 75, 178, 180, 183, 185, 187, 191, 194, 196, 198,
+ 200, 203, 212, 28, 36, 49, 52, 59, 73, 96,
+ 97, 161, 228, 99, 102, 103, 156, 108, 143, 98,
+ 109, 22, 23, 60, 67, 239, 22, 245, 107, 107,
+ 143, 107, 107, 60, 67, 241, 242, 108, 108, 108,
+ 63, 28, 55, 195, 108, 24, 26, 38, 184, 240,
+ 108, 240, 47, 50, 51, 54, 62, 80, 207, 25,
+ 69, 199, 108, 244, 242, 65, 241, 108, 242, 108,
+ 108, 163, 107, 114, 22, 146, 147, 148, 152, 107,
+ 112, 171, 109, 137, 136, 102, 155, 82, 133, 137,
+ 22, 221, 22, 222, 22, 197, 22, 190, 66, 190,
+ 24, 30, 32, 68, 70, 179, 189, 108, 108, 208,
+ 108, 242, 40, 41, 81, 204, 205, 22, 247, 28,
+ 188, 34, 53, 192, 108, 22, 164, 22, 162, 164,
+ 228, 109, 102, 153, 140, 141, 229, 113, 108, 243,
+ 107, 107, 109, 109, 109, 109, 109, 22, 211, 22,
+ 209, 22, 210, 109, 76, 77, 78, 79, 193, 22,
+ 206, 109, 109, 109, 107, 114, 110, 111, 149, 107,
+ 22, 98, 142, 61, 72, 172, 175, 176, 177, 214,
+ 215, 218, 223, 22, 246, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 134, 137, 56,
+ 25, 39, 59, 71, 181, 189, 240, 109, 109, 109,
+ 109, 228, 22, 150, 22, 151, 141, 33, 45, 201,
+ 203, 107, 114, 109, 31, 182, 186, 189, 107, 114,
+ 107, 108, 108, 65, 202, 175, 228, 141, 216, 221,
+ 219, 222, 108, 114, 107, 109, 104, 109, 104, 206,
+ 141, 221, 222, 104, 206, 109
};
#define yyerrok (yyerrstatus = 0)
case 3:
/* Line 1455 of yacc.c */
-#line 253 "program_parse.y"
+#line 260 "program_parse.y"
{
if (state->prog->Target != GL_VERTEX_PROGRAM_ARB) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid fragment program header");
case 4:
/* Line 1455 of yacc.c */
-#line 261 "program_parse.y"
+#line 268 "program_parse.y"
{
if (state->prog->Target != GL_FRAGMENT_PROGRAM_ARB) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex program header");
case 7:
/* Line 1455 of yacc.c */
-#line 277 "program_parse.y"
+#line 284 "program_parse.y"
{
int valid = 0;
case 10:
/* Line 1455 of yacc.c */
-#line 303 "program_parse.y"
+#line 310 "program_parse.y"
{
if ((yyvsp[(1) - (2)].inst) != NULL) {
if (state->inst_tail == NULL) {
case 12:
/* Line 1455 of yacc.c */
-#line 321 "program_parse.y"
+#line 328 "program_parse.y"
{
(yyval.inst) = (yyvsp[(1) - (1)].inst);
state->prog->NumAluInstructions++;
case 13:
/* Line 1455 of yacc.c */
-#line 326 "program_parse.y"
+#line 333 "program_parse.y"
{
(yyval.inst) = (yyvsp[(1) - (1)].inst);
state->prog->NumTexInstructions++;
case 23:
/* Line 1455 of yacc.c */
-#line 346 "program_parse.y"
+#line 353 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor(OPCODE_ARL, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL);
;}
case 24:
/* Line 1455 of yacc.c */
-#line 352 "program_parse.y"
+#line 359 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (4)].temp_inst).Opcode, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL);
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (4)].temp_inst).SaturateMode;
case 25:
/* Line 1455 of yacc.c */
-#line 359 "program_parse.y"
+#line 366 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (4)].temp_inst).Opcode, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL);
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (4)].temp_inst).SaturateMode;
case 26:
/* Line 1455 of yacc.c */
-#line 366 "program_parse.y"
+#line 373 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (6)].temp_inst).Opcode, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL);
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode;
case 27:
/* Line 1455 of yacc.c */
-#line 374 "program_parse.y"
+#line 381 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (6)].temp_inst).Opcode, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL);
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode;
case 28:
/* Line 1455 of yacc.c */
-#line 382 "program_parse.y"
+#line 389 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (8)].temp_inst).Opcode, & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), & (yyvsp[(6) - (8)].src_reg), & (yyvsp[(8) - (8)].src_reg));
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (8)].temp_inst).SaturateMode;
case 29:
/* Line 1455 of yacc.c */
-#line 389 "program_parse.y"
+#line 396 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (8)].temp_inst).Opcode, & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), NULL, NULL);
if ((yyval.inst) != NULL) {
case 30:
/* Line 1455 of yacc.c */
-#line 434 "program_parse.y"
+#line 441 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor(OPCODE_KIL, NULL, & (yyvsp[(2) - (2)].src_reg), NULL, NULL);
state->fragment.UsesKill = 1;
case 31:
/* Line 1455 of yacc.c */
-#line 441 "program_parse.y"
+#line 448 "program_parse.y"
{
(yyval.integer) = (yyvsp[(2) - (2)].integer);
;}
case 32:
/* Line 1455 of yacc.c */
-#line 446 "program_parse.y"
+#line 453 "program_parse.y"
{ (yyval.integer) = TEXTURE_1D_INDEX; ;}
break;
case 33:
/* Line 1455 of yacc.c */
-#line 447 "program_parse.y"
+#line 454 "program_parse.y"
{ (yyval.integer) = TEXTURE_2D_INDEX; ;}
break;
case 34:
/* Line 1455 of yacc.c */
-#line 448 "program_parse.y"
+#line 455 "program_parse.y"
{ (yyval.integer) = TEXTURE_3D_INDEX; ;}
break;
case 35:
/* Line 1455 of yacc.c */
-#line 449 "program_parse.y"
+#line 456 "program_parse.y"
{ (yyval.integer) = TEXTURE_CUBE_INDEX; ;}
break;
case 36:
/* Line 1455 of yacc.c */
-#line 450 "program_parse.y"
+#line 457 "program_parse.y"
{ (yyval.integer) = TEXTURE_RECT_INDEX; ;}
break;
case 37:
/* Line 1455 of yacc.c */
-#line 451 "program_parse.y"
+#line 458 "program_parse.y"
{ (yyval.integer) = -TEXTURE_1D_INDEX; ;}
break;
case 38:
/* Line 1455 of yacc.c */
-#line 452 "program_parse.y"
+#line 459 "program_parse.y"
{ (yyval.integer) = -TEXTURE_2D_INDEX; ;}
break;
case 39:
/* Line 1455 of yacc.c */
-#line 453 "program_parse.y"
+#line 460 "program_parse.y"
{ (yyval.integer) = -TEXTURE_RECT_INDEX; ;}
break;
case 40:
/* Line 1455 of yacc.c */
-#line 454 "program_parse.y"
+#line 461 "program_parse.y"
{ (yyval.integer) = TEXTURE_1D_ARRAY_INDEX; ;}
break;
case 41:
/* Line 1455 of yacc.c */
-#line 455 "program_parse.y"
+#line 462 "program_parse.y"
{ (yyval.integer) = TEXTURE_2D_ARRAY_INDEX; ;}
break;
case 42:
/* Line 1455 of yacc.c */
-#line 456 "program_parse.y"
+#line 463 "program_parse.y"
{ (yyval.integer) = -TEXTURE_1D_ARRAY_INDEX; ;}
break;
case 43:
/* Line 1455 of yacc.c */
-#line 457 "program_parse.y"
+#line 464 "program_parse.y"
{ (yyval.integer) = -TEXTURE_2D_ARRAY_INDEX; ;}
break;
case 44:
/* Line 1455 of yacc.c */
-#line 461 "program_parse.y"
+#line 468 "program_parse.y"
{
/* FIXME: Is this correct? Should the extenedSwizzle be applied
* FIXME: to the existing swizzle?
*/
(yyvsp[(4) - (6)].src_reg).Base.Swizzle = (yyvsp[(6) - (6)].swiz_mask).swizzle;
+ (yyvsp[(4) - (6)].src_reg).Base.Negate = (yyvsp[(6) - (6)].swiz_mask).mask;
(yyval.inst) = asm_instruction_ctor(OPCODE_SWZ, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), NULL, NULL);
(yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode;
case 45:
/* Line 1455 of yacc.c */
-#line 473 "program_parse.y"
+#line 481 "program_parse.y"
{
(yyval.src_reg) = (yyvsp[(2) - (3)].src_reg);
case 46:
/* Line 1455 of yacc.c */
-#line 486 "program_parse.y"
+#line 494 "program_parse.y"
{
(yyval.src_reg) = (yyvsp[(2) - (3)].src_reg);
case 47:
/* Line 1455 of yacc.c */
-#line 499 "program_parse.y"
+#line 507 "program_parse.y"
{
(yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg);
(yyval.dst_reg).WriteMask = (yyvsp[(2) - (2)].swiz_mask).mask;
case 48:
/* Line 1455 of yacc.c */
-#line 521 "program_parse.y"
+#line 529 "program_parse.y"
{
init_dst_reg(& (yyval.dst_reg));
(yyval.dst_reg).File = PROGRAM_ADDRESS;
case 49:
/* Line 1455 of yacc.c */
-#line 530 "program_parse.y"
- {
- (yyval.swiz_mask).swizzle = MAKE_SWIZZLE4((yyvsp[(1) - (7)].swiz_mask).swizzle, (yyvsp[(3) - (7)].swiz_mask).swizzle,
- (yyvsp[(5) - (7)].swiz_mask).swizzle, (yyvsp[(7) - (7)].swiz_mask).swizzle);
- (yyval.swiz_mask).mask = ((yyvsp[(1) - (7)].swiz_mask).mask) | ((yyvsp[(3) - (7)].swiz_mask).mask << 1) | ((yyvsp[(5) - (7)].swiz_mask).mask << 2)
- | ((yyvsp[(7) - (7)].swiz_mask).mask << 3);
+#line 538 "program_parse.y"
+ {
+ const unsigned xyzw_valid =
+ ((yyvsp[(1) - (7)].ext_swizzle).xyzw_valid << 0)
+ | ((yyvsp[(3) - (7)].ext_swizzle).xyzw_valid << 1)
+ | ((yyvsp[(5) - (7)].ext_swizzle).xyzw_valid << 2)
+ | ((yyvsp[(7) - (7)].ext_swizzle).xyzw_valid << 3);
+ const unsigned rgba_valid =
+ ((yyvsp[(1) - (7)].ext_swizzle).rgba_valid << 0)
+ | ((yyvsp[(3) - (7)].ext_swizzle).rgba_valid << 1)
+ | ((yyvsp[(5) - (7)].ext_swizzle).rgba_valid << 2)
+ | ((yyvsp[(7) - (7)].ext_swizzle).rgba_valid << 3);
+
+ /* All of the swizzle components have to be valid in either RGBA
+ * or XYZW. Note that 0 and 1 are valid in both, so both masks
+ * can have some bits set.
+ *
+ * We somewhat deviate from the spec here. It would be really hard
+ * to figure out which component is the error, and there probably
+ * isn't a lot of benefit.
+ */
+ if ((rgba_valid != 0x0f) && (xyzw_valid != 0x0f)) {
+ yyerror(& (yylsp[(1) - (7)]), state, "cannot combine RGBA and XYZW swizzle "
+ "components");
+ YYERROR;
+ }
+
+ (yyval.swiz_mask).swizzle = MAKE_SWIZZLE4((yyvsp[(1) - (7)].ext_swizzle).swz, (yyvsp[(3) - (7)].ext_swizzle).swz, (yyvsp[(5) - (7)].ext_swizzle).swz, (yyvsp[(7) - (7)].ext_swizzle).swz);
+ (yyval.swiz_mask).mask = ((yyvsp[(1) - (7)].ext_swizzle).negate) | ((yyvsp[(3) - (7)].ext_swizzle).negate << 1) | ((yyvsp[(5) - (7)].ext_swizzle).negate << 2)
+ | ((yyvsp[(7) - (7)].ext_swizzle).negate << 3);
;}
break;
case 50:
/* Line 1455 of yacc.c */
-#line 539 "program_parse.y"
+#line 571 "program_parse.y"
{
- (yyval.swiz_mask).swizzle = (yyvsp[(2) - (2)].integer);
- (yyval.swiz_mask).mask = ((yyvsp[(1) - (2)].negate)) ? 1 : 0;
+ (yyval.ext_swizzle) = (yyvsp[(2) - (2)].ext_swizzle);
+ (yyval.ext_swizzle).negate = ((yyvsp[(1) - (2)].negate)) ? 1 : 0;
;}
break;
case 51:
/* Line 1455 of yacc.c */
-#line 546 "program_parse.y"
+#line 578 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) != 0) && ((yyvsp[(1) - (1)].integer) != 1)) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector");
YYERROR;
}
- (yyval.integer) = ((yyvsp[(1) - (1)].integer) == 0) ? SWIZZLE_ZERO : SWIZZLE_ONE;
+ (yyval.ext_swizzle).swz = ((yyvsp[(1) - (1)].integer) == 0) ? SWIZZLE_ZERO : SWIZZLE_ONE;
+
+ /* 0 and 1 are valid for both RGBA swizzle names and XYZW
+ * swizzle names.
+ */
+ (yyval.ext_swizzle).xyzw_valid = 1;
+ (yyval.ext_swizzle).rgba_valid = 1;
;}
break;
case 52:
/* Line 1455 of yacc.c */
-#line 555 "program_parse.y"
+#line 593 "program_parse.y"
{
if (strlen((yyvsp[(1) - (1)].string)) > 1) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector");
switch ((yyvsp[(1) - (1)].string)[0]) {
case 'x':
- (yyval.integer) = SWIZZLE_X;
+ (yyval.ext_swizzle).swz = SWIZZLE_X;
+ (yyval.ext_swizzle).xyzw_valid = 1;
break;
case 'y':
- (yyval.integer) = SWIZZLE_Y;
+ (yyval.ext_swizzle).swz = SWIZZLE_Y;
+ (yyval.ext_swizzle).xyzw_valid = 1;
break;
case 'z':
- (yyval.integer) = SWIZZLE_Z;
+ (yyval.ext_swizzle).swz = SWIZZLE_Z;
+ (yyval.ext_swizzle).xyzw_valid = 1;
break;
case 'w':
- (yyval.integer) = SWIZZLE_W;
+ (yyval.ext_swizzle).swz = SWIZZLE_W;
+ (yyval.ext_swizzle).xyzw_valid = 1;
break;
+
+ case 'r':
+ (yyval.ext_swizzle).swz = SWIZZLE_X;
+ (yyval.ext_swizzle).rgba_valid = 1;
+ break;
+ case 'g':
+ (yyval.ext_swizzle).swz = SWIZZLE_Y;
+ (yyval.ext_swizzle).rgba_valid = 1;
+ break;
+ case 'b':
+ (yyval.ext_swizzle).swz = SWIZZLE_Z;
+ (yyval.ext_swizzle).rgba_valid = 1;
+ break;
+ case 'a':
+ (yyval.ext_swizzle).swz = SWIZZLE_W;
+ (yyval.ext_swizzle).rgba_valid = 1;
+ break;
+
default:
yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector");
YYERROR;
case 53:
/* Line 1455 of yacc.c */
-#line 583 "program_parse.y"
+#line 643 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
(yyval.src_reg).Base.Index = s->param_binding_begin;
break;
case at_attrib:
- (yyval.src_reg).Base.File = PROGRAM_INPUT;
- (yyval.src_reg).Base.Index = s->attrib_binding;
- state->prog->InputsRead |= (1U << (yyval.src_reg).Base.Index);
+ (yyval.src_reg).Base.File = PROGRAM_INPUT;
+ (yyval.src_reg).Base.Index = s->attrib_binding;
+ state->prog->InputsRead |= (1U << (yyval.src_reg).Base.Index);
- if (!validate_inputs(& (yylsp[(1) - (1)]), state)) {
- YYERROR;
- }
- break;
+ if (!validate_inputs(& (yylsp[(1) - (1)]), state)) {
+ YYERROR;
+ }
+ break;
default:
YYERROR;
case 54:
/* Line 1455 of yacc.c */
-#line 625 "program_parse.y"
+#line 685 "program_parse.y"
{
init_src_reg(& (yyval.src_reg));
(yyval.src_reg).Base.File = PROGRAM_INPUT;
case 55:
/* Line 1455 of yacc.c */
-#line 636 "program_parse.y"
+#line 696 "program_parse.y"
{
if (! (yyvsp[(3) - (4)].src_reg).Base.RelAddr
&& ((unsigned) (yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) {
case 56:
/* Line 1455 of yacc.c */
-#line 657 "program_parse.y"
+#line 717 "program_parse.y"
{
init_src_reg(& (yyval.src_reg));
(yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL)
case 57:
/* Line 1455 of yacc.c */
-#line 667 "program_parse.y"
+#line 727 "program_parse.y"
{
init_dst_reg(& (yyval.dst_reg));
(yyval.dst_reg).File = PROGRAM_OUTPUT;
case 58:
/* Line 1455 of yacc.c */
-#line 673 "program_parse.y"
+#line 733 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
}
init_dst_reg(& (yyval.dst_reg));
- if (s->type == at_temp) {
+ switch (s->type) {
+ case at_temp:
(yyval.dst_reg).File = PROGRAM_TEMPORARY;
(yyval.dst_reg).Index = s->temp_binding;
- } else {
+ break;
+ case at_output:
+ (yyval.dst_reg).File = PROGRAM_OUTPUT;
+ (yyval.dst_reg).Index = s->output_binding;
+ break;
+ default:
(yyval.dst_reg).File = s->param_binding_type;
(yyval.dst_reg).Index = s->param_binding_begin;
+ break;
}
;}
break;
case 59:
/* Line 1455 of yacc.c */
-#line 697 "program_parse.y"
+#line 764 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
case 62:
/* Line 1455 of yacc.c */
-#line 716 "program_parse.y"
+#line 783 "program_parse.y"
{
init_src_reg(& (yyval.src_reg));
(yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer);
case 63:
/* Line 1455 of yacc.c */
-#line 723 "program_parse.y"
+#line 790 "program_parse.y"
{
/* FINISHME: Add support for multiple address registers.
*/
case 64:
/* Line 1455 of yacc.c */
-#line 734 "program_parse.y"
+#line 801 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 65:
/* Line 1455 of yacc.c */
-#line 735 "program_parse.y"
+#line 802 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (2)].integer); ;}
break;
case 66:
/* Line 1455 of yacc.c */
-#line 736 "program_parse.y"
+#line 803 "program_parse.y"
{ (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;}
break;
case 67:
/* Line 1455 of yacc.c */
-#line 740 "program_parse.y"
+#line 807 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) {
yyerror(& (yylsp[(1) - (1)]), state,
case 68:
/* Line 1455 of yacc.c */
-#line 752 "program_parse.y"
+#line 819 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) {
yyerror(& (yylsp[(1) - (1)]), state,
case 69:
/* Line 1455 of yacc.c */
-#line 764 "program_parse.y"
+#line 831 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
case 70:
/* Line 1455 of yacc.c */
-#line 782 "program_parse.y"
+#line 849 "program_parse.y"
{
if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector");
case 71:
/* Line 1455 of yacc.c */
-#line 793 "program_parse.y"
+#line 860 "program_parse.y"
{
if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
yyerror(& (yylsp[(1) - (1)]), state,
case 76:
/* Line 1455 of yacc.c */
-#line 809 "program_parse.y"
+#line 876 "program_parse.y"
{ (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
break;
case 81:
/* Line 1455 of yacc.c */
-#line 813 "program_parse.y"
+#line 880 "program_parse.y"
{ (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
break;
case 88:
/* Line 1455 of yacc.c */
-#line 825 "program_parse.y"
+#line 892 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)]));
case 89:
/* Line 1455 of yacc.c */
-#line 843 "program_parse.y"
+#line 910 "program_parse.y"
{
(yyval.attrib) = (yyvsp[(2) - (2)].attrib);
;}
case 90:
/* Line 1455 of yacc.c */
-#line 847 "program_parse.y"
+#line 914 "program_parse.y"
{
(yyval.attrib) = (yyvsp[(2) - (2)].attrib);
;}
case 91:
/* Line 1455 of yacc.c */
-#line 853 "program_parse.y"
+#line 920 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_POS;
;}
case 92:
/* Line 1455 of yacc.c */
-#line 857 "program_parse.y"
+#line 924 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_WEIGHT;
;}
case 93:
/* Line 1455 of yacc.c */
-#line 861 "program_parse.y"
+#line 928 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_NORMAL;
;}
case 94:
/* Line 1455 of yacc.c */
-#line 865 "program_parse.y"
+#line 932 "program_parse.y"
{
if (!state->ctx->Extensions.EXT_secondary_color) {
yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported");
case 95:
/* Line 1455 of yacc.c */
-#line 874 "program_parse.y"
+#line 941 "program_parse.y"
{
if (!state->ctx->Extensions.EXT_fog_coord) {
yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported");
case 96:
/* Line 1455 of yacc.c */
-#line 883 "program_parse.y"
+#line 950 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
;}
case 97:
/* Line 1455 of yacc.c */
-#line 887 "program_parse.y"
+#line 954 "program_parse.y"
{
yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported");
YYERROR;
case 98:
/* Line 1455 of yacc.c */
-#line 892 "program_parse.y"
+#line 959 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer);
;}
case 99:
/* Line 1455 of yacc.c */
-#line 898 "program_parse.y"
+#line 965 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference");
case 103:
/* Line 1455 of yacc.c */
-#line 912 "program_parse.y"
+#line 979 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_WPOS;
;}
case 104:
/* Line 1455 of yacc.c */
-#line 916 "program_parse.y"
+#line 983 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer);
;}
case 105:
/* Line 1455 of yacc.c */
-#line 920 "program_parse.y"
+#line 987 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_FOGC;
;}
case 106:
/* Line 1455 of yacc.c */
-#line 924 "program_parse.y"
+#line 991 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
;}
case 109:
/* Line 1455 of yacc.c */
-#line 932 "program_parse.y"
+#line 999 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)]));
case 110:
/* Line 1455 of yacc.c */
-#line 948 "program_parse.y"
+#line 1015 "program_parse.y"
{
if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) {
yyerror(& (yylsp[(4) - (6)]), state,
case 111:
/* Line 1455 of yacc.c */
-#line 970 "program_parse.y"
+#line 1037 "program_parse.y"
{
(yyval.integer) = 0;
;}
case 112:
/* Line 1455 of yacc.c */
-#line 974 "program_parse.y"
+#line 1041 "program_parse.y"
{
- if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) {
+ if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) > state->limits->MaxParameters)) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size");
YYERROR;
} else {
case 113:
/* Line 1455 of yacc.c */
-#line 985 "program_parse.y"
+#line 1052 "program_parse.y"
{
(yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym);
;}
case 114:
/* Line 1455 of yacc.c */
-#line 991 "program_parse.y"
+#line 1058 "program_parse.y"
{
(yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym);
;}
case 116:
/* Line 1455 of yacc.c */
-#line 998 "program_parse.y"
+#line 1065 "program_parse.y"
{
(yyvsp[(1) - (3)].temp_sym).param_binding_length += (yyvsp[(3) - (3)].temp_sym).param_binding_length;
(yyval.temp_sym) = (yyvsp[(1) - (3)].temp_sym);
case 117:
/* Line 1455 of yacc.c */
-#line 1005 "program_parse.y"
+#line 1072 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 118:
/* Line 1455 of yacc.c */
-#line 1011 "program_parse.y"
+#line 1078 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 119:
/* Line 1455 of yacc.c */
-#line 1017 "program_parse.y"
+#line 1084 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 120:
/* Line 1455 of yacc.c */
-#line 1025 "program_parse.y"
+#line 1092 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 121:
/* Line 1455 of yacc.c */
-#line 1031 "program_parse.y"
+#line 1098 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 122:
/* Line 1455 of yacc.c */
-#line 1037 "program_parse.y"
+#line 1104 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 123:
/* Line 1455 of yacc.c */
-#line 1045 "program_parse.y"
+#line 1112 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 124:
/* Line 1455 of yacc.c */
-#line 1051 "program_parse.y"
+#line 1118 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 125:
/* Line 1455 of yacc.c */
-#line 1057 "program_parse.y"
+#line 1124 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
case 126:
/* Line 1455 of yacc.c */
-#line 1064 "program_parse.y"
+#line 1131 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;}
break;
case 127:
/* Line 1455 of yacc.c */
-#line 1065 "program_parse.y"
+#line 1132 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 128:
/* Line 1455 of yacc.c */
-#line 1068 "program_parse.y"
+#line 1135 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 129:
/* Line 1455 of yacc.c */
-#line 1069 "program_parse.y"
+#line 1136 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 130:
/* Line 1455 of yacc.c */
-#line 1070 "program_parse.y"
+#line 1137 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 131:
/* Line 1455 of yacc.c */
-#line 1071 "program_parse.y"
+#line 1138 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 132:
/* Line 1455 of yacc.c */
-#line 1072 "program_parse.y"
+#line 1139 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 133:
/* Line 1455 of yacc.c */
-#line 1073 "program_parse.y"
+#line 1140 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 134:
/* Line 1455 of yacc.c */
-#line 1074 "program_parse.y"
+#line 1141 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 135:
/* Line 1455 of yacc.c */
-#line 1075 "program_parse.y"
+#line 1142 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 136:
/* Line 1455 of yacc.c */
-#line 1076 "program_parse.y"
+#line 1143 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 137:
/* Line 1455 of yacc.c */
-#line 1077 "program_parse.y"
+#line 1144 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 138:
/* Line 1455 of yacc.c */
-#line 1081 "program_parse.y"
+#line 1145 "program_parse.y"
+ { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
+ break;
+
+ case 139:
+
+/* Line 1455 of yacc.c */
+#line 1149 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_MATERIAL;
;}
break;
- case 139:
+ case 140:
/* Line 1455 of yacc.c */
-#line 1090 "program_parse.y"
+#line 1158 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
break;
- case 140:
+ case 141:
/* Line 1455 of yacc.c */
-#line 1094 "program_parse.y"
+#line 1162 "program_parse.y"
{
(yyval.integer) = STATE_EMISSION;
;}
break;
- case 141:
+ case 142:
/* Line 1455 of yacc.c */
-#line 1098 "program_parse.y"
+#line 1166 "program_parse.y"
{
(yyval.integer) = STATE_SHININESS;
;}
break;
- case 142:
+ case 143:
/* Line 1455 of yacc.c */
-#line 1104 "program_parse.y"
+#line 1172 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHT;
;}
break;
- case 143:
+ case 144:
/* Line 1455 of yacc.c */
-#line 1113 "program_parse.y"
+#line 1181 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
break;
- case 144:
+ case 145:
/* Line 1455 of yacc.c */
-#line 1117 "program_parse.y"
+#line 1185 "program_parse.y"
{
(yyval.integer) = STATE_POSITION;
;}
break;
- case 145:
+ case 146:
/* Line 1455 of yacc.c */
-#line 1121 "program_parse.y"
+#line 1189 "program_parse.y"
{
if (!state->ctx->Extensions.EXT_point_parameters) {
yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported");
;}
break;
- case 146:
+ case 147:
/* Line 1455 of yacc.c */
-#line 1130 "program_parse.y"
+#line 1198 "program_parse.y"
{
(yyval.integer) = (yyvsp[(2) - (2)].integer);
;}
break;
- case 147:
+ case 148:
/* Line 1455 of yacc.c */
-#line 1134 "program_parse.y"
+#line 1202 "program_parse.y"
{
(yyval.integer) = STATE_HALF_VECTOR;
;}
break;
- case 148:
+ case 149:
/* Line 1455 of yacc.c */
-#line 1140 "program_parse.y"
+#line 1208 "program_parse.y"
{
(yyval.integer) = STATE_SPOT_DIRECTION;
;}
break;
- case 149:
+ case 150:
/* Line 1455 of yacc.c */
-#line 1146 "program_parse.y"
+#line 1214 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(2) - (2)].state)[0];
(yyval.state)[1] = (yyvsp[(2) - (2)].state)[1];
;}
break;
- case 150:
+ case 151:
/* Line 1455 of yacc.c */
-#line 1153 "program_parse.y"
+#line 1221 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT;
;}
break;
- case 151:
+ case 152:
/* Line 1455 of yacc.c */
-#line 1158 "program_parse.y"
+#line 1226 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR;
;}
break;
- case 152:
+ case 153:
/* Line 1455 of yacc.c */
-#line 1166 "program_parse.y"
+#line 1234 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTPROD;
;}
break;
- case 154:
+ case 155:
/* Line 1455 of yacc.c */
-#line 1178 "program_parse.y"
+#line 1246 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(3) - (3)].integer);
;}
break;
- case 155:
+ case 156:
/* Line 1455 of yacc.c */
-#line 1186 "program_parse.y"
+#line 1254 "program_parse.y"
{
(yyval.integer) = STATE_TEXENV_COLOR;
;}
break;
- case 156:
+ case 157:
/* Line 1455 of yacc.c */
-#line 1192 "program_parse.y"
+#line 1260 "program_parse.y"
{
(yyval.integer) = STATE_AMBIENT;
;}
break;
- case 157:
+ case 158:
/* Line 1455 of yacc.c */
-#line 1196 "program_parse.y"
+#line 1264 "program_parse.y"
{
(yyval.integer) = STATE_DIFFUSE;
;}
break;
- case 158:
+ case 159:
/* Line 1455 of yacc.c */
-#line 1200 "program_parse.y"
+#line 1268 "program_parse.y"
{
(yyval.integer) = STATE_SPECULAR;
;}
break;
- case 159:
+ case 160:
/* Line 1455 of yacc.c */
-#line 1206 "program_parse.y"
+#line 1274 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector");
;}
break;
- case 160:
+ case 161:
/* Line 1455 of yacc.c */
-#line 1217 "program_parse.y"
+#line 1285 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_TEXGEN;
;}
break;
- case 161:
+ case 162:
/* Line 1455 of yacc.c */
-#line 1226 "program_parse.y"
+#line 1294 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_S;
;}
break;
- case 162:
+ case 163:
/* Line 1455 of yacc.c */
-#line 1230 "program_parse.y"
+#line 1298 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_OBJECT_S;
;}
break;
- case 163:
+ case 164:
/* Line 1455 of yacc.c */
-#line 1235 "program_parse.y"
+#line 1303 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S;
;}
break;
- case 164:
+ case 165:
/* Line 1455 of yacc.c */
-#line 1239 "program_parse.y"
+#line 1307 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S;
;}
break;
- case 165:
+ case 166:
/* Line 1455 of yacc.c */
-#line 1243 "program_parse.y"
+#line 1311 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S;
;}
break;
- case 166:
+ case 167:
/* Line 1455 of yacc.c */
-#line 1247 "program_parse.y"
+#line 1315 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S;
;}
break;
- case 167:
+ case 168:
/* Line 1455 of yacc.c */
-#line 1253 "program_parse.y"
+#line 1321 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(2) - (2)].integer);
;}
break;
- case 168:
+ case 169:
/* Line 1455 of yacc.c */
-#line 1260 "program_parse.y"
+#line 1328 "program_parse.y"
{
(yyval.integer) = STATE_FOG_COLOR;
;}
break;
- case 169:
+ case 170:
/* Line 1455 of yacc.c */
-#line 1264 "program_parse.y"
+#line 1332 "program_parse.y"
{
(yyval.integer) = STATE_FOG_PARAMS;
;}
break;
- case 170:
+ case 171:
/* Line 1455 of yacc.c */
-#line 1270 "program_parse.y"
+#line 1338 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_CLIPPLANE;
;}
break;
- case 171:
+ case 172:
/* Line 1455 of yacc.c */
-#line 1278 "program_parse.y"
+#line 1346 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector");
;}
break;
- case 172:
+ case 173:
/* Line 1455 of yacc.c */
-#line 1289 "program_parse.y"
+#line 1357 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(2) - (2)].integer);
;}
break;
- case 173:
+ case 174:
/* Line 1455 of yacc.c */
-#line 1296 "program_parse.y"
+#line 1364 "program_parse.y"
{
(yyval.integer) = STATE_POINT_SIZE;
;}
break;
- case 174:
+ case 175:
/* Line 1455 of yacc.c */
-#line 1300 "program_parse.y"
+#line 1368 "program_parse.y"
{
(yyval.integer) = STATE_POINT_ATTENUATION;
;}
break;
- case 175:
+ case 176:
/* Line 1455 of yacc.c */
-#line 1306 "program_parse.y"
+#line 1374 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (5)].state)[0];
(yyval.state)[1] = (yyvsp[(1) - (5)].state)[1];
;}
break;
- case 176:
+ case 177:
/* Line 1455 of yacc.c */
-#line 1316 "program_parse.y"
+#line 1384 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (2)].state)[0];
(yyval.state)[1] = (yyvsp[(1) - (2)].state)[1];
;}
break;
- case 177:
+ case 178:
/* Line 1455 of yacc.c */
-#line 1326 "program_parse.y"
+#line 1394 "program_parse.y"
{
(yyval.state)[2] = 0;
(yyval.state)[3] = 3;
;}
break;
- case 178:
+ case 179:
/* Line 1455 of yacc.c */
-#line 1331 "program_parse.y"
+#line 1399 "program_parse.y"
{
/* It seems logical that the matrix row range specifier would have
* to specify a range or more than one row (i.e., $5 > $3).
;}
break;
- case 179:
+ case 180:
/* Line 1455 of yacc.c */
-#line 1349 "program_parse.y"
+#line 1417 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(2) - (3)].state)[0];
(yyval.state)[1] = (yyvsp[(2) - (3)].state)[1];
;}
break;
- case 180:
+ case 181:
/* Line 1455 of yacc.c */
-#line 1357 "program_parse.y"
+#line 1425 "program_parse.y"
{
(yyval.integer) = 0;
;}
break;
- case 181:
+ case 182:
/* Line 1455 of yacc.c */
-#line 1361 "program_parse.y"
+#line 1429 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
break;
- case 182:
+ case 183:
/* Line 1455 of yacc.c */
-#line 1367 "program_parse.y"
+#line 1435 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_INVERSE;
;}
break;
- case 183:
+ case 184:
/* Line 1455 of yacc.c */
-#line 1371 "program_parse.y"
+#line 1439 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_TRANSPOSE;
;}
break;
- case 184:
+ case 185:
/* Line 1455 of yacc.c */
-#line 1375 "program_parse.y"
+#line 1443 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_INVTRANS;
;}
break;
- case 185:
+ case 186:
/* Line 1455 of yacc.c */
-#line 1381 "program_parse.y"
+#line 1449 "program_parse.y"
{
if ((yyvsp[(1) - (1)].integer) > 3) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference");
;}
break;
- case 186:
+ case 187:
/* Line 1455 of yacc.c */
-#line 1392 "program_parse.y"
+#line 1460 "program_parse.y"
{
(yyval.state)[0] = STATE_MODELVIEW_MATRIX;
(yyval.state)[1] = (yyvsp[(2) - (2)].integer);
;}
break;
- case 187:
+ case 188:
/* Line 1455 of yacc.c */
-#line 1397 "program_parse.y"
+#line 1465 "program_parse.y"
{
(yyval.state)[0] = STATE_PROJECTION_MATRIX;
(yyval.state)[1] = 0;
;}
break;
- case 188:
+ case 189:
/* Line 1455 of yacc.c */
-#line 1402 "program_parse.y"
+#line 1470 "program_parse.y"
{
(yyval.state)[0] = STATE_MVP_MATRIX;
(yyval.state)[1] = 0;
;}
break;
- case 189:
+ case 190:
/* Line 1455 of yacc.c */
-#line 1407 "program_parse.y"
+#line 1475 "program_parse.y"
{
(yyval.state)[0] = STATE_TEXTURE_MATRIX;
(yyval.state)[1] = (yyvsp[(2) - (2)].integer);
;}
break;
- case 190:
+ case 191:
/* Line 1455 of yacc.c */
-#line 1412 "program_parse.y"
+#line 1480 "program_parse.y"
{
yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported");
YYERROR;
;}
break;
- case 191:
+ case 192:
/* Line 1455 of yacc.c */
-#line 1417 "program_parse.y"
+#line 1485 "program_parse.y"
{
(yyval.state)[0] = STATE_PROGRAM_MATRIX;
(yyval.state)[1] = (yyvsp[(3) - (4)].integer);
;}
break;
- case 192:
+ case 193:
/* Line 1455 of yacc.c */
-#line 1424 "program_parse.y"
+#line 1492 "program_parse.y"
{
(yyval.integer) = 0;
;}
break;
- case 193:
+ case 194:
/* Line 1455 of yacc.c */
-#line 1428 "program_parse.y"
+#line 1496 "program_parse.y"
{
- (yyval.integer) = (yyvsp[(1) - (1)].integer);
+ (yyval.integer) = (yyvsp[(2) - (3)].integer);
;}
break;
- case 194:
+ case 195:
/* Line 1455 of yacc.c */
-#line 1433 "program_parse.y"
+#line 1501 "program_parse.y"
{
/* Since GL_ARB_vertex_blend isn't supported, only modelview matrix
* zero is valid.
;}
break;
- case 195:
+ case 196:
/* Line 1455 of yacc.c */
-#line 1446 "program_parse.y"
+#line 1514 "program_parse.y"
{
/* Since GL_ARB_matrix_palette isn't supported, just let any value
* through here. The error will be generated later.
;}
break;
- case 196:
+ case 197:
/* Line 1455 of yacc.c */
-#line 1454 "program_parse.y"
+#line 1522 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector");
;}
break;
- case 201:
+ case 198:
/* Line 1455 of yacc.c */
-#line 1471 "program_parse.y"
+#line 1533 "program_parse.y"
+ {
+ memset((yyval.state), 0, sizeof((yyval.state)));
+ (yyval.state)[0] = STATE_DEPTH_RANGE;
+ ;}
+ break;
+
+ case 203:
+
+/* Line 1455 of yacc.c */
+#line 1545 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
;}
break;
- case 202:
+ case 204:
/* Line 1455 of yacc.c */
-#line 1481 "program_parse.y"
+#line 1555 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (1)].integer);
(yyval.state)[1] = (yyvsp[(1) - (1)].integer);
;}
break;
- case 203:
+ case 205:
/* Line 1455 of yacc.c */
-#line 1486 "program_parse.y"
+#line 1560 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (3)].integer);
(yyval.state)[1] = (yyvsp[(3) - (3)].integer);
;}
break;
- case 204:
+ case 206:
/* Line 1455 of yacc.c */
-#line 1493 "program_parse.y"
+#line 1567 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
;}
break;
- case 205:
+ case 207:
/* Line 1455 of yacc.c */
-#line 1503 "program_parse.y"
+#line 1577 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
;}
break;
- case 206:
+ case 208:
/* Line 1455 of yacc.c */
-#line 1512 "program_parse.y"
+#line 1586 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (1)].integer);
(yyval.state)[1] = (yyvsp[(1) - (1)].integer);
;}
break;
- case 207:
+ case 209:
/* Line 1455 of yacc.c */
-#line 1517 "program_parse.y"
+#line 1591 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (3)].integer);
(yyval.state)[1] = (yyvsp[(3) - (3)].integer);
;}
break;
- case 208:
+ case 210:
/* Line 1455 of yacc.c */
-#line 1524 "program_parse.y"
+#line 1598 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
;}
break;
- case 209:
+ case 211:
/* Line 1455 of yacc.c */
-#line 1534 "program_parse.y"
+#line 1608 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference");
;}
break;
- case 210:
+ case 212:
/* Line 1455 of yacc.c */
-#line 1544 "program_parse.y"
+#line 1618 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference");
;}
break;
- case 215:
+ case 217:
/* Line 1455 of yacc.c */
-#line 1559 "program_parse.y"
+#line 1633 "program_parse.y"
{
- (yyval.vector).count = 1;
+ (yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
+ (yyval.vector).data[1] = (yyvsp[(1) - (1)].real);
+ (yyval.vector).data[2] = (yyvsp[(1) - (1)].real);
+ (yyval.vector).data[3] = (yyvsp[(1) - (1)].real);
;}
break;
- case 216:
+ case 218:
/* Line 1455 of yacc.c */
-#line 1566 "program_parse.y"
+#line 1643 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
+ (yyval.vector).data[1] = (yyvsp[(1) - (1)].real);
+ (yyval.vector).data[2] = (yyvsp[(1) - (1)].real);
+ (yyval.vector).data[3] = (yyvsp[(1) - (1)].real);
;}
break;
- case 217:
+ case 219:
/* Line 1455 of yacc.c */
-#line 1571 "program_parse.y"
+#line 1651 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer);
+ (yyval.vector).data[1] = (float) (yyvsp[(1) - (1)].integer);
+ (yyval.vector).data[2] = (float) (yyvsp[(1) - (1)].integer);
+ (yyval.vector).data[3] = (float) (yyvsp[(1) - (1)].integer);
;}
break;
- case 218:
+ case 220:
/* Line 1455 of yacc.c */
-#line 1578 "program_parse.y"
+#line 1661 "program_parse.y"
{
- (yyval.vector).count = 1;
+ (yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (3)].real);
(yyval.vector).data[1] = 0.0f;
(yyval.vector).data[2] = 0.0f;
- (yyval.vector).data[3] = 0.0f;
+ (yyval.vector).data[3] = 1.0f;
;}
break;
- case 219:
+ case 221:
/* Line 1455 of yacc.c */
-#line 1586 "program_parse.y"
+#line 1669 "program_parse.y"
{
- (yyval.vector).count = 2;
+ (yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (5)].real);
(yyval.vector).data[1] = (yyvsp[(4) - (5)].real);
(yyval.vector).data[2] = 0.0f;
- (yyval.vector).data[3] = 0.0f;
+ (yyval.vector).data[3] = 1.0f;
;}
break;
- case 220:
+ case 222:
/* Line 1455 of yacc.c */
-#line 1595 "program_parse.y"
+#line 1678 "program_parse.y"
{
- (yyval.vector).count = 3;
+ (yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (7)].real);
(yyval.vector).data[1] = (yyvsp[(4) - (7)].real);
(yyval.vector).data[2] = (yyvsp[(6) - (7)].real);
- (yyval.vector).data[3] = 0.0f;
+ (yyval.vector).data[3] = 1.0f;
;}
break;
- case 221:
+ case 223:
/* Line 1455 of yacc.c */
-#line 1604 "program_parse.y"
+#line 1687 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (9)].real);
;}
break;
- case 222:
+ case 224:
/* Line 1455 of yacc.c */
-#line 1614 "program_parse.y"
+#line 1697 "program_parse.y"
{
(yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real);
;}
break;
- case 223:
+ case 225:
/* Line 1455 of yacc.c */
-#line 1618 "program_parse.y"
+#line 1701 "program_parse.y"
{
(yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer));
;}
break;
- case 224:
+ case 226:
/* Line 1455 of yacc.c */
-#line 1623 "program_parse.y"
+#line 1706 "program_parse.y"
{ (yyval.negate) = FALSE; ;}
break;
- case 225:
+ case 227:
/* Line 1455 of yacc.c */
-#line 1624 "program_parse.y"
+#line 1707 "program_parse.y"
{ (yyval.negate) = TRUE; ;}
break;
- case 226:
+ case 228:
/* Line 1455 of yacc.c */
-#line 1625 "program_parse.y"
+#line 1708 "program_parse.y"
{ (yyval.negate) = FALSE; ;}
break;
- case 227:
+ case 229:
/* Line 1455 of yacc.c */
-#line 1628 "program_parse.y"
+#line 1711 "program_parse.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
break;
- case 229:
+ case 231:
/* Line 1455 of yacc.c */
-#line 1631 "program_parse.y"
+#line 1714 "program_parse.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
break;
- case 231:
+ case 233:
/* Line 1455 of yacc.c */
-#line 1635 "program_parse.y"
+#line 1718 "program_parse.y"
{
if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) {
YYERROR;
;}
break;
- case 232:
+ case 234:
/* Line 1455 of yacc.c */
-#line 1641 "program_parse.y"
+#line 1724 "program_parse.y"
{
if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) {
YYERROR;
;}
break;
- case 233:
+ case 235:
/* Line 1455 of yacc.c */
-#line 1649 "program_parse.y"
+#line 1732 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)]));
;}
break;
- case 234:
+ case 236:
/* Line 1455 of yacc.c */
-#line 1662 "program_parse.y"
+#line 1745 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_HPOS;
;}
break;
- case 235:
+ case 237:
/* Line 1455 of yacc.c */
-#line 1671 "program_parse.y"
+#line 1754 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_FOGC;
;}
break;
- case 236:
+ case 238:
/* Line 1455 of yacc.c */
-#line 1680 "program_parse.y"
+#line 1763 "program_parse.y"
{
(yyval.result) = (yyvsp[(2) - (2)].result);
;}
break;
- case 237:
+ case 239:
/* Line 1455 of yacc.c */
-#line 1684 "program_parse.y"
+#line 1767 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_PSIZ;
;}
break;
- case 238:
+ case 240:
/* Line 1455 of yacc.c */
-#line 1693 "program_parse.y"
+#line 1776 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer);
;}
break;
- case 239:
+ case 241:
/* Line 1455 of yacc.c */
-#line 1702 "program_parse.y"
+#line 1785 "program_parse.y"
{
if (state->mode == ARB_fragment) {
(yyval.result) = FRAG_RESULT_DEPTH;
;}
break;
- case 240:
+ case 242:
/* Line 1455 of yacc.c */
-#line 1713 "program_parse.y"
+#line 1796 "program_parse.y"
{
(yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer);
;}
break;
- case 241:
+ case 243:
/* Line 1455 of yacc.c */
-#line 1719 "program_parse.y"
+#line 1802 "program_parse.y"
{
(yyval.integer) = (state->mode == ARB_vertex)
? VERT_RESULT_COL0
;}
break;
- case 242:
+ case 244:
/* Line 1455 of yacc.c */
-#line 1725 "program_parse.y"
+#line 1808 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = VERT_RESULT_COL0;
;}
break;
- case 243:
+ case 245:
/* Line 1455 of yacc.c */
-#line 1734 "program_parse.y"
+#line 1817 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = VERT_RESULT_BFC0;
;}
break;
- case 244:
+ case 246:
/* Line 1455 of yacc.c */
-#line 1745 "program_parse.y"
+#line 1828 "program_parse.y"
{
(yyval.integer) = 0;
;}
break;
- case 245:
+ case 247:
/* Line 1455 of yacc.c */
-#line 1749 "program_parse.y"
+#line 1832 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = 0;
;}
break;
- case 246:
+ case 248:
/* Line 1455 of yacc.c */
-#line 1758 "program_parse.y"
+#line 1841 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = 1;
;}
break;
- case 247:
+ case 249:
/* Line 1455 of yacc.c */
-#line 1768 "program_parse.y"
+#line 1851 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 248:
+ case 250:
/* Line 1455 of yacc.c */
-#line 1769 "program_parse.y"
+#line 1852 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 249:
+ case 251:
/* Line 1455 of yacc.c */
-#line 1770 "program_parse.y"
+#line 1853 "program_parse.y"
{ (yyval.integer) = 1; ;}
break;
- case 250:
+ case 252:
/* Line 1455 of yacc.c */
-#line 1773 "program_parse.y"
+#line 1856 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 251:
+ case 253:
/* Line 1455 of yacc.c */
-#line 1774 "program_parse.y"
+#line 1857 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 252:
+ case 254:
/* Line 1455 of yacc.c */
-#line 1775 "program_parse.y"
+#line 1858 "program_parse.y"
{ (yyval.integer) = 1; ;}
break;
- case 253:
+ case 255:
/* Line 1455 of yacc.c */
-#line 1778 "program_parse.y"
+#line 1861 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 254:
+ case 256:
/* Line 1455 of yacc.c */
-#line 1779 "program_parse.y"
+#line 1862 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
- case 255:
+ case 257:
/* Line 1455 of yacc.c */
-#line 1782 "program_parse.y"
+#line 1865 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 256:
+ case 258:
/* Line 1455 of yacc.c */
-#line 1783 "program_parse.y"
+#line 1866 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
- case 257:
+ case 259:
/* Line 1455 of yacc.c */
-#line 1786 "program_parse.y"
+#line 1869 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
- case 258:
+ case 260:
/* Line 1455 of yacc.c */
-#line 1787 "program_parse.y"
+#line 1870 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
- case 259:
+ case 261:
/* Line 1455 of yacc.c */
-#line 1791 "program_parse.y"
+#line 1874 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector");
;}
break;
- case 260:
+ case 262:
/* Line 1455 of yacc.c */
-#line 1802 "program_parse.y"
+#line 1885 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector");
;}
break;
- case 261:
+ case 263:
/* Line 1455 of yacc.c */
-#line 1813 "program_parse.y"
+#line 1896 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector");
;}
break;
- case 262:
+ case 264:
/* Line 1455 of yacc.c */
-#line 1824 "program_parse.y"
+#line 1907 "program_parse.y"
{
struct asm_symbol *exist = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string));
/* Line 1455 of yacc.c */
-#line 4480 "program_parse.tab.c"
+#line 4577 "program_parse.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
/* Line 1675 of yacc.c */
-#line 1844 "program_parse.y"
+#line 1927 "program_parse.y"
struct asm_instruction *
if (inst) {
_mesa_init_instructions(& inst->Base, 1);
inst->Base.Opcode = op;
- inst->Base.DstReg = *dst;
+
+ /* In the core ARB extensions only the KIL instruction doesn't have a
+ * destination register.
+ */
+ if (dst == NULL) {
+ init_dst_reg(& inst->Base.DstReg);
+ } else {
+ inst->Base.DstReg = *dst;
+ }
inst->Base.SrcReg[0] = src0->Base;
inst->SrcReg[0] = *src0;
name = _mesa_program_state_string(tokens);
index = _mesa_add_parameter(param_list, PROGRAM_STATE_VAR, name,
- size, GL_NONE,
- NULL, (gl_state_index *) tokens, 0x0);
+ size, GL_NONE, NULL, tokens, 0x0);
param_list->StateFlags |= _mesa_program_state_flags(tokens);
/* free name string here since we duplicated it in add_parameter() */
_mesa_parse_arb_program(GLcontext *ctx, GLenum target, const GLubyte *str,
GLsizei len, struct asm_parser_state *state)
{
- struct gl_program_constants limits;
struct asm_instruction *inst;
unsigned i;
GLubyte *strz;
state->st = _mesa_symbol_table_ctor();
- /* All of these limits should come from ctx.
- */
- limits.MaxInstructions = 128;
- limits.MaxAluInstructions = 128;
- limits.MaxTexInstructions = 128;
- limits.MaxTexIndirections = 128;
- limits.MaxAttribs = 16;
- limits.MaxTemps = 128;
- limits.MaxAddressRegs = 1;
- limits.MaxParameters = 128;
- limits.MaxLocalParams = 256;
- limits.MaxEnvParams = 128;
- limits.MaxNativeInstructions = 128;
- limits.MaxNativeAluInstructions = 128;
- limits.MaxNativeTexInstructions = 128;
- limits.MaxNativeTexIndirections = 128;
- limits.MaxNativeAttribs = 16;
- limits.MaxNativeTemps = 128;
- limits.MaxNativeAddressRegs = 1;
- limits.MaxNativeParameters = 128;
- limits.MaxUniformComponents = 0;
-
- state->limits = & limits;
-
- state->MaxTextureImageUnits = 16;
- state->MaxTextureCoordUnits = 8;
- state->MaxTextureUnits = 8;
- state->MaxClipPlanes = 6;
- state->MaxLights = 8;
- state->MaxProgramMatrices = 8;
+ state->limits = (target == GL_VERTEX_PROGRAM_ARB)
+ ? & ctx->Const.VertexProgram
+ : & ctx->Const.FragmentProgram;
+
+ state->MaxTextureImageUnits = ctx->Const.MaxTextureImageUnits;
+ state->MaxTextureCoordUnits = ctx->Const.MaxTextureCoordUnits;
+ state->MaxTextureUnits = ctx->Const.MaxTextureUnits;
+ state->MaxClipPlanes = ctx->Const.MaxClipPlanes;
+ state->MaxLights = ctx->Const.MaxLights;
+ state->MaxProgramMatrices = ctx->Const.MaxProgramMatrices;
state->state_param_enum = (target == GL_VERTEX_PROGRAM_ARB)
? STATE_VERTEX_PROGRAM : STATE_FRAGMENT_PROGRAM;
state->prog->NumInstructions++;
state->prog->NumParameters = state->prog->Parameters->NumParameters;
+ state->prog->NumAttributes = _mesa_bitcount(state->prog->InputsRead);
/*
* Initialize native counts to logical counts. The device driver may