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