ARB prog parser: Finish implementing fp state.depth.range
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 30 Jul 2009 03:41:48 +0000 (20:41 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Thu, 30 Jul 2009 03:41:48 +0000 (20:41 -0700)
src/mesa/shader/program_parse.tab.c
src/mesa/shader/program_parse.y

index 906c6b4738fdab080c2fb8a09b3ec7943d608a0a..ae35bd3fef7b437957dd7cf5777aca6a036ed7cc 100644 (file)
@@ -580,16 +580,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  5
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   337
+#define YYLAST   340
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  115
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  133
+#define YYNNTS  134
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  262
+#define YYNRULES  264
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  431
+#define YYNSTATES  434
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -658,20 +658,20 @@ static const yytype_uint16 yyprhs[] =
      277,   278,   282,   284,   286,   289,   291,   294,   296,   298,
      302,   309,   310,   312,   315,   320,   322,   326,   328,   330,
      332,   334,   336,   338,   340,   342,   344,   346,   349,   352,
-     355,   358,   361,   364,   367,   370,   373,   376,   379,   383,
-     385,   387,   389,   395,   397,   399,   401,   404,   406,   408,
-     411,   413,   416,   423,   425,   429,   431,   433,   435,   437,
-     439,   444,   446,   448,   450,   452,   454,   456,   459,   461,
-     463,   469,   471,   474,   476,   478,   484,   487,   488,   495,
-     499,   500,   502,   504,   506,   508,   510,   513,   515,   517,
-     520,   525,   530,   531,   533,   535,   537,   539,   541,   543,
-     545,   547,   553,   555,   559,   565,   571,   573,   577,   583,
-     585,   587,   589,   591,   593,   595,   597,   599,   601,   605,
-     611,   619,   629,   632,   635,   637,   639,   640,   641,   645,
-     646,   650,   654,   656,   661,   664,   667,   670,   673,   677,
-     680,   684,   685,   687,   689,   690,   692,   694,   695,   697,
-     699,   700,   702,   704,   705,   709,   710,   714,   715,   719,
-     721,   723,   725
+     355,   358,   361,   364,   367,   370,   373,   376,   379,   382,
+     386,   388,   390,   392,   398,   400,   402,   404,   407,   409,
+     411,   414,   416,   419,   426,   428,   432,   434,   436,   438,
+     440,   442,   447,   449,   451,   453,   455,   457,   459,   462,
+     464,   466,   472,   474,   477,   479,   481,   487,   490,   491,
+     498,   502,   503,   505,   507,   509,   511,   513,   516,   518,
+     520,   523,   528,   533,   534,   536,   538,   540,   542,   545,
+     547,   549,   551,   553,   559,   561,   565,   571,   577,   579,
+     583,   589,   591,   593,   595,   597,   599,   601,   603,   605,
+     607,   611,   617,   625,   635,   638,   641,   643,   645,   646,
+     647,   651,   652,   656,   660,   662,   667,   670,   673,   676,
+     679,   683,   686,   690,   691,   693,   695,   696,   698,   700,
+     701,   703,   705,   706,   708,   710,   711,   715,   716,   720,
+     721,   725,   727,   729,   731
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
@@ -687,69 +687,70 @@ static const yytype_int16 yyrhs[] =
      136,   107,   136,    -1,    13,   138,   107,   137,   107,   137,
       -1,    17,   138,   107,   137,   107,   137,   107,   137,    -1,
       15,   138,   107,   137,   107,   133,   107,   134,    -1,    20,
-     137,    -1,    82,   242,    -1,    83,    -1,    84,    -1,    85,
+     137,    -1,    82,   243,    -1,    83,    -1,    84,    -1,    85,
       -1,    86,    -1,    87,    -1,    88,    -1,    89,    -1,    90,
       -1,    91,    -1,    92,    -1,    93,    -1,    94,    -1,    21,
-     138,   107,   143,   107,   140,    -1,   228,   143,   155,    -1,
-     228,   143,   156,    -1,   144,   157,    -1,   152,   154,    -1,
-     141,   107,   141,   107,   141,   107,   141,    -1,   228,   142,
+     138,   107,   143,   107,   140,    -1,   229,   143,   155,    -1,
+     229,   143,   156,    -1,   144,   157,    -1,   152,   154,    -1,
+     141,   107,   141,   107,   141,   107,   141,    -1,   229,   142,
       -1,    22,    -1,    98,    -1,    98,    -1,   160,    -1,   145,
-     108,   146,   109,    -1,   174,    -1,   235,    -1,    98,    -1,
+     108,   146,   109,    -1,   174,    -1,   236,    -1,    98,    -1,
       98,    -1,   147,    -1,   148,    -1,    22,    -1,   152,   153,
      149,    -1,    -1,   110,   150,    -1,   111,   151,    -1,    22,
       -1,    22,    -1,    98,    -1,   102,    -1,   102,    -1,   102,
       -1,   102,    -1,    99,    -1,   103,    -1,    -1,    99,    -1,
      100,    -1,   101,    -1,   102,    -1,    -1,   159,    -1,   166,
-      -1,   229,    -1,   231,    -1,   234,    -1,   247,    -1,     7,
+      -1,   230,    -1,   232,    -1,   235,    -1,   248,    -1,     7,
       98,   112,   160,    -1,    95,   161,    -1,    37,   165,    -1,
-      59,    -1,    97,   163,    -1,    52,    -1,    28,   240,    -1,
-      36,    -1,    73,   241,    -1,    49,   108,   164,   109,    -1,
+      59,    -1,    97,   163,    -1,    52,    -1,    28,   241,    -1,
+      36,    -1,    73,   242,    -1,    49,   108,   164,   109,    -1,
       96,   108,   162,   109,    -1,    22,    -1,    -1,   108,   164,
-     109,    -1,    22,    -1,    59,    -1,    28,   240,    -1,    36,
-      -1,    73,   241,    -1,   167,    -1,   168,    -1,    10,    98,
+     109,    -1,    22,    -1,    59,    -1,    28,   241,    -1,    36,
+      -1,    73,   242,    -1,   167,    -1,   168,    -1,    10,    98,
      170,    -1,    10,    98,   108,   169,   109,   171,    -1,    -1,
       22,    -1,   112,   173,    -1,   112,   113,   172,   114,    -1,
-     175,    -1,   172,   107,   175,    -1,   177,    -1,   212,    -1,
-     222,    -1,   177,    -1,   212,    -1,   223,    -1,   176,    -1,
-     213,    -1,   222,    -1,   177,    -1,    72,   201,    -1,    72,
+     175,    -1,   172,   107,   175,    -1,   177,    -1,   213,    -1,
+     223,    -1,   177,    -1,   213,    -1,   224,    -1,   176,    -1,
+     214,    -1,   223,    -1,   177,    -1,    72,   201,    -1,    72,
      178,    -1,    72,   180,    -1,    72,   183,    -1,    72,   185,
       -1,    72,   191,    -1,    72,   187,    -1,    72,   194,    -1,
-      72,   196,    -1,    72,   198,    -1,    72,   200,    -1,    46,
-     239,   179,    -1,   189,    -1,    32,    -1,    68,    -1,    42,
-     108,   190,   109,   181,    -1,   189,    -1,    59,    -1,    25,
-      -1,    71,   182,    -1,    39,    -1,    31,    -1,    43,   184,
-      -1,    24,    -1,   239,    66,    -1,    44,   108,   190,   109,
-     239,   186,    -1,   189,    -1,    74,   243,   188,    -1,    28,
-      -1,    24,    -1,    30,    -1,    70,    -1,    22,    -1,    75,
-     241,   192,   193,    -1,    34,    -1,    53,    -1,    78,    -1,
-      79,    -1,    77,    -1,    76,    -1,    35,   195,    -1,    28,
-      -1,    55,    -1,    27,   108,   197,   109,    56,    -1,    22,
-      -1,    57,   199,    -1,    69,    -1,    25,    -1,   203,    65,
-     108,   206,   109,    -1,   203,   202,    -1,    -1,    65,   108,
-     206,   104,   206,   109,    -1,    48,   207,   204,    -1,    -1,
-     205,    -1,    40,    -1,    81,    -1,    41,    -1,    22,    -1,
-      50,   208,    -1,    62,    -1,    51,    -1,    80,   241,    -1,
-      54,   108,   210,   109,    -1,    47,   108,   211,   109,    -1,
-      -1,   209,    -1,    22,    -1,    22,    -1,    22,    -1,   216,
-      -1,   219,    -1,   214,    -1,   217,    -1,    61,    33,   108,
-     215,   109,    -1,   220,    -1,   220,   104,   220,    -1,    61,
-      33,   108,   220,   109,    -1,    61,    45,   108,   218,   109,
-      -1,   221,    -1,   221,   104,   221,    -1,    61,    45,   108,
-     221,   109,    -1,    22,    -1,    22,    -1,   224,    -1,   226,
-      -1,   225,    -1,   226,    -1,   227,    -1,    23,    -1,    22,
-      -1,   113,   227,   114,    -1,   113,   227,   107,   227,   114,
-      -1,   113,   227,   107,   227,   107,   227,   114,    -1,   113,
-     227,   107,   227,   107,   227,   107,   227,   114,    -1,   228,
-      23,    -1,   228,    22,    -1,   110,    -1,   111,    -1,    -1,
-      -1,    11,   230,   233,    -1,    -1,     5,   232,   233,    -1,
-     233,   107,    98,    -1,    98,    -1,     9,    98,   112,   235,
-      -1,    64,    59,    -1,    64,    36,    -1,    64,   236,    -1,
-      64,    58,    -1,    64,    73,   241,    -1,    64,    29,    -1,
-      28,   237,   238,    -1,    -1,    38,    -1,    26,    -1,    -1,
-      60,    -1,    67,    -1,    -1,    38,    -1,    26,    -1,    -1,
-      60,    -1,    67,    -1,    -1,   108,   244,   109,    -1,    -1,
-     108,   245,   109,    -1,    -1,   108,   246,   109,    -1,    22,
-      -1,    22,    -1,    22,    -1,     6,    98,   112,    98,    -1
+      72,   196,    -1,    72,   198,    -1,    72,   200,    -1,    72,
+     212,    -1,    46,   240,   179,    -1,   189,    -1,    32,    -1,
+      68,    -1,    42,   108,   190,   109,   181,    -1,   189,    -1,
+      59,    -1,    25,    -1,    71,   182,    -1,    39,    -1,    31,
+      -1,    43,   184,    -1,    24,    -1,   240,    66,    -1,    44,
+     108,   190,   109,   240,   186,    -1,   189,    -1,    74,   244,
+     188,    -1,    28,    -1,    24,    -1,    30,    -1,    70,    -1,
+      22,    -1,    75,   242,   192,   193,    -1,    34,    -1,    53,
+      -1,    78,    -1,    79,    -1,    77,    -1,    76,    -1,    35,
+     195,    -1,    28,    -1,    55,    -1,    27,   108,   197,   109,
+      56,    -1,    22,    -1,    57,   199,    -1,    69,    -1,    25,
+      -1,   203,    65,   108,   206,   109,    -1,   203,   202,    -1,
+      -1,    65,   108,   206,   104,   206,   109,    -1,    48,   207,
+     204,    -1,    -1,   205,    -1,    40,    -1,    81,    -1,    41,
+      -1,    22,    -1,    50,   208,    -1,    62,    -1,    51,    -1,
+      80,   242,    -1,    54,   108,   210,   109,    -1,    47,   108,
+     211,   109,    -1,    -1,   209,    -1,    22,    -1,    22,    -1,
+      22,    -1,    29,    63,    -1,   217,    -1,   220,    -1,   215,
+      -1,   218,    -1,    61,    33,   108,   216,   109,    -1,   221,
+      -1,   221,   104,   221,    -1,    61,    33,   108,   221,   109,
+      -1,    61,    45,   108,   219,   109,    -1,   222,    -1,   222,
+     104,   222,    -1,    61,    45,   108,   222,   109,    -1,    22,
+      -1,    22,    -1,   225,    -1,   227,    -1,   226,    -1,   227,
+      -1,   228,    -1,    23,    -1,    22,    -1,   113,   228,   114,
+      -1,   113,   228,   107,   228,   114,    -1,   113,   228,   107,
+     228,   107,   228,   114,    -1,   113,   228,   107,   228,   107,
+     228,   107,   228,   114,    -1,   229,    23,    -1,   229,    22,
+      -1,   110,    -1,   111,    -1,    -1,    -1,    11,   231,   234,
+      -1,    -1,     5,   233,   234,    -1,   234,   107,    98,    -1,
+      98,    -1,     9,    98,   112,   236,    -1,    64,    59,    -1,
+      64,    36,    -1,    64,   237,    -1,    64,    58,    -1,    64,
+      73,   242,    -1,    64,    29,    -1,    28,   238,   239,    -1,
+      -1,    38,    -1,    26,    -1,    -1,    60,    -1,    67,    -1,
+      -1,    38,    -1,    26,    -1,    -1,    60,    -1,    67,    -1,
+      -1,   108,   245,   109,    -1,    -1,   108,   246,   109,    -1,
+      -1,   108,   247,   109,    -1,    22,    -1,    22,    -1,    22,
+      -1,     6,    98,   112,    98,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -768,20 +769,20 @@ static const yytype_uint16 yyrline[] =
      916,   916,   917,   919,   923,   927,   931,   937,   937,   939,
      955,   978,   981,   992,   998,  1004,  1005,  1012,  1018,  1024,
     1032,  1038,  1044,  1052,  1058,  1064,  1072,  1073,  1076,  1077,
-    1078,  1079,  1080,  1081,  1082,  1083,  1084,  1085,  1088,  1097,
-    1101,  1105,  1111,  1120,  1124,  1128,  1137,  1141,  1147,  1153,
-    1160,  1165,  1173,  1183,  1185,  1193,  1199,  1203,  1207,  1213,
-    1224,  1233,  1237,  1242,  1246,  1250,  1254,  1260,  1267,  1271,
-    1277,  1285,  1296,  1303,  1307,  1313,  1323,  1334,  1338,  1356,
-    1365,  1368,  1374,  1378,  1382,  1388,  1399,  1404,  1409,  1414,
-    1419,  1424,  1432,  1435,  1440,  1453,  1461,  1474,  1474,  1476,
-    1476,  1478,  1488,  1493,  1500,  1510,  1519,  1524,  1531,  1541,
-    1551,  1563,  1563,  1564,  1564,  1566,  1573,  1578,  1585,  1593,
-    1601,  1610,  1621,  1625,  1631,  1632,  1633,  1636,  1636,  1639,
-    1639,  1642,  1648,  1656,  1669,  1678,  1687,  1691,  1700,  1709,
-    1720,  1727,  1732,  1741,  1753,  1756,  1765,  1776,  1777,  1778,
-    1781,  1782,  1783,  1786,  1787,  1790,  1791,  1794,  1795,  1798,
-    1809,  1820,  1831
+    1078,  1079,  1080,  1081,  1082,  1083,  1084,  1085,  1086,  1089,
+    1098,  1102,  1106,  1112,  1121,  1125,  1129,  1138,  1142,  1148,
+    1154,  1161,  1166,  1174,  1184,  1186,  1194,  1200,  1204,  1208,
+    1214,  1225,  1234,  1238,  1243,  1247,  1251,  1255,  1261,  1268,
+    1272,  1278,  1286,  1297,  1304,  1308,  1314,  1324,  1335,  1339,
+    1357,  1366,  1369,  1375,  1379,  1383,  1389,  1400,  1405,  1410,
+    1415,  1420,  1425,  1433,  1436,  1441,  1454,  1462,  1473,  1481,
+    1481,  1483,  1483,  1485,  1495,  1500,  1507,  1517,  1526,  1531,
+    1538,  1548,  1558,  1570,  1570,  1571,  1571,  1573,  1580,  1585,
+    1592,  1600,  1608,  1617,  1628,  1632,  1638,  1639,  1640,  1643,
+    1643,  1646,  1646,  1649,  1655,  1663,  1676,  1685,  1694,  1698,
+    1707,  1716,  1727,  1734,  1739,  1748,  1760,  1763,  1772,  1783,
+    1784,  1785,  1788,  1789,  1790,  1793,  1794,  1797,  1798,  1801,
+    1802,  1805,  1816,  1827,  1838
 };
 #endif
 
