Revert "ARB prog parser: Fix epic memory leak in lexer / parser interface"
[mesa.git] / src / mesa / shader / program_parse.tab.c
index dbed448113e9b59fb2cacafbd92785bcd985769d..c255e912ed238c0778bcf44ac16e10a06712f344 100644 (file)
@@ -251,7 +251,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op,
      PALETTE = 309,
      PARAMS = 310,
      PLANE = 311,
-     POINT = 312,
+     POINT_TOK = 312,
      POINTSIZE = 313,
      POSITION = 314,
      PRIMARY = 315,
@@ -263,7 +263,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op,
      SCENECOLOR = 321,
      SECONDARY = 322,
      SHININESS = 323,
-     SIZE = 324,
+     SIZE_TOK = 324,
      SPECULAR = 325,
      SPOT = 326,
      STATE = 327,
@@ -324,7 +324,7 @@ typedef union YYSTYPE
    unsigned attrib;
    int integer;
    float real;
-   unsigned state[5];
+   gl_state_index state[STATE_LENGTH];
    int negate;
    struct asm_vector vector;
    gl_inst_opcode opcode;
@@ -587,7 +587,7 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  5
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   340
+#define YYLAST   342
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  115
@@ -596,7 +596,7 @@ union yyalloc
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  264
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  434
+#define YYNSTATES  436
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -671,14 +671,14 @@ static const yytype_uint16 yyprhs[] =
      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
+     520,   523,   528,   533,   534,   538,   540,   542,   544,   547,
+     549,   551,   553,   555,   561,   563,   567,   573,   579,   581,
+     585,   591,   593,   595,   597,   599,   601,   603,   605,   607,
+     609,   613,   619,   627,   637,   640,   643,   645,   647,   648,
+     649,   653,   654,   658,   662,   664,   669,   672,   675,   678,
+     681,   685,   688,   692,   693,   695,   697,   698,   700,   702,
+     703,   705,   707,   708,   710,   712,   713,   717,   718,   722,
+     723,   727,   729,   731,   733
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
@@ -737,27 +737,27 @@ static const yytype_int16 yyrhs[] =
      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
+     211,   109,    -1,    -1,   108,   209,   109,    -1,    22,    -1,
+      22,    -1,    22,    -1,    29,    63,    -1,   217,    -1,   220,
+      -1,   215,    -1,   218,    -1,    61,    33,   108,   216,   109,
+      -1,   221,    -1,   221,   104,   221,    -1,    61,    33,   108,
+     221,   109,    -1,    61,    45,   108,   219,   109,    -1,   222,
+      -1,   222,   104,   222,    -1,    61,    45,   108,   222,   109,
+      -1,    22,    -1,    22,    -1,   225,    -1,   227,    -1,   226,
+      -1,   227,    -1,   228,    -1,    23,    -1,    22,    -1,   113,
+     228,   114,    -1,   113,   228,   107,   228,   114,    -1,   113,
+     228,   107,   228,   107,   228,   114,    -1,   113,   228,   107,
+     228,   107,   228,   107,   228,   114,    -1,   229,    23,    -1,
+     229,    22,    -1,   110,    -1,   111,    -1,    -1,    -1,    11,
+     231,   234,    -1,    -1,     5,   233,   234,    -1,   234,   107,
+      98,    -1,    98,    -1,     9,    98,   112,   236,    -1,    64,
+      59,    -1,    64,    36,    -1,    64,   237,    -1,    64,    58,
+      -1,    64,    73,   242,    -1,    64,    29,    -1,    28,   238,
+     239,    -1,    -1,    38,    -1,    26,    -1,    -1,    60,    -1,
+      67,    -1,    -1,    38,    -1,    26,    -1,    -1,    60,    -1,
+      67,    -1,    -1,   108,   245,   109,    -1,    -1,   108,   246,
+     109,    -1,    -1,   108,   247,   109,    -1,    22,    -1,    22,
+      -1,    22,    -1,     6,    98,   112,    98,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -806,9 +806,9 @@ static const char *const yytname[] =
   "EYE", "FOG", "FOGCOORD", "FRAGMENT", "FRONT", "HALF", "INVERSE",
   "INVTRANS", "LIGHT", "LIGHTMODEL", "LIGHTPROD", "LOCAL", "MATERIAL",
   "MAT_PROGRAM", "MATRIX", "MATRIXINDEX", "MODELVIEW", "MVP", "NORMAL",
