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