@@ -836,15 +837,16 @@ static const char *const yytname[] =
   "stateMatrixRows", "optMatrixRows", "stateMatrixItem",
   "stateOptMatModifier", "stateMatModifier", "stateMatrixRowNum",
   "stateMatrixName", "stateOptModMatNum", "stateModMatNum",
-  "statePaletteMatNum", "stateProgramMatNum", "programSingleItem",
-  "programMultipleItem", "progEnvParams", "progEnvParamNums",
-  "progEnvParam", "progLocalParams", "progLocalParamNums",
-  "progLocalParam", "progEnvParamNum", "progLocalParamNum",
-  "paramConstDecl", "paramConstUse", "paramConstScalarDecl",
-  "paramConstScalarUse", "paramConstVector", "signedFloatConstant",
-  "optionalSign", "TEMP_statement", "@1", "ADDRESS_statement", "@2",
-  "varNameList", "OUTPUT_statement", "resultBinding", "resultColBinding",
-  "optResultFaceType", "optResultColorType", "optFaceType", "optColorType",
+  "statePaletteMatNum", "stateProgramMatNum", "stateDepthItem",
+  "programSingleItem", "programMultipleItem", "progEnvParams",
+  "progEnvParamNums", "progEnvParam", "progLocalParams",
+  "progLocalParamNums", "progLocalParam", "progEnvParamNum",
+  "progLocalParamNum", "paramConstDecl", "paramConstUse",
+  "paramConstScalarDecl", "paramConstScalarUse", "paramConstVector",
+  "signedFloatConstant", "optionalSign", "TEMP_statement", "@1",
+  "ADDRESS_statement", "@2", "varNameList", "OUTPUT_statement",
+  "resultBinding", "resultColBinding", "optResultFaceType",
+  "optResultColorType", "optFaceType", "optColorType",
   "optTexCoordUnitNum", "optTexImageUnitNum", "optLegacyTexUnitNum",
   "texCoordUnitNum", "texImageUnitNum", "legacyTexUnitNum",
   "ALIAS_statement", 0
@@ -887,20 +889,20 @@ static const yytype_uint8 yyr1[] =
      163,   163,   164,   165,   165,   165,   165,   166,   166,   167,
      168,   169,   169,   170,   171,   172,   172,   173,   173,   173,
      174,   174,   174,   175,   175,   175,   176,   176,   177,   177,
-     177,   177,   177,   177,   177,   177,   177,   177,   178,   179,
-     179,   179,   180,   181,   181,   181,   181,   181,   182,   183,
-     184,   184,   185,   186,   187,   188,   189,   189,   189,   190,
-     191,   192,   192,   193,   193,   193,   193,   194,   195,   195,
-     196,   197,   198,   199,   199,   200,   201,   202,   202,   203,
-     204,   204,   205,   205,   205,   206,   207,   207,   207,   207,
-     207,   207,   208,   208,   209,   210,   211,   212,   212,   213,
-     213,   214,   215,   215,   216,   217,   218,   218,   219,   220,
-     221,   222,   222,   223,   223,   224,   225,   225,   226,   226,
-     226,   226,   227,   227,   228,   228,   228,   230,   229,   232,
-     231,   233,   233,   234,   235,   235,   235,   235,   235,   235,
-     236,   237,   237,   237,   238,   238,   238,   239,   239,   239,
-     240,   240,   240,   241,   241,   242,   242,   243,   243,   244,
-     245,   246,   247
+     177,   177,   177,   177,   177,   177,   177,   177,   177,   178,
+     179,   179,   179,   180,   181,   181,   181,   181,   181,   182,
+     183,   184,   184,   185,   186,   187,   188,   189,   189,   189,
+     190,   191,   192,   192,   193,   193,   193,   193,   194,   195,
+     195,   196,   197,   198,   199,   199,   200,   201,   202,   202,
+     203,   204,   204,   205,   205,   205,   206,   207,   207,   207,
+     207,   207,   207,   208,   208,   209,   210,   211,   212,   213,
+     213,   214,   214,   215,   216,   216,   217,   218,   219,   219,
+     220,   221,   222,   223,   223,   224,   224,   225,   226,   226,
+     227,   227,   227,   227,   228,   228,   229,   229,   229,   231,
+     230,   233,   232,   234,   234,   235,   236,   236,   236,   236,
+     236,   236,   237,   238,   238,   238,   239,   239,   239,   240,
+     240,   240,   241,   241,   241,   242,   242,   243,   243,   244,
+     244,   245,   246,   247,   248
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -919,20 +921,20 @@ static const yytype_uint8 yyr2[] =
        0,     3,     1,     1,     2,     1,     2,     1,     1,     3,
        6,     0,     1,     2,     4,     1,     3,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     3,     1,
