parser: Anonymous constants come from the PROGRAM_CONSTANT file
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 22 Jul 2009 17:51:18 +0000 (10:51 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 22 Jul 2009 17:51:18 +0000 (10:51 -0700)
src/mesa/shader/program_parse.tab.c
src/mesa/shader/program_parse.y

index 090c399f440bc2fb57e38d396d97b0467430950e..bf48b9752fdbc47a27073db09316bcdff9f99d44 100644 (file)
@@ -743,27 +743,27 @@ static const yytype_uint16 yyrline[] =
      314,   317,   318,   321,   327,   334,   341,   349,   356,   364,
      375,   381,   387,   388,   389,   390,   391,   394,   406,   419,
      432,   454,   463,   472,   479,   488,   516,   558,   569,   590,
-     598,   604,   628,   645,   645,   647,   654,   666,   667,   668,
-     671,   683,   695,   713,   724,   736,   738,   739,   740,   741,
-     744,   744,   744,   744,   745,   748,   749,   750,   751,   752,
-     753,   756,   774,   778,   784,   788,   792,   796,   800,   804,
-     808,   812,   818,   829,   829,   830,   832,   836,   840,   844,
-     850,   850,   852,   868,   891,   894,   905,   911,   917,   918,
-     925,   931,   937,   945,   951,   957,   965,   971,   977,   985,
-     986,   989,   990,   991,   992,   993,   994,   995,   996,   997,
-     998,  1001,  1010,  1014,  1018,  1024,  1033,  1037,  1041,  1045,
-    1049,  1055,  1061,  1068,  1073,  1081,  1091,  1093,  1101,  1107,
-    1111,  1115,  1121,  1132,  1141,  1145,  1150,  1154,  1158,  1162,
-    1168,  1175,  1179,  1185,  1193,  1204,  1211,  1215,  1221,  1231,
-    1242,  1246,  1264,  1273,  1276,  1282,  1286,  1290,  1296,  1307,
-    1312,  1317,  1322,  1327,  1331,  1339,  1342,  1347,  1360,  1368,
-    1381,  1381,  1383,  1383,  1385,  1395,  1400,  1407,  1417,  1426,
-    1431,  1438,  1448,  1458,  1470,  1470,  1471,  1471,  1473,  1480,
-    1485,  1492,  1497,  1503,  1511,  1522,  1526,  1532,  1533,  1534,
-    1537,  1537,  1540,  1540,  1543,  1549,  1557,  1570,  1579,  1588,
-    1592,  1601,  1610,  1621,  1628,  1633,  1642,  1654,  1657,  1666,
-    1677,  1678,  1679,  1682,  1683,  1684,  1687,  1688,  1691,  1692,
-    1695,  1696,  1699,  1710,  1721,  1732
+     600,   606,   630,   647,   647,   649,   656,   668,   669,   670,
+     673,   685,   697,   715,   726,   738,   740,   741,   742,   743,
+     746,   746,   746,   746,   747,   750,   751,   752,   753,   754,
+     755,   758,   776,   780,   786,   790,   794,   798,   802,   806,
+     810,   814,   820,   831,   831,   832,   834,   838,   842,   846,
+     852,   852,   854,   870,   893,   896,   907,   913,   919,   920,
+     927,   933,   939,   947,   953,   959,   967,   973,   979,   987,
+     988,   991,   992,   993,   994,   995,   996,   997,   998,   999,
+    1000,  1003,  1012,  1016,  1020,  1026,  1035,  1039,  1043,  1047,
+    1051,  1057,  1063,  1070,  1075,  1083,  1093,  1095,  1103,  1109,
+    1113,  1117,  1123,  1134,  1143,  1147,  1152,  1156,  1160,  1164,
+    1170,  1177,  1181,  1187,  1195,  1206,  1213,  1217,  1223,  1233,
+    1244,  1248,  1266,  1275,  1278,  1284,  1288,  1292,  1298,  1309,
+    1314,  1319,  1324,  1329,  1333,  1341,  1344,  1349,  1362,  1370,
+    1383,  1383,  1385,  1385,  1387,  1397,  1402,  1409,  1419,  1428,
+    1433,  1440,  1450,  1460,  1472,  1472,  1473,  1473,  1475,  1482,
+    1487,  1494,  1499,  1505,  1513,  1524,  1528,  1534,  1535,  1536,
+    1539,  1539,  1542,  1542,  1545,  1551,  1559,  1572,  1581,  1590,
+    1594,  1603,  1612,  1623,  1630,  1635,  1644,  1656,  1659,  1668,
+    1679,  1680,  1681,  1684,  1685,  1686,  1689,  1690,  1693,  1694,
+    1697,  1698,  1701,  1712,  1723,  1734
 };
 #endif
 
@@ -2466,7 +2466,9 @@ yyreduce:
 #line 591 "program_parse.y"
     {
           init_src_reg(& (yyval.src_reg));
-          (yyval.src_reg).Base.File = (yyvsp[(1) - (1)].temp_sym).param_binding_type;
+          (yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL) 
+             ? (yyvsp[(1) - (1)].temp_sym).param_binding_type
+             : PROGRAM_CONSTANT;
           (yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].temp_sym).param_binding_begin;
        ;}
     break;
@@ -2474,7 +2476,7 @@ yyreduce:
   case 50:
 
 /* Line 1455 of yacc.c  */