-  "OBJECT", "PALETTE", "PARAMS", "PLANE", "POINT", "POINTSIZE", "POSITION",
-  "PRIMARY", "PROGRAM", "PROJECTION", "RANGE", "RESULT", "ROW",
-  "SCENECOLOR", "SECONDARY", "SHININESS", "SIZE", "SPECULAR", "SPOT",
+  "OBJECT", "PALETTE", "PARAMS", "PLANE", "POINT_TOK", "POINTSIZE",
+  "POSITION", "PRIMARY", "PROGRAM", "PROJECTION", "RANGE", "RESULT", "ROW",
+  "SCENECOLOR", "SECONDARY", "SHININESS", "SIZE_TOK", "SPECULAR", "SPOT",
   "STATE", "TEXCOORD", "TEXENV", "TEXGEN", "TEXGEN_Q", "TEXGEN_R",
   "TEXGEN_S", "TEXGEN_T", "TEXTURE", "TRANSPOSE", "TEXTURE_UNIT", "TEX_1D",
   "TEX_2D", "TEX_3D", "TEX_CUBE", "TEX_RECT", "TEX_SHADOW1D",
@@ -934,7 +934,7 @@ static const yytype_uint8 yyr2[] =
        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,
+       2,     4,     4,     0,     3,     1,     1,     1,     2,     1,
        1,     1,     1,     5,     1,     3,     5,     5,     1,     3,
        5,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        3,     5,     7,     9,     2,     2,     1,     1,     0,     0,
@@ -977,111 +977,111 @@ static const yytype_uint16 yydefact[] =
        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
+     157,   158,   141,   142,   159,   139,   140,     0,     0,   187,
+       0,   190,   183,   185,   184,   180,   182,   263,     0,   156,
+     155,   162,   163,     0,     0,   102,     0,    99,     0,     0,
+       0,    55,    70,    64,    44,     0,     0,   228,     0,    31,
+       0,   228,   206,   210,     0,     0,   249,   197,     0,   195,
+       0,   196,     0,   260,   167,   166,   164,   165,   161,   186,
+       0,    97,    98,   101,   228,   221,     0,     0,    63,   228,
+      51,    52,    50,     0,     0,     0,   115,   123,   126,   124,
+     201,   202,   125,   262,     0,    32,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,    43,    29,    28,   171,
+     146,   148,   145,     0,   143,   144,     0,   192,   194,   191,
+     176,     0,    67,    65,    68,    66,     0,     0,     0,   127,
+     178,   228,   114,   258,   149,   147,   153,   154,   228,   222,
+     228,     0,     0,     0,   177,   116,     0,     0,     0,   204,
+       0,   208,     0,   223,   228,   203,     0,   207,     0,     0,
+      49,   205,   209,     0,     0,   179
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,     3,     4,     6,     8,     9,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,   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,
+      31,    32,    33,    34,    35,    36,    37,    38,   268,   377,
+      39,   146,    71,    58,    67,   314,   315,   352,   114,    59,
+     115,   255,   256,   257,   348,   393,   395,    68,   313,   105,
+     266,   196,    97,    40,    41,   116,   191,   308,   251,   306,
+     157,    42,    43,    44,   131,    83,   261,   355,   132,   117,
+     356,   357,   118,   171,   285,   172,   384,   405,   173,   228,
+     174,   406,   175,   300,   286,   277,   176,   303,   338,   177,
+     223,   178,   275,   179,   241,   180,   399,   414,   181,   295,
+     296,   340,   238,   289,   330,   332,   328,   182,   119,   359,
+     360,   418,   120,   361,   420,   121,   271,   273,   362,   122,
      136,   123,   124,   138,    72,    45,    55,    46,    50,    77,