-       1,     1,     5,     1,     1,     1,     2,     1,     1,     2,
-       1,     2,     6,     1,     3,     1,     1,     1,     1,     1,
-       4,     1,     1,     1,     1,     1,     1,     2,     1,     1,
-       5,     1,     2,     1,     1,     5,     2,     0,     6,     3,
-       0,     1,     1,     1,     1,     1,     2,     1,     1,     2,
-       4,     4,     0,     1,     1,     1,     1,     1,     1,     1,
-       1,     5,     1,     3,     5,     5,     1,     3,     5,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     3,     5,
-       7,     9,     2,     2,     1,     1,     0,     0,     3,     0,
-       3,     3,     1,     4,     2,     2,     2,     2,     3,     2,
-       3,     0,     1,     1,     0,     1,     1,     0,     1,     1,
-       0,     1,     1,     0,     3,     0,     3,     0,     3,     1,
-       1,     1,     4
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
+       1,     1,     1,     5,     1,     1,     1,     2,     1,     1,
+       2,     1,     2,     6,     1,     3,     1,     1,     1,     1,
+       1,     4,     1,     1,     1,     1,     1,     1,     2,     1,
+       1,     5,     1,     2,     1,     1,     5,     2,     0,     6,
+       3,     0,     1,     1,     1,     1,     1,     2,     1,     1,
+       2,     4,     4,     0,     1,     1,     1,     1,     2,     1,
+       1,     1,     1,     5,     1,     3,     5,     5,     1,     3,
+       5,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       3,     5,     7,     9,     2,     2,     1,     1,     0,     0,
+       3,     0,     3,     3,     1,     4,     2,     2,     2,     2,
+       3,     2,     3,     0,     1,     1,     0,     1,     1,     0,
+       1,     1,     0,     1,     1,     0,     3,     0,     3,     0,
+       3,     1,     1,     1,     4
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -941,138 +943,138 @@ static const yytype_uint8 yyr2[] =
 static const yytype_uint16 yydefact[] =
 {
        0,     3,     4,     0,     6,     1,     9,     0,     5,     0,
-       0,   229,     0,     0,     0,     0,   227,     2,     0,     0,
-       0,     0,     0,     0,     0,   226,     0,     8,     0,    12,
+       0,   231,     0,     0,     0,     0,   229,     2,     0,     0,
+       0,     0,     0,     0,     0,   228,     0,     8,     0,    12,
       13,    14,    15,    16,    17,    18,    19,    21,    22,    20,
        0,    82,    83,   107,   108,    84,    85,    86,    87,     7,
        0,     0,     0,     0,     0,     0,     0,    58,     0,    81,
-      57,     0,     0,     0,     0,     0,    69,     0,     0,   224,
-     225,    30,     0,     0,    10,    11,   232,   230,     0,     0,
-       0,   111,   226,   109,   228,   241,   239,   235,   237,   234,
-     253,   236,   226,    77,    78,    79,    80,    47,   226,   226,
-     226,   226,   226,   226,    71,    48,   217,   216,     0,     0,
-       0,     0,    53,   226,    76,     0,    54,    56,   120,   121,
-     197,   198,   122,   213,   214,     0,     0,   262,    88,   233,
-     112,     0,   113,   117,   118,   119,   211,   212,   215,     0,
-     243,   242,   244,     0,   238,     0,     0,     0,     0,    25,
-       0,    24,    23,   250,   105,   103,   253,    90,     0,     0,
-       0,     0,     0,   247,     0,   247,     0,     0,   257,   253,
-     128,   129,   130,   131,   133,   132,   134,   135,   136,   137,
-       0,   250,    95,     0,    93,    91,   253,     0,   100,    89,
-       0,    74,    73,    75,    46,     0,     0,   231,     0,   223,
-     222,   245,   246,   240,   259,     0,   226,   226,     0,     0,
-     226,   251,   252,   104,   106,     0,     0,     0,   168,   169,
-     167,     0,   150,   249,   248,   149,     0,     0,     0,     0,
-     192,   188,     0,   187,   253,   180,   174,   173,   172,     0,
-       0,     0,     0,    94,     0,    96,     0,     0,    92,   226,
-     218,    62,     0,    60,    61,     0,   226,     0,   110,   254,
-      27,    26,    72,    45,   255,     0,     0,   209,     0,   210,
-       0,   171,     0,   159,     0,   151,     0,   156,   157,   140,
-     141,   158,   138,   139,     0,   194,   186,   193,     0,   189,
-     182,   184,   183,   179,   181,   261,     0,   155,   154,   161,
-     162,     0,     0,   102,     0,    99,     0,     0,     0,    55,
-      70,    64,    44,     0,     0,   226,     0,    31,     0,   226,
-     204,   208,     0,     0,   247,   196,     0,   195,     0,   258,
-     166,   165,   163,   164,   160,   185,     0,    97,    98,   101,
-     226,   219,     0,     0,    63,   226,    51,    52,    50,     0,
-       0,     0,   115,   123,   126,   124,   199,   200,   125,   260,
-       0,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    29,    28,   170,   145,   147,   144,     0,
-     142,   143,     0,   191,   190,   175,     0,    67,    65,    68,
-      66,     0,     0,     0,   127,   177,   226,   114,   256,   148,
-     146,   152,   153,   226,   220,   226,     0,     0,     0,   176,
-     116,     0,     0,     0,   202,     0,   206,     0,   221,   226,
-     201,     0,   205,     0,     0,    49,   203,   207,     0,     0,
-     178
+      57,     0,     0,     0,     0,     0,    69,     0,     0,   226,
+     227,    30,     0,     0,    10,    11,   234,   232,     0,     0,
+       0,   111,   228,   109,   230,   243,   241,   237,   239,   236,
+     255,   238,   228,    77,    78,    79,    80,    47,   228,   228,
+     228,   228,   228,   228,    71,    48,   219,   218,     0,     0,
+       0,     0,    53,   228,    76,     0,    54,    56,   120,   121,
+     199,   200,   122,   215,   216,     0,     0,   264,    88,   235,
+     112,     0,   113,   117,   118,   119,   213,   214,   217,     0,
+     245,   244,   246,     0,   240,     0,     0,     0,     0,    25,
+       0,    24,    23,   252,   105,   103,   255,    90,     0,     0,
+       0,     0,     0,     0,   249,     0,   249,     0,     0,   259,
+     255,   128,   129,   130,   131,   133,   132,   134,   135,   136,
+     137,     0,   138,   252,    95,     0,    93,    91,   255,     0,
+     100,    89,     0,    74,    73,    75,    46,     0,     0,   233,
+       0,   225,   224,   247,   248,   242,   261,     0,   228,   228,
+       0,     0,   228,   253,   254,   104,   106,     0,     0,     0,
+     198,   169,   170,   168,     0,   151,   251,   250,   150,     0,
+       0,     0,     0,   193,   189,     0,   188,   255,   181,   175,
+     174,   173,     0,     0,     0,     0,    94,     0,    96,     0,
+       0,    92,   228,   220,    62,     0,    60,    61,     0,   228,
+       0,   110,   256,    27,    26,    72,    45,   257,     0,     0,
+     211,     0,   212,     0,   172,     0,   160,     0,   152,     0,
+     157,   158,   141,   142,   159,   139,   140,     0,   195,   187,
+     194,     0,   190,   183,   185,   184,   180,   182,   263,     0,
+     156,   155,   162,   163,     0,     0,   102,     0,    99,     0,
+       0,     0,    55,    70,    64,    44,     0,     0,   228,     0,
+      31,     0,   228,   206,   210,     0,     0,   249,   197,     0,
+     196,     0,   260,   167,   166,   164,   165,   161,   186,     0,
+      97,    98,   101,   228,   221,     0,     0,    63,   228,    51,
+      52,    50,     0,     0,     0,   115,   123,   126,   124,   201,
+     202,   125,   262,     0,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    29,    28,   171,   146,
+     148,   145,     0,   143,   144,     0,   192,   191,   176,     0,
+      67,    65,    68,    66,     0,     0,     0,   127,   178,   228,
+     114,   258,   149,   147,   153,   154,   228,   222,   228,     0,
+       0,     0,   177,   116,     0,     0,     0,   204,     0,   208,
+       0,   223,   228,   203,     0,   207,     0,     0,    49,   205,
+     209,     0,     0,   179
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,     3,     4,     6,     8,     9,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,   265,   373,
-      39,   146,    71,    58,    67,   312,   313,   348,   114,    59,
-     115,   252,   253,   254,   344,   388,   390,    68,   311,   105,
-     263,   194,    97,    40,    41,   116,   189,   306,   248,   304,
-     157,    42,    43,    44,   131,    83,   258,   351,   132,   117,
-     352,   353,   118,   170,   282,   171,   380,   400,   172,   225,
-     173,   401,   174,   298,   283,   274,   175,   301,   334,   176,
-     220,   177,   272,   178,   238,   179,   394,   409,   180,   293,
-     294,   336,   235,   286,   287,   328,   326,   119,   355,   356,
-     413,   120,   357,   415,   121,   268,   270,   358,   122,   136,
-     123,   124,   138,    72,    45,    55,    46,    50,    77,    47,
-      60,    91,   142,   203,   226,   213,   144,   317,   240,   205,
-     360,   296,    48
+      31,    32,    33,    34,    35,    36,    37,    38,   268,   376,
+      39,   146,    71,    58,    67,   315,   316,   351,   114,    59,
+     115,   255,   256,   257,   347,   391,   393,    68,   314,   105,
+     266,   196,    97,    40,    41,   116,   191,   309,   251,   307,
+     157,    42,    43,    44,   131,    83,   261,   354,   132,   117,
+     355,   356,   118,   171,   285,   172,   383,   403,   173,   228,
+     174,   404,   175,   301,   286,   277,   176,   304,   337,   177,
+     223,   178,   275,   179,   241,   180,   397,   412,   181,   296,
+     297,   339,   238,   289,   290,   331,   329,   182,   119,   358,
+     359,   416,   120,   360,   418,   121,   271,   273,   361,   122,
+     136,   123,   124,   138,    72,    45,    55,    46,    50,    77,
+      47,    60,    91,   142,   205,   229,   215,   144,   320,   243,
+     207,   363,   299,    48
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -377
+#define YYPACT_NINF -334
 static const yytype_int16 yypact[] =
 {
-     205,  -377,  -377,    34,  -377,  -377,    50,   -17,  -377,   166,
-     -16,  -377,    12,    26,    36,    65,  -377,  -377,   -31,   -31,
-     -31,   -31,   -31,   -31,    72,   -67,   -31,  -377,   108,  -377,
-    -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-     109,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-     118,    28,   106,   107,    54,   118,    78,  -377,   110,   101,
-    -377,   113,   114,   115,   116,   117,  -377,   119,   123,  -377,
-    -377,  -377,   -15,   120,  -377,  -377,  -377,   121,   131,   -13,
-     168,   214,   -34,  -377,   121,    27,  -377,  -377,  -377,  -377,
-     129,  -377,   -67,  -377,  -377,  -377,  -377,  -377,   -67,   -67,
-     -67,   -67,   -67,   -67,  -377,  -377,  -377,  -377,     1,    88,
-      84,     0,   130,   -67,    66,   132,  -377,  -377,  -377,  -377,
-    -377,  -377,  -377,  -377,  -377,   -15,   141,  -377,  -377,  -377,
-    -377,   133,  -377,  -377,  -377,  -377,  -377,  -377,  -377,   188,
-    -377,  -377,   -25,   219,  -377,   136,   137,   -15,   138,  -377,
-     139,  -377,  -377,     4,  -377,  -377,   129,  -377,   140,   142,
-     143,    40,   144,    63,   145,    91,    58,    16,   146,   129,
-    -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-     182,     4,  -377,   147,  -377,  -377,   129,   148,   149,  -377,
-      41,  -377,  -377,  -377,  -377,    -7,   152,  -377,   150,  -377,
-    -377,  -377,  -377,  -377,  -377,   151,   -67,   -67,   159,   167,
-     -67,  -377,  -377,  -377,  -377,   242,   243,   244,  -377,  -377,
-    -377,   245,  -377,  -377,  -377,  -377,   202,   245,    24,   161,
-     248,  -377,   163,  -377,   129,    22,  -377,  -377,  -377,   250,
-     246,    -2,   165,  -377,   253,  -377,   254,   253,  -377,   -67,
-    -377,  -377,   169,  -377,  -377,   175,   -67,   170,  -377,  -377,
-    -377,  -377,  -377,  -377,   171,   173,   174,  -377,   176,  -377,
-     177,  -377,   178,  -377,   179,  -377,   180,  -377,  -377,  -377,
-    -377,  -377,  -377,  -377,   260,  -377,  -377,  -377,   262,  -377,
-    -377,  -377,  -377,  -377,  -377,  -377,   181,  -377,  -377,  -377,
-    -377,   128,   269,  -377,   183,  -377,   185,   186,    42,  -377,
-    -377,   102,  -377,   189,    -5,   -11,   275,  -377,   105,   -67,
-    -377,  -377,   247,    45,    91,  -377,   190,  -377,   191,  -377,
-    -377,  -377,  -377,  -377,  -377,  -377,   192,  -377,  -377,  -377,
-     -67,  -377,   276,   280,  -377,   -67,  -377,  -377,  -377,    90,
-      84,    46,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-     195,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-    -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,   274,
-    -377,  -377,    -4,  -377,  -377,  -377,    47,  -377,  -377,  -377,
-    -377,   199,   200,   201,  -377,   252,   -11,  -377,  -377,  -377,
-    -377,  -377,  -377,   -67,  -377,   -67,   242,   243,   203,  -377,
-    -377,   193,   206,   209,   208,   210,   216,   269,  -377,   -67,
-    -377,   242,  -377,   243,    48,  -377,  -377,  -377,   269,   213,
-    -377
+     134,  -334,  -334,    41,  -334,  -334,    47,   -49,  -334,   169,
+      20,  -334,    34,    61,    75,   115,  -334,  -334,   -19,   -19,
+     -19,   -19,   -19,   -19,   116,    44,   -19,  -334,   109,  -334,
+    -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
+     110,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
+     119,   106,   107,   111,   -22,   119,     4,  -334,     5,   104,
+    -334,   113,   114,   117,   118,   120,  -334,   121,   124,  -334,
+    -334,  -334,   -15,   122,  -334,  -334,  -334,   123,   133,   -14,
+     158,   210,   -11,  -334,   123,    21,  -334,  -334,  -334,  -334,
+     127,  -334,    44,  -334,  -334,  -334,  -334,  -334,    44,    44,
+      44,    44,    44,    44,  -334,  -334,  -334,  -334,     1,    68,
+      87,    -1,   132,    44,    65,   135,  -334,  -334,  -334,  -334,
+    -334,  -334,  -334,  -334,  -334,   -15,   141,  -334,  -334,  -334,
+    -334,   136,  -334,  -334,  -334,  -334,  -334,  -334,  -334,   149,
+    -334,  -334,    58,   219,  -334,   137,   139,   -15,   140,  -334,
+     142,  -334,  -334,    74,  -334,  -334,   127,  -334,   143,   144,
+     145,   179,    15,   146,    81,   147,    83,    89,     0,   148,
+     127,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
+    -334,   183,  -334,    74,  -334,   150,  -334,  -334,   127,   151,
+     152,  -334,    43,  -334,  -334,  -334,  -334,   -10,   155,  -334,
+     138,  -334,  -334,  -334,  -334,  -334,  -334,   154,    44,    44,
+     162,   175,    44,  -334,  -334,  -334,  -334,   243,   245,   246,
+    -334,  -334,  -334,  -334,   247,  -334,  -334,  -334,  -334,   204,
+     247,    -4,   163,   250,  -334,   165,  -334,   127,    27,  -334,
+    -334,  -334,   252,   248,    18,   167,  -334,   255,  -334,   256,
+     255,  -334,    44,  -334,  -334,   170,  -334,  -334,   178,    44,
+     168,  -334,  -334,  -334,  -334,  -334,  -334,   174,   176,   177,
+    -334,   180,  -334,   181,  -334,   182,  -334,   184,  -334,   185,
+    -334,  -334,  -334,  -334,  -334,  -334,  -334,   263,  -334,  -334,
+    -334,   264,  -334,  -334,  -334,  -334,  -334,  -334,  -334,   186,
+    -334,  -334,  -334,  -334,   131,   265,  -334,   188,  -334,   189,
+     190,    46,  -334,  -334,   101,  -334,   193,    -5,    -7,   266,
+    -334,   108,    44,  -334,  -334,   236,    14,    83,  -334,   192,
+    -334,   194,  -334,  -334,  -334,  -334,  -334,  -334,  -334,   195,
+    -334,  -334,  -334,    44,  -334,   280,   283,  -334,    44,  -334,
+    -334,  -334,    78,    87,    49,  -334,  -334,  -334,  -334,  -334,
+    -334,  -334,  -334,   197,  -334,  -334,  -334,  -334,  -334,  -334,
+    -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
+    -334,  -334,   276,  -334,  -334,     6,  -334,  -334,  -334,    51,
+    -334,  -334,  -334,  -334,   201,   202,   203,  -334,   244,    -7,
+    -334,  -334,  -334,  -334,  -334,  -334,    44,  -334,    44,   243,
+     245,   205,  -334,  -334,   198,   207,   206,   212,   211,   217,
+     265,  -334,    44,  -334,   243,  -334,   245,   -17,  -334,  -334,
+    -334,   265,   213,  -334
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-    -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-    -377,   -94,   -88,   124,  -377,  -377,  -333,  -377,  -100,  -377,
-    -377,  -377,  -377,  -377,  -377,  -377,  -377,   134,  -377,  -377,
-    -377,  -377,  -377,  -377,  -377,   231,  -377,  -377,  -377,    77,
-    -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-     -71,  -377,   -81,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
-    -377,  -377,  -377,  -377,  -304,    99,  -377,  -377,  -377,  -377,
-    -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,   -23,  -377,
-    -377,  -286,  -377,  -377,  -377,  -377,  -377,   249,  -377,  -377,
-    -377,  -377,  -377,  -377,  -377,  -376,  -368,   251,  -377,  -377,
-    -377,   -80,  -110,   -82,  -377,  -377,  -377,  -377,   273,  -377,
-     255,  -377,  -377,  -377,  -160,   153,  -146,  -377,  -377,  -377,
-    -377,  -377,  -377
+    -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
+    -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
+    -334,   -94,   -88,   126,  -334,  -334,  -333,  -334,   -91,  -334,
+    -334,  -334,  -334,  -334,  -334,  -334,  -334,   128,  -334,  -334,
+    -334,  -334,  -334,  -334,  -334,   249,  -334,  -334,  -334,    73,
+    -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
+     -72,  -334,   -81,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
+    -334,  -334,  -334,  -334,  -307,    99,  -334,  -334,  -334,  -334,
+    -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,   -23,  -334,
+    -334,  -303,  -334,  -334,  -334,  -334,  -334,  -334,   251,  -334,
+    -334,  -334,  -334,  -334,  -334,  -334,  -327,  -316,   253,  -334,
+    -334,  -334,   -80,  -110,   -82,  -334,  -334,  -334,  -334,   277,
+    -334,   254,  -334,  -334,  -334,  -161,   153,  -146,  -334,  -334,
+    -334,  -334,  -334,  -334
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1082,78 +1084,80 @@ static const yytype_int16 yypgoto[] =
 #define YYTABLE_NINF -60
 static const yytype_int16 yytable[] =
 {
-     139,   133,   137,   190,   145,   228,   149,   106,   107,   152,
-     214,   148,   391,   150,   151,   251,   147,   346,   147,   381,
-     277,   147,   108,   241,   108,   196,   278,   109,   181,   153,
-     414,   139,   299,    56,     5,   201,   182,   154,   110,   416,
-     245,   236,   202,    69,    70,   426,   109,   208,   277,   183,
-     349,   300,   184,   140,   278,   427,   279,   110,     7,   185,
-     155,   350,   290,   291,   211,   141,   281,    57,   218,   277,
-     376,   212,   412,   186,   156,   278,    69,    70,   402,   113,
-     111,    10,   111,   112,   377,   237,   425,   222,   289,   223,
-      49,    66,   280,   347,   281,   219,   187,   188,   113,    69,
-      70,   224,   113,   292,   378,   229,    85,    86,   230,   231,
-      51,   160,   232,   261,    87,   281,   379,   223,   260,   161,
-     233,   158,   266,   392,    52,   147,   162,   163,   164,   224,
-     165,   424,   166,   159,    53,   393,    88,    89,   234,   308,
-      78,   167,   429,    61,    62,    63,    64,    65,   249,   340,
-      73,    90,   428,   396,   403,   250,   341,   385,   168,   169,
-     397,   404,    81,    54,   382,   191,    82,   139,   192,   193,
-      66,    11,    12,    13,   314,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,   361,   362,
-     363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
-      93,    94,    95,    96,   330,   331,   332,   333,     1,     2,
-     199,   200,   342,   343,    74,    75,    76,    92,    79,    80,
-      98,    99,   100,   101,   102,   104,   103,   125,   126,   127,
-     386,   374,    56,   139,   354,   137,   130,   143,   -59,   197,
-     195,   204,   198,   206,   207,   209,   210,   242,   215,   264,
-     216,   217,   221,   227,   239,   244,   246,   247,   139,   256,
-     259,   262,   257,   314,   267,   269,   271,   273,   275,   284,
-     285,   288,   295,   302,   297,   303,   305,   310,   309,   316,
-     318,   319,   325,   315,   327,   320,   321,   322,   323,   324,
-     329,   335,   337,   411,   338,   339,   345,   359,   387,   383,
-     384,   385,   389,   375,   398,   399,   405,   418,   406,   407,
-     128,   417,   421,   419,   139,   354,   137,   408,   420,   422,
-     423,   139,   430,   314,   307,   410,   276,   395,    84,   255,
-       0,   134,     0,   135,   243,   129,     0,   314
+     139,   133,   137,   192,   145,   231,   149,   106,   107,   152,
+     216,   148,   254,   150,   151,   394,   147,   349,   147,   384,
+     280,   147,   108,   108,   244,   239,   281,   183,   282,   153,
+     280,   139,    85,    86,   198,   184,   281,   154,   280,   379,
+      87,     5,   248,   221,   281,    56,   109,   140,   185,    10,
+     109,   186,   302,   380,   352,     7,   210,   110,   187,   141,
+     155,   110,    88,    89,   283,   353,   284,   293,   294,   240,
+     222,   303,   188,   381,   156,   415,   284,    90,   405,    57,
+     111,   111,   417,   112,   284,   382,    81,   431,    66,   428,
+      82,   292,   388,   350,   419,   189,   190,   429,   113,    69,
+      70,   158,   113,    69,    70,   225,   113,   226,   295,   226,
+     430,   395,    92,   159,   160,   264,   161,   427,   203,   227,
+     263,   227,   162,   396,   269,   204,    49,   147,   432,   163,
+     164,   165,    51,   166,   213,   167,   232,     1,     2,   233,
+     234,   214,   311,   235,   168,    61,    62,    63,    64,    65,
+     252,   236,    73,   343,    69,    70,   399,   253,   406,    52,
+     344,   169,   170,   400,   193,   407,   385,   194,   195,   237,
+     139,   201,   202,    53,    11,    12,    13,   317,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,   364,   365,   366,   367,   368,   369,   370,   371,   372,
+     373,   374,   375,    93,    94,    95,    96,   333,   334,   335,
+     336,   345,   346,    54,    66,    74,    75,    76,    78,    79,
+      98,    99,    56,    80,   100,   101,   104,   102,   103,   125,
+     126,   127,   130,   389,   377,   143,   139,   357,   137,   199,
+     -59,   206,   220,   197,   208,   200,   209,   211,   245,   212,
+     260,   217,   218,   219,   224,   230,   242,   267,   247,   249,
+     250,   139,   259,   262,   265,   270,   317,   272,   274,   276,
+     278,   287,   288,   291,   298,   305,   300,   306,   308,   312,
+     313,   318,   319,   321,   322,   328,   330,   338,   362,   323,
+     324,   325,   378,   326,   327,   332,   414,   340,   341,   342,
+     348,   386,   390,   387,   388,   392,   401,   402,   408,   411,
+     409,   410,   421,   420,   422,   423,   424,   139,   357,   137,
+     425,   426,   433,   310,   139,   258,   317,   413,   128,   279,
+     398,     0,    84,   134,   129,   135,   246,     0,     0,     0,
+     317
 };
 
 static const yytype_int16 yycheck[] =
 {
-      82,    82,    82,   113,    92,   165,   100,    22,    23,   103,
-     156,    99,   345,   101,   102,    22,    98,    22,   100,   323,
-      24,   103,    37,   169,    37,   125,    30,    61,    28,    28,
-     406,   113,    34,    64,     0,    60,    36,    36,    72,   407,
-     186,    25,    67,   110,   111,   421,    61,   147,    24,    49,
-      61,    53,    52,    26,    30,   423,    32,    72,     8,    59,
-      59,    72,    40,    41,    60,    38,    70,    98,    28,    24,
-      25,    67,   405,    73,    73,    30,   110,   111,   382,   113,
-      95,    98,    95,    98,    39,    69,   419,    24,   234,    26,
-     106,    98,    68,    98,    70,    55,    96,    97,   113,   110,
-     111,    38,   113,    81,    59,    47,    28,    29,    50,    51,
-      98,    27,    54,   207,    36,    70,    71,    26,   206,    35,
-      62,    33,   210,    33,    98,   207,    42,    43,    44,    38,
-      46,   417,    48,    45,    98,    45,    58,    59,    80,   249,
-     112,    57,   428,    19,    20,    21,    22,    23,   107,   107,
-      26,    73,   104,   107,   107,   114,   114,   109,    74,    75,
-     114,   114,   108,    98,   324,    99,   112,   249,   102,   103,
-      98,     5,     6,     7,   256,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      99,   100,   101,   102,    76,    77,    78,    79,     3,     4,
-      22,    23,   110,   111,   106,   106,    98,   107,   112,   112,
-     107,   107,   107,   107,   107,   102,   107,   107,   107,    98,
-     340,   319,    64,   315,   315,   315,    22,   108,   108,    98,
-     108,    22,   109,   107,   107,   107,   107,    65,   108,    82,
-     108,   108,   108,   108,   108,   108,   108,   108,   340,   107,
-     109,   102,   112,   345,    22,    22,    22,    22,    66,   108,
-      22,   108,    22,   108,    28,    22,    22,   102,   109,   108,
-     107,   107,    22,   113,    22,   109,   109,   109,   109,   109,
-     109,    22,   109,   403,   109,   109,   107,    22,    22,   109,
-     109,   109,    22,    56,   109,    31,   107,   114,   108,   108,
-      79,   108,   104,   107,   396,   396,   396,    65,   109,   109,
-     104,   403,   109,   405,   247,   396,   227,   350,    55,   195,
-      -1,    82,    -1,    82,   181,    80,    -1,   419
+      82,    82,    82,   113,    92,   166,   100,    22,    23,   103,
+     156,    99,    22,   101,   102,   348,    98,    22,   100,   326,
+      24,   103,    37,    37,   170,    25,    30,    28,    32,    28,
+      24,   113,    28,    29,   125,    36,    30,    36,    24,    25,
+      36,     0,   188,    28,    30,    64,    61,    26,    49,    98,
+      61,    52,    34,    39,    61,     8,   147,    72,    59,    38,
+      59,    72,    58,    59,    68,    72,    70,    40,    41,    69,
+      55,    53,    73,    59,    73,   408,    70,    73,   385,    98,
+      95,    95,   409,    98,    70,    71,   108,   104,    98,   422,
+     112,   237,   109,    98,   410,    96,    97,   424,   113,   110,
+     111,    33,   113,   110,   111,    24,   113,    26,    81,    26,
+     426,    33,   107,    45,    27,   209,    29,   420,    60,    38,
+     208,    38,    35,    45,   212,    67,   106,   209,   431,    42,
+      43,    44,    98,    46,    60,    48,    47,     3,     4,    50,
+      51,    67,   252,    54,    57,    19,    20,    21,    22,    23,
+     107,    62,    26,   107,   110,   111,   107,   114,   107,    98,
+     114,    74,    75,   114,    99,   114,   327,   102,   103,    80,
+     252,    22,    23,    98,     5,     6,     7,   259,     9,    10,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    83,    84,    85,    86,    87,    88,    89,    90,    91,
+      92,    93,    94,    99,   100,   101,   102,    76,    77,    78,
+      79,   110,   111,    98,    98,   106,   106,    98,   112,   112,
+     107,   107,    64,   112,   107,   107,   102,   107,   107,   107,
+     107,    98,    22,   343,   322,   108,   318,   318,   318,    98,
+     108,    22,    63,   108,   107,   109,   107,   107,    65,   107,
+     112,   108,   108,   108,   108,   108,   108,    82,   108,   108,
+     108,   343,   107,   109,   102,    22,   348,    22,    22,    22,
+      66,   108,    22,   108,    22,   108,    28,    22,    22,   109,
+     102,   113,   108,   107,   107,    22,    22,    22,    22,   109,
+     109,   109,    56,   109,   109,   109,   406,   109,   109,   109,
+     107,   109,    22,   109,   109,    22,   109,    31,   107,    65,
+     108,   108,   114,   108,   107,   109,   104,   399,   399,   399,
+     109,   104,   109,   250,   406,   197,   408,   399,    79,   230,
+     353,    -1,    55,    82,    80,    82,   183,    -1,    -1,    -1,
+     422
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1164,46 +1168,46 @@ static const yytype_uint8 yystos[] =
       98,     5,     6,     7,     9,    10,    11,    12,    13,    14,
       15,    16,    17,    18,    19,    20,    21,   121,   122,   123,
      124,   125,   126,   127,   128,   129,   130,   131,   132,   135,
-     158,   159,   166,   167,   168,   229,   231,   234,   247,   106,
-     232,    98,    98,    98,    98,   230,    64,    98,   138,   144,
-     235,   138,   138,   138,   138,   138,    98,   139,   152,   110,
-     111,   137,   228,   138,   106,   106,    98,   233,   112,   112,
-     112,   108,   112,   170,   233,    28,    29,    36,    58,    59,
-      73,   236,   107,    99,   100,   101,   102,   157,   107,   107,
+     158,   159,   166,   167,   168,   230,   232,   235,   248,   106,
+     233,    98,    98,    98,    98,   231,    64,    98,   138,   144,
+     236,   138,   138,   138,   138,   138,    98,   139,   152,   110,
+     111,   137,   229,   138,   106,   106,    98,   234,   112,   112,
+     112,   108,   112,   170,   234,    28,    29,    36,    58,    59,
+      73,   237,   107,    99,   100,   101,   102,   157,   107,   107,
      107,   107,   107,   107,   102,   154,    22,    23,    37,    61,
-      72,    95,    98,   113,   143,   145,   160,   174,   177,   212,
-     216,   219,   223,   225,   226,   107,   107,    98,   160,   235,
-      22,   169,   173,   177,   212,   222,   224,   226,   227,   228,
-      26,    38,   237,   108,   241,   137,   136,   228,   137,   136,
+      72,    95,    98,   113,   143,   145,   160,   174,   177,   213,
+     217,   220,   224,   226,   227,   107,   107,    98,   160,   236,
+      22,   169,   173,   177,   213,   223,   225,   227,   228,   229,
+      26,    38,   238,   108,   242,   137,   136,   229,   137,   136,
      137,   137,   136,    28,    36,    59,    73,   165,    33,    45,
-      27,    35,    42,    43,    44,    46,    48,    57,    74,    75,
-     178,   180,   183,   185,   187,   191,   194,   196,   198,   200,
-     203,    28,    36,    49,    52,    59,    73,    96,    97,   161,
-     227,    99,   102,   103,   156,   108,   143,    98,   109,    22,
-      23,    60,    67,   238,    22,   244,   107,   107,   143,   107,
-     107,    60,    67,   240,   241,   108,   108,   108,    28,    55,
-     195,   108,    24,    26,    38,   184,   239,   108,   239,    47,
-      50,    51,    54,    62,    80,   207,    25,    69,   199,   108,
-     243,   241,    65,   240,   108,   241,   108,   108,   163,   107,
-     114,    22,   146,   147,   148,   152,   107,   112,   171,   109,
-     137,   136,   102,   155,    82,   133,   137,    22,   220,    22,
-     221,    22,   197,    22,   190,    66,   190,    24,    30,    32,
-      68,    70,   179,   189,   108,    22,   208,   209,   108,   241,
-      40,    41,    81,   204,   205,    22,   246,    28,   188,    34,
-      53,   192,   108,    22,   164,    22,   162,   164,   227,   109,
-     102,   153,   140,   141,   228,   113,   108,   242,   107,   107,
-     109,   109,   109,   109,   109,    22,   211,    22,   210,   109,
-      76,    77,    78,    79,   193,    22,   206,   109,   109,   109,
-     107,   114,   110,   111,   149,   107,    22,    98,   142,    61,
-      72,   172,   175,   176,   177,   213,   214,   217,   222,    22,
-     245,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,   134,   137,    56,    25,    39,    59,    71,
-     181,   189,   239,   109,   109,   109,   227,    22,   150,    22,
-     151,   141,    33,    45,   201,   203,   107,   114,   109,    31,
-     182,   186,   189,   107,   114,   107,   108,   108,    65,   202,
-     175,   227,   141,   215,   220,   218,   221,   108,   114,   107,
-     109,   104,   109,   104,   206,   141,   220,   221,   104,   206,
-     109
+      27,    29,    35,    42,    43,    44,    46,    48,    57,    74,
+      75,   178,   180,   183,   185,   187,   191,   194,   196,   198,
+     200,   203,   212,    28,    36,    49,    52,    59,    73,    96,
+      97,   161,   228,    99,   102,   103,   156,   108,   143,    98,
+     109,    22,    23,    60,    67,   239,    22,   245,   107,   107,
+     143,   107,   107,    60,    67,   241,   242,   108,   108,   108,
+      63,    28,    55,   195,   108,    24,    26,    38,   184,   240,
+     108,   240,    47,    50,    51,    54,    62,    80,   207,    25,
+      69,   199,   108,   244,   242,    65,   241,   108,   242,   108,
+     108,   163,   107,   114,    22,   146,   147,   148,   152,   107,
+     112,   171,   109,   137,   136,   102,   155,    82,   133,   137,
+      22,   221,    22,   222,    22,   197,    22,   190,    66,   190,
+      24,    30,    32,    68,    70,   179,   189,   108,    22,   208,
+     209,   108,   242,    40,    41,    81,   204,   205,    22,   247,
+      28,   188,    34,    53,   192,   108,    22,   164,    22,   162,
+     164,   228,   109,   102,   153,   140,   141,   229,   113,   108,
+     243,   107,   107,   109,   109,   109,   109,   109,    22,   211,
+      22,   210,   109,    76,    77,    78,    79,   193,    22,   206,
+     109,   109,   109,   107,   114,   110,   111,   149,   107,    22,
+      98,   142,    61,    72,   172,   175,   176,   177,   214,   215,
+     218,   223,    22,   246,    83,    84,    85,    86,    87,    88,
+      89,    90,    91,    92,    93,    94,   134,   137,    56,    25,
+      39,    59,    71,   181,   189,   240,   109,   109,   109,   228,
+      22,   150,    22,   151,   141,    33,    45,   201,   203,   107,
+     114,   109,    31,   182,   186,   189,   107,   114,   107,   108,
+     108,    65,   202,   175,   228,   141,   216,   221,   219,   222,
+     108,   114,   107,   109,   104,   109,   104,   206,   141,   221,
+     222,   104,   206,   109
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -3269,7 +3273,14 @@ yyreduce:
   case 138:
 
 /* Line 1455 of yacc.c  */
-#line 1089 "program_parse.y"
+#line 1086 "program_parse.y"
+    { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
+    break;
+
+  case 139:
+
+/* Line 1455 of yacc.c  */
+#line 1090 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_MATERIAL;
@@ -3278,37 +3289,37 @@ yyreduce:
        ;}
     break;
 
-  case 139:
+  case 140:
 
 /* Line 1455 of yacc.c  */
-#line 1098 "program_parse.y"
+#line 1099 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(1) - (1)].integer);
        ;}
     break;
 
-  case 140:
+  case 141:
 
 /* Line 1455 of yacc.c  */
-#line 1102 "program_parse.y"
+#line 1103 "program_parse.y"
     {
           (yyval.integer) = STATE_EMISSION;
        ;}
     break;
 
-  case 141:
+  case 142:
 
 /* Line 1455 of yacc.c  */
-#line 1106 "program_parse.y"
+#line 1107 "program_parse.y"
     {
           (yyval.integer) = STATE_SHININESS;
        ;}
     break;
 
-  case 142:
+  case 143:
 
 /* Line 1455 of yacc.c  */
-#line 1112 "program_parse.y"
+#line 1113 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_LIGHT;
@@ -3317,28 +3328,28 @@ yyreduce:
        ;}
     break;
 
-  case 143:
+  case 144:
 
 /* Line 1455 of yacc.c  */
-#line 1121 "program_parse.y"
+#line 1122 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(1) - (1)].integer);
        ;}
     break;
 
