ARB prog parser: Add new constructor for asm_instruction
[mesa.git] / src / mesa / shader / program_parse.tab.h
1
2 /* A Bison parser, made by GNU Bison 2.4.1. */
3
4 /* Skeleton interface for Bison's Yacc-like parsers in C
5
6 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7 Free Software Foundation, Inc.
8
9 This program is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
21
22 /* As a special exception, you may create a larger work that contains
23 part or all of the Bison parser skeleton and distribute that work
24 under terms of your choice, so long as that work isn't itself a
25 parser generator using the skeleton or a modified version thereof
26 as a parser skeleton. Alternatively, if you modify or redistribute
27 the parser skeleton itself, you may (at your option) remove this
28 special exception, which will cause the skeleton and the resulting
29 Bison output files to be licensed under the GNU General Public
30 License without this special exception.
31
32 This special exception was added by the Free Software Foundation in
33 version 2.2 of Bison. */
34
35
36 /* Tokens. */
37 #ifndef YYTOKENTYPE
38 # define YYTOKENTYPE
39 /* Put the tokens into the symbol table, so that GDB and other debuggers
40 know about them. */
41 enum yytokentype {
42 ARBvp_10 = 258,
43 ARBfp_10 = 259,
44 ADDRESS = 260,
45 ALIAS = 261,
46 ATTRIB = 262,
47 OPTION = 263,
48 OUTPUT = 264,
49 PARAM = 265,
50 TEMP = 266,
51 END = 267,
52 BIN_OP = 268,
53 BINSC_OP = 269,
54 SAMPLE_OP = 270,
55 SCALAR_OP = 271,
56 TRI_OP = 272,
57 VECTOR_OP = 273,
58 ARL = 274,
59 KIL = 275,
60 SWZ = 276,
61 TXD_OP = 277,
62 INTEGER = 278,
63 REAL = 279,
64 AMBIENT = 280,
65 ATTENUATION = 281,
66 BACK = 282,
67 CLIP = 283,
68 COLOR = 284,
69 DEPTH = 285,
70 DIFFUSE = 286,
71 DIRECTION = 287,
72 EMISSION = 288,
73 ENV = 289,
74 EYE = 290,
75 FOG = 291,
76 FOGCOORD = 292,
77 FRAGMENT = 293,
78 FRONT = 294,
79 HALF = 295,
80 INVERSE = 296,
81 INVTRANS = 297,
82 LIGHT = 298,
83 LIGHTMODEL = 299,
84 LIGHTPROD = 300,
85 LOCAL = 301,
86 MATERIAL = 302,
87 MAT_PROGRAM = 303,
88 MATRIX = 304,
89 MATRIXINDEX = 305,
90 MODELVIEW = 306,
91 MVP = 307,
92 NORMAL = 308,
93 OBJECT = 309,
94 PALETTE = 310,
95 PARAMS = 311,
96 PLANE = 312,
97 POINT = 313,
98 POINTSIZE = 314,
99 POSITION = 315,
100 PRIMARY = 316,
101 PROGRAM = 317,
102 PROJECTION = 318,
103 RANGE = 319,
104 RESULT = 320,
105 ROW = 321,
106 SCENECOLOR = 322,
107 SECONDARY = 323,
108 SHININESS = 324,
109 SIZE = 325,
110 SPECULAR = 326,
111 SPOT = 327,
112 STATE = 328,
113 TEXCOORD = 329,
114 TEXENV = 330,
115 TEXGEN = 331,
116 TEXGEN_Q = 332,
117 TEXGEN_R = 333,
118 TEXGEN_S = 334,
119 TEXGEN_T = 335,
120 TEXTURE = 336,
121 TRANSPOSE = 337,
122 TEXTURE_UNIT = 338,
123 TEX_1D = 339,
124 TEX_2D = 340,
125 TEX_3D = 341,
126 TEX_CUBE = 342,
127 TEX_RECT = 343,
128 TEX_SHADOW1D = 344,
129 TEX_SHADOW2D = 345,
130 TEX_SHADOWRECT = 346,
131 TEX_ARRAY1D = 347,
132 TEX_ARRAY2D = 348,
133 TEX_ARRAYSHADOW1D = 349,
134 TEX_ARRAYSHADOW2D = 350,
135 VERTEX = 351,
136 VTXATTRIB = 352,
137 WEIGHT = 353,
138 IDENTIFIER = 354,
139 MASK4 = 355,
140 MASK3 = 356,
141 MASK2 = 357,
142 MASK1 = 358,
143 SWIZZLE = 359,
144 DOT_DOT = 360,
145 DOT = 361
146 };
147 #endif
148
149
150
151 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
152 typedef union YYSTYPE
153 {
154
155 /* Line 1676 of yacc.c */
156 #line 116 "program_parse.y"
157
158 struct asm_instruction *inst;
159 struct asm_symbol *sym;
160 struct asm_symbol temp_sym;
161 struct asm_swizzle_mask swiz_mask;
162 struct asm_src_register src_reg;
163 struct prog_dst_register dst_reg;
164 struct prog_instruction temp_inst;
165 char *string;
166 unsigned result;
167 unsigned attrib;
168 int integer;
169 float real;
170 unsigned state[5];
171 int negate;
172 struct asm_vector vector;
173 gl_inst_opcode opcode;
174
175 struct {
176 unsigned swz;
177 unsigned rgba_valid:1;
178 unsigned xyzw_valid:1;
179 unsigned negate:1;
180 } ext_swizzle;
181
182
183
184 /* Line 1676 of yacc.c */
185 #line 186 "program_parse.tab.h"
186 } YYSTYPE;
187 # define YYSTYPE_IS_TRIVIAL 1
188 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
189 # define YYSTYPE_IS_DECLARED 1
190 #endif
191
192
193
194 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
195 typedef struct YYLTYPE
196 {
197 int first_line;
198 int first_column;
199 int last_line;
200 int last_column;
201 } YYLTYPE;
202 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
203 # define YYLTYPE_IS_DECLARED 1
204 # define YYLTYPE_IS_TRIVIAL 1
205 #endif
206
207
208