summaryrefslogtreecommitdiff
path: root/src/mesa/shader
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2009-09-10 14:35:33 -0700
committerIan Romanick <ian.d.romanick@intel.com>2009-09-10 14:35:33 -0700
commit0e7953366f2a8ab1b0e885d94f6635c7640b3cc7 (patch)
treeac6e912342a7a6b3d8c1af31f1918d99fa00221c /src/mesa/shader
parentd0adebb8d5ef680590b0f281a20516318c0b8b62 (diff)
ARB prog parser: Differentiate between used and unused names in the lexer
The lexer will return IDENTIFIER only when the name does not have an associated symbol. Otherwise USED_IDENTIFIER is returned.
Diffstat (limited to 'src/mesa/shader')
-rw-r--r--src/mesa/shader/lex.yy.c366
-rw-r--r--src/mesa/shader/program_lexer.l20
-rw-r--r--src/mesa/shader/program_parse.tab.c1259
-rw-r--r--src/mesa/shader/program_parse.tab.h17
-rw-r--r--src/mesa/shader/program_parse.y23
5 files changed, 851 insertions, 834 deletions
diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c
index d71a13c3bd..959eb854d6 100644
--- a/src/mesa/shader/lex.yy.c
+++ b/src/mesa/shader/lex.yy.c
@@ -1052,8 +1052,7 @@ static yyconst flex_int16_t yy_chk[1352] =
if (condition) { \
return token; \
} else { \
- yylval->string = strdup(yytext); \
- return IDENTIFIER; \
+ return handle_ident(yyextra, yytext, yylval); \
} \
} while (0)
@@ -1077,8 +1076,7 @@ static yyconst flex_int16_t yy_chk[1352] =
yylval->temp_inst.Opcode = OPCODE_ ## opcode; \
return token; \
} else { \
- yylval->string = strdup(yytext); \
- return IDENTIFIER; \
+ return handle_ident(yyextra, yytext, yylval); \
} \
} while (0)
@@ -1127,6 +1125,15 @@ swiz_from_char(char c)
return 0;
}
+static int
+handle_ident(struct asm_parser_state *state, const char *text, YYSTYPE *lval)
+{
+ lval->string = strdup(text);
+
+ return (_mesa_symbol_table_find_symbol(state->st, 0, text) == NULL)
+ ? IDENTIFIER : USED_IDENTIFIER;
+}
+
#define YY_USER_ACTION \
do { \
yylloc->first_column = yylloc->last_column; \
@@ -1140,7 +1147,7 @@ swiz_from_char(char c)
} while(0);
#define YY_EXTRA_TYPE struct asm_parser_state *
-#line 1144 "lex.yy.c"
+#line 1151 "lex.yy.c"
#define INITIAL 0
@@ -1386,10 +1393,10 @@ YY_DECL
register int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-#line 143 "program_lexer.l"
+#line 150 "program_lexer.l"
-#line 1393 "lex.yy.c"
+#line 1400 "lex.yy.c"
yylval = yylval_param;
@@ -1478,17 +1485,17 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 145 "program_lexer.l"
+#line 152 "program_lexer.l"
{ return ARBvp_10; }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 146 "program_lexer.l"
+#line 153 "program_lexer.l"
{ return ARBfp_10; }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 147 "program_lexer.l"
+#line 154 "program_lexer.l"
{
yylval->integer = at_address;
return_token_or_IDENTIFIER(require_ARB_vp, ADDRESS);
@@ -1496,685 +1503,682 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 151 "program_lexer.l"
+#line 158 "program_lexer.l"
{ return ALIAS; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 152 "program_lexer.l"
+#line 159 "program_lexer.l"
{ return ATTRIB; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 153 "program_lexer.l"
+#line 160 "program_lexer.l"
{ return END; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 154 "program_lexer.l"
+#line 161 "program_lexer.l"
{ return OPTION; }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 155 "program_lexer.l"
+#line 162 "program_lexer.l"
{ return OUTPUT; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 156 "program_lexer.l"
+#line 163 "program_lexer.l"
{ return PARAM; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 157 "program_lexer.l"
+#line 164 "program_lexer.l"
{ yylval->integer = at_temp; return TEMP; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 159 "program_lexer.l"
+#line 166 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, ABS, 3); }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 160 "program_lexer.l"
+#line 167 "program_lexer.l"
{ return_opcode( 1, BIN_OP, ADD, 3); }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 161 "program_lexer.l"
+#line 168 "program_lexer.l"
{ return_opcode(require_ARB_vp, ARL, ARL, 3); }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 163 "program_lexer.l"
+#line 170 "program_lexer.l"
{ return_opcode(require_ARB_fp, TRI_OP, CMP, 3); }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 164 "program_lexer.l"
+#line 171 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, COS, 3); }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 166 "program_lexer.l"
+#line 173 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, DDX, 3); }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 167 "program_lexer.l"
+#line 174 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, DDY, 3); }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 168 "program_lexer.l"
+#line 175 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DP3, 3); }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 169 "program_lexer.l"
+#line 176 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DP4, 3); }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 170 "program_lexer.l"
+#line 177 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DPH, 3); }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 171 "program_lexer.l"
+#line 178 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DST, 3); }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 173 "program_lexer.l"
+#line 180 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, EX2, 3); }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 174 "program_lexer.l"
+#line 181 "program_lexer.l"
{ return_opcode(require_ARB_vp, SCALAR_OP, EXP, 3); }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 176 "program_lexer.l"
+#line 183 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, FLR, 3); }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 177 "program_lexer.l"
+#line 184 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, FRC, 3); }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 179 "program_lexer.l"
+#line 186 "program_lexer.l"
{ return_opcode(require_ARB_fp, KIL, KIL, 3); }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 181 "program_lexer.l"
+#line 188 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, LIT, 3); }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 182 "program_lexer.l"
+#line 189 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, LG2, 3); }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 183 "program_lexer.l"
+#line 190 "program_lexer.l"
{ return_opcode(require_ARB_vp, SCALAR_OP, LOG, 3); }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 184 "program_lexer.l"
+#line 191 "program_lexer.l"
{ return_opcode(require_ARB_fp, TRI_OP, LRP, 3); }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 186 "program_lexer.l"
+#line 193 "program_lexer.l"
{ return_opcode( 1, TRI_OP, MAD, 3); }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 187 "program_lexer.l"
+#line 194 "program_lexer.l"
{ return_opcode( 1, BIN_OP, MAX, 3); }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 188 "program_lexer.l"
+#line 195 "program_lexer.l"
{ return_opcode( 1, BIN_OP, MIN, 3); }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 189 "program_lexer.l"
+#line 196 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, MOV, 3); }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 190 "program_lexer.l"
+#line 197 "program_lexer.l"
{ return_opcode( 1, BIN_OP, MUL, 3); }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 192 "program_lexer.l"
+#line 199 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, PK2H, 4); }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 193 "program_lexer.l"
+#line 200 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, PK2US, 5); }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 194 "program_lexer.l"
+#line 201 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, PK4B, 4); }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 195 "program_lexer.l"
+#line 202 "program_lexer.l"
{ return_opcode(require_NV_fp, VECTOR_OP, PK4UB, 5); }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 196 "program_lexer.l"
+#line 203 "program_lexer.l"
{ return_opcode( 1, BINSC_OP, POW, 3); }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 198 "program_lexer.l"
+#line 205 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, RCP, 3); }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 199 "program_lexer.l"
+#line 206 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, RFL, 3); }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 200 "program_lexer.l"
+#line 207 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, RSQ, 3); }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 202 "program_lexer.l"
+#line 209 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, 3); }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 203 "program_lexer.l"
+#line 210 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SEQ, 3); }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 204 "program_lexer.l"
+#line 211 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SFL, 3); }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 205 "program_lexer.l"
+#line 212 "program_lexer.l"
{ return_opcode( 1, BIN_OP, SGE, 3); }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 206 "program_lexer.l"
+#line 213 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SGT, 3); }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 207 "program_lexer.l"
+#line 214 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, 3); }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 208 "program_lexer.l"
+#line 215 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SLE, 3); }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 209 "program_lexer.l"
+#line 216 "program_lexer.l"
{ return_opcode( 1, BIN_OP, SLT, 3); }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 210 "program_lexer.l"
+#line 217 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, SNE, 3); }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 211 "program_lexer.l"
+#line 218 "program_lexer.l"
{ return_opcode(require_NV_fp, BIN_OP, STR, 3); }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 212 "program_lexer.l"
+#line 219 "program_lexer.l"
{ return_opcode( 1, BIN_OP, SUB, 3); }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 213 "program_lexer.l"
+#line 220 "program_lexer.l"
{ return_opcode( 1, SWZ, SWZ, 3); }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 215 "program_lexer.l"
+#line 222 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, 3); }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 216 "program_lexer.l"
+#line 223 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, 3); }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 217 "program_lexer.l"
+#line 224 "program_lexer.l"
{ return_opcode(require_NV_fp, TXD_OP, TXD, 3); }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 218 "program_lexer.l"
+#line 225 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, 3); }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 220 "program_lexer.l"
+#line 227 "program_lexer.l"
{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, 4); }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 221 "program_lexer.l"
+#line 228 "program_lexer.l"
{ return_opcode(require_NV_fp, SCALAR_OP, UP2US, 5); }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 223 "program_lexer.l"
+#line 230 "program_lexer.l"
{ return_opcode(require_NV_fp, TRI_OP, X2D, 3); }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 224 "program_lexer.l"
+#line 231 "program_lexer.l"
{ return_opcode( 1, BIN_OP, XPD, 3); }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 226 "program_lexer.l"
+#line 233 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 227 "program_lexer.l"
+#line 234 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 228 "program_lexer.l"
+#line 235 "program_lexer.l"
{ return PROGRAM; }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 229 "program_lexer.l"
+#line 236 "program_lexer.l"
{ return STATE; }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 230 "program_lexer.l"
+#line 237 "program_lexer.l"
{ return RESULT; }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 232 "program_lexer.l"
+#line 239 "program_lexer.l"
{ return AMBIENT; }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 233 "program_lexer.l"
+#line 240 "program_lexer.l"
{ return ATTENUATION; }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 234 "program_lexer.l"
+#line 241 "program_lexer.l"
{ return BACK; }
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 235 "program_lexer.l"
+#line 242 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, CLIP); }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 236 "program_lexer.l"
+#line 243 "program_lexer.l"
{ return COLOR; }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 237 "program_lexer.l"
+#line 244 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, DEPTH); }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 238 "program_lexer.l"
+#line 245 "program_lexer.l"
{ return DIFFUSE; }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 239 "program_lexer.l"
+#line 246 "program_lexer.l"
{ return DIRECTION; }
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 240 "program_lexer.l"
+#line 247 "program_lexer.l"
{ return EMISSION; }
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 241 "program_lexer.l"
+#line 248 "program_lexer.l"
{ return ENV; }
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 242 "program_lexer.l"
+#line 249 "program_lexer.l"
{ return EYE; }
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 243 "program_lexer.l"
+#line 250 "program_lexer.l"
{ return FOGCOORD; }
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 244 "program_lexer.l"
+#line 251 "program_lexer.l"
{ return FOG; }
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 245 "program_lexer.l"
+#line 252 "program_lexer.l"
{ return FRONT; }
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 246 "program_lexer.l"
+#line 253 "program_lexer.l"
{ return HALF; }
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 247 "program_lexer.l"
+#line 254 "program_lexer.l"
{ return INVERSE; }
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 248 "program_lexer.l"
+#line 255 "program_lexer.l"
{ return INVTRANS; }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 249 "program_lexer.l"
+#line 256 "program_lexer.l"
{ return LIGHT; }
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 250 "program_lexer.l"
+#line 257 "program_lexer.l"
{ return LIGHTMODEL; }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 251 "program_lexer.l"
+#line 258 "program_lexer.l"
{ return LIGHTPROD; }
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 252 "program_lexer.l"
+#line 259 "program_lexer.l"
{ return LOCAL; }
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 253 "program_lexer.l"
+#line 260 "program_lexer.l"
{ return MATERIAL; }
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 254 "program_lexer.l"
+#line 261 "program_lexer.l"
{ return MAT_PROGRAM; }
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 255 "program_lexer.l"
+#line 262 "program_lexer.l"
{ return MATRIX; }
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 256 "program_lexer.l"
+#line 263 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); }
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 257 "program_lexer.l"
+#line 264 "program_lexer.l"
{ return MODELVIEW; }
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 258 "program_lexer.l"
+#line 265 "program_lexer.l"
{ return MVP; }
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 259 "program_lexer.l"
+#line 266 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, NORMAL); }
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 260 "program_lexer.l"
+#line 267 "program_lexer.l"
{ return OBJECT; }
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 261 "program_lexer.l"
+#line 268 "program_lexer.l"
{ return PALETTE; }
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 262 "program_lexer.l"
+#line 269 "program_lexer.l"
{ return PARAMS; }
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 263 "program_lexer.l"
+#line 270 "program_lexer.l"
{ return PLANE; }
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 264 "program_lexer.l"
+#line 271 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, POINT); }
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 265 "program_lexer.l"
+#line 272 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, POINTSIZE); }
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 266 "program_lexer.l"
+#line 273 "program_lexer.l"
{ return POSITION; }
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 267 "program_lexer.l"
+#line 274 "program_lexer.l"
{ return PRIMARY; }
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 268 "program_lexer.l"
+#line 275 "program_lexer.l"
{ return PROJECTION; }
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 269 "program_lexer.l"
+#line 276 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, RANGE); }
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 270 "program_lexer.l"
+#line 277 "program_lexer.l"
{ return ROW; }
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 271 "program_lexer.l"
+#line 278 "program_lexer.l"
{ return SCENECOLOR; }
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 272 "program_lexer.l"
+#line 279 "program_lexer.l"
{ return SECONDARY; }
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 273 "program_lexer.l"
+#line 280 "program_lexer.l"
{ return SHININESS; }
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 274 "program_lexer.l"
+#line 281 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, SIZE); }
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 275 "program_lexer.l"
+#line 282 "program_lexer.l"
{ return SPECULAR; }
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 276 "program_lexer.l"
+#line 283 "program_lexer.l"
{ return SPOT; }
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 277 "program_lexer.l"
+#line 284 "program_lexer.l"
{ return TEXCOORD; }
YY_BREAK
case 115:
YY_RULE_SETUP
-#line 278 "program_lexer.l"
+#line 285 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, TEXENV); }
YY_BREAK
case 116:
YY_RULE_SETUP
-#line 279 "program_lexer.l"
+#line 286 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN); }
YY_BREAK
case 117:
YY_RULE_SETUP
-#line 280 "program_lexer.l"
+#line 287 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN_Q); }
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 281 "program_lexer.l"
+#line 288 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN_S); }
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 282 "program_lexer.l"
+#line 289 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN_T); }
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 283 "program_lexer.l"
+#line 290 "program_lexer.l"
{ return TEXTURE; }
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 284 "program_lexer.l"
+#line 291 "program_lexer.l"
{ return TRANSPOSE; }
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 285 "program_lexer.l"
+#line 292 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, VTXATTRIB); }
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 286 "program_lexer.l"
+#line 293 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, WEIGHT); }
YY_BREAK
case 124:
YY_RULE_SETUP
-#line 288 "program_lexer.l"
+#line 295 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); }
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 289 "program_lexer.l"
+#line 296 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); }
YY_BREAK
case 126:
YY_RULE_SETUP
-#line 290 "program_lexer.l"
+#line 297 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); }
YY_BREAK
case 127:
YY_RULE_SETUP
-#line 291 "program_lexer.l"
+#line 298 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); }
YY_BREAK
case 128:
YY_RULE_SETUP
-#line 292 "program_lexer.l"
+#line 299 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); }
YY_BREAK
case 129:
YY_RULE_SETUP
-#line 293 "program_lexer.l"
+#line 300 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); }
YY_BREAK
case 130:
YY_RULE_SETUP
-#line 294 "program_lexer.l"
+#line 301 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); }
YY_BREAK
case 131:
YY_RULE_SETUP
-#line 295 "program_lexer.l"
+#line 302 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); }
YY_BREAK
case 132:
YY_RULE_SETUP
-#line 296 "program_lexer.l"
+#line 303 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); }
YY_BREAK
case 133:
YY_RULE_SETUP
-#line 297 "program_lexer.l"
+#line 304 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); }
YY_BREAK
case 134:
YY_RULE_SETUP
-#line 298 "program_lexer.l"
+#line 305 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); }
YY_BREAK
case 135:
YY_RULE_SETUP
-#line 299 "program_lexer.l"
+#line 306 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); }
YY_BREAK
case 136:
YY_RULE_SETUP
-#line 300 "program_lexer.l"
+#line 307 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); }
YY_BREAK
case 137:
YY_RULE_SETUP
-#line 302 "program_lexer.l"
-{
- yylval->string = strdup(yytext);
- return IDENTIFIER;
-}
+#line 309 "program_lexer.l"
+{ return handle_ident(yyextra, yytext, yylval); }
YY_BREAK
case 138:
YY_RULE_SETUP
-#line 307 "program_lexer.l"
+#line 311 "program_lexer.l"
{ return DOT_DOT; }
YY_BREAK
case 139:
YY_RULE_SETUP
-#line 309 "program_lexer.l"
+#line 313 "program_lexer.l"
{
yylval->integer = strtol(yytext, NULL, 10);
return INTEGER;
@@ -2182,7 +2186,7 @@ YY_RULE_SETUP
YY_BREAK
case 140:
YY_RULE_SETUP
-#line 313 "program_lexer.l"
+#line 317 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2194,7 +2198,7 @@ case 141:
yyg->yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 317 "program_lexer.l"
+#line 321 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2202,7 +2206,7 @@ YY_RULE_SETUP
YY_BREAK
case 142:
YY_RULE_SETUP
-#line 321 "program_lexer.l"
+#line 325 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2210,7 +2214,7 @@ YY_RULE_SETUP
YY_BREAK
case 143:
YY_RULE_SETUP
-#line 325 "program_lexer.l"
+#line 329 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2218,7 +2222,7 @@ YY_RULE_SETUP
YY_BREAK
case 144:
YY_RULE_SETUP
-#line 330 "program_lexer.l"
+#line 334 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_NOOP;
yylval->swiz_mask.mask = WRITEMASK_XYZW;
@@ -2227,7 +2231,7 @@ YY_RULE_SETUP
YY_BREAK
case 145:
YY_RULE_SETUP
-#line 336 "program_lexer.l"
+#line 340 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XY
@@ -2237,7 +2241,7 @@ YY_RULE_SETUP
YY_BREAK
case 146:
YY_RULE_SETUP
-#line 342 "program_lexer.l"
+#line 346 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XZW;
@@ -2246,7 +2250,7 @@ YY_RULE_SETUP
YY_BREAK
case 147:
YY_RULE_SETUP
-#line 347 "program_lexer.l"
+#line 351 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_YZW;
@@ -2255,7 +2259,7 @@ YY_RULE_SETUP
YY_BREAK
case 148:
YY_RULE_SETUP
-#line 353 "program_lexer.l"
+#line 357 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_X
@@ -2265,7 +2269,7 @@ YY_RULE_SETUP
YY_BREAK
case 149:
YY_RULE_SETUP
-#line 359 "program_lexer.l"
+#line 363 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_Y
@@ -2275,7 +2279,7 @@ YY_RULE_SETUP
YY_BREAK
case 150:
YY_RULE_SETUP
-#line 365 "program_lexer.l"
+#line 369 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_ZW;
@@ -2284,7 +2288,7 @@ YY_RULE_SETUP
YY_BREAK
case 151:
YY_RULE_SETUP
-#line 371 "program_lexer.l"
+#line 375 "program_lexer.l"
{
const unsigned s = swiz_from_char(yytext[1]);
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s);
@@ -2294,7 +2298,7 @@ YY_RULE_SETUP
YY_BREAK
case 152:
YY_RULE_SETUP
-#line 378 "program_lexer.l"
+#line 382 "program_lexer.l"
{
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]),
swiz_from_char(yytext[2]),
@@ -2306,7 +2310,7 @@ YY_RULE_SETUP
YY_BREAK
case 153:
YY_RULE_SETUP
-#line 387 "program_lexer.l"
+#line 391 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_NOOP;
yylval->swiz_mask.mask = WRITEMASK_XYZW;
@@ -2315,7 +2319,7 @@ YY_RULE_SETUP
YY_BREAK
case 154:
YY_RULE_SETUP
-#line 393 "program_lexer.l"
+#line 397 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XY
@@ -2325,7 +2329,7 @@ YY_RULE_SETUP
YY_BREAK
case 155:
YY_RULE_SETUP
-#line 399 "program_lexer.l"
+#line 403 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XZW;
@@ -2334,7 +2338,7 @@ YY_RULE_SETUP
YY_BREAK
case 156:
YY_RULE_SETUP
-#line 404 "program_lexer.l"
+#line 408 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_YZW;
@@ -2343,7 +2347,7 @@ YY_RULE_SETUP
YY_BREAK
case 157:
YY_RULE_SETUP
-#line 410 "program_lexer.l"
+#line 414 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_X
@@ -2353,7 +2357,7 @@ YY_RULE_SETUP
YY_BREAK
case 158:
YY_RULE_SETUP
-#line 416 "program_lexer.l"
+#line 420 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_Y
@@ -2363,7 +2367,7 @@ YY_RULE_SETUP
YY_BREAK
case 159:
YY_RULE_SETUP
-#line 422 "program_lexer.l"
+#line 426 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_ZW;
@@ -2372,7 +2376,7 @@ YY_RULE_SETUP
YY_BREAK
case 160:
YY_RULE_SETUP
-#line 428 "program_lexer.l"
+#line 432 "program_lexer.l"
{
const unsigned s = swiz_from_char(yytext[1]);
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s);
@@ -2382,7 +2386,7 @@ YY_RULE_SETUP
YY_BREAK
case 161:
YY_RULE_SETUP
-#line 436 "program_lexer.l"
+#line 440 "program_lexer.l"
{
if (require_ARB_vp) {
return TEXGEN_R;
@@ -2396,7 +2400,7 @@ YY_RULE_SETUP
YY_BREAK
case 162:
YY_RULE_SETUP
-#line 447 "program_lexer.l"
+#line 451 "program_lexer.l"
{
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]),
swiz_from_char(yytext[2]),
@@ -2408,13 +2412,13 @@ YY_RULE_SETUP
YY_BREAK
case 163:
YY_RULE_SETUP
-#line 456 "program_lexer.l"
+#line 460 "program_lexer.l"
{ return DOT; }
YY_BREAK
case 164:
/* rule 164 can match eol */
YY_RULE_SETUP
-#line 458 "program_lexer.l"
+#line 462 "program_lexer.l"
{
yylloc->first_line++;
yylloc->first_column = 1;
@@ -2425,7 +2429,7 @@ YY_RULE_SETUP
YY_BREAK
case 165:
YY_RULE_SETUP
-#line 465 "program_lexer.l"
+#line 469 "program_lexer.l"
/* eat whitespace */ ;
YY_BREAK
case 166:
@@ -2433,20 +2437,20 @@ case 166:
yyg->yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 466 "program_lexer.l"
+#line 470 "program_lexer.l"
/* eat comments */ ;
YY_BREAK
case 167:
YY_RULE_SETUP
-#line 467 "program_lexer.l"
+#line 471 "program_lexer.l"
{ return yytext[0]; }
YY_BREAK
case 168:
YY_RULE_SETUP
-#line 468 "program_lexer.l"
+#line 472 "program_lexer.l"
ECHO;
YY_BREAK
-#line 2450 "lex.yy.c"
+#line 2454 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -3621,7 +3625,7 @@ void yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 468 "program_lexer.l"
+#line 472 "program_lexer.l"
diff --git a/src/mesa/shader/program_lexer.l b/src/mesa/shader/program_lexer.l
index d7493f42fa..9e68c34ac0 100644
--- a/src/mesa/shader/program_lexer.l
+++ b/src/mesa/shader/program_lexer.l
@@ -39,8 +39,7 @@
if (condition) { \
return token; \
} else { \
- yylval->string = strdup(yytext); \
- return IDENTIFIER; \
+ return handle_ident(yyextra, yytext, yylval); \
} \
} while (0)
@@ -64,8 +63,7 @@
yylval->temp_inst.Opcode = OPCODE_ ## opcode; \
return token; \
} else { \
- yylval->string = strdup(yytext); \
- return IDENTIFIER; \
+ return handle_ident(yyextra, yytext, yylval); \
} \
} while (0)
@@ -114,6 +112,15 @@ swiz_from_char(char c)
return 0;
}
+static int
+handle_ident(struct asm_parser_state *state, const char *text, YYSTYPE *lval)
+{
+ lval->string = strdup(text);
+
+ return (_mesa_symbol_table_find_symbol(state->st, 0, text) == NULL)
+ ? IDENTIFIER : USED_IDENTIFIER;
+}
+
#define YY_USER_ACTION \
do { \
yylloc->first_column = yylloc->last_column; \
@@ -299,10 +306,7 @@ ARRAY2D { return_token_or_IDENTIFIER(require_ARB_fp && require
ARRAYSHADOW1D { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); }
ARRAYSHADOW2D { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); }
-[_a-zA-Z$][_a-zA-Z0-9$]* {
- yylval->string = strdup(yytext);
- return IDENTIFIER;
-}
+[_a-zA-Z$][_a-zA-Z0-9$]* { return handle_ident(yyextra, yytext, yylval); }
".." { return DOT_DOT; }
diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c
index e741e9a13b..d37b20ba42 100644
--- a/src/mesa/shader/program_parse.tab.c
+++ b/src/mesa/shader/program_parse.tab.c
@@ -303,13 +303,14 @@ static struct asm_instruction *asm_instruction_copy_ctor(
VTXATTRIB = 352,
WEIGHT = 353,
IDENTIFIER = 354,
- MASK4 = 355,
- MASK3 = 356,
- MASK2 = 357,
- MASK1 = 358,
- SWIZZLE = 359,
- DOT_DOT = 360,
- DOT = 361
+ USED_IDENTIFIER = 355,
+ MASK4 = 356,
+ MASK3 = 357,
+ MASK2 = 358,
+ MASK1 = 359,
+ SWIZZLE = 360,
+ DOT_DOT = 361,
+ DOT = 362
};
#endif
@@ -349,7 +350,7 @@ typedef union YYSTYPE
/* Line 214 of yacc.c */
-#line 353 "program_parse.tab.c"
+#line 354 "program_parse.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -373,14 +374,14 @@ typedef struct YYLTYPE
/* Copy the second part of user declarations. */
/* Line 264 of yacc.c */
-#line 258 "program_parse.y"
+#line 259 "program_parse.y"
extern int yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param,
void *yyscanner);
/* Line 264 of yacc.c */
-#line 384 "program_parse.tab.c"
+#line 385 "program_parse.tab.c"
#ifdef short
# undef short
@@ -597,20 +598,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 5
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 383
+#define YYLAST 393
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 117
+#define YYNTOKENS 118
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 137
+#define YYNNTS 138
/* YYNRULES -- Number of rules. */
-#define YYNRULES 272
+#define YYNRULES 274
/* YYNRULES -- Number of states. */
-#define YYNSTATES 458
+#define YYNSTATES 460
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 361
+#define YYMAXUTOK 362
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -622,15 +623,15 @@ static const yytype_uint8 yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 112, 108, 113, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 107,
- 2, 114, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 113, 109, 114, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 108,
+ 2, 115, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 110, 2, 111, 2, 2, 2, 2, 2, 2,
+ 2, 111, 2, 112, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 115, 109, 116, 2, 2, 2, 2,
+ 2, 2, 2, 116, 110, 117, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -654,7 +655,7 @@ static const yytype_uint8 yytranslate[] =
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106
+ 105, 106, 107
};
#if YYDEBUG
@@ -689,123 +690,123 @@ static const yytype_uint16 yyprhs[] =
686, 690, 694, 696, 702, 705, 708, 711, 714, 718,
721, 725, 726, 728, 730, 731, 733, 735, 736, 738,
740, 741, 743, 745, 746, 750, 751, 755, 756, 760,
- 762, 764, 766
+ 762, 764, 766, 771, 773
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 118, 0, -1, 119, 120, 122, 12, -1, 3, -1,
- 4, -1, 120, 121, -1, -1, 8, 99, 107, -1,
- 122, 123, -1, -1, 124, 107, -1, 162, 107, -1,
- 125, -1, 126, -1, 127, -1, 128, -1, 129, -1,
- 130, -1, 131, -1, 132, -1, 138, -1, 133, -1,
- 134, -1, 135, -1, 19, 143, 108, 139, -1, 18,
- 142, 108, 141, -1, 16, 142, 108, 139, -1, 14,
- 142, 108, 139, 108, 139, -1, 13, 142, 108, 141,
- 108, 141, -1, 17, 142, 108, 141, 108, 141, 108,
- 141, -1, 15, 142, 108, 141, 108, 136, 108, 137,
- -1, 20, 141, -1, 22, 142, 108, 141, 108, 141,
- 108, 141, 108, 136, 108, 137, -1, 83, 248, -1,
+ 119, 0, -1, 120, 121, 123, 12, -1, 3, -1,
+ 4, -1, 121, 122, -1, -1, 8, 255, 108, -1,
+ 123, 124, -1, -1, 125, 108, -1, 163, 108, -1,
+ 126, -1, 127, -1, 128, -1, 129, -1, 130, -1,
+ 131, -1, 132, -1, 133, -1, 139, -1, 134, -1,
+ 135, -1, 136, -1, 19, 144, 109, 140, -1, 18,
+ 143, 109, 142, -1, 16, 143, 109, 140, -1, 14,
+ 143, 109, 140, 109, 140, -1, 13, 143, 109, 142,
+ 109, 142, -1, 17, 143, 109, 142, 109, 142, 109,
+ 142, -1, 15, 143, 109, 142, 109, 137, 109, 138,
+ -1, 20, 142, -1, 22, 143, 109, 142, 109, 142,
+ 109, 142, 109, 137, 109, 138, -1, 83, 249, -1,
84, -1, 85, -1, 86, -1, 87, -1, 88, -1,
89, -1, 90, -1, 91, -1, 92, -1, 93, -1,
- 94, -1, 95, -1, 21, 142, 108, 147, 108, 144,
- -1, 233, 140, -1, 233, 109, 140, 109, -1, 147,
- 159, -1, 230, -1, 233, 147, 160, -1, 233, 109,
- 147, 160, 109, -1, 148, 161, -1, 156, 158, -1,
- 145, 108, 145, 108, 145, 108, 145, -1, 233, 146,
- -1, 23, -1, 99, -1, 99, -1, 164, -1, 149,
- 110, 150, 111, -1, 178, -1, 241, -1, 99, -1,
- 99, -1, 151, -1, 152, -1, 23, -1, 156, 157,
- 153, -1, -1, 112, 154, -1, 113, 155, -1, 23,
- -1, 23, -1, 99, -1, 103, -1, 103, -1, 103,
- -1, 103, -1, 100, -1, 104, -1, -1, 100, -1,
- 101, -1, 102, -1, 103, -1, -1, 163, -1, 170,
- -1, 234, -1, 237, -1, 240, -1, 253, -1, 7,
- 99, 114, 164, -1, 96, 165, -1, 38, 169, -1,
- 60, -1, 98, 167, -1, 53, -1, 29, 246, -1,
- 37, -1, 74, 247, -1, 50, 110, 168, 111, -1,
- 97, 110, 166, 111, -1, 23, -1, -1, 110, 168,
- 111, -1, 23, -1, 60, -1, 29, 246, -1, 37,
- -1, 74, 247, -1, 171, -1, 172, -1, 10, 99,
- 174, -1, 10, 99, 110, 173, 111, 175, -1, -1,
- 23, -1, 114, 177, -1, 114, 115, 176, 116, -1,
- 179, -1, 176, 108, 179, -1, 181, -1, 217, -1,
- 227, -1, 181, -1, 217, -1, 228, -1, 180, -1,
- 218, -1, 227, -1, 181, -1, 73, 205, -1, 73,
- 182, -1, 73, 184, -1, 73, 187, -1, 73, 189,
- -1, 73, 195, -1, 73, 191, -1, 73, 198, -1,
- 73, 200, -1, 73, 202, -1, 73, 204, -1, 73,
- 216, -1, 47, 245, 183, -1, 193, -1, 33, -1,
- 69, -1, 43, 110, 194, 111, 185, -1, 193, -1,
- 60, -1, 26, -1, 72, 186, -1, 40, -1, 32,
- -1, 44, 188, -1, 25, -1, 245, 67, -1, 45,
- 110, 194, 111, 245, 190, -1, 193, -1, 75, 249,
- 192, -1, 29, -1, 25, -1, 31, -1, 71, -1,
- 23, -1, 76, 247, 196, 197, -1, 35, -1, 54,
+ 94, -1, 95, -1, 21, 143, 109, 148, 109, 145,
+ -1, 234, 141, -1, 234, 110, 141, 110, -1, 148,
+ 160, -1, 231, -1, 234, 148, 161, -1, 234, 110,
+ 148, 161, 110, -1, 149, 162, -1, 157, 159, -1,
+ 146, 109, 146, 109, 146, 109, 146, -1, 234, 147,
+ -1, 23, -1, 255, -1, 100, -1, 165, -1, 150,
+ 111, 151, 112, -1, 179, -1, 242, -1, 100, -1,
+ 100, -1, 152, -1, 153, -1, 23, -1, 157, 158,
+ 154, -1, -1, 113, 155, -1, 114, 156, -1, 23,
+ -1, 23, -1, 100, -1, 104, -1, 104, -1, 104,
+ -1, 104, -1, 101, -1, 105, -1, -1, 101, -1,
+ 102, -1, 103, -1, 104, -1, -1, 164, -1, 171,
+ -1, 235, -1, 238, -1, 241, -1, 254, -1, 7,
+ 99, 115, 165, -1, 96, 166, -1, 38, 170, -1,
+ 60, -1, 98, 168, -1, 53, -1, 29, 247, -1,
+ 37, -1, 74, 248, -1, 50, 111, 169, 112, -1,
+ 97, 111, 167, 112, -1, 23, -1, -1, 111, 169,
+ 112, -1, 23, -1, 60, -1, 29, 247, -1, 37,
+ -1, 74, 248, -1, 172, -1, 173, -1, 10, 99,
+ 175, -1, 10, 99, 111, 174, 112, 176, -1, -1,
+ 23, -1, 115, 178, -1, 115, 116, 177, 117, -1,
+ 180, -1, 177, 109, 180, -1, 182, -1, 218, -1,
+ 228, -1, 182, -1, 218, -1, 229, -1, 181, -1,
+ 219, -1, 228, -1, 182, -1, 73, 206, -1, 73,
+ 183, -1, 73, 185, -1, 73, 188, -1, 73, 190,
+ -1, 73, 196, -1, 73, 192, -1, 73, 199, -1,
+ 73, 201, -1, 73, 203, -1, 73, 205, -1, 73,
+ 217, -1, 47, 246, 184, -1, 194, -1, 33, -1,
+ 69, -1, 43, 111, 195, 112, 186, -1, 194, -1,
+ 60, -1, 26, -1, 72, 187, -1, 40, -1, 32,
+ -1, 44, 189, -1, 25, -1, 246, 67, -1, 45,
+ 111, 195, 112, 246, 191, -1, 194, -1, 75, 250,
+ 193, -1, 29, -1, 25, -1, 31, -1, 71, -1,
+ 23, -1, 76, 248, 197, 198, -1, 35, -1, 54,
-1, 79, -1, 80, -1, 78, -1, 77, -1, 36,
- 199, -1, 29, -1, 56, -1, 28, 110, 201, 111,
- 57, -1, 23, -1, 58, 203, -1, 70, -1, 26,
- -1, 207, 66, 110, 210, 111, -1, 207, 206, -1,
- -1, 66, 110, 210, 105, 210, 111, -1, 49, 211,
- 208, -1, -1, 209, -1, 41, -1, 82, -1, 42,
- -1, 23, -1, 51, 212, -1, 63, -1, 52, -1,
- 81, 247, -1, 55, 110, 214, 111, -1, 48, 110,
- 215, 111, -1, -1, 213, -1, 23, -1, 23, -1,
- 23, -1, 30, 64, -1, 221, -1, 224, -1, 219,
- -1, 222, -1, 62, 34, 110, 220, 111, -1, 225,
- -1, 225, 105, 225, -1, 62, 34, 110, 225, 111,
- -1, 62, 46, 110, 223, 111, -1, 226, -1, 226,
- 105, 226, -1, 62, 46, 110, 226, 111, -1, 23,
- -1, 23, -1, 229, -1, 231, -1, 230, -1, 231,
- -1, 232, -1, 24, -1, 23, -1, 115, 232, 116,
- -1, 115, 232, 108, 232, 116, -1, 115, 232, 108,
- 232, 108, 232, 116, -1, 115, 232, 108, 232, 108,
- 232, 108, 232, 116, -1, 233, 24, -1, 233, 23,
- -1, 112, -1, 113, -1, -1, -1, 236, 11, 235,
- 239, -1, 99, -1, -1, -1, 5, 238, 239, -1,
- 239, 108, 99, -1, 99, -1, 236, 9, 99, 114,
- 241, -1, 65, 60, -1, 65, 37, -1, 65, 242,
- -1, 65, 59, -1, 65, 74, 247, -1, 65, 30,
- -1, 29, 243, 244, -1, -1, 39, -1, 27, -1,
+ 200, -1, 29, -1, 56, -1, 28, 111, 202, 112,
+ 57, -1, 23, -1, 58, 204, -1, 70, -1, 26,
+ -1, 208, 66, 111, 211, 112, -1, 208, 207, -1,
+ -1, 66, 111, 211, 106, 211, 112, -1, 49, 212,
+ 209, -1, -1, 210, -1, 41, -1, 82, -1, 42,
+ -1, 23, -1, 51, 213, -1, 63, -1, 52, -1,
+ 81, 248, -1, 55, 111, 215, 112, -1, 48, 111,
+ 216, 112, -1, -1, 214, -1, 23, -1, 23, -1,
+ 23, -1, 30, 64, -1, 222, -1, 225, -1, 220,
+ -1, 223, -1, 62, 34, 111, 221, 112, -1, 226,
+ -1, 226, 106, 226, -1, 62, 34, 111, 226, 112,
+ -1, 62, 46, 111, 224, 112, -1, 227, -1, 227,
+ 106, 227, -1, 62, 46, 111, 227, 112, -1, 23,
+ -1, 23, -1, 230, -1, 232, -1, 231, -1, 232,
+ -1, 233, -1, 24, -1, 23, -1, 116, 233, 117,
+ -1, 116, 233, 109, 233, 117, -1, 116, 233, 109,
+ 233, 109, 233, 117, -1, 116, 233, 109, 233, 109,
+ 233, 109, 233, 117, -1, 234, 24, -1, 234, 23,
+ -1, 113, -1, 114, -1, -1, -1, 237, 11, 236,
+ 240, -1, 255, -1, -1, -1, 5, 239, 240, -1,
+ 240, 109, 99, -1, 99, -1, 237, 9, 99, 115,
+ 242, -1, 65, 60, -1, 65, 37, -1, 65, 243,
+ -1, 65, 59, -1, 65, 74, 248, -1, 65, 30,
+ -1, 29, 244, 245, -1, -1, 39, -1, 27, -1,
-1, 61, -1, 68, -1, -1, 39, -1, 27, -1,
- -1, 61, -1, 68, -1, -1, 110, 250, 111, -1,
- -1, 110, 251, 111, -1, -1, 110, 252, 111, -1,
- 23, -1, 23, -1, 23, -1, 6, 99, 114, 99,
- -1
+ -1, 61, -1, 68, -1, -1, 111, 251, 112, -1,
+ -1, 111, 252, 112, -1, -1, 111, 253, 112, -1,
+ 23, -1, 23, -1, 23, -1, 6, 99, 115, 100,
+ -1, 99, -1, 100, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 265, 265, 268, 276, 288, 289, 292, 314, 315,
- 318, 333, 336, 341, 348, 349, 350, 351, 352, 353,
- 354, 357, 358, 359, 362, 368, 374, 380, 387, 393,
- 400, 444, 451, 495, 501, 502, 503, 504, 505, 506,
- 507, 508, 509, 510, 511, 512, 515, 527, 535, 552,
- 559, 578, 589, 609, 631, 640, 673, 680, 695, 745,
- 787, 798, 819, 829, 835, 866, 883, 883, 885, 892,
- 904, 905, 906, 909, 921, 933, 951, 962, 974, 976,
- 977, 978, 979, 982, 982, 982, 982, 983, 986, 987,
- 988, 989, 990, 991, 994, 1012, 1016, 1022, 1026, 1030,
- 1034, 1043, 1052, 1056, 1061, 1067, 1078, 1078, 1079, 1081,
- 1085, 1089, 1093, 1099, 1099, 1101, 1117, 1140, 1143, 1154,
- 1160, 1166, 1167, 1174, 1180, 1186, 1194, 1200, 1206, 1214,
- 1220, 1226, 1234, 1235, 1238, 1239, 1240, 1241, 1242, 1243,
- 1244, 1245, 1246, 1247, 1248, 1251, 1260, 1264, 1268, 1274,
- 1283, 1287, 1291, 1300, 1304, 1310, 1316, 1323, 1328, 1336,
- 1346, 1348, 1356, 1362, 1366, 1370, 1376, 1387, 1396, 1400,
- 1405, 1409, 1413, 1417, 1423, 1430, 1434, 1440, 1448, 1459,
- 1466, 1470, 1476, 1486, 1497, 1501, 1519, 1528, 1531, 1537,
- 1541, 1545, 1551, 1562, 1567, 1572, 1577, 1582, 1587, 1595,
- 1598, 1603, 1616, 1624, 1635, 1643, 1643, 1645, 1645, 1647,
- 1657, 1662, 1669, 1679, 1688, 1693, 1700, 1710, 1720, 1732,
- 1732, 1733, 1733, 1735, 1745, 1753, 1763, 1771, 1779, 1788,
- 1799, 1803, 1809, 1810, 1811, 1814, 1814, 1817, 1852, 1856,
- 1856, 1859, 1865, 1873, 1886, 1895, 1904, 1908, 1917, 1926,
- 1937, 1944, 1949, 1958, 1970, 1973, 1982, 1993, 1994, 1995,
- 1998, 1999, 2000, 2003, 2004, 2007, 2008, 2011, 2012, 2015,
- 2026, 2037, 2048
+ 0, 266, 266, 269, 277, 289, 290, 293, 315, 316,
+ 319, 334, 337, 342, 349, 350, 351, 352, 353, 354,
+ 355, 358, 359, 360, 363, 369, 375, 381, 388, 394,
+ 401, 445, 452, 496, 502, 503, 504, 505, 506, 507,
+ 508, 509, 510, 511, 512, 513, 516, 528, 536, 553,
+ 560, 579, 590, 610, 632, 641, 674, 681, 696, 746,
+ 788, 799, 820, 830, 836, 867, 884, 884, 886, 893,
+ 905, 906, 907, 910, 922, 934, 952, 963, 975, 977,
+ 978, 979, 980, 983, 983, 983, 983, 984, 987, 988,
+ 989, 990, 991, 992, 995, 1013, 1017, 1023, 1027, 1031,
+ 1035, 1044, 1053, 1057, 1062, 1068, 1079, 1079, 1080, 1082,
+ 1086, 1090, 1094, 1100, 1100, 1102, 1118, 1141, 1144, 1155,
+ 1161, 1167, 1168, 1175, 1181, 1187, 1195, 1201, 1207, 1215,
+ 1221, 1227, 1235, 1236, 1239, 1240, 1241, 1242, 1243, 1244,
+ 1245, 1246, 1247, 1248, 1249, 1252, 1261, 1265, 1269, 1275,
+ 1284, 1288, 1292, 1301, 1305, 1311, 1317, 1324, 1329, 1337,
+ 1347, 1349, 1357, 1363, 1367, 1371, 1377, 1388, 1397, 1401,
+ 1406, 1410, 1414, 1418, 1424, 1431, 1435, 1441, 1449, 1460,
+ 1467, 1471, 1477, 1487, 1498, 1502, 1520, 1529, 1532, 1538,
+ 1542, 1546, 1552, 1563, 1568, 1573, 1578, 1583, 1588, 1596,
+ 1599, 1604, 1617, 1625, 1636, 1644, 1644, 1646, 1646, 1648,
+ 1658, 1663, 1670, 1680, 1689, 1694, 1701, 1711, 1721, 1733,
+ 1733, 1734, 1734, 1736, 1746, 1754, 1764, 1772, 1780, 1789,
+ 1800, 1804, 1810, 1811, 1812, 1815, 1815, 1818, 1853, 1857,
+ 1857, 1860, 1866, 1874, 1887, 1896, 1905, 1909, 1918, 1927,
+ 1938, 1945, 1950, 1959, 1971, 1974, 1983, 1994, 1995, 1996,
+ 1999, 2000, 2001, 2004, 2005, 2008, 2009, 2012, 2013, 2016,
+ 2027, 2038, 2049, 2070, 2071
};
#endif
@@ -830,11 +831,11 @@ static const char *const yytname[] =
"TEX_2D", "TEX_3D", "TEX_CUBE", "TEX_RECT", "TEX_SHADOW1D",
"TEX_SHADOW2D", "TEX_SHADOWRECT", "TEX_ARRAY1D", "TEX_ARRAY2D",
"TEX_ARRAYSHADOW1D", "TEX_ARRAYSHADOW2D", "VERTEX", "VTXATTRIB",
- "WEIGHT", "IDENTIFIER", "MASK4", "MASK3", "MASK2", "MASK1", "SWIZZLE",
- "DOT_DOT", "DOT", "';'", "','", "'|'", "'['", "']'", "'+'", "'-'", "'='",
- "'{'", "'}'", "$accept", "program", "language", "optionSequence",
- "option", "statementSequence", "statement", "instruction",
- "ALU_instruction", "TexInstruction", "ARL_instruction",
+ "WEIGHT", "IDENTIFIER", "USED_IDENTIFIER", "MASK4", "MASK3", "MASK2",
+ "MASK1", "SWIZZLE", "DOT_DOT", "DOT", "';'", "','", "'|'", "'['", "']'",
+ "'+'", "'-'", "'='", "'{'", "'}'", "$accept", "program", "language",
+ "optionSequence", "option", "statementSequence", "statement",
+ "instruction", "ALU_instruction", "TexInstruction", "ARL_instruction",
"VECTORop_instruction", "SCALARop_instruction", "BINSCop_instruction",
"BINop_instruction", "TRIop_instruction", "SAMPLE_instruction",
"KIL_instruction", "TXD_instruction", "texImageUnit", "texTarget",
@@ -873,7 +874,7 @@ static const char *const yytname[] =
"optResultColorType", "optFaceType", "optColorType",
"optTexCoordUnitNum", "optTexImageUnitNum", "optLegacyTexUnitNum",
"texCoordUnitNum", "texImageUnitNum", "legacyTexUnitNum",
- "ALIAS_statement", 0
+ "ALIAS_statement", "string", 0
};
#endif
@@ -892,42 +893,42 @@ static const yytype_uint16 yytoknum[] =
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 359, 360, 361, 59, 44, 124,
- 91, 93, 43, 45, 61, 123, 125
+ 355, 356, 357, 358, 359, 360, 361, 362, 59, 44,
+ 124, 91, 93, 43, 45, 61, 123, 125
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 117, 118, 119, 119, 120, 120, 121, 122, 122,
- 123, 123, 124, 124, 125, 125, 125, 125, 125, 125,
- 125, 126, 126, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 138, 139, 139, 140,
- 140, 141, 141, 142, 143, 144, 145, 146, 146, 147,
- 147, 147, 147, 148, 148, 149, 150, 150, 151, 152,
- 153, 153, 153, 154, 155, 156, 157, 158, 159, 160,
- 160, 160, 160, 161, 161, 161, 161, 161, 162, 162,
- 162, 162, 162, 162, 163, 164, 164, 165, 165, 165,
- 165, 165, 165, 165, 165, 166, 167, 167, 168, 169,
- 169, 169, 169, 170, 170, 171, 172, 173, 173, 174,
- 175, 176, 176, 177, 177, 177, 178, 178, 178, 179,
- 179, 179, 180, 180, 181, 181, 181, 181, 181, 181,
- 181, 181, 181, 181, 181, 182, 183, 183, 183, 184,
- 185, 185, 185, 185, 185, 186, 187, 188, 188, 189,
- 190, 191, 192, 193, 193, 193, 194, 195, 196, 196,
- 197, 197, 197, 197, 198, 199, 199, 200, 201, 202,
- 203, 203, 204, 205, 206, 206, 207, 208, 208, 209,
- 209, 209, 210, 211, 211, 211, 211, 211, 211, 212,
- 212, 213, 214, 215, 216, 217, 217, 218, 218, 219,
- 220, 220, 221, 222, 223, 223, 224, 225, 226, 227,
- 227, 228, 228, 229, 230, 230, 231, 231, 231, 231,
- 232, 232, 233, 233, 233, 235, 234, 236, 236, 238,
- 237, 239, 239, 240, 241, 241, 241, 241, 241, 241,
- 242, 243, 243, 243, 244, 244, 244, 245, 245, 245,
- 246, 246, 246, 247, 247, 248, 248, 249, 249, 250,
- 251, 252, 253
+ 0, 118, 119, 120, 120, 121, 121, 122, 123, 123,
+ 124, 124, 125, 125, 126, 126, 126, 126, 126, 126,
+ 126, 127, 127, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 136, 137, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 139, 140, 140, 141,
+ 141, 142, 142, 143, 144, 145, 146, 147, 147, 148,
+ 148, 148, 148, 149, 149, 150, 151, 151, 152, 153,
+ 154, 154, 154, 155, 156, 157, 158, 159, 160, 161,
+ 161, 161, 161, 162, 162, 162, 162, 162, 163, 163,
+ 163, 163, 163, 163, 164, 165, 165, 166, 166, 166,
+ 166, 166, 166, 166, 166, 167, 168, 168, 169, 170,
+ 170, 170, 170, 171, 171, 172, 173, 174, 174, 175,
+ 176, 177, 177, 178, 178, 178, 179, 179, 179, 180,
+ 180, 180, 181, 181, 182, 182, 182, 182, 182, 182,
+ 182, 182, 182, 182, 182, 183, 184, 184, 184, 185,
+ 186, 186, 186, 186, 186, 187, 188, 189, 189, 190,
+ 191, 192, 193, 194, 194, 194, 195, 196, 197, 197,
+ 198, 198, 198, 198, 199, 200, 200, 201, 202, 203,
+ 204, 204, 205, 206, 207, 207, 208, 209, 209, 210,
+ 210, 210, 211, 212, 212, 212, 212, 212, 212, 213,
+ 213, 214, 215, 216, 217, 218, 218, 219, 219, 220,
+ 221, 221, 222, 223, 224, 224, 225, 226, 227, 228,
+ 228, 229, 229, 230, 231, 231, 232, 232, 232, 232,
+ 233, 233, 234, 234, 234, 236, 235, 237, 237, 239,
+ 238, 240, 240, 241, 242, 242, 242, 242, 242, 242,
+ 243, 244, 244, 244, 245, 245, 245, 246, 246, 246,
+ 247, 247, 247, 248, 248, 249, 249, 250, 250, 251,
+ 252, 253, 254, 255, 255
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -960,7 +961,7 @@ static const yytype_uint8 yyr2[] =
3, 3, 1, 5, 2, 2, 2, 2, 3, 2,
3, 0, 1, 1, 0, 1, 1, 0, 1, 1,
0, 1, 1, 0, 3, 0, 3, 0, 3, 1,
- 1, 1, 4
+ 1, 1, 4, 1, 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -969,142 +970,142 @@ static const yytype_uint8 yyr2[] =
static const yytype_uint16 yydefact[] =
{
0, 3, 4, 0, 6, 1, 9, 0, 5, 238,
- 0, 239, 0, 0, 0, 2, 0, 0, 0, 0,
- 0, 0, 0, 234, 0, 0, 237, 8, 0, 12,
- 13, 14, 15, 16, 17, 18, 19, 21, 22, 23,
- 20, 0, 88, 89, 113, 114, 90, 0, 91, 92,
- 93, 7, 0, 0, 0, 0, 0, 64, 0, 87,
- 63, 0, 0, 0, 0, 0, 75, 0, 0, 232,
- 233, 31, 0, 0, 0, 10, 11, 0, 235, 242,
- 240, 0, 0, 117, 234, 115, 251, 249, 245, 247,
- 244, 263, 246, 234, 83, 84, 85, 86, 53, 234,
- 234, 234, 234, 234, 234, 77, 54, 225, 224, 0,
- 0, 0, 0, 59, 0, 234, 82, 0, 60, 62,
- 126, 127, 205, 206, 128, 221, 222, 0, 234, 0,
- 0, 0, 272, 94, 118, 0, 119, 123, 124, 125,
- 219, 220, 223, 0, 253, 252, 254, 0, 248, 0,
- 0, 0, 0, 26, 0, 25, 24, 260, 111, 109,
- 263, 96, 0, 0, 0, 0, 0, 0, 257, 0,
- 257, 0, 0, 267, 263, 134, 135, 136, 137, 139,
- 138, 140, 141, 142, 143, 0, 144, 260, 101, 0,
- 99, 97, 263, 0, 106, 95, 82, 0, 80, 79,
- 81, 51, 0, 0, 0, 0, 236, 241, 0, 231,
- 230, 255, 256, 250, 269, 0, 234, 234, 0, 47,
- 0, 50, 0, 234, 261, 262, 110, 112, 0, 0,
- 0, 204, 175, 176, 174, 0, 157, 259, 258, 156,
- 0, 0, 0, 0, 199, 195, 0, 194, 263, 187,
- 181, 180, 179, 0, 0, 0, 0, 100, 0, 102,
- 0, 0, 98, 0, 234, 226, 68, 0, 66, 67,
- 0, 234, 234, 243, 0, 116, 264, 28, 27, 0,
- 78, 49, 265, 0, 0, 217, 0, 218, 0, 178,
- 0, 166, 0, 158, 0, 163, 164, 147, 148, 165,
- 145, 146, 0, 201, 193, 200, 0, 196, 189, 191,
- 190, 186, 188, 271, 0, 162, 161, 168, 169, 0,
- 0, 108, 0, 105, 0, 0, 52, 0, 61, 76,
- 70, 46, 0, 0, 0, 234, 48, 0, 33, 0,
- 234, 212, 216, 0, 0, 257, 203, 0, 202, 0,
- 268, 173, 172, 170, 171, 167, 192, 0, 103, 104,
- 107, 234, 227, 0, 0, 69, 234, 57, 58, 56,
- 234, 0, 0, 0, 121, 129, 132, 130, 207, 208,
- 131, 270, 0, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 30, 29, 177, 152, 154,
- 151, 0, 149, 150, 0, 198, 197, 182, 0, 73,
- 71, 74, 72, 0, 0, 0, 0, 133, 184, 234,
- 120, 266, 155, 153, 159, 160, 234, 228, 234, 0,
- 0, 0, 0, 183, 122, 0, 0, 0, 0, 210,
- 0, 214, 0, 229, 234, 0, 209, 0, 213, 0,
- 0, 55, 32, 211, 215, 0, 0, 185
+ 273, 274, 0, 239, 0, 0, 0, 2, 0, 0,
+ 0, 0, 0, 0, 0, 234, 0, 0, 8, 0,
+ 12, 13, 14, 15, 16, 17, 18, 19, 21, 22,
+ 23, 20, 0, 88, 89, 113, 114, 90, 0, 91,
+ 92, 93, 237, 7, 0, 0, 0, 0, 0, 64,
+ 0, 87, 63, 0, 0, 0, 0, 0, 75, 0,
+ 0, 232, 233, 31, 0, 0, 0, 10, 11, 0,
+ 235, 242, 240, 0, 0, 117, 234, 115, 251, 249,
+ 245, 247, 244, 263, 246, 234, 83, 84, 85, 86,
+ 53, 234, 234, 234, 234, 234, 234, 77, 54, 225,
+ 224, 0, 0, 0, 0, 59, 0, 234, 82, 0,
+ 60, 62, 126, 127, 205, 206, 128, 221, 222, 0,
+ 234, 0, 0, 0, 272, 94, 118, 0, 119, 123,
+ 124, 125, 219, 220, 223, 0, 253, 252, 254, 0,
+ 248, 0, 0, 0, 0, 26, 0, 25, 24, 260,
+ 111, 109, 263, 96, 0, 0, 0, 0, 0, 0,
+ 257, 0, 257, 0, 0, 267, 263, 134, 135, 136,
+ 137, 139, 138, 140, 141, 142, 143, 0, 144, 260,
+ 101, 0, 99, 97, 263, 0, 106, 95, 82, 0,
+ 80, 79, 81, 51, 0, 0, 0, 0, 236, 241,
+ 0, 231, 230, 255, 256, 250, 269, 0, 234, 234,
+ 0, 47, 0, 50, 0, 234, 261, 262, 110, 112,
+ 0, 0, 0, 204, 175, 176, 174, 0, 157, 259,
+ 258, 156, 0, 0, 0, 0, 199, 195, 0, 194,
+ 263, 187, 181, 180, 179, 0, 0, 0, 0, 100,
+ 0, 102, 0, 0, 98, 0, 234, 226, 68, 0,
+ 66, 67, 0, 234, 234, 243, 0, 116, 264, 28,
+ 27, 0, 78, 49, 265, 0, 0, 217, 0, 218,
+ 0, 178, 0, 166, 0, 158, 0, 163, 164, 147,
+ 148, 165, 145, 146, 0, 201, 193, 200, 0, 196,
+ 189, 191, 190, 186, 188, 271, 0, 162, 161, 168,
+ 169, 0, 0, 108, 0, 105, 0, 0, 52, 0,
+ 61, 76, 70, 46, 0, 0, 0, 234, 48, 0,
+ 33, 0, 234, 212, 216, 0, 0, 257, 203, 0,
+ 202, 0, 268, 173, 172, 170, 171, 167, 192, 0,
+ 103, 104, 107, 234, 227, 0, 0, 69, 234, 57,
+ 56, 58, 234, 0, 0, 0, 121, 129, 132, 130,
+ 207, 208, 131, 270, 0, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 30, 29, 177,
+ 152, 154, 151, 0, 149, 150, 0, 198, 197, 182,
+ 0, 73, 71, 74, 72, 0, 0, 0, 0, 133,
+ 184, 234, 120, 266, 155, 153, 159, 160, 234, 228,
+ 234, 0, 0, 0, 0, 183, 122, 0, 0, 0,
+ 0, 210, 0, 214, 0, 229, 234, 0, 209, 0,
+ 213, 0, 0, 55, 32, 211, 215, 0, 0, 185
};
/* 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, 39, 283,
- 395, 40, 150, 219, 71, 58, 67, 331, 332, 369,
- 220, 59, 117, 267, 268, 269, 365, 410, 412, 68,
- 330, 106, 281, 201, 98, 41, 42, 118, 195, 324,
- 262, 322, 161, 43, 44, 45, 135, 85, 275, 373,
- 136, 119, 374, 375, 120, 175, 300, 176, 402, 423,
- 177, 239, 178, 424, 179, 316, 301, 292, 180, 319,
- 355, 181, 234, 182, 290, 183, 252, 184, 417, 433,
- 185, 311, 312, 357, 249, 304, 305, 349, 347, 186,
- 121, 377, 378, 438, 122, 379, 440, 123, 286, 288,
- 380, 124, 140, 125, 126, 142, 72, 46, 130, 47,
- 48, 52, 80, 49, 60, 92, 146, 213, 240, 226,
- 148, 338, 254, 215, 382, 314, 50
+ -1, 3, 4, 6, 8, 9, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 285,
+ 397, 41, 152, 221, 73, 60, 69, 333, 334, 370,
+ 222, 61, 119, 269, 270, 271, 367, 412, 414, 70,
+ 332, 108, 283, 203, 100, 42, 43, 120, 197, 326,
+ 264, 324, 163, 44, 45, 46, 137, 87, 277, 375,
+ 138, 121, 376, 377, 122, 177, 302, 178, 404, 425,
+ 179, 241, 180, 426, 181, 318, 303, 294, 182, 321,
+ 357, 183, 236, 184, 292, 185, 254, 186, 419, 435,
+ 187, 313, 314, 359, 251, 306, 307, 351, 349, 188,
+ 123, 379, 380, 440, 124, 381, 442, 125, 288, 290,
+ 382, 126, 142, 127, 128, 144, 74, 47, 132, 48,
+ 49, 54, 82, 50, 62, 94, 148, 215, 242, 228,
+ 150, 340, 256, 217, 384, 316, 51, 12
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -386
+#define YYPACT_NINF -401
static const yytype_int16 yypact[] =
{
- 203, -386, -386, 23, -386, -386, 67, -50, -386, 20,
- 16, -386, 21, 37, 48, -386, -19, -19, -19, -19,
- -19, -19, 58, 131, -19, -19, -386, -386, 53, -386,
- -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
- -386, 64, -386, -386, -386, -386, -386, 229, -386, -386,
- -386, -386, 77, 81, 89, 78, 95, -386, 75, 130,
- -386, 119, 139, 140, 142, 146, -386, 147, 136, -386,
- -386, -386, -14, 148, 149, -386, -386, 159, -386, -386,
- 152, 162, -20, 239, -6, -386, 31, -386, -386, -386,
- -386, 153, -386, 131, -386, -386, -386, -386, -386, 131,
- 131, 131, 131, 131, 131, -386, -386, -386, -386, 28,
- 50, 123, 40, 154, 30, 131, 101, 155, -386, -386,
- -386, -386, -386, -386, -386, -386, -386, 30, 131, 156,
- 77, 167, -386, -386, -386, 158, -386, -386, -386, -386,
- -386, -386, -386, 218, -386, -386, 13, 244, -386, 160,
- 163, -10, 164, -386, 165, -386, -386, 73, -386, -386,
- 153, -386, 166, 168, 169, 210, 42, 170, 91, 171,
- 100, 145, 38, 173, 153, -386, -386, -386, -386, -386,
- -386, -386, -386, -386, -386, 209, -386, 73, -386, 174,
- -386, -386, 153, 175, 176, -386, 101, 57, -386, -386,
- -386, -386, -16, 179, 180, 225, 152, -386, 177, -386,
- -386, -386, -386, -386, -386, 181, 131, 131, 30, -386,
- 190, 191, 212, 131, -386, -386, -386, -386, 273, 274,
- 275, -386, -386, -386, -386, 276, -386, -386, -386, -386,
- 233, 276, 115, 192, 278, -386, 193, -386, 153, 9,
- -386, -386, -386, 281, 277, 25, 195, -386, 284, -386,
- 285, 284, -386, 200, 131, -386, -386, 199, -386, -386,
- 208, 131, 131, -386, 197, -386, -386, -386, -386, 206,
- -386, -386, 207, 205, 211, -386, 213, -386, 214, -386,
- 215, -386, 216, -386, 217, -386, -386, -386, -386, -386,
- -386, -386, 293, -386, -386, -386, 295, -386, -386, -386,
- -386, -386, -386, -386, 219, -386, -386, -386, -386, 157,
- 297, -386, 220, -386, 221, 222, -386, 66, -386, -386,
- 133, -386, 226, -12, 230, 49, -386, 298, -386, 125,
- 131, -386, -386, 265, 118, 100, -386, 228, -386, 232,
- -386, -386, -386, -386, -386, -386, -386, 234, -386, -386,
- -386, 131, -386, 300, 306, -386, 131, -386, -386, -386,
- 131, 129, 123, 69, -386, -386, -386, -386, -386, -386,
- -386, -386, 235, -386, -386, -386, -386, -386, -386, -386,
- -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
- -386, 308, -386, -386, 41, -386, -386, -386, 86, -386,
- -386, -386, -386, 240, 241, 231, 237, -386, 286, 49,
- -386, -386, -386, -386, -386, -386, 131, -386, 131, 212,
- 273, 274, 243, -386, -386, 238, 242, 247, 245, 246,
- 248, 252, 297, -386, 131, 125, -386, 273, -386, 274,
- 45, -386, -386, -386, -386, 297, 250, -386
+ 122, -401, -401, 49, -401, -401, 56, 61, -401, 20,
+ -401, -401, -5, -401, 7, 45, 78, -401, -47, -47,
+ -47, -47, -47, -47, 79, 85, -47, -47, -401, 99,
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+ -401, -401, 127, -401, -401, -401, -401, -401, 120, -401,
+ -401, -401, -401, -401, 135, 133, 134, 25, 129, -401,
+ 138, 137, -401, 145, 146, 147, 148, 151, -401, 152,
+ 154, -401, -401, -401, -14, 153, 155, -401, -401, 143,
+ -401, -401, 156, 163, 14, 243, 32, -401, 31, -401,
+ -401, -401, -401, 157, -401, 85, -401, -401, -401, -401,
+ -401, 85, 85, 85, 85, 85, 85, -401, -401, -401,
+ -401, 112, 149, 126, 54, 158, 27, 85, 132, 159,
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, 27,
+ 85, 160, 135, 168, -401, -401, -401, 161, -401, -401,
+ -401, -401, -401, -401, -401, 198, -401, -401, 89, 248,
+ -401, 167, 169, 22, 170, -401, 171, -401, -401, 117,
+ -401, -401, 157, -401, 172, 173, 174, 208, -1, 175,
+ 53, 176, 165, 142, -3, 177, 157, -401, -401, -401,
+ -401, -401, -401, -401, -401, -401, -401, 215, -401, 117,
+ -401, 179, -401, -401, 157, 180, 181, -401, 132, -38,
+ -401, -401, -401, -401, -10, 184, 185, 209, 156, -401,
+ 182, -401, -401, -401, -401, -401, -401, 183, 85, 85,
+ 27, -401, 192, 194, 216, 85, -401, -401, -401, -401,
+ 277, 278, 279, -401, -401, -401, -401, 280, -401, -401,
+ -401, -401, 237, 280, 68, 195, 282, -401, 196, -401,
+ 157, 33, -401, -401, -401, 285, 281, 19, 200, -401,
+ 286, -401, 289, 286, -401, 203, 85, -401, -401, 202,
+ -401, -401, 212, 85, 85, -401, 201, -401, -401, -401,
+ -401, 210, -401, -401, 207, 213, 214, -401, 218, -401,
+ 219, -401, 220, -401, 221, -401, 222, -401, -401, -401,
+ -401, -401, -401, -401, 296, -401, -401, -401, 298, -401,
+ -401, -401, -401, -401, -401, -401, 226, -401, -401, -401,
+ -401, 166, 301, -401, 227, -401, 228, 229, -401, 46,
+ -401, -401, 116, -401, 217, -12, 234, 51, -401, 302,
+ -401, 125, 85, -401, -401, 270, 37, 165, -401, 233,
+ -401, 235, -401, -401, -401, -401, -401, -401, -401, 236,
+ -401, -401, -401, 85, -401, 305, 323, -401, 85, -401,
+ -401, -401, 85, 162, 126, 59, -401, -401, -401, -401,
+ -401, -401, -401, -401, 238, -401, -401, -401, -401, -401,
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+ -401, -401, -401, 317, -401, -401, 41, -401, -401, -401,
+ 65, -401, -401, -401, -401, 242, 244, 241, 245, -401,
+ 288, 51, -401, -401, -401, -401, -401, -401, 85, -401,
+ 85, 216, 277, 278, 246, -401, -401, 247, 249, 250,
+ 251, 255, 253, 256, 301, -401, 85, 125, -401, 277,
+ -401, 278, 94, -401, -401, -401, -401, 301, 254, -401
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
- -386, -386, -386, -386, -386, -386, -386, -386, -386, -71,
- -80, -386, -96, 144, -81, 204, -386, -386, -350, -386,
- -17, -386, -386, -386, -386, -386, -386, -386, -386, 161,
- -386, -386, -386, 172, -386, -386, -386, 282, -386, -386,
- -386, 105, -386, -386, -386, -386, -386, -386, -386, -386,
- -386, -386, -52, -386, -83, -386, -386, -386, -386, -386,
- -386, -386, -386, -386, -386, -386, -300, 128, -386, -386,
- -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
- -2, -386, -386, -327, -386, -386, -386, -386, -386, -386,
- 287, -386, -386, -386, -386, -386, -386, -386, -385, -318,
- 288, -386, -386, -145, -82, -112, -84, -386, -386, -386,
- -386, -386, 249, -386, 178, -386, -386, -386, -166, 186,
- -131, -386, -386, -386, -386, -386, -386
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -76,
+ -80, -401, -98, 150, -83, 205, -401, -401, -361, -401,
+ -18, -401, -401, -401, -401, -401, -401, -401, -401, 164,
+ -401, -401, -401, 178, -401, -401, -401, 287, -401, -401,
+ -401, 106, -401, -401, -401, -401, -401, -401, -401, -401,
+ -401, -401, -49, -401, -85, -401, -401, -401, -401, -401,
+ -401, -401, -401, -401, -401, -401, -330, 130, -401, -401,
+ -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+ 0, -401, -401, -400, -401, -401, -401, -401, -401, -401,
+ 291, -401, -401, -401, -401, -401, -401, -401, -302, -317,
+ 292, -401, -401, -139, -84, -113, -86, -401, -401, -401,
+ -401, -401, 252, -401, 186, -401, -401, -401, -166, 190,
+ -133, -401, -401, -401, -401, -401, -401, -6
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -1114,140 +1115,142 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -222
static const yytype_int16 yytable[] =
{
- 143, 137, 141, 197, 242, 153, 221, 266, 156, 107,
- 108, 367, 149, 107, 108, 151, 413, 151, 109, 152,
- 151, 154, 155, 5, 109, 11, 12, 13, 109, 227,
- 14, 143, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 255, 403, 439, 56, 204, 110, 10,
- 308, 309, 110, 107, 108, 116, 110, 157, 144, 111,
- 317, 259, 453, 111, 250, 158, 295, 111, 109, 187,
- 145, 232, 296, 221, 211, 7, 112, 188, 436, 318,
- 57, 212, 112, 66, 162, 113, 112, 368, 159, 113,
- 189, 310, 110, 190, 451, 114, 163, 196, 233, 218,
- 191, 115, 160, 111, 425, 115, 69, 70, 251, 115,
- 203, 371, 299, 441, 192, 450, 236, 307, 237, 26,
- 53, 278, 372, 51, 86, 87, 112, 237, 456, 113,
- 238, 454, 88, 151, 224, 277, 54, 193, 194, 238,
- 295, 225, 284, 295, 398, 115, 296, 55, 297, 296,
- 455, 164, 327, 165, 89, 90, 407, 66, 399, 166,
- 75, 69, 70, 415, 115, 264, 167, 168, 169, 91,
- 170, 76, 171, 265, 361, 416, 79, 419, 400, 404,
- 143, 172, 362, 93, 298, 420, 299, 333, 83, 299,
- 401, 334, 84, 243, 426, 81, 244, 245, 173, 174,
- 246, 198, 427, 82, 199, 200, 1, 2, 247, 383,
- 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
- 394, 61, 62, 63, 64, 65, 248, 99, 73, 74,
- 94, 95, 96, 97, 351, 352, 353, 354, 77, 105,
- 78, 209, 210, 69, 70, 363, 364, 100, 101, 408,
- 102, 143, 376, 141, 103, 104, 127, 128, 129, 396,
- 131, 132, 134, 147, -65, 202, 207, 214, 216, 208,
- 205, 217, 222, 223, 231, 256, 228, 143, 229, 230,
- 235, 241, 333, 253, 258, 260, 261, 271, 272, 414,
- 56, 274, 276, 280, -221, 282, 285, 287, 289, 291,
- 293, 303, 302, 306, 313, 320, 315, 321, 323, 326,
- 328, 329, 335, 339, 435, 336, 346, 337, 348, 340,
- 356, 381, 397, 409, 341, 342, 343, 344, 345, 411,
- 350, 358, 359, 360, 366, 143, 376, 141, 370, 405,
- 422, 430, 143, 406, 333, 407, 421, 431, 428, 429,
- 444, 447, 432, 442, 443, 445, 446, 449, 437, 448,
- 333, 457, 279, 270, 133, 452, 325, 434, 263, 294,
- 418, 138, 139, 257, 0, 0, 0, 0, 0, 206,
- 0, 0, 0, 273
+ 145, 139, 143, 52, 199, 155, 244, 415, 158, 109,
+ 110, 369, 151, 268, 223, 153, 405, 153, 58, 154,
+ 153, 156, 157, 252, 111, 13, 14, 15, 234, 229,
+ 16, 145, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 257, 452, 109, 110, 206, 112, 5,
+ 109, 110, 111, 59, 319, 235, 118, 458, 146, 113,
+ 111, 261, 297, 400, 7, 111, 297, 253, 298, 438,
+ 147, 266, 298, 320, 310, 311, 427, 401, 238, 267,
+ 239, 223, 114, 189, 112, 453, 115, 10, 11, 112,
+ 68, 190, 240, 297, 112, 113, 116, 402, 198, 298,
+ 113, 299, 117, 53, 191, 113, 55, 192, 301, 403,
+ 114, 205, 301, 373, 193, 312, 443, 309, 114, 10,
+ 11, 280, 115, 114, 374, 1, 2, 115, 194, 79,
+ 441, 80, 220, 153, 456, 279, 85, 300, 117, 301,
+ 86, 159, 286, 117, 56, 71, 72, 455, 117, 160,
+ 213, 195, 196, 329, 166, 363, 167, 214, 88, 89,
+ 10, 11, 168, 364, 71, 72, 90, 117, 421, 169,
+ 170, 171, 161, 172, 428, 173, 422, 57, 226, 68,
+ 145, 406, 429, 164, 174, 227, 162, 335, 91, 92,
+ 245, 336, 239, 246, 247, 165, 417, 248, 71, 72,
+ 457, 175, 176, 93, 240, 249, 409, 77, 418, 385,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
+ 396, 211, 212, 250, 63, 64, 65, 66, 67, 365,
+ 366, 75, 76, 200, 81, 78, 201, 202, 96, 97,
+ 98, 99, 131, 353, 354, 355, 356, 95, 83, 84,
+ 410, 145, 378, 143, 101, 102, 103, 104, 107, 398,
+ 105, 106, 129, 134, 130, 133, 136, 209, 149, -65,
+ 204, 216, 233, 210, 58, 207, 218, 145, 219, 224,
+ 225, 258, 335, 230, 231, 232, 237, 243, 255, 416,
+ 260, 262, 263, 273, 274, 278, 282, 276, -221, 284,
+ 287, 289, 291, 293, 295, 305, 304, 308, 315, 323,
+ 317, 322, 325, 328, 330, 437, 331, 337, 339, 348,
+ 338, 350, 341, 342, 358, 383, 368, 399, 411, 371,
+ 343, 344, 345, 346, 347, 145, 378, 143, 352, 360,
+ 361, 362, 145, 372, 335, 407, 413, 408, 409, 424,
+ 423, 430, 432, 431, 434, 439, 433, 444, 446, 447,
+ 335, 449, 451, 448, 445, 450, 459, 454, 272, 327,
+ 281, 135, 436, 296, 420, 0, 265, 140, 141, 259,
+ 0, 0, 0, 0, 208, 0, 0, 0, 0, 0,
+ 0, 0, 0, 275
};
static const yytype_int16 yycheck[] =
{
- 84, 84, 84, 115, 170, 101, 151, 23, 104, 23,
- 24, 23, 93, 23, 24, 99, 366, 101, 38, 100,
- 104, 102, 103, 0, 38, 5, 6, 7, 38, 160,
- 10, 115, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 174, 344, 430, 65, 128, 62, 99,
- 41, 42, 62, 23, 24, 72, 62, 29, 27, 73,
- 35, 192, 447, 73, 26, 37, 25, 73, 38, 29,
- 39, 29, 31, 218, 61, 8, 96, 37, 428, 54,
- 99, 68, 96, 99, 34, 99, 96, 99, 60, 99,
- 50, 82, 62, 53, 444, 109, 46, 114, 56, 109,
- 60, 115, 74, 73, 404, 115, 112, 113, 70, 115,
- 127, 62, 71, 431, 74, 442, 25, 248, 27, 99,
- 99, 217, 73, 107, 29, 30, 96, 27, 455, 99,
- 39, 449, 37, 217, 61, 216, 99, 97, 98, 39,
- 25, 68, 223, 25, 26, 115, 31, 99, 33, 31,
- 105, 28, 264, 30, 59, 60, 111, 99, 40, 36,
- 107, 112, 113, 34, 115, 108, 43, 44, 45, 74,
- 47, 107, 49, 116, 108, 46, 99, 108, 60, 345,
- 264, 58, 116, 108, 69, 116, 71, 271, 110, 71,
- 72, 272, 114, 48, 108, 114, 51, 52, 75, 76,
- 55, 100, 116, 114, 103, 104, 3, 4, 63, 84,
+ 86, 86, 86, 9, 117, 103, 172, 368, 106, 23,
+ 24, 23, 95, 23, 153, 101, 346, 103, 65, 102,
+ 106, 104, 105, 26, 38, 5, 6, 7, 29, 162,
+ 10, 117, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 176, 444, 23, 24, 130, 62, 0,
+ 23, 24, 38, 100, 35, 56, 74, 457, 27, 73,
+ 38, 194, 25, 26, 8, 38, 25, 70, 31, 430,
+ 39, 109, 31, 54, 41, 42, 406, 40, 25, 117,
+ 27, 220, 96, 29, 62, 446, 100, 99, 100, 62,
+ 100, 37, 39, 25, 62, 73, 110, 60, 116, 31,
+ 73, 33, 116, 108, 50, 73, 99, 53, 71, 72,
+ 96, 129, 71, 62, 60, 82, 433, 250, 96, 99,
+ 100, 219, 100, 96, 73, 3, 4, 100, 74, 9,
+ 432, 11, 110, 219, 451, 218, 111, 69, 116, 71,
+ 115, 29, 225, 116, 99, 113, 114, 449, 116, 37,
+ 61, 97, 98, 266, 28, 109, 30, 68, 29, 30,
+ 99, 100, 36, 117, 113, 114, 37, 116, 109, 43,
+ 44, 45, 60, 47, 109, 49, 117, 99, 61, 100,
+ 266, 347, 117, 34, 58, 68, 74, 273, 59, 60,
+ 48, 274, 27, 51, 52, 46, 34, 55, 113, 114,
+ 106, 75, 76, 74, 39, 63, 112, 108, 46, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 17, 18, 19, 20, 21, 81, 108, 24, 25,
- 100, 101, 102, 103, 77, 78, 79, 80, 9, 103,
- 11, 23, 24, 112, 113, 112, 113, 108, 108, 361,
- 108, 335, 335, 335, 108, 108, 108, 108, 99, 340,
- 108, 99, 23, 110, 110, 110, 99, 23, 108, 111,
- 114, 108, 108, 108, 64, 66, 110, 361, 110, 110,
- 110, 110, 366, 110, 110, 110, 110, 108, 108, 370,
- 65, 114, 111, 103, 103, 83, 23, 23, 23, 23,
- 67, 23, 110, 110, 23, 110, 29, 23, 23, 109,
- 111, 103, 115, 108, 426, 109, 23, 110, 23, 108,
- 23, 23, 57, 23, 111, 111, 111, 111, 111, 23,
- 111, 111, 111, 111, 108, 419, 419, 419, 108, 111,
- 32, 110, 426, 111, 428, 111, 111, 110, 108, 108,
- 108, 105, 66, 110, 116, 108, 111, 105, 429, 111,
- 444, 111, 218, 202, 82, 445, 261, 419, 196, 241,
- 372, 84, 84, 187, -1, -1, -1, -1, -1, 130,
- -1, -1, -1, 205
+ 95, 23, 24, 81, 19, 20, 21, 22, 23, 113,
+ 114, 26, 27, 101, 99, 108, 104, 105, 101, 102,
+ 103, 104, 99, 77, 78, 79, 80, 109, 115, 115,
+ 363, 337, 337, 337, 109, 109, 109, 109, 104, 342,
+ 109, 109, 109, 100, 109, 109, 23, 99, 111, 111,
+ 111, 23, 64, 112, 65, 115, 109, 363, 109, 109,
+ 109, 66, 368, 111, 111, 111, 111, 111, 111, 372,
+ 111, 111, 111, 109, 109, 112, 104, 115, 104, 83,
+ 23, 23, 23, 23, 67, 23, 111, 111, 23, 23,
+ 29, 111, 23, 110, 112, 428, 104, 116, 111, 23,
+ 110, 23, 109, 109, 23, 23, 109, 57, 23, 335,
+ 112, 112, 112, 112, 112, 421, 421, 421, 112, 112,
+ 112, 112, 428, 109, 430, 112, 23, 112, 112, 32,
+ 112, 109, 111, 109, 66, 431, 111, 111, 109, 109,
+ 446, 106, 106, 112, 117, 112, 112, 447, 204, 263,
+ 220, 84, 421, 243, 374, -1, 198, 86, 86, 189,
+ -1, -1, -1, -1, 132, -1, -1, -1, -1, -1,
+ -1, -1, -1, 207
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 3, 4, 118, 119, 0, 120, 8, 121, 122,
- 99, 5, 6, 7, 10, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 99, 123, 124, 125,
+ 0, 3, 4, 119, 120, 0, 121, 8, 122, 123,
+ 99, 100, 255, 5, 6, 7, 10, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 124, 125,
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 138, 162, 163, 170, 171, 172, 234, 236, 237, 240,
- 253, 107, 238, 99, 99, 99, 65, 99, 142, 148,
- 241, 142, 142, 142, 142, 142, 99, 143, 156, 112,
- 113, 141, 233, 142, 142, 107, 107, 9, 11, 99,
- 239, 114, 114, 110, 114, 174, 29, 30, 37, 59,
- 60, 74, 242, 108, 100, 101, 102, 103, 161, 108,
- 108, 108, 108, 108, 108, 103, 158, 23, 24, 38,
- 62, 73, 96, 99, 109, 115, 147, 149, 164, 178,
- 181, 217, 221, 224, 228, 230, 231, 108, 108, 99,
- 235, 108, 99, 164, 23, 173, 177, 181, 217, 227,
- 229, 231, 232, 233, 27, 39, 243, 110, 247, 141,
- 139, 233, 141, 139, 141, 141, 139, 29, 37, 60,
- 74, 169, 34, 46, 28, 30, 36, 43, 44, 45,
- 47, 49, 58, 75, 76, 182, 184, 187, 189, 191,
- 195, 198, 200, 202, 204, 207, 216, 29, 37, 50,
- 53, 60, 74, 97, 98, 165, 147, 232, 100, 103,
- 104, 160, 110, 147, 141, 114, 239, 99, 111, 23,
- 24, 61, 68, 244, 23, 250, 108, 108, 109, 140,
- 147, 230, 108, 108, 61, 68, 246, 247, 110, 110,
- 110, 64, 29, 56, 199, 110, 25, 27, 39, 188,
- 245, 110, 245, 48, 51, 52, 55, 63, 81, 211,
- 26, 70, 203, 110, 249, 247, 66, 246, 110, 247,
- 110, 110, 167, 160, 108, 116, 23, 150, 151, 152,
- 156, 108, 108, 241, 114, 175, 111, 141, 139, 140,
- 103, 159, 83, 136, 141, 23, 225, 23, 226, 23,
- 201, 23, 194, 67, 194, 25, 31, 33, 69, 71,
- 183, 193, 110, 23, 212, 213, 110, 247, 41, 42,
- 82, 208, 209, 23, 252, 29, 192, 35, 54, 196,
- 110, 23, 168, 23, 166, 168, 109, 232, 111, 103,
- 157, 144, 145, 233, 141, 115, 109, 110, 248, 108,
- 108, 111, 111, 111, 111, 111, 23, 215, 23, 214,
- 111, 77, 78, 79, 80, 197, 23, 210, 111, 111,
- 111, 108, 116, 112, 113, 153, 108, 23, 99, 146,
- 108, 62, 73, 176, 179, 180, 181, 218, 219, 222,
- 227, 23, 251, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 137, 141, 57, 26, 40,
- 60, 72, 185, 193, 245, 111, 111, 111, 232, 23,
- 154, 23, 155, 145, 141, 34, 46, 205, 207, 108,
- 116, 111, 32, 186, 190, 193, 108, 116, 108, 108,
- 110, 110, 66, 206, 179, 232, 145, 136, 220, 225,
- 223, 226, 110, 116, 108, 108, 111, 105, 111, 105,
- 210, 145, 137, 225, 226, 105, 210, 111
+ 136, 139, 163, 164, 171, 172, 173, 235, 237, 238,
+ 241, 254, 255, 108, 239, 99, 99, 99, 65, 100,
+ 143, 149, 242, 143, 143, 143, 143, 143, 100, 144,
+ 157, 113, 114, 142, 234, 143, 143, 108, 108, 9,
+ 11, 99, 240, 115, 115, 111, 115, 175, 29, 30,
+ 37, 59, 60, 74, 243, 109, 101, 102, 103, 104,
+ 162, 109, 109, 109, 109, 109, 109, 104, 159, 23,
+ 24, 38, 62, 73, 96, 100, 110, 116, 148, 150,
+ 165, 179, 182, 218, 222, 225, 229, 231, 232, 109,
+ 109, 99, 236, 109, 100, 165, 23, 174, 178, 182,
+ 218, 228, 230, 232, 233, 234, 27, 39, 244, 111,
+ 248, 142, 140, 234, 142, 140, 142, 142, 140, 29,
+ 37, 60, 74, 170, 34, 46, 28, 30, 36, 43,
+ 44, 45, 47, 49, 58, 75, 76, 183, 185, 188,
+ 190, 192, 196, 199, 201, 203, 205, 208, 217, 29,
+ 37, 50, 53, 60, 74, 97, 98, 166, 148, 233,
+ 101, 104, 105, 161, 111, 148, 142, 115, 240, 99,
+ 112, 23, 24, 61, 68, 245, 23, 251, 109, 109,
+ 110, 141, 148, 231, 109, 109, 61, 68, 247, 248,
+ 111, 111, 111, 64, 29, 56, 200, 111, 25, 27,
+ 39, 189, 246, 111, 246, 48, 51, 52, 55, 63,
+ 81, 212, 26, 70, 204, 111, 250, 248, 66, 247,
+ 111, 248, 111, 111, 168, 161, 109, 117, 23, 151,
+ 152, 153, 157, 109, 109, 242, 115, 176, 112, 142,
+ 140, 141, 104, 160, 83, 137, 142, 23, 226, 23,
+ 227, 23, 202, 23, 195, 67, 195, 25, 31, 33,
+ 69, 71, 184, 194, 111, 23, 213, 214, 111, 248,
+ 41, 42, 82, 209, 210, 23, 253, 29, 193, 35,
+ 54, 197, 111, 23, 169, 23, 167, 169, 110, 233,
+ 112, 104, 158, 145, 146, 234, 142, 116, 110, 111,
+ 249, 109, 109, 112, 112, 112, 112, 112, 23, 216,
+ 23, 215, 112, 77, 78, 79, 80, 198, 23, 211,
+ 112, 112, 112, 109, 117, 113, 114, 154, 109, 23,
+ 147, 255, 109, 62, 73, 177, 180, 181, 182, 219,
+ 220, 223, 228, 23, 252, 84, 85, 86, 87, 88,
+ 89, 90, 91, 92, 93, 94, 95, 138, 142, 57,
+ 26, 40, 60, 72, 186, 194, 246, 112, 112, 112,
+ 233, 23, 155, 23, 156, 146, 142, 34, 46, 206,
+ 208, 109, 117, 112, 32, 187, 191, 194, 109, 117,
+ 109, 109, 111, 111, 66, 207, 180, 233, 146, 137,
+ 221, 226, 224, 227, 111, 117, 109, 109, 112, 106,
+ 112, 106, 211, 146, 138, 226, 227, 106, 211, 112
};
#define yyerrok (yyerrstatus = 0)
@@ -2101,7 +2104,7 @@ yyreduce:
case 3:
/* Line 1455 of yacc.c */
-#line 269 "program_parse.y"
+#line 270 "program_parse.y"
{
if (state->prog->Target != GL_VERTEX_PROGRAM_ARB) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid fragment program header");
@@ -2114,7 +2117,7 @@ yyreduce:
case 4:
/* Line 1455 of yacc.c */
-#line 277 "program_parse.y"
+#line 278 "program_parse.y"
{
if (state->prog->Target != GL_FRAGMENT_PROGRAM_ARB) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex program header");
@@ -2129,7 +2132,7 @@ yyreduce:
case 7:
/* Line 1455 of yacc.c */
-#line 293 "program_parse.y"
+#line 294 "program_parse.y"
{
int valid = 0;
@@ -2154,7 +2157,7 @@ yyreduce:
case 10:
/* Line 1455 of yacc.c */
-#line 319 "program_parse.y"
+#line 320 "program_parse.y"
{
if ((yyvsp[(1) - (2)].inst) != NULL) {
if (state->inst_tail == NULL) {
@@ -2174,7 +2177,7 @@ yyreduce:
case 12:
/* Line 1455 of yacc.c */
-#line 337 "program_parse.y"
+#line 338 "program_parse.y"
{
(yyval.inst) = (yyvsp[(1) - (1)].inst);
state->prog->NumAluInstructions++;
@@ -2184,7 +2187,7 @@ yyreduce:
case 13:
/* Line 1455 of yacc.c */
-#line 342 "program_parse.y"
+#line 343 "program_parse.y"
{
(yyval.inst) = (yyvsp[(1) - (1)].inst);
state->prog->NumTexInstructions++;
@@ -2194,7 +2197,7 @@ yyreduce:
case 24:
/* Line 1455 of yacc.c */
-#line 363 "program_parse.y"
+#line 364 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor(OPCODE_ARL, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL);
;}
@@ -2203,7 +2206,7 @@ yyreduce:
case 25:
/* Line 1455 of yacc.c */
-#line 369 "program_parse.y"
+#line 370 "program_parse.y"
{
(yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (4)].temp_inst), & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL);
;}
@@ -2212,7 +2215,7 @@ yyreduce:
case 26:
/* Line 1455 of yacc.c */
-#line 375 "program_parse.y"
+#line 376 "program_parse.y"
{
(yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (4)].temp_inst), & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL);
;}
@@ -2221,7 +2224,7 @@ yyreduce:
case 27:
/* Line 1455 of yacc.c */
-#line 381 "program_parse.y"
+#line 382 "program_parse.y"
{
(yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (6)].temp_inst), & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL);
;}
@@ -2230,7 +2233,7 @@ yyreduce:
case 28:
/* Line 1455 of yacc.c */
-#line 388 "program_parse.y"
+#line 389 "program_parse.y"
{
(yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (6)].temp_inst), & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL);
;}
@@ -2239,7 +2242,7 @@ yyreduce:
case 29:
/* Line 1455 of yacc.c */
-#line 395 "program_parse.y"
+#line 396 "program_parse.y"
{
(yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (8)].temp_inst), & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), & (yyvsp[(6) - (8)].src_reg), & (yyvsp[(8) - (8)].src_reg));
;}
@@ -2248,7 +2251,7 @@ yyreduce:
case 30:
/* Line 1455 of yacc.c */
-#line 401 "program_parse.y"
+#line 402 "program_parse.y"
{
(yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (8)].temp_inst), & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), NULL, NULL);
if ((yyval.inst) != NULL) {
@@ -2295,7 +2298,7 @@ yyreduce:
case 31:
/* Line 1455 of yacc.c */
-#line 445 "program_parse.y"
+#line 446 "program_parse.y"
{
(yyval.inst) = asm_instruction_ctor(OPCODE_KIL, NULL, & (yyvsp[(2) - (2)].src_reg), NULL, NULL);
state->fragment.UsesKill = 1;
@@ -2305,7 +2308,7 @@ yyreduce:
case 32:
/* Line 1455 of yacc.c */
-#line 452 "program_parse.y"
+#line 453 "program_parse.y"
{
(yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (12)].temp_inst), & (yyvsp[(2) - (12)].dst_reg), & (yyvsp[(4) - (12)].src_reg), & (yyvsp[(6) - (12)].src_reg), & (yyvsp[(8) - (12)].src_reg));
if ((yyval.inst) != NULL) {
@@ -2352,7 +2355,7 @@ yyreduce:
case 33:
/* Line 1455 of yacc.c */
-#line 496 "program_parse.y"
+#line 497 "program_parse.y"
{
(yyval.integer) = (yyvsp[(2) - (2)].integer);
;}
@@ -2361,91 +2364,91 @@ yyreduce:
case 34:
/* Line 1455 of yacc.c */
-#line 501 "program_parse.y"
+#line 502 "program_parse.y"
{ (yyval.integer) = TEXTURE_1D_INDEX; ;}
break;
case 35:
/* Line 1455 of yacc.c */
-#line 502 "program_parse.y"
+#line 503 "program_parse.y"
{ (yyval.integer) = TEXTURE_2D_INDEX; ;}
break;
case 36:
/* Line 1455 of yacc.c */
-#line 503 "program_parse.y"
+#line 504 "program_parse.y"
{ (yyval.integer) = TEXTURE_3D_INDEX; ;}
break;
case 37:
/* Line 1455 of yacc.c */
-#line 504 "program_parse.y"
+#line 505 "program_parse.y"
{ (yyval.integer) = TEXTURE_CUBE_INDEX; ;}
break;
case 38:
/* Line 1455 of yacc.c */
-#line 505 "program_parse.y"
+#line 506 "program_parse.y"
{ (yyval.integer) = TEXTURE_RECT_INDEX; ;}
break;
case 39:
/* Line 1455 of yacc.c */
-#line 506 "program_parse.y"
+#line 507 "program_parse.y"
{ (yyval.integer) = -TEXTURE_1D_INDEX; ;}
break;
case 40:
/* Line 1455 of yacc.c */
-#line 507 "program_parse.y"
+#line 508 "program_parse.y"
{ (yyval.integer) = -TEXTURE_2D_INDEX; ;}
break;
case 41:
/* Line 1455 of yacc.c */
-#line 508 "program_parse.y"
+#line 509 "program_parse.y"
{ (yyval.integer) = -TEXTURE_RECT_INDEX; ;}
break;
case 42:
/* Line 1455 of yacc.c */
-#line 509 "program_parse.y"
+#line 510 "program_parse.y"
{ (yyval.integer) = TEXTURE_1D_ARRAY_INDEX; ;}
break;
case 43:
/* Line 1455 of yacc.c */
-#line 510 "program_parse.y"
+#line 511 "program_parse.y"
{ (yyval.integer) = TEXTURE_2D_ARRAY_INDEX; ;}
break;
case 44:
/* Line 1455 of yacc.c */
-#line 511 "program_parse.y"
+#line 512 "program_parse.y"
{ (yyval.integer) = -TEXTURE_1D_ARRAY_INDEX; ;}
break;
case 45:
/* Line 1455 of yacc.c */
-#line 512 "program_parse.y"
+#line 513 "program_parse.y"
{ (yyval.integer) = -TEXTURE_2D_ARRAY_INDEX; ;}
break;
case 46:
/* Line 1455 of yacc.c */
-#line 516 "program_parse.y"
+#line 517 "program_parse.y"
{
/* FIXME: Is this correct? Should the extenedSwizzle be applied
* FIXME: to the existing swizzle?
@@ -2460,7 +2463,7 @@ yyreduce:
case 47:
/* Line 1455 of yacc.c */
-#line 528 "program_parse.y"
+#line 529 "program_parse.y"
{
(yyval.src_reg) = (yyvsp[(2) - (2)].src_reg);
@@ -2473,7 +2476,7 @@ yyreduce:
case 48:
/* Line 1455 of yacc.c */
-#line 536 "program_parse.y"
+#line 537 "program_parse.y"
{
(yyval.src_reg) = (yyvsp[(3) - (4)].src_reg);
@@ -2493,7 +2496,7 @@ yyreduce:
case 49:
/* Line 1455 of yacc.c */
-#line 553 "program_parse.y"
+#line 554 "program_parse.y"
{
(yyval.src_reg) = (yyvsp[(1) - (2)].src_reg);
@@ -2505,7 +2508,7 @@ yyreduce:
case 50:
/* Line 1455 of yacc.c */
-#line 560 "program_parse.y"
+#line 561 "program_parse.y"
{
struct asm_symbol temp_sym;
@@ -2527,7 +2530,7 @@ yyreduce:
case 51:
/* Line 1455 of yacc.c */
-#line 579 "program_parse.y"
+#line 580 "program_parse.y"
{
(yyval.src_reg) = (yyvsp[(2) - (3)].src_reg);
@@ -2543,7 +2546,7 @@ yyreduce:
case 52:
/* Line 1455 of yacc.c */
-#line 590 "program_parse.y"
+#line 591 "program_parse.y"
{
(yyval.src_reg) = (yyvsp[(3) - (5)].src_reg);
@@ -2565,7 +2568,7 @@ yyreduce:
case 53:
/* Line 1455 of yacc.c */
-#line 610 "program_parse.y"
+#line 611 "program_parse.y"
{
(yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg);
(yyval.dst_reg).WriteMask = (yyvsp[(2) - (2)].swiz_mask).mask;
@@ -2590,7 +2593,7 @@ yyreduce:
case 54:
/* Line 1455 of yacc.c */
-#line 632 "program_parse.y"
+#line 633 "program_parse.y"
{
init_dst_reg(& (yyval.dst_reg));
(yyval.dst_reg).File = PROGRAM_ADDRESS;
@@ -2602,7 +2605,7 @@ yyreduce:
case 55:
/* Line 1455 of yacc.c */
-#line 641 "program_parse.y"
+#line 642 "program_parse.y"
{
const unsigned xyzw_valid =
((yyvsp[(1) - (7)].ext_swizzle).xyzw_valid << 0)
@@ -2638,7 +2641,7 @@ yyreduce:
case 56:
/* Line 1455 of yacc.c */
-#line 674 "program_parse.y"
+#line 675 "program_parse.y"
{
(yyval.ext_swizzle) = (yyvsp[(2) - (2)].ext_swizzle);
(yyval.ext_swizzle).negate = ((yyvsp[(1) - (2)].negate)) ? 1 : 0;
@@ -2648,7 +2651,7 @@ yyreduce:
case 57:
/* Line 1455 of yacc.c */
-#line 681 "program_parse.y"
+#line 682 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) != 0) && ((yyvsp[(1) - (1)].integer) != 1)) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector");
@@ -2668,7 +2671,7 @@ yyreduce:
case 58:
/* Line 1455 of yacc.c */
-#line 696 "program_parse.y"
+#line 697 "program_parse.y"
{
if (strlen((yyvsp[(1) - (1)].string)) > 1) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector");
@@ -2721,7 +2724,7 @@ yyreduce:
case 59:
/* Line 1455 of yacc.c */
-#line 746 "program_parse.y"
+#line 747 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
@@ -2768,7 +2771,7 @@ yyreduce:
case 60:
/* Line 1455 of yacc.c */
-#line 788 "program_parse.y"
+#line 789 "program_parse.y"
{
init_src_reg(& (yyval.src_reg));
(yyval.src_reg).Base.File = PROGRAM_INPUT;
@@ -2784,7 +2787,7 @@ yyreduce:
case 61:
/* Line 1455 of yacc.c */
-#line 799 "program_parse.y"
+#line 800 "program_parse.y"
{
if (! (yyvsp[(3) - (4)].src_reg).Base.RelAddr
&& ((unsigned) (yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) {
@@ -2810,7 +2813,7 @@ yyreduce:
case 62:
/* Line 1455 of yacc.c */
-#line 820 "program_parse.y"
+#line 821 "program_parse.y"
{
init_src_reg(& (yyval.src_reg));
(yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL)
@@ -2823,7 +2826,7 @@ yyreduce:
case 63:
/* Line 1455 of yacc.c */
-#line 830 "program_parse.y"
+#line 831 "program_parse.y"
{
init_dst_reg(& (yyval.dst_reg));
(yyval.dst_reg).File = PROGRAM_OUTPUT;
@@ -2834,7 +2837,7 @@ yyreduce:
case 64:
/* Line 1455 of yacc.c */
-#line 836 "program_parse.y"
+#line 837 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
@@ -2868,7 +2871,7 @@ yyreduce:
case 65:
/* Line 1455 of yacc.c */
-#line 867 "program_parse.y"
+#line 868 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
@@ -2888,7 +2891,7 @@ yyreduce:
case 68:
/* Line 1455 of yacc.c */
-#line 886 "program_parse.y"
+#line 887 "program_parse.y"
{
init_src_reg(& (yyval.src_reg));
(yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer);
@@ -2898,7 +2901,7 @@ yyreduce:
case 69:
/* Line 1455 of yacc.c */
-#line 893 "program_parse.y"
+#line 894 "program_parse.y"
{
/* FINISHME: Add support for multiple address registers.
*/
@@ -2913,28 +2916,28 @@ yyreduce:
case 70:
/* Line 1455 of yacc.c */
-#line 904 "program_parse.y"
+#line 905 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 71:
/* Line 1455 of yacc.c */
-#line 905 "program_parse.y"
+#line 906 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (2)].integer); ;}
break;
case 72:
/* Line 1455 of yacc.c */
-#line 906 "program_parse.y"
+#line 907 "program_parse.y"
{ (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;}
break;
case 73:
/* Line 1455 of yacc.c */
-#line 910 "program_parse.y"
+#line 911 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) {
yyerror(& (yylsp[(1) - (1)]), state,
@@ -2949,7 +2952,7 @@ yyreduce:
case 74:
/* Line 1455 of yacc.c */
-#line 922 "program_parse.y"
+#line 923 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) {
yyerror(& (yylsp[(1) - (1)]), state,
@@ -2964,7 +2967,7 @@ yyreduce:
case 75:
/* Line 1455 of yacc.c */
-#line 934 "program_parse.y"
+#line 935 "program_parse.y"
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string));
@@ -2985,7 +2988,7 @@ yyreduce:
case 76:
/* Line 1455 of yacc.c */
-#line 952 "program_parse.y"
+#line 953 "program_parse.y"
{
if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector");
@@ -2999,7 +3002,7 @@ yyreduce:
case 77:
/* Line 1455 of yacc.c */
-#line 963 "program_parse.y"
+#line 964 "program_parse.y"
{
if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) {
yyerror(& (yylsp[(1) - (1)]), state,
@@ -3014,21 +3017,21 @@ yyreduce:
case 82:
/* Line 1455 of yacc.c */
-#line 979 "program_parse.y"
+#line 980 "program_parse.y"
{ (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
break;
case 87:
/* Line 1455 of yacc.c */
-#line 983 "program_parse.y"
+#line 984 "program_parse.y"
{ (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;}
break;
case 94:
/* Line 1455 of yacc.c */
-#line 995 "program_parse.y"
+#line 996 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)]));
@@ -3049,7 +3052,7 @@ yyreduce:
case 95:
/* Line 1455 of yacc.c */
-#line 1013 "program_parse.y"
+#line 1014 "program_parse.y"
{
(yyval.attrib) = (yyvsp[(2) - (2)].attrib);
;}
@@ -3058,7 +3061,7 @@ yyreduce:
case 96:
/* Line 1455 of yacc.c */
-#line 1017 "program_parse.y"
+#line 1018 "program_parse.y"
{
(yyval.attrib) = (yyvsp[(2) - (2)].attrib);
;}
@@ -3067,7 +3070,7 @@ yyreduce:
case 97:
/* Line 1455 of yacc.c */
-#line 1023 "program_parse.y"
+#line 1024 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_POS;
;}
@@ -3076,7 +3079,7 @@ yyreduce:
case 98:
/* Line 1455 of yacc.c */
-#line 1027 "program_parse.y"
+#line 1028 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_WEIGHT;
;}
@@ -3085,7 +3088,7 @@ yyreduce:
case 99:
/* Line 1455 of yacc.c */
-#line 1031 "program_parse.y"
+#line 1032 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_NORMAL;
;}
@@ -3094,7 +3097,7 @@ yyreduce:
case 100:
/* Line 1455 of yacc.c */
-#line 1035 "program_parse.y"
+#line 1036 "program_parse.y"
{
if (!state->ctx->Extensions.EXT_secondary_color) {
yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported");
@@ -3108,7 +3111,7 @@ yyreduce:
case 101:
/* Line 1455 of yacc.c */
-#line 1044 "program_parse.y"
+#line 1045 "program_parse.y"
{
if (!state->ctx->Extensions.EXT_fog_coord) {
yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported");
@@ -3122,7 +3125,7 @@ yyreduce:
case 102:
/* Line 1455 of yacc.c */
-#line 1053 "program_parse.y"
+#line 1054 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
;}
@@ -3131,7 +3134,7 @@ yyreduce:
case 103:
/* Line 1455 of yacc.c */
-#line 1057 "program_parse.y"
+#line 1058 "program_parse.y"
{
yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported");
YYERROR;
@@ -3141,7 +3144,7 @@ yyreduce:
case 104:
/* Line 1455 of yacc.c */
-#line 1062 "program_parse.y"
+#line 1063 "program_parse.y"
{
(yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer);
;}
@@ -3150,7 +3153,7 @@ yyreduce:
case 105:
/* Line 1455 of yacc.c */
-#line 1068 "program_parse.y"
+#line 1069 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference");
@@ -3164,7 +3167,7 @@ yyreduce:
case 109:
/* Line 1455 of yacc.c */
-#line 1082 "program_parse.y"
+#line 1083 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_WPOS;
;}
@@ -3173,7 +3176,7 @@ yyreduce:
case 110:
/* Line 1455 of yacc.c */
-#line 1086 "program_parse.y"
+#line 1087 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer);
;}
@@ -3182,7 +3185,7 @@ yyreduce:
case 111:
/* Line 1455 of yacc.c */
-#line 1090 "program_parse.y"
+#line 1091 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_FOGC;
;}
@@ -3191,7 +3194,7 @@ yyreduce:
case 112:
/* Line 1455 of yacc.c */
-#line 1094 "program_parse.y"
+#line 1095 "program_parse.y"
{
(yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer);
;}
@@ -3200,7 +3203,7 @@ yyreduce:
case 115:
/* Line 1455 of yacc.c */
-#line 1102 "program_parse.y"
+#line 1103 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)]));
@@ -3219,7 +3222,7 @@ yyreduce:
case 116:
/* Line 1455 of yacc.c */
-#line 1118 "program_parse.y"
+#line 1119 "program_parse.y"
{
if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) {
yyerror(& (yylsp[(4) - (6)]), state,
@@ -3244,7 +3247,7 @@ yyreduce:
case 117:
/* Line 1455 of yacc.c */
-#line 1140 "program_parse.y"
+#line 1141 "program_parse.y"
{
(yyval.integer) = 0;
;}
@@ -3253,7 +3256,7 @@ yyreduce:
case 118:
/* Line 1455 of yacc.c */
-#line 1144 "program_parse.y"
+#line 1145 "program_parse.y"
{
if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size");
@@ -3267,7 +3270,7 @@ yyreduce:
case 119:
/* Line 1455 of yacc.c */
-#line 1155 "program_parse.y"
+#line 1156 "program_parse.y"
{
(yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym);
;}
@@ -3276,7 +3279,7 @@ yyreduce:
case 120:
/* Line 1455 of yacc.c */
-#line 1161 "program_parse.y"
+#line 1162 "program_parse.y"
{
(yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym);
;}
@@ -3285,7 +3288,7 @@ yyreduce:
case 122:
/* Line 1455 of yacc.c */
-#line 1168 "program_parse.y"
+#line 1169 "program_parse.y"
{
(yyvsp[(1) - (3)].temp_sym).param_binding_length += (yyvsp[(3) - (3)].temp_sym).param_binding_length;
(yyval.temp_sym) = (yyvsp[(1) - (3)].temp_sym);
@@ -3295,7 +3298,7 @@ yyreduce:
case 123:
/* Line 1455 of yacc.c */
-#line 1175 "program_parse.y"
+#line 1176 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
@@ -3306,7 +3309,7 @@ yyreduce:
case 124:
/* Line 1455 of yacc.c */
-#line 1181 "program_parse.y"
+#line 1182 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
@@ -3317,7 +3320,7 @@ yyreduce:
case 125:
/* Line 1455 of yacc.c */
-#line 1187 "program_parse.y"
+#line 1188 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
@@ -3328,7 +3331,7 @@ yyreduce:
case 126:
/* Line 1455 of yacc.c */
-#line 1195 "program_parse.y"
+#line 1196 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
@@ -3339,7 +3342,7 @@ yyreduce:
case 127:
/* Line 1455 of yacc.c */
-#line 1201 "program_parse.y"
+#line 1202 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
@@ -3350,7 +3353,7 @@ yyreduce:
case 128:
/* Line 1455 of yacc.c */
-#line 1207 "program_parse.y"
+#line 1208 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
@@ -3361,7 +3364,7 @@ yyreduce:
case 129:
/* Line 1455 of yacc.c */
-#line 1215 "program_parse.y"
+#line 1216 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
@@ -3372,7 +3375,7 @@ yyreduce:
case 130:
/* Line 1455 of yacc.c */
-#line 1221 "program_parse.y"
+#line 1222 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
@@ -3383,7 +3386,7 @@ yyreduce:
case 131:
/* Line 1455 of yacc.c */
-#line 1227 "program_parse.y"
+#line 1228 "program_parse.y"
{
memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym)));
(yyval.temp_sym).param_binding_begin = ~0;
@@ -3394,98 +3397,98 @@ yyreduce:
case 132:
/* Line 1455 of yacc.c */
-#line 1234 "program_parse.y"
+#line 1235 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;}
break;
case 133:
/* Line 1455 of yacc.c */
-#line 1235 "program_parse.y"
+#line 1236 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 134:
/* Line 1455 of yacc.c */
-#line 1238 "program_parse.y"
+#line 1239 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 135:
/* Line 1455 of yacc.c */
-#line 1239 "program_parse.y"
+#line 1240 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 136:
/* Line 1455 of yacc.c */
-#line 1240 "program_parse.y"
+#line 1241 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 137:
/* Line 1455 of yacc.c */
-#line 1241 "program_parse.y"
+#line 1242 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 138:
/* Line 1455 of yacc.c */
-#line 1242 "program_parse.y"
+#line 1243 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 139:
/* Line 1455 of yacc.c */
-#line 1243 "program_parse.y"
+#line 1244 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 140:
/* Line 1455 of yacc.c */
-#line 1244 "program_parse.y"
+#line 1245 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 141:
/* Line 1455 of yacc.c */
-#line 1245 "program_parse.y"
+#line 1246 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 142:
/* Line 1455 of yacc.c */
-#line 1246 "program_parse.y"
+#line 1247 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 143:
/* Line 1455 of yacc.c */
-#line 1247 "program_parse.y"
+#line 1248 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 144:
/* Line 1455 of yacc.c */
-#line 1248 "program_parse.y"
+#line 1249 "program_parse.y"
{ memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;}
break;
case 145:
/* Line 1455 of yacc.c */
-#line 1252 "program_parse.y"
+#line 1253 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_MATERIAL;
@@ -3497,7 +3500,7 @@ yyreduce:
case 146:
/* Line 1455 of yacc.c */
-#line 1261 "program_parse.y"
+#line 1262 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
@@ -3506,7 +3509,7 @@ yyreduce:
case 147:
/* Line 1455 of yacc.c */
-#line 1265 "program_parse.y"
+#line 1266 "program_parse.y"
{
(yyval.integer) = STATE_EMISSION;
;}
@@ -3515,7 +3518,7 @@ yyreduce:
case 148:
/* Line 1455 of yacc.c */
-#line 1269 "program_parse.y"
+#line 1270 "program_parse.y"
{
(yyval.integer) = STATE_SHININESS;
;}
@@ -3524,7 +3527,7 @@ yyreduce:
case 149:
/* Line 1455 of yacc.c */
-#line 1275 "program_parse.y"
+#line 1276 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHT;
@@ -3536,7 +3539,7 @@ yyreduce:
case 150:
/* Line 1455 of yacc.c */
-#line 1284 "program_parse.y"
+#line 1285 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
@@ -3545,7 +3548,7 @@ yyreduce:
case 151:
/* Line 1455 of yacc.c */
-#line 1288 "program_parse.y"
+#line 1289 "program_parse.y"
{
(yyval.integer) = STATE_POSITION;
;}
@@ -3554,7 +3557,7 @@ yyreduce:
case 152:
/* Line 1455 of yacc.c */
-#line 1292 "program_parse.y"
+#line 1293 "program_parse.y"
{
if (!state->ctx->Extensions.EXT_point_parameters) {
yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported");
@@ -3568,7 +3571,7 @@ yyreduce:
case 153:
/* Line 1455 of yacc.c */
-#line 1301 "program_parse.y"
+#line 1302 "program_parse.y"
{
(yyval.integer) = (yyvsp[(2) - (2)].integer);
;}
@@ -3577,7 +3580,7 @@ yyreduce:
case 154:
/* Line 1455 of yacc.c */
-#line 1305 "program_parse.y"
+#line 1306 "program_parse.y"
{
(yyval.integer) = STATE_HALF_VECTOR;
;}
@@ -3586,7 +3589,7 @@ yyreduce:
case 155:
/* Line 1455 of yacc.c */
-#line 1311 "program_parse.y"
+#line 1312 "program_parse.y"
{
(yyval.integer) = STATE_SPOT_DIRECTION;
;}
@@ -3595,7 +3598,7 @@ yyreduce:
case 156:
/* Line 1455 of yacc.c */
-#line 1317 "program_parse.y"
+#line 1318 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(2) - (2)].state)[0];
(yyval.state)[1] = (yyvsp[(2) - (2)].state)[1];
@@ -3605,7 +3608,7 @@ yyreduce:
case 157:
/* Line 1455 of yacc.c */
-#line 1324 "program_parse.y"
+#line 1325 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT;
@@ -3615,7 +3618,7 @@ yyreduce:
case 158:
/* Line 1455 of yacc.c */
-#line 1329 "program_parse.y"
+#line 1330 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR;
@@ -3626,7 +3629,7 @@ yyreduce:
case 159:
/* Line 1455 of yacc.c */
-#line 1337 "program_parse.y"
+#line 1338 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_LIGHTPROD;
@@ -3639,7 +3642,7 @@ yyreduce:
case 161:
/* Line 1455 of yacc.c */
-#line 1349 "program_parse.y"
+#line 1350 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(3) - (3)].integer);
@@ -3650,7 +3653,7 @@ yyreduce:
case 162:
/* Line 1455 of yacc.c */
-#line 1357 "program_parse.y"
+#line 1358 "program_parse.y"
{
(yyval.integer) = STATE_TEXENV_COLOR;
;}
@@ -3659,7 +3662,7 @@ yyreduce:
case 163:
/* Line 1455 of yacc.c */
-#line 1363 "program_parse.y"
+#line 1364 "program_parse.y"
{
(yyval.integer) = STATE_AMBIENT;
;}
@@ -3668,7 +3671,7 @@ yyreduce:
case 164:
/* Line 1455 of yacc.c */
-#line 1367 "program_parse.y"
+#line 1368 "program_parse.y"
{
(yyval.integer) = STATE_DIFFUSE;
;}
@@ -3677,7 +3680,7 @@ yyreduce:
case 165:
/* Line 1455 of yacc.c */
-#line 1371 "program_parse.y"
+#line 1372 "program_parse.y"
{
(yyval.integer) = STATE_SPECULAR;
;}
@@ -3686,7 +3689,7 @@ yyreduce:
case 166:
/* Line 1455 of yacc.c */
-#line 1377 "program_parse.y"
+#line 1378 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector");
@@ -3700,7 +3703,7 @@ yyreduce:
case 167:
/* Line 1455 of yacc.c */
-#line 1388 "program_parse.y"
+#line 1389 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_TEXGEN;
@@ -3712,7 +3715,7 @@ yyreduce:
case 168:
/* Line 1455 of yacc.c */
-#line 1397 "program_parse.y"
+#line 1398 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_S;
;}
@@ -3721,7 +3724,7 @@ yyreduce:
case 169:
/* Line 1455 of yacc.c */
-#line 1401 "program_parse.y"
+#line 1402 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_OBJECT_S;
;}
@@ -3730,7 +3733,7 @@ yyreduce:
case 170:
/* Line 1455 of yacc.c */
-#line 1406 "program_parse.y"
+#line 1407 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S;
;}
@@ -3739,7 +3742,7 @@ yyreduce:
case 171:
/* Line 1455 of yacc.c */
-#line 1410 "program_parse.y"
+#line 1411 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S;
;}
@@ -3748,7 +3751,7 @@ yyreduce:
case 172:
/* Line 1455 of yacc.c */
-#line 1414 "program_parse.y"
+#line 1415 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S;
;}
@@ -3757,7 +3760,7 @@ yyreduce:
case 173:
/* Line 1455 of yacc.c */
-#line 1418 "program_parse.y"
+#line 1419 "program_parse.y"
{
(yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S;
;}
@@ -3766,7 +3769,7 @@ yyreduce:
case 174:
/* Line 1455 of yacc.c */
-#line 1424 "program_parse.y"
+#line 1425 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(2) - (2)].integer);
@@ -3776,7 +3779,7 @@ yyreduce:
case 175:
/* Line 1455 of yacc.c */
-#line 1431 "program_parse.y"
+#line 1432 "program_parse.y"
{
(yyval.integer) = STATE_FOG_COLOR;
;}
@@ -3785,7 +3788,7 @@ yyreduce:
case 176:
/* Line 1455 of yacc.c */
-#line 1435 "program_parse.y"
+#line 1436 "program_parse.y"
{
(yyval.integer) = STATE_FOG_PARAMS;
;}
@@ -3794,7 +3797,7 @@ yyreduce:
case 177:
/* Line 1455 of yacc.c */
-#line 1441 "program_parse.y"
+#line 1442 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_CLIPPLANE;
@@ -3805,7 +3808,7 @@ yyreduce:
case 178:
/* Line 1455 of yacc.c */
-#line 1449 "program_parse.y"
+#line 1450 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector");
@@ -3819,7 +3822,7 @@ yyreduce:
case 179:
/* Line 1455 of yacc.c */
-#line 1460 "program_parse.y"
+#line 1461 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = (yyvsp[(2) - (2)].integer);
@@ -3829,7 +3832,7 @@ yyreduce:
case 180:
/* Line 1455 of yacc.c */
-#line 1467 "program_parse.y"
+#line 1468 "program_parse.y"
{
(yyval.integer) = STATE_POINT_SIZE;
;}
@@ -3838,7 +3841,7 @@ yyreduce:
case 181:
/* Line 1455 of yacc.c */
-#line 1471 "program_parse.y"
+#line 1472 "program_parse.y"
{
(yyval.integer) = STATE_POINT_ATTENUATION;
;}
@@ -3847,7 +3850,7 @@ yyreduce:
case 182:
/* Line 1455 of yacc.c */
-#line 1477 "program_parse.y"
+#line 1478 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (5)].state)[0];
(yyval.state)[1] = (yyvsp[(1) - (5)].state)[1];
@@ -3860,7 +3863,7 @@ yyreduce:
case 183:
/* Line 1455 of yacc.c */
-#line 1487 "program_parse.y"
+#line 1488 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (2)].state)[0];
(yyval.state)[1] = (yyvsp[(1) - (2)].state)[1];
@@ -3873,7 +3876,7 @@ yyreduce:
case 184:
/* Line 1455 of yacc.c */
-#line 1497 "program_parse.y"
+#line 1498 "program_parse.y"
{
(yyval.state)[2] = 0;
(yyval.state)[3] = 3;
@@ -3883,7 +3886,7 @@ yyreduce:
case 185:
/* Line 1455 of yacc.c */
-#line 1502 "program_parse.y"
+#line 1503 "program_parse.y"
{
/* It seems logical that the matrix row range specifier would have
* to specify a range or more than one row (i.e., $5 > $3).
@@ -3904,7 +3907,7 @@ yyreduce:
case 186:
/* Line 1455 of yacc.c */
-#line 1520 "program_parse.y"
+#line 1521 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(2) - (3)].state)[0];
(yyval.state)[1] = (yyvsp[(2) - (3)].state)[1];
@@ -3915,7 +3918,7 @@ yyreduce:
case 187:
/* Line 1455 of yacc.c */
-#line 1528 "program_parse.y"
+#line 1529 "program_parse.y"
{
(yyval.integer) = 0;
;}
@@ -3924,7 +3927,7 @@ yyreduce:
case 188:
/* Line 1455 of yacc.c */
-#line 1532 "program_parse.y"
+#line 1533 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
@@ -3933,7 +3936,7 @@ yyreduce:
case 189:
/* Line 1455 of yacc.c */
-#line 1538 "program_parse.y"
+#line 1539 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_INVERSE;
;}
@@ -3942,7 +3945,7 @@ yyreduce:
case 190:
/* Line 1455 of yacc.c */
-#line 1542 "program_parse.y"
+#line 1543 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_TRANSPOSE;
;}
@@ -3951,7 +3954,7 @@ yyreduce:
case 191:
/* Line 1455 of yacc.c */
-#line 1546 "program_parse.y"
+#line 1547 "program_parse.y"
{
(yyval.integer) = STATE_MATRIX_INVTRANS;
;}
@@ -3960,7 +3963,7 @@ yyreduce:
case 192:
/* Line 1455 of yacc.c */
-#line 1552 "program_parse.y"
+#line 1553 "program_parse.y"
{
if ((yyvsp[(1) - (1)].integer) > 3) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference");
@@ -3974,7 +3977,7 @@ yyreduce:
case 193:
/* Line 1455 of yacc.c */
-#line 1563 "program_parse.y"
+#line 1564 "program_parse.y"
{
(yyval.state)[0] = STATE_MODELVIEW_MATRIX;
(yyval.state)[1] = (yyvsp[(2) - (2)].integer);
@@ -3984,7 +3987,7 @@ yyreduce:
case 194:
/* Line 1455 of yacc.c */
-#line 1568 "program_parse.y"
+#line 1569 "program_parse.y"
{
(yyval.state)[0] = STATE_PROJECTION_MATRIX;
(yyval.state)[1] = 0;
@@ -3994,7 +3997,7 @@ yyreduce:
case 195:
/* Line 1455 of yacc.c */
-#line 1573 "program_parse.y"
+#line 1574 "program_parse.y"
{
(yyval.state)[0] = STATE_MVP_MATRIX;
(yyval.state)[1] = 0;
@@ -4004,7 +4007,7 @@ yyreduce:
case 196:
/* Line 1455 of yacc.c */
-#line 1578 "program_parse.y"
+#line 1579 "program_parse.y"
{
(yyval.state)[0] = STATE_TEXTURE_MATRIX;
(yyval.state)[1] = (yyvsp[(2) - (2)].integer);
@@ -4014,7 +4017,7 @@ yyreduce:
case 197:
/* Line 1455 of yacc.c */
-#line 1583 "program_parse.y"
+#line 1584 "program_parse.y"
{
yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported");
YYERROR;
@@ -4024,7 +4027,7 @@ yyreduce:
case 198:
/* Line 1455 of yacc.c */
-#line 1588 "program_parse.y"
+#line 1589 "program_parse.y"
{
(yyval.state)[0] = STATE_PROGRAM_MATRIX;
(yyval.state)[1] = (yyvsp[(3) - (4)].integer);
@@ -4034,7 +4037,7 @@ yyreduce:
case 199:
/* Line 1455 of yacc.c */
-#line 1595 "program_parse.y"
+#line 1596 "program_parse.y"
{
(yyval.integer) = 0;
;}
@@ -4043,7 +4046,7 @@ yyreduce:
case 200:
/* Line 1455 of yacc.c */
-#line 1599 "program_parse.y"
+#line 1600 "program_parse.y"
{
(yyval.integer) = (yyvsp[(1) - (1)].integer);
;}
@@ -4052,7 +4055,7 @@ yyreduce:
case 201:
/* Line 1455 of yacc.c */
-#line 1604 "program_parse.y"
+#line 1605 "program_parse.y"
{
/* Since GL_ARB_vertex_blend isn't supported, only modelview matrix
* zero is valid.
@@ -4069,7 +4072,7 @@ yyreduce:
case 202:
/* Line 1455 of yacc.c */
-#line 1617 "program_parse.y"
+#line 1618 "program_parse.y"
{
/* Since GL_ARB_matrix_palette isn't supported, just let any value
* through here. The error will be generated later.
@@ -4081,7 +4084,7 @@ yyreduce:
case 203:
/* Line 1455 of yacc.c */
-#line 1625 "program_parse.y"
+#line 1626 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector");
@@ -4095,7 +4098,7 @@ yyreduce:
case 204:
/* Line 1455 of yacc.c */
-#line 1636 "program_parse.y"
+#line 1637 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = STATE_DEPTH_RANGE;
@@ -4105,7 +4108,7 @@ yyreduce:
case 209:
/* Line 1455 of yacc.c */
-#line 1648 "program_parse.y"
+#line 1649 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
@@ -4118,7 +4121,7 @@ yyreduce:
case 210:
/* Line 1455 of yacc.c */
-#line 1658 "program_parse.y"
+#line 1659 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (1)].integer);
(yyval.state)[1] = (yyvsp[(1) - (1)].integer);
@@ -4128,7 +4131,7 @@ yyreduce:
case 211:
/* Line 1455 of yacc.c */
-#line 1663 "program_parse.y"
+#line 1664 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (3)].integer);
(yyval.state)[1] = (yyvsp[(3) - (3)].integer);
@@ -4138,7 +4141,7 @@ yyreduce:
case 212:
/* Line 1455 of yacc.c */
-#line 1670 "program_parse.y"
+#line 1671 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
@@ -4151,7 +4154,7 @@ yyreduce:
case 213:
/* Line 1455 of yacc.c */
-#line 1680 "program_parse.y"
+#line 1681 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
@@ -4164,7 +4167,7 @@ yyreduce:
case 214:
/* Line 1455 of yacc.c */
-#line 1689 "program_parse.y"
+#line 1690 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (1)].integer);
(yyval.state)[1] = (yyvsp[(1) - (1)].integer);
@@ -4174,7 +4177,7 @@ yyreduce:
case 215:
/* Line 1455 of yacc.c */
-#line 1694 "program_parse.y"
+#line 1695 "program_parse.y"
{
(yyval.state)[0] = (yyvsp[(1) - (3)].integer);
(yyval.state)[1] = (yyvsp[(3) - (3)].integer);
@@ -4184,7 +4187,7 @@ yyreduce:
case 216:
/* Line 1455 of yacc.c */
-#line 1701 "program_parse.y"
+#line 1702 "program_parse.y"
{
memset((yyval.state), 0, sizeof((yyval.state)));
(yyval.state)[0] = state->state_param_enum;
@@ -4197,7 +4200,7 @@ yyreduce:
case 217:
/* Line 1455 of yacc.c */
-#line 1711 "program_parse.y"
+#line 1712 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference");
@@ -4210,7 +4213,7 @@ yyreduce:
case 218:
/* Line 1455 of yacc.c */
-#line 1721 "program_parse.y"
+#line 1722 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference");
@@ -4223,7 +4226,7 @@ yyreduce:
case 223:
/* Line 1455 of yacc.c */
-#line 1736 "program_parse.y"
+#line 1737 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
@@ -4236,7 +4239,7 @@ yyreduce:
case 224:
/* Line 1455 of yacc.c */
-#line 1746 "program_parse.y"
+#line 1747 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (yyvsp[(1) - (1)].real);
@@ -4249,7 +4252,7 @@ yyreduce:
case 225:
/* Line 1455 of yacc.c */
-#line 1754 "program_parse.y"
+#line 1755 "program_parse.y"
{
(yyval.vector).count = 1;
(yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer);
@@ -4262,7 +4265,7 @@ yyreduce:
case 226:
/* Line 1455 of yacc.c */
-#line 1764 "program_parse.y"
+#line 1765 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (3)].real);
@@ -4275,7 +4278,7 @@ yyreduce:
case 227:
/* Line 1455 of yacc.c */
-#line 1772 "program_parse.y"
+#line 1773 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (5)].real);
@@ -4288,7 +4291,7 @@ yyreduce:
case 228:
/* Line 1455 of yacc.c */
-#line 1781 "program_parse.y"
+#line 1782 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (7)].real);
@@ -4301,7 +4304,7 @@ yyreduce:
case 229:
/* Line 1455 of yacc.c */
-#line 1790 "program_parse.y"
+#line 1791 "program_parse.y"
{
(yyval.vector).count = 4;
(yyval.vector).data[0] = (yyvsp[(2) - (9)].real);
@@ -4314,7 +4317,7 @@ yyreduce:
case 230:
/* Line 1455 of yacc.c */
-#line 1800 "program_parse.y"
+#line 1801 "program_parse.y"
{
(yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real);
;}
@@ -4323,7 +4326,7 @@ yyreduce:
case 231:
/* Line 1455 of yacc.c */
-#line 1804 "program_parse.y"
+#line 1805 "program_parse.y"
{
(yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer));
;}
@@ -4332,35 +4335,35 @@ yyreduce:
case 232:
/* Line 1455 of yacc.c */
-#line 1809 "program_parse.y"
+#line 1810 "program_parse.y"
{ (yyval.negate) = FALSE; ;}
break;
case 233:
/* Line 1455 of yacc.c */
-#line 1810 "program_parse.y"
+#line 1811 "program_parse.y"
{ (yyval.negate) = TRUE; ;}
break;
case 234:
/* Line 1455 of yacc.c */
-#line 1811 "program_parse.y"
+#line 1812 "program_parse.y"
{ (yyval.negate) = FALSE; ;}
break;
case 235:
/* Line 1455 of yacc.c */
-#line 1814 "program_parse.y"
+#line 1815 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (2)].integer); ;}
break;
case 237:
/* Line 1455 of yacc.c */
-#line 1818 "program_parse.y"
+#line 1819 "program_parse.y"
{
/* NV_fragment_program_option defines the size qualifiers in a
* fairly broken way. "SHORT" or "LONG" can optionally be used
@@ -4399,7 +4402,7 @@ yyreduce:
case 238:
/* Line 1455 of yacc.c */
-#line 1852 "program_parse.y"
+#line 1853 "program_parse.y"
{
;}
break;
@@ -4407,14 +4410,14 @@ yyreduce:
case 239:
/* Line 1455 of yacc.c */
-#line 1856 "program_parse.y"
+#line 1857 "program_parse.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
break;
case 241:
/* Line 1455 of yacc.c */
-#line 1860 "program_parse.y"
+#line 1861 "program_parse.y"
{
if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) {
YYERROR;
@@ -4425,7 +4428,7 @@ yyreduce:
case 242:
/* Line 1455 of yacc.c */
-#line 1866 "program_parse.y"
+#line 1867 "program_parse.y"
{
if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) {
YYERROR;
@@ -4436,7 +4439,7 @@ yyreduce:
case 243:
/* Line 1455 of yacc.c */
-#line 1874 "program_parse.y"
+#line 1875 "program_parse.y"
{
struct asm_symbol *const s =
declare_variable(state, (yyvsp[(3) - (5)].string), at_output, & (yylsp[(3) - (5)]));
@@ -4452,7 +4455,7 @@ yyreduce:
case 244:
/* Line 1455 of yacc.c */
-#line 1887 "program_parse.y"
+#line 1888 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_HPOS;
@@ -4466,7 +4469,7 @@ yyreduce:
case 245:
/* Line 1455 of yacc.c */
-#line 1896 "program_parse.y"
+#line 1897 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_FOGC;
@@ -4480,7 +4483,7 @@ yyreduce:
case 246:
/* Line 1455 of yacc.c */
-#line 1905 "program_parse.y"
+#line 1906 "program_parse.y"
{
(yyval.result) = (yyvsp[(2) - (2)].result);
;}
@@ -4489,7 +4492,7 @@ yyreduce:
case 247:
/* Line 1455 of yacc.c */
-#line 1909 "program_parse.y"
+#line 1910 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_PSIZ;
@@ -4503,7 +4506,7 @@ yyreduce:
case 248:
/* Line 1455 of yacc.c */
-#line 1918 "program_parse.y"
+#line 1919 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer);
@@ -4517,7 +4520,7 @@ yyreduce:
case 249:
/* Line 1455 of yacc.c */
-#line 1927 "program_parse.y"
+#line 1928 "program_parse.y"
{
if (state->mode == ARB_fragment) {
(yyval.result) = FRAG_RESULT_DEPTH;
@@ -4531,7 +4534,7 @@ yyreduce:
case 250:
/* Line 1455 of yacc.c */
-#line 1938 "program_parse.y"
+#line 1939 "program_parse.y"
{
(yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer);
;}
@@ -4540,7 +4543,7 @@ yyreduce:
case 251:
/* Line 1455 of yacc.c */
-#line 1944 "program_parse.y"
+#line 1945 "program_parse.y"
{
(yyval.integer) = (state->mode == ARB_vertex)
? VERT_RESULT_COL0
@@ -4551,7 +4554,7 @@ yyreduce:
case 252:
/* Line 1455 of yacc.c */
-#line 1950 "program_parse.y"
+#line 1951 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = VERT_RESULT_COL0;
@@ -4565,7 +4568,7 @@ yyreduce:
case 253:
/* Line 1455 of yacc.c */
-#line 1959 "program_parse.y"
+#line 1960 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = VERT_RESULT_BFC0;
@@ -4579,7 +4582,7 @@ yyreduce:
case 254:
/* Line 1455 of yacc.c */
-#line 1970 "program_parse.y"
+#line 1971 "program_parse.y"
{
(yyval.integer) = 0;
;}
@@ -4588,7 +4591,7 @@ yyreduce:
case 255:
/* Line 1455 of yacc.c */
-#line 1974 "program_parse.y"
+#line 1975 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = 0;
@@ -4602,7 +4605,7 @@ yyreduce:
case 256:
/* Line 1455 of yacc.c */
-#line 1983 "program_parse.y"
+#line 1984 "program_parse.y"
{
if (state->mode == ARB_vertex) {
(yyval.integer) = 1;
@@ -4616,91 +4619,91 @@ yyreduce:
case 257:
/* Line 1455 of yacc.c */
-#line 1993 "program_parse.y"
+#line 1994 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 258:
/* Line 1455 of yacc.c */
-#line 1994 "program_parse.y"
+#line 1995 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 259:
/* Line 1455 of yacc.c */
-#line 1995 "program_parse.y"
+#line 1996 "program_parse.y"
{ (yyval.integer) = 1; ;}
break;
case 260:
/* Line 1455 of yacc.c */
-#line 1998 "program_parse.y"
+#line 1999 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 261:
/* Line 1455 of yacc.c */
-#line 1999 "program_parse.y"
+#line 2000 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 262:
/* Line 1455 of yacc.c */
-#line 2000 "program_parse.y"
+#line 2001 "program_parse.y"
{ (yyval.integer) = 1; ;}
break;
case 263:
/* Line 1455 of yacc.c */
-#line 2003 "program_parse.y"
+#line 2004 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 264:
/* Line 1455 of yacc.c */
-#line 2004 "program_parse.y"
+#line 2005 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
case 265:
/* Line 1455 of yacc.c */
-#line 2007 "program_parse.y"
+#line 2008 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 266:
/* Line 1455 of yacc.c */
-#line 2008 "program_parse.y"
+#line 2009 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
case 267:
/* Line 1455 of yacc.c */
-#line 2011 "program_parse.y"
+#line 2012 "program_parse.y"
{ (yyval.integer) = 0; ;}
break;
case 268:
/* Line 1455 of yacc.c */
-#line 2012 "program_parse.y"
+#line 2013 "program_parse.y"
{ (yyval.integer) = (yyvsp[(2) - (3)].integer); ;}
break;
case 269:
/* Line 1455 of yacc.c */
-#line 2016 "program_parse.y"
+#line 2017 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector");
@@ -4714,7 +4717,7 @@ yyreduce:
case 270:
/* Line 1455 of yacc.c */
-#line 2027 "program_parse.y"
+#line 2028 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector");
@@ -4728,7 +4731,7 @@ yyreduce:
case 271:
/* Line 1455 of yacc.c */
-#line 2038 "program_parse.y"
+#line 2039 "program_parse.y"
{
if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) {
yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector");
@@ -4742,7 +4745,7 @@ yyreduce:
case 272:
/* Line 1455 of yacc.c */
-#line 2049 "program_parse.y"
+#line 2050 "program_parse.y"
{
struct asm_symbol *exist = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string));
@@ -4766,7 +4769,7 @@ yyreduce:
/* Line 1455 of yacc.c */
-#line 4770 "program_parse.tab.c"
+#line 4773 "program_parse.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4985,7 +4988,7 @@ yyreturn:
/* Line 1675 of yacc.c */
-#line 2069 "program_parse.y"
+#line 2074 "program_parse.y"
void
diff --git a/src/mesa/shader/program_parse.tab.h b/src/mesa/shader/program_parse.tab.h
index 5f89532d65..c6ed6c777e 100644
--- a/src/mesa/shader/program_parse.tab.h
+++ b/src/mesa/shader/program_parse.tab.h
@@ -136,13 +136,14 @@
VTXATTRIB = 352,
WEIGHT = 353,
IDENTIFIER = 354,
- MASK4 = 355,
- MASK3 = 356,
- MASK2 = 357,
- MASK1 = 358,
- SWIZZLE = 359,
- DOT_DOT = 360,
- DOT = 361
+ USED_IDENTIFIER = 355,
+ MASK4 = 356,
+ MASK3 = 357,
+ MASK2 = 358,
+ MASK1 = 359,
+ SWIZZLE = 360,
+ DOT_DOT = 361,
+ DOT = 362
};
#endif
@@ -182,7 +183,7 @@ typedef union YYSTYPE
/* Line 1676 of yacc.c */
-#line 186 "program_parse.tab.h"
+#line 187 "program_parse.tab.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y
index 51cc9f7f11..d6bac07081 100644
--- a/src/mesa/shader/program_parse.y
+++ b/src/mesa/shader/program_parse.y
@@ -178,7 +178,8 @@ static struct asm_instruction *asm_instruction_copy_ctor(
%token VERTEX VTXATTRIB
%token WEIGHT
-%token <string> IDENTIFIER
+%token <string> IDENTIFIER USED_IDENTIFIER
+%type <string> string
%token <swiz_mask> MASK4 MASK3 MASK2 MASK1 SWIZZLE
%token DOT_DOT
%token DOT
@@ -289,7 +290,7 @@ optionSequence: optionSequence option
|
;
-option: OPTION IDENTIFIER ';'
+option: OPTION string ';'
{
int valid = 0;
@@ -692,7 +693,7 @@ extSwizSel: INTEGER
$$.xyzw_valid = 1;
$$.rgba_valid = 1;
}
- | IDENTIFIER
+ | string
{
if (strlen($1) > 1) {
yyerror(& @1, state, "invalid extended swizzle selector");
@@ -742,7 +743,7 @@ extSwizSel: INTEGER
}
;
-srcReg: IDENTIFIER /* temporaryReg | progParamSingle */
+srcReg: USED_IDENTIFIER /* temporaryReg | progParamSingle */
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, $1);
@@ -832,7 +833,7 @@ dstReg: resultBinding
$$.File = PROGRAM_OUTPUT;
$$.Index = $1;
}
- | IDENTIFIER /* temporaryReg | vertexResultReg */
+ | USED_IDENTIFIER /* temporaryReg | vertexResultReg */
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, $1);
@@ -863,7 +864,7 @@ dstReg: resultBinding
}
;
-progParamArray: IDENTIFIER
+progParamArray: USED_IDENTIFIER
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, $1);
@@ -930,7 +931,7 @@ addrRegNegOffset: INTEGER
}
;
-addrReg: IDENTIFIER
+addrReg: USED_IDENTIFIER
{
struct asm_symbol *const s = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, $1);
@@ -1814,7 +1815,7 @@ optionalSign: '+' { $$ = FALSE; }
TEMP_statement: optVarSize TEMP { $<integer>$ = $2; } varNameList
;
-optVarSize: IDENTIFIER
+optVarSize: string
{
/* NV_fragment_program_option defines the size qualifiers in a
* fairly broken way. "SHORT" or "LONG" can optionally be used
@@ -2045,7 +2046,7 @@ legacyTexUnitNum: INTEGER
}
;
-ALIAS_statement: ALIAS IDENTIFIER '=' IDENTIFIER
+ALIAS_statement: ALIAS IDENTIFIER '=' USED_IDENTIFIER
{
struct asm_symbol *exist = (struct asm_symbol *)
_mesa_symbol_table_find_symbol(state->st, 0, $2);
@@ -2066,6 +2067,10 @@ ALIAS_statement: ALIAS IDENTIFIER '=' IDENTIFIER
}
;
+string: IDENTIFIER
+ | USED_IDENTIFIER
+ ;
+
%%
void