-  case 144:
+  case 145:
 
 /* Line 1455 of yacc.c  */
-#line 1125 "program_parse.y"
+#line 1126 "program_parse.y"
     {
           (yyval.integer) = STATE_POSITION;
        ;}
     break;
 
-  case 145:
+  case 146:
 
 /* Line 1455 of yacc.c  */
-#line 1129 "program_parse.y"
+#line 1130 "program_parse.y"
     {
           if (!state->ctx->Extensions.EXT_point_parameters) {
              yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported");
@@ -3349,57 +3360,57 @@ yyreduce:
        ;}
     break;
 
-  case 146:
+  case 147:
 
 /* Line 1455 of yacc.c  */
-#line 1138 "program_parse.y"
+#line 1139 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(2) - (2)].integer);
        ;}
     break;
 
-  case 147:
+  case 148:
 
 /* Line 1455 of yacc.c  */
-#line 1142 "program_parse.y"
+#line 1143 "program_parse.y"
     {
           (yyval.integer) = STATE_HALF_VECTOR;
        ;}
     break;
 
-  case 148:
+  case 149:
 
 /* Line 1455 of yacc.c  */
-#line 1148 "program_parse.y"
+#line 1149 "program_parse.y"
     {
           (yyval.integer) = STATE_SPOT_DIRECTION;
        ;}
     break;
 
