} while(0);
#define YY_EXTRA_TYPE struct asm_parser_state *
- #line 1164 "lex.yy.c"
-#line 1008 "lex.yy.c"
++#line 1157 "lex.yy.c"
#define INITIAL 0
register int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- #line 156 "program_lexer.l"
-#line 137 "program_lexer.l"
++#line 157 "program_lexer.l"
- #line 1413 "lex.yy.c"
-#line 1252 "lex.yy.c"
++#line 1401 "lex.yy.c"
yylval = yylval_param;
case 1:
YY_RULE_SETUP
- #line 158 "program_lexer.l"
-#line 139 "program_lexer.l"
++#line 159 "program_lexer.l"
{ return ARBvp_10; }
YY_BREAK
case 2:
YY_RULE_SETUP
- #line 159 "program_lexer.l"
-#line 140 "program_lexer.l"
++#line 160 "program_lexer.l"
{ return ARBfp_10; }
YY_BREAK
case 3:
YY_RULE_SETUP
- #line 160 "program_lexer.l"
-#line 141 "program_lexer.l"
++#line 161 "program_lexer.l"
{
yylval->integer = at_address;
return_token_or_IDENTIFIER(require_ARB_vp, ADDRESS);
YY_BREAK
case 4:
YY_RULE_SETUP
- #line 164 "program_lexer.l"
-#line 145 "program_lexer.l"
++#line 165 "program_lexer.l"
{ return ALIAS; }
YY_BREAK
case 5:
YY_RULE_SETUP
- #line 165 "program_lexer.l"
-#line 146 "program_lexer.l"
++#line 166 "program_lexer.l"
{ return ATTRIB; }
YY_BREAK
case 6:
YY_RULE_SETUP
- #line 166 "program_lexer.l"
-#line 147 "program_lexer.l"
++#line 167 "program_lexer.l"
{ return END; }
YY_BREAK
case 7:
YY_RULE_SETUP
- #line 167 "program_lexer.l"
-#line 148 "program_lexer.l"
++#line 168 "program_lexer.l"
{ return OPTION; }
YY_BREAK
case 8:
YY_RULE_SETUP
- #line 168 "program_lexer.l"
-#line 149 "program_lexer.l"
++#line 169 "program_lexer.l"
{ return OUTPUT; }
YY_BREAK
case 9:
YY_RULE_SETUP
- #line 169 "program_lexer.l"
-#line 150 "program_lexer.l"
++#line 170 "program_lexer.l"
{ return PARAM; }
YY_BREAK
case 10:
YY_RULE_SETUP
- #line 170 "program_lexer.l"
-#line 151 "program_lexer.l"
++#line 171 "program_lexer.l"
{ yylval->integer = at_temp; return TEMP; }
YY_BREAK
case 11:
YY_RULE_SETUP
- #line 172 "program_lexer.l"
-#line 153 "program_lexer.l"
-{ return_opcode( 1, VECTOR_OP, ABS, OFF); }
++#line 173 "program_lexer.l"
+{ return_opcode( 1, VECTOR_OP, ABS, 3); }
YY_BREAK
case 12:
YY_RULE_SETUP
- #line 173 "program_lexer.l"
-#line 154 "program_lexer.l"
-{ return_opcode(require_ARB_fp, VECTOR_OP, ABS, ZERO_ONE); }
++#line 174 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, ADD, 3); }
YY_BREAK
case 13:
YY_RULE_SETUP
- #line 174 "program_lexer.l"
-#line 155 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, ADD, OFF); }
++#line 175 "program_lexer.l"
+{ return_opcode(require_ARB_vp, ARL, ARL, 3); }
YY_BREAK
case 14:
YY_RULE_SETUP
- #line 176 "program_lexer.l"
-#line 156 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, ADD, ZERO_ONE); }
++#line 177 "program_lexer.l"
+{ return_opcode(require_ARB_fp, TRI_OP, CMP, 3); }
YY_BREAK
case 15:
YY_RULE_SETUP
- #line 177 "program_lexer.l"
-#line 157 "program_lexer.l"
-{ return_opcode(require_ARB_vp, ARL, ARL, OFF); }
++#line 178 "program_lexer.l"
+{ return_opcode(require_ARB_fp, SCALAR_OP, COS, 3); }
YY_BREAK
case 16:
YY_RULE_SETUP
- #line 179 "program_lexer.l"
-#line 159 "program_lexer.l"
-{ return_opcode(require_ARB_fp, TRI_OP, CMP, OFF); }
++#line 180 "program_lexer.l"
+{ return_opcode(require_NV_fp, VECTOR_OP, DDX, 3); }
YY_BREAK
case 17:
YY_RULE_SETUP
- #line 180 "program_lexer.l"
-#line 160 "program_lexer.l"
-{ return_opcode(require_ARB_fp, TRI_OP, CMP, ZERO_ONE); }
++#line 181 "program_lexer.l"
+{ return_opcode(require_NV_fp, VECTOR_OP, DDY, 3); }
YY_BREAK
case 18:
YY_RULE_SETUP
- #line 181 "program_lexer.l"
-#line 161 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, COS, OFF); }
++#line 182 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, DP3, 3); }
YY_BREAK
case 19:
YY_RULE_SETUP
- #line 182 "program_lexer.l"
-#line 162 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, COS, ZERO_ONE); }
++#line 183 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, DP4, 3); }
YY_BREAK
case 20:
YY_RULE_SETUP
- #line 183 "program_lexer.l"
-#line 164 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, DP3, OFF); }
++#line 184 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, DPH, 3); }
YY_BREAK
case 21:
YY_RULE_SETUP
- #line 184 "program_lexer.l"
-#line 165 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, DP3, ZERO_ONE); }
++#line 185 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, DST, 3); }
YY_BREAK
case 22:
YY_RULE_SETUP
- #line 186 "program_lexer.l"
-#line 166 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, DP4, OFF); }
++#line 187 "program_lexer.l"
+{ return_opcode( 1, SCALAR_OP, EX2, 3); }
YY_BREAK
case 23:
YY_RULE_SETUP
- #line 187 "program_lexer.l"
-#line 167 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, DP4, ZERO_ONE); }
++#line 188 "program_lexer.l"
+{ return_opcode(require_ARB_vp, SCALAR_OP, EXP, 3); }
YY_BREAK
case 24:
YY_RULE_SETUP
- #line 189 "program_lexer.l"
-#line 168 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, DPH, OFF); }
++#line 190 "program_lexer.l"
+{ return_opcode( 1, VECTOR_OP, FLR, 3); }
YY_BREAK
case 25:
YY_RULE_SETUP
- #line 190 "program_lexer.l"
-#line 169 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, DPH, ZERO_ONE); }
++#line 191 "program_lexer.l"
+{ return_opcode( 1, VECTOR_OP, FRC, 3); }
YY_BREAK
case 26:
YY_RULE_SETUP
- #line 192 "program_lexer.l"
-#line 170 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, DST, OFF); }
++#line 193 "program_lexer.l"
+{ return_opcode(require_ARB_fp, KIL, KIL, 3); }
YY_BREAK
case 27:
YY_RULE_SETUP
- #line 194 "program_lexer.l"
-#line 171 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, DST, ZERO_ONE); }
++#line 195 "program_lexer.l"
+{ return_opcode( 1, VECTOR_OP, LIT, 3); }
YY_BREAK
case 28:
YY_RULE_SETUP
- #line 195 "program_lexer.l"
-#line 173 "program_lexer.l"
-{ return_opcode( 1, SCALAR_OP, EX2, OFF); }
++#line 196 "program_lexer.l"
+{ return_opcode( 1, SCALAR_OP, LG2, 3); }
YY_BREAK
case 29:
YY_RULE_SETUP
- #line 196 "program_lexer.l"
-#line 174 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, EX2, ZERO_ONE); }
++#line 197 "program_lexer.l"
+{ return_opcode(require_ARB_vp, SCALAR_OP, LOG, 3); }
YY_BREAK
case 30:
YY_RULE_SETUP
- #line 197 "program_lexer.l"
-#line 175 "program_lexer.l"
-{ return_opcode(require_ARB_vp, SCALAR_OP, EXP, OFF); }
++#line 198 "program_lexer.l"
+{ return_opcode(require_ARB_fp, TRI_OP, LRP, 3); }
YY_BREAK
case 31:
YY_RULE_SETUP
- #line 199 "program_lexer.l"
-#line 177 "program_lexer.l"
-{ return_opcode( 1, VECTOR_OP, FLR, OFF); }
++#line 200 "program_lexer.l"
+{ return_opcode( 1, TRI_OP, MAD, 3); }
YY_BREAK
case 32:
YY_RULE_SETUP
- #line 200 "program_lexer.l"
-#line 178 "program_lexer.l"
-{ return_opcode(require_ARB_fp, VECTOR_OP, FLR, ZERO_ONE); }
++#line 201 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, MAX, 3); }
YY_BREAK
case 33:
YY_RULE_SETUP
- #line 201 "program_lexer.l"
-#line 179 "program_lexer.l"
-{ return_opcode( 1, VECTOR_OP, FRC, OFF); }
++#line 202 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, MIN, 3); }
YY_BREAK
case 34:
YY_RULE_SETUP
- #line 202 "program_lexer.l"
-#line 180 "program_lexer.l"
-{ return_opcode(require_ARB_fp, VECTOR_OP, FRC, ZERO_ONE); }
++#line 203 "program_lexer.l"
+{ return_opcode( 1, VECTOR_OP, MOV, 3); }
YY_BREAK
case 35:
YY_RULE_SETUP
- #line 203 "program_lexer.l"
-#line 182 "program_lexer.l"
-{ return_opcode(require_ARB_fp, KIL, KIL, OFF); }
++#line 204 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, MUL, 3); }
YY_BREAK
case 36:
YY_RULE_SETUP
- #line 205 "program_lexer.l"
-#line 184 "program_lexer.l"
-{ return_opcode( 1, VECTOR_OP, LIT, OFF); }
++#line 206 "program_lexer.l"
+{ return_opcode(require_NV_fp, VECTOR_OP, PK2H, 4); }
YY_BREAK
case 37:
YY_RULE_SETUP
- #line 206 "program_lexer.l"
-#line 185 "program_lexer.l"
-{ return_opcode(require_ARB_fp, VECTOR_OP, LIT, ZERO_ONE); }
++#line 207 "program_lexer.l"
+{ return_opcode(require_NV_fp, VECTOR_OP, PK2US, 5); }
YY_BREAK
case 38:
YY_RULE_SETUP
- #line 207 "program_lexer.l"
-#line 186 "program_lexer.l"
-{ return_opcode( 1, SCALAR_OP, LG2, OFF); }
++#line 208 "program_lexer.l"
+{ return_opcode(require_NV_fp, VECTOR_OP, PK4B, 4); }
YY_BREAK
case 39:
YY_RULE_SETUP
- #line 208 "program_lexer.l"
-#line 187 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, LG2, ZERO_ONE); }
++#line 209 "program_lexer.l"
+{ return_opcode(require_NV_fp, VECTOR_OP, PK4UB, 5); }
YY_BREAK
case 40:
YY_RULE_SETUP
- #line 209 "program_lexer.l"
-#line 188 "program_lexer.l"
-{ return_opcode(require_ARB_vp, SCALAR_OP, LOG, OFF); }
++#line 210 "program_lexer.l"
+{ return_opcode( 1, BINSC_OP, POW, 3); }
YY_BREAK
case 41:
YY_RULE_SETUP
- #line 211 "program_lexer.l"
-#line 189 "program_lexer.l"
-{ return_opcode(require_ARB_fp, TRI_OP, LRP, OFF); }
++#line 212 "program_lexer.l"
+{ return_opcode( 1, SCALAR_OP, RCP, 3); }
YY_BREAK
case 42:
YY_RULE_SETUP
- #line 212 "program_lexer.l"
-#line 190 "program_lexer.l"
-{ return_opcode(require_ARB_fp, TRI_OP, LRP, ZERO_ONE); }
++#line 213 "program_lexer.l"
+{ return_opcode(require_NV_fp, BIN_OP, RFL, 3); }
YY_BREAK
case 43:
YY_RULE_SETUP
- #line 213 "program_lexer.l"
-#line 192 "program_lexer.l"
-{ return_opcode( 1, TRI_OP, MAD, OFF); }
++#line 214 "program_lexer.l"
+{ return_opcode( 1, SCALAR_OP, RSQ, 3); }
YY_BREAK
case 44:
YY_RULE_SETUP
- #line 215 "program_lexer.l"
-#line 193 "program_lexer.l"
-{ return_opcode(require_ARB_fp, TRI_OP, MAD, ZERO_ONE); }
++#line 216 "program_lexer.l"
+{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, 3); }
YY_BREAK
case 45:
YY_RULE_SETUP
- #line 216 "program_lexer.l"
-#line 194 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, MAX, OFF); }
++#line 217 "program_lexer.l"
+{ return_opcode(require_NV_fp, BIN_OP, SEQ, 3); }
YY_BREAK
case 46:
YY_RULE_SETUP
- #line 217 "program_lexer.l"
-#line 195 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, MAX, ZERO_ONE); }
++#line 218 "program_lexer.l"
+{ return_opcode(require_NV_fp, BIN_OP, SFL, 3); }
YY_BREAK
case 47:
YY_RULE_SETUP
- #line 218 "program_lexer.l"
-#line 196 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, MIN, OFF); }
++#line 219 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, SGE, 3); }
YY_BREAK
case 48:
YY_RULE_SETUP
- #line 219 "program_lexer.l"
-#line 197 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, MIN, ZERO_ONE); }
++#line 220 "program_lexer.l"
+{ return_opcode(require_NV_fp, BIN_OP, SGT, 3); }
YY_BREAK
case 49:
YY_RULE_SETUP
- #line 220 "program_lexer.l"
-#line 198 "program_lexer.l"
-{ return_opcode( 1, VECTOR_OP, MOV, OFF); }
++#line 221 "program_lexer.l"
+{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, 3); }
YY_BREAK
case 50:
YY_RULE_SETUP
- #line 221 "program_lexer.l"
-#line 199 "program_lexer.l"
-{ return_opcode(require_ARB_fp, VECTOR_OP, MOV, ZERO_ONE); }
++#line 222 "program_lexer.l"
+{ return_opcode(require_NV_fp, BIN_OP, SLE, 3); }
YY_BREAK
case 51:
YY_RULE_SETUP
- #line 222 "program_lexer.l"
-#line 200 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, MUL, OFF); }
++#line 223 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, SLT, 3); }
YY_BREAK
case 52:
YY_RULE_SETUP
- #line 223 "program_lexer.l"
-#line 201 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, MUL, ZERO_ONE); }
++#line 224 "program_lexer.l"
+{ return_opcode(require_NV_fp, BIN_OP, SNE, 3); }
YY_BREAK
case 53:
YY_RULE_SETUP
- #line 224 "program_lexer.l"
-#line 203 "program_lexer.l"
-{ return_opcode( 1, BINSC_OP, POW, OFF); }
++#line 225 "program_lexer.l"
+{ return_opcode(require_NV_fp, BIN_OP, STR, 3); }
YY_BREAK
case 54:
YY_RULE_SETUP
- #line 225 "program_lexer.l"
-#line 204 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BINSC_OP, POW, ZERO_ONE); }
++#line 226 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, SUB, 3); }
YY_BREAK
case 55:
YY_RULE_SETUP
- #line 226 "program_lexer.l"
-#line 206 "program_lexer.l"
-{ return_opcode( 1, SCALAR_OP, RCP, OFF); }
++#line 227 "program_lexer.l"
+{ return_opcode( 1, SWZ, SWZ, 3); }
YY_BREAK
case 56:
YY_RULE_SETUP
- #line 228 "program_lexer.l"
-#line 207 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, RCP, ZERO_ONE); }
++#line 229 "program_lexer.l"
+{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, 3); }
YY_BREAK
case 57:
YY_RULE_SETUP
- #line 229 "program_lexer.l"
-#line 208 "program_lexer.l"
-{ return_opcode( 1, SCALAR_OP, RSQ, OFF); }
++#line 230 "program_lexer.l"
+{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, 3); }
YY_BREAK
case 58:
YY_RULE_SETUP
- #line 230 "program_lexer.l"
-#line 209 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, RSQ, ZERO_ONE); }
++#line 231 "program_lexer.l"
+{ return_opcode(require_NV_fp, TXD_OP, TXD, 3); }
YY_BREAK
case 59:
YY_RULE_SETUP
- #line 231 "program_lexer.l"
-#line 211 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, OFF); }
++#line 232 "program_lexer.l"
+{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, 3); }
YY_BREAK
case 60:
YY_RULE_SETUP
- #line 233 "program_lexer.l"
-#line 212 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, ZERO_ONE); }
++#line 234 "program_lexer.l"
+{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, 4); }
YY_BREAK
case 61:
YY_RULE_SETUP
- #line 234 "program_lexer.l"
-#line 213 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, SGE, OFF); }
++#line 235 "program_lexer.l"
+{ return_opcode(require_NV_fp, SCALAR_OP, UP2US, 5); }
YY_BREAK
case 62:
YY_RULE_SETUP
- #line 235 "program_lexer.l"
-#line 214 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, SGE, ZERO_ONE); }
++#line 236 "program_lexer.l"
+{ return_opcode(require_NV_fp, SCALAR_OP, UP4B, 4); }
YY_BREAK
case 63:
YY_RULE_SETUP
- #line 236 "program_lexer.l"
-#line 215 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, OFF); }
++#line 237 "program_lexer.l"
+{ return_opcode(require_NV_fp, SCALAR_OP, UP4UB, 5); }
YY_BREAK
case 64:
YY_RULE_SETUP
- #line 238 "program_lexer.l"
-#line 216 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, ZERO_ONE); }
++#line 239 "program_lexer.l"
+{ return_opcode(require_NV_fp, TRI_OP, X2D, 3); }
YY_BREAK
case 65:
YY_RULE_SETUP
- #line 239 "program_lexer.l"
-#line 217 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, SLT, OFF); }
++#line 240 "program_lexer.l"
+{ return_opcode( 1, BIN_OP, XPD, 3); }
YY_BREAK
case 66:
YY_RULE_SETUP
- #line 241 "program_lexer.l"
-#line 218 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, SLT, ZERO_ONE); }
++#line 242 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); }
YY_BREAK
case 67:
YY_RULE_SETUP
- #line 242 "program_lexer.l"
-#line 219 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, SUB, OFF); }
++#line 243 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); }
YY_BREAK
case 68:
YY_RULE_SETUP
- #line 243 "program_lexer.l"
-#line 220 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, SUB, ZERO_ONE); }
++#line 244 "program_lexer.l"
+{ return PROGRAM; }
YY_BREAK
case 69:
YY_RULE_SETUP
- #line 244 "program_lexer.l"
-#line 221 "program_lexer.l"
-{ return_opcode( 1, SWZ, SWZ, OFF); }
++#line 245 "program_lexer.l"
+{ return STATE; }
YY_BREAK
case 70:
YY_RULE_SETUP
- #line 245 "program_lexer.l"
-#line 222 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SWZ, SWZ, ZERO_ONE); }
++#line 246 "program_lexer.l"
+{ return RESULT; }
YY_BREAK
case 71:
YY_RULE_SETUP
- #line 247 "program_lexer.l"
-#line 224 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, OFF); }
++#line 248 "program_lexer.l"
+{ return AMBIENT; }
YY_BREAK
case 72:
YY_RULE_SETUP
- #line 248 "program_lexer.l"
-#line 225 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, ZERO_ONE); }
++#line 249 "program_lexer.l"
+{ return ATTENUATION; }
YY_BREAK
case 73:
YY_RULE_SETUP
- #line 249 "program_lexer.l"
-#line 226 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, OFF); }
++#line 250 "program_lexer.l"
+{ return BACK; }
YY_BREAK
case 74:
YY_RULE_SETUP
- #line 250 "program_lexer.l"
-#line 227 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, ZERO_ONE); }
++#line 251 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, CLIP); }
YY_BREAK
case 75:
YY_RULE_SETUP
- #line 251 "program_lexer.l"
-#line 228 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, OFF); }
++#line 252 "program_lexer.l"
+{ return COLOR; }
YY_BREAK
case 76:
YY_RULE_SETUP
- #line 252 "program_lexer.l"
-#line 229 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, ZERO_ONE); }
++#line 253 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_fp, DEPTH); }
YY_BREAK
case 77:
YY_RULE_SETUP
- #line 253 "program_lexer.l"
-#line 231 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, XPD, OFF); }
++#line 254 "program_lexer.l"
+{ return DIFFUSE; }
YY_BREAK
case 78:
YY_RULE_SETUP
- #line 254 "program_lexer.l"
-#line 232 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, XPD, ZERO_ONE); }
++#line 255 "program_lexer.l"
+{ return DIRECTION; }
YY_BREAK
case 79:
YY_RULE_SETUP
- #line 255 "program_lexer.l"
-#line 234 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); }
++#line 256 "program_lexer.l"
+{ return EMISSION; }
YY_BREAK
case 80:
YY_RULE_SETUP
- #line 256 "program_lexer.l"
-#line 235 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); }
++#line 257 "program_lexer.l"
+{ return ENV; }
YY_BREAK
case 81:
YY_RULE_SETUP
- #line 257 "program_lexer.l"
-#line 236 "program_lexer.l"
-{ return PROGRAM; }
++#line 258 "program_lexer.l"
+{ return EYE; }
YY_BREAK
case 82:
YY_RULE_SETUP
- #line 258 "program_lexer.l"
-#line 237 "program_lexer.l"
-{ return STATE; }
++#line 259 "program_lexer.l"
+{ return FOGCOORD; }
YY_BREAK
case 83:
YY_RULE_SETUP
- #line 259 "program_lexer.l"
-#line 238 "program_lexer.l"
-{ return RESULT; }
++#line 260 "program_lexer.l"
+{ return FOG; }
YY_BREAK
case 84:
YY_RULE_SETUP
- #line 260 "program_lexer.l"
-#line 240 "program_lexer.l"
-{ return AMBIENT; }
++#line 261 "program_lexer.l"
+{ return FRONT; }
YY_BREAK
case 85:
YY_RULE_SETUP
- #line 261 "program_lexer.l"
-#line 241 "program_lexer.l"
-{ return ATTENUATION; }
++#line 262 "program_lexer.l"
+{ return HALF; }
YY_BREAK
case 86:
YY_RULE_SETUP
- #line 262 "program_lexer.l"
-#line 242 "program_lexer.l"
-{ return BACK; }
++#line 263 "program_lexer.l"
+{ return INVERSE; }
YY_BREAK
case 87:
YY_RULE_SETUP
- #line 263 "program_lexer.l"
-#line 243 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, CLIP); }
++#line 264 "program_lexer.l"
+{ return INVTRANS; }
YY_BREAK
case 88:
YY_RULE_SETUP
- #line 264 "program_lexer.l"
-#line 244 "program_lexer.l"
-{ return COLOR; }
++#line 265 "program_lexer.l"
+{ return LIGHT; }
YY_BREAK
case 89:
YY_RULE_SETUP
- #line 265 "program_lexer.l"
-#line 245 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_fp, DEPTH); }
++#line 266 "program_lexer.l"
+{ return LIGHTMODEL; }
YY_BREAK
case 90:
YY_RULE_SETUP
- #line 266 "program_lexer.l"
-#line 246 "program_lexer.l"
-{ return DIFFUSE; }
++#line 267 "program_lexer.l"
+{ return LIGHTPROD; }
YY_BREAK
case 91:
YY_RULE_SETUP
- #line 267 "program_lexer.l"
-#line 247 "program_lexer.l"
-{ return DIRECTION; }
++#line 268 "program_lexer.l"
+{ return LOCAL; }
YY_BREAK
case 92:
YY_RULE_SETUP
- #line 268 "program_lexer.l"
-#line 248 "program_lexer.l"
-{ return EMISSION; }
++#line 269 "program_lexer.l"
+{ return MATERIAL; }
YY_BREAK
case 93:
YY_RULE_SETUP
- #line 269 "program_lexer.l"
-#line 249 "program_lexer.l"
-{ return ENV; }
++#line 270 "program_lexer.l"
+{ return MAT_PROGRAM; }
YY_BREAK
case 94:
YY_RULE_SETUP
- #line 270 "program_lexer.l"
-#line 250 "program_lexer.l"
-{ return EYE; }
++#line 271 "program_lexer.l"
+{ return MATRIX; }
YY_BREAK
case 95:
YY_RULE_SETUP
- #line 271 "program_lexer.l"
-#line 251 "program_lexer.l"
-{ return FOGCOORD; }
++#line 272 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); }
YY_BREAK
case 96:
YY_RULE_SETUP
- #line 272 "program_lexer.l"
-#line 252 "program_lexer.l"
-{ return FOG; }
++#line 273 "program_lexer.l"
+{ return MODELVIEW; }
YY_BREAK
case 97:
YY_RULE_SETUP
- #line 273 "program_lexer.l"
-#line 253 "program_lexer.l"
-{ return FRONT; }
++#line 274 "program_lexer.l"
+{ return MVP; }
YY_BREAK
case 98:
YY_RULE_SETUP
- #line 274 "program_lexer.l"
-#line 254 "program_lexer.l"
-{ return HALF; }
++#line 275 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, NORMAL); }
YY_BREAK
case 99:
YY_RULE_SETUP
- #line 275 "program_lexer.l"
-#line 255 "program_lexer.l"
-{ return INVERSE; }
++#line 276 "program_lexer.l"
+{ return OBJECT; }
YY_BREAK
case 100:
YY_RULE_SETUP
- #line 276 "program_lexer.l"
-#line 256 "program_lexer.l"
-{ return INVTRANS; }
++#line 277 "program_lexer.l"
+{ return PALETTE; }
YY_BREAK
case 101:
YY_RULE_SETUP
- #line 277 "program_lexer.l"
-#line 257 "program_lexer.l"
-{ return LIGHT; }
++#line 278 "program_lexer.l"
+{ return PARAMS; }
YY_BREAK
case 102:
YY_RULE_SETUP
- #line 278 "program_lexer.l"
-#line 258 "program_lexer.l"
-{ return LIGHTMODEL; }
++#line 279 "program_lexer.l"
+{ return PLANE; }
YY_BREAK
case 103:
YY_RULE_SETUP
- #line 279 "program_lexer.l"
-#line 259 "program_lexer.l"
-{ return LIGHTPROD; }
++#line 280 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, POINT_TOK); }
YY_BREAK
case 104:
YY_RULE_SETUP
- #line 280 "program_lexer.l"
-#line 260 "program_lexer.l"
-{ return LOCAL; }
++#line 281 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, POINTSIZE); }
YY_BREAK
case 105:
YY_RULE_SETUP
- #line 281 "program_lexer.l"
-#line 261 "program_lexer.l"
-{ return MATERIAL; }
++#line 282 "program_lexer.l"
+{ return POSITION; }
YY_BREAK
case 106:
YY_RULE_SETUP
- #line 282 "program_lexer.l"
-#line 262 "program_lexer.l"
-{ return MAT_PROGRAM; }
++#line 283 "program_lexer.l"
+{ return PRIMARY; }
YY_BREAK
case 107:
YY_RULE_SETUP
- #line 283 "program_lexer.l"
-#line 263 "program_lexer.l"
-{ return MATRIX; }
++#line 284 "program_lexer.l"
+{ return PROJECTION; }
YY_BREAK
case 108:
YY_RULE_SETUP
- #line 284 "program_lexer.l"
-#line 264 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); }
++#line 285 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_fp, RANGE); }
YY_BREAK
case 109:
YY_RULE_SETUP
- #line 285 "program_lexer.l"
-#line 265 "program_lexer.l"
-{ return MODELVIEW; }
++#line 286 "program_lexer.l"
+{ return ROW; }
YY_BREAK
case 110:
YY_RULE_SETUP
- #line 286 "program_lexer.l"
-#line 266 "program_lexer.l"
-{ return MVP; }
++#line 287 "program_lexer.l"
+{ return SCENECOLOR; }
YY_BREAK
case 111:
YY_RULE_SETUP
- #line 287 "program_lexer.l"
-#line 267 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, NORMAL); }
++#line 288 "program_lexer.l"
+{ return SECONDARY; }
YY_BREAK
case 112:
YY_RULE_SETUP
- #line 288 "program_lexer.l"
-#line 268 "program_lexer.l"
-{ return OBJECT; }
++#line 289 "program_lexer.l"
+{ return SHININESS; }
YY_BREAK
case 113:
YY_RULE_SETUP
- #line 289 "program_lexer.l"
-#line 269 "program_lexer.l"
-{ return PALETTE; }
++#line 290 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, SIZE_TOK); }
YY_BREAK
case 114:
YY_RULE_SETUP
- #line 290 "program_lexer.l"
-#line 270 "program_lexer.l"
-{ return PARAMS; }
++#line 291 "program_lexer.l"
+{ return SPECULAR; }
YY_BREAK
case 115:
YY_RULE_SETUP
- #line 291 "program_lexer.l"
-#line 271 "program_lexer.l"
-{ return PLANE; }
++#line 292 "program_lexer.l"
+{ return SPOT; }
YY_BREAK
case 116:
YY_RULE_SETUP
- #line 292 "program_lexer.l"
-#line 272 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, POINT_TOK); }
++#line 293 "program_lexer.l"
+{ return TEXCOORD; }
YY_BREAK
case 117:
YY_RULE_SETUP
- #line 293 "program_lexer.l"
-#line 273 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, POINTSIZE); }
++#line 294 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_fp, TEXENV); }
YY_BREAK
case 118:
YY_RULE_SETUP
- #line 294 "program_lexer.l"
-#line 274 "program_lexer.l"
-{ return POSITION; }
++#line 295 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, TEXGEN); }
YY_BREAK
case 119:
YY_RULE_SETUP
- #line 295 "program_lexer.l"
-#line 275 "program_lexer.l"
-{ return PRIMARY; }
++#line 296 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, TEXGEN_Q); }
YY_BREAK
case 120:
YY_RULE_SETUP
- #line 296 "program_lexer.l"
-#line 276 "program_lexer.l"
-{ return PROJECTION; }
++#line 297 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, TEXGEN_S); }
YY_BREAK
case 121:
YY_RULE_SETUP
- #line 297 "program_lexer.l"
-#line 277 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_fp, RANGE); }
++#line 298 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, TEXGEN_T); }
YY_BREAK
case 122:
YY_RULE_SETUP
- #line 298 "program_lexer.l"
-#line 278 "program_lexer.l"
-{ return ROW; }
++#line 299 "program_lexer.l"
+{ return TEXTURE; }
YY_BREAK
case 123:
YY_RULE_SETUP
- #line 299 "program_lexer.l"
-#line 279 "program_lexer.l"
-{ return SCENECOLOR; }
++#line 300 "program_lexer.l"
+{ return TRANSPOSE; }
YY_BREAK
case 124:
YY_RULE_SETUP
- #line 300 "program_lexer.l"
-#line 280 "program_lexer.l"
-{ return SECONDARY; }
++#line 301 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, VTXATTRIB); }
YY_BREAK
case 125:
YY_RULE_SETUP
- #line 301 "program_lexer.l"
-#line 281 "program_lexer.l"
-{ return SHININESS; }
++#line 302 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, WEIGHT); }
YY_BREAK
case 126:
YY_RULE_SETUP
- #line 303 "program_lexer.l"
-#line 282 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, SIZE_TOK); }
++#line 304 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); }
YY_BREAK
case 127:
YY_RULE_SETUP
- #line 304 "program_lexer.l"
-#line 283 "program_lexer.l"
-{ return SPECULAR; }
++#line 305 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); }
YY_BREAK
case 128:
YY_RULE_SETUP
- #line 305 "program_lexer.l"
-#line 284 "program_lexer.l"
-{ return SPOT; }
++#line 306 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); }
YY_BREAK
case 129:
YY_RULE_SETUP
- #line 306 "program_lexer.l"
-#line 285 "program_lexer.l"
-{ return TEXCOORD; }
++#line 307 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); }
YY_BREAK
case 130:
YY_RULE_SETUP
- #line 307 "program_lexer.l"
-#line 286 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_fp, TEXENV); }
++#line 308 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); }
YY_BREAK
case 131:
YY_RULE_SETUP
- #line 308 "program_lexer.l"
-#line 287 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, TEXGEN); }
++#line 309 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); }
YY_BREAK
case 132:
YY_RULE_SETUP
- #line 309 "program_lexer.l"
-#line 288 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, TEXGEN_Q); }
++#line 310 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); }
YY_BREAK
case 133:
YY_RULE_SETUP
- #line 310 "program_lexer.l"
-#line 289 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, TEXGEN_S); }
++#line 311 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); }
YY_BREAK
case 134:
YY_RULE_SETUP
- #line 311 "program_lexer.l"
-#line 290 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, TEXGEN_T); }
++#line 312 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); }
YY_BREAK
case 135:
YY_RULE_SETUP
- #line 312 "program_lexer.l"
-#line 291 "program_lexer.l"
-{ return TEXTURE; }
++#line 313 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); }
YY_BREAK
case 136:
YY_RULE_SETUP
- #line 313 "program_lexer.l"
-#line 292 "program_lexer.l"
-{ return TRANSPOSE; }
++#line 314 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); }
YY_BREAK
case 137:
YY_RULE_SETUP
- #line 314 "program_lexer.l"
-#line 293 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, VTXATTRIB); }
++#line 315 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); }
YY_BREAK
case 138:
YY_RULE_SETUP
- #line 315 "program_lexer.l"
-#line 294 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, WEIGHT); }
++#line 316 "program_lexer.l"
+{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); }
YY_BREAK
case 139:
YY_RULE_SETUP
- #line 317 "program_lexer.l"
-#line 296 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); }
++#line 318 "program_lexer.l"
+{ return handle_ident(yyextra, yytext, yylval); }
YY_BREAK
case 140:
YY_RULE_SETUP
- #line 319 "program_lexer.l"
-#line 297 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); }
- YY_BREAK
-case 141:
-YY_RULE_SETUP
-#line 298 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); }
- YY_BREAK
-case 142:
-YY_RULE_SETUP
-#line 299 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); }
- YY_BREAK
-case 143:
-YY_RULE_SETUP
-#line 300 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); }
- YY_BREAK
-case 144:
-YY_RULE_SETUP
-#line 301 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); }
- YY_BREAK
-case 145:
-YY_RULE_SETUP
-#line 302 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); }
- YY_BREAK
-case 146:
-YY_RULE_SETUP
-#line 303 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); }
- YY_BREAK
-case 147:
-YY_RULE_SETUP
-#line 304 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); }
- YY_BREAK
-case 148:
-YY_RULE_SETUP
-#line 305 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); }
- YY_BREAK
-case 149:
-YY_RULE_SETUP
-#line 306 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); }
- YY_BREAK
-case 150:
-YY_RULE_SETUP
-#line 307 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); }
- YY_BREAK
-case 151:
-YY_RULE_SETUP
-#line 308 "program_lexer.l"
-{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); }
- YY_BREAK
-case 152:
-YY_RULE_SETUP
-#line 310 "program_lexer.l"
-{
- yylval->string = strdup(yytext);
- return IDENTIFIER;
-}
- YY_BREAK
-case 153:
-YY_RULE_SETUP
-#line 315 "program_lexer.l"
++#line 320 "program_lexer.l"
{ return DOT_DOT; }
YY_BREAK
-case 154:
+case 141:
YY_RULE_SETUP
- #line 321 "program_lexer.l"
-#line 317 "program_lexer.l"
++#line 322 "program_lexer.l"
{
yylval->integer = strtol(yytext, NULL, 10);
return INTEGER;
}
YY_BREAK
-case 155:
+case 142:
YY_RULE_SETUP
- #line 325 "program_lexer.l"
-#line 321 "program_lexer.l"
++#line 326 "program_lexer.l"
{
- yylval->real = strtod(yytext, NULL);
+ yylval->real = _mesa_strtod(yytext, NULL);
return REAL;
}
YY_BREAK
yyg->yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
- #line 329 "program_lexer.l"
-#line 325 "program_lexer.l"
++#line 330 "program_lexer.l"
{
- yylval->real = strtod(yytext, NULL);
+ yylval->real = _mesa_strtod(yytext, NULL);
return REAL;
}
YY_BREAK
-case 157:
+case 144:
YY_RULE_SETUP
- #line 333 "program_lexer.l"
-#line 329 "program_lexer.l"
++#line 334 "program_lexer.l"
{
- yylval->real = strtod(yytext, NULL);
+ yylval->real = _mesa_strtod(yytext, NULL);
return REAL;
}
YY_BREAK
-case 158:
+case 145:
YY_RULE_SETUP
- #line 337 "program_lexer.l"
-#line 333 "program_lexer.l"
++#line 338 "program_lexer.l"
{
- yylval->real = strtod(yytext, NULL);
+ yylval->real = _mesa_strtod(yytext, NULL);
return REAL;
}
YY_BREAK
-case 159:
+case 146:
YY_RULE_SETUP
- #line 342 "program_lexer.l"
-#line 338 "program_lexer.l"
++#line 343 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_NOOP;
yylval->swiz_mask.mask = WRITEMASK_XYZW;
return MASK4;
}
YY_BREAK
-case 160:
+case 147:
YY_RULE_SETUP
- #line 348 "program_lexer.l"
-#line 344 "program_lexer.l"
++#line 349 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XY
return MASK3;
}
YY_BREAK
-case 161:
+case 148:
YY_RULE_SETUP
- #line 354 "program_lexer.l"
-#line 350 "program_lexer.l"
++#line 355 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XZW;
return MASK3;
}
YY_BREAK
-case 162:
+case 149:
YY_RULE_SETUP
- #line 359 "program_lexer.l"
-#line 355 "program_lexer.l"
++#line 360 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_YZW;
return MASK3;
}
YY_BREAK
-case 163:
+case 150:
YY_RULE_SETUP
- #line 365 "program_lexer.l"
-#line 361 "program_lexer.l"
++#line 366 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_X
return MASK2;
}
YY_BREAK
-case 164:
+case 151:
YY_RULE_SETUP
- #line 371 "program_lexer.l"
-#line 367 "program_lexer.l"
++#line 372 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_Y
return MASK2;
}
YY_BREAK
-case 165:
+case 152:
YY_RULE_SETUP
- #line 377 "program_lexer.l"
-#line 373 "program_lexer.l"
++#line 378 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_ZW;
return MASK2;
}
YY_BREAK
-case 166:
+case 153:
YY_RULE_SETUP
- #line 383 "program_lexer.l"
-#line 379 "program_lexer.l"
++#line 384 "program_lexer.l"
{
const unsigned s = swiz_from_char(yytext[1]);
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s);
return MASK1;
}
YY_BREAK
-case 167:
+case 154:
YY_RULE_SETUP
- #line 390 "program_lexer.l"
-#line 386 "program_lexer.l"
++#line 391 "program_lexer.l"
{
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]),
swiz_from_char(yytext[2]),
return SWIZZLE;
}
YY_BREAK
-case 168:
+case 155:
YY_RULE_SETUP
- #line 399 "program_lexer.l"
-#line 395 "program_lexer.l"
++#line 400 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_NOOP;
yylval->swiz_mask.mask = WRITEMASK_XYZW;
return_token_or_DOT(require_ARB_fp, MASK4);
}
YY_BREAK
-case 169:
+case 156:
YY_RULE_SETUP
- #line 405 "program_lexer.l"
-#line 401 "program_lexer.l"
++#line 406 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XY
return_token_or_DOT(require_ARB_fp, MASK3);
}
YY_BREAK
-case 170:
+case 157:
YY_RULE_SETUP
- #line 411 "program_lexer.l"
-#line 407 "program_lexer.l"
++#line 412 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XZW;
return_token_or_DOT(require_ARB_fp, MASK3);
}
YY_BREAK
-case 171:
+case 158:
YY_RULE_SETUP
- #line 416 "program_lexer.l"
-#line 412 "program_lexer.l"
++#line 417 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_YZW;
return_token_or_DOT(require_ARB_fp, MASK3);
}
YY_BREAK
-case 172:
+case 159:
YY_RULE_SETUP
- #line 422 "program_lexer.l"
-#line 418 "program_lexer.l"
++#line 423 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_X
return_token_or_DOT(require_ARB_fp, MASK2);
}
YY_BREAK
-case 173:
+case 160:
YY_RULE_SETUP
- #line 428 "program_lexer.l"
-#line 424 "program_lexer.l"
++#line 429 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_Y
return_token_or_DOT(require_ARB_fp, MASK2);
}
YY_BREAK
-case 174:
+case 161:
YY_RULE_SETUP
- #line 434 "program_lexer.l"
-#line 430 "program_lexer.l"
++#line 435 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_ZW;
return_token_or_DOT(require_ARB_fp, MASK2);
}
YY_BREAK
-case 175:
+case 162:
YY_RULE_SETUP
- #line 440 "program_lexer.l"
-#line 436 "program_lexer.l"
++#line 441 "program_lexer.l"
{
const unsigned s = swiz_from_char(yytext[1]);
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s);
return_token_or_DOT(require_ARB_fp, MASK1);
}
YY_BREAK
-case 176:
+case 163:
YY_RULE_SETUP
- #line 448 "program_lexer.l"
-#line 444 "program_lexer.l"
++#line 449 "program_lexer.l"
{
if (require_ARB_vp) {
return TEXGEN_R;
}
}
YY_BREAK
-case 177:
+case 164:
YY_RULE_SETUP
- #line 459 "program_lexer.l"
-#line 455 "program_lexer.l"
++#line 460 "program_lexer.l"
{
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]),
swiz_from_char(yytext[2]),
return_token_or_DOT(require_ARB_fp, SWIZZLE);
}
YY_BREAK
-case 178:
+case 165:
YY_RULE_SETUP
- #line 468 "program_lexer.l"
-#line 464 "program_lexer.l"
++#line 469 "program_lexer.l"
{ return DOT; }
YY_BREAK
-case 179:
-/* rule 179 can match eol */
+case 166:
+/* rule 166 can match eol */
YY_RULE_SETUP
- #line 470 "program_lexer.l"
-#line 466 "program_lexer.l"
++#line 471 "program_lexer.l"
{
yylloc->first_line++;
yylloc->first_column = 1;
yylloc->position++;
}
YY_BREAK
-case 180:
+case 167:
YY_RULE_SETUP
- #line 477 "program_lexer.l"
-#line 473 "program_lexer.l"
++#line 478 "program_lexer.l"
/* eat whitespace */ ;
YY_BREAK
-case 181:
+case 168:
*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
yyg->yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
- #line 478 "program_lexer.l"
-#line 474 "program_lexer.l"
++#line 479 "program_lexer.l"
/* eat comments */ ;
YY_BREAK
-case 182:
+case 169:
YY_RULE_SETUP
- #line 479 "program_lexer.l"
-#line 475 "program_lexer.l"
++#line 480 "program_lexer.l"
{ return yytext[0]; }
YY_BREAK
-case 183:
+case 170:
YY_RULE_SETUP
- #line 480 "program_lexer.l"
-#line 476 "program_lexer.l"
++#line 481 "program_lexer.l"
ECHO;
YY_BREAK
- #line 2477 "lex.yy.c"
-#line 2384 "lex.yy.c"
++#line 2465 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
#define YYTABLES_NAME "yytables"
- #line 480 "program_lexer.l"
-#line 476 "program_lexer.l"
++#line 481 "program_lexer.l"