1 /* A Bison parser, made by GNU Bison 2.3.  */
2 
3 /* Skeleton interface for Bison's Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6    Free Software Foundation, 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 2, or (at your option)
11    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, write to the Free Software
20    Foundation, Inc., 51 Franklin Street, Fifth Floor,
21    Boston, MA 02110-1301, USA.  */
22 
23 /* As a special exception, you may create a larger work that contains
24    part or all of the Bison parser skeleton and distribute that work
25    under terms of your choice, so long as that work isn't itself a
26    parser generator using the skeleton or a modified version thereof
27    as a parser skeleton.  Alternatively, if you modify or redistribute
28    the parser skeleton itself, you may (at your option) remove this
29    special exception, which will cause the skeleton and the resulting
30    Bison output files to be licensed under the GNU General Public
31    License without this special exception.
32 
33    This special exception was added by the Free Software Foundation in
34    version 2.2 of Bison.  */
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      INVARIANT = 258,
43      HIGH_PRECISION = 259,
44      MEDIUM_PRECISION = 260,
45      LOW_PRECISION = 261,
46      PRECISION = 262,
47      ATTRIBUTE = 263,
48      CONST_QUAL = 264,
49      BOOL_TYPE = 265,
50      FLOAT_TYPE = 266,
51      INT_TYPE = 267,
52      BREAK = 268,
53      CONTINUE = 269,
54      DO = 270,
55      ELSE = 271,
56      FOR = 272,
57      IF = 273,
58      DISCARD = 274,
59      RETURN = 275,
60      BVEC2 = 276,
61      BVEC3 = 277,
62      BVEC4 = 278,
63      IVEC2 = 279,
64      IVEC3 = 280,
65      IVEC4 = 281,
66      VEC2 = 282,
67      VEC3 = 283,
68      VEC4 = 284,
69      MATRIX2 = 285,
70      MATRIX3 = 286,
71      MATRIX4 = 287,
72      IN_QUAL = 288,
73      OUT_QUAL = 289,
74      INOUT_QUAL = 290,
75      UNIFORM = 291,
76      VARYING = 292,
77      STRUCT = 293,
78      VOID_TYPE = 294,
79      WHILE = 295,
80      SAMPLER2D = 296,
81      SAMPLERCUBE = 297,
82      IDENTIFIER = 298,
83      TYPE_NAME = 299,
84      FLOATCONSTANT = 300,
85      INTCONSTANT = 301,
86      BOOLCONSTANT = 302,
87      FIELD_SELECTION = 303,
88      LEFT_OP = 304,
89      RIGHT_OP = 305,
90      INC_OP = 306,
91      DEC_OP = 307,
92      LE_OP = 308,
93      GE_OP = 309,
94      EQ_OP = 310,
95      NE_OP = 311,
96      AND_OP = 312,
97      OR_OP = 313,
98      XOR_OP = 314,
99      MUL_ASSIGN = 315,
100      DIV_ASSIGN = 316,
101      ADD_ASSIGN = 317,
102      MOD_ASSIGN = 318,
103      LEFT_ASSIGN = 319,
104      RIGHT_ASSIGN = 320,
105      AND_ASSIGN = 321,
106      XOR_ASSIGN = 322,
107      OR_ASSIGN = 323,
108      SUB_ASSIGN = 324,
109      LEFT_PAREN = 325,
110      RIGHT_PAREN = 326,
111      LEFT_BRACKET = 327,
112      RIGHT_BRACKET = 328,
113      LEFT_BRACE = 329,
114      RIGHT_BRACE = 330,
115      DOT = 331,
116      COMMA = 332,
117      COLON = 333,
118      EQUAL = 334,
119      SEMICOLON = 335,
120      BANG = 336,
121      DASH = 337,
122      TILDE = 338,
123      PLUS = 339,
124      STAR = 340,
125      SLASH = 341,
126      PERCENT = 342,
127      LEFT_ANGLE = 343,
128      RIGHT_ANGLE = 344,
129      VERTICAL_BAR = 345,
130      CARET = 346,
131      AMPERSAND = 347,
132      QUESTION = 348
133    };
134 #endif
135 /* Tokens.  */
136 #define INVARIANT 258
137 #define HIGH_PRECISION 259
138 #define MEDIUM_PRECISION 260
139 #define LOW_PRECISION 261
140 #define PRECISION 262
141 #define ATTRIBUTE 263
142 #define CONST_QUAL 264
143 #define BOOL_TYPE 265
144 #define FLOAT_TYPE 266
145 #define INT_TYPE 267
146 #define BREAK 268
147 #define CONTINUE 269
148 #define DO 270
149 #define ELSE 271
150 #define FOR 272
151 #define IF 273
152 #define DISCARD 274
153 #define RETURN 275
154 #define BVEC2 276
155 #define BVEC3 277
156 #define BVEC4 278
157 #define IVEC2 279
158 #define IVEC3 280
159 #define IVEC4 281
160 #define VEC2 282
161 #define VEC3 283
162 #define VEC4 284
163 #define MATRIX2 285
164 #define MATRIX3 286
165 #define MATRIX4 287
166 #define IN_QUAL 288
167 #define OUT_QUAL 289
168 #define INOUT_QUAL 290
169 #define UNIFORM 291
170 #define VARYING 292
171 #define STRUCT 293
172 #define VOID_TYPE 294
173 #define WHILE 295
174 #define SAMPLER2D 296
175 #define SAMPLERCUBE 297
176 #define IDENTIFIER 298
177 #define TYPE_NAME 299
178 #define FLOATCONSTANT 300
179 #define INTCONSTANT 301
180 #define BOOLCONSTANT 302
181 #define FIELD_SELECTION 303
182 #define LEFT_OP 304
183 #define RIGHT_OP 305
184 #define INC_OP 306
185 #define DEC_OP 307
186 #define LE_OP 308
187 #define GE_OP 309
188 #define EQ_OP 310
189 #define NE_OP 311
190 #define AND_OP 312
191 #define OR_OP 313
192 #define XOR_OP 314
193 #define MUL_ASSIGN 315
194 #define DIV_ASSIGN 316
195 #define ADD_ASSIGN 317
196 #define MOD_ASSIGN 318
197 #define LEFT_ASSIGN 319
198 #define RIGHT_ASSIGN 320
199 #define AND_ASSIGN 321
200 #define XOR_ASSIGN 322
201 #define OR_ASSIGN 323
202 #define SUB_ASSIGN 324
203 #define LEFT_PAREN 325
204 #define RIGHT_PAREN 326
205 #define LEFT_BRACKET 327
206 #define RIGHT_BRACKET 328
207 #define LEFT_BRACE 329
208 #define RIGHT_BRACE 330
209 #define DOT 331
210 #define COMMA 332
211 #define COLON 333
212 #define EQUAL 334
213 #define SEMICOLON 335
214 #define BANG 336
215 #define DASH 337
216 #define TILDE 338
217 #define PLUS 339
218 #define STAR 340
219 #define SLASH 341
220 #define PERCENT 342
221 #define LEFT_ANGLE 343
222 #define RIGHT_ANGLE 344
223 #define VERTICAL_BAR 345
224 #define CARET 346
225 #define AMPERSAND 347
226 #define QUESTION 348
227 
228 
229 
230 
231 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
232 typedef union YYSTYPE
233 
234 {
235     struct {
236         TSourceLoc line;
237         union {
238             TString *string;
239             float f;
240             int i;
241             bool b;
242         };
243         TSymbol* symbol;
244     } lex;
245     struct {
246         TSourceLoc line;
247         TOperator op;
248         union {
249             TIntermNode* intermNode;
250             TIntermNodePair nodePair;
251             TIntermTyped* intermTypedNode;
252             TIntermAggregate* intermAggregate;
253         };
254         union {
255             TPublicType type;
256             TPrecision precision;
257             TQualifier qualifier;
258             TFunction* function;
259             TParameter param;
260             TTypeLine typeLine;
261             TTypeList* typeList;
262         };
263     } interm;
264 }
265 /* Line 1489 of yacc.c.  */
266 
267 	YYSTYPE;
268 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
269 # define YYSTYPE_IS_DECLARED 1
270 # define YYSTYPE_IS_TRIVIAL 1
271 #endif
272 
273 
274 
275