-  case 149:
+  case 150:
 
 /* Line 1455 of yacc.c  */
-#line 1154 "program_parse.y"
+#line 1155 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(2) - (2)].state)[0];
           (yyval.state)[1] = (yyvsp[(2) - (2)].state)[1];
        ;}
     break;
 
-  case 150:
+  case 151:
 
 /* Line 1455 of yacc.c  */
-#line 1161 "program_parse.y"
+#line 1162 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT;
        ;}
     break;
 
-  case 151:
+  case 152:
 
 /* Line 1455 of yacc.c  */
-#line 1166 "program_parse.y"
+#line 1167 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR;
@@ -3407,10 +3418,10 @@ yyreduce:
        ;}
     break;
 
-  case 152:
+  case 153:
 
 /* Line 1455 of yacc.c  */
-#line 1174 "program_parse.y"
+#line 1175 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_LIGHTPROD;
@@ -3420,10 +3431,10 @@ yyreduce:
        ;}
     break;
 
-  case 154:
+  case 155:
 
 /* Line 1455 of yacc.c  */
-#line 1186 "program_parse.y"
+#line 1187 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = (yyvsp[(3) - (3)].integer);
@@ -3431,46 +3442,46 @@ yyreduce:
        ;}
     break;
 
-  case 155:
+  case 156:
 
 /* Line 1455 of yacc.c  */
