• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #line 2 "src/chromium_gensrc/mesa/glcpp-lex.c"
2 
3 #line 4 "src/chromium_gensrc/mesa/glcpp-lex.c"
4 
5 #define  YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define FLEX_SCANNER
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
12 #define YY_FLEX_SUBMINOR_VERSION 35
13 #if YY_FLEX_SUBMINOR_VERSION > 0
14 #define FLEX_BETA
15 #endif
16 
17 /* First, we deal with  platform-specific or compiler-specific issues. */
18 
19 /* begin standard C headers. */
20 #include <stdio.h>
21 #include <string.h>
22 #include <errno.h>
23 #include <stdlib.h>
24 
25 /* end standard C headers. */
26 
27 /* flex integer type definitions */
28 
29 #ifndef FLEXINT_H
30 #define FLEXINT_H
31 
32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33 
34 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
35 
36 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37  * if you want the limit (max/min) macros for int types.
38  */
39 #ifndef __STDC_LIMIT_MACROS
40 #define __STDC_LIMIT_MACROS 1
41 #endif
42 
43 #include <inttypes.h>
44 typedef int8_t flex_int8_t;
45 typedef uint8_t flex_uint8_t;
46 typedef int16_t flex_int16_t;
47 typedef uint16_t flex_uint16_t;
48 typedef int32_t flex_int32_t;
49 typedef uint32_t flex_uint32_t;
50 #else
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
57 
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN               (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN              (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN              (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX               (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX              (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX              (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX              (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX             (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX             (4294967295U)
85 #endif
86 
87 #endif /* ! C99 */
88 
89 #endif /* ! FLEXINT_H */
90 
91 #ifdef __cplusplus
92 
93 /* The "const" storage-class-modifier is valid. */
94 #define YY_USE_CONST
95 
96 #else	/* ! __cplusplus */
97 
98 /* C99 requires __STDC__ to be defined as 1. */
99 #if defined (__STDC__)
100 
101 #define YY_USE_CONST
102 
103 #endif	/* defined (__STDC__) */
104 #endif	/* ! __cplusplus */
105 
106 #ifdef YY_USE_CONST
107 #define yyconst const
108 #else
109 #define yyconst
110 #endif
111 
112 /* Returned upon end-of-file. */
113 #define YY_NULL 0
114 
115 /* Promotes a possibly negative, possibly signed char to an unsigned
116  * integer for use as an array index.  If the signed char is negative,
117  * we want to instead treat it as an 8-bit unsigned char, hence the
118  * double cast.
119  */
120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
121 
122 /* An opaque pointer. */
123 #ifndef YY_TYPEDEF_YY_SCANNER_T
124 #define YY_TYPEDEF_YY_SCANNER_T
125 typedef void* yyscan_t;
126 #endif
127 
128 /* For convenience, these vars (plus the bison vars far below)
129    are macros in the reentrant scanner. */
130 #define yyin yyg->yyin_r
131 #define yyout yyg->yyout_r
132 #define yyextra yyg->yyextra_r
133 #define yyleng yyg->yyleng_r
134 #define yytext yyg->yytext_r
135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
137 #define yy_flex_debug yyg->yy_flex_debug_r
138 
139 /* Enter a start condition.  This macro really ought to take a parameter,
140  * but we do it the disgusting crufty way forced on us by the ()-less
141  * definition of BEGIN.
142  */
143 #define BEGIN yyg->yy_start = 1 + 2 *
144 
145 /* Translate the current start state into a value that can be later handed
146  * to BEGIN to return to the state.  The YYSTATE alias is for lex
147  * compatibility.
148  */
149 #define YY_START ((yyg->yy_start - 1) / 2)
150 #define YYSTATE YY_START
151 
152 /* Action number for EOF rule of a given start state. */
153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
154 
155 /* Special action meaning "start processing a new file". */
156 #define YY_NEW_FILE glcpp_restart(yyin ,yyscanner )
157 
158 #define YY_END_OF_BUFFER_CHAR 0
159 
160 /* Size of default input buffer. */
161 #ifndef YY_BUF_SIZE
162 #ifdef __ia64__
163 /* On IA-64, the buffer size is 16k, not 8k.
164  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
165  * Ditto for the __ia64__ case accordingly.
166  */
167 #define YY_BUF_SIZE 32768
168 #else
169 #define YY_BUF_SIZE 16384
170 #endif /* __ia64__ */
171 #endif
172 
173 /* The state buf must be large enough to hold one state per character in the main buffer.
174  */
175 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
176 
177 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
178 #define YY_TYPEDEF_YY_BUFFER_STATE
179 typedef struct yy_buffer_state *YY_BUFFER_STATE;
180 #endif
181 
182 #define EOB_ACT_CONTINUE_SCAN 0
183 #define EOB_ACT_END_OF_FILE 1
184 #define EOB_ACT_LAST_MATCH 2
185 
186     #define YY_LESS_LINENO(n)
187 
188 /* Return all but the first "n" matched characters back to the input stream. */
189 #define yyless(n) \
190 	do \
191 		{ \
192 		/* Undo effects of setting up yytext. */ \
193         int yyless_macro_arg = (n); \
194         YY_LESS_LINENO(yyless_macro_arg);\
195 		*yy_cp = yyg->yy_hold_char; \
196 		YY_RESTORE_YY_MORE_OFFSET \
197 		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
198 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
199 		} \
200 	while ( 0 )
201 
202 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
203 
204 #ifndef YY_TYPEDEF_YY_SIZE_T
205 #define YY_TYPEDEF_YY_SIZE_T
206 typedef size_t yy_size_t;
207 #endif
208 
209 #ifndef YY_STRUCT_YY_BUFFER_STATE
210 #define YY_STRUCT_YY_BUFFER_STATE
211 struct yy_buffer_state
212 	{
213 	FILE *yy_input_file;
214 
215 	char *yy_ch_buf;		/* input buffer */
216 	char *yy_buf_pos;		/* current position in input buffer */
217 
218 	/* Size of input buffer in bytes, not including room for EOB
219 	 * characters.
220 	 */
221 	yy_size_t yy_buf_size;
222 
223 	/* Number of characters read into yy_ch_buf, not including EOB
224 	 * characters.
225 	 */
226 	int yy_n_chars;
227 
228 	/* Whether we "own" the buffer - i.e., we know we created it,
229 	 * and can realloc() it to grow it, and should free() it to
230 	 * delete it.
231 	 */
232 	int yy_is_our_buffer;
233 
234 	/* Whether this is an "interactive" input source; if so, and
235 	 * if we're using stdio for input, then we want to use getc()
236 	 * instead of fread(), to make sure we stop fetching input after
237 	 * each newline.
238 	 */
239 	int yy_is_interactive;
240 
241 	/* Whether we're considered to be at the beginning of a line.
242 	 * If so, '^' rules will be active on the next match, otherwise
243 	 * not.
244 	 */
245 	int yy_at_bol;
246 
247     int yy_bs_lineno; /**< The line count. */
248     int yy_bs_column; /**< The column count. */
249 
250 	/* Whether to try to fill the input buffer when we reach the
251 	 * end of it.
252 	 */
253 	int yy_fill_buffer;
254 
255 	int yy_buffer_status;
256 
257 #define YY_BUFFER_NEW 0
258 #define YY_BUFFER_NORMAL 1
259 	/* When an EOF's been seen but there's still some text to process
260 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
261 	 * shouldn't try reading from the input source any more.  We might
262 	 * still have a bunch of tokens to match, though, because of
263 	 * possible backing-up.
264 	 *
265 	 * When we actually see the EOF, we change the status to "new"
266 	 * (via glcpp_restart()), so that the user can continue scanning by
267 	 * just pointing yyin at a new input file.
268 	 */
269 #define YY_BUFFER_EOF_PENDING 2
270 
271 	};
272 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
273 
274 /* We provide macros for accessing buffer states in case in the
275  * future we want to put the buffer states in a more general
276  * "scanner state".
277  *
278  * Returns the top of the stack, or NULL.
279  */
280 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
281                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
282                           : NULL)
283 
284 /* Same as previous macro, but useful when we know that the buffer stack is not
285  * NULL or when we need an lvalue. For internal use only.
286  */
287 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
288 
289 void glcpp_restart (FILE *input_file ,yyscan_t yyscanner );
290 void glcpp__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
291 YY_BUFFER_STATE glcpp__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
292 void glcpp__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
293 void glcpp__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
294 void glcpp_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
295 void glcpp_pop_buffer_state (yyscan_t yyscanner );
296 
297 static void glcpp_ensure_buffer_stack (yyscan_t yyscanner );
298 static void glcpp__load_buffer_state (yyscan_t yyscanner );
299 static void glcpp__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
300 
301 #define YY_FLUSH_BUFFER glcpp__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
302 
303 YY_BUFFER_STATE glcpp__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
304 YY_BUFFER_STATE glcpp__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
305 YY_BUFFER_STATE glcpp__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
306 
307 void *glcpp_alloc (yy_size_t ,yyscan_t yyscanner );
308 void *glcpp_realloc (void *,yy_size_t ,yyscan_t yyscanner );
309 void glcpp_free (void * ,yyscan_t yyscanner );
310 
311 #define yy_new_buffer glcpp__create_buffer
312 
313 #define yy_set_interactive(is_interactive) \
314 	{ \
315 	if ( ! YY_CURRENT_BUFFER ){ \
316         glcpp_ensure_buffer_stack (yyscanner); \
317 		YY_CURRENT_BUFFER_LVALUE =    \
318             glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
319 	} \
320 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
321 	}
322 
323 #define yy_set_bol(at_bol) \
324 	{ \
325 	if ( ! YY_CURRENT_BUFFER ){\
326         glcpp_ensure_buffer_stack (yyscanner); \
327 		YY_CURRENT_BUFFER_LVALUE =    \
328             glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
329 	} \
330 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
331 	}
332 
333 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
334 
335 /* Begin user sect3 */
336 
337 #define glcpp_wrap(n) 1
338 #define YY_SKIP_YYWRAP
339 
340 typedef unsigned char YY_CHAR;
341 
342 typedef int yy_state_type;
343 
344 #define yytext_ptr yytext_r
345 
346 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
347 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
348 static int yy_get_next_buffer (yyscan_t yyscanner );
349 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
350 
351 /* Done after the current pattern has been matched and before the
352  * corresponding action - sets up yytext.
353  */
354 #define YY_DO_BEFORE_ACTION \
355 	yyg->yytext_ptr = yy_bp; \
356 	yyleng = (size_t) (yy_cp - yy_bp); \
357 	yyg->yy_hold_char = *yy_cp; \
358 	*yy_cp = '\0'; \
359 	yyg->yy_c_buf_p = yy_cp;
360 
361 #define YY_NUM_RULES 43
362 #define YY_END_OF_BUFFER 44
363 /* This struct is not used in this scanner,
364    but its presence is necessary. */
365 struct yy_trans_info
366 	{
367 	flex_int32_t yy_verify;
368 	flex_int32_t yy_nxt;
369 	};
370 static yyconst flex_int16_t yy_accept[147] =
371     {   0,
372         0,    0,    0,    0,    3,    3,    0,    0,    0,    0,
373         0,    0,   44,   39,   40,   41,   43,   38,   43,   38,
374        38,   38,   25,   24,   38,   38,   38,   37,   37,   38,
375        40,   23,    3,    4,    5,   42,   17,   17,   17,   21,
376        39,   40,   32,   35,   33,    2,    1,   25,   25,    0,
377        24,   24,   27,   29,   31,   30,   28,   37,   37,   34,
378        40,   23,   23,    0,    0,    0,    0,    0,    0,    0,
379         3,    4,    5,    6,    5,    7,    0,    0,    0,    0,
380        20,   21,    1,   26,   37,    0,    0,    0,    0,    0,
381         0,    0,    0,    0,    0,   26,   37,    0,    0,    0,
382 
383         0,    0,    0,   13,    0,    0,    0,    0,    0,    0,
384        37,    0,   14,   15,    0,    0,    0,    0,    0,   10,
385         0,    0,    0,   37,    0,   16,   18,    0,   11,    0,
386         0,   22,    0,   36,    0,   18,    0,   12,    0,    0,
387        19,    0,    9,    8,    0,    0
388     } ;
389 
390 static yyconst flex_int32_t yy_ec[256] =
391     {   0,
392         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
393         4,    4,    4,    1,    1,    1,    1,    1,    1,    1,
394         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
395         1,    2,    5,    1,    6,    1,    7,    8,    1,    9,
396         7,   10,    7,    7,    7,    7,   11,   12,   13,   13,
397        13,   13,   13,   13,   13,   14,   14,    1,    7,   15,
398        16,   17,    1,    1,   18,   18,   18,   18,   18,   18,
399        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
400        19,   19,   19,   19,   20,   19,   19,   21,   19,   19,
401         7,    1,    7,    7,   19,    1,   22,   18,   18,   23,
402 
403        24,   25,   26,   19,   27,   19,   19,   28,   29,   30,
404        31,   32,   19,   33,   34,   35,   36,   37,   19,   38,
405        19,   19,    7,   39,    7,    7,    1,    1,    1,    1,
406         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
407         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
408         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
409         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
410         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
411         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
412         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
413 
414         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
415         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
416         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
417         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
418         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
419         1,    1,    1,    1,    1
420     } ;
421 
422 static yyconst flex_int32_t yy_meta[40] =
423     {   0,
424         1,    1,    2,    1,    1,    1,    1,    1,    3,    4,
425         1,    5,    5,    5,    1,    1,    1,    5,    6,    6,
426         6,    5,    7,    5,    5,    6,    6,    6,    6,    8,
427         6,    6,    6,    6,    6,    6,    6,    6,    1
428     } ;
429 
430 static yyconst flex_int16_t yy_base[160] =
431     {   0,
432         0,   38,    0,    0,   38,   39,  313,  312,  311,   44,
433        50,    0,  313,  311,  309,  317,  317,  294,  303,  317,
434       300,   80,   80,   83,   83,  291,   88,    0,  282,  266,
435       100,  118,  301,  317,  104,  317,  317,  106,  107,  294,
436       301,  299,  317,  317,  317,  317,    0,  113,  317,    0,
437       115,  317,  317,  317,  317,  317,  317,    0,  275,  317,
438       111,  293,  292,  273,  110,  271,  268,  261,  263,  268,
439       288,  317,  149,  317,  153,  317,  130,  120,  151,   15,
440       317,  281,    0,   74,  262,  263,   96,  264,  253,  250,
441       135,  254,  261,  259,  248,  317,  250,  252,  253,  253,
442 
443       249,  244,  250,  317,  249,  249,  241,  231,  229,  218,
444       222,  208,  317,  317,  207,  185,  147,  151,  150,  317,
445       144,  147,  144,  147,  145,  317,    0,  134,  317,  142,
446       144,  317,  131,    0,  159,    0,  130,  317,    0,  109,
447       135,   90,    0,  317,   81,  317,  178,  186,  194,  202,
448       206,  214,  222,  228,  236,  240,  247,  255,  263
449     } ;
450 
451 static yyconst flex_int16_t yy_def[160] =
452     {   0,
453       146,    1,  147,  147,  148,  148,  149,  149,  150,  150,
454       146,   11,  146,  146,  146,  146,  146,  146,  146,  146,
455       146,  146,  146,  146,  146,  146,  146,  151,  151,  146,
456       146,  146,  152,  146,  153,  146,  146,  146,  146,  154,
457       146,  146,  146,  146,  146,  146,  155,  146,  146,  156,
458       146,  146,  146,  146,  146,  146,  146,  151,  151,  146,
459       146,   32,   32,  146,  146,  146,  146,  146,  146,  146,
460       152,  146,  153,  146,  153,  146,  146,  146,  146,  146,
461       146,  154,  155,  156,  151,  146,  146,  146,  146,  146,
462       157,  146,  146,  146,  146,  146,  151,  146,  146,  146,
463 
464       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
465       151,  146,  146,  146,  146,  146,  146,  146,  146,  146,
466       146,  146,  146,  151,  146,  146,  158,  146,  146,  146,
467       146,  146,  146,  151,  146,  158,  146,  146,  159,  146,
468       146,  146,  159,  146,  146,    0,  146,  146,  146,  146,
469       146,  146,  146,  146,  146,  146,  146,  146,  146
470     } ;
471 
472 static yyconst flex_int16_t yy_nxt[357] =
473     {   0,
474        14,   15,   16,   17,   18,   19,   20,   21,   20,   20,
475        22,   23,   24,   24,   25,   26,   27,   28,   28,   28,
476        28,   28,   29,   28,   28,   28,   28,   28,   28,   28,
477        28,   28,   28,   28,   28,   28,   28,   28,   30,   31,
478        34,   34,   87,   32,   88,   38,   16,   35,   35,   39,
479        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
480        17,   17,   17,   17,   17,   17,   17,   40,   40,   40,
481        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
482        40,   40,   40,   40,   40,   40,   40,   40,   17,   46,
483        47,   48,   48,   96,   51,   51,   51,   53,   54,   49,
484 
485        50,   61,   52,   56,   57,   62,   74,   77,   79,   96,
486       139,   78,   61,   75,   76,   49,   62,   50,   52,   63,
487       145,   79,   99,   44,   48,   48,   51,   51,   51,  100,
488        80,   77,   49,   66,   52,   78,  141,   87,  144,   88,
489        64,   65,   89,   80,   66,   67,   66,   90,   49,   68,
490        52,   74,   79,   69,   70,   74,  142,  105,  146,  146,
491       141,  140,   75,   76,  106,  139,  138,  137,  135,  134,
492       133,  132,  131,  130,   80,  129,  128,   66,   17,   17,
493        17,   17,   17,   17,   17,   17,   33,   33,   33,   33,
494        33,   33,   33,   33,   36,   36,   36,   36,   36,   36,
495 
496        36,   36,   37,   37,   37,   37,   37,   37,   37,   37,
497        58,   58,   58,   58,   71,   71,   71,  127,   71,   71,
498        71,   71,   73,   73,   73,   73,   73,   73,   73,   73,
499        82,  126,   82,   82,   82,   82,   83,  125,   83,   83,
500        83,   83,   83,   83,   84,  124,   84,  104,  104,  104,
501       104,  123,  122,  104,  104,  136,  121,  136,  136,  136,
502       136,  136,  136,  143,  120,  143,  143,  143,  143,  143,
503       143,  119,  118,  117,  116,  115,  114,  113,  112,  111,
504       110,  109,  108,  107,  103,  102,  101,   98,   97,   81,
505        72,   95,   94,   93,   92,   91,   86,  146,  146,   85,
506 
507        42,   41,   81,   72,   60,   59,   55,   45,   44,   43,
508        42,   41,  146,   16,   17,   17,   13,  146,  146,  146,
509       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
510       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
511       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
512       146,  146,  146,  146,  146,  146
513     } ;
514 
515 static yyconst flex_int16_t yy_chk[357] =
516     {   0,
517         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
518         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
519         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
520         1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
521         5,    6,   80,    2,   80,   10,   10,    5,    6,   10,
522        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
523        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
524        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
525        11,   11,   11,   11,   11,   11,   11,   11,   11,   22,
526        22,   23,   23,   84,   24,   24,   24,   25,   25,   23,
527 
528        23,   31,   24,   27,   27,   31,   35,   38,   39,   84,
529       145,   38,   61,   35,   35,   23,   61,   23,   24,   32,
530       142,   78,   87,   32,   48,   48,   51,   51,   51,   87,
531        39,   77,   48,   39,   51,   77,  141,   65,  140,   65,
532        32,   32,   65,   78,   32,   32,   78,   65,   48,   32,
533        51,   73,   79,   32,   32,   75,  137,   91,   73,   73,
534       135,  133,   75,   75,   91,  131,  130,  128,  125,  124,
535       123,  122,  121,  119,   79,  118,  117,   79,  147,  147,
536       147,  147,  147,  147,  147,  147,  148,  148,  148,  148,
537       148,  148,  148,  148,  149,  149,  149,  149,  149,  149,
538 
539       149,  149,  150,  150,  150,  150,  150,  150,  150,  150,
540       151,  151,  151,  151,  152,  152,  152,  116,  152,  152,
541       152,  152,  153,  153,  153,  153,  153,  153,  153,  153,
542       154,  115,  154,  154,  154,  154,  155,  112,  155,  155,
543       155,  155,  155,  155,  156,  111,  156,  157,  157,  157,
544       157,  110,  109,  157,  157,  158,  108,  158,  158,  158,
545       158,  158,  158,  159,  107,  159,  159,  159,  159,  159,
546       159,  106,  105,  103,  102,  101,  100,   99,   98,   97,
547        95,   94,   93,   92,   90,   89,   88,   86,   85,   82,
548        71,   70,   69,   68,   67,   66,   64,   63,   62,   59,
549 
550        42,   41,   40,   33,   30,   29,   26,   21,   19,   18,
551        15,   14,   13,    9,    8,    7,  146,  146,  146,  146,
552       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
553       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
554       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
555       146,  146,  146,  146,  146,  146
556     } ;
557 
558 /* The intent behind this definition is that it'll catch
559  * any uses of REJECT which flex missed.
560  */
561 #define REJECT reject_used_but_not_detected
562 #define yymore() yymore_used_but_not_detected
563 #define YY_MORE_ADJ 0
564 #define YY_RESTORE_YY_MORE_OFFSET
565 #line 1 "src/src/glsl/glcpp/glcpp-lex.l"
566 #line 2 "src/src/glsl/glcpp/glcpp-lex.l"
567 /*
568  * Copyright © 2010 Intel Corporation
569  *
570  * Permission is hereby granted, free of charge, to any person obtaining a
571  * copy of this software and associated documentation files (the "Software"),
572  * to deal in the Software without restriction, including without limitation
573  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
574  * and/or sell copies of the Software, and to permit persons to whom the
575  * Software is furnished to do so, subject to the following conditions:
576  *
577  * The above copyright notice and this permission notice (including the next
578  * paragraph) shall be included in all copies or substantial portions of the
579  * Software.
580  *
581  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
582  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
583  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
584  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
585  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
586  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
587  * DEALINGS IN THE SOFTWARE.
588  */
589 
590 #include <stdio.h>
591 #include <string.h>
592 #include <ctype.h>
593 
594 #include "glcpp.h"
595 #include "glcpp-parse.h"
596 
597 /* Flex annoyingly generates some functions without making them
598  * static. Let's declare them here. */
599 int glcpp_get_column  (yyscan_t yyscanner);
600 void glcpp_set_column (int  column_no , yyscan_t yyscanner);
601 
602 #ifdef _MSC_VER
603 #define YY_NO_UNISTD_H
604 #endif
605 
606 #define YY_NO_INPUT
607 
608 #define YY_USER_ACTION							\
609 	do {								\
610 		if (parser->has_new_line_number)			\
611 			yylineno = parser->new_line_number;		\
612 		if (parser->has_new_source_number)			\
613 			yylloc->source = parser->new_source_number;	\
614 		yylloc->first_column = yycolumn + 1;			\
615 		yylloc->first_line = yylineno;				\
616 		yycolumn += yyleng;					\
617 		parser->has_new_line_number = 0;			\
618 		parser->has_new_source_number = 0;			\
619  } while(0);
620 
621 #define YY_USER_INIT			\
622 	do {				\
623 		yylineno = 1;		\
624 		yycolumn = 1;		\
625 		yylloc->source = 0;	\
626 	} while(0)
627 
628 /* The OTHER class is simply a catch-all for things that the CPP
629 parser just doesn't care about. Since flex regular expressions that
630 match longer strings take priority over those matching shorter
631 strings, we have to be careful to avoid OTHER matching and hiding
632 something that CPP does care about. So we simply exclude all
633 characters that appear in any other expressions. */
634 #line 635 "src/chromium_gensrc/mesa/glcpp-lex.c"
635 
636 #define INITIAL 0
637 #define DONE 1
638 #define COMMENT 2
639 #define UNREACHABLE 3
640 #define SKIP 4
641 #define DEFINE 5
642 
643 #define YY_EXTRA_TYPE glcpp_parser_t *
644 
645 /* Holds the entire state of the reentrant scanner. */
646 struct yyguts_t
647     {
648 
649     /* User-defined. Not touched by flex. */
650     YY_EXTRA_TYPE yyextra_r;
651 
652     /* The rest are the same as the globals declared in the non-reentrant scanner. */
653     FILE *yyin_r, *yyout_r;
654     size_t yy_buffer_stack_top; /**< index of top of stack. */
655     size_t yy_buffer_stack_max; /**< capacity of stack. */
656     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
657     char yy_hold_char;
658     int yy_n_chars;
659     int yyleng_r;
660     char *yy_c_buf_p;
661     int yy_init;
662     int yy_start;
663     int yy_did_buffer_switch_on_eof;
664     int yy_start_stack_ptr;
665     int yy_start_stack_depth;
666     int *yy_start_stack;
667     yy_state_type yy_last_accepting_state;
668     char* yy_last_accepting_cpos;
669 
670     int yylineno_r;
671     int yy_flex_debug_r;
672 
673     char *yytext_r;
674     int yy_more_flag;
675     int yy_more_len;
676 
677     YYSTYPE * yylval_r;
678 
679     YYLTYPE * yylloc_r;
680 
681     }; /* end struct yyguts_t */
682 
683 static int yy_init_globals (yyscan_t yyscanner );
684 
685     /* This must go here because YYSTYPE and YYLTYPE are included
686      * from bison output in section 1.*/
687     #    define yylval yyg->yylval_r
688 
689     #    define yylloc yyg->yylloc_r
690 
691 int glcpp_lex_init (yyscan_t* scanner);
692 
693 int glcpp_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
694 
695 /* Accessor methods to globals.
696    These are made visible to non-reentrant scanners for convenience. */
697 
698 int glcpp_lex_destroy (yyscan_t yyscanner );
699 
700 int glcpp_get_debug (yyscan_t yyscanner );
701 
702 void glcpp_set_debug (int debug_flag ,yyscan_t yyscanner );
703 
704 YY_EXTRA_TYPE glcpp_get_extra (yyscan_t yyscanner );
705 
706 void glcpp_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
707 
708 FILE *glcpp_get_in (yyscan_t yyscanner );
709 
710 void glcpp_set_in  (FILE * in_str ,yyscan_t yyscanner );
711 
712 FILE *glcpp_get_out (yyscan_t yyscanner );
713 
714 void glcpp_set_out  (FILE * out_str ,yyscan_t yyscanner );
715 
716 int glcpp_get_leng (yyscan_t yyscanner );
717 
718 char *glcpp_get_text (yyscan_t yyscanner );
719 
720 int glcpp_get_lineno (yyscan_t yyscanner );
721 
722 void glcpp_set_lineno (int line_number ,yyscan_t yyscanner );
723 
724 YYSTYPE * glcpp_get_lval (yyscan_t yyscanner );
725 
726 void glcpp_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
727 
728        YYLTYPE *glcpp_get_lloc (yyscan_t yyscanner );
729 
730         void glcpp_set_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
731 
732 /* Macros after this point can all be overridden by user definitions in
733  * section 1.
734  */
735 
736 #ifndef YY_SKIP_YYWRAP
737 #ifdef __cplusplus
738 extern "C" int glcpp_wrap (yyscan_t yyscanner );
739 #else
740 extern int glcpp_wrap (yyscan_t yyscanner );
741 #endif
742 #endif
743 
744     static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
745 
746 #ifndef yytext_ptr
747 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
748 #endif
749 
750 #ifdef YY_NEED_STRLEN
751 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
752 #endif
753 
754 #ifndef YY_NO_INPUT
755 
756 #ifdef __cplusplus
757 static int yyinput (yyscan_t yyscanner );
758 #else
759 static int input (yyscan_t yyscanner );
760 #endif
761 
762 #endif
763 
764     static void yy_push_state (int new_state ,yyscan_t yyscanner);
765 
766     static void yy_pop_state (yyscan_t yyscanner );
767 
768     static int yy_top_state (yyscan_t yyscanner );
769 
770 /* Amount of stuff to slurp up with each read. */
771 #ifndef YY_READ_BUF_SIZE
772 #ifdef __ia64__
773 /* On IA-64, the buffer size is 16k, not 8k */
774 #define YY_READ_BUF_SIZE 16384
775 #else
776 #define YY_READ_BUF_SIZE 8192
777 #endif /* __ia64__ */
778 #endif
779 
780 /* Copy whatever the last rule matched to the standard output. */
781 #ifndef ECHO
782 /* This used to be an fputs(), but since the string might contain NUL's,
783  * we now use fwrite().
784  */
785 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
786 #endif
787 
788 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
789  * is returned in "result".
790  */
791 #ifndef YY_INPUT
792 #define YY_INPUT(buf,result,max_size) \
793 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
794 		{ \
795 		int c = '*'; \
796 		size_t n; \
797 		for ( n = 0; n < max_size && \
798 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
799 			buf[n] = (char) c; \
800 		if ( c == '\n' ) \
801 			buf[n++] = (char) c; \
802 		if ( c == EOF && ferror( yyin ) ) \
803 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
804 		result = n; \
805 		} \
806 	else \
807 		{ \
808 		errno=0; \
809 		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
810 			{ \
811 			if( errno != EINTR) \
812 				{ \
813 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
814 				break; \
815 				} \
816 			errno=0; \
817 			clearerr(yyin); \
818 			} \
819 		}\
820 \
821 
822 #endif
823 
824 /* No semi-colon after return; correct usage is to write "yyterminate();" -
825  * we don't want an extra ';' after the "return" because that will cause
826  * some compilers to complain about unreachable statements.
827  */
828 #ifndef yyterminate
829 #define yyterminate() return YY_NULL
830 #endif
831 
832 /* Number of entries by which start-condition stack grows. */
833 #ifndef YY_START_STACK_INCR
834 #define YY_START_STACK_INCR 25
835 #endif
836 
837 /* Report a fatal error. */
838 #ifndef YY_FATAL_ERROR
839 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
840 #endif
841 
842 /* end tables serialization structures and prototypes */
843 
844 /* Default declaration of generated scanner - a define so the user can
845  * easily add parameters.
846  */
847 #ifndef YY_DECL
848 #define YY_DECL_IS_OURS 1
849 
850 extern int glcpp_lex \
851                (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
852 
853 #define YY_DECL int glcpp_lex \
854                (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
855 #endif /* !YY_DECL */
856 
857 /* Code executed at the beginning of each rule, after yytext and yyleng
858  * have been set up.
859  */
860 #ifndef YY_USER_ACTION
861 #define YY_USER_ACTION
862 #endif
863 
864 /* Code executed at the end of each rule. */
865 #ifndef YY_BREAK
866 #define YY_BREAK break;
867 #endif
868 
869 #define YY_RULE_SETUP \
870 	if ( yyleng > 0 ) \
871 		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
872 				(yytext[yyleng - 1] == '\n'); \
873 	YY_USER_ACTION
874 
875 /** The main scanner function which does all the work.
876  */
877 YY_DECL
878 {
879 	register yy_state_type yy_current_state;
880 	register char *yy_cp, *yy_bp;
881 	register int yy_act;
882     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
883 
884 #line 94 "src/src/glsl/glcpp/glcpp-lex.l"
885 
886 	/* Implicitly switch between SKIP and INITIAL (non-skipping);
887 	 * don't switch if some other state was explicitly set.
888 	 */
889 	glcpp_parser_t *parser = yyextra;
890 	if (YY_START == 0 || YY_START == SKIP) {
891 		if (parser->lexing_if || parser->skip_stack == NULL || parser->skip_stack->type == SKIP_NO_SKIP) {
892 			BEGIN 0;
893 		} else {
894 			BEGIN SKIP;
895 		}
896 	}
897 
898 	/* Single-line comments */
899 #line 900 "src/chromium_gensrc/mesa/glcpp-lex.c"
900 
901     yylval = yylval_param;
902 
903     yylloc = yylloc_param;
904 
905 	if ( !yyg->yy_init )
906 		{
907 		yyg->yy_init = 1;
908 
909 #ifdef YY_USER_INIT
910 		YY_USER_INIT;
911 #endif
912 
913 		if ( ! yyg->yy_start )
914 			yyg->yy_start = 1;	/* first start state */
915 
916 		if ( ! yyin )
917 			yyin = stdin;
918 
919 		if ( ! yyout )
920 			yyout = stdout;
921 
922 		if ( ! YY_CURRENT_BUFFER ) {
923 			glcpp_ensure_buffer_stack (yyscanner);
924 			YY_CURRENT_BUFFER_LVALUE =
925 				glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
926 		}
927 
928 		glcpp__load_buffer_state(yyscanner );
929 		}
930 
931 	while ( 1 )		/* loops until end-of-file is reached */
932 		{
933 		yy_cp = yyg->yy_c_buf_p;
934 
935 		/* Support of yytext. */
936 		*yy_cp = yyg->yy_hold_char;
937 
938 		/* yy_bp points to the position in yy_ch_buf of the start of
939 		 * the current run.
940 		 */
941 		yy_bp = yy_cp;
942 
943 		yy_current_state = yyg->yy_start;
944 		yy_current_state += YY_AT_BOL();
945 yy_match:
946 		do
947 			{
948 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
949 			if ( yy_accept[yy_current_state] )
950 				{
951 				yyg->yy_last_accepting_state = yy_current_state;
952 				yyg->yy_last_accepting_cpos = yy_cp;
953 				}
954 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
955 				{
956 				yy_current_state = (int) yy_def[yy_current_state];
957 				if ( yy_current_state >= 147 )
958 					yy_c = yy_meta[(unsigned int) yy_c];
959 				}
960 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
961 			++yy_cp;
962 			}
963 		while ( yy_current_state != 146 );
964 		yy_cp = yyg->yy_last_accepting_cpos;
965 		yy_current_state = yyg->yy_last_accepting_state;
966 
967 yy_find_action:
968 		yy_act = yy_accept[yy_current_state];
969 
970 		YY_DO_BEFORE_ACTION;
971 
972 do_action:	/* This label is used only to access EOF actions. */
973 
974 		switch ( yy_act )
975 	{ /* beginning of action switch */
976 			case 0: /* must back up */
977 			/* undo the effects of YY_DO_BEFORE_ACTION */
978 			*yy_cp = yyg->yy_hold_char;
979 			yy_cp = yyg->yy_last_accepting_cpos;
980 			yy_current_state = yyg->yy_last_accepting_state;
981 			goto yy_find_action;
982 
983 case 1:
984 YY_RULE_SETUP
985 #line 108 "src/src/glsl/glcpp/glcpp-lex.l"
986 {
987 }
988 	YY_BREAK
989 /* Multi-line comments */
990 case 2:
991 YY_RULE_SETUP
992 #line 112 "src/src/glsl/glcpp/glcpp-lex.l"
993 { yy_push_state(COMMENT, yyscanner); }
994 	YY_BREAK
995 case 3:
996 YY_RULE_SETUP
997 #line 113 "src/src/glsl/glcpp/glcpp-lex.l"
998 
999 	YY_BREAK
1000 case 4:
1001 /* rule 4 can match eol */
1002 YY_RULE_SETUP
1003 #line 114 "src/src/glsl/glcpp/glcpp-lex.l"
1004 { yylineno++; yycolumn = 0; return NEWLINE; }
1005 	YY_BREAK
1006 case 5:
1007 YY_RULE_SETUP
1008 #line 115 "src/src/glsl/glcpp/glcpp-lex.l"
1009 
1010 	YY_BREAK
1011 case 6:
1012 /* rule 6 can match eol */
1013 YY_RULE_SETUP
1014 #line 116 "src/src/glsl/glcpp/glcpp-lex.l"
1015 { yylineno++; yycolumn = 0; return NEWLINE; }
1016 	YY_BREAK
1017 case 7:
1018 YY_RULE_SETUP
1019 #line 117 "src/src/glsl/glcpp/glcpp-lex.l"
1020 {
1021 	yy_pop_state(yyscanner);
1022 	if (yyextra->space_tokens)
1023 		return SPACE;
1024 }
1025 	YY_BREAK
1026 case 8:
1027 YY_RULE_SETUP
1028 #line 123 "src/src/glsl/glcpp/glcpp-lex.l"
1029 {
1030 	yylval->str = ralloc_strdup (yyextra, yytext);
1031 	yyextra->space_tokens = 0;
1032 	return HASH_VERSION;
1033 }
1034 	YY_BREAK
1035 /* glcpp doesn't handle #extension, #version, or #pragma directives.
1036 	 * Simply pass them through to the main compiler's lexer/parser. */
1037 case 9:
1038 YY_RULE_SETUP
1039 #line 131 "src/src/glsl/glcpp/glcpp-lex.l"
1040 {
1041 	yylval->str = ralloc_strdup (yyextra, yytext);
1042 	yylineno++;
1043 	yycolumn = 0;
1044 	return OTHER;
1045 }
1046 	YY_BREAK
1047 case 10:
1048 YY_RULE_SETUP
1049 #line 138 "src/src/glsl/glcpp/glcpp-lex.l"
1050 {
1051 	return HASH_LINE;
1052 }
1053 	YY_BREAK
1054 
1055 case 11:
1056 YY_RULE_SETUP
1057 #line 143 "src/src/glsl/glcpp/glcpp-lex.l"
1058 {
1059 	yyextra->lexing_if = 1;
1060 	yyextra->space_tokens = 0;
1061 	return HASH_IFDEF;
1062 }
1063 	YY_BREAK
1064 case 12:
1065 YY_RULE_SETUP
1066 #line 149 "src/src/glsl/glcpp/glcpp-lex.l"
1067 {
1068 	yyextra->lexing_if = 1;
1069 	yyextra->space_tokens = 0;
1070 	return HASH_IFNDEF;
1071 }
1072 	YY_BREAK
1073 case 13:
1074 /* rule 13 can match eol */
1075 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
1076 yyg->yy_c_buf_p = yy_cp -= 1;
1077 YY_DO_BEFORE_ACTION; /* set up yytext again */
1078 YY_RULE_SETUP
1079 #line 155 "src/src/glsl/glcpp/glcpp-lex.l"
1080 {
1081 	yyextra->lexing_if = 1;
1082 	yyextra->space_tokens = 0;
1083 	return HASH_IF;
1084 }
1085 	YY_BREAK
1086 case 14:
1087 YY_RULE_SETUP
1088 #line 161 "src/src/glsl/glcpp/glcpp-lex.l"
1089 {
1090 	yyextra->lexing_if = 1;
1091 	yyextra->space_tokens = 0;
1092 	return HASH_ELIF;
1093 }
1094 	YY_BREAK
1095 case 15:
1096 YY_RULE_SETUP
1097 #line 167 "src/src/glsl/glcpp/glcpp-lex.l"
1098 {
1099 	yyextra->space_tokens = 0;
1100 	return HASH_ELSE;
1101 }
1102 	YY_BREAK
1103 case 16:
1104 YY_RULE_SETUP
1105 #line 172 "src/src/glsl/glcpp/glcpp-lex.l"
1106 {
1107 	yyextra->space_tokens = 0;
1108 	return HASH_ENDIF;
1109 }
1110 	YY_BREAK
1111 
1112 case 17:
1113 YY_RULE_SETUP
1114 #line 178 "src/src/glsl/glcpp/glcpp-lex.l"
1115 ;
1116 	YY_BREAK
1117 case 18:
1118 YY_RULE_SETUP
1119 #line 180 "src/src/glsl/glcpp/glcpp-lex.l"
1120 {
1121 	char *p;
1122 	for (p = yytext; !isalpha(p[0]); p++); /* skip "  #   " */
1123 	p += 5; /* skip "error" */
1124 	glcpp_error(yylloc, yyextra, "#error%s", p);
1125 }
1126 	YY_BREAK
1127 case 19:
1128 YY_RULE_SETUP
1129 #line 187 "src/src/glsl/glcpp/glcpp-lex.l"
1130 {
1131 	yyextra->space_tokens = 0;
1132 	yy_push_state(DEFINE, yyscanner);
1133 	return HASH_DEFINE;
1134 }
1135 	YY_BREAK
1136 case 20:
1137 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
1138 yyg->yy_c_buf_p = yy_cp -= 1;
1139 YY_DO_BEFORE_ACTION; /* set up yytext again */
1140 YY_RULE_SETUP
1141 #line 193 "src/src/glsl/glcpp/glcpp-lex.l"
1142 {
1143 	yy_pop_state(yyscanner);
1144 	yylval->str = ralloc_strdup (yyextra, yytext);
1145 	return FUNC_IDENTIFIER;
1146 }
1147 	YY_BREAK
1148 case 21:
1149 YY_RULE_SETUP
1150 #line 199 "src/src/glsl/glcpp/glcpp-lex.l"
1151 {
1152 	yy_pop_state(yyscanner);
1153 	yylval->str = ralloc_strdup (yyextra, yytext);
1154 	return OBJ_IDENTIFIER;
1155 }
1156 	YY_BREAK
1157 case 22:
1158 YY_RULE_SETUP
1159 #line 205 "src/src/glsl/glcpp/glcpp-lex.l"
1160 {
1161 	yyextra->space_tokens = 0;
1162 	return HASH_UNDEF;
1163 }
1164 	YY_BREAK
1165 case 23:
1166 YY_RULE_SETUP
1167 #line 210 "src/src/glsl/glcpp/glcpp-lex.l"
1168 {
1169 	yyextra->space_tokens = 0;
1170 	return HASH;
1171 }
1172 	YY_BREAK
1173 case 24:
1174 YY_RULE_SETUP
1175 #line 215 "src/src/glsl/glcpp/glcpp-lex.l"
1176 {
1177 	yylval->str = ralloc_strdup (yyextra, yytext);
1178 	return INTEGER_STRING;
1179 }
1180 	YY_BREAK
1181 case 25:
1182 YY_RULE_SETUP
1183 #line 220 "src/src/glsl/glcpp/glcpp-lex.l"
1184 {
1185 	yylval->str = ralloc_strdup (yyextra, yytext);
1186 	return INTEGER_STRING;
1187 }
1188 	YY_BREAK
1189 case 26:
1190 YY_RULE_SETUP
1191 #line 225 "src/src/glsl/glcpp/glcpp-lex.l"
1192 {
1193 	yylval->str = ralloc_strdup (yyextra, yytext);
1194 	return INTEGER_STRING;
1195 }
1196 	YY_BREAK
1197 case 27:
1198 YY_RULE_SETUP
1199 #line 230 "src/src/glsl/glcpp/glcpp-lex.l"
1200 {
1201 	return LEFT_SHIFT;
1202 }
1203 	YY_BREAK
1204 case 28:
1205 YY_RULE_SETUP
1206 #line 234 "src/src/glsl/glcpp/glcpp-lex.l"
1207 {
1208 	return RIGHT_SHIFT;
1209 }
1210 	YY_BREAK
1211 case 29:
1212 YY_RULE_SETUP
1213 #line 238 "src/src/glsl/glcpp/glcpp-lex.l"
1214 {
1215 	return LESS_OR_EQUAL;
1216 }
1217 	YY_BREAK
1218 case 30:
1219 YY_RULE_SETUP
1220 #line 242 "src/src/glsl/glcpp/glcpp-lex.l"
1221 {
1222 	return GREATER_OR_EQUAL;
1223 }
1224 	YY_BREAK
1225 case 31:
1226 YY_RULE_SETUP
1227 #line 246 "src/src/glsl/glcpp/glcpp-lex.l"
1228 {
1229 	return EQUAL;
1230 }
1231 	YY_BREAK
1232 case 32:
1233 YY_RULE_SETUP
1234 #line 250 "src/src/glsl/glcpp/glcpp-lex.l"
1235 {
1236 	return NOT_EQUAL;
1237 }
1238 	YY_BREAK
1239 case 33:
1240 YY_RULE_SETUP
1241 #line 254 "src/src/glsl/glcpp/glcpp-lex.l"
1242 {
1243 	return AND;
1244 }
1245 	YY_BREAK
1246 case 34:
1247 YY_RULE_SETUP
1248 #line 258 "src/src/glsl/glcpp/glcpp-lex.l"
1249 {
1250 	return OR;
1251 }
1252 	YY_BREAK
1253 case 35:
1254 YY_RULE_SETUP
1255 #line 262 "src/src/glsl/glcpp/glcpp-lex.l"
1256 {
1257 	return PASTE;
1258 }
1259 	YY_BREAK
1260 case 36:
1261 YY_RULE_SETUP
1262 #line 266 "src/src/glsl/glcpp/glcpp-lex.l"
1263 {
1264 	return DEFINED;
1265 }
1266 	YY_BREAK
1267 case 37:
1268 YY_RULE_SETUP
1269 #line 270 "src/src/glsl/glcpp/glcpp-lex.l"
1270 {
1271 	yylval->str = ralloc_strdup (yyextra, yytext);
1272 	return IDENTIFIER;
1273 }
1274 	YY_BREAK
1275 case 38:
1276 YY_RULE_SETUP
1277 #line 275 "src/src/glsl/glcpp/glcpp-lex.l"
1278 {
1279 	return yytext[0];
1280 }
1281 	YY_BREAK
1282 case 39:
1283 YY_RULE_SETUP
1284 #line 279 "src/src/glsl/glcpp/glcpp-lex.l"
1285 {
1286 	yylval->str = ralloc_strdup (yyextra, yytext);
1287 	return OTHER;
1288 }
1289 	YY_BREAK
1290 case 40:
1291 YY_RULE_SETUP
1292 #line 284 "src/src/glsl/glcpp/glcpp-lex.l"
1293 {
1294 	if (yyextra->space_tokens) {
1295 		return SPACE;
1296 	}
1297 }
1298 	YY_BREAK
1299 case 41:
1300 /* rule 41 can match eol */
1301 YY_RULE_SETUP
1302 #line 290 "src/src/glsl/glcpp/glcpp-lex.l"
1303 {
1304 	yyextra->lexing_if = 0;
1305 	yylineno++;
1306 	yycolumn = 0;
1307 	return NEWLINE;
1308 }
1309 	YY_BREAK
1310 /* Handle missing newline at EOF. */
1311 case YY_STATE_EOF(INITIAL):
1312 #line 298 "src/src/glsl/glcpp/glcpp-lex.l"
1313 {
1314 	BEGIN DONE; /* Don't keep matching this rule forever. */
1315 	yyextra->lexing_if = 0;
1316 	return NEWLINE;
1317 }
1318 	YY_BREAK
1319 /* We don't actually use the UNREACHABLE start condition. We
1320 	only have this action here so that we can pretend to call some
1321 	generated functions, (to avoid "defined but not used"
1322 	warnings. */
1323 case 42:
1324 YY_RULE_SETUP
1325 #line 308 "src/src/glsl/glcpp/glcpp-lex.l"
1326 {
1327 	unput('.');
1328 	yy_top_state(yyextra);
1329 }
1330 	YY_BREAK
1331 case 43:
1332 YY_RULE_SETUP
1333 #line 313 "src/src/glsl/glcpp/glcpp-lex.l"
1334 ECHO;
1335 	YY_BREAK
1336 #line 1337 "src/chromium_gensrc/mesa/glcpp-lex.c"
1337 case YY_STATE_EOF(DONE):
1338 case YY_STATE_EOF(COMMENT):
1339 case YY_STATE_EOF(UNREACHABLE):
1340 case YY_STATE_EOF(SKIP):
1341 case YY_STATE_EOF(DEFINE):
1342 	yyterminate();
1343 
1344 	case YY_END_OF_BUFFER:
1345 		{
1346 		/* Amount of text matched not including the EOB char. */
1347 		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1348 
1349 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
1350 		*yy_cp = yyg->yy_hold_char;
1351 		YY_RESTORE_YY_MORE_OFFSET
1352 
1353 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1354 			{
1355 			/* We're scanning a new file or input source.  It's
1356 			 * possible that this happened because the user
1357 			 * just pointed yyin at a new source and called
1358 			 * glcpp_lex().  If so, then we have to assure
1359 			 * consistency between YY_CURRENT_BUFFER and our
1360 			 * globals.  Here is the right place to do so, because
1361 			 * this is the first action (other than possibly a
1362 			 * back-up) that will match for the new input source.
1363 			 */
1364 			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1365 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1366 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1367 			}
1368 
1369 		/* Note that here we test for yy_c_buf_p "<=" to the position
1370 		 * of the first EOB in the buffer, since yy_c_buf_p will
1371 		 * already have been incremented past the NUL character
1372 		 * (since all states make transitions on EOB to the
1373 		 * end-of-buffer state).  Contrast this with the test
1374 		 * in input().
1375 		 */
1376 		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1377 			{ /* This was really a NUL. */
1378 			yy_state_type yy_next_state;
1379 
1380 			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1381 
1382 			yy_current_state = yy_get_previous_state( yyscanner );
1383 
1384 			/* Okay, we're now positioned to make the NUL
1385 			 * transition.  We couldn't have
1386 			 * yy_get_previous_state() go ahead and do it
1387 			 * for us because it doesn't know how to deal
1388 			 * with the possibility of jamming (and we don't
1389 			 * want to build jamming into it because then it
1390 			 * will run more slowly).
1391 			 */
1392 
1393 			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1394 
1395 			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1396 
1397 			if ( yy_next_state )
1398 				{
1399 				/* Consume the NUL. */
1400 				yy_cp = ++yyg->yy_c_buf_p;
1401 				yy_current_state = yy_next_state;
1402 				goto yy_match;
1403 				}
1404 
1405 			else
1406 				{
1407 				yy_cp = yyg->yy_last_accepting_cpos;
1408 				yy_current_state = yyg->yy_last_accepting_state;
1409 				goto yy_find_action;
1410 				}
1411 			}
1412 
1413 		else switch ( yy_get_next_buffer( yyscanner ) )
1414 			{
1415 			case EOB_ACT_END_OF_FILE:
1416 				{
1417 				yyg->yy_did_buffer_switch_on_eof = 0;
1418 
1419 				if ( glcpp_wrap(yyscanner ) )
1420 					{
1421 					/* Note: because we've taken care in
1422 					 * yy_get_next_buffer() to have set up
1423 					 * yytext, we can now set up
1424 					 * yy_c_buf_p so that if some total
1425 					 * hoser (like flex itself) wants to
1426 					 * call the scanner after we return the
1427 					 * YY_NULL, it'll still work - another
1428 					 * YY_NULL will get returned.
1429 					 */
1430 					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1431 
1432 					yy_act = YY_STATE_EOF(YY_START);
1433 					goto do_action;
1434 					}
1435 
1436 				else
1437 					{
1438 					if ( ! yyg->yy_did_buffer_switch_on_eof )
1439 						YY_NEW_FILE;
1440 					}
1441 				break;
1442 				}
1443 
1444 			case EOB_ACT_CONTINUE_SCAN:
1445 				yyg->yy_c_buf_p =
1446 					yyg->yytext_ptr + yy_amount_of_matched_text;
1447 
1448 				yy_current_state = yy_get_previous_state( yyscanner );
1449 
1450 				yy_cp = yyg->yy_c_buf_p;
1451 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1452 				goto yy_match;
1453 
1454 			case EOB_ACT_LAST_MATCH:
1455 				yyg->yy_c_buf_p =
1456 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1457 
1458 				yy_current_state = yy_get_previous_state( yyscanner );
1459 
1460 				yy_cp = yyg->yy_c_buf_p;
1461 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1462 				goto yy_find_action;
1463 			}
1464 		break;
1465 		}
1466 
1467 	default:
1468 		YY_FATAL_ERROR(
1469 			"fatal flex scanner internal error--no action found" );
1470 	} /* end of action switch */
1471 		} /* end of scanning one token */
1472 } /* end of glcpp_lex */
1473 
1474 /* yy_get_next_buffer - try to read in a new buffer
1475  *
1476  * Returns a code representing an action:
1477  *	EOB_ACT_LAST_MATCH -
1478  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1479  *	EOB_ACT_END_OF_FILE - end of file
1480  */
yy_get_next_buffer(yyscan_t yyscanner)1481 static int yy_get_next_buffer (yyscan_t yyscanner)
1482 {
1483     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1484 	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1485 	register char *source = yyg->yytext_ptr;
1486 	register int number_to_move, i;
1487 	int ret_val;
1488 
1489 	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1490 		YY_FATAL_ERROR(
1491 		"fatal flex scanner internal error--end of buffer missed" );
1492 
1493 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1494 		{ /* Don't try to fill the buffer, so this is an EOF. */
1495 		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1496 			{
1497 			/* We matched a single character, the EOB, so
1498 			 * treat this as a final EOF.
1499 			 */
1500 			return EOB_ACT_END_OF_FILE;
1501 			}
1502 
1503 		else
1504 			{
1505 			/* We matched some text prior to the EOB, first
1506 			 * process it.
1507 			 */
1508 			return EOB_ACT_LAST_MATCH;
1509 			}
1510 		}
1511 
1512 	/* Try to read more data. */
1513 
1514 	/* First move last chars to start of buffer. */
1515 	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
1516 
1517 	for ( i = 0; i < number_to_move; ++i )
1518 		*(dest++) = *(source++);
1519 
1520 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1521 		/* don't do the read, it's not guaranteed to return an EOF,
1522 		 * just force an EOF
1523 		 */
1524 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1525 
1526 	else
1527 		{
1528 			int num_to_read =
1529 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1530 
1531 		while ( num_to_read <= 0 )
1532 			{ /* Not enough room in the buffer - grow it. */
1533 
1534 			/* just a shorter name for the current buffer */
1535 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1536 
1537 			int yy_c_buf_p_offset =
1538 				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1539 
1540 			if ( b->yy_is_our_buffer )
1541 				{
1542 				int new_size = b->yy_buf_size * 2;
1543 
1544 				if ( new_size <= 0 )
1545 					b->yy_buf_size += b->yy_buf_size / 8;
1546 				else
1547 					b->yy_buf_size *= 2;
1548 
1549 				b->yy_ch_buf = (char *)
1550 					/* Include room in for 2 EOB chars. */
1551 					glcpp_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
1552 				}
1553 			else
1554 				/* Can't grow it, we don't own it. */
1555 				b->yy_ch_buf = 0;
1556 
1557 			if ( ! b->yy_ch_buf )
1558 				YY_FATAL_ERROR(
1559 				"fatal error - scanner input buffer overflow" );
1560 
1561 			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1562 
1563 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1564 						number_to_move - 1;
1565 
1566 			}
1567 
1568 		if ( num_to_read > YY_READ_BUF_SIZE )
1569 			num_to_read = YY_READ_BUF_SIZE;
1570 
1571 		/* Read in more data. */
1572 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1573 			yyg->yy_n_chars, (size_t) num_to_read );
1574 
1575 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1576 		}
1577 
1578 	if ( yyg->yy_n_chars == 0 )
1579 		{
1580 		if ( number_to_move == YY_MORE_ADJ )
1581 			{
1582 			ret_val = EOB_ACT_END_OF_FILE;
1583 			glcpp_restart(yyin  ,yyscanner);
1584 			}
1585 
1586 		else
1587 			{
1588 			ret_val = EOB_ACT_LAST_MATCH;
1589 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1590 				YY_BUFFER_EOF_PENDING;
1591 			}
1592 		}
1593 
1594 	else
1595 		ret_val = EOB_ACT_CONTINUE_SCAN;
1596 
1597 	if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1598 		/* Extend the array by 50%, plus the number we really need. */
1599 		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
1600 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) glcpp_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
1601 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1602 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1603 	}
1604 
1605 	yyg->yy_n_chars += number_to_move;
1606 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1607 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1608 
1609 	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1610 
1611 	return ret_val;
1612 }
1613 
1614 /* yy_get_previous_state - get the state just before the EOB char was reached */
1615 
yy_get_previous_state(yyscan_t yyscanner)1616     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
1617 {
1618 	register yy_state_type yy_current_state;
1619 	register char *yy_cp;
1620     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1621 
1622 	yy_current_state = yyg->yy_start;
1623 	yy_current_state += YY_AT_BOL();
1624 
1625 	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1626 		{
1627 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1628 		if ( yy_accept[yy_current_state] )
1629 			{
1630 			yyg->yy_last_accepting_state = yy_current_state;
1631 			yyg->yy_last_accepting_cpos = yy_cp;
1632 			}
1633 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1634 			{
1635 			yy_current_state = (int) yy_def[yy_current_state];
1636 			if ( yy_current_state >= 147 )
1637 				yy_c = yy_meta[(unsigned int) yy_c];
1638 			}
1639 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1640 		}
1641 
1642 	return yy_current_state;
1643 }
1644 
1645 /* yy_try_NUL_trans - try to make a transition on the NUL character
1646  *
1647  * synopsis
1648  *	next_state = yy_try_NUL_trans( current_state );
1649  */
yy_try_NUL_trans(yy_state_type yy_current_state,yyscan_t yyscanner)1650     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
1651 {
1652 	register int yy_is_jam;
1653     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
1654 	register char *yy_cp = yyg->yy_c_buf_p;
1655 
1656 	register YY_CHAR yy_c = 1;
1657 	if ( yy_accept[yy_current_state] )
1658 		{
1659 		yyg->yy_last_accepting_state = yy_current_state;
1660 		yyg->yy_last_accepting_cpos = yy_cp;
1661 		}
1662 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1663 		{
1664 		yy_current_state = (int) yy_def[yy_current_state];
1665 		if ( yy_current_state >= 147 )
1666 			yy_c = yy_meta[(unsigned int) yy_c];
1667 		}
1668 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1669 	yy_is_jam = (yy_current_state == 146);
1670 
1671 	return yy_is_jam ? 0 : yy_current_state;
1672 }
1673 
yyunput(int c,register char * yy_bp,yyscan_t yyscanner)1674     static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
1675 {
1676 	register char *yy_cp;
1677     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1678 
1679     yy_cp = yyg->yy_c_buf_p;
1680 
1681 	/* undo effects of setting up yytext */
1682 	*yy_cp = yyg->yy_hold_char;
1683 
1684 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1685 		{ /* need to shift things up to make room */
1686 		/* +2 for EOB chars. */
1687 		register int number_to_move = yyg->yy_n_chars + 2;
1688 		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1689 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1690 		register char *source =
1691 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1692 
1693 		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1694 			*--dest = *--source;
1695 
1696 		yy_cp += (int) (dest - source);
1697 		yy_bp += (int) (dest - source);
1698 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1699 			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1700 
1701 		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1702 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
1703 		}
1704 
1705 	*--yy_cp = (char) c;
1706 
1707 	yyg->yytext_ptr = yy_bp;
1708 	yyg->yy_hold_char = *yy_cp;
1709 	yyg->yy_c_buf_p = yy_cp;
1710 }
1711 
1712 #ifndef YY_NO_INPUT
1713 #ifdef __cplusplus
yyinput(yyscan_t yyscanner)1714     static int yyinput (yyscan_t yyscanner)
1715 #else
1716     static int input  (yyscan_t yyscanner)
1717 #endif
1718 
1719 {
1720 	int c;
1721     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1722 
1723 	*yyg->yy_c_buf_p = yyg->yy_hold_char;
1724 
1725 	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1726 		{
1727 		/* yy_c_buf_p now points to the character we want to return.
1728 		 * If this occurs *before* the EOB characters, then it's a
1729 		 * valid NUL; if not, then we've hit the end of the buffer.
1730 		 */
1731 		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1732 			/* This was really a NUL. */
1733 			*yyg->yy_c_buf_p = '\0';
1734 
1735 		else
1736 			{ /* need more input */
1737 			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
1738 			++yyg->yy_c_buf_p;
1739 
1740 			switch ( yy_get_next_buffer( yyscanner ) )
1741 				{
1742 				case EOB_ACT_LAST_MATCH:
1743 					/* This happens because yy_g_n_b()
1744 					 * sees that we've accumulated a
1745 					 * token and flags that we need to
1746 					 * try matching the token before
1747 					 * proceeding.  But for input(),
1748 					 * there's no matching to consider.
1749 					 * So convert the EOB_ACT_LAST_MATCH
1750 					 * to EOB_ACT_END_OF_FILE.
1751 					 */
1752 
1753 					/* Reset buffer status. */
1754 					glcpp_restart(yyin ,yyscanner);
1755 
1756 					/*FALLTHROUGH*/
1757 
1758 				case EOB_ACT_END_OF_FILE:
1759 					{
1760 					if ( glcpp_wrap(yyscanner ) )
1761 						return EOF;
1762 
1763 					if ( ! yyg->yy_did_buffer_switch_on_eof )
1764 						YY_NEW_FILE;
1765 #ifdef __cplusplus
1766 					return yyinput(yyscanner);
1767 #else
1768 					return input(yyscanner);
1769 #endif
1770 					}
1771 
1772 				case EOB_ACT_CONTINUE_SCAN:
1773 					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
1774 					break;
1775 				}
1776 			}
1777 		}
1778 
1779 	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
1780 	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
1781 	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
1782 
1783 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
1784 
1785 	return c;
1786 }
1787 #endif	/* ifndef YY_NO_INPUT */
1788 
1789 /** Immediately switch to a different input stream.
1790  * @param input_file A readable stream.
1791  * @param yyscanner The scanner object.
1792  * @note This function does not reset the start condition to @c INITIAL .
1793  */
glcpp_restart(FILE * input_file,yyscan_t yyscanner)1794     void glcpp_restart  (FILE * input_file , yyscan_t yyscanner)
1795 {
1796     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1797 
1798 	if ( ! YY_CURRENT_BUFFER ){
1799         glcpp_ensure_buffer_stack (yyscanner);
1800 		YY_CURRENT_BUFFER_LVALUE =
1801             glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1802 	}
1803 
1804 	glcpp__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
1805 	glcpp__load_buffer_state(yyscanner );
1806 }
1807 
1808 /** Switch to a different input buffer.
1809  * @param new_buffer The new input buffer.
1810  * @param yyscanner The scanner object.
1811  */
glcpp__switch_to_buffer(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)1812     void glcpp__switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
1813 {
1814     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1815 
1816 	/* TODO. We should be able to replace this entire function body
1817 	 * with
1818 	 *		glcpp_pop_buffer_state();
1819 	 *		glcpp_push_buffer_state(new_buffer);
1820      */
1821 	glcpp_ensure_buffer_stack (yyscanner);
1822 	if ( YY_CURRENT_BUFFER == new_buffer )
1823 		return;
1824 
1825 	if ( YY_CURRENT_BUFFER )
1826 		{
1827 		/* Flush out information for old buffer. */
1828 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
1829 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1830 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1831 		}
1832 
1833 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
1834 	glcpp__load_buffer_state(yyscanner );
1835 
1836 	/* We don't actually know whether we did this switch during
1837 	 * EOF (glcpp_wrap()) processing, but the only time this flag
1838 	 * is looked at is after glcpp_wrap() is called, so it's safe
1839 	 * to go ahead and always set it.
1840 	 */
1841 	yyg->yy_did_buffer_switch_on_eof = 1;
1842 }
1843 
glcpp__load_buffer_state(yyscan_t yyscanner)1844 static void glcpp__load_buffer_state  (yyscan_t yyscanner)
1845 {
1846     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1847 	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1848 	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1849 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1850 	yyg->yy_hold_char = *yyg->yy_c_buf_p;
1851 }
1852 
1853 /** Allocate and initialize an input buffer state.
1854  * @param file A readable stream.
1855  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1856  * @param yyscanner The scanner object.
1857  * @return the allocated buffer state.
1858  */
glcpp__create_buffer(FILE * file,int size,yyscan_t yyscanner)1859     YY_BUFFER_STATE glcpp__create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
1860 {
1861 	YY_BUFFER_STATE b;
1862 
1863 	b = (YY_BUFFER_STATE) glcpp_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
1864 	if ( ! b )
1865 		YY_FATAL_ERROR( "out of dynamic memory in glcpp__create_buffer()" );
1866 
1867 	b->yy_buf_size = size;
1868 
1869 	/* yy_ch_buf has to be 2 characters longer than the size given because
1870 	 * we need to put in 2 end-of-buffer characters.
1871 	 */
1872 	b->yy_ch_buf = (char *) glcpp_alloc(b->yy_buf_size + 2 ,yyscanner );
1873 	if ( ! b->yy_ch_buf )
1874 		YY_FATAL_ERROR( "out of dynamic memory in glcpp__create_buffer()" );
1875 
1876 	b->yy_is_our_buffer = 1;
1877 
1878 	glcpp__init_buffer(b,file ,yyscanner);
1879 
1880 	return b;
1881 }
1882 
1883 /** Destroy the buffer.
1884  * @param b a buffer created with glcpp__create_buffer()
1885  * @param yyscanner The scanner object.
1886  */
glcpp__delete_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)1887     void glcpp__delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
1888 {
1889     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1890 
1891 	if ( ! b )
1892 		return;
1893 
1894 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1895 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1896 
1897 	if ( b->yy_is_our_buffer )
1898 		glcpp_free((void *) b->yy_ch_buf ,yyscanner );
1899 
1900 	glcpp_free((void *) b ,yyscanner );
1901 }
1902 
1903 /* Initializes or reinitializes a buffer.
1904  * This function is sometimes called more than once on the same buffer,
1905  * such as during a glcpp_restart() or at EOF.
1906  */
glcpp__init_buffer(YY_BUFFER_STATE b,FILE * file,yyscan_t yyscanner)1907     static void glcpp__init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
1908 
1909 {
1910 	int oerrno = errno;
1911     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1912 
1913 	glcpp__flush_buffer(b ,yyscanner);
1914 
1915 	b->yy_input_file = file;
1916 	b->yy_fill_buffer = 1;
1917 
1918     /* If b is the current buffer, then glcpp__init_buffer was _probably_
1919      * called from glcpp_restart() or through yy_get_next_buffer.
1920      * In that case, we don't want to reset the lineno or column.
1921      */
1922     if (b != YY_CURRENT_BUFFER){
1923         b->yy_bs_lineno = 1;
1924         b->yy_bs_column = 0;
1925     }
1926 
1927         b->yy_is_interactive = 0;
1928 
1929 	errno = oerrno;
1930 }
1931 
1932 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1933  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1934  * @param yyscanner The scanner object.
1935  */
glcpp__flush_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)1936     void glcpp__flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
1937 {
1938     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1939 	if ( ! b )
1940 		return;
1941 
1942 	b->yy_n_chars = 0;
1943 
1944 	/* We always need two end-of-buffer characters.  The first causes
1945 	 * a transition to the end-of-buffer state.  The second causes
1946 	 * a jam in that state.
1947 	 */
1948 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1949 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1950 
1951 	b->yy_buf_pos = &b->yy_ch_buf[0];
1952 
1953 	b->yy_at_bol = 1;
1954 	b->yy_buffer_status = YY_BUFFER_NEW;
1955 
1956 	if ( b == YY_CURRENT_BUFFER )
1957 		glcpp__load_buffer_state(yyscanner );
1958 }
1959 
1960 /** Pushes the new state onto the stack. The new state becomes
1961  *  the current state. This function will allocate the stack
1962  *  if necessary.
1963  *  @param new_buffer The new state.
1964  *  @param yyscanner The scanner object.
1965  */
glcpp_push_buffer_state(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)1966 void glcpp_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
1967 {
1968     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1969 	if (new_buffer == NULL)
1970 		return;
1971 
1972 	glcpp_ensure_buffer_stack(yyscanner);
1973 
1974 	/* This block is copied from glcpp__switch_to_buffer. */
1975 	if ( YY_CURRENT_BUFFER )
1976 		{
1977 		/* Flush out information for old buffer. */
1978 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
1979 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1980 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1981 		}
1982 
1983 	/* Only push if top exists. Otherwise, replace top. */
1984 	if (YY_CURRENT_BUFFER)
1985 		yyg->yy_buffer_stack_top++;
1986 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
1987 
1988 	/* copied from glcpp__switch_to_buffer. */
1989 	glcpp__load_buffer_state(yyscanner );
1990 	yyg->yy_did_buffer_switch_on_eof = 1;
1991 }
1992 
1993 /** Removes and deletes the top of the stack, if present.
1994  *  The next element becomes the new top.
1995  *  @param yyscanner The scanner object.
1996  */
glcpp_pop_buffer_state(yyscan_t yyscanner)1997 void glcpp_pop_buffer_state (yyscan_t yyscanner)
1998 {
1999     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2000 	if (!YY_CURRENT_BUFFER)
2001 		return;
2002 
2003 	glcpp__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2004 	YY_CURRENT_BUFFER_LVALUE = NULL;
2005 	if (yyg->yy_buffer_stack_top > 0)
2006 		--yyg->yy_buffer_stack_top;
2007 
2008 	if (YY_CURRENT_BUFFER) {
2009 		glcpp__load_buffer_state(yyscanner );
2010 		yyg->yy_did_buffer_switch_on_eof = 1;
2011 	}
2012 }
2013 
2014 /* Allocates the stack if it does not exist.
2015  *  Guarantees space for at least one push.
2016  */
glcpp_ensure_buffer_stack(yyscan_t yyscanner)2017 static void glcpp_ensure_buffer_stack (yyscan_t yyscanner)
2018 {
2019 	int num_to_alloc;
2020     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2021 
2022 	if (!yyg->yy_buffer_stack) {
2023 
2024 		/* First allocation is just for 2 elements, since we don't know if this
2025 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2026 		 * immediate realloc on the next call.
2027          */
2028 		num_to_alloc = 1;
2029 		yyg->yy_buffer_stack = (struct yy_buffer_state**)glcpp_alloc
2030 								(num_to_alloc * sizeof(struct yy_buffer_state*)
2031 								, yyscanner);
2032 		if ( ! yyg->yy_buffer_stack )
2033 			YY_FATAL_ERROR( "out of dynamic memory in glcpp_ensure_buffer_stack()" );
2034 
2035 		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2036 
2037 		yyg->yy_buffer_stack_max = num_to_alloc;
2038 		yyg->yy_buffer_stack_top = 0;
2039 		return;
2040 	}
2041 
2042 	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2043 
2044 		/* Increase the buffer to prepare for a possible push. */
2045 		int grow_size = 8 /* arbitrary grow size */;
2046 
2047 		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2048 		yyg->yy_buffer_stack = (struct yy_buffer_state**)glcpp_realloc
2049 								(yyg->yy_buffer_stack,
2050 								num_to_alloc * sizeof(struct yy_buffer_state*)
2051 								, yyscanner);
2052 		if ( ! yyg->yy_buffer_stack )
2053 			YY_FATAL_ERROR( "out of dynamic memory in glcpp_ensure_buffer_stack()" );
2054 
2055 		/* zero only the new slots.*/
2056 		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2057 		yyg->yy_buffer_stack_max = num_to_alloc;
2058 	}
2059 }
2060 
2061 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2062  * @param base the character buffer
2063  * @param size the size in bytes of the character buffer
2064  * @param yyscanner The scanner object.
2065  * @return the newly allocated buffer state object.
2066  */
glcpp__scan_buffer(char * base,yy_size_t size,yyscan_t yyscanner)2067 YY_BUFFER_STATE glcpp__scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
2068 {
2069 	YY_BUFFER_STATE b;
2070 
2071 	if ( size < 2 ||
2072 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2073 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2074 		/* They forgot to leave room for the EOB's. */
2075 		return 0;
2076 
2077 	b = (YY_BUFFER_STATE) glcpp_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2078 	if ( ! b )
2079 		YY_FATAL_ERROR( "out of dynamic memory in glcpp__scan_buffer()" );
2080 
2081 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
2082 	b->yy_buf_pos = b->yy_ch_buf = base;
2083 	b->yy_is_our_buffer = 0;
2084 	b->yy_input_file = 0;
2085 	b->yy_n_chars = b->yy_buf_size;
2086 	b->yy_is_interactive = 0;
2087 	b->yy_at_bol = 1;
2088 	b->yy_fill_buffer = 0;
2089 	b->yy_buffer_status = YY_BUFFER_NEW;
2090 
2091 	glcpp__switch_to_buffer(b ,yyscanner );
2092 
2093 	return b;
2094 }
2095 
2096 /** Setup the input buffer state to scan a string. The next call to glcpp_lex() will
2097  * scan from a @e copy of @a str.
2098  * @param yystr a NUL-terminated string to scan
2099  * @param yyscanner The scanner object.
2100  * @return the newly allocated buffer state object.
2101  * @note If you want to scan bytes that may contain NUL values, then use
2102  *       glcpp__scan_bytes() instead.
2103  */
glcpp__scan_string(yyconst char * yystr,yyscan_t yyscanner)2104 YY_BUFFER_STATE glcpp__scan_string (yyconst char * yystr , yyscan_t yyscanner)
2105 {
2106 
2107 	return glcpp__scan_bytes(yystr,strlen(yystr) ,yyscanner);
2108 }
2109 
2110 /** Setup the input buffer state to scan the given bytes. The next call to glcpp_lex() will
2111  * scan from a @e copy of @a bytes.
2112  * @param yybytes the byte buffer to scan
2113  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2114  * @param yyscanner The scanner object.
2115  * @return the newly allocated buffer state object.
2116  */
glcpp__scan_bytes(yyconst char * yybytes,int _yybytes_len,yyscan_t yyscanner)2117 YY_BUFFER_STATE glcpp__scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
2118 {
2119 	YY_BUFFER_STATE b;
2120 	char *buf;
2121 	yy_size_t n;
2122 	int i;
2123 
2124 	/* Get memory for full buffer, including space for trailing EOB's. */
2125 	n = _yybytes_len + 2;
2126 	buf = (char *) glcpp_alloc(n ,yyscanner );
2127 	if ( ! buf )
2128 		YY_FATAL_ERROR( "out of dynamic memory in glcpp__scan_bytes()" );
2129 
2130 	for ( i = 0; i < _yybytes_len; ++i )
2131 		buf[i] = yybytes[i];
2132 
2133 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2134 
2135 	b = glcpp__scan_buffer(buf,n ,yyscanner);
2136 	if ( ! b )
2137 		YY_FATAL_ERROR( "bad buffer in glcpp__scan_bytes()" );
2138 
2139 	/* It's okay to grow etc. this buffer, and we should throw it
2140 	 * away when we're done.
2141 	 */
2142 	b->yy_is_our_buffer = 1;
2143 
2144 	return b;
2145 }
2146 
yy_push_state(int new_state,yyscan_t yyscanner)2147     static void yy_push_state (int  new_state , yyscan_t yyscanner)
2148 {
2149     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2150 	if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
2151 		{
2152 		yy_size_t new_size;
2153 
2154 		yyg->yy_start_stack_depth += YY_START_STACK_INCR;
2155 		new_size = yyg->yy_start_stack_depth * sizeof( int );
2156 
2157 		if ( ! yyg->yy_start_stack )
2158 			yyg->yy_start_stack = (int *) glcpp_alloc(new_size ,yyscanner );
2159 
2160 		else
2161 			yyg->yy_start_stack = (int *) glcpp_realloc((void *) yyg->yy_start_stack,new_size ,yyscanner );
2162 
2163 		if ( ! yyg->yy_start_stack )
2164 			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
2165 		}
2166 
2167 	yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START;
2168 
2169 	BEGIN(new_state);
2170 }
2171 
yy_pop_state(yyscan_t yyscanner)2172     static void yy_pop_state  (yyscan_t yyscanner)
2173 {
2174     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2175 	if ( --yyg->yy_start_stack_ptr < 0 )
2176 		YY_FATAL_ERROR( "start-condition stack underflow" );
2177 
2178 	BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]);
2179 }
2180 
yy_top_state(yyscan_t yyscanner)2181     static int yy_top_state  (yyscan_t yyscanner)
2182 {
2183     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2184 	return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1];
2185 }
2186 
2187 #ifndef YY_EXIT_FAILURE
2188 #define YY_EXIT_FAILURE 2
2189 #endif
2190 
yy_fatal_error(yyconst char * msg,yyscan_t yyscanner)2191 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
2192 {
2193     	(void) fprintf( stderr, "%s\n", msg );
2194 	exit( YY_EXIT_FAILURE );
2195 }
2196 
2197 /* Redefine yyless() so it works in section 3 code. */
2198 
2199 #undef yyless
2200 #define yyless(n) \
2201 	do \
2202 		{ \
2203 		/* Undo effects of setting up yytext. */ \
2204         int yyless_macro_arg = (n); \
2205         YY_LESS_LINENO(yyless_macro_arg);\
2206 		yytext[yyleng] = yyg->yy_hold_char; \
2207 		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2208 		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2209 		*yyg->yy_c_buf_p = '\0'; \
2210 		yyleng = yyless_macro_arg; \
2211 		} \
2212 	while ( 0 )
2213 
2214 /* Accessor  methods (get/set functions) to struct members. */
2215 
2216 /** Get the user-defined data for this scanner.
2217  * @param yyscanner The scanner object.
2218  */
glcpp_get_extra(yyscan_t yyscanner)2219 YY_EXTRA_TYPE glcpp_get_extra  (yyscan_t yyscanner)
2220 {
2221     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2222     return yyextra;
2223 }
2224 
2225 /** Get the current line number.
2226  * @param yyscanner The scanner object.
2227  */
glcpp_get_lineno(yyscan_t yyscanner)2228 int glcpp_get_lineno  (yyscan_t yyscanner)
2229 {
2230     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2231 
2232         if (! YY_CURRENT_BUFFER)
2233             return 0;
2234 
2235     return yylineno;
2236 }
2237 
2238 /** Get the current column number.
2239  * @param yyscanner The scanner object.
2240  */
glcpp_get_column(yyscan_t yyscanner)2241 int glcpp_get_column  (yyscan_t yyscanner)
2242 {
2243     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2244 
2245         if (! YY_CURRENT_BUFFER)
2246             return 0;
2247 
2248     return yycolumn;
2249 }
2250 
2251 /** Get the input stream.
2252  * @param yyscanner The scanner object.
2253  */
glcpp_get_in(yyscan_t yyscanner)2254 FILE *glcpp_get_in  (yyscan_t yyscanner)
2255 {
2256     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2257     return yyin;
2258 }
2259 
2260 /** Get the output stream.
2261  * @param yyscanner The scanner object.
2262  */
glcpp_get_out(yyscan_t yyscanner)2263 FILE *glcpp_get_out  (yyscan_t yyscanner)
2264 {
2265     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2266     return yyout;
2267 }
2268 
2269 /** Get the length of the current token.
2270  * @param yyscanner The scanner object.
2271  */
glcpp_get_leng(yyscan_t yyscanner)2272 int glcpp_get_leng  (yyscan_t yyscanner)
2273 {
2274     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2275     return yyleng;
2276 }
2277 
2278 /** Get the current token.
2279  * @param yyscanner The scanner object.
2280  */
2281 
glcpp_get_text(yyscan_t yyscanner)2282 char *glcpp_get_text  (yyscan_t yyscanner)
2283 {
2284     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2285     return yytext;
2286 }
2287 
2288 /** Set the user-defined data. This data is never touched by the scanner.
2289  * @param user_defined The data to be associated with this scanner.
2290  * @param yyscanner The scanner object.
2291  */
glcpp_set_extra(YY_EXTRA_TYPE user_defined,yyscan_t yyscanner)2292 void glcpp_set_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
2293 {
2294     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2295     yyextra = user_defined ;
2296 }
2297 
2298 /** Set the current line number.
2299  * @param line_number
2300  * @param yyscanner The scanner object.
2301  */
glcpp_set_lineno(int line_number,yyscan_t yyscanner)2302 void glcpp_set_lineno (int  line_number , yyscan_t yyscanner)
2303 {
2304     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2305 
2306         /* lineno is only valid if an input buffer exists. */
2307         if (! YY_CURRENT_BUFFER )
2308            yy_fatal_error( "glcpp_set_lineno called with no buffer" , yyscanner);
2309 
2310     yylineno = line_number;
2311 }
2312 
2313 /** Set the current column.
2314  * @param line_number
2315  * @param yyscanner The scanner object.
2316  */
glcpp_set_column(int column_no,yyscan_t yyscanner)2317 void glcpp_set_column (int  column_no , yyscan_t yyscanner)
2318 {
2319     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2320 
2321         /* column is only valid if an input buffer exists. */
2322         if (! YY_CURRENT_BUFFER )
2323            yy_fatal_error( "glcpp_set_column called with no buffer" , yyscanner);
2324 
2325     yycolumn = column_no;
2326 }
2327 
2328 /** Set the input stream. This does not discard the current
2329  * input buffer.
2330  * @param in_str A readable stream.
2331  * @param yyscanner The scanner object.
2332  * @see glcpp__switch_to_buffer
2333  */
glcpp_set_in(FILE * in_str,yyscan_t yyscanner)2334 void glcpp_set_in (FILE *  in_str , yyscan_t yyscanner)
2335 {
2336     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2337     yyin = in_str ;
2338 }
2339 
glcpp_set_out(FILE * out_str,yyscan_t yyscanner)2340 void glcpp_set_out (FILE *  out_str , yyscan_t yyscanner)
2341 {
2342     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2343     yyout = out_str ;
2344 }
2345 
glcpp_get_debug(yyscan_t yyscanner)2346 int glcpp_get_debug  (yyscan_t yyscanner)
2347 {
2348     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2349     return yy_flex_debug;
2350 }
2351 
glcpp_set_debug(int bdebug,yyscan_t yyscanner)2352 void glcpp_set_debug (int  bdebug , yyscan_t yyscanner)
2353 {
2354     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2355     yy_flex_debug = bdebug ;
2356 }
2357 
2358 /* Accessor methods for yylval and yylloc */
2359 
glcpp_get_lval(yyscan_t yyscanner)2360 YYSTYPE * glcpp_get_lval  (yyscan_t yyscanner)
2361 {
2362     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2363     return yylval;
2364 }
2365 
glcpp_set_lval(YYSTYPE * yylval_param,yyscan_t yyscanner)2366 void glcpp_set_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
2367 {
2368     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2369     yylval = yylval_param;
2370 }
2371 
glcpp_get_lloc(yyscan_t yyscanner)2372 YYLTYPE *glcpp_get_lloc  (yyscan_t yyscanner)
2373 {
2374     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2375     return yylloc;
2376 }
2377 
glcpp_set_lloc(YYLTYPE * yylloc_param,yyscan_t yyscanner)2378 void glcpp_set_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
2379 {
2380     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2381     yylloc = yylloc_param;
2382 }
2383 
2384 /* User-visible API */
2385 
2386 /* glcpp_lex_init is special because it creates the scanner itself, so it is
2387  * the ONLY reentrant function that doesn't take the scanner as the last argument.
2388  * That's why we explicitly handle the declaration, instead of using our macros.
2389  */
2390 
glcpp_lex_init(yyscan_t * ptr_yy_globals)2391 int glcpp_lex_init(yyscan_t* ptr_yy_globals)
2392 
2393 {
2394     if (ptr_yy_globals == NULL){
2395         errno = EINVAL;
2396         return 1;
2397     }
2398 
2399     *ptr_yy_globals = (yyscan_t) glcpp_alloc ( sizeof( struct yyguts_t ), NULL );
2400 
2401     if (*ptr_yy_globals == NULL){
2402         errno = ENOMEM;
2403         return 1;
2404     }
2405 
2406     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
2407     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2408 
2409     return yy_init_globals ( *ptr_yy_globals );
2410 }
2411 
2412 /* glcpp_lex_init_extra has the same functionality as glcpp_lex_init, but follows the
2413  * convention of taking the scanner as the last argument. Note however, that
2414  * this is a *pointer* to a scanner, as it will be allocated by this call (and
2415  * is the reason, too, why this function also must handle its own declaration).
2416  * The user defined value in the first argument will be available to glcpp_alloc in
2417  * the yyextra field.
2418  */
2419 
glcpp_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t * ptr_yy_globals)2420 int glcpp_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
2421 
2422 {
2423     struct yyguts_t dummy_yyguts;
2424 
2425     glcpp_set_extra (yy_user_defined, &dummy_yyguts);
2426 
2427     if (ptr_yy_globals == NULL){
2428         errno = EINVAL;
2429         return 1;
2430     }
2431 
2432     *ptr_yy_globals = (yyscan_t) glcpp_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
2433 
2434     if (*ptr_yy_globals == NULL){
2435         errno = ENOMEM;
2436         return 1;
2437     }
2438 
2439     /* By setting to 0xAA, we expose bugs in
2440     yy_init_globals. Leave at 0x00 for releases. */
2441     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2442 
2443     glcpp_set_extra (yy_user_defined, *ptr_yy_globals);
2444 
2445     return yy_init_globals ( *ptr_yy_globals );
2446 }
2447 
yy_init_globals(yyscan_t yyscanner)2448 static int yy_init_globals (yyscan_t yyscanner)
2449 {
2450     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2451     /* Initialization is the same as for the non-reentrant scanner.
2452      * This function is called from glcpp_lex_destroy(), so don't allocate here.
2453      */
2454 
2455     yyg->yy_buffer_stack = 0;
2456     yyg->yy_buffer_stack_top = 0;
2457     yyg->yy_buffer_stack_max = 0;
2458     yyg->yy_c_buf_p = (char *) 0;
2459     yyg->yy_init = 0;
2460     yyg->yy_start = 0;
2461 
2462     yyg->yy_start_stack_ptr = 0;
2463     yyg->yy_start_stack_depth = 0;
2464     yyg->yy_start_stack =  NULL;
2465 
2466 /* Defined in main.c */
2467 #ifdef YY_STDINIT
2468     yyin = stdin;
2469     yyout = stdout;
2470 #else
2471     yyin = (FILE *) 0;
2472     yyout = (FILE *) 0;
2473 #endif
2474 
2475     /* For future reference: Set errno on error, since we are called by
2476      * glcpp_lex_init()
2477      */
2478     return 0;
2479 }
2480 
2481 /* glcpp_lex_destroy is for both reentrant and non-reentrant scanners. */
glcpp_lex_destroy(yyscan_t yyscanner)2482 int glcpp_lex_destroy  (yyscan_t yyscanner)
2483 {
2484     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2485 
2486     /* Pop the buffer stack, destroying each element. */
2487 	while(YY_CURRENT_BUFFER){
2488 		glcpp__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
2489 		YY_CURRENT_BUFFER_LVALUE = NULL;
2490 		glcpp_pop_buffer_state(yyscanner);
2491 	}
2492 
2493 	/* Destroy the stack itself. */
2494 	glcpp_free(yyg->yy_buffer_stack ,yyscanner);
2495 	yyg->yy_buffer_stack = NULL;
2496 
2497     /* Destroy the start condition stack. */
2498         glcpp_free(yyg->yy_start_stack ,yyscanner );
2499         yyg->yy_start_stack = NULL;
2500 
2501     /* Reset the globals. This is important in a non-reentrant scanner so the next time
2502      * glcpp_lex() is called, initialization will occur. */
2503     yy_init_globals( yyscanner);
2504 
2505     /* Destroy the main struct (reentrant only). */
2506     glcpp_free ( yyscanner , yyscanner );
2507     yyscanner = NULL;
2508     return 0;
2509 }
2510 
2511 /*
2512  * Internal utility routines.
2513  */
2514 
2515 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n,yyscan_t yyscanner)2516 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
2517 {
2518 	register int i;
2519 	for ( i = 0; i < n; ++i )
2520 		s1[i] = s2[i];
2521 }
2522 #endif
2523 
2524 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s,yyscan_t yyscanner)2525 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
2526 {
2527 	register int n;
2528 	for ( n = 0; s[n]; ++n )
2529 		;
2530 
2531 	return n;
2532 }
2533 #endif
2534 
glcpp_alloc(yy_size_t size,yyscan_t yyscanner)2535 void *glcpp_alloc (yy_size_t  size , yyscan_t yyscanner)
2536 {
2537 	return (void *) malloc( size );
2538 }
2539 
glcpp_realloc(void * ptr,yy_size_t size,yyscan_t yyscanner)2540 void *glcpp_realloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
2541 {
2542 	/* The cast to (char *) in the following accommodates both
2543 	 * implementations that use char* generic pointers, and those
2544 	 * that use void* generic pointers.  It works with the latter
2545 	 * because both ANSI C and C++ allow castless assignment from
2546 	 * any pointer type to void*, and deal with argument conversions
2547 	 * as though doing an assignment.
2548 	 */
2549 	return (void *) realloc( (char *) ptr, size );
2550 }
2551 
glcpp_free(void * ptr,yyscan_t yyscanner)2552 void glcpp_free (void * ptr , yyscan_t yyscanner)
2553 {
2554 	free( (char *) ptr );	/* see glcpp_realloc() for (char *) cast */
2555 }
2556 
2557 #define YYTABLES_NAME "yytables"
2558 
2559 #line 313 "src/src/glsl/glcpp/glcpp-lex.l"
2560 
2561 
2562 
2563 void
glcpp_lex_set_source_string(glcpp_parser_t * parser,const char * shader)2564 glcpp_lex_set_source_string(glcpp_parser_t *parser, const char *shader)
2565 {
2566 	glcpp__scan_string(shader,parser->scanner);
2567 }
2568 
2569