-#line 599 "program_parse.y"
+#line 601 "program_parse.y"
     {
           init_dst_reg(& (yyval.dst_reg));
           (yyval.dst_reg).File = PROGRAM_OUTPUT;
@@ -2485,7 +2487,7 @@ yyreduce:
   case 51:
 
 /* Line 1455 of yacc.c  */
-#line 605 "program_parse.y"
+#line 607 "program_parse.y"
     {
           struct asm_symbol *const s = (struct asm_symbol *)
              _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
@@ -2512,7 +2514,7 @@ yyreduce:
   case 52:
 
 /* Line 1455 of yacc.c  */
-#line 629 "program_parse.y"
+#line 631 "program_parse.y"
     {
           struct asm_symbol *const s = (struct asm_symbol *)
              _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
@@ -2532,7 +2534,7 @@ yyreduce:
   case 55:
 
 /* Line 1455 of yacc.c  */
-#line 648 "program_parse.y"
+#line 650 "program_parse.y"
     {
           init_src_reg(& (yyval.src_reg));
           (yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer);
@@ -2542,7 +2544,7 @@ yyreduce:
   case 56:
 
 /* Line 1455 of yacc.c  */
-#line 655 "program_parse.y"
+#line 657 "program_parse.y"
     {
           /* FINISHME: Add support for multiple address registers.
            */
@@ -2557,28 +2559,28 @@ yyreduce:
   case 57:
 
 /* Line 1455 of yacc.c  */
-#line 666 "program_parse.y"
+#line 668 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
   case 58:
 
 /* Line 1455 of yacc.c  */
-#line 667 "program_parse.y"
+#line 669 "program_parse.y"
     { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;}
     break;
 
   case 59:
 
 /* Line 1455 of yacc.c  */
-#line 668 "program_parse.y"
+#line 670 "program_parse.y"
     { (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;}
     break;
 
   case 60:
 
 /* Line 1455 of yacc.c  */
-#line 672 "program_parse.y"
+#line 674 "program_parse.y"
     {
           if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) {
              yyerror(& (yylsp[(1) - (1)]), state,
@@ -2593,7 +2595,7 @@ yyreduce:
   case 61:
 
 /* Line 1455 of yacc.c  */
-#line 684 "program_parse.y"
+#line 686 "program_parse.y"
     {
           if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) {
              yyerror(& (yylsp[(1) - (1)]), state,
@@ -2608,7 +2610,7 @@ yyreduce:
   case 62:
 
 /* Line 1455 of yacc.c  */
-#line 696 "program_parse.y"
+#line 698 "program_parse.y"
     {
           struct asm_symbol *const s = (struct asm_symbol *)
              _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
@@ -2629,7 +2631,7 @@ yyreduce:
   case 63:
 
 /* Line 1455 of yacc.c  */
-#line 714 "program_parse.y"
+#line 716 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector");
@@ -2643,7 +2645,7 @@ yyreduce:
   case 64:
 
 /* Line 1455 of yacc.c  */
-#line 725 "program_parse.y"
+#line 727 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
              yyerror(& (yylsp[(1) - (1)]), state,
@@ -2658,21 +2660,21 @@ yyreduce:
   case 69:
 
 /* Line 1455 of yacc.c  */
-#line 741 "program_parse.y"
+#line 743 "program_parse.y"
     { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
     break;
 
   case 74:
 
 /* Line 1455 of yacc.c  */
-#line 745 "program_parse.y"
+#line 747 "program_parse.y"
     { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
     break;
 
   case 81:
 
 /* Line 1455 of yacc.c  */
-#line 757 "program_parse.y"
+#line 759 "program_parse.y"
     {
           struct asm_symbol *const s =
              declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)]));
@@ -2693,7 +2695,7 @@ yyreduce:
   case 82:
 
 /* Line 1455 of yacc.c  */
-#line 775 "program_parse.y"
+#line 777 "program_parse.y"
     {
           (yyval.attrib) = (yyvsp[(2) - (2)].attrib);
        ;}
@@ -2702,7 +2704,7 @@ yyreduce:
   case 83:
 
 /* Line 1455 of yacc.c  */
-#line 779 "program_parse.y"
+#line 781 "program_parse.y"
     {
           (yyval.attrib) = (yyvsp[(2) - (2)].attrib);
        ;}
@@ -2711,7 +2713,7 @@ yyreduce:
   case 84:
 
 /* Line 1455 of yacc.c  */
-#line 785 "program_parse.y"
+#line 787 "program_parse.y"
     {
           (yyval.attrib) = VERT_ATTRIB_POS;
        ;}
@@ -2720,7 +2722,7 @@ yyreduce:
   case 85:
 
 /* Line 1455 of yacc.c  */
-#line 789 "program_parse.y"
+#line 791 "program_parse.y"
     {
           (yyval.attrib) = VERT_ATTRIB_WEIGHT;
        ;}
@@ -2729,7 +2731,7 @@ yyreduce:
   case 86:
 
 /* Line 1455 of yacc.c  */
-#line 793 "program_parse.y"
+#line 795 "program_parse.y"
     {
           (yyval.attrib) = VERT_ATTRIB_NORMAL;
        ;}
@@ -2738,7 +2740,7 @@ yyreduce:
   case 87:
 
 /* Line 1455 of yacc.c  */
-#line 797 "program_parse.y"
+#line 799 "program_parse.y"
     {
           (yyval.attrib) = VERT_ATTRIB_COLOR0 + (yyvsp[(2) - (2)].integer);
        ;}
@@ -2747,7 +2749,7 @@ yyreduce:
   case 88:
 
 /* Line 1455 of yacc.c  */
-#line 801 "program_parse.y"
+#line 803 "program_parse.y"
     {
           (yyval.attrib) = VERT_ATTRIB_FOG;
        ;}
@@ -2756,7 +2758,7 @@ yyreduce:
   case 89:
 
 /* Line 1455 of yacc.c  */
-#line 805 "program_parse.y"
+#line 807 "program_parse.y"
     {
           (yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
        ;}
@@ -2765,7 +2767,7 @@ yyreduce:
   case 90:
 
 /* Line 1455 of yacc.c  */
-#line 809 "program_parse.y"
+#line 811 "program_parse.y"
     {
           YYERROR;
        ;}
@@ -2774,7 +2776,7 @@ yyreduce:
   case 91:
 
 /* Line 1455 of yacc.c  */
-#line 813 "program_parse.y"
+#line 815 "program_parse.y"
     {
           (yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer);
        ;}
@@ -2783,7 +2785,7 @@ yyreduce:
   case 92:
 
 /* Line 1455 of yacc.c  */
-#line 819 "program_parse.y"
+#line 821 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference");
@@ -2797,7 +2799,7 @@ yyreduce:
   case 96:
 
 /* Line 1455 of yacc.c  */
-#line 833 "program_parse.y"
+#line 835 "program_parse.y"
     {
           (yyval.attrib) = FRAG_ATTRIB_WPOS;
        ;}
@@ -2806,7 +2808,7 @@ yyreduce:
   case 97:
 
 /* Line 1455 of yacc.c  */
-#line 837 "program_parse.y"
+#line 839 "program_parse.y"
     {
           (yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer);
        ;}
@@ -2815,7 +2817,7 @@ yyreduce:
   case 98:
 
 /* Line 1455 of yacc.c  */
-#line 841 "program_parse.y"
+#line 843 "program_parse.y"
     {
           (yyval.attrib) = FRAG_ATTRIB_FOGC;
        ;}
@@ -2824,7 +2826,7 @@ yyreduce:
   case 99:
 
 /* Line 1455 of yacc.c  */
-#line 845 "program_parse.y"
+#line 847 "program_parse.y"
     {
           (yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
        ;}
@@ -2833,7 +2835,7 @@ yyreduce:
   case 102:
 
 /* Line 1455 of yacc.c  */
-#line 853 "program_parse.y"
+#line 855 "program_parse.y"
     {
           struct asm_symbol *const s =
              declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)]));
@@ -2852,7 +2854,7 @@ yyreduce:
   case 103:
 
 /* Line 1455 of yacc.c  */
-#line 869 "program_parse.y"
+#line 871 "program_parse.y"
     {
           if (((yyvsp[(4) - (6)].integer) != 0) && ((yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) {
              yyerror(& (yylsp[(4) - (6)]), state, 
@@ -2877,7 +2879,7 @@ yyreduce:
   case 104:
 
 /* Line 1455 of yacc.c  */
-#line 891 "program_parse.y"
+#line 893 "program_parse.y"
     {
           (yyval.integer) = 0;
        ;}
@@ -2886,7 +2888,7 @@ yyreduce:
   case 105:
 
 /* Line 1455 of yacc.c  */
-#line 895 "program_parse.y"
+#line 897 "program_parse.y"
     {
           if (((yyvsp[(1) - (1)].integer) < 1) || ((yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size");
@@ -2900,7 +2902,7 @@ yyreduce:
   case 106:
 
 /* Line 1455 of yacc.c  */
-#line 906 "program_parse.y"
+#line 908 "program_parse.y"
     {
           (yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym);
        ;}
@@ -2909,7 +2911,7 @@ yyreduce:
   case 107:
 
 /* Line 1455 of yacc.c  */
-#line 912 "program_parse.y"
+#line 914 "program_parse.y"
     {
           (yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym);
        ;}
@@ -2918,7 +2920,7 @@ yyreduce:
   case 109:
 
 /* Line 1455 of yacc.c  */
-#line 919 "program_parse.y"
+#line 921 "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);
@@ -2928,7 +2930,7 @@ yyreduce:
   case 110:
 
 /* Line 1455 of yacc.c  */
-#line 926 "program_parse.y"
+#line 928 "program_parse.y"
     {
           memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
           (yyval.temp_sym).param_binding_begin = ~0;
@@ -2939,7 +2941,7 @@ yyreduce:
   case 111:
 
 /* Line 1455 of yacc.c  */
-#line 932 "program_parse.y"
+#line 934 "program_parse.y"
     {
           memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
           (yyval.temp_sym).param_binding_begin = ~0;
@@ -2950,7 +2952,7 @@ yyreduce:
   case 112:
 
 /* Line 1455 of yacc.c  */
-#line 938 "program_parse.y"
+#line 940 "program_parse.y"
     {
           memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
           (yyval.temp_sym).param_binding_begin = ~0;
@@ -2961,7 +2963,7 @@ yyreduce:
   case 113:
 
 /* Line 1455 of yacc.c  */
-#line 946 "program_parse.y"
+#line 948 "program_parse.y"
     {
           memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
           (yyval.temp_sym).param_binding_begin = ~0;
@@ -2972,7 +2974,7 @@ yyreduce:
   case 114:
 
 /* Line 1455 of yacc.c  */
-#line 952 "program_parse.y"
+#line 954 "program_parse.y"
     {
           memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
           (yyval.temp_sym).param_binding_begin = ~0;
@@ -2983,7 +2985,7 @@ yyreduce:
   case 115:
 
 /* Line 1455 of yacc.c  */
-#line 958 "program_parse.y"
+#line 960 "program_parse.y"
     {
           memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
           (yyval.temp_sym).param_binding_begin = ~0;
@@ -2994,7 +2996,7 @@ yyreduce:
   case 116:
 
 /* Line 1455 of yacc.c  */
-#line 966 "program_parse.y"
+#line 968 "program_parse.y"
     {
           memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
           (yyval.temp_sym).param_binding_begin = ~0;
@@ -3005,7 +3007,7 @@ yyreduce:
   case 117:
 
 /* Line 1455 of yacc.c  */
-#line 972 "program_parse.y"
+#line 974 "program_parse.y"
     {
           memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
           (yyval.temp_sym).param_binding_begin = ~0;
@@ -3016,7 +3018,7 @@ yyreduce:
   case 118:
 
 /* Line 1455 of yacc.c  */
-#line 978 "program_parse.y"
+#line 980 "program_parse.y"
     {
           memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
           (yyval.temp_sym).param_binding_begin = ~0;
@@ -3027,91 +3029,91 @@ yyreduce:
   case 119:
 
 /* Line 1455 of yacc.c  */
-#line 985 "program_parse.y"
+#line 987 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;}
     break;
 
   case 120:
 
 /* Line 1455 of yacc.c  */
-#line 986 "program_parse.y"
+#line 988 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 121:
 
 /* Line 1455 of yacc.c  */
-#line 989 "program_parse.y"
+#line 991 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 122:
 
 /* Line 1455 of yacc.c  */
-#line 990 "program_parse.y"
+#line 992 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 123:
 
 /* Line 1455 of yacc.c  */
-#line 991 "program_parse.y"
+#line 993 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 124:
 
 /* Line 1455 of yacc.c  */
-#line 992 "program_parse.y"
+#line 994 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 125:
 
 /* Line 1455 of yacc.c  */
-#line 993 "program_parse.y"
+#line 995 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 126:
 
 /* Line 1455 of yacc.c  */
-#line 994 "program_parse.y"
+#line 996 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 127:
 
 /* Line 1455 of yacc.c  */
-#line 995 "program_parse.y"
+#line 997 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 128:
 
 /* Line 1455 of yacc.c  */
-#line 996 "program_parse.y"
+#line 998 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 129:
 
 /* Line 1455 of yacc.c  */
-#line 997 "program_parse.y"
+#line 999 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 130:
 
 /* Line 1455 of yacc.c  */
-#line 998 "program_parse.y"
+#line 1000 "program_parse.y"
     { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
     break;
 
   case 131:
 
 /* Line 1455 of yacc.c  */
-#line 1002 "program_parse.y"
+#line 1004 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_MATERIAL;
@@ -3123,7 +3125,7 @@ yyreduce:
   case 132:
 
 /* Line 1455 of yacc.c  */
-#line 1011 "program_parse.y"
+#line 1013 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(1) - (1)].integer);
        ;}
@@ -3132,7 +3134,7 @@ yyreduce:
   case 133:
 
 /* Line 1455 of yacc.c  */
-#line 1015 "program_parse.y"
+#line 1017 "program_parse.y"
     {
           (yyval.integer) = STATE_EMISSION;
        ;}
@@ -3141,7 +3143,7 @@ yyreduce:
   case 134:
 
 /* Line 1455 of yacc.c  */
-#line 1019 "program_parse.y"
+#line 1021 "program_parse.y"
     {
           (yyval.integer) = STATE_SHININESS;
        ;}
@@ -3150,7 +3152,7 @@ yyreduce:
   case 135:
 
 /* Line 1455 of yacc.c  */
-#line 1025 "program_parse.y"
+#line 1027 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_LIGHT;
@@ -3162,7 +3164,7 @@ yyreduce:
   case 136:
 
 /* Line 1455 of yacc.c  */
-#line 1034 "program_parse.y"
+#line 1036 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(1) - (1)].integer);
        ;}
@@ -3171,7 +3173,7 @@ yyreduce:
   case 137:
 
 /* Line 1455 of yacc.c  */
-#line 1038 "program_parse.y"
+#line 1040 "program_parse.y"
     {
           (yyval.integer) = STATE_POSITION;
        ;}
@@ -3180,7 +3182,7 @@ yyreduce:
   case 138:
 
 /* Line 1455 of yacc.c  */
-#line 1042 "program_parse.y"
+#line 1044 "program_parse.y"
     {
           (yyval.integer) = STATE_ATTENUATION;
        ;}
@@ -3189,7 +3191,7 @@ yyreduce:
   case 139:
 
 /* Line 1455 of yacc.c  */
-#line 1046 "program_parse.y"
+#line 1048 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(2) - (2)].integer);
        ;}
@@ -3198,7 +3200,7 @@ yyreduce:
   case 140:
 
 /* Line 1455 of yacc.c  */
-#line 1050 "program_parse.y"
+#line 1052 "program_parse.y"
     {
           (yyval.integer) = STATE_HALF_VECTOR;
        ;}
@@ -3207,7 +3209,7 @@ yyreduce:
   case 141:
 
 /* Line 1455 of yacc.c  */
-#line 1056 "program_parse.y"
+#line 1058 "program_parse.y"
     {
           (yyval.integer) = STATE_SPOT_DIRECTION;
        ;}
@@ -3216,7 +3218,7 @@ yyreduce:
   case 142:
 
 /* Line 1455 of yacc.c  */
-#line 1062 "program_parse.y"
+#line 1064 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(2) - (2)].state)[0];
           (yyval.state)[1] = (yyvsp[(2) - (2)].state)[1];
@@ -3226,7 +3228,7 @@ yyreduce:
   case 143:
 
 /* Line 1455 of yacc.c  */
-#line 1069 "program_parse.y"
+#line 1071 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT;
@@ -3236,7 +3238,7 @@ yyreduce:
   case 144:
 
 /* Line 1455 of yacc.c  */
-#line 1074 "program_parse.y"
+#line 1076 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR;
@@ -3247,7 +3249,7 @@ yyreduce:
   case 145:
 
 /* Line 1455 of yacc.c  */
-#line 1082 "program_parse.y"
+#line 1084 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_LIGHTPROD;
@@ -3260,7 +3262,7 @@ yyreduce:
   case 147:
 
 /* Line 1455 of yacc.c  */
-#line 1094 "program_parse.y"
+#line 1096 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = (yyvsp[(3) - (3)].integer);
@@ -3271,7 +3273,7 @@ yyreduce:
   case 148:
 
 /* Line 1455 of yacc.c  */
-#line 1102 "program_parse.y"
+#line 1104 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXENV_COLOR;
        ;}
@@ -3280,7 +3282,7 @@ yyreduce:
   case 149:
 
 /* Line 1455 of yacc.c  */
-#line 1108 "program_parse.y"
+#line 1110 "program_parse.y"
     {
           (yyval.integer) = STATE_AMBIENT;
        ;}
@@ -3289,7 +3291,7 @@ yyreduce:
   case 150:
 
 /* Line 1455 of yacc.c  */
-#line 1112 "program_parse.y"
+#line 1114 "program_parse.y"
     {
           (yyval.integer) = STATE_DIFFUSE;
        ;}
@@ -3298,7 +3300,7 @@ yyreduce:
   case 151:
 
 /* Line 1455 of yacc.c  */
-#line 1116 "program_parse.y"
+#line 1118 "program_parse.y"
     {
           (yyval.integer) = STATE_SPECULAR;
        ;}
@@ -3307,7 +3309,7 @@ yyreduce:
   case 152:
 
 /* Line 1455 of yacc.c  */
-#line 1122 "program_parse.y"
+#line 1124 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) >= state->MaxLights) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector");
@@ -3321,7 +3323,7 @@ yyreduce:
   case 153:
 
 /* Line 1455 of yacc.c  */
-#line 1133 "program_parse.y"
+#line 1135 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_TEXGEN;
@@ -3333,7 +3335,7 @@ yyreduce:
   case 154:
 
 /* Line 1455 of yacc.c  */
-#line 1142 "program_parse.y"
+#line 1144 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_S;
        ;}
@@ -3342,7 +3344,7 @@ yyreduce:
   case 155:
 
 /* Line 1455 of yacc.c  */
-#line 1146 "program_parse.y"
+#line 1148 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_OBJECT_S;
        ;}
@@ -3351,7 +3353,7 @@ yyreduce:
   case 156:
 
 /* Line 1455 of yacc.c  */
-#line 1151 "program_parse.y"
+#line 1153 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S;
        ;}
@@ -3360,7 +3362,7 @@ yyreduce:
   case 157:
 
 /* Line 1455 of yacc.c  */
-#line 1155 "program_parse.y"
+#line 1157 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S;
        ;}
@@ -3369,7 +3371,7 @@ yyreduce:
   case 158:
 
 /* Line 1455 of yacc.c  */
-#line 1159 "program_parse.y"
+#line 1161 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S;
        ;}
@@ -3378,7 +3380,7 @@ yyreduce:
   case 159:
 
 /* Line 1455 of yacc.c  */
-#line 1163 "program_parse.y"
+#line 1165 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S;
        ;}
@@ -3387,7 +3389,7 @@ yyreduce:
   case 160:
 
 /* Line 1455 of yacc.c  */
-#line 1169 "program_parse.y"
+#line 1171 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = (yyvsp[(2) - (2)].integer);
@@ -3397,7 +3399,7 @@ yyreduce:
   case 161:
 
 /* Line 1455 of yacc.c  */
-#line 1176 "program_parse.y"
+#line 1178 "program_parse.y"
     {
           (yyval.integer) = STATE_FOG_COLOR;
        ;}
@@ -3406,7 +3408,7 @@ yyreduce:
   case 162:
 
 /* Line 1455 of yacc.c  */
-#line 1180 "program_parse.y"
+#line 1182 "program_parse.y"
     {
           (yyval.integer) = STATE_FOG_PARAMS;
        ;}
@@ -3415,7 +3417,7 @@ yyreduce:
   case 163:
 
 /* Line 1455 of yacc.c  */
-#line 1186 "program_parse.y"
+#line 1188 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_CLIPPLANE;
@@ -3426,7 +3428,7 @@ yyreduce:
   case 164:
 
 /* Line 1455 of yacc.c  */
-#line 1194 "program_parse.y"
+#line 1196 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector");
@@ -3440,7 +3442,7 @@ yyreduce:
   case 165:
 
 /* Line 1455 of yacc.c  */
-#line 1205 "program_parse.y"
+#line 1207 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = (yyvsp[(2) - (2)].integer);
@@ -3450,7 +3452,7 @@ yyreduce:
   case 166:
 
 /* Line 1455 of yacc.c  */
-#line 1212 "program_parse.y"
+#line 1214 "program_parse.y"
     {
           (yyval.integer) = STATE_POINT_SIZE;
        ;}
@@ -3459,7 +3461,7 @@ yyreduce:
   case 167:
 
 /* Line 1455 of yacc.c  */
-#line 1216 "program_parse.y"
+#line 1218 "program_parse.y"
     {
           (yyval.integer) = STATE_POINT_ATTENUATION;
        ;}
@@ -3468,7 +3470,7 @@ yyreduce:
   case 168:
 
 /* Line 1455 of yacc.c  */
-#line 1222 "program_parse.y"
+#line 1224 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (5)].state)[0];
           (yyval.state)[1] = (yyvsp[(1) - (5)].state)[1];
@@ -3481,7 +3483,7 @@ yyreduce:
   case 169:
 
 /* Line 1455 of yacc.c  */
-#line 1232 "program_parse.y"
+#line 1234 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (2)].state)[0];
           (yyval.state)[1] = (yyvsp[(1) - (2)].state)[1];
@@ -3494,7 +3496,7 @@ yyreduce:
   case 170:
 
 /* Line 1455 of yacc.c  */
-#line 1242 "program_parse.y"
+#line 1244 "program_parse.y"
     {
           (yyval.state)[2] = 0;
           (yyval.state)[3] = 3;
@@ -3504,7 +3506,7 @@ yyreduce:
   case 171:
 
 /* Line 1455 of yacc.c  */
-#line 1247 "program_parse.y"
+#line 1249 "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).
@@ -3525,7 +3527,7 @@ yyreduce:
   case 172:
 
 /* Line 1455 of yacc.c  */
-#line 1265 "program_parse.y"
+#line 1267 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(2) - (3)].state)[0];
           (yyval.state)[1] = (yyvsp[(2) - (3)].state)[1];
@@ -3536,7 +3538,7 @@ yyreduce:
   case 173:
 
 /* Line 1455 of yacc.c  */
-#line 1273 "program_parse.y"
+#line 1275 "program_parse.y"
     {
           (yyval.integer) = 0;
        ;}
@@ -3545,7 +3547,7 @@ yyreduce:
   case 174:
 
 /* Line 1455 of yacc.c  */
-#line 1277 "program_parse.y"
+#line 1279 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(1) - (1)].integer);
        ;}
@@ -3554,7 +3556,7 @@ yyreduce:
   case 175:
 
 /* Line 1455 of yacc.c  */
-#line 1283 "program_parse.y"
+#line 1285 "program_parse.y"
     {
           (yyval.integer) = STATE_MATRIX_INVERSE;
        ;}
@@ -3563,7 +3565,7 @@ yyreduce:
   case 176:
 
 /* Line 1455 of yacc.c  */
-#line 1287 "program_parse.y"
+#line 1289 "program_parse.y"
     {
           (yyval.integer) = STATE_MATRIX_TRANSPOSE;
        ;}
@@ -3572,7 +3574,7 @@ yyreduce:
   case 177:
 
 /* Line 1455 of yacc.c  */
-#line 1291 "program_parse.y"
+#line 1293 "program_parse.y"
     {
           (yyval.integer) = STATE_MATRIX_INVTRANS;
        ;}
@@ -3581,7 +3583,7 @@ yyreduce:
   case 178:
 
 /* Line 1455 of yacc.c  */
-#line 1297 "program_parse.y"
+#line 1299 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) > 3) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference");
@@ -3595,7 +3597,7 @@ yyreduce:
   case 179:
 
 /* Line 1455 of yacc.c  */
-#line 1308 "program_parse.y"
+#line 1310 "program_parse.y"
     {
           (yyval.state)[0] = STATE_MODELVIEW_MATRIX;
           (yyval.state)[1] = (yyvsp[(2) - (2)].integer);
@@ -3605,7 +3607,7 @@ yyreduce:
   case 180:
 
 /* Line 1455 of yacc.c  */
-#line 1313 "program_parse.y"
+#line 1315 "program_parse.y"
     {
           (yyval.state)[0] = STATE_PROJECTION_MATRIX;
           (yyval.state)[1] = 0;
@@ -3615,7 +3617,7 @@ yyreduce:
   case 181:
 
 /* Line 1455 of yacc.c  */
-#line 1318 "program_parse.y"
+#line 1320 "program_parse.y"
     {
           (yyval.state)[0] = STATE_MVP_MATRIX;
           (yyval.state)[1] = 0;
@@ -3625,7 +3627,7 @@ yyreduce:
   case 182:
 
 /* Line 1455 of yacc.c  */
-#line 1323 "program_parse.y"
+#line 1325 "program_parse.y"
     {
           (yyval.state)[0] = STATE_TEXTURE_MATRIX;
           (yyval.state)[1] = (yyvsp[(2) - (2)].integer);
@@ -3635,7 +3637,7 @@ yyreduce:
   case 183:
 
 /* Line 1455 of yacc.c  */
-#line 1328 "program_parse.y"
+#line 1330 "program_parse.y"
     {
           YYERROR;
        ;}
@@ -3644,7 +3646,7 @@ yyreduce:
   case 184:
 
 /* Line 1455 of yacc.c  */
-#line 1332 "program_parse.y"
+#line 1334 "program_parse.y"
     {
           (yyval.state)[0] = STATE_PROGRAM_MATRIX;
           (yyval.state)[1] = (yyvsp[(3) - (4)].integer);
@@ -3654,7 +3656,7 @@ yyreduce:
   case 185:
 
 /* Line 1455 of yacc.c  */
-#line 1339 "program_parse.y"
+#line 1341 "program_parse.y"
     {
           (yyval.integer) = 0;
        ;}
@@ -3663,7 +3665,7 @@ yyreduce:
   case 186:
 
 /* Line 1455 of yacc.c  */
-#line 1343 "program_parse.y"
+#line 1345 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(1) - (1)].integer);
        ;}
@@ -3672,7 +3674,7 @@ yyreduce:
   case 187:
 
 /* Line 1455 of yacc.c  */
-#line 1348 "program_parse.y"
+#line 1350 "program_parse.y"
     {
           /* Since GL_ARB_vertex_blend isn't supported, only modelview matrix
            * zero is valid.
@@ -3689,7 +3691,7 @@ yyreduce:
   case 188:
 
 /* Line 1455 of yacc.c  */
-#line 1361 "program_parse.y"
+#line 1363 "program_parse.y"
     {
           /* Since GL_ARB_matrix_palette isn't supported, just let any value
            * through here.  The error will be generated later.
@@ -3701,7 +3703,7 @@ yyreduce:
   case 189:
 
 /* Line 1455 of yacc.c  */
-#line 1369 "program_parse.y"
+#line 1371 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector");
@@ -3715,7 +3717,7 @@ yyreduce:
   case 194:
 
 /* Line 1455 of yacc.c  */
-#line 1386 "program_parse.y"
+#line 1388 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = state->state_param_enum;
@@ -3728,7 +3730,7 @@ yyreduce:
   case 195:
 
 /* Line 1455 of yacc.c  */
-#line 1396 "program_parse.y"
+#line 1398 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (1)].integer);
           (yyval.state)[1] = (yyvsp[(1) - (1)].integer);
@@ -3738,7 +3740,7 @@ yyreduce:
   case 196:
 
 /* Line 1455 of yacc.c  */
-#line 1401 "program_parse.y"
+#line 1403 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (3)].integer);
           (yyval.state)[1] = (yyvsp[(3) - (3)].integer);
@@ -3748,7 +3750,7 @@ yyreduce:
   case 197:
 
 /* Line 1455 of yacc.c  */
-#line 1408 "program_parse.y"
+#line 1410 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = state->state_param_enum;
@@ -3761,7 +3763,7 @@ yyreduce:
   case 198:
 
 /* Line 1455 of yacc.c  */
-#line 1418 "program_parse.y"
+#line 1420 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = state->state_param_enum;
@@ -3774,7 +3776,7 @@ yyreduce:
   case 199:
 
 /* Line 1455 of yacc.c  */
-#line 1427 "program_parse.y"
+#line 1429 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (1)].integer);
           (yyval.state)[1] = (yyvsp[(1) - (1)].integer);
@@ -3784,7 +3786,7 @@ yyreduce:
   case 200:
 
 /* Line 1455 of yacc.c  */
-#line 1432 "program_parse.y"
+#line 1434 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (3)].integer);
           (yyval.state)[1] = (yyvsp[(3) - (3)].integer);
@@ -3794,7 +3796,7 @@ yyreduce:
   case 201:
 
 /* Line 1455 of yacc.c  */
-#line 1439 "program_parse.y"
+#line 1441 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = state->state_param_enum;
@@ -3807,7 +3809,7 @@ yyreduce:
   case 202:
 
 /* Line 1455 of yacc.c  */
-#line 1449 "program_parse.y"
+#line 1451 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference");
@@ -3820,7 +3822,7 @@ yyreduce:
   case 203:
 
 /* Line 1455 of yacc.c  */
-#line 1459 "program_parse.y"
+#line 1461 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference");
@@ -3833,7 +3835,7 @@ yyreduce:
   case 208:
 
 /* Line 1455 of yacc.c  */
-#line 1474 "program_parse.y"
+#line 1476 "program_parse.y"
     {
           (yyval.vector).count = 1;
           (yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
@@ -3843,7 +3845,7 @@ yyreduce:
   case 209:
 
 /* Line 1455 of yacc.c  */
-#line 1481 "program_parse.y"
+#line 1483 "program_parse.y"
     {
           (yyval.vector).count = 1;
           (yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
@@ -3853,7 +3855,7 @@ yyreduce:
   case 210:
 
 /* Line 1455 of yacc.c  */
-#line 1486 "program_parse.y"
+#line 1488 "program_parse.y"
     {
           (yyval.vector).count = 1;
           (yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer);
@@ -3863,7 +3865,7 @@ yyreduce:
   case 211:
 
 /* Line 1455 of yacc.c  */
-#line 1493 "program_parse.y"
+#line 1495 "program_parse.y"
     {
           (yyval.vector).count = 1;
           (yyval.vector).data[0] = (yyvsp[(2) - (3)].real);
@@ -3873,7 +3875,7 @@ yyreduce:
   case 212:
 
 /* Line 1455 of yacc.c  */
-#line 1498 "program_parse.y"
+#line 1500 "program_parse.y"
     {
           (yyval.vector).count = 2;
           (yyval.vector).data[0] = (yyvsp[(2) - (5)].real);
@@ -3884,7 +3886,7 @@ yyreduce:
   case 213:
 
 /* Line 1455 of yacc.c  */
-#line 1505 "program_parse.y"
+#line 1507 "program_parse.y"
     {
           (yyval.vector).count = 3;
           (yyval.vector).data[0] = (yyvsp[(2) - (7)].real);
@@ -3896,7 +3898,7 @@ yyreduce:
   case 214:
 
 /* Line 1455 of yacc.c  */
-#line 1513 "program_parse.y"
+#line 1515 "program_parse.y"
     {
           (yyval.vector).count = 4;
           (yyval.vector).data[0] = (yyvsp[(2) - (9)].real);
@@ -3909,7 +3911,7 @@ yyreduce:
   case 215:
 
 /* Line 1455 of yacc.c  */
-#line 1523 "program_parse.y"
+#line 1525 "program_parse.y"
     {
           (yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real);
        ;}
@@ -3918,7 +3920,7 @@ yyreduce:
   case 216:
 
 /* Line 1455 of yacc.c  */
-#line 1527 "program_parse.y"
+#line 1529 "program_parse.y"
     {
           (yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer));
        ;}
@@ -3927,42 +3929,42 @@ yyreduce:
   case 217:
 
 /* Line 1455 of yacc.c  */
-#line 1532 "program_parse.y"
+#line 1534 "program_parse.y"
     { (yyval.negate) = FALSE; ;}
     break;
 
   case 218:
 
 /* Line 1455 of yacc.c  */
-#line 1533 "program_parse.y"
+#line 1535 "program_parse.y"
     { (yyval.negate) = TRUE;  ;}
     break;
 
   case 219:
 
 /* Line 1455 of yacc.c  */
-#line 1534 "program_parse.y"
+#line 1536 "program_parse.y"
     { (yyval.negate) = FALSE; ;}
     break;
 
   case 220:
 
 /* Line 1455 of yacc.c  */
-#line 1537 "program_parse.y"
+#line 1539 "program_parse.y"
     { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
     break;
 
   case 222:
 
 /* Line 1455 of yacc.c  */
-#line 1540 "program_parse.y"
+#line 1542 "program_parse.y"
     { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
     break;
 
   case 224:
 
 /* Line 1455 of yacc.c  */
-#line 1544 "program_parse.y"
+#line 1546 "program_parse.y"
     {
           if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) {
              YYERROR;
@@ -3973,7 +3975,7 @@ yyreduce:
   case 225:
 
 /* Line 1455 of yacc.c  */
-#line 1550 "program_parse.y"
+#line 1552 "program_parse.y"
     {
           if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) {
              YYERROR;
@@ -3984,7 +3986,7 @@ yyreduce:
   case 226:
 
 /* Line 1455 of yacc.c  */
-#line 1558 "program_parse.y"
+#line 1560 "program_parse.y"
     {
           struct asm_symbol *const s =
              declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)]));
@@ -4000,7 +4002,7 @@ yyreduce:
   case 227:
 
 /* Line 1455 of yacc.c  */
-#line 1571 "program_parse.y"
+#line 1573 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.result) = VERT_RESULT_HPOS;
@@ -4014,7 +4016,7 @@ yyreduce:
   case 228:
 
 /* Line 1455 of yacc.c  */
-#line 1580 "program_parse.y"
+#line 1582 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.result) = VERT_RESULT_FOGC;
@@ -4028,7 +4030,7 @@ yyreduce:
   case 229:
 
 /* Line 1455 of yacc.c  */
-#line 1589 "program_parse.y"
+#line 1591 "program_parse.y"
     {
           (yyval.result) = (yyvsp[(2) - (2)].result);
        ;}
@@ -4037,7 +4039,7 @@ yyreduce:
   case 230:
 
 /* Line 1455 of yacc.c  */
-#line 1593 "program_parse.y"
+#line 1595 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.result) = VERT_RESULT_PSIZ;
@@ -4051,7 +4053,7 @@ yyreduce:
   case 231:
 
 /* Line 1455 of yacc.c  */
-#line 1602 "program_parse.y"
+#line 1604 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer);
@@ -4065,7 +4067,7 @@ yyreduce:
   case 232:
 
 /* Line 1455 of yacc.c  */
-#line 1611 "program_parse.y"
+#line 1613 "program_parse.y"
     {
           if (state->mode == ARB_fragment) {
              (yyval.result) = FRAG_RESULT_DEPTH;
@@ -4079,7 +4081,7 @@ yyreduce:
   case 233:
 
 /* Line 1455 of yacc.c  */
-#line 1622 "program_parse.y"
+#line 1624 "program_parse.y"
     {
           (yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer);
        ;}
@@ -4088,7 +4090,7 @@ yyreduce:
   case 234:
 
 /* Line 1455 of yacc.c  */
-#line 1628 "program_parse.y"
+#line 1630 "program_parse.y"
     {
           (yyval.integer) = (state->mode == ARB_vertex)
              ? VERT_RESULT_COL0
@@ -4099,7 +4101,7 @@ yyreduce:
   case 235:
 
 /* Line 1455 of yacc.c  */
-#line 1634 "program_parse.y"
+#line 1636 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.integer) = VERT_RESULT_COL0;
@@ -4113,7 +4115,7 @@ yyreduce:
   case 236:
 
 /* Line 1455 of yacc.c  */
-#line 1643 "program_parse.y"
+#line 1645 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.integer) = VERT_RESULT_BFC0;
@@ -4127,7 +4129,7 @@ yyreduce:
   case 237:
 
 /* Line 1455 of yacc.c  */
-#line 1654 "program_parse.y"
+#line 1656 "program_parse.y"
     {
           (yyval.integer) = 0; 
        ;}
@@ -4136,7 +4138,7 @@ yyreduce:
   case 238:
 
 /* Line 1455 of yacc.c  */
-#line 1658 "program_parse.y"
+#line 1660 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.integer) = 0;
@@ -4150,7 +4152,7 @@ yyreduce:
   case 239:
 
 /* Line 1455 of yacc.c  */
-#line 1667 "program_parse.y"
+#line 1669 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.integer) = 1;
@@ -4164,91 +4166,91 @@ yyreduce:
   case 240:
 
 /* Line 1455 of yacc.c  */
-#line 1677 "program_parse.y"
+#line 1679 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
   case 241:
 
 /* Line 1455 of yacc.c  */
-#line 1678 "program_parse.y"
+#line 1680 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
   case 242:
 
 /* Line 1455 of yacc.c  */
-#line 1679 "program_parse.y"
+#line 1681 "program_parse.y"
     { (yyval.integer) = 1; ;}
     break;
 
   case 243:
 
 /* Line 1455 of yacc.c  */
-#line 1682 "program_parse.y"
+#line 1684 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
   case 244:
 
 /* Line 1455 of yacc.c  */
-#line 1683 "program_parse.y"
+#line 1685 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
   case 245:
 
 /* Line 1455 of yacc.c  */
-#line 1684 "program_parse.y"
+#line 1686 "program_parse.y"
     { (yyval.integer) = 1; ;}
     break;
 
   case 246:
 
 /* Line 1455 of yacc.c  */
-#line 1687 "program_parse.y"
+#line 1689 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
   case 247:
 
 /* Line 1455 of yacc.c  */
-#line 1688 "program_parse.y"
+#line 1690 "program_parse.y"
     { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
     break;
 
   case 248:
 
 /* Line 1455 of yacc.c  */
-#line 1691 "program_parse.y"
+#line 1693 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
   case 249:
 
 /* Line 1455 of yacc.c  */
-#line 1692 "program_parse.y"
+#line 1694 "program_parse.y"
     { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
     break;
 
   case 250:
 
 /* Line 1455 of yacc.c  */
-#line 1695 "program_parse.y"
+#line 1697 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
   case 251:
 
 /* Line 1455 of yacc.c  */
-#line 1696 "program_parse.y"
+#line 1698 "program_parse.y"
     { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
     break;
 
   case 252:
 
 /* Line 1455 of yacc.c  */
-#line 1700 "program_parse.y"
+#line 1702 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector");
@@ -4262,7 +4264,7 @@ yyreduce:
   case 253:
 
 /* Line 1455 of yacc.c  */
-#line 1711 "program_parse.y"
+#line 1713 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector");
@@ -4276,7 +4278,7 @@ yyreduce:
   case 254:
 
 /* Line 1455 of yacc.c  */
-#line 1722 "program_parse.y"
+#line 1724 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector");
@@ -4290,7 +4292,7 @@ yyreduce:
   case 255:
 
 /* Line 1455 of yacc.c  */
-#line 1733 "program_parse.y"
+#line 1735 "program_parse.y"
     {
           struct asm_symbol *exist = (struct asm_symbol *)
              _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string));
@@ -4314,7 +4316,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 4318 "program_parse.tab.c"
+#line 4320 "program_parse.tab.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4533,7 +4535,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 1753 "program_parse.y"
+#line 1755 "program_parse.y"
 
 
 struct asm_instruction *
index 39e3ee1f1e2e647f5ad3fa5ea812bfddaaa17ab3..0260196210ac3fc259f660a7cd2a0205364e5898 100644 (file)
@@ -590,7 +590,9 @@ srcReg: IDENTIFIER /* temporaryReg | progParamSingle */
        | paramSingleItemUse
        {
           init_src_reg(& $$);
-          $$.Base.File = $1.param_binding_type;
+          $$.Base.File = ($1.name != NULL) 
+             ? $1.param_binding_type
+             : PROGRAM_CONSTANT;
           $$.Base.Index = $1.param_binding_begin;
        }
        ;