-#line 1194 "program_parse.y"
+#line 1195 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXENV_COLOR;
        ;}
     break;
 
-  case 156:
+  case 157:
 
 /* Line 1455 of yacc.c  */
-#line 1200 "program_parse.y"
+#line 1201 "program_parse.y"
     {
           (yyval.integer) = STATE_AMBIENT;
        ;}
     break;
 
-  case 157:
+  case 158:
 
 /* Line 1455 of yacc.c  */
-#line 1204 "program_parse.y"
+#line 1205 "program_parse.y"
     {
           (yyval.integer) = STATE_DIFFUSE;
        ;}
     break;
 
-  case 158:
+  case 159:
 
 /* Line 1455 of yacc.c  */
-#line 1208 "program_parse.y"
+#line 1209 "program_parse.y"
     {
           (yyval.integer) = STATE_SPECULAR;
        ;}
     break;
 
-  case 159:
+  case 160:
 
 /* Line 1455 of yacc.c  */
-#line 1214 "program_parse.y"
+#line 1215 "program_parse.y"
     {
           if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector");
@@ -3481,10 +3492,10 @@ yyreduce:
        ;}
     break;
 
-  case 160:
+  case 161:
 
 /* Line 1455 of yacc.c  */
-#line 1225 "program_parse.y"
+#line 1226 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_TEXGEN;
@@ -3493,92 +3504,92 @@ yyreduce:
        ;}
     break;
 
-  case 161:
+  case 162:
 
 /* Line 1455 of yacc.c  */
-#line 1234 "program_parse.y"
+#line 1235 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_S;
        ;}
     break;
 
-  case 162:
+  case 163:
 
 /* Line 1455 of yacc.c  */
-#line 1238 "program_parse.y"
+#line 1239 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_OBJECT_S;
        ;}
     break;
 
-  case 163:
+  case 164:
 
 /* Line 1455 of yacc.c  */
-#line 1243 "program_parse.y"
+#line 1244 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S;
        ;}
     break;
 
-  case 164:
+  case 165:
 
 /* Line 1455 of yacc.c  */
-#line 1247 "program_parse.y"
+#line 1248 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S;
        ;}
     break;
 
-  case 165:
+  case 166:
 
 /* Line 1455 of yacc.c  */
-#line 1251 "program_parse.y"
+#line 1252 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S;
        ;}
     break;
 
-  case 166:
+  case 167:
 
 /* Line 1455 of yacc.c  */
-#line 1255 "program_parse.y"
+#line 1256 "program_parse.y"
     {
           (yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S;
        ;}
     break;
 
-  case 167:
+  case 168:
 
 /* Line 1455 of yacc.c  */
-#line 1261 "program_parse.y"
+#line 1262 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = (yyvsp[(2) - (2)].integer);
        ;}
     break;
 
-  case 168:
+  case 169:
 
 /* Line 1455 of yacc.c  */
-#line 1268 "program_parse.y"
+#line 1269 "program_parse.y"
     {
           (yyval.integer) = STATE_FOG_COLOR;
        ;}
     break;
 
-  case 169:
+  case 170:
 
 /* Line 1455 of yacc.c  */
-#line 1272 "program_parse.y"
+#line 1273 "program_parse.y"
     {
           (yyval.integer) = STATE_FOG_PARAMS;
        ;}
     break;
 
-  case 170:
+  case 171:
 
 /* Line 1455 of yacc.c  */
-#line 1278 "program_parse.y"
+#line 1279 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = STATE_CLIPPLANE;
@@ -3586,10 +3597,10 @@ yyreduce:
        ;}
     break;
 
-  case 171:
+  case 172:
 
 /* Line 1455 of yacc.c  */
-#line 1286 "program_parse.y"
+#line 1287 "program_parse.y"
     {
           if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector");
@@ -3600,38 +3611,38 @@ yyreduce:
        ;}
     break;
 
-  case 172:
+  case 173:
 
 /* Line 1455 of yacc.c  */
-#line 1297 "program_parse.y"
+#line 1298 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = (yyvsp[(2) - (2)].integer);
        ;}
     break;
 
-  case 173:
+  case 174:
 
 /* Line 1455 of yacc.c  */
-#line 1304 "program_parse.y"
+#line 1305 "program_parse.y"
     {
           (yyval.integer) = STATE_POINT_SIZE;
        ;}
     break;
 
-  case 174:
+  case 175:
 
 /* Line 1455 of yacc.c  */
-#line 1308 "program_parse.y"
+#line 1309 "program_parse.y"
     {
           (yyval.integer) = STATE_POINT_ATTENUATION;
        ;}
     break;
 
-  case 175:
+  case 176:
 
 /* Line 1455 of yacc.c  */
-#line 1314 "program_parse.y"
+#line 1315 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (5)].state)[0];
           (yyval.state)[1] = (yyvsp[(1) - (5)].state)[1];
@@ -3641,10 +3652,10 @@ yyreduce:
        ;}
     break;
 
-  case 176:
+  case 177:
 
 /* Line 1455 of yacc.c  */
-#line 1324 "program_parse.y"
+#line 1325 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (2)].state)[0];
           (yyval.state)[1] = (yyvsp[(1) - (2)].state)[1];
@@ -3654,20 +3665,20 @@ yyreduce:
        ;}
     break;
 
