summaryrefslogtreecommitdiffstats
path: root/src/mesa/shader
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/shader')
-rw-r--r--src/mesa/shader/lex.yy.c355
-rw-r--r--src/mesa/shader/prog_execute.c5
-rw-r--r--src/mesa/shader/program_lexer.l9
-rw-r--r--src/mesa/shader/program_parse.tab.c457
-rw-r--r--src/mesa/shader/program_parse.tab.h6
-rw-r--r--src/mesa/shader/program_parse.y17
6 files changed, 431 insertions, 418 deletions
diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c
index ba3512365e7..3c4e97b650a 100644
--- a/src/mesa/shader/lex.yy.c
+++ b/src/mesa/shader/lex.yy.c
@@ -1036,6 +1036,7 @@ static yyconst flex_int16_t yy_chk[1352] =
*/
#include "main/glheader.h"
#include "prog_instruction.h"
+#include "prog_statevars.h"
#include "symbol_table.h"
#include "program_parser.h"
@@ -1048,6 +1049,10 @@ static yyconst flex_int16_t yy_chk[1352] =
#define require_rect (yyextra->option.TexRect)
#define require_texarray (yyextra->option.TexArray)
+#ifndef HAVE_UNISTD_H
+#define YY_NO_UNISTD_H
+#endif
+
#define return_token_or_IDENTIFIER(condition, token) \
do { \
if (condition) { \
@@ -1148,7 +1153,7 @@ handle_ident(struct asm_parser_state *state, const char *text, YYSTYPE *lval)
} while(0);
#define YY_EXTRA_TYPE struct asm_parser_state *
-#line 1152 "lex.yy.c"
+#line 1157 "lex.yy.c"
#define INITIAL 0
@@ -1394,10 +1399,10 @@ YY_DECL
register int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-#line 151 "program_lexer.l"
+#line 156 "program_lexer.l"
-#line 1401 "lex.yy.c"
+#line 1406 "lex.yy.c"
yylval = yylval_param;
@@ -1486,17 +1491,17 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 153 "program_lexer.l"
+#line 158 "program_lexer.l"
{ return ARBvp_10; }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 154 "program_lexer.l"
+#line 159 "program_lexer.l"
{ return ARBfp_10; }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 155 "program_lexer.l"
+#line 160 "program_lexer.l"
{
yylval->integer = at_address;
return_token_or_IDENTIFIER(require_ARB_vp, ADDRESS);
@@ -1504,682 +1509,682 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 159 "program_lexer.l"
+#line 164 "program_lexer.l"
{ return ALIAS; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 160 "program_lexer.l"
+#line 165 "program_lexer.l"
{ return ATTRIB; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 161 "program_lexer.l"
+#line 166 "program_lexer.l"
{ return END; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 162 "program_lexer.l"
+#line 167 "program_lexer.l"
{ return OPTION; }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 163 "program_lexer.l"
+#line 168 "program_lexer.l"
{ return OUTPUT; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 164 "program_lexer.l"
+#line 169 "program_lexer.l"
{ return PARAM; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 165 "program_lexer.l"
+#line 170 "program_lexer.l"
{ yylval->integer = at_temp; return TEMP; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 167 "program_lexer.l"
+#line 172 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, ABS, 3); }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 168 "program_lexer.l"
+#line 173 "program_lexer.l"
{ return_opcode( 1, BIN_OP, ADD, 3); }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 169 "program_lexer.l"
+#line 174 "program_lexer.l"
{ return_opcode(require_ARB_vp, ARL, ARL, 3); }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 171 "program_lexer.l"
+#line 176 "program_lexer.l"
{ return_opcode(require_ARB_fp, TRI_OP, CMP, 3); }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 172 "program_lexer.l"
+#line 177 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, COS, 3); }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 174 "program_lexer.l"
+#line 179 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, DDX, 3); }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 175 "program_lexer.l"
+#line 180 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, DDY, 3); }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 176 "program_lexer.l"
+#line 181 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DP3, 3); }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 177 "program_lexer.l"
+#line 182 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DP4, 3); }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 178 "program_lexer.l"
+#line 183 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DPH, 3); }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 179 "program_lexer.l"
+#line 184 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DST, 3); }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 181 "program_lexer.l"
+#line 186 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, EX2, 3); }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 182 "program_lexer.l"
+#line 187 "program_lexer.l"
{ return_opcode(require_ARB_vp, SCALAR_OP, EXP, 3); }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 184 "program_lexer.l"
+#line 189 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, FLR, 3); }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 185 "program_lexer.l"
+#line 190 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, FRC, 3); }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 187 "program_lexer.l"
+#line 192 "program_lexer.l"
{ return_opcode(require_ARB_fp, KIL, KIL, 3); }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 189 "program_lexer.l"
+#line 194 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, LIT, 3); }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 190 "program_lexer.l"
+#line 195 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, LG2, 3); }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 191 "program_lexer.l"
+#line 196 "program_lexer.l"
{ return_opcode(require_ARB_vp, SCALAR_OP, LOG, 3); }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 192 "program_lexer.l"
+#line 197 "program_lexer.l"
{ return_opcode(require_ARB_fp, TRI_OP, LRP, 3); }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 194 "program_lexer.l"
+#line 199 "program_lexer.l"
{ return_opcode( 1, TRI_OP, MAD, 3); }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 195 "program_lexer.l"
+#line 200 "program_lexer.l"
{ return_opcode( 1, BIN_OP, MAX, 3); }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 196 "program_lexer.l"
+#line 201 "program_lexer.l"
{ return_opcode( 1, BIN_OP, MIN, 3); }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 197 "program_lexer.l"
+#line 202 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, MOV, 3); }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 198 "program_lexer.l"
+#line 203 "program_lexer.l"
{ return_opcode( 1, BIN_OP, MUL, 3); }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 200 "program_lexer.l"
+#line 205 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, PK2H, 4); }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 201 "program_lexer.l"
+#line 206 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, PK2US, 5); }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 202 "program_lexer.l"
+#line 207 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, PK4B, 4); }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 203 "program_lexer.l"
+#line 208 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, PK4UB, 5); }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 204 "program_lexer.l"
+#line 209 "program_lexer.l"
{ return_opcode( 1, BINSC_OP, POW, 3); }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 206 "program_lexer.l"
+#line 211 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, RCP, 3); }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 207 "program_lexer.l"
+#line 212 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, RFL, 3); }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 208 "program_lexer.l"
+#line 213 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, RSQ, 3); }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 210 "program_lexer.l"
+#line 215 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, 3); }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 211 "program_lexer.l"
+#line 216 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SEQ, 3); }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 212 "program_lexer.l"
+#line 217 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SFL, 3); }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 213 "program_lexer.l"
+#line 218 "program_lexer.l"
{ return_opcode( 1, BIN_OP, SGE, 3); }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 214 "program_lexer.l"
+#line 219 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SGT, 3); }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 215 "program_lexer.l"
+#line 220 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, 3); }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 216 "program_lexer.l"
+#line 221 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SLE, 3); }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 217 "program_lexer.l"
+#line 222 "program_lexer.l"
{ return_opcode( 1, BIN_OP, SLT, 3); }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 218 "program_lexer.l"
+#line 223 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SNE, 3); }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 219 "program_lexer.l"
+#line 224 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, STR, 3); }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 220 "program_lexer.l"
+#line 225 "program_lexer.l"
{ return_opcode( 1, BIN_OP, SUB, 3); }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 221 "program_lexer.l"
+#line 226 "program_lexer.l"
{ return_opcode( 1, SWZ, SWZ, 3); }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 223 "program_lexer.l"
+#line 228 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, 3); }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 224 "program_lexer.l"
+#line 229 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, 3); }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 225 "program_lexer.l"
+#line 230 "program_lexer.l"
{ return_opcode(require_NV_fp, TXD_OP, TXD, 3); }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 226 "program_lexer.l"
+#line 231 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, 3); }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 228 "program_lexer.l"
+#line 233 "program_lexer.l"
{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, 4); }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 229 "program_lexer.l"
+#line 234 "program_lexer.l"
{ return_opcode(require_NV_fp, SCALAR_OP, UP2US, 5); }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 231 "program_lexer.l"
+#line 236 "program_lexer.l"
{ return_opcode(require_NV_fp, TRI_OP, X2D, 3); }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 232 "program_lexer.l"
+#line 237 "program_lexer.l"
{ return_opcode( 1, BIN_OP, XPD, 3); }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 234 "program_lexer.l"
+#line 239 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 235 "program_lexer.l"
+#line 240 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 236 "program_lexer.l"
+#line 241 "program_lexer.l"
{ return PROGRAM; }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 237 "program_lexer.l"
+#line 242 "program_lexer.l"
{ return STATE; }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 238 "program_lexer.l"
+#line 243 "program_lexer.l"
{ return RESULT; }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 240 "program_lexer.l"
+#line 245 "program_lexer.l"
{ return AMBIENT; }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 241 "program_lexer.l"
+#line 246 "program_lexer.l"
{ return ATTENUATION; }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 242 "program_lexer.l"
+#line 247 "program_lexer.l"
{ return BACK; }
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 243 "program_lexer.l"
+#line 248 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, CLIP); }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 244 "program_lexer.l"
+#line 249 "program_lexer.l"
{ return COLOR; }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 245 "program_lexer.l"
+#line 250 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, DEPTH); }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 246 "program_lexer.l"
+#line 251 "program_lexer.l"
{ return DIFFUSE; }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 247 "program_lexer.l"
+#line 252 "program_lexer.l"
{ return DIRECTION; }
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 248 "program_lexer.l"
+#line 253 "program_lexer.l"
{ return EMISSION; }
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 249 "program_lexer.l"
+#line 254 "program_lexer.l"
{ return ENV; }
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 250 "program_lexer.l"
+#line 255 "program_lexer.l"
{ return EYE; }
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 251 "program_lexer.l"
+#line 256 "program_lexer.l"
{ return FOGCOORD; }
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 252 "program_lexer.l"
+#line 257 "program_lexer.l"
{ return FOG; }
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 253 "program_lexer.l"
+#line 258 "program_lexer.l"
{ return FRONT; }
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 254 "program_lexer.l"
+#line 259 "program_lexer.l"
{ return HALF; }
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 255 "program_lexer.l"
+#line 260 "program_lexer.l"
{ return INVERSE; }
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 256 "program_lexer.l"
+#line 261 "program_lexer.l"
{ return INVTRANS; }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 257 "program_lexer.l"
+#line 262 "program_lexer.l"
{ return LIGHT; }
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 258 "program_lexer.l"
+#line 263 "program_lexer.l"
{ return LIGHTMODEL; }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 259 "program_lexer.l"
+#line 264 "program_lexer.l"
{ return LIGHTPROD; }
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 260 "program_lexer.l"
+#line 265 "program_lexer.l"
{ return LOCAL; }
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 261 "program_lexer.l"
+#line 266 "program_lexer.l"
{ return MATERIAL; }
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 262 "program_lexer.l"
+#line 267 "program_lexer.l"
{ return MAT_PROGRAM; }
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 263 "program_lexer.l"
+#line 268 "program_lexer.l"
{ return MATRIX; }
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 264 "program_lexer.l"
+#line 269 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); }
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 265 "program_lexer.l"
+#line 270 "program_lexer.l"
{ return MODELVIEW; }
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 266 "program_lexer.l"
+#line 271 "program_lexer.l"
{ return MVP; }
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 267 "program_lexer.l"
+#line 272 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, NORMAL); }
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 268 "program_lexer.l"
+#line 273 "program_lexer.l"
{ return OBJECT; }
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 269 "program_lexer.l"
+#line 274 "program_lexer.l"
{ return PALETTE; }
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 270 "program_lexer.l"
+#line 275 "program_lexer.l"
{ return PARAMS; }
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 271 "program_lexer.l"
+#line 276 "program_lexer.l"
{ return PLANE; }
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 272 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, POINT); }
+#line 277 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, POINT_TOK); }
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 273 "program_lexer.l"
+#line 278 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, POINTSIZE); }
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 274 "program_lexer.l"
+#line 279 "program_lexer.l"
{ return POSITION; }
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 275 "program_lexer.l"
+#line 280 "program_lexer.l"
{ return PRIMARY; }
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 276 "program_lexer.l"
+#line 281 "program_lexer.l"
{ return PROJECTION; }
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 277 "program_lexer.l"
+#line 282 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, RANGE); }
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 278 "program_lexer.l"
+#line 283 "program_lexer.l"
{ return ROW; }
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 279 "program_lexer.l"
+#line 284 "program_lexer.l"
{ return SCENECOLOR; }
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 280 "program_lexer.l"
+#line 285 "program_lexer.l"
{ return SECONDARY; }
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 281 "program_lexer.l"
+#line 286 "program_lexer.l"
{ return SHININESS; }
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 282 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, SIZE); }
+#line 287 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, SIZE_TOK); }
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 283 "program_lexer.l"
+#line 288 "program_lexer.l"
{ return SPECULAR; }
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 284 "program_lexer.l"
+#line 289 "program_lexer.l"
{ return SPOT; }
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 285 "program_lexer.l"
+#line 290 "program_lexer.l"
{ return TEXCOORD; }
YY_BREAK
case 115:
YY_RULE_SETUP
-#line 286 "program_lexer.l"
+#line 291 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, TEXENV); }
YY_BREAK
case 116:
YY_RULE_SETUP
-#line 287 "program_lexer.l"
+#line 292 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN); }
YY_BREAK
case 117:
YY_RULE_SETUP
-#line 288 "program_lexer.l"
+#line 293 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN_Q); }
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 289 "program_lexer.l"
+#line 294 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN_S); }
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 290 "program_lexer.l"
+#line 295 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN_T); }
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 291 "program_lexer.l"
+#line 296 "program_lexer.l"
{ return TEXTURE; }
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 292 "program_lexer.l"
+#line 297 "program_lexer.l"
{ return TRANSPOSE; }
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 293 "program_lexer.l"
+#line 298 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, VTXATTRIB); }
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 294 "program_lexer.l"
+#line 299 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, WEIGHT); }
YY_BREAK
case 124:
YY_RULE_SETUP
-#line 296 "program_lexer.l"
+#line 301 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); }
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 297 "program_lexer.l"
+#line 302 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); }
YY_BREAK
case 126:
YY_RULE_SETUP
-#line 298 "program_lexer.l"
+#line 303 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); }
YY_BREAK
case 127:
YY_RULE_SETUP
-#line 299 "program_lexer.l"
+#line 304 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); }
YY_BREAK
case 128:
YY_RULE_SETUP
-#line 300 "program_lexer.l"
+#line 305 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); }
YY_BREAK
case 129:
YY_RULE_SETUP
-#line 301 "program_lexer.l"
+#line 306 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); }
YY_BREAK
case 130:
YY_RULE_SETUP
-#line 302 "program_lexer.l"
+#line 307 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); }
YY_BREAK
case 131:
YY_RULE_SETUP
-#line 303 "program_lexer.l"
+#line 308 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); }
YY_BREAK
case 132:
YY_RULE_SETUP
-#line 304 "program_lexer.l"
+#line 309 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); }
YY_BREAK
case 133:
YY_RULE_SETUP
-#line 305 "program_lexer.l"
+#line 310 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); }
YY_BREAK
case 134:
YY_RULE_SETUP
-#line 306 "program_lexer.l"
+#line 311 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); }
YY_BREAK
case 135:
YY_RULE_SETUP
-#line 307 "program_lexer.l"
+#line 312 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); }
YY_BREAK
case 136:
YY_RULE_SETUP
-#line 308 "program_lexer.l"
+#line 313 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); }
YY_BREAK
case 137:
YY_RULE_SETUP
-#line 310 "program_lexer.l"
+#line 315 "program_lexer.l"
{ return handle_ident(yyextra, yytext, yylval); }
YY_BREAK
case 138:
YY_RULE_SETUP
-#line 312 "program_lexer.l"
+#line 317 "program_lexer.l"
{ return DOT_DOT; }
YY_BREAK
case 139:
YY_RULE_SETUP
-#line 314 "program_lexer.l"
+#line 319 "program_lexer.l"
{
yylval->integer = strtol(yytext, NULL, 10);
return INTEGER;
@@ -2187,7 +2192,7 @@ YY_RULE_SETUP
YY_BREAK
case 140:
YY_RULE_SETUP
-#line 318 "program_lexer.l"
+#line 323 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2199,7 +2204,7 @@ case 141:
yyg->yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 322 "program_lexer.l"
+#line 327 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2207,7 +2212,7 @@ YY_RULE_SETUP
YY_BREAK
case 142:
YY_RULE_SETUP
-#line 326 "program_lexer.l"
+#line 331 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2215,7 +2220,7 @@ YY_RULE_SETUP
YY_BREAK
case 143:
YY_RULE_SETUP
-#line 330 "program_lexer.l"
+#line 335 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2223,7 +2228,7 @@ YY_RULE_SETUP
YY_BREAK
case 144:
YY_RULE_SETUP
-#line 335 "program_lexer.l"
+#line 340 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_NOOP;
yylval->swiz_mask.mask = WRITEMASK_XYZW;
@@ -2232,7 +2237,7 @@ YY_RULE_SETUP
YY_BREAK
case 145:
YY_RULE_SETUP
-#line 341 "program_lexer.l"
+#line 346 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XY
@@ -2242,7 +2247,7 @@ YY_RULE_SETUP
YY_BREAK
case 146:
YY_RULE_SETUP
-#line 347 "program_lexer.l"
+#line 352 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XZW;
@@ -2251,7 +2256,7 @@ YY_RULE_SETUP
YY_BREAK
case 147:
YY_RULE_SETUP
-#line 352 "program_lexer.l"
+#line 357 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_YZW;
@@ -2260,7 +2265,7 @@ YY_RULE_SETUP
YY_BREAK
case 148:
YY_RULE_SETUP
-#line 358 "program_lexer.l"
+#line 363 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_X
@@ -2270,7 +2275,7 @@ YY_RULE_SETUP
YY_BREAK
case 149:
YY_RULE_SETUP
-#line 364 "program_lexer.l"
+#line 369 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_Y
@@ -2280,7 +2285,7 @@ YY_RULE_SETUP
YY_BREAK
case 150:
YY_RULE_SETUP
-#line 370 "program_lexer.l"
+#line 375 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_ZW;
@@ -2289,7 +2294,7 @@ YY_RULE_SETUP
YY_BREAK
case 151:
YY_RULE_SETUP
-#line 376 "program_lexer.l"
+#line 381 "program_lexer.l"
{
const unsigned s = swiz_from_char(yytext[1]);
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s);
@@ -2299,7 +2304,7 @@ YY_RULE_SETUP
YY_BREAK
case 152:
YY_RULE_SETUP
-#line 383 "program_lexer.l"
+#line 388 "program_lexer.l"
{
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]),
swiz_from_char(yytext[2]),
@@ -2311,7 +2316,7 @@ YY_RULE_SETUP
YY_BREAK
case 153:
YY_RULE_SETUP
-#line 392 "program_lexer.l"
+#line 397 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_NOOP;
yylval->swiz_mask.mask = WRITEMASK_XYZW;
@@ -2320,7 +2325,7 @@ YY_RULE_SETUP
YY_BREAK
case 154:
YY_RULE_SETUP
-#line 398 "program_lexer.l"
+#line 403 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XY
@@ -2330,7 +2335,7 @@ YY_RULE_SETUP
YY_BREAK
case 155:
YY_RULE_SETUP
-#line 404 "program_lexer.l"
+#line 409 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XZW;
@@ -2339,7 +2344,7 @@ YY_RULE_SETUP
YY_BREAK
case 156:
YY_RULE_SETUP
-#line 409 "program_lexer.l"
+#line 414 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_YZW;
@@ -2348,7 +2353,7 @@ YY_RULE_SETUP
YY_BREAK
case 157:
YY_RULE_SETUP
-#line 415 "program_lexer.l"
+#line 420 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_X
@@ -2358,7 +2363,7 @@ YY_RULE_SETUP
YY_BREAK
case 158:
YY_RULE_SETUP
-#line 421 "program_lexer.l"
+#line 426 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_Y
@@ -2368,7 +2373,7 @@ YY_RULE_SETUP
YY_BREAK
case 159:
YY_RULE_SETUP
-#line 427 "program_lexer.l"
+#line 432 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_ZW;
@@ -2377,7 +2382,7 @@ YY_RULE_SETUP
YY_BREAK
case 160:
YY_RULE_SETUP
-#line 433 "program_lexer.l"
+#line 438 "program_lexer.l"
{
const unsigned s = swiz_from_char(yytext[1]);
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s);
@@ -2387,7 +2392,7 @@ YY_RULE_SETUP
YY_BREAK
case 161:
YY_RULE_SETUP
-#line 441 "program_lexer.l"
+#line 446 "program_lexer.l"
{
if (require_ARB_vp) {
return TEXGEN_R;
@@ -2401,7 +2406,7 @@ YY_RULE_SETUP
YY_BREAK
case 162:
YY_RULE_SETUP
-#line 452 "program_lexer.l"
+#line 457 "program_lexer.l"
{
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]),
swiz_from_char(yytext[2]),
@@ -2413,13 +2418,13 @@ YY_RULE_SETUP
YY_BREAK
case 163:
YY_RULE_SETUP
-#line 461 "program_lexer.l"
+#line 466 "program_lexer.l"
{ return DOT; }
YY_BREAK
case 164:
/* rule 164 can match eol */
YY_RULE_SETUP
-#line 463 "program_lexer.l"
+#line 468 "program_lexer.l"
{
yylloc->first_line++;
yylloc->first_column = 1;
@@ -2430,7 +2435,7 @@ YY_RULE_SETUP
YY_BREAK
case 165:
YY_RULE_SETUP
-#line 470 "program_lexer.l"
+#line 475 "program_lexer.l"
/* eat whitespace */ ;
YY_BREAK
case 166:
@@ -2438,20 +2443,20 @@ case 166:
yyg->yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 471 "program_lexer.l"
+#line 476 "program_lexer.l"
/* eat comments */ ;
YY_BREAK
case 167:
YY_RULE_SETUP
-#line 472 "program_lexer.l"
+#line 477 "program_lexer.l"
{ return yytext[0]; }
YY_BREAK
case 168:
YY_RULE_SETUP
-#line 473 "program_lexer.l"
+#line 478 "program_lexer.l"
ECHO;
YY_BREAK
-#line 2455 "lex.yy.c"
+#line 2460 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -3626,7 +3631,7 @@ void yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 473 "program_lexer.l"
+#line 478 "program_lexer.l"
diff --git a/src/mesa/shader/prog_execute.c b/src/mesa/shader/prog_execute.c
index f4beb9a78b6..c8a762f8ff7 100644
--- a/src/mesa/shader/prog_execute.c
+++ b/src/mesa/shader/prog_execute.c
@@ -922,6 +922,11 @@ _mesa_execute_program(GLcontext * ctx,
{
GLfloat a[4];
fetch_vector4(&inst->SrcReg[0], machine, a);
+ if (DEBUG_PROG) {
+ printf("KIL if (%g %g %g %g) <= 0.0\n",
+ a[0], a[1], a[2], a[3]);
+ }
+
if (a[0] < 0.0F || a[1] < 0.0F || a[2] < 0.0F || a[3] < 0.0F) {
return GL_FALSE;
}
diff --git a/src/mesa/shader/program_lexer.l b/src/mesa/shader/program_lexer.l
index a0d1af1e07a..750c6acf42c 100644
--- a/src/mesa/shader/program_lexer.l
+++ b/src/mesa/shader/program_lexer.l
@@ -23,6 +23,7 @@
*/
#include "main/glheader.h"
#include "prog_instruction.h"
+#include "prog_statevars.h"
#include "symbol_table.h"
#include "program_parser.h"
@@ -35,6 +36,10 @@
#define require_rect (yyextra->option.TexRect)
#define require_texarray (yyextra->option.TexArray)
+#ifndef HAVE_UNISTD_H
+#define YY_NO_UNISTD_H
+#endif
+
#define return_token_or_IDENTIFIER(condition, token) \
do { \
if (condition) { \
@@ -269,7 +274,7 @@ result { return RESULT; }
{dot}palette { return PALETTE; }
{dot}params { return PARAMS; }
{dot}plane { return PLANE; }
-{dot}point { return_token_or_DOT(require_ARB_vp, POINT); }
+{dot}point { return_token_or_DOT(require_ARB_vp, POINT_TOK); }
{dot}pointsize { return_token_or_DOT(require_ARB_vp, POINTSIZE); }
{dot}position { return POSITION; }
{dot}primary { return PRIMARY; }
@@ -279,7 +284,7 @@ result { return RESULT; }
{dot}scenecolor { return SCENECOLOR; }
{dot}secondary { return SECONDARY; }
{dot}shininess { return SHININESS; }
-{dot}size { return_token_or_DOT(require_ARB_vp, SIZE); }
+{dot}size { return_token_or_DOT(require_ARB_vp, SIZE_TOK); }
{dot}specular { return SPECULAR; }
{dot}spot { return SPOT; }
{dot}texcoord { return TEXCOORD; }
diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c
index 33195c0b165..c51b4d2f282 100644
--- a/src/mesa/shader/program_parse.tab.c
+++ b/src/mesa/shader/program_parse.tab.c
@@ -261,7 +261,7 @@ static struct asm_instruction *asm_instruction_copy_ctor(
PALETTE = 310,
PARAMS = 311,
PLANE = 312,
- POINT = 313,
+ POINT_TOK = 313,
POINTSIZE = 314,
POSITION = 315,
PRIMARY = 316,
@@ -273,7 +273,7 @@ static struct asm_instruction *asm_instruction_copy_ctor(
SCENECOLOR = 322,
SECONDARY = 323,
SHININESS = 324,
- SIZE = 325,
+ SIZE_TOK = 325,
SPECULAR = 326,
SPOT = 327,
STATE = 328,
@@ -335,7 +335,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;
@@ -607,7 +607,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 282
/* YYNRULES -- Number of states. */
-#define YYNSTATES 473
+#define YYNSTATES 475
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -683,15 +683,15 @@ static const yytype_uint16 yyprhs[] =
485, 487, 489, 491, 493, 495, 500, 502, 504, 506,
508, 510, 512, 515, 517, 519, 525, 527, 530, 532,
534, 540, 543, 544, 551, 555, 556, 558, 560, 562,
- 564, 566, 569, 571, 573, 576, 581, 586, 587, 589,
- 591, 593, 595, 598, 600, 602, 604, 606, 612, 614,
- 618, 624, 630, 632, 636, 642, 644, 646, 648, 650,
- 652, 654, 656, 658, 660, 664, 670, 678, 688, 691,
- 694, 696, 698, 699, 700, 705, 707, 708, 709, 713,
- 717, 719, 725, 728, 731, 734, 737, 741, 744, 748,
- 749, 751, 753, 754, 756, 758, 759, 761, 763, 764,
- 766, 768, 769, 773, 774, 778, 779, 783, 785, 787,
- 789, 794, 796
+ 564, 566, 569, 571, 573, 576, 581, 586, 587, 591,
+ 593, 595, 597, 600, 602, 604, 606, 608, 614, 616,
+ 620, 626, 632, 634, 638, 644, 646, 648, 650, 652,
+ 654, 656, 658, 660, 662, 666, 672, 680, 690, 693,
+ 696, 698, 700, 701, 702, 707, 709, 710, 711, 715,
+ 719, 721, 727, 730, 733, 736, 739, 743, 746, 750,
+ 751, 753, 755, 756, 758, 760, 761, 763, 765, 766,
+ 768, 770, 771, 775, 776, 780, 781, 785, 787, 789,
+ 791, 796, 798
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -755,28 +755,28 @@ static const yytype_int16 yyrhs[] =
-1, 49, 219, 216, -1, -1, 217, -1, 41, -1,
82, -1, 42, -1, 23, -1, 51, 220, -1, 63,
-1, 52, -1, 81, 255, -1, 55, 111, 222, 112,
- -1, 48, 111, 223, 112, -1, -1, 221, -1, 23,
- -1, 23, -1, 23, -1, 30, 64, -1, 229, -1,
- 232, -1, 227, -1, 230, -1, 62, 34, 111, 228,
- 112, -1, 233, -1, 233, 106, 233, -1, 62, 34,
- 111, 233, 112, -1, 62, 46, 111, 231, 112, -1,
- 234, -1, 234, 106, 234, -1, 62, 46, 111, 234,
- 112, -1, 23, -1, 23, -1, 237, -1, 239, -1,
- 238, -1, 239, -1, 240, -1, 24, -1, 23, -1,
- 118, 240, 119, -1, 118, 240, 109, 240, 119, -1,
- 118, 240, 109, 240, 109, 240, 119, -1, 118, 240,
- 109, 240, 109, 240, 109, 240, 119, -1, 241, 24,
- -1, 241, 23, -1, 113, -1, 114, -1, -1, -1,
- 244, 11, 243, 247, -1, 262, -1, -1, -1, 5,
- 246, 247, -1, 247, 109, 99, -1, 99, -1, 244,
- 9, 99, 117, 249, -1, 65, 60, -1, 65, 37,
- -1, 65, 250, -1, 65, 59, -1, 65, 74, 255,
- -1, 65, 30, -1, 29, 251, 252, -1, -1, 39,
- -1, 27, -1, -1, 61, -1, 68, -1, -1, 39,
- -1, 27, -1, -1, 61, -1, 68, -1, -1, 111,
- 258, 112, -1, -1, 111, 259, 112, -1, -1, 111,
- 260, 112, -1, 23, -1, 23, -1, 23, -1, 6,
- 99, 117, 100, -1, 99, -1, 100, -1
+ -1, 48, 111, 223, 112, -1, -1, 111, 221, 112,
+ -1, 23, -1, 23, -1, 23, -1, 30, 64, -1,
+ 229, -1, 232, -1, 227, -1, 230, -1, 62, 34,
+ 111, 228, 112, -1, 233, -1, 233, 106, 233, -1,
+ 62, 34, 111, 233, 112, -1, 62, 46, 111, 231,
+ 112, -1, 234, -1, 234, 106, 234, -1, 62, 46,
+ 111, 234, 112, -1, 23, -1, 23, -1, 237, -1,
+ 239, -1, 238, -1, 239, -1, 240, -1, 24, -1,
+ 23, -1, 118, 240, 119, -1, 118, 240, 109, 240,
+ 119, -1, 118, 240, 109, 240, 109, 240, 119, -1,
+ 118, 240, 109, 240, 109, 240, 109, 240, 119, -1,
+ 241, 24, -1, 241, 23, -1, 113, -1, 114, -1,
+ -1, -1, 244, 11, 243, 247, -1, 262, -1, -1,
+ -1, 5, 246, 247, -1, 247, 109, 99, -1, 99,
+ -1, 244, 9, 99, 117, 249, -1, 65, 60, -1,
+ 65, 37, -1, 65, 250, -1, 65, 59, -1, 65,
+ 74, 255, -1, 65, 30, -1, 29, 251, 252, -1,
+ -1, 39, -1, 27, -1, -1, 61, -1, 68, -1,
+ -1, 39, -1, 27, -1, -1, 61, -1, 68, -1,
+ -1, 111, 258, 112, -1, -1, 111, 259, 112, -1,
+ -1, 111, 260, 112, -1, 23, -1, 23, -1, 23,
+ -1, 6, 99, 117, 100, -1, 99, -1, 100, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -827,9 +827,9 @@ static const char *const yytname[] =
"ENV", "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",
@@ -960,7 +960,7 @@ static const yytype_uint8 yyr2[] =
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, 2, 1, 1, 2, 4, 4, 0, 3, 1,
1, 1, 2, 1, 1, 1, 1, 5, 1, 3,
5, 5, 1, 3, 5, 1, 1, 1, 1, 1,
1, 1, 1, 1, 3, 5, 7, 9, 2, 2,
@@ -1007,23 +1007,23 @@ static const yytype_uint16 yydefact[] =
67, 68, 0, 242, 242, 251, 0, 124, 272, 28,
89, 90, 93, 27, 0, 79, 50, 273, 0, 0,
225, 0, 226, 0, 186, 0, 174, 0, 166, 0,
- 171, 172, 155, 156, 173, 153, 154, 0, 209, 201,
- 208, 0, 204, 197, 199, 198, 194, 196, 279, 0,
- 170, 169, 176, 177, 0, 0, 116, 0, 113, 0,
- 0, 53, 0, 62, 77, 71, 47, 0, 0, 0,
- 242, 49, 0, 34, 0, 242, 220, 224, 0, 0,
- 265, 211, 0, 210, 0, 276, 181, 180, 178, 179,
- 175, 200, 0, 111, 112, 115, 242, 235, 0, 0,
- 70, 242, 58, 57, 59, 242, 0, 0, 0, 129,
- 137, 140, 138, 215, 216, 139, 278, 0, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 30, 29, 185, 160, 162, 159, 0, 157, 158, 0,
- 206, 205, 190, 0, 74, 72, 75, 73, 0, 0,
- 0, 0, 141, 192, 242, 128, 274, 163, 161, 167,
- 168, 242, 236, 242, 0, 0, 0, 0, 191, 130,
- 0, 0, 0, 0, 218, 0, 222, 0, 237, 242,
- 0, 217, 0, 221, 0, 0, 56, 33, 219, 223,
- 0, 0, 193
+ 171, 172, 155, 156, 173, 153, 154, 0, 0, 201,
+ 0, 204, 197, 199, 198, 194, 196, 279, 0, 170,
+ 169, 176, 177, 0, 0, 116, 0, 113, 0, 0,
+ 53, 0, 62, 77, 71, 47, 0, 0, 0, 242,
+ 49, 0, 34, 0, 242, 220, 224, 0, 0, 265,
+ 211, 0, 209, 0, 210, 0, 276, 181, 180, 178,
+ 179, 175, 200, 0, 111, 112, 115, 242, 235, 0,
+ 0, 70, 242, 58, 57, 59, 242, 0, 0, 0,
+ 129, 137, 140, 138, 215, 216, 139, 278, 0, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 30, 29, 185, 160, 162, 159, 0, 157, 158,
+ 0, 206, 208, 205, 190, 0, 74, 72, 75, 73,
+ 0, 0, 0, 0, 141, 192, 242, 128, 274, 163,
+ 161, 167, 168, 242, 236, 242, 0, 0, 0, 0,
+ 191, 130, 0, 0, 0, 0, 218, 0, 222, 0,
+ 237, 242, 0, 217, 0, 221, 0, 0, 56, 33,
+ 219, 223, 0, 0, 193
};
/* YYDEFGOTO[NTERM-NUM]. */
@@ -1031,94 +1031,94 @@ static const yytype_int16 yydefgoto[] =
{
-1, 3, 4, 6, 8, 9, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 298,
- 410, 41, 161, 231, 74, 60, 69, 346, 347, 383,
- 232, 61, 126, 279, 280, 281, 380, 425, 427, 70,
- 345, 111, 296, 115, 103, 160, 75, 227, 76, 228,
- 42, 43, 127, 206, 339, 274, 337, 172, 44, 45,
- 46, 144, 90, 287, 388, 145, 128, 389, 390, 129,
- 186, 315, 187, 417, 438, 188, 251, 189, 439, 190,
- 331, 316, 307, 191, 334, 370, 192, 246, 193, 305,
- 194, 264, 195, 432, 448, 196, 326, 327, 372, 261,
- 319, 320, 364, 362, 197, 130, 392, 393, 453, 131,
- 394, 455, 132, 301, 303, 395, 133, 149, 134, 135,
+ 411, 41, 161, 231, 74, 60, 69, 345, 346, 384,
+ 232, 61, 126, 279, 280, 281, 381, 427, 429, 70,
+ 344, 111, 296, 115, 103, 160, 75, 227, 76, 228,
+ 42, 43, 127, 206, 338, 274, 336, 172, 44, 45,
+ 46, 144, 90, 287, 389, 145, 128, 390, 391, 129,
+ 186, 315, 187, 418, 440, 188, 251, 189, 441, 190,
+ 330, 316, 307, 191, 333, 371, 192, 246, 193, 305,
+ 194, 264, 195, 434, 450, 196, 325, 326, 373, 261,
+ 319, 363, 365, 361, 197, 130, 393, 394, 455, 131,
+ 395, 457, 132, 301, 303, 396, 133, 149, 134, 135,
151, 77, 47, 139, 48, 49, 54, 85, 50, 62,
- 97, 155, 221, 252, 238, 157, 353, 266, 223, 397,
- 329, 51, 12
+ 97, 155, 221, 252, 238, 157, 352, 266, 223, 398,
+ 328, 51, 12
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -387
+#define YYPACT_NINF -401
static const yytype_int16 yypact[] =
{
- 202, -387, -387, 67, -387, -387, 73, -73, -387, 24,
- -387, -387, -4, -387, 78, 84, 127, -387, -18, -18,
- -18, -18, -18, -18, 66, 44, -18, -18, -387, 138,
- -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
- -387, -387, 144, -387, -387, -387, -387, -387, 236, -387,
- -387, -387, -387, -387, 154, 140, 141, 10, 133, -387,
- 145, 136, -387, 150, 151, 155, 156, 157, -387, 158,
- 166, -387, -387, -387, -387, -387, 131, -13, 159, 162,
- -387, -387, 173, -387, -387, 165, 175, 23, 232, 0,
- -387, 125, -387, -387, -387, -387, 167, -387, 116, -387,
- -387, -387, -387, 161, 116, 116, 116, 116, 116, 116,
- -387, -387, -387, -387, -387, -387, -387, -387, 105, 98,
- 92, 19, 168, 30, 116, 131, 169, -387, -387, -387,
- -387, -387, -387, -387, -387, -387, 30, 116, 160, 154,
- 174, -387, -387, -387, 170, -387, -387, -387, -387, -387,
- -387, -387, 210, -387, -387, 134, 258, -387, 176, 149,
- -387, 177, -10, 179, -387, 180, -387, -387, 135, -387,
- -387, 167, -387, 172, 182, 183, 220, 46, 184, 106,
- 185, 146, 123, 7, 186, 167, -387, -387, -387, -387,
- -387, -387, -387, -387, -387, -387, 224, -387, 135, -387,
- 187, -387, -387, 167, 189, 190, -387, 131, -45, -387,
- 1, 193, 194, 226, 165, -387, 188, -387, -387, -387,
- -387, -387, -387, 192, 116, -387, 191, 195, 131, 116,
- 30, -387, 204, 205, 223, 116, -387, -387, -387, -387,
- 287, 289, 290, -387, -387, -387, -387, 291, -387, -387,
- -387, -387, 248, 291, 128, 206, 293, -387, 207, -387,
- 167, 16, -387, -387, -387, 296, 294, 45, 209, -387,
- 299, -387, 301, 299, -387, 215, 116, -387, -387, 214,
- -387, -387, 225, 116, 116, -387, 212, -387, -387, -387,
- -387, -387, -387, -387, 217, -387, -387, 221, 219, 222,
- -387, 227, -387, 228, -387, 229, -387, 231, -387, 237,
- -387, -387, -387, -387, -387, -387, -387, 310, -387, -387,
- -387, 311, -387, -387, -387, -387, -387, -387, -387, 238,
- -387, -387, -387, -387, 164, 312, -387, 239, -387, 241,
- 243, -387, 63, -387, -387, 137, -387, 235, -15, 247,
- 33, -387, 313, -387, 124, 116, -387, -387, 280, 129,
- 146, -387, 245, -387, 246, -387, -387, -387, -387, -387,
- -387, -387, 249, -387, -387, -387, 116, -387, 315, 325,
- -387, 116, -387, -387, -387, 116, 142, 92, 71, -387,
- -387, -387, -387, -387, -387, -387, -387, 250, -387, -387,
- -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
- -387, -387, -387, -387, -387, -387, 327, -387, -387, 40,
- -387, -387, -387, 72, -387, -387, -387, -387, 251, 254,
- 253, 255, -387, 302, 33, -387, -387, -387, -387, -387,
- -387, 116, -387, 116, 223, 287, 289, 256, -387, -387,
- 252, 260, 263, 261, 259, 262, 269, 312, -387, 116,
- 124, -387, 287, -387, 289, 119, -387, -387, -387, -387,
- 312, 264, -387
+ 193, -401, -401, 27, -401, -401, 62, 143, -401, 24,
+ -401, -401, -30, -401, -18, 12, 83, -401, 15, 15,
+ 15, 15, 15, 15, 67, 61, 15, 15, -401, 127,
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+ -401, -401, 144, -401, -401, -401, -401, -401, 204, -401,
+ -401, -401, -401, -401, 155, 136, 138, 34, 140, -401,
+ 147, 108, -401, 150, 156, 157, 158, 160, -401, 162,
+ 159, -401, -401, -401, -401, -401, 102, -13, 163, 164,
+ -401, -401, 165, -401, -401, 166, 170, 10, 235, 0,
+ -401, 141, -401, -401, -401, -401, 167, -401, 131, -401,
+ -401, -401, -401, 168, 131, 131, 131, 131, 131, 131,
+ -401, -401, -401, -401, -401, -401, -401, -401, 104, 97,
+ 114, 38, 169, 30, 131, 102, 171, -401, -401, -401,
+ -401, -401, -401, -401, -401, -401, 30, 131, 172, 155,
+ 175, -401, -401, -401, 173, -401, -401, -401, -401, -401,
+ -401, -401, 223, -401, -401, 123, 253, -401, 177, 149,
+ -401, 178, -10, 181, -401, 182, -401, -401, 134, -401,
+ -401, 167, -401, 183, 184, 185, 213, 99, 186, 154,
+ 187, 146, 153, 7, 188, 167, -401, -401, -401, -401,
+ -401, -401, -401, -401, -401, -401, 215, -401, 134, -401,
+ 190, -401, -401, 167, 191, 192, -401, 102, -48, -401,
+ 1, 195, 196, 214, 166, -401, 189, -401, -401, -401,
+ -401, -401, -401, 180, 131, -401, 194, 197, 102, 131,
+ 30, -401, 203, 205, 201, 131, -401, -401, -401, -401,
+ 285, 288, 289, -401, -401, -401, -401, 291, -401, -401,
+ -401, -401, 248, 291, 33, 206, 207, -401, 208, -401,
+ 167, 14, -401, -401, -401, 293, 292, 92, 209, -401,
+ 299, -401, 301, 299, -401, 216, 131, -401, -401, 217,
+ -401, -401, 221, 131, 131, -401, 212, -401, -401, -401,
+ -401, -401, -401, -401, 218, -401, -401, 220, 224, 225,
+ -401, 226, -401, 227, -401, 228, -401, 230, -401, 231,
+ -401, -401, -401, -401, -401, -401, -401, 304, 309, -401,
+ 312, -401, -401, -401, -401, -401, -401, -401, 232, -401,
+ -401, -401, -401, 161, 313, -401, 233, -401, 234, 238,
+ -401, 13, -401, -401, 137, -401, 242, -15, 243, 3,
+ -401, 314, -401, 133, 131, -401, -401, 296, 94, 146,
+ -401, 245, -401, 246, -401, 247, -401, -401, -401, -401,
+ -401, -401, -401, 249, -401, -401, -401, 131, -401, 332,
+ 337, -401, 131, -401, -401, -401, 131, 142, 114, 28,
+ -401, -401, -401, -401, -401, -401, -401, -401, 250, -401,
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+ -401, -401, -401, -401, -401, -401, -401, 331, -401, -401,
+ 68, -401, -401, -401, -401, 43, -401, -401, -401, -401,
+ 255, 256, 257, 258, -401, 300, 3, -401, -401, -401,
+ -401, -401, -401, 131, -401, 131, 201, 285, 288, 259,
+ -401, -401, 252, 264, 265, 263, 261, 266, 270, 313,
+ -401, 131, 133, -401, 285, -401, 288, 80, -401, -401,
+ -401, -401, 313, 267, -401
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
- -387, -387, -387, -387, -387, -387, -387, -387, -387, -67,
- -82, -387, -100, 152, -86, 201, -387, -387, -365, -387,
- -11, -387, -387, -387, -387, -387, -387, -387, -387, 171,
- -387, -387, -387, -118, -387, -387, 230, -387, -387, -387,
- -387, -387, 292, -387, -387, -387, 107, -387, -387, -387,
- -387, -387, -387, -387, -387, -387, -387, -51, -387, -88,
- -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
- -387, -304, 132, -387, -387, -387, -387, -387, -387, -387,
- -387, -387, -387, -387, -387, -3, -387, -387, -361, -387,
- -387, -387, -387, -387, -387, 297, -387, -387, -387, -387,
- -387, -387, -387, -386, -376, 298, -387, -387, -139, -87,
- -120, -89, -387, -387, -387, -387, -387, 257, -387, 178,
- -387, -387, -387, -176, 196, -153, -387, -387, -387, -387,
- -387, -387, -6
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -69,
+ -82, -401, -100, 151, -86, 210, -401, -401, -366, -401,
+ -54, -401, -401, -401, -401, -401, -401, -401, -401, 174,
+ -401, -401, -401, -118, -401, -401, 229, -401, -401, -401,
+ -401, -401, 295, -401, -401, -401, 110, -401, -401, -401,
+ -401, -401, -401, -401, -401, -401, -401, -51, -401, -88,
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+ -401, -311, 139, -401, -401, -401, -401, -401, -401, -401,
+ -401, -401, -401, -401, -401, -2, -401, -401, -400, -401,
+ -401, -401, -401, -401, -401, 298, -401, -401, -401, -401,
+ -401, -401, -401, -390, -295, 302, -401, -401, -136, -87,
+ -120, -89, -401, -401, -401, -401, -401, 251, -401, 176,
+ -401, -401, -401, -176, 198, -153, -401, -401, -401, -401,
+ -401, -401, -6
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -1128,90 +1128,90 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -230
static const yytype_int16 yytable[] =
{
- 152, 146, 150, 52, 208, 254, 164, 209, 382, 167,
- 116, 117, 158, 116, 117, 162, 428, 162, 239, 163,
- 162, 165, 166, 233, 278, 118, 10, 11, 118, 13,
+ 152, 146, 150, 52, 208, 254, 164, 209, 383, 167,
+ 116, 117, 158, 116, 117, 162, 430, 162, 239, 163,
+ 162, 165, 166, 125, 278, 118, 233, 5, 118, 13,
14, 15, 267, 262, 16, 152, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 58, 198, 119,
- 271, 212, 119, 116, 117, 418, 199, 323, 324, 454,
- 120, 118, 119, 120, 276, 310, 125, 5, 118, 200,
- 456, 311, 201, 120, 277, 244, 468, 263, 451, 202,
- 332, 7, 59, 121, 10, 11, 121, 122, 469, 275,
- 122, 233, 119, 203, 466, 386, 465, 123, 325, 333,
- 230, 68, 245, 120, 53, 124, 387, 322, 124, 471,
- 292, 314, 207, 72, 73, 440, 204, 205, 124, 121,
- 175, 88, 176, 10, 11, 211, 121, 89, 177, 293,
- 122, 248, 173, 249, 168, 178, 179, 180, 289, 181,
- 162, 182, 169, 71, 174, 250, 72, 73, 124, 299,
- 183, 124, 153, 310, 310, 413, 342, 72, 73, 311,
- 311, 312, 91, 92, 154, 170, 68, 184, 185, 414,
- 93, 255, 376, 249, 256, 257, 430, 55, 258, 171,
- 434, 441, 377, 56, 419, 250, 259, 152, 431, 415,
- 435, 442, 94, 95, 348, 219, 236, 313, 349, 314,
- 314, 416, 220, 237, 260, 1, 2, 96, 398, 399,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 63, 64, 65, 66, 67, 470, 57, 78, 79, 72,
- 73, 422, 112, 217, 218, 113, 114, 99, 100, 101,
- 102, 366, 367, 368, 369, 82, 80, 83, 71, 225,
- 378, 379, 81, 84, 98, 143, 423, 86, 87, 104,
- 105, 152, 391, 150, 106, 107, 108, 109, 136, 411,
- 110, 137, 138, 215, 140, 141, 159, 213, 156, -66,
- 210, 222, 216, 240, 243, 224, 229, 152, 234, 235,
- 268, 58, 348, 241, 242, 247, 253, 265, 270, 429,
- 272, 273, 283, 284, 288, 286, 297, 290, 295, -229,
- 300, 291, 302, 304, 306, 308, 318, 317, 321, 328,
- 335, 450, 336, 330, 338, 341, 343, 351, 354, 344,
- 350, 355, 352, 361, 363, 371, 396, 412, 424, 356,
- 357, 358, 384, 359, 381, 152, 391, 150, 426, 360,
- 365, 373, 152, 374, 348, 375, 385, 420, 421, 437,
- 443, 422, 436, 444, 445, 462, 446, 457, 447, 459,
- 348, 458, 460, 461, 463, 464, 472, 452, 467, 142,
- 340, 282, 294, 449, 433, 309, 147, 148, 0, 226,
- 0, 285, 0, 0, 269, 0, 214
+ 21, 22, 23, 24, 25, 26, 27, 419, 118, 119,
+ 271, 212, 119, 116, 117, 322, 323, 456, 310, 467,
+ 120, 276, 119, 120, 311, 387, 312, 198, 118, 207,
+ 7, 277, 473, 120, 470, 199, 388, 263, 53, 453,
+ 58, 55, 211, 121, 10, 11, 121, 122, 200, 275,
+ 122, 201, 119, 310, 233, 468, 324, 123, 202, 311,
+ 230, 68, 313, 120, 314, 124, 121, 321, 124, 442,
+ 292, 56, 203, 72, 73, 59, 72, 73, 124, 310,
+ 414, 124, 377, 10, 11, 311, 121, 331, 244, 293,
+ 122, 173, 378, 168, 415, 204, 205, 436, 289, 314,
+ 162, 169, 175, 174, 176, 88, 332, 437, 124, 299,
+ 177, 89, 443, 458, 416, 245, 341, 178, 179, 180,
+ 71, 181, 444, 182, 170, 314, 417, 68, 153, 91,
+ 92, 471, 183, 249, 72, 73, 432, 93, 171, 248,
+ 154, 249, 57, 420, 219, 250, 472, 152, 433, 184,
+ 185, 220, 424, 250, 347, 236, 1, 2, 348, 94,
+ 95, 255, 237, 112, 256, 257, 113, 114, 258, 99,
+ 100, 101, 102, 82, 96, 83, 259, 399, 400, 401,
+ 402, 403, 404, 405, 406, 407, 408, 409, 410, 63,
+ 64, 65, 66, 67, 260, 80, 78, 79, 367, 368,
+ 369, 370, 10, 11, 72, 73, 217, 218, 71, 225,
+ 379, 380, 81, 86, 84, 87, 98, 425, 143, 104,
+ 152, 392, 150, 110, 138, 105, 106, 107, 412, 108,
+ 141, 109, 136, 137, 215, 140, 222, 243, 156, 58,
+ -66, 268, 210, 159, 297, 216, 224, 229, 152, 213,
+ 234, 235, 288, 347, 240, 241, 242, 247, 253, 265,
+ 431, 270, 272, 273, 283, 284, 286, 295, 300, -229,
+ 290, 302, 304, 291, 306, 308, 327, 317, 318, 320,
+ 334, 329, 335, 452, 337, 343, 340, 360, 350, 342,
+ 349, 351, 362, 353, 354, 364, 372, 397, 355, 356,
+ 357, 385, 358, 359, 366, 374, 375, 152, 392, 150,
+ 376, 382, 386, 413, 152, 426, 347, 421, 422, 423,
+ 428, 424, 438, 439, 445, 446, 449, 464, 447, 448,
+ 459, 460, 347, 461, 462, 463, 466, 454, 465, 474,
+ 469, 294, 142, 339, 282, 451, 435, 147, 226, 285,
+ 214, 148, 309, 0, 0, 0, 269
};
static const yytype_int16 yycheck[] =
{
89, 89, 89, 9, 124, 181, 106, 125, 23, 109,
- 23, 24, 98, 23, 24, 104, 381, 106, 171, 105,
- 109, 107, 108, 162, 23, 38, 99, 100, 38, 5,
+ 23, 24, 98, 23, 24, 104, 382, 106, 171, 105,
+ 109, 107, 108, 77, 23, 38, 162, 0, 38, 5,
6, 7, 185, 26, 10, 124, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 65, 29, 62,
- 203, 137, 62, 23, 24, 359, 37, 41, 42, 445,
- 73, 38, 62, 73, 109, 25, 77, 0, 38, 50,
- 446, 31, 53, 73, 119, 29, 462, 70, 443, 60,
- 35, 8, 100, 96, 99, 100, 96, 100, 464, 207,
- 100, 230, 62, 74, 459, 62, 457, 110, 82, 54,
- 110, 100, 56, 73, 108, 118, 73, 260, 118, 470,
- 228, 71, 123, 113, 114, 419, 97, 98, 118, 96,
- 28, 111, 30, 99, 100, 136, 96, 117, 36, 229,
- 100, 25, 34, 27, 29, 43, 44, 45, 224, 47,
- 229, 49, 37, 99, 46, 39, 113, 114, 118, 235,
- 58, 118, 27, 25, 25, 26, 276, 113, 114, 31,
- 31, 33, 29, 30, 39, 60, 100, 75, 76, 40,
- 37, 48, 109, 27, 51, 52, 34, 99, 55, 74,
- 109, 109, 119, 99, 360, 39, 63, 276, 46, 60,
- 119, 119, 59, 60, 283, 61, 61, 69, 284, 71,
- 71, 72, 68, 68, 81, 3, 4, 74, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 19, 20, 21, 22, 23, 106, 99, 26, 27, 113,
- 114, 112, 101, 23, 24, 104, 105, 101, 102, 103,
- 104, 77, 78, 79, 80, 9, 108, 11, 99, 100,
- 113, 114, 108, 99, 109, 23, 376, 117, 117, 109,
- 109, 350, 350, 350, 109, 109, 109, 109, 109, 355,
- 104, 109, 99, 99, 109, 100, 115, 117, 111, 111,
- 111, 23, 112, 111, 64, 109, 109, 376, 109, 109,
- 66, 65, 381, 111, 111, 111, 111, 111, 111, 385,
- 111, 111, 109, 109, 112, 117, 83, 116, 104, 104,
- 23, 116, 23, 23, 23, 67, 23, 111, 111, 23,
- 111, 441, 23, 29, 23, 110, 112, 110, 109, 104,
- 118, 109, 111, 23, 23, 23, 23, 57, 23, 112,
- 112, 112, 348, 112, 109, 434, 434, 434, 23, 112,
- 112, 112, 441, 112, 443, 112, 109, 112, 112, 32,
- 109, 112, 112, 109, 111, 106, 111, 111, 66, 109,
- 459, 119, 109, 112, 112, 106, 112, 444, 460, 87,
- 273, 210, 230, 434, 387, 253, 89, 89, -1, 159,
- -1, 213, -1, -1, 198, -1, 139
+ 16, 17, 18, 19, 20, 21, 22, 358, 38, 62,
+ 203, 137, 62, 23, 24, 41, 42, 447, 25, 459,
+ 73, 109, 62, 73, 31, 62, 33, 29, 38, 123,
+ 8, 119, 472, 73, 464, 37, 73, 70, 108, 445,
+ 65, 99, 136, 96, 99, 100, 96, 100, 50, 207,
+ 100, 53, 62, 25, 230, 461, 82, 110, 60, 31,
+ 110, 100, 69, 73, 71, 118, 96, 260, 118, 420,
+ 228, 99, 74, 113, 114, 100, 113, 114, 118, 25,
+ 26, 118, 109, 99, 100, 31, 96, 35, 29, 229,
+ 100, 34, 119, 29, 40, 97, 98, 109, 224, 71,
+ 229, 37, 28, 46, 30, 111, 54, 119, 118, 235,
+ 36, 117, 109, 448, 60, 56, 276, 43, 44, 45,
+ 99, 47, 119, 49, 60, 71, 72, 100, 27, 29,
+ 30, 466, 58, 27, 113, 114, 34, 37, 74, 25,
+ 39, 27, 99, 359, 61, 39, 106, 276, 46, 75,
+ 76, 68, 112, 39, 283, 61, 3, 4, 284, 59,
+ 60, 48, 68, 101, 51, 52, 104, 105, 55, 101,
+ 102, 103, 104, 9, 74, 11, 63, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 19,
+ 20, 21, 22, 23, 81, 108, 26, 27, 77, 78,
+ 79, 80, 99, 100, 113, 114, 23, 24, 99, 100,
+ 113, 114, 108, 117, 99, 117, 109, 377, 23, 109,
+ 349, 349, 349, 104, 99, 109, 109, 109, 354, 109,
+ 100, 109, 109, 109, 99, 109, 23, 64, 111, 65,
+ 111, 66, 111, 115, 83, 112, 109, 109, 377, 117,
+ 109, 109, 112, 382, 111, 111, 111, 111, 111, 111,
+ 386, 111, 111, 111, 109, 109, 117, 104, 23, 104,
+ 116, 23, 23, 116, 23, 67, 23, 111, 111, 111,
+ 111, 29, 23, 443, 23, 104, 110, 23, 110, 112,
+ 118, 111, 23, 109, 109, 23, 23, 23, 112, 112,
+ 112, 347, 112, 112, 112, 112, 112, 436, 436, 436,
+ 112, 109, 109, 57, 443, 23, 445, 112, 112, 112,
+ 23, 112, 112, 32, 109, 109, 66, 106, 111, 111,
+ 111, 119, 461, 109, 109, 112, 106, 446, 112, 112,
+ 462, 230, 87, 273, 210, 436, 388, 89, 159, 213,
+ 139, 89, 253, -1, -1, -1, 198
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1249,23 +1249,23 @@ static const yytype_uint16 yystos[] =
154, 155, 159, 109, 109, 249, 117, 183, 112, 144,
116, 116, 163, 142, 143, 104, 162, 83, 139, 144,
23, 233, 23, 234, 23, 209, 23, 202, 67, 202,
- 25, 31, 33, 69, 71, 191, 201, 111, 23, 220,
- 221, 111, 255, 41, 42, 82, 216, 217, 23, 260,
- 29, 200, 35, 54, 204, 111, 23, 176, 23, 174,
- 176, 110, 240, 112, 104, 160, 147, 148, 241, 144,
- 118, 110, 111, 256, 109, 109, 112, 112, 112, 112,
- 112, 23, 223, 23, 222, 112, 77, 78, 79, 80,
- 205, 23, 218, 112, 112, 112, 109, 119, 113, 114,
- 156, 109, 23, 149, 262, 109, 62, 73, 184, 187,
- 188, 189, 226, 227, 230, 235, 23, 259, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 140, 144, 57, 26, 40, 60, 72, 193, 201, 253,
- 112, 112, 112, 240, 23, 157, 23, 158, 148, 144,
- 34, 46, 213, 215, 109, 119, 112, 32, 194, 198,
- 201, 109, 119, 109, 109, 111, 111, 66, 214, 187,
- 240, 148, 139, 228, 233, 231, 234, 111, 119, 109,
- 109, 112, 106, 112, 106, 218, 148, 140, 233, 234,
- 106, 218, 112
+ 25, 31, 33, 69, 71, 191, 201, 111, 111, 220,
+ 111, 255, 41, 42, 82, 216, 217, 23, 260, 29,
+ 200, 35, 54, 204, 111, 23, 176, 23, 174, 176,
+ 110, 240, 112, 104, 160, 147, 148, 241, 144, 118,
+ 110, 111, 256, 109, 109, 112, 112, 112, 112, 112,
+ 23, 223, 23, 221, 23, 222, 112, 77, 78, 79,
+ 80, 205, 23, 218, 112, 112, 112, 109, 119, 113,
+ 114, 156, 109, 23, 149, 262, 109, 62, 73, 184,
+ 187, 188, 189, 226, 227, 230, 235, 23, 259, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 140, 144, 57, 26, 40, 60, 72, 193, 201,
+ 253, 112, 112, 112, 112, 240, 23, 157, 23, 158,
+ 148, 144, 34, 46, 213, 215, 109, 119, 112, 32,
+ 194, 198, 201, 109, 119, 109, 109, 111, 111, 66,
+ 214, 187, 240, 148, 139, 228, 233, 231, 234, 111,
+ 119, 109, 109, 112, 106, 112, 106, 218, 148, 140,
+ 233, 234, 106, 218, 112
};
#define yyerrok (yyerrstatus = 0)
@@ -4180,7 +4180,7 @@ yyreduce:
/* Line 1455 of yacc.c */
#line 1689 "program_parse.y"
{
- (yyval.integer) = (yyvsp[(1) - (1)].integer);
+ (yyval.integer) = (yyvsp[(2) - (3)].integer);
;}
break;
@@ -5316,8 +5316,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() */
diff --git a/src/mesa/shader/program_parse.tab.h b/src/mesa/shader/program_parse.tab.h
index c6ed6c777ea..860b6f886e9 100644
--- a/src/mesa/shader/program_parse.tab.h
+++ b/src/mesa/shader/program_parse.tab.h
@@ -94,7 +94,7 @@
PALETTE = 310,
PARAMS = 311,
PLANE = 312,
- POINT = 313,
+ POINT_TOK = 313,
POINTSIZE = 314,
POSITION = 315,
PRIMARY = 316,
@@ -106,7 +106,7 @@
SCENECOLOR = 322,
SECONDARY = 323,
SHININESS = 324,
- SIZE = 325,
+ SIZE_TOK = 325,
SPECULAR = 326,
SPOT = 327,
STATE = 328,
@@ -168,7 +168,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;
diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y
index 3021ae83f36..f70ea92cb05 100644
--- a/src/mesa/shader/program_parse.y
+++ b/src/mesa/shader/program_parse.y
@@ -126,7 +126,7 @@ static struct asm_instruction *asm_instruction_copy_ctor(
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;
@@ -168,9 +168,9 @@ static struct asm_instruction *asm_instruction_copy_ctor(
%token MATERIAL MAT_PROGRAM MATRIX MATRIXINDEX MODELVIEW MVP
%token NORMAL
%token OBJECT
-%token PALETTE PARAMS PLANE POINT POINTSIZE POSITION PRIMARY PROGRAM PROJECTION
+%token PALETTE PARAMS PLANE POINT_TOK POINTSIZE POSITION PRIMARY PROGRAM PROJECTION
%token RANGE RESULT ROW
-%token SCENECOLOR SECONDARY SHININESS SIZE SPECULAR SPOT STATE
+%token SCENECOLOR SECONDARY SHININESS SIZE_TOK SPECULAR SPOT STATE
%token TEXCOORD TEXENV TEXGEN TEXGEN_Q TEXGEN_R TEXGEN_S TEXGEN_T TEXTURE TRANSPOSE
%token TEXTURE_UNIT TEX_1D TEX_2D TEX_3D TEX_CUBE TEX_RECT
%token TEX_SHADOW1D TEX_SHADOW2D TEX_SHADOWRECT
@@ -1546,14 +1546,14 @@ stateClipPlaneNum: INTEGER
}
;
-statePointItem: POINT statePointProperty
+statePointItem: POINT_TOK statePointProperty
{
memset($$, 0, sizeof($$));
$$[0] = $2;
}
;
-statePointProperty: SIZE
+statePointProperty: SIZE_TOK
{
$$ = STATE_POINT_SIZE;
}
@@ -1685,9 +1685,9 @@ stateOptModMatNum:
{
$$ = 0;
}
- | stateModMatNum
+ | '[' stateModMatNum ']'
{
- $$ = $1;
+ $$ = $2;
}
;
stateModMatNum: INTEGER
@@ -2355,8 +2355,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() */