summaryrefslogtreecommitdiffstats
path: root/src/glsl/glsl_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/glsl/glsl_parser.cpp')
-rw-r--r--src/glsl/glsl_parser.cpp517
1 files changed, 258 insertions, 259 deletions
diff --git a/src/glsl/glsl_parser.cpp b/src/glsl/glsl_parser.cpp
index ab6e83bead6..2190458e47d 100644
--- a/src/glsl/glsl_parser.cpp
+++ b/src/glsl/glsl_parser.cpp
@@ -808,34 +808,34 @@ static const yytype_int16 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 213, 213, 212, 219, 221, 241, 242, 243, 244,
- 245, 260, 262, 266, 275, 283, 294, 298, 305, 312,
- 319, 326, 333, 340, 341, 347, 351, 358, 364, 373,
- 377, 381, 382, 391, 392, 396, 397, 401, 407, 419,
- 423, 429, 436, 447, 448, 454, 460, 470, 471, 472,
- 473, 477, 478, 484, 490, 499, 500, 506, 515, 516,
- 522, 531, 532, 538, 544, 550, 559, 560, 566, 575,
- 576, 585, 586, 595, 596, 605, 606, 615, 616, 625,
- 626, 635, 636, 645, 646, 655, 656, 657, 658, 659,
- 660, 661, 662, 663, 664, 665, 669, 673, 689, 693,
- 697, 701, 715, 719, 720, 724, 729, 737, 748, 758,
- 773, 780, 785, 796, 809, 812, 817, 822, 831, 835,
- 836, 845, 854, 863, 872, 881, 894, 905, 914, 923,
- 932, 941, 950, 959, 973, 980, 991, 998, 999, 1018,
- 1047, 1088, 1093, 1098, 1106, 1114, 1115, 1116, 1121, 1122,
- 1127, 1132, 1138, 1146, 1151, 1156, 1161, 1167, 1172, 1177,
- 1182, 1187, 1195, 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, 1306, 1317, 1331, 1337, 1346, 1351, 1359, 1374,
- 1379, 1387, 1393, 1402, 1406, 1412, 1413, 1417, 1418, 1419,
- 1420, 1421, 1422, 1423, 1427, 1433, 1442, 1443, 1447, 1453,
- 1462, 1472, 1484, 1490, 1499, 1508, 1513, 1521, 1525, 1539,
- 1543, 1544, 1548, 1555, 1562, 1572, 1573, 1577, 1579, 1585,
- 1590, 1599, 1605, 1611, 1617, 1623, 1632, 1633, 1634, 1638
+ 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, 717, 721, 722, 726, 731, 739, 750, 760,
+ 775, 782, 787, 798, 811, 814, 819, 824, 833, 837,
+ 838, 847, 856, 865, 874, 883, 896, 907, 916, 925,
+ 934, 943, 952, 961, 975, 982, 993, 1000, 1001, 1020,
+ 1049, 1090, 1095, 1100, 1108, 1116, 1117, 1118, 1123, 1124,
+ 1129, 1134, 1140, 1148, 1153, 1158, 1163, 1169, 1174, 1179,
+ 1184, 1189, 1197, 1198, 1206, 1207, 1213, 1222, 1228, 1234,
+ 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, 1292,
+ 1293, 1297, 1307, 1317, 1330, 1336, 1345, 1350, 1358, 1373,
+ 1378, 1386, 1392, 1401, 1405, 1411, 1412, 1416, 1417, 1418,
+ 1419, 1420, 1421, 1422, 1426, 1432, 1441, 1442, 1446, 1452,
+ 1461, 1471, 1483, 1489, 1498, 1507, 1512, 1520, 1524, 1538,
+ 1542, 1543, 1547, 1554, 1561, 1571, 1572, 1576, 1578, 1584,
+ 1589, 1598, 1604, 1610, 1616, 1622, 1631, 1632, 1633, 1637
};
#endif
@@ -2835,6 +2835,11 @@ yyreduce:
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);
break;
default:
_mesa_glsl_error(& (yylsp[(2) - (3)]), state, "Shading language version"
@@ -2847,15 +2852,12 @@ yyreduce:
case 10:
/* Line 1455 of yacc.c */
-#line 246 "glsl_parser.ypp"
+#line 251 "glsl_parser.ypp"
{
if (state->language_version < 120) {
_mesa_glsl_warning(& (yylsp[(1) - (2)]), state,
- "pragma `invariant(all)' not supported in "
- "GLSL%s %d.%02d",
- state->es_shader ? " ES" : "",
- state->language_version / 100,
- state->language_version % 100);
+ "pragma `invariant(all)' not supported in %s",
+ state->version_string);
} else {
state->all_invariant = true;
}
@@ -2865,7 +2867,7 @@ yyreduce:
case 13:
/* Line 1455 of yacc.c */
-#line 267 "glsl_parser.ypp"
+#line 269 "glsl_parser.ypp"
{
if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
YYERROR;
@@ -2876,7 +2878,7 @@ yyreduce:
case 14:
/* Line 1455 of yacc.c */
-#line 276 "glsl_parser.ypp"
+#line 278 "glsl_parser.ypp"
{
/* FINISHME: The NULL test is only required because 'precision'
* FINISHME: statements are not yet supported.
@@ -2889,7 +2891,7 @@ yyreduce:
case 15:
/* Line 1455 of yacc.c */
-#line 284 "glsl_parser.ypp"
+#line 286 "glsl_parser.ypp"
{
/* FINISHME: The NULL test is only required because 'precision'
* FINISHME: statements are not yet supported.
@@ -2902,7 +2904,7 @@ yyreduce:
case 17:
/* Line 1455 of yacc.c */
-#line 299 "glsl_parser.ypp"
+#line 301 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
@@ -2914,7 +2916,7 @@ yyreduce:
case 18:
/* Line 1455 of yacc.c */
-#line 306 "glsl_parser.ypp"
+#line 308 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
@@ -2926,7 +2928,7 @@ yyreduce:
case 19:
/* Line 1455 of yacc.c */
-#line 313 "glsl_parser.ypp"
+#line 315 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
@@ -2938,7 +2940,7 @@ yyreduce:
case 20:
/* Line 1455 of yacc.c */
-#line 320 "glsl_parser.ypp"
+#line 322 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
@@ -2950,7 +2952,7 @@ yyreduce:
case 21:
/* Line 1455 of yacc.c */
-#line 327 "glsl_parser.ypp"
+#line 329 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
@@ -2962,7 +2964,7 @@ yyreduce:
case 22:
/* Line 1455 of yacc.c */
-#line 334 "glsl_parser.ypp"
+#line 336 "glsl_parser.ypp"
{
(yyval.expression) = (yyvsp[(2) - (3)].expression);
;}
@@ -2971,7 +2973,7 @@ yyreduce:
case 24:
/* Line 1455 of yacc.c */
-#line 342 "glsl_parser.ypp"
+#line 344 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
@@ -2982,7 +2984,7 @@ yyreduce:
case 25:
/* Line 1455 of yacc.c */
-#line 348 "glsl_parser.ypp"
+#line 350 "glsl_parser.ypp"
{
(yyval.expression) = (yyvsp[(1) - (1)].expression);
;}
@@ -2991,7 +2993,7 @@ yyreduce:
case 26:
/* Line 1455 of yacc.c */
-#line 352 "glsl_parser.ypp"
+#line 354 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL);
@@ -3003,7 +3005,7 @@ yyreduce:
case 27:
/* Line 1455 of yacc.c */
-#line 359 "glsl_parser.ypp"
+#line 361 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
@@ -3014,7 +3016,7 @@ yyreduce:
case 28:
/* Line 1455 of yacc.c */
-#line 365 "glsl_parser.ypp"
+#line 367 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
@@ -3025,7 +3027,7 @@ yyreduce:
case 32:
/* Line 1455 of yacc.c */
-#line 383 "glsl_parser.ypp"
+#line 385 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
@@ -3036,7 +3038,7 @@ yyreduce:
case 37:
/* Line 1455 of yacc.c */
-#line 402 "glsl_parser.ypp"
+#line 404 "glsl_parser.ypp"
{
(yyval.expression) = (yyvsp[(1) - (2)].expression);
(yyval.expression)->set_location(yylloc);
@@ -3047,7 +3049,7 @@ yyreduce:
case 38:
/* Line 1455 of yacc.c */
-#line 408 "glsl_parser.ypp"
+#line 410 "glsl_parser.ypp"
{
(yyval.expression) = (yyvsp[(1) - (3)].expression);
(yyval.expression)->set_location(yylloc);
@@ -3058,7 +3060,7 @@ yyreduce:
case 40:
/* Line 1455 of yacc.c */
-#line 424 "glsl_parser.ypp"
+#line 426 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier));
@@ -3069,7 +3071,7 @@ yyreduce:
case 41:
/* Line 1455 of yacc.c */
-#line 430 "glsl_parser.ypp"
+#line 432 "glsl_parser.ypp"
{
void *ctx = state;
ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
@@ -3081,7 +3083,7 @@ yyreduce:
case 42:
/* Line 1455 of yacc.c */
-#line 437 "glsl_parser.ypp"
+#line 439 "glsl_parser.ypp"
{
void *ctx = state;
ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
@@ -3093,7 +3095,7 @@ yyreduce:
case 44:
/* Line 1455 of yacc.c */
-#line 449 "glsl_parser.ypp"
+#line 451 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3104,7 +3106,7 @@ yyreduce:
case 45:
/* Line 1455 of yacc.c */
-#line 455 "glsl_parser.ypp"
+#line 457 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3115,7 +3117,7 @@ yyreduce:
case 46:
/* Line 1455 of yacc.c */
-#line 461 "glsl_parser.ypp"
+#line 463 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3126,35 +3128,35 @@ yyreduce:
case 47:
/* Line 1455 of yacc.c */
-#line 470 "glsl_parser.ypp"
+#line 472 "glsl_parser.ypp"
{ (yyval.n) = ast_plus; ;}
break;
case 48:
/* Line 1455 of yacc.c */
-#line 471 "glsl_parser.ypp"
+#line 473 "glsl_parser.ypp"
{ (yyval.n) = ast_neg; ;}
break;
case 49:
/* Line 1455 of yacc.c */
-#line 472 "glsl_parser.ypp"
+#line 474 "glsl_parser.ypp"
{ (yyval.n) = ast_logic_not; ;}
break;
case 50:
/* Line 1455 of yacc.c */
-#line 473 "glsl_parser.ypp"
+#line 475 "glsl_parser.ypp"
{ (yyval.n) = ast_bit_not; ;}
break;
case 52:
/* Line 1455 of yacc.c */
-#line 479 "glsl_parser.ypp"
+#line 481 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3165,7 +3167,7 @@ yyreduce:
case 53:
/* Line 1455 of yacc.c */
-#line 485 "glsl_parser.ypp"
+#line 487 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3176,7 +3178,7 @@ yyreduce:
case 54:
/* Line 1455 of yacc.c */
-#line 491 "glsl_parser.ypp"
+#line 493 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3187,7 +3189,7 @@ yyreduce:
case 56:
/* Line 1455 of yacc.c */
-#line 501 "glsl_parser.ypp"
+#line 503 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3198,7 +3200,7 @@ yyreduce:
case 57:
/* Line 1455 of yacc.c */
-#line 507 "glsl_parser.ypp"
+#line 509 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3209,7 +3211,7 @@ yyreduce:
case 59:
/* Line 1455 of yacc.c */
-#line 517 "glsl_parser.ypp"
+#line 519 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3220,7 +3222,7 @@ yyreduce:
case 60:
/* Line 1455 of yacc.c */
-#line 523 "glsl_parser.ypp"
+#line 525 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3231,7 +3233,7 @@ yyreduce:
case 62:
/* Line 1455 of yacc.c */
-#line 533 "glsl_parser.ypp"
+#line 535 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3242,7 +3244,7 @@ yyreduce:
case 63:
/* Line 1455 of yacc.c */
-#line 539 "glsl_parser.ypp"
+#line 541 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3253,7 +3255,7 @@ yyreduce:
case 64:
/* Line 1455 of yacc.c */
-#line 545 "glsl_parser.ypp"
+#line 547 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3264,7 +3266,7 @@ yyreduce:
case 65:
/* Line 1455 of yacc.c */
-#line 551 "glsl_parser.ypp"
+#line 553 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3275,7 +3277,7 @@ yyreduce:
case 67:
/* Line 1455 of yacc.c */
-#line 561 "glsl_parser.ypp"
+#line 563 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3286,7 +3288,7 @@ yyreduce:
case 68:
/* Line 1455 of yacc.c */
-#line 567 "glsl_parser.ypp"
+#line 569 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3297,7 +3299,7 @@ yyreduce:
case 70:
/* Line 1455 of yacc.c */
-#line 577 "glsl_parser.ypp"
+#line 579 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3308,7 +3310,7 @@ yyreduce:
case 72:
/* Line 1455 of yacc.c */
-#line 587 "glsl_parser.ypp"
+#line 589 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3319,7 +3321,7 @@ yyreduce:
case 74:
/* Line 1455 of yacc.c */
-#line 597 "glsl_parser.ypp"
+#line 599 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3330,7 +3332,7 @@ yyreduce:
case 76:
/* Line 1455 of yacc.c */
-#line 607 "glsl_parser.ypp"
+#line 609 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3341,7 +3343,7 @@ yyreduce:
case 78:
/* Line 1455 of yacc.c */
-#line 617 "glsl_parser.ypp"
+#line 619 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3352,7 +3354,7 @@ yyreduce:
case 80:
/* Line 1455 of yacc.c */
-#line 627 "glsl_parser.ypp"
+#line 629 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3363,7 +3365,7 @@ yyreduce:
case 82:
/* Line 1455 of yacc.c */
-#line 637 "glsl_parser.ypp"
+#line 639 "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));
@@ -3374,7 +3376,7 @@ yyreduce:
case 84:
/* Line 1455 of yacc.c */
-#line 647 "glsl_parser.ypp"
+#line 649 "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);
@@ -3385,84 +3387,84 @@ yyreduce:
case 85:
/* Line 1455 of yacc.c */
-#line 655 "glsl_parser.ypp"
+#line 657 "glsl_parser.ypp"
{ (yyval.n) = ast_assign; ;}
break;
case 86:
/* Line 1455 of yacc.c */
-#line 656 "glsl_parser.ypp"
+#line 658 "glsl_parser.ypp"
{ (yyval.n) = ast_mul_assign; ;}
break;
case 87:
/* Line 1455 of yacc.c */
-#line 657 "glsl_parser.ypp"
+#line 659 "glsl_parser.ypp"
{ (yyval.n) = ast_div_assign; ;}
break;
case 88:
/* Line 1455 of yacc.c */
-#line 658 "glsl_parser.ypp"
+#line 660 "glsl_parser.ypp"
{ (yyval.n) = ast_mod_assign; ;}
break;
case 89:
/* Line 1455 of yacc.c */
-#line 659 "glsl_parser.ypp"
+#line 661 "glsl_parser.ypp"
{ (yyval.n) = ast_add_assign; ;}
break;
case 90:
/* Line 1455 of yacc.c */
-#line 660 "glsl_parser.ypp"
+#line 662 "glsl_parser.ypp"
{ (yyval.n) = ast_sub_assign; ;}
break;
case 91:
/* Line 1455 of yacc.c */
-#line 661 "glsl_parser.ypp"
+#line 663 "glsl_parser.ypp"
{ (yyval.n) = ast_ls_assign; ;}
break;
case 92:
/* Line 1455 of yacc.c */
-#line 662 "glsl_parser.ypp"
+#line 664 "glsl_parser.ypp"
{ (yyval.n) = ast_rs_assign; ;}
break;
case 93:
/* Line 1455 of yacc.c */
-#line 663 "glsl_parser.ypp"
+#line 665 "glsl_parser.ypp"
{ (yyval.n) = ast_and_assign; ;}
break;
case 94:
/* Line 1455 of yacc.c */
-#line 664 "glsl_parser.ypp"
+#line 666 "glsl_parser.ypp"
{ (yyval.n) = ast_xor_assign; ;}
break;
case 95:
/* Line 1455 of yacc.c */
-#line 665 "glsl_parser.ypp"
+#line 667 "glsl_parser.ypp"
{ (yyval.n) = ast_or_assign; ;}
break;
case 96:
/* Line 1455 of yacc.c */
-#line 670 "glsl_parser.ypp"
+#line 672 "glsl_parser.ypp"
{
(yyval.expression) = (yyvsp[(1) - (1)].expression);
;}
@@ -3471,7 +3473,7 @@ yyreduce:
case 97:
/* Line 1455 of yacc.c */
-#line 674 "glsl_parser.ypp"
+#line 676 "glsl_parser.ypp"
{
void *ctx = state;
if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
@@ -3489,7 +3491,7 @@ yyreduce:
case 99:
/* Line 1455 of yacc.c */
-#line 694 "glsl_parser.ypp"
+#line 696 "glsl_parser.ypp"
{
(yyval.node) = (yyvsp[(1) - (2)].function);
;}
@@ -3498,7 +3500,7 @@ yyreduce:
case 100:
/* Line 1455 of yacc.c */
-#line 698 "glsl_parser.ypp"
+#line 700 "glsl_parser.ypp"
{
(yyval.node) = (yyvsp[(1) - (2)].declarator_list);
;}
@@ -3507,7 +3509,7 @@ yyreduce:
case 101:
/* Line 1455 of yacc.c */
-#line 702 "glsl_parser.ypp"
+#line 704 "glsl_parser.ypp"
{
if (((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_float)
&& ((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_int)) {
@@ -3523,7 +3525,7 @@ yyreduce:
case 105:
/* Line 1455 of yacc.c */
-#line 725 "glsl_parser.ypp"
+#line 727 "glsl_parser.ypp"
{
(yyval.function) = (yyvsp[(1) - (2)].function);
(yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link);
@@ -3533,7 +3535,7 @@ yyreduce:
case 106:
/* Line 1455 of yacc.c */
-#line 730 "glsl_parser.ypp"
+#line 732 "glsl_parser.ypp"
{
(yyval.function) = (yyvsp[(1) - (3)].function);
(yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link);
@@ -3543,7 +3545,7 @@ yyreduce:
case 107:
/* Line 1455 of yacc.c */
-#line 738 "glsl_parser.ypp"
+#line 740 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.function) = new(ctx) ast_function();
@@ -3556,7 +3558,7 @@ yyreduce:
case 108:
/* Line 1455 of yacc.c */
-#line 749 "glsl_parser.ypp"
+#line 751 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3571,7 +3573,7 @@ yyreduce:
case 109:
/* Line 1455 of yacc.c */
-#line 759 "glsl_parser.ypp"
+#line 761 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3588,7 +3590,7 @@ yyreduce:
case 110:
/* Line 1455 of yacc.c */
-#line 774 "glsl_parser.ypp"
+#line 776 "glsl_parser.ypp"
{
(yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
@@ -3600,7 +3602,7 @@ yyreduce:
case 111:
/* Line 1455 of yacc.c */
-#line 781 "glsl_parser.ypp"
+#line 783 "glsl_parser.ypp"
{
(yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);
(yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier);
@@ -3610,7 +3612,7 @@ yyreduce:
case 112:
/* Line 1455 of yacc.c */
-#line 786 "glsl_parser.ypp"
+#line 788 "glsl_parser.ypp"
{
void *ctx = state;
(yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
@@ -3626,7 +3628,7 @@ yyreduce:
case 113:
/* Line 1455 of yacc.c */
-#line 797 "glsl_parser.ypp"
+#line 799 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3640,7 +3642,7 @@ yyreduce:
case 114:
/* Line 1455 of yacc.c */
-#line 809 "glsl_parser.ypp"
+#line 811 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
;}
@@ -3649,7 +3651,7 @@ yyreduce:
case 115:
/* Line 1455 of yacc.c */
-#line 813 "glsl_parser.ypp"
+#line 815 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.in = 1;
@@ -3659,7 +3661,7 @@ yyreduce:
case 116:
/* Line 1455 of yacc.c */
-#line 818 "glsl_parser.ypp"
+#line 820 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.out = 1;
@@ -3669,7 +3671,7 @@ yyreduce:
case 117:
/* Line 1455 of yacc.c */
-#line 823 "glsl_parser.ypp"
+#line 825 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.in = 1;
@@ -3680,7 +3682,7 @@ yyreduce:
case 120:
/* Line 1455 of yacc.c */
-#line 837 "glsl_parser.ypp"
+#line 839 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL);
@@ -3694,7 +3696,7 @@ yyreduce:
case 121:
/* Line 1455 of yacc.c */
-#line 846 "glsl_parser.ypp"
+#line 848 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL);
@@ -3708,7 +3710,7 @@ yyreduce:
case 122:
/* Line 1455 of yacc.c */
-#line 855 "glsl_parser.ypp"
+#line 857 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL);
@@ -3722,7 +3724,7 @@ yyreduce:
case 123:
/* Line 1455 of yacc.c */
-#line 864 "glsl_parser.ypp"
+#line 866 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression));
@@ -3736,7 +3738,7 @@ yyreduce:
case 124:
/* Line 1455 of yacc.c */
-#line 873 "glsl_parser.ypp"
+#line 875 "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));
@@ -3750,7 +3752,7 @@ yyreduce:
case 125:
/* Line 1455 of yacc.c */
-#line 882 "glsl_parser.ypp"
+#line 884 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression));
@@ -3764,7 +3766,7 @@ yyreduce:
case 126:
/* Line 1455 of yacc.c */
-#line 895 "glsl_parser.ypp"
+#line 897 "glsl_parser.ypp"
{
void *ctx = state;
if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) {
@@ -3780,7 +3782,7 @@ yyreduce:
case 127:
/* Line 1455 of yacc.c */
-#line 906 "glsl_parser.ypp"
+#line 908 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
@@ -3794,7 +3796,7 @@ yyreduce:
case 128:
/* Line 1455 of yacc.c */
-#line 915 "glsl_parser.ypp"
+#line 917 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL);
@@ -3808,7 +3810,7 @@ yyreduce:
case 129:
/* Line 1455 of yacc.c */
-#line 924 "glsl_parser.ypp"
+#line 926 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL);
@@ -3822,7 +3824,7 @@ yyreduce:
case 130:
/* Line 1455 of yacc.c */
-#line 933 "glsl_parser.ypp"
+#line 935 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression));
@@ -3836,7 +3838,7 @@ yyreduce:
case 131:
/* Line 1455 of yacc.c */
-#line 942 "glsl_parser.ypp"
+#line 944 "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));
@@ -3850,7 +3852,7 @@ yyreduce:
case 132:
/* Line 1455 of yacc.c */
-#line 951 "glsl_parser.ypp"
+#line 953 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
@@ -3864,7 +3866,7 @@ yyreduce:
case 133:
/* Line 1455 of yacc.c */
-#line 960 "glsl_parser.ypp"
+#line 962 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
@@ -3880,7 +3882,7 @@ yyreduce:
case 134:
/* Line 1455 of yacc.c */
-#line 974 "glsl_parser.ypp"
+#line 976 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
@@ -3892,7 +3894,7 @@ yyreduce:
case 135:
/* Line 1455 of yacc.c */
-#line 981 "glsl_parser.ypp"
+#line 983 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
@@ -3905,7 +3907,7 @@ yyreduce:
case 136:
/* Line 1455 of yacc.c */
-#line 992 "glsl_parser.ypp"
+#line 994 "glsl_parser.ypp"
{
(yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
;}
@@ -3914,7 +3916,7 @@ yyreduce:
case 138:
/* Line 1455 of yacc.c */
-#line 1000 "glsl_parser.ypp"
+#line 1002 "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,
@@ -3935,7 +3937,7 @@ yyreduce:
case 139:
/* Line 1455 of yacc.c */
-#line 1019 "glsl_parser.ypp"
+#line 1021 "glsl_parser.ypp"
{
bool got_one = false;
@@ -3969,7 +3971,7 @@ yyreduce:
case 140:
/* Line 1455 of yacc.c */
-#line 1048 "glsl_parser.ypp"
+#line 1050 "glsl_parser.ypp"
{
bool got_one = false;
@@ -4012,7 +4014,7 @@ yyreduce:
case 141:
/* Line 1455 of yacc.c */
-#line 1089 "glsl_parser.ypp"
+#line 1091 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.smooth = 1;
@@ -4022,7 +4024,7 @@ yyreduce:
case 142:
/* Line 1455 of yacc.c */
-#line 1094 "glsl_parser.ypp"
+#line 1096 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.flat = 1;
@@ -4032,7 +4034,7 @@ yyreduce:
case 143:
/* Line 1455 of yacc.c */
-#line 1099 "glsl_parser.ypp"
+#line 1101 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.noperspective = 1;
@@ -4042,7 +4044,7 @@ yyreduce:
case 144:
/* Line 1455 of yacc.c */
-#line 1107 "glsl_parser.ypp"
+#line 1109 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.constant = 1;
@@ -4052,7 +4054,7 @@ yyreduce:
case 147:
/* Line 1455 of yacc.c */
-#line 1117 "glsl_parser.ypp"
+#line 1119 "glsl_parser.ypp"
{
(yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
(yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
@@ -4062,7 +4064,7 @@ yyreduce:
case 149:
/* Line 1455 of yacc.c */
-#line 1123 "glsl_parser.ypp"
+#line 1125 "glsl_parser.ypp"
{
(yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
(yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
@@ -4072,7 +4074,7 @@ yyreduce:
case 150:
/* Line 1455 of yacc.c */
-#line 1128 "glsl_parser.ypp"
+#line 1130 "glsl_parser.ypp"
{
(yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
(yyval.type_qualifier).flags.q.invariant = 1;
@@ -4082,7 +4084,7 @@ yyreduce:
case 151:
/* Line 1455 of yacc.c */
-#line 1133 "glsl_parser.ypp"
+#line 1135 "glsl_parser.ypp"
{
(yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier);
(yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).flags.i;
@@ -4093,7 +4095,7 @@ yyreduce:
case 152:
/* Line 1455 of yacc.c */
-#line 1139 "glsl_parser.ypp"
+#line 1141 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.invariant = 1;
@@ -4103,7 +4105,7 @@ yyreduce:
case 153:
/* Line 1455 of yacc.c */
-#line 1147 "glsl_parser.ypp"
+#line 1149 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.constant = 1;
@@ -4113,7 +4115,7 @@ yyreduce:
case 154:
/* Line 1455 of yacc.c */
-#line 1152 "glsl_parser.ypp"
+#line 1154 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.attribute = 1;
@@ -4123,7 +4125,7 @@ yyreduce:
case 155:
/* Line 1455 of yacc.c */
-#line 1157 "glsl_parser.ypp"
+#line 1159 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.varying = 1;
@@ -4133,7 +4135,7 @@ yyreduce:
case 156:
/* Line 1455 of yacc.c */
-#line 1162 "glsl_parser.ypp"
+#line 1164 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.centroid = 1;
@@ -4144,7 +4146,7 @@ yyreduce:
case 157:
/* Line 1455 of yacc.c */
-#line 1168 "glsl_parser.ypp"
+#line 1170 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.in = 1;
@@ -4154,7 +4156,7 @@ yyreduce:
case 158:
/* Line 1455 of yacc.c */
-#line 1173 "glsl_parser.ypp"
+#line 1175 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.out = 1;
@@ -4164,7 +4166,7 @@ yyreduce:
case 159:
/* Line 1455 of yacc.c */
-#line 1178 "glsl_parser.ypp"
+#line 1180 "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;
@@ -4174,7 +4176,7 @@ yyreduce:
case 160:
/* Line 1455 of yacc.c */
-#line 1183 "glsl_parser.ypp"
+#line 1185 "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;
@@ -4184,7 +4186,7 @@ yyreduce:
case 161:
/* Line 1455 of yacc.c */
-#line 1188 "glsl_parser.ypp"
+#line 1190 "glsl_parser.ypp"
{
memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
(yyval.type_qualifier).flags.q.uniform = 1;
@@ -4194,7 +4196,7 @@ yyreduce:
case 163:
/* Line 1455 of yacc.c */
-#line 1197 "glsl_parser.ypp"
+#line 1199 "glsl_parser.ypp"
{
(yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
(yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
@@ -4204,7 +4206,7 @@ yyreduce:
case 165:
/* Line 1455 of yacc.c */
-#line 1206 "glsl_parser.ypp"
+#line 1208 "glsl_parser.ypp"
{
(yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
(yyval.type_specifier)->is_array = true;
@@ -4215,7 +4217,7 @@ yyreduce:
case 166:
/* Line 1455 of yacc.c */
-#line 1212 "glsl_parser.ypp"
+#line 1214 "glsl_parser.ypp"
{
(yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
(yyval.type_specifier)->is_array = true;
@@ -4226,7 +4228,7 @@ yyreduce:
case 167:
/* Line 1455 of yacc.c */
-#line 1221 "glsl_parser.ypp"
+#line 1223 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
@@ -4237,7 +4239,7 @@ yyreduce:
case 168:
/* Line 1455 of yacc.c */
-#line 1227 "glsl_parser.ypp"
+#line 1229 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
@@ -4248,7 +4250,7 @@ yyreduce:
case 169:
/* Line 1455 of yacc.c */
-#line 1233 "glsl_parser.ypp"
+#line 1235 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
@@ -4259,372 +4261,371 @@ yyreduce:
case 170:
/* Line 1455 of yacc.c */
-#line 1241 "glsl_parser.ypp"
+#line 1243 "glsl_parser.ypp"
{ (yyval.n) = ast_void; ;}
break;
case 171:
/* Line 1455 of yacc.c */
-#line 1242 "glsl_parser.ypp"
+#line 1244 "glsl_parser.ypp"
{ (yyval.n) = ast_float; ;}
break;
case 172:
/* Line 1455 of yacc.c */
-#line 1243 "glsl_parser.ypp"
+#line 1245 "glsl_parser.ypp"
{ (yyval.n) = ast_int; ;}
break;
case 173:
/* Line 1455 of yacc.c */
-#line 1244 "glsl_parser.ypp"
+#line 1246 "glsl_parser.ypp"
{ (yyval.n) = ast_uint; ;}
break;
case 174:
/* Line 1455 of yacc.c */
-#line 1245 "glsl_parser.ypp"
+#line 1247 "glsl_parser.ypp"
{ (yyval.n) = ast_bool; ;}
break;
case 175:
/* Line 1455 of yacc.c */
-#line 1246 "glsl_parser.ypp"
+#line 1248 "glsl_parser.ypp"
{ (yyval.n) = ast_vec2; ;}
break;
case 176:
/* Line 1455 of yacc.c */
-#line 1247 "glsl_parser.ypp"
+#line 1249 "glsl_parser.ypp"
{ (yyval.n) = ast_vec3; ;}
break;
case 177:
/* Line 1455 of yacc.c */
-#line 1248 "glsl_parser.ypp"
+#line 1250 "glsl_parser.ypp"
{ (yyval.n) = ast_vec4; ;}
break;
case 178:
/* Line 1455 of yacc.c */
-#line 1249 "glsl_parser.ypp"
+#line 1251 "glsl_parser.ypp"
{ (yyval.n) = ast_bvec2; ;}
break;
case 179:
/* Line 1455 of yacc.c */
-#line 1250 "glsl_parser.ypp"
+#line 1252 "glsl_parser.ypp"
{ (yyval.n) = ast_bvec3; ;}
break;
case 180:
/* Line 1455 of yacc.c */
-#line 1251 "glsl_parser.ypp"
+#line 1253 "glsl_parser.ypp"
{ (yyval.n) = ast_bvec4; ;}
break;
case 181:
/* Line 1455 of yacc.c */
-#line 1252 "glsl_parser.ypp"
+#line 1254 "glsl_parser.ypp"
{ (yyval.n) = ast_ivec2; ;}
break;
case 182:
/* Line 1455 of yacc.c */
-#line 1253 "glsl_parser.ypp"
+#line 1255 "glsl_parser.ypp"
{ (yyval.n) = ast_ivec3; ;}
break;
case 183:
/* Line 1455 of yacc.c */
-#line 1254 "glsl_parser.ypp"
+#line 1256 "glsl_parser.ypp"
{ (yyval.n) = ast_ivec4; ;}
break;
case 184:
/* Line 1455 of yacc.c */
-#line 1255 "glsl_parser.ypp"
+#line 1257 "glsl_parser.ypp"
{ (yyval.n) = ast_uvec2; ;}
break;
case 185:
/* Line 1455 of yacc.c */
-#line 1256 "glsl_parser.ypp"
+#line 1258 "glsl_parser.ypp"
{ (yyval.n) = ast_uvec3; ;}
break;
case 186:
/* Line 1455 of yacc.c */
-#line 1257 "glsl_parser.ypp"
+#line 1259 "glsl_parser.ypp"
{ (yyval.n) = ast_uvec4; ;}
break;
case 187:
/* Line 1455 of yacc.c */
-#line 1258 "glsl_parser.ypp"
+#line 1260 "glsl_parser.ypp"
{ (yyval.n) = ast_mat2; ;}
break;
case 188:
/* Line 1455 of yacc.c */
-#line 1259 "glsl_parser.ypp"
+#line 1261 "glsl_parser.ypp"
{ (yyval.n) = ast_mat2x3; ;}
break;
case 189:
/* Line 1455 of yacc.c */
-#line 1260 "glsl_parser.ypp"
+#line 1262 "glsl_parser.ypp"
{ (yyval.n) = ast_mat2x4; ;}
break;
case 190:
/* Line 1455 of yacc.c */
-#line 1261 "glsl_parser.ypp"
+#line 1263 "glsl_parser.ypp"
{ (yyval.n) = ast_mat3x2; ;}
break;
case 191:
/* Line 1455 of yacc.c */
-#line 1262 "glsl_parser.ypp"
+#line 1264 "glsl_parser.ypp"
{ (yyval.n) = ast_mat3; ;}
break;
case 192:
/* Line 1455 of yacc.c */
-#line 1263 "glsl_parser.ypp"
+#line 1265 "glsl_parser.ypp"
{ (yyval.n) = ast_mat3x4; ;}
break;
case 193:
/* Line 1455 of yacc.c */
-#line 1264 "glsl_parser.ypp"
+#line 1266 "glsl_parser.ypp"
{ (yyval.n) = ast_mat4x2; ;}
break;
case 194:
/* Line 1455 of yacc.c */
-#line 1265 "glsl_parser.ypp"
+#line 1267 "glsl_parser.ypp"
{ (yyval.n) = ast_mat4x3; ;}
break;
case 195:
/* Line 1455 of yacc.c */
-#line 1266 "glsl_parser.ypp"
+#line 1268 "glsl_parser.ypp"
{ (yyval.n) = ast_mat4; ;}
break;
case 196:
/* Line 1455 of yacc.c */
-#line 1267 "glsl_parser.ypp"
+#line 1269 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler1d; ;}
break;
case 197:
/* Line 1455 of yacc.c */
-#line 1268 "glsl_parser.ypp"
+#line 1270 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler2d; ;}
break;
case 198:
/* Line 1455 of yacc.c */
-#line 1269 "glsl_parser.ypp"
+#line 1271 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler2drect; ;}
break;
case 199:
/* Line 1455 of yacc.c */
-#line 1270 "glsl_parser.ypp"
+#line 1272 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler3d; ;}
break;
case 200:
/* Line 1455 of yacc.c */
-#line 1271 "glsl_parser.ypp"
+#line 1273 "glsl_parser.ypp"
{ (yyval.n) = ast_samplercube; ;}
break;
case 201:
/* Line 1455 of yacc.c */
-#line 1272 "glsl_parser.ypp"
+#line 1274 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler1dshadow; ;}
break;
case 202:
/* Line 1455 of yacc.c */
-#line 1273 "glsl_parser.ypp"
+#line 1275 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler2dshadow; ;}
break;
case 203:
/* Line 1455 of yacc.c */
-#line 1274 "glsl_parser.ypp"
+#line 1276 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler2drectshadow; ;}
break;
case 204:
/* Line 1455 of yacc.c */
-#line 1275 "glsl_parser.ypp"
+#line 1277 "glsl_parser.ypp"
{ (yyval.n) = ast_samplercubeshadow; ;}
break;
case 205:
/* Line 1455 of yacc.c */
-#line 1276 "glsl_parser.ypp"
+#line 1278 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler1darray; ;}
break;
case 206:
/* Line 1455 of yacc.c */
-#line 1277 "glsl_parser.ypp"
+#line 1279 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler2darray; ;}
break;
case 207:
/* Line 1455 of yacc.c */
-#line 1278 "glsl_parser.ypp"
+#line 1280 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler1darrayshadow; ;}
break;
case 208:
/* Line 1455 of yacc.c */
-#line 1279 "glsl_parser.ypp"
+#line 1281 "glsl_parser.ypp"
{ (yyval.n) = ast_sampler2darrayshadow; ;}
break;
case 209:
/* Line 1455 of yacc.c */
-#line 1280 "glsl_parser.ypp"
+#line 1282 "glsl_parser.ypp"
{ (yyval.n) = ast_isampler1d; ;}
break;
case 210:
/* Line 1455 of yacc.c */
-#line 1281 "glsl_parser.ypp"
+#line 1283 "glsl_parser.ypp"
{ (yyval.n) = ast_isampler2d; ;}
break;
case 211:
/* Line 1455 of yacc.c */
-#line 1282 "glsl_parser.ypp"
+#line 1284 "glsl_parser.ypp"
{ (yyval.n) = ast_isampler3d; ;}
break;
case 212:
/* Line 1455 of yacc.c */
-#line 1283 "glsl_parser.ypp"
+#line 1285 "glsl_parser.ypp"
{ (yyval.n) = ast_isamplercube; ;}
break;
case 213:
/* Line 1455 of yacc.c */
-#line 1284 "glsl_parser.ypp"
+#line 1286 "glsl_parser.ypp"
{ (yyval.n) = ast_isampler1darray; ;}
break;
case 214:
/* Line 1455 of yacc.c */
-#line 1285 "glsl_parser.ypp"
+#line 1287 "glsl_parser.ypp"
{ (yyval.n) = ast_isampler2darray; ;}
break;
case 215:
/* Line 1455 of yacc.c */
-#line 1286 "glsl_parser.ypp"
+#line 1288 "glsl_parser.ypp"
{ (yyval.n) = ast_usampler1d; ;}
break;
case 216:
/* Line 1455 of yacc.c */
-#line 1287 "glsl_parser.ypp"
+#line 1289 "glsl_parser.ypp"
{ (yyval.n) = ast_usampler2d; ;}
break;
case 217:
/* Line 1455 of yacc.c */
-#line 1288 "glsl_parser.ypp"
+#line 1290 "glsl_parser.ypp"
{ (yyval.n) = ast_usampler3d; ;}
break;
case 218:
/* Line 1455 of yacc.c */
-#line 1289 "glsl_parser.ypp"
+#line 1291 "glsl_parser.ypp"
{ (yyval.n) = ast_usamplercube; ;}
break;
case 219:
/* Line 1455 of yacc.c */
-#line 1290 "glsl_parser.ypp"
+#line 1292 "glsl_parser.ypp"
{ (yyval.n) = ast_usampler1darray; ;}
break;
case 220:
/* Line 1455 of yacc.c */
-#line 1291 "glsl_parser.ypp"
+#line 1293 "glsl_parser.ypp"
{ (yyval.n) = ast_usampler2darray; ;}
break;
case 221:
/* Line 1455 of yacc.c */
-#line 1295 "glsl_parser.ypp"
+#line 1297 "glsl_parser.ypp"
{
if (!state->es_shader && state->language_version < 130)
_mesa_glsl_error(& (yylsp[(1) - (1)]), state,
"precision qualifier forbidden "
- "in GLSL %d.%d (1.30 or later "
+ "in %s (1.30 or later "
"required)\n",
- state->language_version / 100,
- state->language_version % 100);
+ state->version_string);
(yyval.n) = ast_precision_high;
;}
@@ -4633,15 +4634,14 @@ yyreduce:
case 222:
/* Line 1455 of yacc.c */
-#line 1306 "glsl_parser.ypp"
+#line 1307 "glsl_parser.ypp"
{
if (!state->es_shader && state->language_version < 130)
_mesa_glsl_error(& (yylsp[(1) - (1)]), state,
"precision qualifier forbidden "
- "in GLSL %d.%d (1.30 or later "
+ "in %s (1.30 or later "
"required)\n",
- state->language_version / 100,
- state->language_version % 100);
+ state->version_string);
(yyval.n) = ast_precision_medium;
;}
@@ -4655,10 +4655,9 @@ yyreduce:
if (!state->es_shader && state->language_version < 130)
_mesa_glsl_error(& (yylsp[(1) - (1)]), state,
"precision qualifier forbidden "
- "in GLSL %d.%d (1.30 or later "
+ "in %s (1.30 or later "
"required)\n",
- state->language_version / 100,
- state->language_version % 100);
+ state->version_string);
(yyval.n) = ast_precision_low;
;}
@@ -4667,7 +4666,7 @@ yyreduce:
case 224:
/* Line 1455 of yacc.c */
-#line 1332 "glsl_parser.ypp"
+#line 1331 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
@@ -4678,7 +4677,7 @@ yyreduce:
case 225:
/* Line 1455 of yacc.c */
-#line 1338 "glsl_parser.ypp"
+#line 1337 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
@@ -4689,7 +4688,7 @@ yyreduce:
case 226:
/* Line 1455 of yacc.c */
-#line 1347 "glsl_parser.ypp"
+#line 1346 "glsl_parser.ypp"
{
(yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list);
(yyvsp[(1) - (1)].declarator_list)->link.self_link();
@@ -4699,7 +4698,7 @@ yyreduce:
case 227:
/* Line 1455 of yacc.c */
-#line 1352 "glsl_parser.ypp"
+#line 1351 "glsl_parser.ypp"
{
(yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node);
(yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
@@ -4709,7 +4708,7 @@ yyreduce:
case 228:
/* Line 1455 of yacc.c */
-#line 1360 "glsl_parser.ypp"
+#line 1359 "glsl_parser.ypp"
{
void *ctx = state;
ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
@@ -4726,7 +4725,7 @@ yyreduce:
case 229:
/* Line 1455 of yacc.c */
-#line 1375 "glsl_parser.ypp"
+#line 1374 "glsl_parser.ypp"
{
(yyval.declaration) = (yyvsp[(1) - (1)].declaration);
(yyvsp[(1) - (1)].declaration)->link.self_link();
@@ -4736,7 +4735,7 @@ yyreduce:
case 230:
/* Line 1455 of yacc.c */
-#line 1380 "glsl_parser.ypp"
+#line 1379 "glsl_parser.ypp"
{
(yyval.declaration) = (yyvsp[(1) - (3)].declaration);
(yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
@@ -4746,7 +4745,7 @@ yyreduce:
case 231:
/* Line 1455 of yacc.c */
-#line 1388 "glsl_parser.ypp"
+#line 1387 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
@@ -4757,7 +4756,7 @@ yyreduce:
case 232:
/* Line 1455 of yacc.c */
-#line 1394 "glsl_parser.ypp"
+#line 1393 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
@@ -4768,28 +4767,28 @@ yyreduce:
case 235:
/* Line 1455 of yacc.c */
-#line 1412 "glsl_parser.ypp"
+#line 1411 "glsl_parser.ypp"
{ (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
break;
case 240:
/* Line 1455 of yacc.c */
-#line 1420 "glsl_parser.ypp"
+#line 1419 "glsl_parser.ypp"
{ (yyval.node) = NULL; ;}
break;
case 241:
/* Line 1455 of yacc.c */
-#line 1421 "glsl_parser.ypp"
+#line 1420 "glsl_parser.ypp"
{ (yyval.node) = NULL; ;}
break;
case 244:
/* Line 1455 of yacc.c */
-#line 1428 "glsl_parser.ypp"
+#line 1427 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
@@ -4800,7 +4799,7 @@ yyreduce:
case 245:
/* Line 1455 of yacc.c */
-#line 1434 "glsl_parser.ypp"
+#line 1433 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node));
@@ -4811,14 +4810,14 @@ yyreduce:
case 246:
/* Line 1455 of yacc.c */
-#line 1442 "glsl_parser.ypp"
+#line 1441 "glsl_parser.ypp"
{ (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
break;
case 248:
/* Line 1455 of yacc.c */
-#line 1448 "glsl_parser.ypp"
+#line 1447 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
@@ -4829,7 +4828,7 @@ yyreduce:
case 249:
/* Line 1455 of yacc.c */
-#line 1454 "glsl_parser.ypp"
+#line 1453 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
@@ -4840,7 +4839,7 @@ yyreduce:
case 250:
/* Line 1455 of yacc.c */
-#line 1463 "glsl_parser.ypp"
+#line 1462 "glsl_parser.ypp"
{
if ((yyvsp[(1) - (1)].node) == NULL) {
_mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
@@ -4855,7 +4854,7 @@ yyreduce:
case 251:
/* Line 1455 of yacc.c */
-#line 1473 "glsl_parser.ypp"
+#line 1472 "glsl_parser.ypp"
{
if ((yyvsp[(2) - (2)].node) == NULL) {
_mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
@@ -4869,7 +4868,7 @@ yyreduce:
case 252:
/* Line 1455 of yacc.c */
-#line 1485 "glsl_parser.ypp"
+#line 1484 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_expression_statement(NULL);
@@ -4880,7 +4879,7 @@ yyreduce:
case 253:
/* Line 1455 of yacc.c */
-#line 1491 "glsl_parser.ypp"
+#line 1490 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
@@ -4891,7 +4890,7 @@ yyreduce:
case 254:
/* Line 1455 of yacc.c */
-#line 1500 "glsl_parser.ypp"
+#line 1499 "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);
@@ -4902,7 +4901,7 @@ yyreduce:
case 255:
/* Line 1455 of yacc.c */
-#line 1509 "glsl_parser.ypp"
+#line 1508 "glsl_parser.ypp"
{
(yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node);
(yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node);
@@ -4912,7 +4911,7 @@ yyreduce:
case 256:
/* Line 1455 of yacc.c */
-#line 1514 "glsl_parser.ypp"
+#line 1513 "glsl_parser.ypp"
{
(yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node);
(yyval.selection_rest_statement).else_statement = NULL;
@@ -4922,7 +4921,7 @@ yyreduce:
case 257:
/* Line 1455 of yacc.c */
-#line 1522 "glsl_parser.ypp"
+#line 1521 "glsl_parser.ypp"
{
(yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
;}
@@ -4931,7 +4930,7 @@ yyreduce:
case 258:
/* Line 1455 of yacc.c */
-#line 1526 "glsl_parser.ypp"
+#line 1525 "glsl_parser.ypp"
{
void *ctx = state;
ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
@@ -4947,7 +4946,7 @@ yyreduce:
case 262:
/* Line 1455 of yacc.c */
-#line 1549 "glsl_parser.ypp"
+#line 1548 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
@@ -4959,7 +4958,7 @@ yyreduce:
case 263:
/* Line 1455 of yacc.c */
-#line 1556 "glsl_parser.ypp"
+#line 1555 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
@@ -4971,7 +4970,7 @@ yyreduce:
case 264:
/* Line 1455 of yacc.c */
-#line 1563 "glsl_parser.ypp"
+#line 1562 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
@@ -4983,7 +4982,7 @@ yyreduce:
case 268:
/* Line 1455 of yacc.c */
-#line 1579 "glsl_parser.ypp"
+#line 1578 "glsl_parser.ypp"
{
(yyval.node) = NULL;
;}
@@ -4992,7 +4991,7 @@ yyreduce:
case 269:
/* Line 1455 of yacc.c */
-#line 1586 "glsl_parser.ypp"
+#line 1585 "glsl_parser.ypp"
{
(yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
(yyval.for_rest_statement).rest = NULL;
@@ -5002,7 +5001,7 @@ yyreduce:
case 270:
/* Line 1455 of yacc.c */
-#line 1591 "glsl_parser.ypp"
+#line 1590 "glsl_parser.ypp"
{
(yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
(yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
@@ -5012,7 +5011,7 @@ yyreduce:
case 271:
/* Line 1455 of yacc.c */
-#line 1600 "glsl_parser.ypp"
+#line 1599 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
@@ -5023,7 +5022,7 @@ yyreduce:
case 272:
/* Line 1455 of yacc.c */
-#line 1606 "glsl_parser.ypp"
+#line 1605 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
@@ -5034,7 +5033,7 @@ yyreduce:
case 273:
/* Line 1455 of yacc.c */
-#line 1612 "glsl_parser.ypp"
+#line 1611 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
@@ -5045,7 +5044,7 @@ yyreduce:
case 274:
/* Line 1455 of yacc.c */
-#line 1618 "glsl_parser.ypp"
+#line 1617 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
@@ -5056,7 +5055,7 @@ yyreduce:
case 275:
/* Line 1455 of yacc.c */
-#line 1624 "glsl_parser.ypp"
+#line 1623 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
@@ -5067,28 +5066,28 @@ yyreduce:
case 276:
/* Line 1455 of yacc.c */
-#line 1632 "glsl_parser.ypp"
+#line 1631 "glsl_parser.ypp"
{ (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
break;
case 277:
/* Line 1455 of yacc.c */
-#line 1633 "glsl_parser.ypp"
+#line 1632 "glsl_parser.ypp"
{ (yyval.node) = (yyvsp[(1) - (1)].node); ;}
break;
case 278:
/* Line 1455 of yacc.c */
-#line 1634 "glsl_parser.ypp"
+#line 1633 "glsl_parser.ypp"
{ (yyval.node) = NULL; ;}
break;
case 279:
/* Line 1455 of yacc.c */
-#line 1639 "glsl_parser.ypp"
+#line 1638 "glsl_parser.ypp"
{
void *ctx = state;
(yyval.function_definition) = new(ctx) ast_function_definition();
@@ -5101,7 +5100,7 @@ yyreduce:
/* Line 1455 of yacc.c */
-#line 5105 "glsl_parser.cpp"
+#line 5104 "glsl_parser.cpp"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);