-  case 177:
+  case 178:
 
 /* Line 1455 of yacc.c  */
-#line 1334 "program_parse.y"
+#line 1335 "program_parse.y"
     {
           (yyval.state)[2] = 0;
           (yyval.state)[3] = 3;
        ;}
     break;
 
-  case 178:
+  case 179:
 
 /* Line 1455 of yacc.c  */
-#line 1339 "program_parse.y"
+#line 1340 "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).
@@ -3685,10 +3696,10 @@ yyreduce:
        ;}
     break;
 
-  case 179:
+  case 180:
 
 /* Line 1455 of yacc.c  */
-#line 1357 "program_parse.y"
+#line 1358 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(2) - (3)].state)[0];
           (yyval.state)[1] = (yyvsp[(2) - (3)].state)[1];
@@ -3696,55 +3707,55 @@ yyreduce:
        ;}
     break;
 
-  case 180:
+  case 181:
 
 /* Line 1455 of yacc.c  */
-#line 1365 "program_parse.y"
+#line 1366 "program_parse.y"
     {
           (yyval.integer) = 0;
        ;}
     break;
 
-  case 181:
+  case 182:
 
 /* Line 1455 of yacc.c  */
-#line 1369 "program_parse.y"
+#line 1370 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(1) - (1)].integer);
        ;}
     break;
 
-  case 182:
+  case 183:
 
 /* Line 1455 of yacc.c  */
-#line 1375 "program_parse.y"
+#line 1376 "program_parse.y"
     {
           (yyval.integer) = STATE_MATRIX_INVERSE;
        ;}
     break;
 
-  case 183:
+  case 184:
 
 /* Line 1455 of yacc.c  */
-#line 1379 "program_parse.y"
+#line 1380 "program_parse.y"
     {
           (yyval.integer) = STATE_MATRIX_TRANSPOSE;
        ;}
     break;
 
-  case 184:
+  case 185:
 
 /* Line 1455 of yacc.c  */
-#line 1383 "program_parse.y"
+#line 1384 "program_parse.y"
     {
           (yyval.integer) = STATE_MATRIX_INVTRANS;
        ;}
     break;
 
-  case 185:
+  case 186:
 
 /* Line 1455 of yacc.c  */
-#line 1389 "program_parse.y"
+#line 1390 "program_parse.y"
     {
           if ((yyvsp[(1) - (1)].integer) > 3) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference");
@@ -3755,88 +3766,88 @@ yyreduce:
        ;}
     break;
 
-  case 186:
+  case 187:
 
 /* Line 1455 of yacc.c  */
-#line 1400 "program_parse.y"
+#line 1401 "program_parse.y"
     {
           (yyval.state)[0] = STATE_MODELVIEW_MATRIX;
           (yyval.state)[1] = (yyvsp[(2) - (2)].integer);
        ;}
     break;
 
-  case 187:
+  case 188:
 
 /* Line 1455 of yacc.c  */
-#line 1405 "program_parse.y"
+#line 1406 "program_parse.y"
     {
           (yyval.state)[0] = STATE_PROJECTION_MATRIX;
           (yyval.state)[1] = 0;
        ;}
     break;
 
-  case 188:
+  case 189:
 
 /* Line 1455 of yacc.c  */
-#line 1410 "program_parse.y"
+#line 1411 "program_parse.y"
     {
           (yyval.state)[0] = STATE_MVP_MATRIX;
           (yyval.state)[1] = 0;
        ;}
     break;
 
-  case 189:
+  case 190:
 
 /* Line 1455 of yacc.c  */
-#line 1415 "program_parse.y"
+#line 1416 "program_parse.y"
     {
           (yyval.state)[0] = STATE_TEXTURE_MATRIX;
           (yyval.state)[1] = (yyvsp[(2) - (2)].integer);
        ;}
     break;
 
-  case 190:
+  case 191:
 
 /* Line 1455 of yacc.c  */
-#line 1420 "program_parse.y"
+#line 1421 "program_parse.y"
     {
           yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported");
           YYERROR;
        ;}
     break;
 
-  case 191:
+  case 192:
 
 /* Line 1455 of yacc.c  */
-#line 1425 "program_parse.y"
+#line 1426 "program_parse.y"
     {
           (yyval.state)[0] = STATE_PROGRAM_MATRIX;
           (yyval.state)[1] = (yyvsp[(3) - (4)].integer);
        ;}
     break;
 
-  case 192:
+  case 193:
 
 /* Line 1455 of yacc.c  */
-#line 1432 "program_parse.y"
+#line 1433 "program_parse.y"
     {
           (yyval.integer) = 0;
        ;}
     break;
 
-  case 193:
+  case 194:
 
 /* Line 1455 of yacc.c  */
-#line 1436 "program_parse.y"
+#line 1437 "program_parse.y"
     {
           (yyval.integer) = (yyvsp[(1) - (1)].integer);
        ;}
     break;
 
-  case 194:
+  case 195:
 
 /* Line 1455 of yacc.c  */
-#line 1441 "program_parse.y"
+#line 1442 "program_parse.y"
     {
           /* Since GL_ARB_vertex_blend isn't supported, only modelview matrix
            * zero is valid.
@@ -3850,10 +3861,10 @@ yyreduce:
        ;}
     break;
 
-  case 195:
+  case 196:
 
 /* Line 1455 of yacc.c  */
-#line 1454 "program_parse.y"
+#line 1455 "program_parse.y"
     {
           /* Since GL_ARB_matrix_palette isn't supported, just let any value
            * through here.  The error will be generated later.
@@ -3862,10 +3873,10 @@ yyreduce:
        ;}
     break;
 
-  case 196:
+  case 197:
 
 /* Line 1455 of yacc.c  */
-#line 1462 "program_parse.y"
+#line 1463 "program_parse.y"
     {
           if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector");
@@ -3876,10 +3887,20 @@ yyreduce:
        ;}
     break;
 
-  case 201:
+  case 198:
 
 /* Line 1455 of yacc.c  */
-#line 1479 "program_parse.y"
+#line 1474 "program_parse.y"
+    {
+          memset((yyval.state), 0, sizeof((yyval.state)));
+          (yyval.state)[0] = STATE_DEPTH_RANGE;
+       ;}
+    break;
+
+  case 203:
+
+/* Line 1455 of yacc.c  */
+#line 1486 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = state->state_param_enum;
@@ -3889,30 +3910,30 @@ yyreduce:
        ;}
     break;
 
-  case 202:
+  case 204:
 
 /* Line 1455 of yacc.c  */
-#line 1489 "program_parse.y"
+#line 1496 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (1)].integer);
           (yyval.state)[1] = (yyvsp[(1) - (1)].integer);
        ;}
     break;
 
-  case 203:
+  case 205:
 
 /* Line 1455 of yacc.c  */
-#line 1494 "program_parse.y"
+#line 1501 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (3)].integer);
           (yyval.state)[1] = (yyvsp[(3) - (3)].integer);
        ;}
     break;
 
-  case 204:
+  case 206:
 
 /* Line 1455 of yacc.c  */
-#line 1501 "program_parse.y"
+#line 1508 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = state->state_param_enum;
@@ -3922,10 +3943,10 @@ yyreduce:
        ;}
     break;
 
-  case 205:
+  case 207:
 
 /* Line 1455 of yacc.c  */
-#line 1511 "program_parse.y"
+#line 1518 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = state->state_param_enum;
@@ -3935,30 +3956,30 @@ yyreduce:
        ;}
     break;
 
-  case 206:
+  case 208:
 
 /* Line 1455 of yacc.c  */
-#line 1520 "program_parse.y"
+#line 1527 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (1)].integer);
           (yyval.state)[1] = (yyvsp[(1) - (1)].integer);
        ;}
     break;
 
-  case 207:
+  case 209:
 
 /* Line 1455 of yacc.c  */
-#line 1525 "program_parse.y"
+#line 1532 "program_parse.y"
     {
           (yyval.state)[0] = (yyvsp[(1) - (3)].integer);
           (yyval.state)[1] = (yyvsp[(3) - (3)].integer);
        ;}
     break;
 
-  case 208:
+  case 210:
 
 /* Line 1455 of yacc.c  */
-#line 1532 "program_parse.y"
+#line 1539 "program_parse.y"
     {
           memset((yyval.state), 0, sizeof((yyval.state)));
           (yyval.state)[0] = state->state_param_enum;
@@ -3968,10 +3989,10 @@ yyreduce:
        ;}
     break;
 
-  case 209:
+  case 211:
 
 /* Line 1455 of yacc.c  */
-#line 1542 "program_parse.y"
+#line 1549 "program_parse.y"
     {
           if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference");
@@ -3981,10 +4002,10 @@ yyreduce:
        ;}
     break;
 
-  case 210:
+  case 212:
 
 /* Line 1455 of yacc.c  */
-#line 1552 "program_parse.y"
+#line 1559 "program_parse.y"
     {
           if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference");
@@ -3994,40 +4015,40 @@ yyreduce:
        ;}
     break;
 
-  case 215:
+  case 217:
 
 /* Line 1455 of yacc.c  */