-      47,    60,    91,   142,   205,   229,   215,   144,   320,   243,
-     207,   363,   299,    48
+      47,    60,    91,   142,   205,   229,   215,   144,   319,   243,
+     207,   364,   298,    48
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -334
+#define YYPACT_NINF -369
 static const yytype_int16 yypact[] =
 {
-     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
+     143,  -369,  -369,    36,  -369,  -369,    45,   -39,  -369,   169,
+     -33,  -369,   -19,    -6,    -4,    12,  -369,  -369,   -34,   -34,
+     -34,   -34,   -34,   -34,    15,    62,   -34,  -369,    26,  -369,
+    -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,
+      60,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,
+      20,    56,   107,   110,    37,    20,    -3,  -369,   111,   109,
+    -369,   113,   114,   116,   117,   118,  -369,   119,   125,  -369,
+    -369,  -369,   -15,   121,  -369,  -369,  -369,   122,   132,   -18,
+     167,   210,   -11,  -369,   122,    63,  -369,  -369,  -369,  -369,
+     130,  -369,    62,  -369,  -369,  -369,  -369,  -369,    62,    62,
+      62,    62,    62,    62,  -369,  -369,  -369,  -369,     9,    72,
+      87,    -1,   131,    62,   104,   134,  -369,  -369,  -369,  -369,
+    -369,  -369,  -369,  -369,  -369,   -15,   142,  -369,  -369,  -369,
+    -369,   135,  -369,  -369,  -369,  -369,  -369,  -369,  -369,   182,
+    -369,  -369,    52,   219,  -369,   138,   139,   -15,   140,  -369,
+     141,  -369,  -369,    61,  -369,  -369,   130,  -369,   144,   145,
+     146,   180,    11,   147,    85,   148,    99,    89,    -2,   149,
+     130,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,
+    -369,   184,  -369,    61,  -369,   150,  -369,  -369,   130,   151,
+     152,  -369,    27,  -369,  -369,  -369,  -369,   -10,   154,  -369,
+     153,  -369,  -369,  -369,  -369,  -369,  -369,   155,    62,    62,
+     161,   168,    62,  -369,  -369,  -369,  -369,   229,   244,   246,
+    -369,  -369,  -369,  -369,   247,  -369,  -369,  -369,  -369,   204,
+     247,    17,   163,   164,  -369,   165,  -369,   130,    67,  -369,
+    -369,  -369,   252,   248,    18,   170,  -369,   253,  -369,   255,
+     253,  -369,    62,  -369,  -369,   171,  -369,  -369,   177,    62,
+     172,  -369,  -369,  -369,  -369,  -369,  -369,   173,   175,   176,
+    -369,   178,  -369,   179,  -369,   181,  -369,   183,  -369,   185,
+    -369,  -369,  -369,  -369,  -369,  -369,  -369,   262,   264,  -369,
+     267,  -369,  -369,  -369,  -369,  -369,  -369,  -369,   186,  -369,
+    -369,  -369,  -369,   136,   269,  -369,   187,  -369,   188,   190,
+      43,  -369,  -369,   106,  -369,   193,    -5,    -7,   271,  -369,
+     108,    62,  -369,  -369,   245,     4,    99,  -369,   194,  -369,
+     195,  -369,   196,  -369,  -369,  -369,  -369,  -369,  -369,  -369,
+     197,  -369,  -369,  -369,    62,  -369,   280,   285,  -369,    62,
+    -369,  -369,  -369,    93,    87,    53,  -369,  -369,  -369,  -369,
+    -369,  -369,  -369,  -369,   199,  -369,  -369,  -369,  -369,  -369,
+    -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,
+    -369,  -369,  -369,   278,  -369,  -369,     8,  -369,  -369,  -369,
+    -369,    57,  -369,  -369,  -369,  -369,   203,   205,   206,  -369,
+     250,    -7,  -369,  -369,  -369,  -369,  -369,  -369,    62,  -369,
+      62,   229,   244,   208,  -369,  -369,   198,   211,   202,   213,
+     214,   218,   269,  -369,    62,  -369,   229,  -369,   244,    54,
+    -369,  -369,  -369,   269,   215,  -369
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -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
+    -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,
+    -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,
+    -369,   -94,   -88,   133,  -369,  -369,  -334,  -369,   -85,  -369,
+    -369,  -369,  -369,  -369,  -369,  -369,  -369,   128,  -369,  -369,
+    -369,  -369,  -369,  -369,  -369,   251,  -369,  -369,  -369,    77,
+    -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,
+     -72,  -369,   -81,  -369,  -369,  -369,  -369,  -369,  -369,  -369,
+    -369,  -369,  -369,  -369,  -305,   101,  -369,  -369,  -369,  -369,
+    -369,  -369,  -369,  -369,  -369,  -369,  -369,  -369,   -22,  -369,
+    -369,  -336,  -369,  -369,  -369,  -369,  -369,  -369,   254,  -369,
+    -369,  -369,  -369,  -369,  -369,  -369,  -342,  -368,   256,  -369,
+    -369,  -369,   -80,  -110,   -82,  -369,  -369,  -369,  -369,   279,
+    -369,   257,  -369,  -369,  -369,  -161,   156,  -146,  -369,  -369,
+    -369,  -369,  -369,  -369
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1092,79 +1092,79 @@ static const yytype_int16 yypgoto[] =
 static const yytype_int16 yytable[] =
 {
      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,
+     216,   148,   254,   150,   151,   396,   147,   350,   147,   108,
+     385,   147,   108,   239,   244,    85,    86,   183,   280,   380,
+      56,   139,   280,    87,   281,   184,     5,   153,   281,   221,
+     198,   280,   248,   381,   421,   154,   109,   281,   185,   282,
+     109,   186,   301,     7,   353,    88,    89,   110,   187,    10,
+     432,   110,   210,   382,    57,   354,   222,   240,   155,   419,
+      90,   302,   188,    49,   284,   383,   417,   111,   284,    51,
+     111,   407,   156,   112,   431,   283,   429,   284,    66,   140,
+     430,   291,    52,   351,    53,   189,   190,   434,   113,    69,
+      70,   141,   113,    69,    70,   158,   113,   292,   293,   225,
+      54,   226,   203,    66,   160,   264,   161,   159,    76,   204,
+     263,   213,   162,   227,   269,   226,   397,   147,   214,   163,
+     164,   165,    74,   166,   252,   167,   232,   227,   398,   233,
+     234,   253,   310,   235,   168,    81,     1,     2,   294,    82,
+     344,   236,    61,    62,    63,    64,    65,   345,   433,    73,
+     401,   169,   170,   390,   408,   386,    75,   402,    78,   237,
+     139,   409,    69,    70,    11,    12,    13,   316,    14,    15,
       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,   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
+      26,   365,   366,   367,   368,   369,   370,   371,   372,   373,
+     374,   375,   376,   193,   201,   202,   194,   195,    93,    94,
+      95,    96,   334,   335,   336,   337,   346,   347,    92,    79,
+      98,    99,    80,   100,   101,   102,   103,   104,   125,   126,
+     127,    56,   130,   378,   391,   139,   358,   137,   143,   -59,
+     199,   206,   197,   220,   200,   208,   209,   211,   212,   245,
+     267,   270,   217,   218,   219,   224,   230,   242,   247,   249,
+     250,   259,   139,   265,   262,   260,   272,   316,   274,   276,
+     278,   287,   288,   290,   297,   305,   299,   307,   304,   312,
+     311,   318,   320,   321,   327,   317,   329,   322,   323,   331,
+     324,   339,   325,   363,   326,   333,   341,   342,   416,   343,
+     349,   379,   392,   387,   388,   389,   390,   394,   403,   404,
+     410,   425,   423,   411,   412,   413,   422,   426,   424,   139,
+     358,   137,   428,   427,   435,   258,   139,   309,   316,   415,
+     128,   279,   400,     0,    84,     0,   134,   129,   135,   246,
+       0,     0,   316
 };
 
 static const yytype_int16 yycheck[] =
 {
       82,    82,    82,   113,    92,   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,
+     156,    99,    22,   101,   102,   349,    98,    22,   100,    37,
+     325,   103,    37,    25,   170,    28,    29,    28,    24,    25,
+      64,   113,    24,    36,    30,    36,     0,    28,    30,    28,
+     125,    24,   188,    39,   412,    36,    61,    30,    49,    32,
+      61,    52,    34,     8,    61,    58,    59,    72,    59,    98,
+     428,    72,   147,    59,    98,    72,    55,    69,    59,   411,
+      73,    53,    73,   106,    70,    71,   410,    95,    70,    98,
+      95,   386,    73,    98,   426,    68,   422,    70,    98,    26,
+     424,   237,    98,    98,    98,    96,    97,   433,   113,   110,
+     111,    38,   113,   110,   111,    33,   113,    40,    41,    24,
+      98,    26,    60,    98,    27,   209,    29,    45,    98,    67,
+     208,    60,    35,    38,   212,    26,    33,   209,    67,    42,
+      43,    44,   106,    46,   107,    48,    47,    38,    45,    50,
+      51,   114,   252,    54,    57,   108,     3,     4,    81,   112,
+     107,    62,    19,    20,    21,    22,    23,   114,   104,    26,
+     107,    74,    75,   109,   107,   326,   106,   114,   112,    80,
+     252,   114,   110,   111,     5,     6,     7,   259,     9,    10,
       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
       21,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    99,   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
+      92,    93,    94,    99,    22,    23,   102,   103,    99,   100,
+     101,   102,    76,    77,    78,    79,   110,   111,   107,   112,
+     107,   107,   112,   107,   107,   107,   107,   102,   107,   107,
+      98,    64,    22,   321,   344,   317,   317,   317,   108,   108,
+      98,    22,   108,    63,   109,   107,   107,   107,   107,    65,
+      82,    22,   108,   108,   108,   108,   108,   108,   108,   108,
+     108,   107,   344,   102,   109,   112,    22,   349,    22,    22,
+      66,   108,   108,   108,    22,    22,    28,    22,   108,   102,
+     109,   108,   107,   107,    22,   113,    22,   109,   109,    22,
+     109,    22,   109,    22,   109,   109,   109,   109,   408,   109,
+     107,    56,    22,   109,   109,   109,   109,    22,   109,    31,
+     107,   109,   114,   108,   108,    65,   108,   104,   107,   401,
+     401,   401,   104,   109,   109,   197,   408,   250,   410,   401,
+      79,   230,   354,    -1,    55,    -1,    82,    80,    82,   183,
+      -1,    -1,   424
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1199,22 +1199,22 @@ static const yytype_uint8 yystos[] =
      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
+      24,    30,    32,    68,    70,   179,   189,   108,   108,   208,
+     108,   242,    40,    41,    81,   204,   205,    22,   247,    28,
+     188,    34,    53,   192,   108,    22,   164,    22,   162,   164,
+     228,   109,   102,   153,   140,   141,   229,   113,   108,   243,
+     107,   107,   109,   109,   109,   109,   109,    22,   211,    22,
+     209,    22,   210,   109,    76,    77,    78,    79,   193,    22,
+     206,   109,   109,   109,   107,   114,   110,   111,   149,   107,
+      22,    98,   142,    61,    72,   172,   175,   176,   177,   214,
+     215,   218,   223,    22,   246,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,   134,   137,    56,
+      25,    39,    59,    71,   181,   189,   240,   109,   109,   109,
+     109,   228,    22,   150,    22,   151,   141,    33,    45,   201,
+     203,   107,   114,   109,    31,   182,   186,   189,   107,   114,
+     107,   108,   108,    65,   202,   175,   228,   141,   216,   221,
+     219,   222,   108,   114,   107,   109,   104,   109,   104,   206,
+     141,   221,   222,   104,   206,   109
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -3109,7 +3109,7 @@ yyreduce:
 /* Line 1455 of yacc.c  */
 #line 1041 "program_parse.y"
     {
-          if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) {
+          if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) > state->limits->MaxParameters)) {
              yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size");
              YYERROR;
           } else {
@@ -3899,7 +3899,7 @@ yyreduce:
 /* Line 1455 of yacc.c  */
 #line 1496 "program_parse.y"
     {
-          (yyval.integer) = (yyvsp[(1) - (1)].integer);
+          (yyval.integer) = (yyvsp[(2) - (3)].integer);
        ;}
     break;
 
@@ -4946,8 +4946,7 @@ int add_state_reference(struct gl_program_parameter_list *param_list,
 
    name = _mesa_program_state_string(tokens);
    index = _mesa_add_parameter(param_list, PROGRAM_STATE_VAR, name,
-                               size, GL_NONE,
-                               NULL, (gl_state_index *) tokens, 0x0);
+                               size, GL_NONE, NULL, tokens, 0x0);
    param_list->StateFlags |= _mesa_program_state_flags(tokens);
 
    /* free name string here since we duplicated it in add_parameter() */
@@ -5156,12 +5155,12 @@ _mesa_parse_arb_program(GLcontext *ctx, GLenum target, const GLubyte *str,
       ? & ctx->Const.VertexProgram
       : & ctx->Const.FragmentProgram;
 
-   state->MaxTextureImageUnits = 16;
-   state->MaxTextureCoordUnits = 8;
-   state->MaxTextureUnits = 8;
-   state->MaxClipPlanes = 6;
-   state->MaxLights = 8;
-   state->MaxProgramMatrices = 8;
+   state->MaxTextureImageUnits = ctx->Const.MaxTextureImageUnits;
+   state->MaxTextureCoordUnits = ctx->Const.MaxTextureCoordUnits;
+   state->MaxTextureUnits = ctx->Const.MaxTextureUnits;
+   state->MaxClipPlanes = ctx->Const.MaxClipPlanes;
+   state->MaxLights = ctx->Const.MaxLights;
+   state->MaxProgramMatrices = ctx->Const.MaxProgramMatrices;
 
    state->state_param_enum = (target == GL_VERTEX_PROGRAM_ARB)
       ? STATE_VERTEX_PROGRAM : STATE_FRAGMENT_PROGRAM;