-#line 1567 "program_parse.y"
+#line 1574 "program_parse.y"
     {
           (yyval.vector).count = 1;
           (yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
        ;}
     break;
 
-  case 216:
+  case 218:
 
 /* Line 1455 of yacc.c  */
-#line 1574 "program_parse.y"
+#line 1581 "program_parse.y"
     {
           (yyval.vector).count = 1;
           (yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
        ;}
     break;
 
-  case 217:
+  case 219:
 
 /* Line 1455 of yacc.c  */
-#line 1579 "program_parse.y"
+#line 1586 "program_parse.y"
     {
           (yyval.vector).count = 1;
           (yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer);
        ;}
     break;
 
-  case 218:
+  case 220:
 
 /* Line 1455 of yacc.c  */
-#line 1586 "program_parse.y"
+#line 1593 "program_parse.y"
     {
           (yyval.vector).count = 1;
           (yyval.vector).data[0] = (yyvsp[(2) - (3)].real);
@@ -4037,10 +4058,10 @@ yyreduce:
        ;}
     break;
 
-  case 219:
+  case 221:
 
 /* Line 1455 of yacc.c  */
-#line 1594 "program_parse.y"
+#line 1601 "program_parse.y"
     {
           (yyval.vector).count = 2;
           (yyval.vector).data[0] = (yyvsp[(2) - (5)].real);
@@ -4050,10 +4071,10 @@ yyreduce:
        ;}
     break;
 
-  case 220:
+  case 222:
 
 /* Line 1455 of yacc.c  */
-#line 1603 "program_parse.y"
+#line 1610 "program_parse.y"
     {
           (yyval.vector).count = 3;
           (yyval.vector).data[0] = (yyvsp[(2) - (7)].real);
@@ -4063,10 +4084,10 @@ yyreduce:
        ;}
     break;
 
-  case 221:
+  case 223:
 
 /* Line 1455 of yacc.c  */
-#line 1612 "program_parse.y"
+#line 1619 "program_parse.y"
     {
           (yyval.vector).count = 4;
           (yyval.vector).data[0] = (yyvsp[(2) - (9)].real);
@@ -4076,63 +4097,63 @@ yyreduce:
        ;}
     break;
 
-  case 222:
+  case 224:
 
 /* Line 1455 of yacc.c  */
-#line 1622 "program_parse.y"
+#line 1629 "program_parse.y"
     {
           (yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real);
        ;}
     break;
 
-  case 223:
+  case 225:
 
 /* Line 1455 of yacc.c  */
-#line 1626 "program_parse.y"
+#line 1633 "program_parse.y"
     {
           (yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer));
        ;}
     break;
 
-  case 224:
+  case 226:
 
 /* Line 1455 of yacc.c  */
-#line 1631 "program_parse.y"
+#line 1638 "program_parse.y"
     { (yyval.negate) = FALSE; ;}
     break;
 
-  case 225:
+  case 227:
 
 /* Line 1455 of yacc.c  */
-#line 1632 "program_parse.y"
+#line 1639 "program_parse.y"
     { (yyval.negate) = TRUE;  ;}
     break;
 
-  case 226:
+  case 228:
 
 /* Line 1455 of yacc.c  */
-#line 1633 "program_parse.y"
+#line 1640 "program_parse.y"
     { (yyval.negate) = FALSE; ;}
     break;
 
-  case 227:
+  case 229:
 
 /* Line 1455 of yacc.c  */
-#line 1636 "program_parse.y"
+#line 1643 "program_parse.y"
     { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
     break;
 
-  case 229:
+  case 231:
 
 /* Line 1455 of yacc.c  */
-#line 1639 "program_parse.y"
+#line 1646 "program_parse.y"
     { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
     break;
 
-  case 231:
+  case 233:
 
 /* Line 1455 of yacc.c  */
-#line 1643 "program_parse.y"
+#line 1650 "program_parse.y"
     {
           if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) {
              YYERROR;
@@ -4140,10 +4161,10 @@ yyreduce:
        ;}
     break;
 
-  case 232:
+  case 234:
 
 /* Line 1455 of yacc.c  */
-#line 1649 "program_parse.y"
+#line 1656 "program_parse.y"
     {
           if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) {
              YYERROR;
@@ -4151,10 +4172,10 @@ yyreduce:
        ;}
     break;
 
-  case 233:
+  case 235:
 
 /* Line 1455 of yacc.c  */
-#line 1657 "program_parse.y"
+#line 1664 "program_parse.y"
     {
           struct asm_symbol *const s =
              declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)]));
@@ -4167,10 +4188,10 @@ yyreduce:
        ;}
     break;
 
-  case 234:
+  case 236:
 
 /* Line 1455 of yacc.c  */
-#line 1670 "program_parse.y"
+#line 1677 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.result) = VERT_RESULT_HPOS;
@@ -4181,10 +4202,10 @@ yyreduce:
        ;}
     break;
 
-  case 235:
+  case 237:
 
 /* Line 1455 of yacc.c  */
-#line 1679 "program_parse.y"
+#line 1686 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.result) = VERT_RESULT_FOGC;
@@ -4195,19 +4216,19 @@ yyreduce:
        ;}
     break;
 
-  case 236:
+  case 238:
 
 /* Line 1455 of yacc.c  */
-#line 1688 "program_parse.y"
+#line 1695 "program_parse.y"
     {
           (yyval.result) = (yyvsp[(2) - (2)].result);
        ;}
     break;
 
-  case 237:
+  case 239:
 
 /* Line 1455 of yacc.c  */
-#line 1692 "program_parse.y"
+#line 1699 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.result) = VERT_RESULT_PSIZ;
@@ -4218,10 +4239,10 @@ yyreduce:
        ;}
     break;
 
-  case 238:
+  case 240:
 
 /* Line 1455 of yacc.c  */
-#line 1701 "program_parse.y"
+#line 1708 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer);
@@ -4232,10 +4253,10 @@ yyreduce:
        ;}
     break;
 
-  case 239:
+  case 241:
 
 /* Line 1455 of yacc.c  */
-#line 1710 "program_parse.y"
+#line 1717 "program_parse.y"
     {
           if (state->mode == ARB_fragment) {
              (yyval.result) = FRAG_RESULT_DEPTH;
@@ -4246,19 +4267,19 @@ yyreduce:
        ;}
     break;
 
-  case 240:
+  case 242:
 
 /* Line 1455 of yacc.c  */
-#line 1721 "program_parse.y"
+#line 1728 "program_parse.y"
     {
           (yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer);
        ;}
     break;
 
-  case 241:
+  case 243:
 
 /* Line 1455 of yacc.c  */
-#line 1727 "program_parse.y"
+#line 1734 "program_parse.y"
     {
           (yyval.integer) = (state->mode == ARB_vertex)
              ? VERT_RESULT_COL0
@@ -4266,10 +4287,10 @@ yyreduce:
        ;}
     break;
 
-  case 242:
+  case 244:
 
 /* Line 1455 of yacc.c  */
-#line 1733 "program_parse.y"
+#line 1740 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.integer) = VERT_RESULT_COL0;
@@ -4280,10 +4301,10 @@ yyreduce:
        ;}
     break;
 
-  case 243:
+  case 245:
 
 /* Line 1455 of yacc.c  */
-#line 1742 "program_parse.y"
+#line 1749 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.integer) = VERT_RESULT_BFC0;
@@ -4294,19 +4315,19 @@ yyreduce:
        ;}
     break;
 
-  case 244:
+  case 246:
 
 /* Line 1455 of yacc.c  */
-#line 1753 "program_parse.y"
+#line 1760 "program_parse.y"
     {
           (yyval.integer) = 0; 
        ;}
     break;
 
-  case 245:
+  case 247:
 
 /* Line 1455 of yacc.c  */
-#line 1757 "program_parse.y"
+#line 1764 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.integer) = 0;
@@ -4317,10 +4338,10 @@ yyreduce:
        ;}
     break;
 
-  case 246:
+  case 248:
 
 /* Line 1455 of yacc.c  */
-#line 1766 "program_parse.y"
+#line 1773 "program_parse.y"
     {
           if (state->mode == ARB_vertex) {
              (yyval.integer) = 1;
@@ -4331,94 +4352,94 @@ yyreduce:
        ;}
     break;
 
-  case 247:
+  case 249:
 
 /* Line 1455 of yacc.c  */
-#line 1776 "program_parse.y"
+#line 1783 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
-  case 248:
+  case 250:
 
 /* Line 1455 of yacc.c  */
-#line 1777 "program_parse.y"
+#line 1784 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
-  case 249:
+  case 251:
 
 /* Line 1455 of yacc.c  */
-#line 1778 "program_parse.y"
+#line 1785 "program_parse.y"
     { (yyval.integer) = 1; ;}
     break;
 
-  case 250:
+  case 252:
 
 /* Line 1455 of yacc.c  */
-#line 1781 "program_parse.y"
+#line 1788 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
-  case 251:
+  case 253:
 
 /* Line 1455 of yacc.c  */
-#line 1782 "program_parse.y"
+#line 1789 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
-  case 252:
+  case 254:
 
 /* Line 1455 of yacc.c  */
-#line 1783 "program_parse.y"
+#line 1790 "program_parse.y"
     { (yyval.integer) = 1; ;}
     break;
 
-  case 253:
+  case 255:
 
 /* Line 1455 of yacc.c  */
-#line 1786 "program_parse.y"
+#line 1793 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
-  case 254:
+  case 256:
 
 /* Line 1455 of yacc.c  */
-#line 1787 "program_parse.y"
+#line 1794 "program_parse.y"
     { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
     break;
 
-  case 255:
+  case 257:
 
 /* Line 1455 of yacc.c  */
-#line 1790 "program_parse.y"
+#line 1797 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
-  case 256:
+  case 258:
 
 /* Line 1455 of yacc.c  */
-#line 1791 "program_parse.y"
+#line 1798 "program_parse.y"
     { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
     break;
 
-  case 257:
+  case 259:
 
 /* Line 1455 of yacc.c  */
-#line 1794 "program_parse.y"
+#line 1801 "program_parse.y"
     { (yyval.integer) = 0; ;}
     break;
 
-  case 258:
+  case 260:
 
 /* Line 1455 of yacc.c  */
-#line 1795 "program_parse.y"
+#line 1802 "program_parse.y"
     { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
     break;
 
-  case 259:
+  case 261:
 
 /* Line 1455 of yacc.c  */
-#line 1799 "program_parse.y"
+#line 1806 "program_parse.y"
     {
           if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector");
@@ -4429,10 +4450,10 @@ yyreduce:
        ;}
     break;
 
-  case 260:
+  case 262:
 
 /* Line 1455 of yacc.c  */
-#line 1810 "program_parse.y"
+#line 1817 "program_parse.y"
     {
           if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector");
@@ -4443,10 +4464,10 @@ yyreduce:
        ;}
     break;
 
-  case 261:
+  case 263:
 
 /* Line 1455 of yacc.c  */
-#line 1821 "program_parse.y"
+#line 1828 "program_parse.y"
     {
           if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector");
@@ -4457,10 +4478,10 @@ yyreduce:
        ;}
     break;
 
-  case 262:
+  case 264:
 
 /* Line 1455 of yacc.c  */
-#line 1832 "program_parse.y"
+#line 1839 "program_parse.y"
     {
           struct asm_symbol *exist = (struct asm_symbol *)
              _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string));
@@ -4484,7 +4505,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 4488 "program_parse.tab.c"
+#line 4509 "program_parse.tab.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4703,7 +4724,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 1852 "program_parse.y"
+#line 1859 "program_parse.y"
 
 
 struct asm_instruction *
index 251cf7d3099dc39ebead260878901a6a562d20a9..91a4036cbbd7075d2e594903318589dc5d3cd0a2 100644 (file)
@@ -205,7 +205,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op,
 %type <state> stateLightItem stateLightModelItem stateLightProdItem
 %type <state> stateTexGenItem stateFogItem stateClipPlaneItem statePointItem
 %type <state> stateMatrixItem stateMatrixRow stateMatrixRows
-%type <state> stateTexEnvItem
+%type <state> stateTexEnvItem stateDepthItem
 
 %type <state> stateLModProperty
 %type <state> stateMatrixName optMatrixRows
@@ -1083,6 +1083,7 @@ stateSingleItem: STATE stateMaterialItem  { memcpy($$, $2, sizeof($$)); }
        | STATE stateClipPlaneItem        { memcpy($$, $2, sizeof($$)); }
        | STATE statePointItem            { memcpy($$, $2, sizeof($$)); }
        | STATE stateMatrixRow            { memcpy($$, $2, sizeof($$)); }
+       | STATE stateDepthItem            { memcpy($$, $2, sizeof($$)); }
        ;
 
 stateMaterialItem: MATERIAL optFaceType stateMatProperty
@@ -1469,6 +1470,12 @@ stateProgramMatNum: INTEGER
        }
        ;
 
+stateDepthItem: DEPTH RANGE
+       {
+          memset($$, 0, sizeof($$));
+          $$[0] = STATE_DEPTH_RANGE;
+       }
+       ;
 
 
 programSingleItem: progEnvParam | progLocalParam;