source: trunk/src/generated/lolfx-scanner.cpp @ 2183

Last change on this file since 2183 was 2183, checked in by sam, 7 years ago

build: fix the WTFPL site URL in all code comments.

  • Property svn:keywords set to Id
File size: 152.3 KB
Line 
1#line 2 "generated/lolfx-scanner.cpp"
2
3#line 4 "generated/lolfx-scanner.cpp"
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    /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
18     * following macro. This is required in order to pass the c++-multiple-scanners
19     * test in the regression suite. We get reports that it breaks inheritance.
20     * We will address this in a future release of flex, or omit the C++ scanner
21     * altogether.
22     */
23    #define yyFlexLexer LolFxFlexLexer
24
25/* First, we deal with  platform-specific or compiler-specific issues. */
26
27/* begin standard C headers. */
28
29/* end standard C headers. */
30
31/* flex integer type definitions */
32
33#ifndef FLEXINT_H
34#define FLEXINT_H
35
36/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
37
38#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
39
40/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
41 * if you want the limit (max/min) macros for int types.
42 */
43#ifndef __STDC_LIMIT_MACROS
44#define __STDC_LIMIT_MACROS 1
45#endif
46
47#include <inttypes.h>
48typedef int8_t flex_int8_t;
49typedef uint8_t flex_uint8_t;
50typedef int16_t flex_int16_t;
51typedef uint16_t flex_uint16_t;
52typedef int32_t flex_int32_t;
53typedef uint32_t flex_uint32_t;
54#else
55typedef signed char flex_int8_t;
56typedef short int flex_int16_t;
57typedef int flex_int32_t;
58typedef unsigned char flex_uint8_t;
59typedef unsigned short int flex_uint16_t;
60typedef unsigned int flex_uint32_t;
61
62/* Limits of integral types. */
63#ifndef INT8_MIN
64#define INT8_MIN               (-128)
65#endif
66#ifndef INT16_MIN
67#define INT16_MIN              (-32767-1)
68#endif
69#ifndef INT32_MIN
70#define INT32_MIN              (-2147483647-1)
71#endif
72#ifndef INT8_MAX
73#define INT8_MAX               (127)
74#endif
75#ifndef INT16_MAX
76#define INT16_MAX              (32767)
77#endif
78#ifndef INT32_MAX
79#define INT32_MAX              (2147483647)
80#endif
81#ifndef UINT8_MAX
82#define UINT8_MAX              (255U)
83#endif
84#ifndef UINT16_MAX
85#define UINT16_MAX             (65535U)
86#endif
87#ifndef UINT32_MAX
88#define UINT32_MAX             (4294967295U)
89#endif
90
91#endif /* ! C99 */
92
93#endif /* ! FLEXINT_H */
94
95/* begin standard C++ headers. */
96#include <iostream>
97#include <errno.h>
98#include <cstdlib>
99#include <cstdio>
100#include <cstring>
101/* end standard C++ headers. */
102
103#ifdef __cplusplus
104
105/* The "const" storage-class-modifier is valid. */
106#define YY_USE_CONST
107
108#else   /* ! __cplusplus */
109
110/* C99 requires __STDC__ to be defined as 1. */
111#if defined (__STDC__)
112
113#define YY_USE_CONST
114
115#endif  /* defined (__STDC__) */
116#endif  /* ! __cplusplus */
117
118#ifdef YY_USE_CONST
119#define yyconst const
120#else
121#define yyconst
122#endif
123
124/* Returned upon end-of-file. */
125#define YY_NULL 0
126
127/* Promotes a possibly negative, possibly signed char to an unsigned
128 * integer for use as an array index.  If the signed char is negative,
129 * we want to instead treat it as an 8-bit unsigned char, hence the
130 * double cast.
131 */
132#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
133
134/* Enter a start condition.  This macro really ought to take a parameter,
135 * but we do it the disgusting crufty way forced on us by the ()-less
136 * definition of BEGIN.
137 */
138#define BEGIN (yy_start) = 1 + 2 *
139
140/* Translate the current start state into a value that can be later handed
141 * to BEGIN to return to the state.  The YYSTATE alias is for lex
142 * compatibility.
143 */
144#define YY_START (((yy_start) - 1) / 2)
145#define YYSTATE YY_START
146
147/* Action number for EOF rule of a given start state. */
148#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
149
150/* Special action meaning "start processing a new file". */
151#define YY_NEW_FILE yyrestart( yyin  )
152
153#define YY_END_OF_BUFFER_CHAR 0
154
155/* Size of default input buffer. */
156#ifndef YY_BUF_SIZE
157#ifdef __ia64__
158/* On IA-64, the buffer size is 16k, not 8k.
159 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
160 * Ditto for the __ia64__ case accordingly.
161 */
162#define YY_BUF_SIZE 32768
163#else
164#define YY_BUF_SIZE 16384
165#endif /* __ia64__ */
166#endif
167
168/* The state buf must be large enough to hold one state per character in the main buffer.
169 */
170#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
171
172#ifndef YY_TYPEDEF_YY_BUFFER_STATE
173#define YY_TYPEDEF_YY_BUFFER_STATE
174typedef struct yy_buffer_state *YY_BUFFER_STATE;
175#endif
176
177extern int yyleng;
178
179#define EOB_ACT_CONTINUE_SCAN 0
180#define EOB_ACT_END_OF_FILE 1
181#define EOB_ACT_LAST_MATCH 2
182
183    #define YY_LESS_LINENO(n)
184   
185/* Return all but the first "n" matched characters back to the input stream. */
186#define yyless(n) \
187        do \
188                { \
189                /* Undo effects of setting up yytext. */ \
190        int yyless_macro_arg = (n); \
191        YY_LESS_LINENO(yyless_macro_arg);\
192                *yy_cp = (yy_hold_char); \
193                YY_RESTORE_YY_MORE_OFFSET \
194                (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
195                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
196                } \
197        while ( 0 )
198
199#define unput(c) yyunput( c, (yytext_ptr)  )
200
201#ifndef YY_TYPEDEF_YY_SIZE_T
202#define YY_TYPEDEF_YY_SIZE_T
203typedef size_t yy_size_t;
204#endif
205
206#ifndef YY_STRUCT_YY_BUFFER_STATE
207#define YY_STRUCT_YY_BUFFER_STATE
208struct yy_buffer_state
209        {
210
211        std::istream* yy_input_file;
212
213        char *yy_ch_buf;                /* input buffer */
214        char *yy_buf_pos;               /* current position in input buffer */
215
216        /* Size of input buffer in bytes, not including room for EOB
217         * characters.
218         */
219        yy_size_t yy_buf_size;
220
221        /* Number of characters read into yy_ch_buf, not including EOB
222         * characters.
223         */
224        int yy_n_chars;
225
226        /* Whether we "own" the buffer - i.e., we know we created it,
227         * and can realloc() it to grow it, and should free() it to
228         * delete it.
229         */
230        int yy_is_our_buffer;
231
232        /* Whether this is an "interactive" input source; if so, and
233         * if we're using stdio for input, then we want to use getc()
234         * instead of fread(), to make sure we stop fetching input after
235         * each newline.
236         */
237        int yy_is_interactive;
238
239        /* Whether we're considered to be at the beginning of a line.
240         * If so, '^' rules will be active on the next match, otherwise
241         * not.
242         */
243        int yy_at_bol;
244
245    int yy_bs_lineno; /**< The line count. */
246    int yy_bs_column; /**< The column count. */
247   
248        /* Whether to try to fill the input buffer when we reach the
249         * end of it.
250         */
251        int yy_fill_buffer;
252
253        int yy_buffer_status;
254
255#define YY_BUFFER_NEW 0
256#define YY_BUFFER_NORMAL 1
257        /* When an EOF's been seen but there's still some text to process
258         * then we mark the buffer as YY_EOF_PENDING, to indicate that we
259         * shouldn't try reading from the input source any more.  We might
260         * still have a bunch of tokens to match, though, because of
261         * possible backing-up.
262         *
263         * When we actually see the EOF, we change the status to "new"
264         * (via yyrestart()), so that the user can continue scanning by
265         * just pointing yyin at a new input file.
266         */
267#define YY_BUFFER_EOF_PENDING 2
268
269        };
270#endif /* !YY_STRUCT_YY_BUFFER_STATE */
271
272/* We provide macros for accessing buffer states in case in the
273 * future we want to put the buffer states in a more general
274 * "scanner state".
275 *
276 * Returns the top of the stack, or NULL.
277 */
278#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
279                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
280                          : NULL)
281
282/* Same as previous macro, but useful when we know that the buffer stack is not
283 * NULL or when we need an lvalue. For internal use only.
284 */
285#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
286
287void *LolFxalloc (yy_size_t  );
288void *LolFxrealloc (void *,yy_size_t  );
289void LolFxfree (void *  );
290
291#define yy_new_buffer yy_create_buffer
292
293#define yy_set_interactive(is_interactive) \
294        { \
295        if ( ! YY_CURRENT_BUFFER ){ \
296        yyensure_buffer_stack (); \
297                YY_CURRENT_BUFFER_LVALUE =    \
298            yy_create_buffer( yyin, YY_BUF_SIZE ); \
299        } \
300        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
301        }
302
303#define yy_set_bol(at_bol) \
304        { \
305        if ( ! YY_CURRENT_BUFFER ){\
306        yyensure_buffer_stack (); \
307                YY_CURRENT_BUFFER_LVALUE =    \
308            yy_create_buffer( yyin, YY_BUF_SIZE ); \
309        } \
310        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
311        }
312
313#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
314
315/* Begin user sect3 */
316
317typedef unsigned char YY_CHAR;
318
319#define yytext_ptr yytext
320
321#include <FlexLexer.h>
322
323/* Done after the current pattern has been matched and before the
324 * corresponding action - sets up yytext.
325 */
326#define YY_DO_BEFORE_ACTION \
327        (yytext_ptr) = yy_bp; \
328        yyleng = (size_t) (yy_cp - yy_bp); \
329        (yy_hold_char) = *yy_cp; \
330        *yy_cp = '\0'; \
331        (yy_c_buf_p) = yy_cp;
332
333#define YY_NUM_RULES 443
334#define YY_END_OF_BUFFER 444
335/* This struct is not used in this scanner,
336   but its presence is necessary. */
337struct yy_trans_info
338        {
339        flex_int32_t yy_verify;
340        flex_int32_t yy_nxt;
341        };
342static yyconst flex_int16_t yy_accept[1627] =
343    {   0,
344        0,    0,  437,  437,  442,  442,  444,  434,  432,  433,
345      434,  434,  434,  434,  434,  434,  434,  434,  429,  429,
346      434,  434,  434,  431,  431,  431,  431,  431,  431,  431,
347      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
348      431,  431,  431,  431,  434,  430,  430,  431,  431,  431,
349      431,  430,  431,  431,  431,  431,  431,  431,  430,  430,
350      430,  430,  430,  431,  431,  430,  430,  434,  437,  438,
351      439,  442,  441,  432,  411,    0,    0,    0,    0,    0,
352        0,    0,    0,  419,  414,  424,  417,  406,  420,  407,
353      421,  435,  440,  418,    0,  428,  429,  412,  408,  410,
354
355      409,  413,  431,  431,  431,  431,  431,  431,  431,  431,
356      431,  431,  431,  431,  431,  431,  431,  431,  431,  129,
357      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
358      431,  431,  431,  431,  431,  134,  135,  431,  431,  431,
359      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
360      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
361      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
362      431,  431,  431,  431,  425,  416,  430,  431,  431,  430,
363      431,  431,  431,  431,  431,  431,  431,   99,  431,  431,
364      431,  431,  431,  430,  431,  104,  105,  431,  431,  431,
365
366      431,  431,  431,  431,  431,  431,  430,  431,  430,  431,
367      431,  431,  430,  431,  431,  431,  431,  431,  431,  431,
368      431,  431,  431,  431,  431,  430,  426,  415,  437,  436,
369      442,    0,    0,    0,    0,  366,    0,    0,    0,    0,
370        0,  427,  422,  423,  431,  152,  431,  431,  431,  431,
371      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
372      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
373      431,  431,  431,  431,  431,  133,  431,  431,  431,  431,
374      431,  431,  431,  431,  431,  431,  137,  431,  431,  431,
375      431,  431,  387,  431,  431,  431,  431,  139,  431,  431,
376
377      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
378      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
379      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
380      431,  431,  400,  431,  431,  431,  431,  431,  431,  431,
381      431,  431,  431,  431,  431,  430,  431,  431,  431,  431,
382      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
383      431,  431,  103,  431,  431,  107,  431,  431,  431,  431,
384      431,  431,  431,  431,  109,  431,  430,  431,  431,  431,
385      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
386      431,  431,  431,  431,  430,    0,    0,    0,    0,    0,
387
388        0,    0,    0,    0,    0,    0,    0,  431,  431,  374,
389      431,  121,  431,  431,  431,  123,  431,  431,  431,  376,
390      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
391      431,  431,  431,  131,  381,  431,  431,  431,  431,  431,
392      431,  431,  384,  431,  173,  431,  431,  431,  431,  321,
393      326,  331,  336,  431,  178,  385,  431,  431,  431,  431,
394      431,  185,  431,  431,  431,  188,  431,  431,  431,  431,
395      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
396      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
397      431,  431,  431,  431,  431,  431,  398,  431,  431,  231,
398
399      431,  147,  431,  431,  431,  431,  431,  431,  431,  431,
400      149,  431,  431,  430,  431,   91,  431,  431,   93,  431,
401      431,  431,  431,  431,  431,  431,  431,  101,  431,    4,
402      431,  431,  431,  431,  431,  431,  431,   45,   62,   66,
403       70,  431,  431,  431,  430,  431,  431,  431,  431,  431,
404      431,  431,  431,   89,  117,  431,  431,  431,  431,   59,
405       60,   61,  119,  431,  430,    0,  362,  363,    0,    0,
406        0,    0,    0,  370,    0,    0,    0,  431,  431,  431,
407      241,  246,  251,  256,  122,  431,  431,  375,  431,  431,
408      377,  431,  431,  431,  125,  431,  431,  431,  431,  431,
409
410      431,  431,  431,  167,  431,  431,  431,  169,  132,  431,
411      431,  431,  431,  431,  431,  136,  431,  431,  431,  431,
412      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
413      431,  431,  431,  191,  431,  431,  431,  431,  431,  431,
414      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
415      393,  431,  431,  211,  431,  431,  431,  431,  431,  431,
416      431,  431,  431,  399,  431,  431,  431,  341,  346,  351,
417      356,  431,  402,  236,  431,  404,  431,  431,  431,  431,
418      150,  431,   92,   50,   51,   52,  431,   95,  431,  431,
419      431,   77,   81,   85,  431,   74,   75,   76,   90,  102,
420
421       43,  106,  431,  431,   53,   54,   55,  431,  431,  431,
422      431,  431,  431,    2,  431,  431,  431,  431,  431,  431,
423      431,  431,  431,  431,   56,   57,   58,  431,  120,    0,
424      364,  365,  367,    0,    0,    0,  372,    0,  431,  431,
425      431,  431,  431,  431,  431,  155,  431,  431,  431,  431,
426      431,  431,  431,  431,  431,  431,  379,  431,  431,  431,
427      130,  301,  306,  311,  316,  431,  431,  168,  261,  266,
428      271,  276,  383,  431,  431,  431,  431,  175,  431,  322,
429      327,  332,  337,  323,  328,  333,  338,  324,  329,  334,
430      339,  325,  330,  335,  340,  431,  431,  180,  431,  182,
431
432      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
433      431,  431,  431,  391,  431,  431,  431,  431,  140,  431,
434      431,  431,  431,  431,  431,  210,  394,  395,  431,  214,
435      215,  145,  146,  431,  431,  431,  431,  431,  431,  431,
436      431,  431,  431,  431,  431,  431,  237,  431,  431,  431,
437      431,  431,  431,  431,  431,  431,  431,  431,  100,  431,
438      431,    6,   63,   64,   65,   67,   68,   69,   71,   72,
439       73,  431,  431,  431,  110,    3,    5,  115,  431,  116,
440      431,  431,  431,  431,  361,  368,    0,  371,    0,  431,
441      431,  431,  242,  247,  252,  257,  243,  248,  253,  258,
442
443      244,  249,  254,  259,  245,  250,  255,  260,  431,  157,
444      431,  431,  159,  431,  431,  431,  431,  127,  431,  128,
445      431,  281,  286,  291,  296,  431,  431,  431,  431,  431,
446      431,  431,  431,  431,  431,  170,  431,  431,  431,  431,
447      431,  179,  431,  386,  431,  431,  431,  431,  431,  431,
448      431,  431,  431,  193,  389,  431,  431,  431,  431,  431,
449      431,  431,  431,  431,  431,  206,  431,  431,  431,  217,
450      431,  431,  431,  431,  232,  431,  342,  347,  352,  357,
451      343,  348,  353,  358,  344,  349,  354,  359,  345,  350,
452      355,  360,  148,  431,  431,  431,  405,  431,  431,  431,
453
454      431,   97,   98,   78,   79,   80,   82,   83,   84,   86,
455       87,   88,  431,  431,   44,  431,  431,  206,  431,  221,
456      118,  431,   49,  369,  373,  431,  431,  431,  431,  124,
457      431,  431,  431,  431,  431,  431,  126,  431,  431,  431,
458      431,  431,  431,  302,  307,  312,  317,  303,  308,  313,
459      318,  304,  309,  314,  319,  305,  310,  315,  320,  431,
460      382,  262,  267,  272,  277,  263,  268,  273,  278,  264,
461      269,  274,  279,  265,  270,  275,  280,  431,  431,  431,
462      431,  431,  431,  431,  431,  431,  388,  431,  431,  431,
463      431,  431,  431,  431,  196,  431,  431,  431,  198,  431,
464
465      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
466      431,  431,  397,  431,  431,  431,  431,  233,  401,  403,
467      431,  431,  240,  431,   94,   96,  431,  431,  431,  431,
468      431,  431,  431,  431,  431,  431,  431,  373,  431,  431,
469      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
470      282,  287,  292,  297,  283,  288,  293,  298,  284,  289,
471      294,  299,  285,  290,  295,  300,  431,  431,  431,  431,
472      431,  177,  431,  183,  431,  431,  431,  431,  431,  431,
473      431,  390,  431,  431,  431,  197,  431,  431,  431,  141,
474      142,  143,  431,  431,  431,  431,  431,  431,  431,  218,
475
476      222,  224,  228,  431,  431,  431,  431,  431,   48,   47,
477      431,  431,  431,  431,  431,  431,   46,  111,  112,  113,
478      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
479      154,  431,  431,  431,  431,  431,  378,  431,  431,  431,
480      431,  431,  431,  174,  176,  181,  431,  431,  431,  187,
481      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
482      431,  431,  431,  431,  431,  212,  431,  431,  431,  431,
483      431,  431,  431,  431,  431,  431,  431,   14,   15,   16,
484      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
485      431,    1,   20,   21,   22,  431,  431,  431,  431,  431,
486
487      431,  431,  431,  431,  431,  431,  431,  431,  431,  172,
488      431,  431,  186,  431,  190,  192,  431,  431,  431,  431,
489      431,  201,  203,  205,  431,  144,  431,  431,  431,  396,
490      431,  219,  431,  431,  431,  226,  229,  234,  431,  431,
491      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
492      431,   37,  431,  431,  431,  114,  431,  431,  431,  431,
493      431,  431,  431,  153,  431,  158,  431,  431,  431,  431,
494      431,  166,  380,  431,  431,  431,  431,  431,  431,  431,
495      431,  431,  431,  431,  431,  208,  431,  431,  431,  431,
496      431,  431,  431,  431,  431,  431,  239,  431,  431,   38,
497
498      431,  431,   17,  431,  431,  431,  431,  431,  431,  431,
499      431,  431,  431,  431,  431,   39,  431,  431,   23,  431,
500      431,  161,  431,  162,  431,  431,  431,  431,  431,  138,
501      189,  431,  431,  431,  431,  431,  431,  431,  431,  207,
502      431,  431,  220,  431,  431,  431,  431,  431,  431,  431,
503      431,  431,  431,  431,  431,  108,  431,  431,  431,  431,
504       26,  431,   30,  431,  431,  431,  431,  431,  431,  431,
505      431,  431,  431,  431,  431,  431,  431,  171,  431,  431,
506      431,  431,  431,  431,  431,  431,  431,  431,  431,  223,
507      225,  431,  431,  235,  238,  431,  431,  431,   28,   31,
508
509      431,   10,  431,   11,  431,  431,  431,  431,  431,  431,
510      431,  431,   29,   32,  431,  431,  431,  431,  431,  431,
511      431,  184,  194,  431,  431,  431,  431,  431,  431,  431,
512      431,  431,  431,  431,   18,   19,  431,  431,  431,    7,
513      431,  431,  431,    8,  431,  431,   24,   25,  431,  431,
514      431,  431,  160,  431,  431,  165,  392,  195,  431,  431,
515      202,  204,  431,  213,  216,  227,  230,  431,  431,  431,
516      431,   40,  431,   33,  431,  431,  431,  431,  156,  431,
517      164,  431,  431,  431,   41,   35,  431,  431,  431,  431,
518        9,   42,   36,  431,  431,  431,  200,  431,  431,  431,
519
520      431,  431,  431,  431,  199,  431,  431,  431,   27,  431,
521      431,  431,  431,   12,   13,  431,  431,  431,  431,  431,
522      151,  431,  209,   34,  163,    0
523    } ;
524
525static yyconst flex_int32_t yy_ec[256] =
526    {   0,
527        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
528        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
529        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
530        1,    2,    5,    1,    6,    1,    7,    8,    1,    1,
531        1,    9,   10,    1,   11,   12,   13,   14,   15,   16,
532       17,   18,   19,   19,   19,   19,   19,    1,    1,   20,
533       21,   22,    1,    1,   23,   24,   25,   26,   27,   28,
534       29,   30,   31,   32,   33,   34,   35,   36,   37,   38,
535       39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
536        1,    1,    1,   49,   50,    1,   51,   52,   53,   54,
537
538       55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
539       65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
540       75,   76,    1,   77,    1,    1,    1,    1,    1,    1,
541        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
542        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
543        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
544        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
545        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
546        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
547        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
548
549        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
550        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
551        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
552        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
553        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
554        1,    1,    1,    1,    1
555    } ;
556
557static yyconst flex_int32_t yy_meta[78] =
558    {   0,
559        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
560        1,    1,    1,    4,    4,    4,    4,    4,    4,    1,
561        1,    1,    4,    4,    4,    4,    4,    4,    4,    4,
562        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
563        4,    4,    4,    4,    4,    4,    4,    4,    1,    4,
564        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
565        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
566        4,    4,    4,    4,    4,    4,    1
567    } ;
568
569static yyconst flex_int16_t yy_base[1633] =
570    {   0,
571        0,    0,   75,   76, 2932, 2931, 2933, 2936,   78, 2936,
572     2911,   79, 2910,   75, 2909,   76,   77,   78,   77,   88,
573       72, 2908,   73,   71,   81,  137,  131,  119,  157,   89,
574      162,   83,    0,  142,  175,  187,  173,  192,  222,  273,
575      242,  243,  261,   78,  114,  270,  313,   62,  362,  219,
576      340,  389,  177,  323,  203,  311,  367,  248,  435,  302,
577      416,  444,  494,  424,  485,  497,  374,   89,    0, 2936,
578     2915,    0, 2936,  121, 2936,  521, 2872,  237,   66, 2867,
579     2857, 2860, 2868, 2936, 2936, 2936, 2936, 2936, 2936, 2936,
580     2936, 2936, 2936, 2936,  514, 2936,  582, 2901, 2936, 2936,
581
582     2936, 2900,    0,  146,  174,  205,  223,  292,  303,  305,
583      303,  382,  305,  319,  377,  380,  428,  550,  401,  539,
584      422,  433,  439,  455,  515,  475,  482,  480,  507,  510,
585      514,  516,  540,  555,  556,    0,  577,  559,  567,  562,
586      565,  573,  564,  582,  587,  595,  582,  603,  580,  596,
587      603,  605,  592,  634,  593,  636,  610,  644,  635,  609,
588      646,  620,  616,  650,  640,  669,  644,  653,  684,  659,
589      682,  661,  689,  671, 2936, 2936,  690, 2850,  689,  704,
590     2864,  695,  696,  732,  735,  693, 2867,  735, 2862,  705,
591      718,  720,  735,  753, 2859,    0,  750, 2864, 2859, 2838,
592
593      750,  737, 2858,  771,  741,  783,  759,  804,  792,  809,
594      754, 2846,  816, 2858,  768,  845,  803,  783,  834,  841,
595     2854, 2840,  856,  856,  817,  831, 2936, 2936,    0, 2936,
596        0, 2851,  113, 2852, 2837,  123, 2851, 2839, 2851, 2847,
597     2832,  911, 2936, 2936,  861, 2849,  852,  858,  861,  887,
598      883,  885,  886,  889,  892,  879,  891,  891,  890,  896,
599      894,  914,  916,  902,  920,  923,  923,  910,  928,  925,
600      918,  920,  928,  915,  934,    0,  931,  926,  932,  931,
601      926,  942,  942,  946,  944,  945,  974,  966,  970,  960,
602      979,  976,    0,  970,  980,  974,  969,  972,  978,  971,
603
604      986,  978,  992,  974,  977,  986,  980,  992,  988,  999,
605      983, 2848, 1012,  990, 1006, 1005, 1004, 1009, 1020, 1030,
606     1018, 1020, 1032, 1022, 1037, 1036, 1029, 1026, 1028, 1033,
607     1050, 1047,    0, 1049, 1036, 1051, 1040, 1050, 1046, 1047,
608     1057, 1058, 1079, 1088, 1078,  725, 2829, 1079, 1091, 2843,
609     1088, 1076, 1078, 1098, 1097, 2825, 1099, 2841, 1097, 1084,
610     2823, 1103,    0, 2834, 1086, 1143, 2840, 2827, 2836, 2823,
611     2821, 1146, 2827, 1110, 1100, 2832,  788, 1119, 1102, 1117,
612     2819, 1125, 2815, 1125, 1127, 1144, 1132, 1148, 2819, 2828,
613     2805, 1161, 1154, 1147, 1114, 2820, 2822, 2822, 2817, 2810,
614
615     2819, 2819, 2810, 2816, 2813, 2814, 2799, 1146, 1163,    0,
616     1166, 1200, 1160, 1167, 1177,    0, 1171, 1177, 1166,    0,
617     1166, 1176, 1181, 1183, 1192, 1184, 1188, 1202, 1213, 1206,
618     1204, 1215, 1207,    0,    0, 1212, 1204, 1218, 1204, 1211,
619     1211, 1222,    0, 1212,    0, 1215, 1221, 1217, 1219, 1216,
620     1217, 1221, 1222, 1239, 1257,    0, 1250, 1258, 1242, 1244,
621     1248,    0, 1269, 1250, 1257,    0, 1263, 1257, 1269, 1278,
622     1275, 1272, 1277, 1264, 1264, 1285, 1273, 1280, 1289, 1276,
623     1279, 1277, 1290, 1308, 1294, 1310, 1301, 1304, 1317, 1306,
624     1324, 1325, 1325, 1318, 1321, 1313,    0, 1312, 1322,    0,
625
626     1333, 1373, 1331, 1335, 1338, 1345, 1346, 1342, 1353, 1349,
627        0, 1351, 1367,    0, 2808, 1394, 1362,  380,    0, 1358,
628     1362, 1369, 1363, 1390,  395, 1380, 1114,    0, 1388,    0,
629     1374, 2800, 1375, 2797, 2798, 1118, 2792,    0, 2788, 2787,
630     2786, 2788, 1378, 2800,    0, 1388, 1384, 1391, 2787, 1402,
631     2791, 1404, 1387,    0, 1420, 1394, 2789, 1344, 2795,    0,
632        0,    0,    0, 1412,    0, 2789, 2936, 2936, 2796, 2783,
633     2794, 2794, 2777, 2936, 2784, 2790, 2786, 1414, 1408, 1408,
634     1404, 1405, 1408, 1410,    0, 1420, 1435,    0, 1435, 1426,
635        0, 1428, 1431, 1424, 2794, 1434, 1434, 1437, 1445, 1432,
636
637     1434, 1439, 1453, 1489, 1450, 1458, 1449,    0, 1499, 1469,
638     1453, 1468, 1471, 1488, 1492,    0, 1482, 1510, 1514, 1518,
639     1526, 1493, 1511, 1480, 1493, 1511, 1514, 1526, 1513, 1513,
640     1514, 1529, 1530, 1518, 1519, 1519, 1537, 1538, 1524, 1524,
641     1541, 1529, 1534, 1549, 1546, 1548, 1533, 1535, 1551, 1567,
642        0, 1569, 1573,    0, 1583, 1583, 1580, 1568, 1581, 1585,
643     1582, 1591, 1575,    0, 1587, 1590, 1595, 1573, 1574, 1576,
644     1578, 1585,    0,    0, 1590,    0, 1587, 1582, 1607, 1600,
645        0, 2791,    0,    0,    0,    0, 1595, 2792, 1597, 1600,
646     1609, 2767, 2766, 2765, 1624,    0,    0,    0,    0, 1648,
647
648        0,    0, 2779, 2775,    0,    0,    0, 2766, 1651, 1654,
649     1657, 2772, 1616,    0, 1635, 1642, 1653, 2776, 1639, 2762,
650     1652, 1643, 1644, 2770,    0,    0,    0, 2767,    0, 2775,
651     2936, 2936, 2936, 2773, 2774, 2776, 2936, 2761, 1645, 1664,
652     1646, 1674, 1678, 1682, 1702,    0, 1675, 1662, 1672, 2775,
653     1678, 1680, 1688, 1694, 1679, 1681,    0, 1682, 1699, 1685,
654     1721, 1681, 1682, 1686, 1688, 1715, 1711,    0, 1697, 1698,
655     1699, 1700,    0, 1709, 1708, 1727, 1735,    0, 1736,    0,
656        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657        0,    0,    0,    0,    0, 1738, 1731,    0, 1724,    0,
658
659     1738, 1743, 1727, 1731, 1740, 1740, 1751, 1740, 1751, 1740,
660     1756, 1757, 1746,    0, 1759, 1769, 1758, 1757,    0, 1768,
661     1774, 1779, 1778, 1761, 1773,    0,    0,    0, 1780, 2774,
662        0, 1772,    0, 1777, 1780, 1778, 1794, 1788, 1795, 1790,
663     1818, 1822, 1839, 1843, 1809, 1819,    0, 1824, 1828, 1829,
664     2752, 1833, 1823, 1825, 1842, 1853, 1859, 1865, 1869, 2771,
665     2766,    0,    0,    0,    0,    0,    0,    0,    0,    0,
666        0, 2754, 1835, 1851,    0, 1839,    0, 1845, 2749,    0,
667     1862, 1862, 2763, 2760, 2936, 2936, 2761, 2936, 2751, 1856,
668     1870, 1877,    0,    0,    0,    0,    0,    0,    0,    0,
669
670        0,    0,    0,    0,    0,    0,    0,    0, 1862,    0,
671     1877, 1869, 1864, 1867, 1886, 1870, 1885,    0, 1886,    0,
672     1885, 1872, 1873, 1874, 1875, 1935, 1939, 1943, 1947, 2764,
673     1896, 1952, 1956, 1960, 1964,    0, 1936, 1961, 1959, 1944,
674     1962,    0, 1961,    0, 1964, 1952, 1964, 1952, 1970, 1953,
675     1972, 1973, 1957,    0,    0, 1971, 1951, 1960, 1963, 1979,
676     1966, 1964, 1979, 1964, 1967, 2021, 2002, 2015, 2001,    0,
677     1999, 2017, 2032, 2018,    0, 2023,    0,    0,    0,    0,
678        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
679        0,    0,    0, 2025, 2012, 2023,    0, 2027, 2743, 2029,
680
681     2029,    0,    0,    0,    0,    0,    0,    0,    0,    0,
682        0,    0, 2748, 2743,    0, 2031, 2745, 2072, 2750, 2076,
683        0, 2740,    0, 2936,    0, 2026, 2040, 2034, 2050,    0,
684     2072, 2068, 2071, 2070, 2061, 2064,    0, 2071, 2085, 2094,
685     2099, 2103, 2122,    0,    0,    0,    0,    0,    0,    0,
686        0,    0,    0,    0,    0,    0,    0,    0,    0, 2106,
687        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
688        0,    0,    0,    0,    0,    0,    0, 2091, 2093, 2115,
689     2118, 2117, 2122, 2119, 2110, 2123,    0, 2107, 2123, 2122,
690     2126, 2126, 2128, 2128,    0, 2116, 2117, 2118,    0, 2136,
691
692     2120, 2137, 2139, 2140, 2141, 2159, 2127, 2146, 2163, 2166,
693     2171, 2172,    0, 2174, 2175, 2177, 2161, 2182,    0,    0,
694     2183, 2184,    0, 2752,    0,    0, 2736, 2193, 2186, 2741,
695     2186, 2187, 2188, 2733, 2182, 2739, 2205,    0, 2193, 2210,
696     2211, 2202, 2212, 2225, 2209, 2227, 2210, 2214, 2230, 2230,
697        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698        0,    0,    0,    0,    0,    0, 2236, 2230, 2234, 2222,
699     2233,    0, 2232,    0, 2234, 2227, 2245, 2231, 2239, 2248,
700     2256,    0, 2241, 2258, 2257,    0, 2252, 2253, 1907,    0,
701        0,    0, 2259, 2275, 2277, 2262, 2272, 2265, 2282, 2787,
702
703     2287, 2288,    0, 2288, 2289, 2274, 2288, 2292,    0,    0,
704     2747, 2746, 2745, 2727, 2726, 2277,    0,  298, 2286,    0,
705     2740, 2300, 2740, 2740, 2739, 2738, 2720, 2719, 2300, 2293,
706        0, 2289, 2294, 2309, 2318, 2316,    0, 2305, 2319, 2329,
707     2319, 2338, 2336,    0,    0,    0, 2341, 2334, 2336,    0,
708     2340, 2328, 2336, 2331, 2331, 2347, 2348, 2350, 2353, 2354,
709     2355, 2344, 2356, 2343, 2363, 2739, 2345, 2367,  155, 2357,
710     2358, 2363, 2379, 2380, 2376, 2382, 2391, 2737,  491,    0,
711     2731, 2734, 2389, 2717, 2726, 2715, 2713, 2726, 2722, 2723,
712     2394,    0, 2727, 2373,    0, 2721, 2724, 2380, 2381, 2403,
713
714     2388, 2402, 2401, 2404, 2408, 2401, 2397, 2396, 2413,    0,
715     2400, 2399,    0, 2411,    0,    0, 2410, 2725, 2411, 2413,
716     2434, 2439, 2441,    0, 2445,    0, 2442, 2430, 2432,    0,
717     2431,    0, 2430, 2437, 2438, 2456, 2460,    0, 2457, 2458,
718     2446, 2706, 2705, 2703, 2716, 2714, 2714, 2443, 2700, 2714,
719     2693, 2707, 2704, 2693, 2687,  350, 2672, 2666, 2664, 2677,
720     2671, 2667, 2446,    0, 2448,    0, 2453, 2459, 2455, 2456,
721     2483,    0,    0, 2476, 2477, 2482, 2468, 2493, 2493, 2476,
722     2484, 2504, 2489, 2490, 2492,    0, 2506, 2492, 2507, 2491,
723     2517, 2518, 2502, 2503, 2522, 2511,    0, 2431, 2258, 2167,
724
725     2115, 2041, 2014, 2522, 2013, 2009, 2010, 1992, 1989, 1989,
726     1942, 1941, 1950, 1877, 1876, 1891, 1882, 1879, 1878, 2510,
727     2523,    0, 2527,    0, 2516, 2522, 2534, 2526, 2535,    0,
728        0, 2532, 2553, 2549, 2557, 2540, 2544, 2545, 2555,    0,
729     2565, 2561,    0, 2543, 2544, 2555, 2556, 2562, 2556, 1436,
730     1435, 1107,  832,  833,  829,    0,  802,  799,  767,  764,
731      744,  735,    0,  713,  694,  688,  687,  665,  657,  651,
732      626, 2572, 2573, 2567, 2565, 2583, 2580,    0, 2574, 2588,
733     2579, 2594, 2579, 2600, 2607, 2609, 2595, 2595, 2612,    0,
734        0, 2617, 2618,    0,    0,  609,  516,  500,    0,    0,
735
736      497,  487,  472,  474,  484,  467,  426,  434,  428,  404,
737      402,  408,    0,    0,  406, 2616, 2617, 2603, 2619, 2605,
738     2606,    0,    0, 2610, 2608, 2626, 2627, 2610, 2612, 2624,
739     2635, 2623, 2619, 2624,    0,    0,  405,  394,  378,    0,
740      375,  355,  369,    0,  340,  341,    0,    0,  301,  293,
741     2652, 2637,    0, 2652, 2657,    0,    0,    0, 2658, 2661,
742        0,    0, 2656,    0,    0,    0,    0,  267,  260,  277,
743      274,    0,  269,  237,  217,  210,  205, 2650,    0, 2671,
744        0, 2669, 2657, 2657,    0,    0,  222,  217,  205,  206,
745        0,    0,    0, 2672, 2658, 2662,    0, 2661,  196,  191,
746
747      168,  176, 2679, 2680,    0, 2686,  148,  144,    0,  121,
748     2683, 2683, 2671,    0,    0,   67, 2675, 2690, 2691,   28,
749        0, 2679,    0,    0,    0, 2936, 2747, 2751,   86, 2755,
750     2759, 2763
751    } ;
752
753static yyconst flex_int16_t yy_def[1633] =
754    {   0,
755     1626,    1, 1627, 1627, 1628, 1628, 1626, 1626, 1626, 1626,
756     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
757     1626, 1626, 1626, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
758     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
759     1629, 1629, 1629, 1629, 1626, 1629, 1629,   26, 1629, 1629,
760     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
761     1629,   40, 1629, 1629, 1629, 1629, 1629, 1626, 1630, 1626,
762     1626, 1631, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
763     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
764     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
765
766     1626, 1626, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
767     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
768     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
769     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
770     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
771     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
772     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
773     1629, 1629, 1629, 1629, 1626, 1626, 1629, 1629, 1629, 1629,
774     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
775     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
776
777     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
778     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
779     1629, 1629, 1629, 1629, 1629, 1629, 1626, 1626, 1630, 1626,
780     1631, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
781     1626, 1626, 1626, 1626, 1629, 1629, 1629, 1629, 1629, 1629,
782     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
783     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
784     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
785     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
786     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
787
788     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
789     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
790     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
791     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
792     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
793     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
794     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
795     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
796     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
797     1629, 1629, 1629, 1629, 1629, 1626, 1626, 1626, 1626, 1626,
798
799     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1629, 1629, 1629,
800     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
801     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
802     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
803     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
804     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
805     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
806     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
807     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
808     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
809
810     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
811     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
812     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
813     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
814     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
815     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
816     1629, 1629, 1629, 1629, 1629, 1626, 1626, 1626, 1626, 1626,
817     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1629, 1629, 1629,
818     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
819     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
820
821     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
822     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
823     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
824     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
825     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
826     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
827     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
828     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
829     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
830     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
831
832     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
833     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
834     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1626,
835     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1629, 1629,
836     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
837     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
838     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
839     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
840     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
841     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
842
843     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
844     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
845     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
846     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
847     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
848     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
849     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
850     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
851     1629, 1629, 1629, 1629, 1626, 1626, 1626, 1626, 1626, 1629,
852     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
853
854     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
855     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
856     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
857     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
858     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
859     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
860     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
861     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
862     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
863     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
864
865     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
866     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
867     1629, 1629, 1629, 1626, 1632, 1629, 1629, 1629, 1629, 1629,
868     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
869     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
870     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
871     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
872     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
873     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
874     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
875
876     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
877     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
878     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
879     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1632, 1629, 1629,
880     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
881     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
882     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
883     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
884     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
885     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
886
887     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
888     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
889     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
890     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
891     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
892     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
893     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
894     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
895     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
896     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
897
898     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
899     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
900     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
901     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
902     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
903     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
904     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
905     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
906     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
907     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
908
909     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
910     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
911     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
912     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
913     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
914     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
915     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
916     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
917     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
918     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
919
920     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
921     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
922     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
923     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
924     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
925     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
926     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
927     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
928     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
929     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
930
931     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
932     1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
933     1629, 1629, 1629, 1629, 1629,    0, 1626, 1626, 1626, 1626,
934     1626, 1626
935    } ;
936
937static yyconst flex_int16_t yy_nxt[3014] =
938    {   0,
939        8,    9,   10,    9,   11,   12,   13,   14,   15,   16,
940       17,    8,   18,   19,   20,   20,   20,   20,   20,   21,
941       22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
942       32,   33,   33,   34,   35,   36,   37,   38,   33,   39,
943       40,   41,   42,   43,   44,   33,   33,   33,   45,   33,
944       46,   47,   48,   49,   50,   51,   52,   53,   54,   33,
945       33,   55,   56,   57,   58,   59,   60,   61,   62,   63,
946       64,   65,   66,   67,   67,   67,   68,   70,   70,   74,
947       76,   74,   85,   71,   71,   88,   92,   90,   95,  103,
948       93,   98,   99,  101,  102,   86,   89,   91,   94,   95,
949
950     1624,   97,   97,   97,   97,   97,   97,  174,  104,  227,
951      136,  105,  182,  106,  107,  131,  183,  108,  137,   96,
952      109,  236,   74,  110,   74,  132,  184,  111,  133,  237,
953       96, 1620,   77,   78,  175,  174,  104,   79,  136,  105,
954       80,  106,  107,  131,   81,  108,  137,   96,  109,   82,
955       83,  110,  123,  132,  124,  111,  133,  118,   96,  112,
956      113,  119,  176,  114,  125,  228,  115,  120, 1332, 1333,
957      116,  397,  138,  117, 1616,  121,  401,  122,  139,  126,
958      123,  398,  124,  245,  134,  118,  402,  112,  113,  119,
959      127,  114,  125,  128,  115,  120,  129,  140,  116,  134,
960
961      138,  117,  130,  121,  135,  122,  139,  126,  246,  142,
962      146,  245,  134,  143,  148,  147, 1615,  141,  127,  135,
963     1614,  128,  149,  144,  129,  140, 1610,  134,  150,  145,
964      130,  151,  135,  138,  152,  195,  246,  142,  146,  139,
965     1609,  143,  148,  147,  153,  141,  247,  135,  154,  248,
966      149,  144,  123,  200,  124, 1608,  150,  145,  155,  151,
967     1607,  138,  152, 1602,  125,  163,  156,  201,  164, 1601,
968     1600,  165,  153,  168,  247, 1599,  154,  248,  169, 1593,
969      190,  166,  124,  170, 1592,  146,  155,  171,  167, 1591,
970      147,  172,  125,  163,  156,  157,  164,  173,  233,  165,
971
972      234,  168,  158,  159,  235, 1590,  169,  104,  160,  166,
973      105,  170,  106,  146,  161,  171,  167,  162,  205,  172,
974      177,  177, 1589,  157, 1588,  173,  177, 1587,  249,  250,
975      158,  159,  251,  140, 1586,  104,  160,  177,  105,  178,
976      106, 1585,  161, 1577,  252,  162,  107,  255, 1284,  108,
977      136, 1576,  109,  141,  256,  110,  249,  250,  137,  111,
978      251,  202,  126,  177,  177,  203, 1285,  207,  207,  177,
979      207,  207,  252,  127,  107,  255,  128,  179,  196,  129,
980      180,  141,  256,  110,  181,  130,  197,  111,  118,  142,
981      191,  198,  119,  143,  199,  684,  685,  686,  120,  257,
982
983     1412,  192,  258,  144,  193, 1575,  121,  129,  122,  145,
984      692,  693,  694,  130, 1574,  131,  185,  142, 1413, 1573,
985      186,  143,  253,  254,  187,  132,  188,  257,  133, 1572,
986      258,  204, 1571,  189,  121, 1570,  122,  145,  153,  177,
987      177,  265,  154,  131, 1569,  177,  226,  226,  226,  226,
988      253,  254,  155,  132,  168, 1568,  194,  148,  268,  169,
989      156,  259,  260,  261,  170,  149,  209,  177,  269,  265,
990      210,  150,  177, 1550,  151, 1549, 1548,  152, 1547,  270,
991      155, 1546,  218,  177, 1545,  206,  268,  219,  156,  259,
992      260,  261,  220,  149,  211,  221,  269,  271, 1544,  150,
993
994      207,  207,  208,  207,  207,  152,  212,  270,  274,  207,
995      207,  171,  207,  213,  214,  172,  215,  163,  275,  276,
996      164,  173,   76,  165, 1543,  271,  174,  242,  242,  242,
997      242,  242,  242,  166, 1542,  222,  274,  277,  278,  223,
998      167, 1343, 1541,  172, 1540,  163,  275,  276,  216,  224,
999      279,  165,  272, 1344,  225, 1539,  273,  280, 1345,  207,
1000      207,  217,  207,  207, 1538,  277,  278, 1537,  167,  226,
1001      226,  226,  226,  266,   77,   78,  281,  262,  279,   79,
1002      272,  267,   80,  263,  273,  280,   81,  264,  282,  283,
1003     1536,   82,   83,   95,  288,   97,   97,   97,   97,   97,
1004
1005       97,  266,  289,  290,  281,  262,  291,  292,  293,  267,
1006      284,  263,  294,  285,  286,  264,  282,  283,  287,  295,
1007      296,  297,  288,  298,   96,  301,  302,  299,  306,  303,
1008      289,  290,  307,  304,  291,  292,  293,  312,  284,  305,
1009      294,  285,  286,  300,  316,  321,  287,  295,  296,  297,
1010      324,  298,   96,  301,  302,  299,  306,  303,  325,  313,
1011      307,  304,  308,  319,  309,  312,  317,  305,  322,  310,
1012      329,  300,  316,  321,  326,  311,  314,  315,  324,  330,
1013      318,  334,  320, 1535,  327,  323,  325,  313,  335,  339,
1014      308,  319,  309, 1515,  317,  328,  322,  310,  329,  331,
1015
1016      342,  345,  326,  311,  314,  315,  340,  330,  318,  334,
1017      320,  332,  327,  323,  336,  333,  335,  339, 1514,  343,
1018      337,  341,  344,  328,  338,  249, 1513,  331,  342,  345,
1019      250,  256, 1512,  265,  340,  253,  254, 1511, 1510,  332,
1020      346,  346,  336,  333, 1509,  270,  346,  343,  337,  341,
1021      344,  274,  338,  348,  346,  346,  275,  346,  349,  352,
1022      346,  355,  262,  351,  254,  259,  260,  261,  263,  266,
1023      361,  346,  264,  359,  276,  514,  514,  267,  290,  360,
1024     1508,  514,  298,  284,  362,  289,  285,  286,  316,  281,
1025      354,  287,  514,  259,  260,  353,  263,  266,  324, 1507,
1026
1027      264,  294,  363,  346,  346,  357,  372,  299,  295,  346,
1028      375,  284, 1506,  289,  365,  286,  380,  281,  335,  366,
1029      346,  367,  371,  300,  377,  377,  384,  377,  377,  294,
1030      303, 1505,  307,  331,  304,  299,  374,  308,  322,  309,
1031      305, 1504,  346,  346,  310,  332,  387,  345,  346,  333,
1032      311,  300,  376,  545,  545,  323,  545,  545,  378,  346,
1033      307,  331,  304, 1503,  336,  308,  322,  309,  305,  326,
1034      337,  339,  310,  386,  338,  394, 1502,  333,  379,  327,
1035      340,  377,  377,  382,  377,  377,  343,  408,  410,  344,
1036      328,  389,  388,  411,  412,  341, 1501,  326,  337,  339,
1037
1038     1500, 1499,  338,  395,  395,  395,  395,  327,  392,  413,
1039      414,  415,  416,  417,  393,  408,  410,  344,  385,  418,
1040      419,  411,  412,  341,  242,  242,  242,  242,  242,  242,
1041      420,  421,  422,  423,  424,  425,  426,  413,  414,  415,
1042      416,  417,  427,  428,  429,  430,  431,  418,  419,  432,
1043      433,  434,  435,  436,  437,  438,  439,  440,  420,  421,
1044      422,  423,  424,  425,  426,  441,  442,  443,  444,  445,
1045      427,  428,  429,  430,  431,  446,  447,  432,  433,  434,
1046      435,  436,  437,  438,  439,  440,  448,  449,  450,  451,
1047      452,  453,  455,  441,  442,  443,  444,  445,  456,  457,
1048
1049      454,  458,  459,  446,  447,  460,  461,  462,  463,  464,
1050      465,  466,  467,  468,  448,  449,  469,  470,  471,  472,
1051      455,  473,  474,  475,  476,  477,  456,  457,  454,  458,
1052      459,  481,  482,  460,  461,  462,  463,  464,  465,  466,
1053      467,  468,  483,  484,  469,  470,  471,  472,  485,  473,
1054      474,  475,  476,  477,  479,  486,  487,  488,  480,  481,
1055      482,  489,  490,  492,  493,  494,  495,  496,  497,  498,
1056      483,  484,  499,  500,  491,  501,  485,  502,  503,  505,
1057      506,  507,  479,  486,  487,  488,  480,  504,  508,  489,
1058      490,  492,  493,  494,  495,  496,  497,  498,  509,  510,
1059
1060      499,  500,  491,  501,  511,  502,  503,  505,  506,  507,
1061      512,  513,  412,  413,  416,  504,  508,  419,  424,  425,
1062      426,  429,  431,  434,  438,  439,  509,  510,  448,  696,
1063      697,  698,  511,  705,  706,  707,  461,  464,  512,  513,
1064      516,  517,  519,  469,  477,  520,  521,  522,  523,  524,
1065      526,  528,  529,  531,  483,  490,  533,  450,  451,  452,
1066      453,  539,  540,  541,  543,  464,  492,  491,  496,  454,
1067      500,  546,  547,  502, 1498,  503,  560,  561,  562,  511,
1068      513,  578,  548,  490,  504,  457,  565,  565,  565,  565,
1069      579,  580,  585,  586,  552,  550,  553,  454,  554,  587,
1070
1071      588,  555,  508,  556,  589,  590,  591,  563,  564,  578,
1072      592,  593,  504,  457,  581,  582,  583,  584,  579,  580,
1073      585,  586,  597,  594,  595,  596,  598,  587,  588,  599,
1074      508,  600,  589,  590,  591,  601,  602,  603,  592,  593,
1075      604,  605,  606,  607,  608,  609,  610,  611,  612,  613,
1076      597,  594,  595,  596,  598,  614,  615,  599,  616,  600,
1077      617,  618,  619,  601,  602,  603,  620,  621,  604,  605,
1078      606,  607,  608,  609,  610,  611,  612,  613,  622,  623,
1079      625,  626,  627,  614,  615,  628,  616,  629,  617,  618,
1080      619,  630,  631,  632,  620,  621,  633,  624,  634,  635,
1081
1082      636,  637,  638,  639,  640,  641,  622,  623,  625,  626,
1083      627,  642,  643,  628,  644,  629,  645,  646,  647,  630,
1084      631,  632,  648,  649,  633,  624,  634,  635,  636,  637,
1085      638,  639,  640,  641,  650,  651,  652,  653,  654,  642,
1086      643,  657,  644,  655,  645,  646,  647,  656,  658,  659,
1087      648,  649,  660,  661,  662,  663,  664,  665,  666,  725,
1088      726,  727,  650,  651,  652,  653,  654,  672,  667,  657,
1089      673,  655,  674,  675,  676,  656,  658,  659,  677,  678,
1090      660,  661,  662,  663,  664,  665,  666,  668,  669,  670,
1091      671,  679,  680,  681,  585,  672,  667,  590,  673,  597,
1092
1093      674,  675,  676,  595,  596,  598,  677,  678,  581,  582,
1094      583,  584,  601,  603,  608,  609,  616,  629,  635,  679,
1095      680,  681,  683,  643,  649,  687,  658,  689,  659,  663,
1096      672,  688,  596,  690,  668,  669,  670,  671,  681,  739,
1097      691,  695,  699,  700,  702,  713,  715,  740,  741,  742,
1098      743,  716,  717,  744,  719,  745,  721,  722,  723,  746,
1099      747,  748,  749,  750,  751,  752,  729,  739,  754,  755,
1100      756,  757,  758,  759,  760,  740,  741,  742,  743,  761,
1101      766,  744,  767,  745,  768, 1497, 1496,  746,  747,  748,
1102      749,  750,  751,  752,  773,  774,  754,  755,  756,  757,
1103
1104      758,  759,  760,  762,  763,  764,  765,  761,  766,  775,
1105      767,  776,  768,  769,  770,  771,  772,  777,  778,  779,
1106      796,  799,  773,  774,  780,  781,  782,  783,  784,  785,
1107      786,  787,  788,  789,  790,  791,  797,  775,  800,  776,
1108      792,  793,  794,  795,  801,  777,  778,  779,  796,  799,
1109      798,  802,  803,  804,  805,  806,  807,  808,  810,  811,
1110      812,  813,  814,  815,  797,  816,  800,  817,  818,  819,
1111      809,  820,  801,  821,  822,  823,  824,  825,  798,  802,
1112      803,  804,  805,  806,  807,  808,  810,  811,  812,  813,
1113      814,  815,  826,  816,  827,  817,  818,  819,  809,  820,
1114
1115      828,  821,  822,  823,  824,  825,  829,  830,  831,  832,
1116      833,  834,  835,  836,  837,  838,  839,  840,  841,  842,
1117      826,  843,  827,  844,  845,  846,  847,  848,  828,  849,
1118      850,  749,  755,  756,  829,  830,  831,  832,  833,  834,
1119      835,  836,  837,  838,  839,  840,  841,  842,  759,  843,
1120      761,  844,  845,  846,  847,  848,  804,  849,  850,  852,
1121      853,  854,  769,  770,  771,  772,  863,  864,  865,  866,
1122      867,  868,  869,  870,  871,  811,  855,  819,  859,  825,
1123      832,  833,  837,  845,  873,  890,  891,  892,  893,  894,
1124      895,  896,  897,  898,  899,  900,  901,  902,  903,  904,
1125
1126      909,  910,  911,  874,  913,  875,  914,  876,  878,  880,
1127      881,  882,  915,  890,  891,  892,  905,  906,  907,  908,
1128      916,  917,  918,  919,  920,  921,  926,  927,  909,  910,
1129      911,  928,  913,  929,  914,  922,  923,  924,  925,  930,
1130      915,  931,  932,  933,  934,  935,  936,  937,  916,  917,
1131      918,  919,  920,  921,  926,  927,  938,  939,  940,  928,
1132      941,  929,  942,  943,  944,  945,  946,  930,  947,  931,
1133      932,  933,  934,  935,  936,  937,  948,  949,  950,  951,
1134      952,  953,  954,  955,  938,  939,  940,  956,  941,  957,
1135      942,  943,  944,  945,  946,  958,  947,  959,  960,  961,
1136
1137      962,  963,  964,  965,  948,  949,  950,  951,  952,  953,
1138      954,  955,  966,  967,  969,  956,  970,  957,  971,  972,
1139      973,  974,  975,  958,  976,  959,  960,  961,  962,  963,
1140      964,  965,  977,  978,  979,  980,  981,  982,  983,  984,
1141      966,  967,  969,  993,  970,  994,  971,  972,  973,  974,
1142      975,  995,  976,  985,  986,  987,  988,  989,  990,  991,
1143      992,  997,  998,  911,  996,  917,  918,  920, 1004, 1005,
1144     1006,  993,  947,  994, 1007, 1008, 1009,  954,  966,  995,
1145     1010, 1011, 1012,  922,  923,  924,  925,  969,  973,  997,
1146      998, 1000,  996, 1001, 1002, 1003,  993, 1026, 1027, 1028,
1147
1148     1016, 1029, 1030, 1031, 1032,  954, 1018, 1034, 1035, 1017,
1149     1036, 1037, 1038, 1033, 1039,  969, 1020, 1040, 1041, 1042,
1150     1043, 1259, 1260, 1261, 1021, 1026, 1027, 1028, 1471, 1029,
1151     1030, 1031, 1032, 1470, 1469, 1034, 1035, 1061, 1036, 1037,
1152     1038, 1468, 1039, 1467, 1466, 1040, 1041, 1042, 1043, 1044,
1153     1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
1154     1055, 1056, 1057, 1058, 1059, 1061, 1062, 1063, 1064, 1065,
1155     1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
1156     1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
1157     1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,
1158
1159     1096, 1097, 1098, 1099, 1100, 1101, 1102, 1465, 1464, 1463,
1160     1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
1161     1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097,
1162     1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1109, 1110,
1163     1111, 1112, 1462, 1113, 1118, 1106, 1114, 1115, 1116, 1119,
1164     1120, 1121, 1122, 1123, 1030, 1037, 1117, 1086, 1461, 1460,
1165     1459, 1107, 1458, 1457, 1455, 1139, 1109, 1110, 1111, 1112,
1166     1108, 1113, 1118, 1106, 1140, 1141, 1142, 1119, 1120, 1121,
1167     1122, 1123, 1125, 1126, 1117, 1129, 1131, 1132, 1133, 1107,
1168     1114, 1115, 1116, 1139, 1143, 1454, 1106, 1144, 1145, 1146,
1169
1170     1117, 1147, 1140, 1141, 1142, 1148, 1149, 1150, 1151, 1152,
1171     1153, 1154, 1107, 1155, 1156, 1157, 1158, 1159, 1160, 1161,
1172     1162, 1108, 1143, 1134, 1135, 1144, 1145, 1146, 1117, 1147,
1173     1167, 1168, 1169, 1148, 1149, 1150, 1163, 1164, 1165, 1166,
1174     1107, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178,
1175     1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1167, 1168,
1176     1169, 1187, 1188, 1189, 1190, 1191, 1192, 1453, 1195, 1170,
1177     1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
1178     1181, 1182, 1183, 1184, 1185, 1186, 1196, 1197, 1198, 1187,
1179     1188, 1189, 1190, 1191, 1192, 1193, 1195, 1199, 1200, 1201,
1180
1181     1202, 1194, 1203, 1204, 1205, 1207, 1208, 1211, 1212, 1213,
1182     1176, 1190, 1191, 1192, 1196, 1197, 1198, 1452, 1193, 1224,
1183     1225, 1226, 1206, 1193, 1194, 1199, 1200, 1201, 1202, 1194,
1184     1203, 1204, 1205, 1207, 1208, 1229, 1230, 1231, 1216, 1218,
1185     1219, 1220, 1232, 1233, 1214, 1215, 1193, 1234, 1235, 1236,
1186     1206, 1237, 1222, 1238, 1239, 1240, 1227, 1228, 1241, 1242,
1187     1243, 1244, 1245, 1229, 1230, 1231, 1246, 1247, 1248, 1249,
1188     1232, 1233, 1250, 1251, 1252, 1234, 1235, 1236, 1253, 1237,
1189     1254, 1238, 1239, 1240, 1255, 1256, 1241, 1242, 1243, 1244,
1190     1245, 1257, 1258, 1262, 1246, 1247, 1248, 1249, 1263, 1264,
1191
1192     1250, 1251, 1252, 1265, 1266, 1267, 1253, 1268, 1254, 1270,
1193     1271, 1273, 1255, 1256, 1274, 1275, 1276, 1277, 1248, 1257,
1194     1258, 1262, 1272, 1263, 1298, 1451, 1263, 1264, 1299, 1300,
1195     1301, 1265, 1266, 1267, 1302, 1268, 1286, 1270, 1271, 1273,
1196     1303, 1304, 1274, 1275, 1276, 1277, 1283, 1305, 1287, 1306,
1197     1272, 1291, 1298, 1288, 1289, 1307, 1299, 1300, 1301, 1308,
1198     1309, 1310, 1302, 1311, 1312, 1313, 1314, 1315, 1303, 1304,
1199     1316, 1317, 1318, 1319, 1320, 1305, 1321, 1306, 1322, 1323,
1200     1324, 1325, 1326, 1307, 1327, 1328, 1330, 1308, 1309, 1310,
1201     1331, 1311, 1312, 1313, 1314, 1315, 1334, 1335, 1316, 1317,
1202
1203     1318, 1319, 1320, 1336, 1321, 1337, 1322, 1323, 1324, 1325,
1204     1326, 1338, 1327, 1328, 1330, 1339, 1340, 1341, 1331, 1312,
1205     1326, 1363, 1364, 1358, 1334, 1335, 1365, 1366, 1367, 1368,
1206     1369, 1336, 1370, 1337, 1371, 1359, 1372, 1373, 1374, 1338,
1207     1360, 1375, 1376, 1339, 1340, 1341, 1377, 1348, 1356, 1363,
1208     1364, 1378, 1380, 1381, 1365, 1366, 1367, 1368, 1369, 1382,
1209     1370, 1383, 1371, 1384, 1372, 1373, 1374, 1385, 1386, 1375,
1210     1376, 1387, 1388, 1389, 1377, 1390, 1391, 1392, 1393, 1378,
1211     1380, 1381, 1394, 1395, 1396, 1397, 1376, 1382, 1420, 1383,
1212     1421, 1384, 1422, 1423, 1424, 1385, 1386, 1425, 1450, 1387,
1213
1214     1388, 1389, 1428, 1390, 1391, 1392, 1393, 1429, 1430, 1431,
1215     1394, 1395, 1396, 1397, 1404, 1432, 1420, 1433, 1421, 1434,
1216     1422, 1423, 1424, 1426, 1435, 1425, 1427, 1436, 1437, 1438,
1217     1428, 1439, 1440, 1441, 1442, 1429, 1430, 1431, 1443, 1444,
1218     1445, 1446, 1447, 1432, 1448, 1433, 1449, 1434, 1430, 1472,
1219     1473, 1426, 1435, 1474, 1427, 1436, 1437, 1438, 1475, 1439,
1220     1440, 1441, 1442, 1476, 1477, 1478, 1443, 1444, 1445, 1446,
1221     1447, 1479, 1448, 1480, 1449, 1481, 1456, 1472, 1473, 1482,
1222     1483, 1474, 1484, 1485, 1486, 1487, 1475, 1488, 1489, 1490,
1223     1491, 1476, 1477, 1478, 1492, 1493, 1494, 1495, 1516, 1479,
1224
1225     1517, 1480, 1518, 1481, 1519, 1520, 1521, 1482, 1483, 1522,
1226     1484, 1485, 1486, 1487, 1523, 1488, 1489, 1490, 1491, 1524,
1227     1525, 1526, 1492, 1493, 1494, 1495, 1516, 1527, 1517, 1528,
1228     1518, 1529, 1519, 1520, 1521, 1530, 1531, 1522, 1532, 1533,
1229     1534, 1551, 1523, 1552, 1553, 1554, 1555, 1524, 1525, 1526,
1230     1556, 1557, 1558, 1559, 1560, 1527, 1561, 1528, 1562, 1529,
1231     1563, 1564, 1565, 1530, 1531, 1566, 1532, 1533, 1534, 1551,
1232     1567, 1552, 1553, 1554, 1555, 1578, 1579, 1580, 1556, 1557,
1233     1558, 1559, 1560, 1581, 1561, 1582, 1562, 1583, 1563, 1564,
1234     1565, 1584, 1594, 1566, 1595, 1596, 1597, 1598, 1567, 1603,
1235
1236     1604, 1605, 1606, 1578, 1579, 1580, 1611, 1612, 1613, 1617,
1237     1618, 1581, 1619, 1582, 1621, 1583, 1622, 1623, 1625, 1584,
1238     1594, 1419, 1595, 1596, 1597, 1598, 1418, 1603, 1604, 1605,
1239     1606, 1417, 1416, 1415, 1611, 1612, 1613, 1617, 1618, 1414,
1240     1619, 1411, 1621, 1410, 1622, 1623, 1625,   69,   69,   69,
1241       69,   72,   72,   72,   72,  229, 1409, 1408,  229,  231,
1242     1407,  231,  231, 1138, 1406, 1138, 1138, 1405, 1403, 1402,
1243     1401, 1400, 1399, 1398, 1379, 1362, 1361, 1357, 1355, 1354,
1244     1353, 1352, 1351, 1350, 1349, 1347, 1346, 1342, 1329, 1297,
1245     1296, 1295, 1294, 1293, 1292, 1290, 1282, 1281, 1280, 1279,
1246
1247     1278, 1269, 1223, 1221, 1217, 1210, 1209, 1137, 1136, 1130,
1248     1128, 1127, 1124, 1060, 1025, 1024, 1023, 1022, 1019, 1015,
1249     1014, 1013,  999,  968,  912,  889,  888,  887,  886,  885,
1250      884,  883,  879,  877,  872,  862,  861,  860,  858,  857,
1251      856,  753,  851,  753,  738,  737,  736,  735,  734,  733,
1252      732,  731,  730,  728,  724,  720,  718,  714,  712,  711,
1253      710,  709,  708,  704,  703,  701,  682,  577,  576,  575,
1254      574,  573,  572,  571,  570,  569,  568,  567,  566,  559,
1255      558,  557,  551,  549,  544,  542,  538,  537,  536,  535,
1256      534,  532,  530,  527,  525,  518,  515,  478,  409,  407,
1257
1258      406,  405,  404,  403,  400,  399,  396,  391,  390,  383,
1259      381,  373,  370,  369,  368,  364,  358,  356,  350,  347,
1260      244,  243,  241,  240,  239,  238,  232,  230,  100,   87,
1261       84,   75, 1626,   73,   73,    7, 1626, 1626, 1626, 1626,
1262     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1263     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1264     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1265     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1266     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1267     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1268
1269     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1270     1626, 1626, 1626
1271    } ;
1272
1273static yyconst flex_int16_t yy_chk[3014] =
1274    {   0,
1275        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1276        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1277        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1278        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1279        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1280        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1281        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1282        1,    1,    1,    1,    1,    1,    1,    3,    4,    9,
1283       12,    9,   14,    3,    4,   16,   18,   17,   19, 1629,
1284       18,   21,   21,   23,   23,   14,   16,   17,   18,   20,
1285
1286     1620,   20,   20,   20,   20,   20,   20,   44,   24,   68,
1287       32,   24,   48,   24,   25,   30,   48,   25,   32,   19,
1288       25,   79,   74,   25,   74,   30,   48,   25,   30,   79,
1289       20, 1616,   12,   12,   45,   44,   24,   12,   32,   24,
1290       12,   24,   25,   30,   12,   25,   32,   19,   25,   12,
1291       12,   25,   28,   30,   28,   25,   30,   27,   20,   26,
1292       26,   27,   45,   26,   28,   68,   26,   27, 1269, 1269,
1293       26,  233,   34,   26, 1610,   27,  236,   27,   34,   29,
1294       28,  233,   28,  104,   31,   27,  236,   26,   26,   27,
1295       29,   26,   28,   29,   26,   27,   29,   35,   26,   53,
1296
1297       34,   26,   29,   27,   31,   27,   34,   29,  105,   36,
1298       37,  104,   31,   36,   38,   37, 1608,   35,   29,   53,
1299     1607,   29,   38,   36,   29,   35, 1602,   53,   38,   36,
1300       29,   38,   31,   55,   38,   53,  105,   36,   37,   55,
1301     1601,   36,   38,   37,   39,   35,  106,   53,   39,  107,
1302       38,   36,   50,   55,   50, 1600,   38,   36,   39,   38,
1303     1599,   55,   38, 1590,   50,   41,   39,   55,   41, 1589,
1304     1588,   41,   39,   42,  106, 1587,   39,  107,   42, 1577,
1305       50,   41,   50,   42, 1576,   58,   39,   43,   41, 1575,
1306       58,   43,   50,   41,   39,   40,   41,   43,   78,   41,
1307
1308       78,   42,   40,   40,   78, 1574,   42,   46,   40,   41,
1309       46,   42,   46,   58,   40,   43,   41,   40,   58,   43,
1310       46,   46, 1573,   40, 1571,   43,   46, 1570,  108,  109,
1311       40,   40,  110,   56, 1569,   46,   40,   46,   46,   46,
1312       46, 1568,   40, 1550,  111,   40,   47,  113, 1218,   47,
1313       54, 1549,   47,   56,  114,   47,  108,  109,   54,   47,
1314      110,   56,   51,   47,   47,   56, 1218,   60,   60,   47,
1315       60,   60,  111,   51,   47,  113,   51,   47,   54,   51,
1316       47,   56,  114,   47,   47,   51,   54,   47,   49,   57,
1317       51,   54,   49,   57,   54,  518,  518,  518,   49,  115,
1318
1319     1356,   51,  116,   57,   51, 1546,   49,   51,   49,   57,
1320      525,  525,  525,   51, 1545,   52,   49,   57, 1356, 1543,
1321       49,   57,  112,  112,   49,   52,   49,  115,   52, 1542,
1322      116,   57, 1541,   49,   49, 1539,   49,   57,   61,   52,
1323       52,  119,   61,   52, 1538,   52,   67,   67,   67,   67,
1324      112,  112,   61,   52,   64, 1537,   52,   59,  121,   64,
1325       61,  117,  117,  117,   64,   59,   61,   61,  122,  119,
1326       61,   59,   61, 1515,   59, 1512, 1511,   59, 1510,  123,
1327       61, 1509,   64,   61, 1508,   59,  121,   64,   61,  117,
1328      117,  117,   64,   59,   62,   64,  122,  124, 1507,   59,
1329
1330       59,   59,   59,   59,   59,   59,   62,  123,  126,   62,
1331       62,   65,   62,   62,   62,   65,   62,   63,  127,  128,
1332       63,   65,   76,   63, 1506,  124,   66,   95,   95,   95,
1333       95,   95,   95,   63, 1505,   65,  126,  129,  130,   65,
1334       63, 1279, 1504,   65, 1503,   63,  127,  128,   63,   65,
1335      131,   63,  125, 1279,   66, 1502,  125,  132, 1279,   63,
1336       63,   63,   63,   63, 1501,  129,  130, 1498,   63,   66,
1337       66,   66,   66,  120,   76,   76,  133,  118,  131,   76,
1338      125,  120,   76,  118,  125,  132,   76,  118,  134,  135,
1339     1497,   76,   76,   97,  138,   97,   97,   97,   97,   97,
1340
1341       97,  120,  139,  140,  133,  118,  141,  142,  143,  120,
1342      137,  118,  144,  137,  137,  118,  134,  135,  137,  144,
1343      145,  146,  138,  147,   97,  149,  150,  148,  152,  151,
1344      139,  140,  153,  151,  141,  142,  143,  155,  137,  151,
1345      144,  137,  137,  148,  157,  160,  137,  144,  145,  146,
1346      162,  147,   97,  149,  150,  148,  152,  151,  163,  156,
1347      153,  151,  154,  159,  154,  155,  158,  151,  161,  154,
1348      165,  148,  157,  160,  164,  154,  156,  156,  162,  165,
1349      158,  167,  159, 1496,  164,  161,  163,  156,  168,  170,
1350      154,  159,  154, 1471,  158,  164,  161,  154,  165,  166,
1351
1352      172,  174,  164,  154,  156,  156,  171,  165,  158,  167,
1353      159,  166,  164,  161,  169,  166,  168,  170, 1470,  173,
1354      169,  171,  173,  164,  169,  179, 1469,  166,  172,  174,
1355      180,  183, 1468,  186,  171,  182,  182, 1467, 1466,  166,
1356      177,  177,  169,  166, 1465,  190,  177,  173,  169,  171,
1357      173,  191,  169,  179,  180,  180,  192,  177,  180,  183,
1358      180,  186,  185,  182,  182,  184,  184,  184,  185,  188,
1359      192,  180,  185,  190,  193,  346,  346,  188,  202,  191,
1360     1464,  346,  205,  197,  192,  201,  197,  197,  211,  194,
1361      185,  197,  346,  184,  184,  184,  185,  188,  215, 1462,
1362
1363      185,  204,  193,  194,  194,  188,  202,  206,  204,  194,
1364      205,  197, 1461,  201,  197,  197,  211,  194,  218,  197,
1365      194,  197,  201,  206,  207,  207,  215,  207,  207,  204,
1366      208, 1460,  209,  217,  208,  206,  204,  210,  213,  210,
1367      208, 1459,  209,  209,  210,  217,  218,  225,  209,  217,
1368      210,  206,  206,  377,  377,  213,  377,  377,  208,  209,
1369      209,  217,  208, 1458,  219,  210,  213,  210,  208,  216,
1370      219,  220,  210,  217,  219,  225, 1457,  217,  210,  216,
1371      223,  213,  213,  213,  213,  213,  224,  245,  247,  224,
1372      216,  220,  219,  248,  249,  223, 1455,  216,  219,  220,
1373
1374     1454, 1453,  219,  226,  226,  226,  226,  216,  223,  250,
1375      251,  252,  253,  254,  224,  245,  247,  224,  216,  255,
1376      256,  248,  249,  223,  242,  242,  242,  242,  242,  242,
1377      257,  258,  259,  260,  261,  261,  262,  250,  251,  252,
1378      253,  254,  263,  264,  265,  266,  267,  255,  256,  268,
1379      269,  270,  271,  272,  273,  274,  275,  277,  257,  258,
1380      259,  260,  261,  261,  262,  278,  279,  280,  281,  282,
1381      263,  264,  265,  266,  267,  283,  284,  268,  269,  270,
1382      271,  272,  273,  274,  275,  277,  285,  286,  287,  287,
1383      287,  287,  288,  278,  279,  280,  281,  282,  289,  290,
1384
1385      287,  291,  292,  283,  284,  294,  295,  296,  297,  298,
1386      299,  300,  301,  302,  285,  286,  303,  304,  305,  306,
1387      288,  307,  308,  309,  310,  311,  289,  290,  287,  291,
1388      292,  314,  315,  294,  295,  296,  297,  298,  299,  300,
1389      301,  302,  316,  317,  303,  304,  305,  306,  318,  307,
1390      308,  309,  310,  311,  313,  319,  320,  321,  313,  314,
1391      315,  322,  323,  324,  325,  326,  327,  328,  329,  330,
1392      316,  317,  331,  332,  323,  334,  318,  335,  336,  337,
1393      338,  339,  313,  319,  320,  321,  313,  336,  340,  322,
1394      323,  324,  325,  326,  327,  328,  329,  330,  341,  342,
1395
1396      331,  332,  323,  334,  343,  335,  336,  337,  338,  339,
1397      344,  345,  348,  349,  351,  336,  340,  352,  353,  353,
1398      354,  355,  357,  359,  360,  362,  341,  342,  365,  527,
1399      527,  527,  343,  536,  536,  536,  374,  375,  344,  345,
1400      348,  349,  351,  378,  379,  352,  353,  353,  354,  355,
1401      357,  359,  360,  362,  380,  382,  365,  366,  366,  366,
1402      366,  372,  372,  372,  374,  375,  384,  382,  385,  366,
1403      386,  378,  379,  387, 1452,  388,  392,  392,  392,  393,
1404      394,  408,  380,  382,  388,  372,  395,  395,  395,  395,
1405      409,  411,  413,  414,  384,  382,  385,  366,  386,  415,
1406
1407      417,  387,  392,  388,  418,  419,  421,  393,  394,  408,
1408      422,  423,  388,  372,  412,  412,  412,  412,  409,  411,
1409      413,  414,  425,  423,  424,  424,  426,  415,  417,  427,
1410      392,  428,  418,  419,  421,  429,  430,  431,  422,  423,
1411      432,  433,  436,  437,  438,  439,  440,  441,  442,  444,
1412      425,  423,  424,  424,  426,  446,  447,  427,  448,  428,
1413      449,  450,  451,  429,  430,  431,  452,  453,  432,  433,
1414      436,  437,  438,  439,  440,  441,  442,  444,  454,  455,
1415      457,  458,  459,  446,  447,  460,  448,  461,  449,  450,
1416      451,  463,  464,  465,  452,  453,  467,  455,  468,  469,
1417
1418      470,  471,  472,  473,  474,  475,  454,  455,  457,  458,
1419      459,  476,  477,  460,  478,  461,  479,  480,  481,  463,
1420      464,  465,  482,  483,  467,  455,  468,  469,  470,  471,
1421      472,  473,  474,  475,  484,  485,  486,  487,  488,  476,
1422      477,  490,  478,  489,  479,  480,  481,  489,  491,  492,
1423      482,  483,  493,  494,  495,  496,  498,  499,  501,  558,
1424      558,  558,  484,  485,  486,  487,  488,  503,  501,  490,
1425      504,  489,  505,  506,  507,  489,  491,  492,  508,  509,
1426      493,  494,  495,  496,  498,  499,  501,  502,  502,  502,
1427      502,  510,  512,  513,  517,  503,  501,  520,  504,  522,
1428
1429      505,  506,  507,  521,  521,  523,  508,  509,  516,  516,
1430      516,  516,  524,  526,  529,  531,  533,  543,  546,  510,
1431      512,  513,  517,  547,  548,  520,  550,  522,  552,  553,
1432      556,  521,  521,  523,  555,  555,  555,  555,  564,  578,
1433      524,  526,  529,  531,  533,  543,  546,  579,  580,  581,
1434      582,  547,  548,  583,  550,  584,  552,  553,  556,  586,
1435      587,  589,  590,  592,  593,  594,  564,  578,  596,  597,
1436      598,  599,  600,  601,  602,  579,  580,  581,  582,  603,
1437      605,  583,  606,  584,  607, 1451, 1450,  586,  587,  589,
1438      590,  592,  593,  594,  610,  611,  596,  597,  598,  599,
1439
1440      600,  601,  602,  604,  604,  604,  604,  603,  605,  612,
1441      606,  613,  607,  609,  609,  609,  609,  614,  615,  617,
1442      622,  624,  610,  611,  618,  618,  618,  618,  619,  619,
1443      619,  619,  620,  620,  620,  620,  623,  612,  625,  613,
1444      621,  621,  621,  621,  626,  614,  615,  617,  622,  624,
1445      623,  627,  628,  629,  630,  631,  632,  633,  634,  635,
1446      636,  637,  638,  639,  623,  640,  625,  641,  642,  643,
1447      633,  644,  626,  645,  646,  647,  648,  649,  623,  627,
1448      628,  629,  630,  631,  632,  633,  634,  635,  636,  637,
1449      638,  639,  650,  640,  652,  641,  642,  643,  633,  644,
1450
1451      653,  645,  646,  647,  648,  649,  655,  656,  657,  658,
1452      659,  660,  661,  662,  663,  665,  666,  667,  668,  669,
1453      650,  670,  652,  671,  672,  675,  677,  678,  653,  679,
1454      680,  687,  689,  690,  655,  656,  657,  658,  659,  660,
1455      661,  662,  663,  665,  666,  667,  668,  669,  691,  670,
1456      695,  671,  672,  675,  677,  678,  713,  679,  680,  687,
1457      689,  690,  700,  700,  700,  700,  709,  709,  709,  710,
1458      710,  710,  711,  711,  711,  715,  691,  716,  695,  717,
1459      719,  721,  722,  723,  713,  739,  740,  741,  742,  742,
1460      742,  742,  743,  743,  743,  743,  744,  744,  744,  744,
1461
1462      747,  748,  749,  715,  751,  716,  752,  717,  719,  721,
1463      722,  723,  753,  739,  740,  741,  745,  745,  745,  745,
1464      754,  755,  756,  758,  759,  760,  762,  763,  747,  748,
1465      749,  764,  751,  765,  752,  761,  761,  761,  761,  766,
1466      753,  767,  769,  770,  771,  772,  774,  775,  754,  755,
1467      756,  758,  759,  760,  762,  763,  776,  777,  779,  764,
1468      796,  765,  797,  799,  801,  802,  803,  766,  804,  767,
1469      769,  770,  771,  772,  774,  775,  805,  806,  807,  808,
1470      809,  810,  811,  812,  776,  777,  779,  813,  796,  815,
1471      797,  799,  801,  802,  803,  816,  804,  817,  818,  820,
1472
1473      821,  822,  823,  824,  805,  806,  807,  808,  809,  810,
1474      811,  812,  825,  829,  832,  813,  834,  815,  835,  836,
1475      837,  838,  839,  816,  840,  817,  818,  820,  821,  822,
1476      823,  824,  841,  841,  841,  841,  842,  842,  842,  842,
1477      825,  829,  832,  845,  834,  846,  835,  836,  837,  838,
1478      839,  848,  840,  843,  843,  843,  843,  844,  844,  844,
1479      844,  849,  850,  852,  848,  853,  854,  855,  856,  856,
1480      856,  845,  873,  846,  857,  857,  857,  874,  876,  848,
1481      858,  858,  858,  859,  859,  859,  859,  878,  881,  849,
1482      850,  852,  848,  853,  854,  855,  882,  890,  891,  892,
1483
1484      873,  909,  911,  912,  913,  874,  876,  914,  915,  874,
1485      916,  917,  919,  913,  921,  878,  881,  922,  923,  924,
1486      925, 1189, 1189, 1189,  882,  890,  891,  892, 1419,  909,
1487      911,  912,  913, 1418, 1417,  914,  915,  931,  916,  917,
1488      919, 1416,  921, 1415, 1414,  922,  923,  924,  925,  926,
1489      926,  926,  926,  927,  927,  927,  927,  928,  928,  928,
1490      928,  929,  929,  929,  929,  931,  932,  932,  932,  932,
1491      933,  933,  933,  933,  934,  934,  934,  934,  935,  935,
1492      935,  935,  937,  938,  939,  940,  941,  943,  945,  946,
1493      947,  948,  949,  950,  951,  952,  953,  956,  957,  958,
1494
1495      959,  960,  961,  962,  963,  964,  965, 1413, 1412, 1411,
1496      937,  938,  939,  940,  941,  943,  945,  946,  947,  948,
1497      949,  950,  951,  952,  953,  956,  957,  958,  959,  960,
1498      961,  962,  963,  964,  965,  966,  966,  966,  967,  968,
1499      969,  971, 1410,  972,  974,  966,  973,  973,  973,  976,
1500      994,  995,  996,  998, 1000, 1001,  973, 1016, 1409, 1408,
1501     1407,  966, 1406, 1405, 1403, 1026,  967,  968,  969,  971,
1502      966,  972,  974,  966, 1027, 1028, 1029,  976,  994,  995,
1503      996,  998, 1000, 1001,  973, 1016, 1018, 1018, 1018,  966,
1504     1020, 1020, 1020, 1026, 1031, 1402, 1018, 1032, 1033, 1034,
1505
1506     1020, 1035, 1027, 1028, 1029, 1036, 1038, 1039, 1040, 1040,
1507     1040, 1040, 1018, 1041, 1041, 1041, 1041, 1042, 1042, 1042,
1508     1042, 1018, 1031, 1018, 1018, 1032, 1033, 1034, 1020, 1035,
1509     1060, 1078, 1079, 1036, 1038, 1039, 1043, 1043, 1043, 1043,
1510     1018, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1088, 1089,
1511     1090, 1091, 1092, 1093, 1094, 1096, 1097, 1098, 1060, 1078,
1512     1079, 1100, 1101, 1102, 1103, 1104, 1105, 1401, 1107, 1080,
1513     1081, 1082, 1083, 1084, 1085, 1086, 1088, 1089, 1090, 1091,
1514     1092, 1093, 1094, 1096, 1097, 1098, 1108, 1109, 1110, 1100,
1515     1101, 1102, 1103, 1104, 1105, 1106, 1107, 1111, 1112, 1114,
1516
1517     1115, 1106, 1116, 1117, 1118, 1121, 1122, 1128, 1128, 1128,
1518     1129, 1131, 1132, 1133, 1108, 1109, 1110, 1400, 1135, 1137,
1519     1137, 1137, 1118, 1106, 1135, 1111, 1112, 1114, 1115, 1106,
1520     1116, 1117, 1118, 1121, 1122, 1139, 1140, 1141, 1129, 1131,
1521     1132, 1133, 1142, 1143, 1128, 1128, 1135, 1144, 1145, 1146,
1522     1118, 1147, 1135, 1148, 1149, 1150, 1137, 1137, 1167, 1168,
1523     1169, 1170, 1171, 1139, 1140, 1141, 1173, 1175, 1176, 1177,
1524     1142, 1143, 1178, 1179, 1180, 1144, 1145, 1146, 1181, 1147,
1525     1183, 1148, 1149, 1150, 1184, 1185, 1167, 1168, 1169, 1170,
1526     1171, 1187, 1188, 1193, 1173, 1175, 1176, 1177, 1194, 1195,
1527
1528     1178, 1179, 1180, 1196, 1197, 1198, 1181, 1199, 1183, 1201,
1529     1202, 1204, 1184, 1185, 1205, 1206, 1207, 1208, 1216, 1187,
1530     1188, 1193, 1202, 1222, 1229, 1399, 1194, 1195, 1230, 1232,
1531     1233, 1196, 1197, 1198, 1234, 1199, 1219, 1201, 1202, 1204,
1532     1235, 1236, 1205, 1206, 1207, 1208, 1216, 1238, 1219, 1239,
1533     1202, 1222, 1229, 1219, 1219, 1240, 1230, 1232, 1233, 1241,
1534     1242, 1243, 1234, 1247, 1248, 1249, 1251, 1252, 1235, 1236,
1535     1253, 1254, 1255, 1256, 1257, 1238, 1258, 1239, 1259, 1260,
1536     1261, 1262, 1263, 1240, 1264, 1265, 1267, 1241, 1242, 1243,
1537     1268, 1247, 1248, 1249, 1251, 1252, 1270, 1271, 1253, 1254,
1538
1539     1255, 1256, 1257, 1272, 1258, 1273, 1259, 1260, 1261, 1262,
1540     1263, 1274, 1264, 1265, 1267, 1275, 1276, 1277, 1268, 1283,
1541     1291, 1298, 1299, 1294, 1270, 1271, 1300, 1301, 1302, 1303,
1542     1304, 1272, 1305, 1273, 1306, 1294, 1307, 1308, 1309, 1274,
1543     1294, 1311, 1312, 1275, 1276, 1277, 1314, 1283, 1291, 1298,
1544     1299, 1317, 1319, 1320, 1300, 1301, 1302, 1303, 1304, 1321,
1545     1305, 1322, 1306, 1323, 1307, 1308, 1309, 1325, 1327, 1311,
1546     1312, 1328, 1329, 1331, 1314, 1333, 1334, 1335, 1336, 1317,
1547     1319, 1320, 1337, 1339, 1340, 1341, 1348, 1321, 1363, 1322,
1548     1365, 1323, 1367, 1368, 1369, 1325, 1327, 1370, 1398, 1328,
1549
1550     1329, 1331, 1374, 1333, 1334, 1335, 1336, 1375, 1376, 1377,
1551     1337, 1339, 1340, 1341, 1348, 1378, 1363, 1379, 1365, 1380,
1552     1367, 1368, 1369, 1371, 1381, 1370, 1371, 1382, 1383, 1384,
1553     1374, 1385, 1387, 1388, 1389, 1375, 1376, 1377, 1390, 1391,
1554     1392, 1393, 1394, 1378, 1395, 1379, 1396, 1380, 1404, 1420,
1555     1421, 1371, 1381, 1423, 1371, 1382, 1383, 1384, 1425, 1385,
1556     1387, 1388, 1389, 1426, 1427, 1428, 1390, 1391, 1392, 1393,
1557     1394, 1429, 1395, 1432, 1396, 1433, 1404, 1420, 1421, 1434,
1558     1435, 1423, 1436, 1437, 1438, 1439, 1425, 1441, 1442, 1444,
1559     1445, 1426, 1427, 1428, 1446, 1447, 1448, 1449, 1472, 1429,
1560
1561     1473, 1432, 1474, 1433, 1475, 1476, 1477, 1434, 1435, 1479,
1562     1436, 1437, 1438, 1439, 1480, 1441, 1442, 1444, 1445, 1481,
1563     1482, 1483, 1446, 1447, 1448, 1449, 1472, 1484, 1473, 1485,
1564     1474, 1486, 1475, 1476, 1477, 1487, 1488, 1479, 1489, 1492,
1565     1493, 1516, 1480, 1517, 1518, 1519, 1520, 1481, 1482, 1483,
1566     1521, 1524, 1525, 1526, 1527, 1484, 1528, 1485, 1529, 1486,
1567     1530, 1531, 1532, 1487, 1488, 1533, 1489, 1492, 1493, 1516,
1568     1534, 1517, 1518, 1519, 1520, 1551, 1552, 1554, 1521, 1524,
1569     1525, 1526, 1527, 1555, 1528, 1559, 1529, 1560, 1530, 1531,
1570     1532, 1563, 1578, 1533, 1580, 1582, 1583, 1584, 1534, 1594,
1571
1572     1595, 1596, 1598, 1551, 1552, 1554, 1603, 1604, 1606, 1611,
1573     1612, 1555, 1613, 1559, 1617, 1560, 1618, 1619, 1622, 1563,
1574     1578, 1362, 1580, 1582, 1583, 1584, 1361, 1594, 1595, 1596,
1575     1598, 1360, 1359, 1358, 1603, 1604, 1606, 1611, 1612, 1357,
1576     1613, 1355, 1617, 1354, 1618, 1619, 1622, 1627, 1627, 1627,
1577     1627, 1628, 1628, 1628, 1628, 1630, 1353, 1352, 1630, 1631,
1578     1351, 1631, 1631, 1632, 1350, 1632, 1632, 1349, 1347, 1346,
1579     1345, 1344, 1343, 1342, 1318, 1297, 1296, 1293, 1290, 1289,
1580     1288, 1287, 1286, 1285, 1284, 1282, 1281, 1278, 1266, 1228,
1581     1227, 1226, 1225, 1224, 1223, 1221, 1215, 1214, 1213, 1212,
1582
1583     1211, 1200, 1136, 1134, 1130, 1127, 1124, 1022, 1019, 1017,
1584     1014, 1013,  999,  930,  889,  887,  884,  883,  879,  872,
1585      861,  860,  851,  830,  750,  738,  736,  735,  734,  730,
1586      728,  724,  720,  718,  712,  708,  704,  703,  694,  693,
1587      692,  688,  682,  595,  577,  576,  575,  573,  572,  571,
1588      570,  569,  566,  559,  557,  551,  549,  544,  542,  541,
1589      540,  539,  537,  535,  534,  532,  515,  407,  406,  405,
1590      404,  403,  402,  401,  400,  399,  398,  397,  396,  391,
1591      390,  389,  383,  381,  376,  373,  371,  370,  369,  368,
1592      367,  364,  361,  358,  356,  350,  347,  312,  246,  241,
1593
1594      240,  239,  238,  237,  235,  234,  232,  222,  221,  214,
1595      212,  203,  200,  199,  198,  195,  189,  187,  181,  178,
1596      102,   98,   83,   82,   81,   80,   77,   71,   22,   15,
1597       13,   11,    7,    6,    5, 1626, 1626, 1626, 1626, 1626,
1598     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1599     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1600     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1601     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1602     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1603     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1604
1605     1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
1606     1626, 1626, 1626
1607    } ;
1608
1609/* The intent behind this definition is that it'll catch
1610 * any uses of REJECT which flex missed.
1611 */
1612#define REJECT reject_used_but_not_detected
1613#define yymore() yymore_used_but_not_detected
1614#define YY_MORE_ADJ 0
1615#define YY_RESTORE_YY_MORE_OFFSET
1616#line 1 "gpu/lolfx-scanner.l"
1617#line 2 "gpu/lolfx-scanner.l"
1618//
1619// Lol Engine
1620//
1621// Copyright: (c) 2010-2012 Sam Hocevar <sam@hocevar.net>
1622//   This program is free software; you can redistribute it and/or
1623//   modify it under the terms of the Do What The Fuck You Want To
1624//   Public License, Version 2, as published by Sam Hocevar. See
1625//   http://www.wtfpl.net/ for more details.
1626//
1627
1628#if defined HAVE_CONFIG_H
1629#   include "config.h"
1630#endif
1631
1632#include <cstdlib>
1633using std::exit;
1634using std::malloc;
1635using std::realloc;
1636using std::free;
1637#include <iostream>
1638
1639#include "core.h"
1640#include "gpu/lolfx-compiler.h"
1641
1642typedef lol::LolFxParser::token token;
1643typedef lol::LolFxParser::token_type token_type;
1644
1645#ifndef YY_DECL
1646#   define YY_DECL lol::LolFxParser::token_type \
1647        lol::LolFxScanner::lex(lol::LolFxParser::semantic_type* yylval, \
1648                               lol::LolFxParser::location_type* yylloc)
1649#endif
1650
1651#define yyterminate() return token::T_END
1652#define YY_NO_UNISTD_H
1653#define YY_USER_ACTION yylloc->columns(yyleng);
1654
1655
1656#line 1657 "generated/lolfx-scanner.cpp"
1657
1658#define INITIAL 0
1659#define C_COMMENT 1
1660#define CPP_COMMENT 2
1661
1662#ifndef YY_NO_UNISTD_H
1663/* Special case for "unistd.h", since it is non-ANSI. We include it way
1664 * down here because we want the user's section 1 to have been scanned first.
1665 * The user has a chance to override it with an option.
1666 */
1667#include <unistd.h>
1668#endif
1669
1670#ifndef YY_EXTRA_TYPE
1671#define YY_EXTRA_TYPE void *
1672#endif
1673
1674#ifndef yytext_ptr
1675static void yy_flex_strncpy (char *,yyconst char *,int );
1676#endif
1677
1678#ifdef YY_NEED_STRLEN
1679static int yy_flex_strlen (yyconst char * );
1680#endif
1681
1682#ifndef YY_NO_INPUT
1683
1684#endif
1685
1686/* Amount of stuff to slurp up with each read. */
1687#ifndef YY_READ_BUF_SIZE
1688#ifdef __ia64__
1689/* On IA-64, the buffer size is 16k, not 8k */
1690#define YY_READ_BUF_SIZE 16384
1691#else
1692#define YY_READ_BUF_SIZE 8192
1693#endif /* __ia64__ */
1694#endif
1695
1696/* Copy whatever the last rule matched to the standard output. */
1697#ifndef ECHO
1698#define ECHO LexerOutput( yytext, yyleng )
1699#endif
1700
1701/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1702 * is returned in "result".
1703 */
1704#ifndef YY_INPUT
1705#define YY_INPUT(buf,result,max_size) \
1706\
1707        if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
1708                YY_FATAL_ERROR( "input in flex scanner failed" );
1709
1710#endif
1711
1712/* No semi-colon after return; correct usage is to write "yyterminate();" -
1713 * we don't want an extra ';' after the "return" because that will cause
1714 * some compilers to complain about unreachable statements.
1715 */
1716#ifndef yyterminate
1717#define yyterminate() return YY_NULL
1718#endif
1719
1720/* Number of entries by which start-condition stack grows. */
1721#ifndef YY_START_STACK_INCR
1722#define YY_START_STACK_INCR 25
1723#endif
1724
1725/* Report a fatal error. */
1726#ifndef YY_FATAL_ERROR
1727#define YY_FATAL_ERROR(msg) LexerError( msg )
1728#endif
1729
1730/* end tables serialization structures and prototypes */
1731
1732/* Default declaration of generated scanner - a define so the user can
1733 * easily add parameters.
1734 */
1735#ifndef YY_DECL
1736#define YY_DECL_IS_OURS 1
1737#define YY_DECL int yyFlexLexer::yylex()
1738#endif /* !YY_DECL */
1739
1740/* Code executed at the beginning of each rule, after yytext and yyleng
1741 * have been set up.
1742 */
1743#ifndef YY_USER_ACTION
1744#define YY_USER_ACTION
1745#endif
1746
1747/* Code executed at the end of each rule. */
1748#ifndef YY_BREAK
1749#define YY_BREAK break;
1750#endif
1751
1752#define YY_RULE_SETUP \
1753        YY_USER_ACTION
1754
1755/** The main scanner function which does all the work.
1756 */
1757YY_DECL
1758{
1759        register yy_state_type yy_current_state;
1760        register char *yy_cp, *yy_bp;
1761        register int yy_act;
1762   
1763#line 46 "gpu/lolfx-scanner.l"
1764
1765
1766
1767    /* reset location at the beginning of yylex() */
1768    yylloc->step();
1769
1770    int language_guess = INITIAL;
1771
1772
1773 /*
1774  * GLSL keywords
1775  */
1776
1777#line 1778 "generated/lolfx-scanner.cpp"
1778
1779        if ( !(yy_init) )
1780                {
1781                (yy_init) = 1;
1782
1783#ifdef YY_USER_INIT
1784                YY_USER_INIT;
1785#endif
1786
1787                if ( ! (yy_start) )
1788                        (yy_start) = 1; /* first start state */
1789
1790                if ( ! yyin )
1791                        yyin = & std::cin;
1792
1793                if ( ! yyout )
1794                        yyout = & std::cout;
1795
1796                if ( ! YY_CURRENT_BUFFER ) {
1797                        yyensure_buffer_stack ();
1798                        YY_CURRENT_BUFFER_LVALUE =
1799                                yy_create_buffer( yyin, YY_BUF_SIZE );
1800                }
1801
1802                yy_load_buffer_state(  );
1803                }
1804
1805        while ( 1 )             /* loops until end-of-file is reached */
1806                {
1807                yy_cp = (yy_c_buf_p);
1808
1809                /* Support of yytext. */
1810                *yy_cp = (yy_hold_char);
1811
1812                /* yy_bp points to the position in yy_ch_buf of the start of
1813                 * the current run.
1814                 */
1815                yy_bp = yy_cp;
1816
1817                yy_current_state = (yy_start);
1818yy_match:
1819                do
1820                        {
1821                        register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1822                        if ( yy_accept[yy_current_state] )
1823                                {
1824                                (yy_last_accepting_state) = yy_current_state;
1825                                (yy_last_accepting_cpos) = yy_cp;
1826                                }
1827                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1828                                {
1829                                yy_current_state = (int) yy_def[yy_current_state];
1830                                if ( yy_current_state >= 1627 )
1831                                        yy_c = yy_meta[(unsigned int) yy_c];
1832                                }
1833                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1834                        ++yy_cp;
1835                        }
1836                while ( yy_current_state != 1626 );
1837                yy_cp = (yy_last_accepting_cpos);
1838                yy_current_state = (yy_last_accepting_state);
1839
1840yy_find_action:
1841                yy_act = yy_accept[yy_current_state];
1842
1843                YY_DO_BEFORE_ACTION;
1844
1845do_action:      /* This label is used only to access EOF actions. */
1846
1847                switch ( yy_act )
1848        { /* beginning of action switch */
1849                        case 0: /* must back up */
1850                        /* undo the effects of YY_DO_BEFORE_ACTION */
1851                        *yy_cp = (yy_hold_char);
1852                        yy_cp = (yy_last_accepting_cpos);
1853                        yy_current_state = (yy_last_accepting_state);
1854                        goto yy_find_action;
1855
1856case 1:
1857YY_RULE_SETUP
1858#line 59 "gpu/lolfx-scanner.l"
1859{ return token::GT_SUBROUTINE; }
1860        YY_BREAK
1861case 2:
1862YY_RULE_SETUP
1863#line 60 "gpu/lolfx-scanner.l"
1864{ return token::GT_PATCH; }
1865        YY_BREAK
1866case 3:
1867YY_RULE_SETUP
1868#line 61 "gpu/lolfx-scanner.l"
1869{ return token::GT_SAMPLE; }
1870        YY_BREAK
1871case 4:
1872YY_RULE_SETUP
1873#line 62 "gpu/lolfx-scanner.l"
1874{ return token::GT_FLAT; }
1875        YY_BREAK
1876case 5:
1877YY_RULE_SETUP
1878#line 63 "gpu/lolfx-scanner.l"
1879{ return token::GT_SMOOTH; }
1880        YY_BREAK
1881case 6:
1882YY_RULE_SETUP
1883#line 64 "gpu/lolfx-scanner.l"
1884{ return token::GT_LAYOUT; }
1885        YY_BREAK
1886case 7:
1887YY_RULE_SETUP
1888#line 65 "gpu/lolfx-scanner.l"
1889{ return token::GT_SAMPLER1DSHADOW; }
1890        YY_BREAK
1891case 8:
1892YY_RULE_SETUP
1893#line 66 "gpu/lolfx-scanner.l"
1894{ return token::GT_SAMPLER2DSHADOW; }
1895        YY_BREAK
1896case 9:
1897YY_RULE_SETUP
1898#line 67 "gpu/lolfx-scanner.l"
1899{ return token::GT_SAMPLERCUBESHADOW; }
1900        YY_BREAK
1901case 10:
1902YY_RULE_SETUP
1903#line 68 "gpu/lolfx-scanner.l"
1904{ return token::GT_SAMPLER1DARRAY; }
1905        YY_BREAK
1906case 11:
1907YY_RULE_SETUP
1908#line 69 "gpu/lolfx-scanner.l"
1909{ return token::GT_SAMPLER2DARRAY; }
1910        YY_BREAK
1911case 12:
1912YY_RULE_SETUP
1913#line 70 "gpu/lolfx-scanner.l"
1914{ return token::GT_SAMPLER1DARRAYSHADOW; }
1915        YY_BREAK
1916case 13:
1917YY_RULE_SETUP
1918#line 71 "gpu/lolfx-scanner.l"
1919{ return token::GT_SAMPLER2DARRAYSHADOW; }
1920        YY_BREAK
1921case 14:
1922YY_RULE_SETUP
1923#line 72 "gpu/lolfx-scanner.l"
1924{ return token::GT_ISAMPLER1D; }
1925        YY_BREAK
1926case 15:
1927YY_RULE_SETUP
1928#line 73 "gpu/lolfx-scanner.l"
1929{ return token::GT_ISAMPLER2D; }
1930        YY_BREAK
1931case 16:
1932YY_RULE_SETUP
1933#line 74 "gpu/lolfx-scanner.l"
1934{ return token::GT_ISAMPLER3D; }
1935        YY_BREAK
1936case 17:
1937YY_RULE_SETUP
1938#line 75 "gpu/lolfx-scanner.l"
1939{ return token::GT_ISAMPLERCUBE; }
1940        YY_BREAK
1941case 18:
1942YY_RULE_SETUP
1943#line 76 "gpu/lolfx-scanner.l"
1944{ return token::GT_ISAMPLER1DARRAY; }
1945        YY_BREAK
1946case 19:
1947YY_RULE_SETUP
1948#line 77 "gpu/lolfx-scanner.l"
1949{ return token::GT_ISAMPLER2DARRAY; }
1950        YY_BREAK
1951case 20:
1952YY_RULE_SETUP
1953#line 78 "gpu/lolfx-scanner.l"
1954{ return token::GT_USAMPLER1D; }
1955        YY_BREAK
1956case 21:
1957YY_RULE_SETUP
1958#line 79 "gpu/lolfx-scanner.l"
1959{ return token::GT_USAMPLER2D; }
1960        YY_BREAK
1961case 22:
1962YY_RULE_SETUP
1963#line 80 "gpu/lolfx-scanner.l"
1964{ return token::GT_USAMPLER3D; }
1965        YY_BREAK
1966case 23:
1967YY_RULE_SETUP
1968#line 81 "gpu/lolfx-scanner.l"
1969{ return token::GT_USAMPLERCUBE; }
1970        YY_BREAK
1971case 24:
1972YY_RULE_SETUP
1973#line 82 "gpu/lolfx-scanner.l"
1974{ return token::GT_USAMPLER1DARRAY; }
1975        YY_BREAK
1976case 25:
1977YY_RULE_SETUP
1978#line 83 "gpu/lolfx-scanner.l"
1979{ return token::GT_USAMPLER2DARRAY; }
1980        YY_BREAK
1981case 26:
1982YY_RULE_SETUP
1983#line 84 "gpu/lolfx-scanner.l"
1984{ return token::GT_SAMPLER2DRECT; }
1985        YY_BREAK
1986case 27:
1987YY_RULE_SETUP
1988#line 85 "gpu/lolfx-scanner.l"
1989{ return token::GT_SAMPLER2DRECTSHADOW; }
1990        YY_BREAK
1991case 28:
1992YY_RULE_SETUP
1993#line 86 "gpu/lolfx-scanner.l"
1994{ return token::GT_ISAMPLER2DRECT; }
1995        YY_BREAK
1996case 29:
1997YY_RULE_SETUP
1998#line 87 "gpu/lolfx-scanner.l"
1999{ return token::GT_USAMPLER2DRECT; }
2000        YY_BREAK
2001case 30:
2002YY_RULE_SETUP
2003#line 88 "gpu/lolfx-scanner.l"
2004{ return token::GT_SAMPLERBUFFER; }
2005        YY_BREAK
2006case 31:
2007YY_RULE_SETUP
2008#line 89 "gpu/lolfx-scanner.l"
2009{ return token::GT_ISAMPLERBUFFER; }
2010        YY_BREAK
2011case 32:
2012YY_RULE_SETUP
2013#line 90 "gpu/lolfx-scanner.l"
2014{ return token::GT_USAMPLERBUFFER; }
2015        YY_BREAK
2016case 33:
2017YY_RULE_SETUP
2018#line 91 "gpu/lolfx-scanner.l"
2019{ return token::GT_SAMPLERCUBEARRAY; }
2020        YY_BREAK
2021case 34:
2022YY_RULE_SETUP
2023#line 92 "gpu/lolfx-scanner.l"
2024{ return token::GT_SAMPLERCUBEARRAYSHADOW; }
2025        YY_BREAK
2026case 35:
2027YY_RULE_SETUP
2028#line 93 "gpu/lolfx-scanner.l"
2029{ return token::GT_ISAMPLERCUBEARRAY; }
2030        YY_BREAK
2031case 36:
2032YY_RULE_SETUP
2033#line 94 "gpu/lolfx-scanner.l"
2034{ return token::GT_USAMPLERCUBEARRAY; }
2035        YY_BREAK
2036case 37:
2037YY_RULE_SETUP
2038#line 95 "gpu/lolfx-scanner.l"
2039{ return token::GT_SAMPLER2DMS; }
2040        YY_BREAK
2041case 38:
2042YY_RULE_SETUP
2043#line 96 "gpu/lolfx-scanner.l"
2044{ return token::GT_ISAMPLER2DMS; }
2045        YY_BREAK
2046case 39:
2047YY_RULE_SETUP
2048#line 97 "gpu/lolfx-scanner.l"
2049{ return token::GT_USAMPLER2DMS; }
2050        YY_BREAK
2051case 40:
2052YY_RULE_SETUP
2053#line 98 "gpu/lolfx-scanner.l"
2054{ return token::GT_SAMPLER2DMSARRAY; }
2055        YY_BREAK
2056case 41:
2057YY_RULE_SETUP
2058#line 99 "gpu/lolfx-scanner.l"
2059{ return token::GT_ISAMPLER2DMSARRAY; }
2060        YY_BREAK
2061case 42:
2062YY_RULE_SETUP
2063#line 100 "gpu/lolfx-scanner.l"
2064{ return token::GT_USAMPLER2DMSARRAY; }
2065        YY_BREAK
2066case 43:
2067YY_RULE_SETUP
2068#line 102 "gpu/lolfx-scanner.l"
2069{ return token::GT_HIGHP; }
2070        YY_BREAK
2071case 44:
2072YY_RULE_SETUP
2073#line 103 "gpu/lolfx-scanner.l"
2074{ return token::GT_MEDIUMP; }
2075        YY_BREAK
2076case 45:
2077YY_RULE_SETUP
2078#line 104 "gpu/lolfx-scanner.l"
2079{ return token::GT_LOWP; }
2080        YY_BREAK
2081case 46:
2082YY_RULE_SETUP
2083#line 105 "gpu/lolfx-scanner.l"
2084{ return token::GT_PRECISION; }
2085        YY_BREAK
2086case 47:
2087YY_RULE_SETUP
2088#line 106 "gpu/lolfx-scanner.l"
2089{ return token::GT_INVARIANT; }
2090        YY_BREAK
2091/*
2092  * Deprecated GLSL keywords
2093  */
2094case 48:
2095YY_RULE_SETUP
2096#line 112 "gpu/lolfx-scanner.l"
2097{ return token::GT_ATTRIBUTE; }
2098        YY_BREAK
2099case 49:
2100YY_RULE_SETUP
2101#line 113 "gpu/lolfx-scanner.l"
2102{ return token::GT_VARYING; }
2103        YY_BREAK
2104/*
2105  * GLSL vector types
2106  */
2107case 50:
2108YY_RULE_SETUP
2109#line 119 "gpu/lolfx-scanner.l"
2110{ return token::GT_BVEC2; }
2111        YY_BREAK
2112case 51:
2113YY_RULE_SETUP
2114#line 120 "gpu/lolfx-scanner.l"
2115{ return token::GT_BVEC3; }
2116        YY_BREAK
2117case 52:
2118YY_RULE_SETUP
2119#line 121 "gpu/lolfx-scanner.l"
2120{ return token::GT_BVEC4; }
2121        YY_BREAK
2122case 53:
2123YY_RULE_SETUP
2124#line 123 "gpu/lolfx-scanner.l"
2125{ return token::GT_IVEC2; }
2126        YY_BREAK
2127case 54:
2128YY_RULE_SETUP
2129#line 124 "gpu/lolfx-scanner.l"
2130{ return token::GT_IVEC3; }
2131        YY_BREAK
2132case 55:
2133YY_RULE_SETUP
2134#line 125 "gpu/lolfx-scanner.l"
2135{ return token::GT_IVEC4; }
2136        YY_BREAK
2137case 56:
2138YY_RULE_SETUP
2139#line 127 "gpu/lolfx-scanner.l"
2140{ return token::GT_UVEC2; }
2141        YY_BREAK
2142case 57:
2143YY_RULE_SETUP
2144#line 128 "gpu/lolfx-scanner.l"
2145{ return token::GT_UVEC3; }
2146        YY_BREAK
2147case 58:
2148YY_RULE_SETUP
2149#line 129 "gpu/lolfx-scanner.l"
2150{ return token::GT_UVEC4; }
2151        YY_BREAK
2152case 59:
2153YY_RULE_SETUP
2154#line 131 "gpu/lolfx-scanner.l"
2155{ return token::GT_VEC2; }
2156        YY_BREAK
2157case 60:
2158YY_RULE_SETUP
2159#line 132 "gpu/lolfx-scanner.l"
2160{ return token::GT_VEC3; }
2161        YY_BREAK
2162case 61:
2163YY_RULE_SETUP
2164#line 133 "gpu/lolfx-scanner.l"
2165{ return token::GT_VEC4; }
2166        YY_BREAK
2167case 62:
2168YY_RULE_SETUP
2169#line 134 "gpu/lolfx-scanner.l"
2170{ return token::GT_MAT2; }
2171        YY_BREAK
2172case 63:
2173YY_RULE_SETUP
2174#line 135 "gpu/lolfx-scanner.l"
2175{ return token::GT_MAT2X2; }
2176        YY_BREAK
2177case 64:
2178YY_RULE_SETUP
2179#line 136 "gpu/lolfx-scanner.l"
2180{ return token::GT_MAT2X3; }
2181        YY_BREAK
2182case 65:
2183YY_RULE_SETUP
2184#line 137 "gpu/lolfx-scanner.l"
2185{ return token::GT_MAT2X4; }
2186        YY_BREAK
2187case 66:
2188YY_RULE_SETUP
2189#line 138 "gpu/lolfx-scanner.l"
2190{ return token::GT_MAT3; }
2191        YY_BREAK
2192case 67:
2193YY_RULE_SETUP
2194#line 139 "gpu/lolfx-scanner.l"
2195{ return token::GT_MAT3X2; }
2196        YY_BREAK
2197case 68:
2198YY_RULE_SETUP
2199#line 140 "gpu/lolfx-scanner.l"
2200{ return token::GT_MAT3X3; }
2201        YY_BREAK
2202case 69:
2203YY_RULE_SETUP
2204#line 141 "gpu/lolfx-scanner.l"
2205{ return token::GT_MAT3X4; }
2206        YY_BREAK
2207case 70:
2208YY_RULE_SETUP
2209#line 142 "gpu/lolfx-scanner.l"
2210{ return token::GT_MAT4; }
2211        YY_BREAK
2212case 71:
2213YY_RULE_SETUP
2214#line 143 "gpu/lolfx-scanner.l"
2215{ return token::GT_MAT4X2; }
2216        YY_BREAK
2217case 72:
2218YY_RULE_SETUP
2219#line 144 "gpu/lolfx-scanner.l"
2220{ return token::GT_MAT4X3; }
2221        YY_BREAK
2222case 73:
2223YY_RULE_SETUP
2224#line 145 "gpu/lolfx-scanner.l"
2225{ return token::GT_MAT4X4; }
2226        YY_BREAK
2227case 74:
2228YY_RULE_SETUP
2229#line 147 "gpu/lolfx-scanner.l"
2230{ return token::GT_DVEC2; }
2231        YY_BREAK
2232case 75:
2233YY_RULE_SETUP
2234#line 148 "gpu/lolfx-scanner.l"
2235{ return token::GT_DVEC3; }
2236        YY_BREAK
2237case 76:
2238YY_RULE_SETUP
2239#line 149 "gpu/lolfx-scanner.l"
2240{ return token::GT_DVEC4; }
2241        YY_BREAK
2242case 77:
2243YY_RULE_SETUP
2244#line 150 "gpu/lolfx-scanner.l"
2245{ return token::GT_DMAT2; }
2246        YY_BREAK
2247case 78:
2248YY_RULE_SETUP
2249#line 151 "gpu/lolfx-scanner.l"
2250{ return token::GT_DMAT2X2; }
2251        YY_BREAK
2252case 79:
2253YY_RULE_SETUP
2254#line 152 "gpu/lolfx-scanner.l"
2255{ return token::GT_DMAT2X3; }
2256        YY_BREAK
2257case 80:
2258YY_RULE_SETUP
2259#line 153 "gpu/lolfx-scanner.l"
2260{ return token::GT_DMAT2X4; }
2261        YY_BREAK
2262case 81:
2263YY_RULE_SETUP
2264#line 154 "gpu/lolfx-scanner.l"
2265{ return token::GT_DMAT3; }
2266        YY_BREAK
2267case 82:
2268YY_RULE_SETUP
2269#line 155 "gpu/lolfx-scanner.l"
2270{ return token::GT_DMAT3X2; }
2271        YY_BREAK
2272case 83:
2273YY_RULE_SETUP
2274#line 156 "gpu/lolfx-scanner.l"
2275{ return token::GT_DMAT3X3; }
2276        YY_BREAK
2277case 84:
2278YY_RULE_SETUP
2279#line 157 "gpu/lolfx-scanner.l"
2280{ return token::GT_DMAT3X4; }
2281        YY_BREAK
2282case 85:
2283YY_RULE_SETUP
2284#line 158 "gpu/lolfx-scanner.l"
2285{ return token::GT_DMAT4; }
2286        YY_BREAK
2287case 86:
2288YY_RULE_SETUP
2289#line 159 "gpu/lolfx-scanner.l"
2290{ return token::GT_DMAT4X2; }
2291        YY_BREAK
2292case 87:
2293YY_RULE_SETUP
2294#line 160 "gpu/lolfx-scanner.l"
2295{ return token::GT_DMAT4X3; }
2296        YY_BREAK
2297case 88:
2298YY_RULE_SETUP
2299#line 161 "gpu/lolfx-scanner.l"
2300{ return token::GT_DMAT4X4; }
2301        YY_BREAK
2302/*
2303  * GLSL constant values
2304  */
2305case 89:
2306YY_RULE_SETUP
2307#line 167 "gpu/lolfx-scanner.l"
2308{ yylval->ival = 1; return token::BOOLCONSTANT; }
2309        YY_BREAK
2310case 90:
2311YY_RULE_SETUP
2312#line 168 "gpu/lolfx-scanner.l"
2313{ yylval->ival = 0; return token::BOOLCONSTANT; }
2314        YY_BREAK
2315/*
2316  * GLSL keywords that are also valid or reserved in HLSL
2317  * and HLSL keywords that are also valid or reserved in GLSL.
2318  */
2319case 91:
2320YY_RULE_SETUP
2321#line 175 "gpu/lolfx-scanner.l"
2322{ return token::GHT_BOOL; }
2323        YY_BREAK
2324case 92:
2325YY_RULE_SETUP
2326#line 176 "gpu/lolfx-scanner.l"
2327{ return token::GHT_BREAK; }
2328        YY_BREAK
2329case 93:
2330YY_RULE_SETUP
2331#line 177 "gpu/lolfx-scanner.l"
2332{ return token::GHT_CASE; }
2333        YY_BREAK
2334case 94:
2335YY_RULE_SETUP
2336#line 178 "gpu/lolfx-scanner.l"
2337{ return token::GHT_CENTROID; }
2338        YY_BREAK
2339case 95:
2340YY_RULE_SETUP
2341#line 179 "gpu/lolfx-scanner.l"
2342{ return token::GHT_CONST; }
2343        YY_BREAK
2344case 96:
2345YY_RULE_SETUP
2346#line 180 "gpu/lolfx-scanner.l"
2347{ return token::GHT_CONTINUE; }
2348        YY_BREAK
2349case 97:
2350YY_RULE_SETUP
2351#line 181 "gpu/lolfx-scanner.l"
2352{ return token::GHT_DEFAULT; }
2353        YY_BREAK
2354case 98:
2355YY_RULE_SETUP
2356#line 182 "gpu/lolfx-scanner.l"
2357{ return token::GHT_DISCARD; }
2358        YY_BREAK
2359case 99:
2360YY_RULE_SETUP
2361#line 183 "gpu/lolfx-scanner.l"
2362{ return token::GHT_DO; }
2363        YY_BREAK
2364case 100:
2365YY_RULE_SETUP
2366#line 184 "gpu/lolfx-scanner.l"
2367{ return token::GHT_DOUBLE; }
2368        YY_BREAK
2369case 101:
2370YY_RULE_SETUP
2371#line 185 "gpu/lolfx-scanner.l"
2372{ return token::GHT_ELSE; }
2373        YY_BREAK
2374case 102:
2375YY_RULE_SETUP
2376#line 186 "gpu/lolfx-scanner.l"
2377{ return token::GHT_FLOAT; }
2378        YY_BREAK
2379case 103:
2380YY_RULE_SETUP
2381#line 187 "gpu/lolfx-scanner.l"
2382{ return token::GHT_FOR; }
2383        YY_BREAK
2384case 104:
2385YY_RULE_SETUP
2386#line 188 "gpu/lolfx-scanner.l"
2387{ return token::GHT_IF; }
2388        YY_BREAK
2389case 105:
2390YY_RULE_SETUP
2391#line 189 "gpu/lolfx-scanner.l"
2392{ return token::GHT_IN; }
2393        YY_BREAK
2394case 106:
2395YY_RULE_SETUP
2396#line 190 "gpu/lolfx-scanner.l"
2397{ return token::GHT_INOUT; }
2398        YY_BREAK
2399case 107:
2400YY_RULE_SETUP
2401#line 191 "gpu/lolfx-scanner.l"
2402{ return token::GHT_INT; }
2403        YY_BREAK
2404case 108:
2405YY_RULE_SETUP
2406#line 192 "gpu/lolfx-scanner.l"
2407{ return token::GHT_NOPERSPECTIVE; }
2408        YY_BREAK
2409case 109:
2410YY_RULE_SETUP
2411#line 193 "gpu/lolfx-scanner.l"
2412{ return token::GHT_OUT; }
2413        YY_BREAK
2414case 110:
2415YY_RULE_SETUP
2416#line 194 "gpu/lolfx-scanner.l"
2417{ return token::GHT_RETURN; }
2418        YY_BREAK
2419case 111:
2420YY_RULE_SETUP
2421#line 195 "gpu/lolfx-scanner.l"
2422{ return token::GHT_SAMPLER1D; }
2423        YY_BREAK
2424case 112:
2425YY_RULE_SETUP
2426#line 196 "gpu/lolfx-scanner.l"
2427{ return token::GHT_SAMPLER2D; }
2428        YY_BREAK
2429case 113:
2430YY_RULE_SETUP
2431#line 197 "gpu/lolfx-scanner.l"
2432{ return token::GHT_SAMPLER3D; }
2433        YY_BREAK
2434case 114:
2435YY_RULE_SETUP
2436#line 198 "gpu/lolfx-scanner.l"
2437{ return token::GHT_SAMPLERCUBE; }
2438        YY_BREAK
2439case 115:
2440YY_RULE_SETUP
2441#line 199 "gpu/lolfx-scanner.l"
2442{ return token::GHT_STRUCT; }
2443        YY_BREAK
2444case 116:
2445YY_RULE_SETUP
2446#line 200 "gpu/lolfx-scanner.l"
2447{ return token::GHT_SWITCH; }
2448        YY_BREAK
2449case 117:
2450YY_RULE_SETUP
2451#line 201 "gpu/lolfx-scanner.l"
2452{ return token::GHT_UINT; }
2453        YY_BREAK
2454case 118:
2455YY_RULE_SETUP
2456#line 202 "gpu/lolfx-scanner.l"
2457{ return token::GHT_UNIFORM; }
2458        YY_BREAK
2459case 119:
2460YY_RULE_SETUP
2461#line 203 "gpu/lolfx-scanner.l"
2462{ return token::GHT_VOID; }
2463        YY_BREAK
2464case 120:
2465YY_RULE_SETUP
2466#line 204 "gpu/lolfx-scanner.l"
2467{ return token::GHT_WHILE; }
2468        YY_BREAK
2469case 121:
2470YY_RULE_SETUP
2471#line 206 "gpu/lolfx-scanner.l"
2472{ return token::HGT_BOOL; }
2473        YY_BREAK
2474case 122:
2475YY_RULE_SETUP
2476#line 207 "gpu/lolfx-scanner.l"
2477{ return token::HGT_BREAK; }
2478        YY_BREAK
2479case 123:
2480YY_RULE_SETUP
2481#line 208 "gpu/lolfx-scanner.l"
2482{ return token::HGT_CASE; }
2483        YY_BREAK
2484case 124:
2485YY_RULE_SETUP
2486#line 209 "gpu/lolfx-scanner.l"
2487{ return token::HGT_CENTROID; }
2488        YY_BREAK
2489case 125:
2490YY_RULE_SETUP
2491#line 210 "gpu/lolfx-scanner.l"
2492{ return token::HGT_CONST; }
2493        YY_BREAK
2494case 126:
2495YY_RULE_SETUP
2496#line 211 "gpu/lolfx-scanner.l"
2497{ return token::HGT_CONTINUE; }
2498        YY_BREAK
2499case 127:
2500YY_RULE_SETUP
2501#line 212 "gpu/lolfx-scanner.l"
2502{ return token::HGT_DEFAULT; }
2503        YY_BREAK
2504case 128:
2505YY_RULE_SETUP
2506#line 213 "gpu/lolfx-scanner.l"
2507{ return token::HGT_DISCARD; }
2508        YY_BREAK
2509case 129:
2510YY_RULE_SETUP
2511#line 214 "gpu/lolfx-scanner.l"
2512{ return token::HGT_DO; }
2513        YY_BREAK
2514case 130:
2515YY_RULE_SETUP
2516#line 215 "gpu/lolfx-scanner.l"
2517{ return token::HGT_DOUBLE; }
2518        YY_BREAK
2519case 131:
2520YY_RULE_SETUP
2521#line 216 "gpu/lolfx-scanner.l"
2522{ return token::HGT_ELSE; }
2523        YY_BREAK
2524case 132:
2525YY_RULE_SETUP
2526#line 217 "gpu/lolfx-scanner.l"
2527{ return token::HGT_FLOAT; }
2528        YY_BREAK
2529case 133:
2530YY_RULE_SETUP
2531#line 218 "gpu/lolfx-scanner.l"
2532{ return token::HGT_FOR; }
2533        YY_BREAK
2534case 134:
2535YY_RULE_SETUP
2536#line 219 "gpu/lolfx-scanner.l"
2537{ return token::HGT_IF; }
2538        YY_BREAK
2539case 135:
2540YY_RULE_SETUP
2541#line 220 "gpu/lolfx-scanner.l"
2542{ return token::HGT_IN; }
2543        YY_BREAK
2544case 136:
2545YY_RULE_SETUP
2546#line 221 "gpu/lolfx-scanner.l"
2547{ return token::HGT_INOUT; }
2548        YY_BREAK
2549case 137:
2550YY_RULE_SETUP
2551#line 222 "gpu/lolfx-scanner.l"
2552{ return token::HGT_INT; }
2553        YY_BREAK
2554case 138:
2555YY_RULE_SETUP
2556#line 223 "gpu/lolfx-scanner.l"
2557{ return token::HGT_NOPERSPECTIVE; }
2558        YY_BREAK
2559case 139:
2560YY_RULE_SETUP
2561#line 224 "gpu/lolfx-scanner.l"
2562{ return token::HGT_OUT; }
2563        YY_BREAK
2564case 140:
2565YY_RULE_SETUP
2566#line 225 "gpu/lolfx-scanner.l"
2567{ return token::HGT_RETURN; }
2568        YY_BREAK
2569case 141:
2570YY_RULE_SETUP
2571#line 226 "gpu/lolfx-scanner.l"
2572{ return token::HGT_SAMPLER1D; }
2573        YY_BREAK
2574case 142:
2575YY_RULE_SETUP
2576#line 227 "gpu/lolfx-scanner.l"
2577{ return token::HGT_SAMPLER2D; }
2578        YY_BREAK
2579case 143:
2580YY_RULE_SETUP
2581#line 228 "gpu/lolfx-scanner.l"
2582{ return token::HGT_SAMPLER3D; }
2583        YY_BREAK
2584case 144:
2585YY_RULE_SETUP
2586#line 229 "gpu/lolfx-scanner.l"
2587{ return token::HGT_SAMPLERCUBE; }
2588        YY_BREAK
2589case 145:
2590YY_RULE_SETUP
2591#line 230 "gpu/lolfx-scanner.l"
2592{ return token::HGT_STRUCT; }
2593        YY_BREAK
2594case 146:
2595YY_RULE_SETUP
2596#line 231 "gpu/lolfx-scanner.l"
2597{ return token::HGT_SWITCH; }
2598        YY_BREAK
2599case 147:
2600YY_RULE_SETUP
2601#line 232 "gpu/lolfx-scanner.l"
2602{ return token::HGT_UINT; }
2603        YY_BREAK
2604case 148:
2605YY_RULE_SETUP
2606#line 233 "gpu/lolfx-scanner.l"
2607{ return token::HGT_UNIFORM; }
2608        YY_BREAK
2609case 149:
2610YY_RULE_SETUP
2611#line 234 "gpu/lolfx-scanner.l"
2612{ return token::HGT_VOID; }
2613        YY_BREAK
2614case 150:
2615YY_RULE_SETUP
2616#line 235 "gpu/lolfx-scanner.l"
2617{ return token::HGT_WHILE; }
2618        YY_BREAK
2619/*
2620  * HLSL keywords
2621  * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb509568%28v=vs.85%29.aspx
2622  */
2623case 151:
2624YY_RULE_SETUP
2625#line 242 "gpu/lolfx-scanner.l"
2626{ return token::HT_APPENDSTRUCTUREDBUFFER; }
2627        YY_BREAK
2628case 152:
2629YY_RULE_SETUP
2630#line 243 "gpu/lolfx-scanner.l"
2631{ return token::HT_ASM; }
2632        YY_BREAK
2633case 153:
2634YY_RULE_SETUP
2635#line 244 "gpu/lolfx-scanner.l"
2636{ return token::HT_ASM_FRAGMENT; }
2637        YY_BREAK
2638case 154:
2639YY_RULE_SETUP
2640#line 245 "gpu/lolfx-scanner.l"
2641{ return token::HT_BLENDSTATE; }
2642        YY_BREAK
2643case 155:
2644YY_RULE_SETUP
2645#line 246 "gpu/lolfx-scanner.l"
2646{ return token::HT_BUFFER; }
2647        YY_BREAK
2648case 156:
2649YY_RULE_SETUP
2650#line 247 "gpu/lolfx-scanner.l"
2651{ return token::HT_BYTEADDRESSBUFFER; }
2652        YY_BREAK
2653case 157:
2654YY_RULE_SETUP
2655#line 248 "gpu/lolfx-scanner.l"
2656{ return token::HT_CBUFFER; }
2657        YY_BREAK
2658case 158:
2659YY_RULE_SETUP
2660#line 249 "gpu/lolfx-scanner.l"
2661{ return token::HT_COLUMN_MAJOR; }
2662        YY_BREAK
2663case 159:
2664YY_RULE_SETUP
2665#line 250 "gpu/lolfx-scanner.l"
2666{ return token::HT_COMPILE; }
2667        YY_BREAK
2668case 160:
2669YY_RULE_SETUP
2670#line 251 "gpu/lolfx-scanner.l"
2671{ return token::HT_COMPILE_FRAGMENT; }
2672        YY_BREAK
2673case 161:
2674YY_RULE_SETUP
2675#line 252 "gpu/lolfx-scanner.l"
2676{ return token::HT_COMPILESHADER; }
2677        YY_BREAK
2678case 162:
2679YY_RULE_SETUP
2680#line 253 "gpu/lolfx-scanner.l"
2681{ return token::HT_COMPUTESHADER; }
2682        YY_BREAK
2683case 163:
2684YY_RULE_SETUP
2685#line 254 "gpu/lolfx-scanner.l"
2686{ return token::HT_CONSUMESTRUCTUREDBUFFER; }
2687        YY_BREAK
2688case 164:
2689YY_RULE_SETUP
2690#line 255 "gpu/lolfx-scanner.l"
2691{ return token::HT_DEPTHSTENCILSTATE; }
2692        YY_BREAK
2693case 165:
2694YY_RULE_SETUP
2695#line 256 "gpu/lolfx-scanner.l"
2696{ return token::HT_DEPTHSTENCILVIEW; }
2697        YY_BREAK
2698case 166:
2699YY_RULE_SETUP
2700#line 257 "gpu/lolfx-scanner.l"
2701{ return token::HT_DOMAINSHADER; }
2702        YY_BREAK
2703case 167:
2704YY_RULE_SETUP
2705#line 258 "gpu/lolfx-scanner.l"
2706{ return token::HT_DWORD; }
2707        YY_BREAK
2708case 168:
2709YY_RULE_SETUP
2710#line 259 "gpu/lolfx-scanner.l"
2711{ return token::HT_EXTERN; }
2712        YY_BREAK
2713case 169:
2714YY_RULE_SETUP
2715#line 260 "gpu/lolfx-scanner.l"
2716{ return token::HT_FALSE; }
2717        YY_BREAK
2718case 170:
2719YY_RULE_SETUP
2720#line 261 "gpu/lolfx-scanner.l"
2721{ return token::HT_FXGROUP; }
2722        YY_BREAK
2723case 171:
2724YY_RULE_SETUP
2725#line 262 "gpu/lolfx-scanner.l"
2726{ return token::HT_GEOMETRYSHADER; }
2727        YY_BREAK
2728case 172:
2729YY_RULE_SETUP
2730#line 263 "gpu/lolfx-scanner.l"
2731{ return token::HT_GROUPSHARED; }
2732        YY_BREAK
2733case 173:
2734YY_RULE_SETUP
2735#line 264 "gpu/lolfx-scanner.l"
2736{ return token::HT_HALF; }
2737        YY_BREAK
2738case 174:
2739YY_RULE_SETUP
2740#line 265 "gpu/lolfx-scanner.l"
2741{ return token::HT_HULLSHADER; }
2742        YY_BREAK
2743case 175:
2744YY_RULE_SETUP
2745#line 266 "gpu/lolfx-scanner.l"
2746{ return token::HT_INLINE; }
2747        YY_BREAK
2748case 176:
2749YY_RULE_SETUP
2750#line 267 "gpu/lolfx-scanner.l"
2751{ return token::HT_INPUTPATCH; }
2752        YY_BREAK
2753case 177:
2754YY_RULE_SETUP
2755#line 268 "gpu/lolfx-scanner.l"
2756{ return token::HT_INTERFACE; }
2757        YY_BREAK
2758case 178:
2759YY_RULE_SETUP
2760#line 269 "gpu/lolfx-scanner.l"
2761{ return token::HT_LINE; }
2762        YY_BREAK
2763case 179:
2764YY_RULE_SETUP
2765#line 270 "gpu/lolfx-scanner.l"
2766{ return token::HT_LINEADJ; }
2767        YY_BREAK
2768case 180:
2769YY_RULE_SETUP
2770#line 271 "gpu/lolfx-scanner.l"
2771{ return token::HT_LINEAR; }
2772        YY_BREAK
2773case 181:
2774YY_RULE_SETUP
2775#line 272 "gpu/lolfx-scanner.l"
2776{ return token::HT_LINESTREAM; }
2777        YY_BREAK
2778case 182:
2779YY_RULE_SETUP
2780#line 273 "gpu/lolfx-scanner.l"
2781{ return token::HT_MATRIX; }
2782        YY_BREAK
2783case 183:
2784YY_RULE_SETUP
2785#line 274 "gpu/lolfx-scanner.l"
2786{ return token::HT_NAMESPACE; }
2787        YY_BREAK
2788case 184:
2789YY_RULE_SETUP
2790#line 275 "gpu/lolfx-scanner.l"
2791{ return token::HT_NOINTERPOLATION; }
2792        YY_BREAK
2793case 185:
2794YY_RULE_SETUP
2795#line 276 "gpu/lolfx-scanner.l"
2796{ return token::HT_NULL; }
2797        YY_BREAK
2798case 186:
2799YY_RULE_SETUP
2800#line 277 "gpu/lolfx-scanner.l"
2801{ return token::HT_OUTPUTPATCH; }
2802        YY_BREAK
2803case 187:
2804YY_RULE_SETUP
2805#line 278 "gpu/lolfx-scanner.l"
2806{ return token::HT_PACKOFFSET; }
2807        YY_BREAK
2808case 188:
2809YY_RULE_SETUP
2810#line 279 "gpu/lolfx-scanner.l"
2811{ return token::HT_PASS; }
2812        YY_BREAK
2813case 189:
2814YY_RULE_SETUP
2815#line 280 "gpu/lolfx-scanner.l"
2816{ return token::HT_PIXELFRAGMENT; }
2817        YY_BREAK
2818case 190:
2819YY_RULE_SETUP
2820#line 281 "gpu/lolfx-scanner.l"
2821{ return token::HT_PIXELSHADER; }
2822        YY_BREAK
2823case 191:
2824YY_RULE_SETUP
2825#line 282 "gpu/lolfx-scanner.l"
2826{ return token::HT_POINT; }
2827        YY_BREAK
2828case 192:
2829YY_RULE_SETUP
2830#line 283 "gpu/lolfx-scanner.l"
2831{ return token::HT_POINTSTREAM; }
2832        YY_BREAK
2833case 193:
2834YY_RULE_SETUP
2835#line 284 "gpu/lolfx-scanner.l"
2836{ return token::HT_PRECISE; }
2837        YY_BREAK
2838case 194:
2839YY_RULE_SETUP
2840#line 285 "gpu/lolfx-scanner.l"
2841{ return token::HT_RASTERIZERSTATE; }
2842        YY_BREAK
2843case 195:
2844YY_RULE_SETUP
2845#line 286 "gpu/lolfx-scanner.l"
2846{ return token::HT_RENDERTARGETVIEW; }
2847        YY_BREAK
2848case 196:
2849YY_RULE_SETUP
2850#line 287 "gpu/lolfx-scanner.l"
2851{ return token::HT_REGISTER; }
2852        YY_BREAK
2853case 197:
2854YY_RULE_SETUP
2855#line 288 "gpu/lolfx-scanner.l"
2856{ return token::HT_ROW_MAJOR; }
2857        YY_BREAK
2858case 198:
2859YY_RULE_SETUP
2860#line 289 "gpu/lolfx-scanner.l"
2861{ return token::HT_RWBUFFER; }
2862        YY_BREAK
2863case 199:
2864YY_RULE_SETUP
2865#line 290 "gpu/lolfx-scanner.l"
2866{ return token::HT_RWBYTEADDRESSBUFFER; }
2867        YY_BREAK
2868case 200:
2869YY_RULE_SETUP
2870#line 291 "gpu/lolfx-scanner.l"
2871{ return token::HT_RWSTRUCTUREDBUFFER; }
2872        YY_BREAK
2873case 201:
2874YY_RULE_SETUP
2875#line 292 "gpu/lolfx-scanner.l"
2876{ return token::HT_RWTEXTURE1D; }
2877        YY_BREAK
2878case 202:
2879YY_RULE_SETUP
2880#line 293 "gpu/lolfx-scanner.l"
2881{ return token::HT_RWTEXTURE1DARRAY; }
2882        YY_BREAK
2883case 203:
2884YY_RULE_SETUP
2885#line 294 "gpu/lolfx-scanner.l"
2886{ return token::HT_RWTEXTURE2D; }
2887        YY_BREAK
2888case 204:
2889YY_RULE_SETUP
2890#line 295 "gpu/lolfx-scanner.l"
2891{ return token::HT_RWTEXTURE2DARRAY; }
2892        YY_BREAK
2893case 205:
2894YY_RULE_SETUP
2895#line 296 "gpu/lolfx-scanner.l"
2896{ return token::HT_RWTEXTURE3D; }
2897        YY_BREAK
2898case 206:
2899YY_RULE_SETUP
2900#line 297 "gpu/lolfx-scanner.l"
2901{ return token::HT_SAMPLER; }
2902        YY_BREAK
2903case 207:
2904YY_RULE_SETUP
2905#line 298 "gpu/lolfx-scanner.l"
2906{ return token::HT_SAMPLER_STATE; }
2907        YY_BREAK
2908case 208:
2909YY_RULE_SETUP
2910#line 299 "gpu/lolfx-scanner.l"
2911{ return token::HT_SAMPLERSTATE; }
2912        YY_BREAK
2913case 209:
2914YY_RULE_SETUP
2915#line 300 "gpu/lolfx-scanner.l"
2916{ return token::HT_SAMPLERCOMPARISONSTATE; }
2917        YY_BREAK
2918case 210:
2919YY_RULE_SETUP
2920#line 301 "gpu/lolfx-scanner.l"
2921{ return token::HT_SHARED; }
2922        YY_BREAK
2923case 211:
2924YY_RULE_SETUP
2925#line 302 "gpu/lolfx-scanner.l"
2926{ return token::HT_SNORM; }
2927        YY_BREAK
2928case 212:
2929YY_RULE_SETUP
2930#line 303 "gpu/lolfx-scanner.l"
2931{ return token::HT_STATEBLOCK; }
2932        YY_BREAK
2933case 213:
2934YY_RULE_SETUP
2935#line 304 "gpu/lolfx-scanner.l"
2936{ return token::HT_STATEBLOCK_STATE; }
2937        YY_BREAK
2938case 214:
2939YY_RULE_SETUP
2940#line 305 "gpu/lolfx-scanner.l"
2941{ return token::HT_STATIC; }
2942        YY_BREAK
2943case 215:
2944YY_RULE_SETUP
2945#line 306 "gpu/lolfx-scanner.l"
2946{ return token::HT_STRING; }
2947        YY_BREAK
2948case 216:
2949YY_RULE_SETUP
2950#line 307 "gpu/lolfx-scanner.l"
2951{ return token::HT_STRUCTUREDBUFFER; }
2952        YY_BREAK
2953case 217:
2954YY_RULE_SETUP
2955#line 308 "gpu/lolfx-scanner.l"
2956{ return token::HT_TBUFFER; }
2957        YY_BREAK
2958case 218:
2959YY_RULE_SETUP
2960#line 309 "gpu/lolfx-scanner.l"
2961{ return token::HT_TECHNIQUE; }
2962        YY_BREAK
2963case 219:
2964YY_RULE_SETUP
2965#line 310 "gpu/lolfx-scanner.l"
2966{ return token::HT_TECHNIQUE10; }
2967        YY_BREAK
2968case 220:
2969YY_RULE_SETUP
2970#line 311 "gpu/lolfx-scanner.l"
2971{ return token::HT_TECHNIQUE11XZ; }
2972        YY_BREAK
2973case 221:
2974YY_RULE_SETUP
2975#line 312 "gpu/lolfx-scanner.l"
2976{ return token::HT_TEXTURE; }
2977        YY_BREAK
2978case 222:
2979YY_RULE_SETUP
2980#line 313 "gpu/lolfx-scanner.l"
2981{ return token::HT_TEXTURE1D; }
2982        YY_BREAK
2983case 223:
2984YY_RULE_SETUP
2985#line 314 "gpu/lolfx-scanner.l"
2986{ return token::HT_TEXTURE1DARRAY; }
2987        YY_BREAK
2988case 224:
2989YY_RULE_SETUP
2990#line 315 "gpu/lolfx-scanner.l"
2991{ return token::HT_TEXTURE2D; }
2992        YY_BREAK
2993case 225:
2994YY_RULE_SETUP
2995#line 316 "gpu/lolfx-scanner.l"
2996{ return token::HT_TEXTURE2DARRAY; }
2997        YY_BREAK
2998case 226:
2999YY_RULE_SETUP
3000#line 317 "gpu/lolfx-scanner.l"
3001{ return token::HT_TEXTURE2DMS; }
3002        YY_BREAK
3003case 227:
3004YY_RULE_SETUP
3005#line 318 "gpu/lolfx-scanner.l"
3006{ return token::HT_TEXTURE2DMSARRAY; }
3007        YY_BREAK
3008case 228:
3009YY_RULE_SETUP
3010#line 319 "gpu/lolfx-scanner.l"
3011{ return token::HT_TEXTURE3D; }
3012        YY_BREAK
3013case 229:
3014YY_RULE_SETUP
3015#line 320 "gpu/lolfx-scanner.l"
3016{ return token::HT_TEXTURECUBE; }
3017        YY_BREAK
3018case 230:
3019YY_RULE_SETUP
3020#line 321 "gpu/lolfx-scanner.l"
3021{ return token::HT_TEXTURECUBEARRAY; }
3022        YY_BREAK
3023case 231:
3024YY_RULE_SETUP
3025#line 322 "gpu/lolfx-scanner.l"
3026{ return token::HT_TRUE; }
3027        YY_BREAK
3028case 232:
3029YY_RULE_SETUP
3030#line 323 "gpu/lolfx-scanner.l"
3031{ return token::HT_TYPEDEF; }
3032        YY_BREAK
3033case 233:
3034YY_RULE_SETUP
3035#line 324 "gpu/lolfx-scanner.l"
3036{ return token::HT_TRIANGLE; }
3037        YY_BREAK
3038case 234:
3039YY_RULE_SETUP
3040#line 325 "gpu/lolfx-scanner.l"
3041{ return token::HT_TRIANGLEADJ; }
3042        YY_BREAK
3043case 235:
3044YY_RULE_SETUP
3045#line 326 "gpu/lolfx-scanner.l"
3046{ return token::HT_TRIANGLESTREAM; }
3047        YY_BREAK
3048case 236:
3049YY_RULE_SETUP
3050#line 327 "gpu/lolfx-scanner.l"
3051{ return token::HT_UNORM; }
3052        YY_BREAK
3053case 237:
3054YY_RULE_SETUP
3055#line 328 "gpu/lolfx-scanner.l"
3056{ return token::HT_VECTOR; }
3057        YY_BREAK
3058case 238:
3059YY_RULE_SETUP
3060#line 329 "gpu/lolfx-scanner.l"
3061{ return token::HT_VERTEXFRAGMENT; }
3062        YY_BREAK
3063case 239:
3064YY_RULE_SETUP
3065#line 330 "gpu/lolfx-scanner.l"
3066{ return token::HT_VERTEXSHADER; }
3067        YY_BREAK
3068case 240:
3069YY_RULE_SETUP
3070#line 331 "gpu/lolfx-scanner.l"
3071{ return token::HT_VOLATILE; }
3072        YY_BREAK
3073/*
3074  * HLSL vector types
3075  * TODO: this can probably be factored somehow
3076  */
3077case 241:
3078YY_RULE_SETUP
3079#line 338 "gpu/lolfx-scanner.l"
3080{ return token::HT_BOOL1; }
3081        YY_BREAK
3082case 242:
3083YY_RULE_SETUP
3084#line 339 "gpu/lolfx-scanner.l"
3085{ return token::HT_BOOL1x1; }
3086        YY_BREAK
3087case 243:
3088YY_RULE_SETUP
3089#line 340 "gpu/lolfx-scanner.l"
3090{ return token::HT_BOOL2x1; }
3091        YY_BREAK
3092case 244:
3093YY_RULE_SETUP
3094#line 341 "gpu/lolfx-scanner.l"
3095{ return token::HT_BOOL3x1; }
3096        YY_BREAK
3097case 245:
3098YY_RULE_SETUP
3099#line 342 "gpu/lolfx-scanner.l"
3100{ return token::HT_BOOL4x1; }
3101        YY_BREAK
3102case 246:
3103YY_RULE_SETUP
3104#line 343 "gpu/lolfx-scanner.l"
3105{ return token::HT_BOOL2; }
3106        YY_BREAK
3107case 247:
3108YY_RULE_SETUP
3109#line 344 "gpu/lolfx-scanner.l"
3110{ return token::HT_BOOL1x2; }
3111        YY_BREAK
3112case 248:
3113YY_RULE_SETUP
3114#line 345 "gpu/lolfx-scanner.l"
3115{ return token::HT_BOOL2x2; }
3116        YY_BREAK
3117case 249:
3118YY_RULE_SETUP
3119#line 346 "gpu/lolfx-scanner.l"
3120{ return token::HT_BOOL3x2; }
3121        YY_BREAK
3122case 250:
3123YY_RULE_SETUP
3124#line 347 "gpu/lolfx-scanner.l"
3125{ return token::HT_BOOL4x2; }
3126        YY_BREAK
3127case 251:
3128YY_RULE_SETUP
3129#line 348 "gpu/lolfx-scanner.l"
3130{ return token::HT_BOOL3; }
3131        YY_BREAK
3132case 252:
3133YY_RULE_SETUP
3134#line 349 "gpu/lolfx-scanner.l"
3135{ return token::HT_BOOL1x3; }
3136        YY_BREAK
3137case 253:
3138YY_RULE_SETUP
3139#line 350 "gpu/lolfx-scanner.l"
3140{ return token::HT_BOOL2x3; }
3141        YY_BREAK
3142case 254:
3143YY_RULE_SETUP
3144#line 351 "gpu/lolfx-scanner.l"
3145{ return token::HT_BOOL3x3; }
3146        YY_BREAK
3147case 255:
3148YY_RULE_SETUP
3149#line 352 "gpu/lolfx-scanner.l"
3150{ return token::HT_BOOL4x3; }
3151        YY_BREAK
3152case 256:
3153YY_RULE_SETUP
3154#line 353 "gpu/lolfx-scanner.l"
3155{ return token::HT_BOOL4; }
3156        YY_BREAK
3157case 257:
3158YY_RULE_SETUP
3159#line 354 "gpu/lolfx-scanner.l"
3160{ return token::HT_BOOL1x4; }
3161        YY_BREAK
3162case 258:
3163YY_RULE_SETUP
3164#line 355 "gpu/lolfx-scanner.l"
3165{ return token::HT_BOOL2x4; }
3166        YY_BREAK
3167case 259:
3168YY_RULE_SETUP
3169#line 356 "gpu/lolfx-scanner.l"
3170{ return token::HT_BOOL3x4; }
3171        YY_BREAK
3172case 260:
3173YY_RULE_SETUP
3174#line 357 "gpu/lolfx-scanner.l"
3175{ return token::HT_BOOL4x4; }
3176        YY_BREAK
3177case 261:
3178YY_RULE_SETUP
3179#line 359 "gpu/lolfx-scanner.l"
3180{ return token::HT_FLOAT1; }
3181        YY_BREAK
3182case 262:
3183YY_RULE_SETUP
3184#line 360 "gpu/lolfx-scanner.l"
3185{ return token::HT_FLOAT1x1; }
3186        YY_BREAK
3187case 263:
3188YY_RULE_SETUP
3189#line 361 "gpu/lolfx-scanner.l"
3190{ return token::HT_FLOAT2x1; }
3191        YY_BREAK
3192case 264:
3193YY_RULE_SETUP
3194#line 362 "gpu/lolfx-scanner.l"
3195{ return token::HT_FLOAT3x1; }
3196        YY_BREAK
3197case 265:
3198YY_RULE_SETUP
3199#line 363 "gpu/lolfx-scanner.l"
3200{ return token::HT_FLOAT4x1; }
3201        YY_BREAK
3202case 266:
3203YY_RULE_SETUP
3204#line 364 "gpu/lolfx-scanner.l"
3205{ return token::HT_FLOAT2; }
3206        YY_BREAK
3207case 267:
3208YY_RULE_SETUP
3209#line 365 "gpu/lolfx-scanner.l"
3210{ return token::HT_FLOAT1x2; }
3211        YY_BREAK
3212case 268:
3213YY_RULE_SETUP
3214#line 366 "gpu/lolfx-scanner.l"
3215{ return token::HT_FLOAT2x2; }
3216        YY_BREAK
3217case 269:
3218YY_RULE_SETUP
3219#line 367 "gpu/lolfx-scanner.l"
3220{ return token::HT_FLOAT3x2; }
3221        YY_BREAK
3222case 270:
3223YY_RULE_SETUP
3224#line 368 "gpu/lolfx-scanner.l"
3225{ return token::HT_FLOAT4x2; }
3226        YY_BREAK
3227case 271:
3228YY_RULE_SETUP
3229#line 369 "gpu/lolfx-scanner.l"
3230{ return token::HT_FLOAT3; }
3231        YY_BREAK
3232case 272:
3233YY_RULE_SETUP
3234#line 370 "gpu/lolfx-scanner.l"
3235{ return token::HT_FLOAT1x3; }
3236        YY_BREAK
3237case 273:
3238YY_RULE_SETUP
3239#line 371 "gpu/lolfx-scanner.l"
3240{ return token::HT_FLOAT2x3; }
3241        YY_BREAK
3242case 274:
3243YY_RULE_SETUP
3244#line 372 "gpu/lolfx-scanner.l"
3245{ return token::HT_FLOAT3x3; }
3246        YY_BREAK
3247case 275:
3248YY_RULE_SETUP
3249#line 373 "gpu/lolfx-scanner.l"
3250{ return token::HT_FLOAT4x3; }
3251        YY_BREAK
3252case 276:
3253YY_RULE_SETUP
3254#line 374 "gpu/lolfx-scanner.l"
3255{ return token::HT_FLOAT4; }
3256        YY_BREAK
3257case 277:
3258YY_RULE_SETUP
3259#line 375 "gpu/lolfx-scanner.l"
3260{ return token::HT_FLOAT1x4; }
3261        YY_BREAK
3262case 278:
3263YY_RULE_SETUP
3264#line 376 "gpu/lolfx-scanner.l"
3265{ return token::HT_FLOAT2x4; }
3266        YY_BREAK
3267case 279:
3268YY_RULE_SETUP
3269#line 377 "gpu/lolfx-scanner.l"
3270{ return token::HT_FLOAT3x4; }
3271        YY_BREAK
3272case 280:
3273YY_RULE_SETUP
3274#line 378 "gpu/lolfx-scanner.l"
3275{ return token::HT_FLOAT4x4; }
3276        YY_BREAK
3277case 281:
3278YY_RULE_SETUP
3279#line 380 "gpu/lolfx-scanner.l"
3280{ return token::HT_DOUBLE1; }
3281        YY_BREAK
3282case 282:
3283YY_RULE_SETUP
3284#line 381 "gpu/lolfx-scanner.l"
3285{ return token::HT_DOUBLE1x1; }
3286        YY_BREAK
3287case 283:
3288YY_RULE_SETUP
3289#line 382 "gpu/lolfx-scanner.l"
3290{ return token::HT_DOUBLE2x1; }
3291        YY_BREAK
3292case 284:
3293YY_RULE_SETUP
3294#line 383 "gpu/lolfx-scanner.l"
3295{ return token::HT_DOUBLE3x1; }
3296        YY_BREAK
3297case 285:
3298YY_RULE_SETUP
3299#line 384 "gpu/lolfx-scanner.l"
3300{ return token::HT_DOUBLE4x1; }
3301        YY_BREAK
3302case 286:
3303YY_RULE_SETUP
3304#line 385 "gpu/lolfx-scanner.l"
3305{ return token::HT_DOUBLE2; }
3306        YY_BREAK
3307case 287:
3308YY_RULE_SETUP
3309#line 386 "gpu/lolfx-scanner.l"
3310{ return token::HT_DOUBLE1x2; }
3311        YY_BREAK
3312case 288:
3313YY_RULE_SETUP
3314#line 387 "gpu/lolfx-scanner.l"
3315{ return token::HT_DOUBLE2x2; }
3316        YY_BREAK
3317case 289:
3318YY_RULE_SETUP
3319#line 388 "gpu/lolfx-scanner.l"
3320{ return token::HT_DOUBLE3x2; }
3321        YY_BREAK
3322case 290:
3323YY_RULE_SETUP
3324#line 389 "gpu/lolfx-scanner.l"
3325{ return token::HT_DOUBLE4x2; }
3326        YY_BREAK
3327case 291:
3328YY_RULE_SETUP
3329#line 390 "gpu/lolfx-scanner.l"
3330{ return token::HT_DOUBLE3; }
3331        YY_BREAK
3332case 292:
3333YY_RULE_SETUP
3334#line 391 "gpu/lolfx-scanner.l"
3335{ return token::HT_DOUBLE1x3; }
3336        YY_BREAK
3337case 293:
3338YY_RULE_SETUP
3339#line 392 "gpu/lolfx-scanner.l"
3340{ return token::HT_DOUBLE2x3; }
3341        YY_BREAK
3342case 294:
3343YY_RULE_SETUP
3344#line 393 "gpu/lolfx-scanner.l"
3345{ return token::HT_DOUBLE3x3; }
3346        YY_BREAK
3347case 295:
3348YY_RULE_SETUP
3349#line 394 "gpu/lolfx-scanner.l"
3350{ return token::HT_DOUBLE4x3; }
3351        YY_BREAK
3352case 296:
3353YY_RULE_SETUP
3354#line 395 "gpu/lolfx-scanner.l"
3355{ return token::HT_DOUBLE4; }
3356        YY_BREAK
3357case 297:
3358YY_RULE_SETUP
3359#line 396 "gpu/lolfx-scanner.l"
3360{ return token::HT_DOUBLE1x4; }
3361        YY_BREAK
3362case 298:
3363YY_RULE_SETUP
3364#line 397 "gpu/lolfx-scanner.l"
3365{ return token::HT_DOUBLE2x4; }
3366        YY_BREAK
3367case 299:
3368YY_RULE_SETUP
3369#line 398 "gpu/lolfx-scanner.l"
3370{ return token::HT_DOUBLE3x4; }
3371        YY_BREAK
3372case 300:
3373YY_RULE_SETUP
3374#line 399 "gpu/lolfx-scanner.l"
3375{ return token::HT_DOUBLE4x4; }
3376        YY_BREAK
3377case 301:
3378YY_RULE_SETUP
3379#line 401 "gpu/lolfx-scanner.l"
3380{ return token::HT_DWORD1; }
3381        YY_BREAK
3382case 302:
3383YY_RULE_SETUP
3384#line 402 "gpu/lolfx-scanner.l"
3385{ return token::HT_DWORD1x1; }
3386        YY_BREAK
3387case 303:
3388YY_RULE_SETUP
3389#line 403 "gpu/lolfx-scanner.l"
3390{ return token::HT_DWORD2x1; }
3391        YY_BREAK
3392case 304:
3393YY_RULE_SETUP
3394#line 404 "gpu/lolfx-scanner.l"
3395{ return token::HT_DWORD3x1; }
3396        YY_BREAK
3397case 305:
3398YY_RULE_SETUP
3399#line 405 "gpu/lolfx-scanner.l"
3400{ return token::HT_DWORD4x1; }
3401        YY_BREAK
3402case 306:
3403YY_RULE_SETUP
3404#line 406 "gpu/lolfx-scanner.l"
3405{ return token::HT_DWORD2; }
3406        YY_BREAK
3407case 307:
3408YY_RULE_SETUP
3409#line 407 "gpu/lolfx-scanner.l"
3410{ return token::HT_DWORD1x2; }
3411        YY_BREAK
3412case 308:
3413YY_RULE_SETUP
3414#line 408 "gpu/lolfx-scanner.l"
3415{ return token::HT_DWORD2x2; }
3416        YY_BREAK
3417case 309:
3418YY_RULE_SETUP
3419#line 409 "gpu/lolfx-scanner.l"
3420{ return token::HT_DWORD3x2; }
3421        YY_BREAK
3422case 310:
3423YY_RULE_SETUP
3424#line 410 "gpu/lolfx-scanner.l"
3425{ return token::HT_DWORD4x2; }
3426        YY_BREAK
3427case 311:
3428YY_RULE_SETUP
3429#line 411 "gpu/lolfx-scanner.l"
3430{ return token::HT_DWORD3; }
3431        YY_BREAK
3432case 312:
3433YY_RULE_SETUP
3434#line 412 "gpu/lolfx-scanner.l"
3435{ return token::HT_DWORD1x3; }
3436        YY_BREAK
3437case 313:
3438YY_RULE_SETUP
3439#line 413 "gpu/lolfx-scanner.l"
3440{ return token::HT_DWORD2x3; }
3441        YY_BREAK
3442case 314:
3443YY_RULE_SETUP
3444#line 414 "gpu/lolfx-scanner.l"
3445{ return token::HT_DWORD3x3; }
3446        YY_BREAK
3447case 315:
3448YY_RULE_SETUP
3449#line 415 "gpu/lolfx-scanner.l"
3450{ return token::HT_DWORD4x3; }
3451        YY_BREAK
3452case 316:
3453YY_RULE_SETUP
3454#line 416 "gpu/lolfx-scanner.l"
3455{ return token::HT_DWORD4; }
3456        YY_BREAK
3457case 317:
3458YY_RULE_SETUP
3459#line 417 "gpu/lolfx-scanner.l"
3460{ return token::HT_DWORD1x4; }
3461        YY_BREAK
3462case 318:
3463YY_RULE_SETUP
3464#line 418 "gpu/lolfx-scanner.l"
3465{ return token::HT_DWORD2x4; }
3466        YY_BREAK
3467case 319:
3468YY_RULE_SETUP
3469#line 419 "gpu/lolfx-scanner.l"
3470{ return token::HT_DWORD3x4; }
3471        YY_BREAK
3472case 320:
3473YY_RULE_SETUP
3474#line 420 "gpu/lolfx-scanner.l"
3475{ return token::HT_DWORD4x4; }
3476        YY_BREAK
3477case 321:
3478YY_RULE_SETUP
3479#line 422 "gpu/lolfx-scanner.l"
3480{ return token::HT_INT1; }
3481        YY_BREAK
3482case 322:
3483YY_RULE_SETUP
3484#line 423 "gpu/lolfx-scanner.l"
3485{ return token::HT_INT1x1; }
3486        YY_BREAK
3487case 323:
3488YY_RULE_SETUP
3489#line 424 "gpu/lolfx-scanner.l"
3490{ return token::HT_INT2x1; }
3491        YY_BREAK
3492case 324:
3493YY_RULE_SETUP
3494#line 425 "gpu/lolfx-scanner.l"
3495{ return token::HT_INT3x1; }
3496        YY_BREAK
3497case 325:
3498YY_RULE_SETUP
3499#line 426 "gpu/lolfx-scanner.l"
3500{ return token::HT_INT4x1; }
3501        YY_BREAK
3502case 326:
3503YY_RULE_SETUP
3504#line 427 "gpu/lolfx-scanner.l"
3505{ return token::HT_INT2; }
3506        YY_BREAK
3507case 327:
3508YY_RULE_SETUP
3509#line 428 "gpu/lolfx-scanner.l"
3510{ return token::HT_INT1x2; }
3511        YY_BREAK
3512case 328:
3513YY_RULE_SETUP
3514#line 429 "gpu/lolfx-scanner.l"
3515{ return token::HT_INT2x2; }
3516        YY_BREAK
3517case 329:
3518YY_RULE_SETUP
3519#line 430 "gpu/lolfx-scanner.l"
3520{ return token::HT_INT3x2; }
3521        YY_BREAK
3522case 330:
3523YY_RULE_SETUP
3524#line 431 "gpu/lolfx-scanner.l"
3525{ return token::HT_INT4x2; }
3526        YY_BREAK
3527case 331:
3528YY_RULE_SETUP
3529#line 432 "gpu/lolfx-scanner.l"
3530{ return token::HT_INT3; }
3531        YY_BREAK
3532case 332:
3533YY_RULE_SETUP
3534#line 433 "gpu/lolfx-scanner.l"
3535{ return token::HT_INT1x3; }
3536        YY_BREAK
3537case 333:
3538YY_RULE_SETUP
3539#line 434 "gpu/lolfx-scanner.l"
3540{ return token::HT_INT2x3; }
3541        YY_BREAK
3542case 334:
3543YY_RULE_SETUP
3544#line 435 "gpu/lolfx-scanner.l"
3545{ return token::HT_INT3x3; }
3546        YY_BREAK
3547case 335:
3548YY_RULE_SETUP
3549#line 436 "gpu/lolfx-scanner.l"
3550{ return token::HT_INT4x3; }
3551        YY_BREAK
3552case 336:
3553YY_RULE_SETUP
3554#line 437 "gpu/lolfx-scanner.l"
3555{ return token::HT_INT4; }
3556        YY_BREAK
3557case 337:
3558YY_RULE_SETUP
3559#line 438 "gpu/lolfx-scanner.l"
3560{ return token::HT_INT1x4; }
3561        YY_BREAK
3562case 338:
3563YY_RULE_SETUP
3564#line 439 "gpu/lolfx-scanner.l"
3565{ return token::HT_INT2x4; }
3566        YY_BREAK
3567case 339:
3568YY_RULE_SETUP
3569#line 440 "gpu/lolfx-scanner.l"
3570{ return token::HT_INT3x4; }
3571        YY_BREAK
3572case 340:
3573YY_RULE_SETUP
3574#line 441 "gpu/lolfx-scanner.l"
3575{ return token::HT_INT4x4; }
3576        YY_BREAK
3577case 341:
3578YY_RULE_SETUP
3579#line 443 "gpu/lolfx-scanner.l"
3580{ return token::HT_UINT1; }
3581        YY_BREAK
3582case 342:
3583YY_RULE_SETUP
3584#line 444 "gpu/lolfx-scanner.l"
3585{ return token::HT_UINT1x1; }
3586        YY_BREAK
3587case 343:
3588YY_RULE_SETUP
3589#line 445 "gpu/lolfx-scanner.l"
3590{ return token::HT_UINT2x1; }
3591        YY_BREAK
3592case 344:
3593YY_RULE_SETUP
3594#line 446 "gpu/lolfx-scanner.l"
3595{ return token::HT_UINT3x1; }
3596        YY_BREAK
3597case 345:
3598YY_RULE_SETUP
3599#line 447 "gpu/lolfx-scanner.l"
3600{ return token::HT_UINT4x1; }
3601        YY_BREAK
3602case 346:
3603YY_RULE_SETUP
3604#line 448 "gpu/lolfx-scanner.l"
3605{ return token::HT_UINT2; }
3606        YY_BREAK
3607case 347:
3608YY_RULE_SETUP
3609#line 449 "gpu/lolfx-scanner.l"
3610{ return token::HT_UINT1x2; }
3611        YY_BREAK
3612case 348:
3613YY_RULE_SETUP
3614#line 450 "gpu/lolfx-scanner.l"
3615{ return token::HT_UINT2x2; }
3616        YY_BREAK
3617case 349:
3618YY_RULE_SETUP
3619#line 451 "gpu/lolfx-scanner.l"
3620{ return token::HT_UINT3x2; }
3621        YY_BREAK
3622case 350:
3623YY_RULE_SETUP
3624#line 452 "gpu/lolfx-scanner.l"
3625{ return token::HT_UINT4x2; }
3626        YY_BREAK
3627case 351:
3628YY_RULE_SETUP
3629#line 453 "gpu/lolfx-scanner.l"
3630{ return token::HT_UINT3; }
3631        YY_BREAK
3632case 352:
3633YY_RULE_SETUP
3634#line 454 "gpu/lolfx-scanner.l"
3635{ return token::HT_UINT1x3; }
3636        YY_BREAK
3637case 353:
3638YY_RULE_SETUP
3639#line 455 "gpu/lolfx-scanner.l"
3640{ return token::HT_UINT2x3; }
3641        YY_BREAK
3642case 354:
3643YY_RULE_SETUP
3644#line 456 "gpu/lolfx-scanner.l"
3645{ return token::HT_UINT3x3; }
3646        YY_BREAK
3647case 355:
3648YY_RULE_SETUP
3649#line 457 "gpu/lolfx-scanner.l"
3650{ return token::HT_UINT4x3; }
3651        YY_BREAK
3652case 356:
3653YY_RULE_SETUP
3654#line 458 "gpu/lolfx-scanner.l"
3655{ return token::HT_UINT4; }
3656        YY_BREAK
3657case 357:
3658YY_RULE_SETUP
3659#line 459 "gpu/lolfx-scanner.l"
3660{ return token::HT_UINT1x4; }
3661        YY_BREAK
3662case 358:
3663YY_RULE_SETUP
3664#line 460 "gpu/lolfx-scanner.l"
3665{ return token::HT_UINT2x4; }
3666        YY_BREAK
3667case 359:
3668YY_RULE_SETUP
3669#line 461 "gpu/lolfx-scanner.l"
3670{ return token::HT_UINT3x4; }
3671        YY_BREAK
3672case 360:
3673YY_RULE_SETUP
3674#line 462 "gpu/lolfx-scanner.l"
3675{ return token::HT_UINT4x4; }
3676        YY_BREAK
3677/*
3678  * HLSL preprocessor directives
3679  * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb943993%28v=vs.85%29.aspx
3680  */
3681case 361:
3682YY_RULE_SETUP
3683#line 469 "gpu/lolfx-scanner.l"
3684{ return token::PREPROCESSOR_DEFINE; }
3685        YY_BREAK
3686case 362:
3687YY_RULE_SETUP
3688#line 470 "gpu/lolfx-scanner.l"
3689{ return token::PREPROCESSOR_ELIF; }
3690        YY_BREAK
3691case 363:
3692YY_RULE_SETUP
3693#line 471 "gpu/lolfx-scanner.l"
3694{ return token::PREPROCESSOR_ELSE; }
3695        YY_BREAK
3696case 364:
3697YY_RULE_SETUP
3698#line 472 "gpu/lolfx-scanner.l"
3699{ return token::PREPROCESSOR_ENDIF; }
3700        YY_BREAK
3701case 365:
3702YY_RULE_SETUP
3703#line 473 "gpu/lolfx-scanner.l"
3704{ return token::PREPROCESSOR_ERROR; }
3705        YY_BREAK
3706case 366:
3707YY_RULE_SETUP
3708#line 474 "gpu/lolfx-scanner.l"
3709{ return token::PREPROCESSOR_IF; }
3710        YY_BREAK
3711case 367:
3712YY_RULE_SETUP
3713#line 475 "gpu/lolfx-scanner.l"
3714{ return token::PREPROCESSOR_IFDEF; }
3715        YY_BREAK
3716case 368:
3717YY_RULE_SETUP
3718#line 476 "gpu/lolfx-scanner.l"
3719{ return token::PREPROCESSOR_IFNDEF; }
3720        YY_BREAK
3721case 369:
3722YY_RULE_SETUP
3723#line 477 "gpu/lolfx-scanner.l"
3724{ return token::PREPROCESSOR_INCLUDE; }
3725        YY_BREAK
3726case 370:
3727YY_RULE_SETUP
3728#line 478 "gpu/lolfx-scanner.l"
3729{ return token::PREPROCESSOR_LINE; }
3730        YY_BREAK
3731case 371:
3732YY_RULE_SETUP
3733#line 479 "gpu/lolfx-scanner.l"
3734{ return token::PREPROCESSOR_PRAGMA; }
3735        YY_BREAK
3736case 372:
3737YY_RULE_SETUP
3738#line 480 "gpu/lolfx-scanner.l"
3739{ return token::PREPROCESSOR_UNDEF; }
3740        YY_BREAK
3741/*
3742  * GLSL preprocessor directives
3743  */
3744case 373:
3745YY_RULE_SETUP
3746#line 486 "gpu/lolfx-scanner.l"
3747{ /* ignore for now */ }
3748        YY_BREAK
3749/*
3750  * HLSL reserved keywords
3751  * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb509569%28v=vs.85%29.aspx
3752  */
3753case 374:
3754YY_RULE_SETUP
3755#line 493 "gpu/lolfx-scanner.l"
3756{ return token::HT_AUTO; }
3757        YY_BREAK
3758case 375:
3759YY_RULE_SETUP
3760#line 494 "gpu/lolfx-scanner.l"
3761{ return token::HT_CATCH; }
3762        YY_BREAK
3763case 376:
3764YY_RULE_SETUP
3765#line 495 "gpu/lolfx-scanner.l"
3766{ return token::HT_CHAR; }
3767        YY_BREAK
3768case 377:
3769YY_RULE_SETUP
3770#line 496 "gpu/lolfx-scanner.l"
3771{ return token::HT_CLASS; }
3772        YY_BREAK
3773case 378:
3774YY_RULE_SETUP
3775#line 497 "gpu/lolfx-scanner.l"
3776{ return token::HT_CONST_CAST; }
3777        YY_BREAK
3778case 379:
3779YY_RULE_SETUP
3780#line 498 "gpu/lolfx-scanner.l"
3781{ return token::HT_DELETE; }
3782        YY_BREAK
3783case 380:
3784YY_RULE_SETUP
3785#line 499 "gpu/lolfx-scanner.l"
3786{ return token::HT_DYNAMIC_CAST; }
3787        YY_BREAK
3788case 381:
3789YY_RULE_SETUP
3790#line 500 "gpu/lolfx-scanner.l"
3791{ return token::HT_ENUM; }
3792        YY_BREAK
3793case 382:
3794YY_RULE_SETUP
3795#line 501 "gpu/lolfx-scanner.l"
3796{ return token::HT_EXPLICIT; }
3797        YY_BREAK
3798case 383:
3799YY_RULE_SETUP
3800#line 502 "gpu/lolfx-scanner.l"
3801{ return token::HT_FRIEND; }
3802        YY_BREAK
3803case 384:
3804YY_RULE_SETUP
3805#line 503 "gpu/lolfx-scanner.l"
3806{ return token::HT_GOTO; }
3807        YY_BREAK
3808case 385:
3809YY_RULE_SETUP
3810#line 504 "gpu/lolfx-scanner.l"
3811{ return token::HT_LONG; }
3812        YY_BREAK
3813case 386:
3814YY_RULE_SETUP
3815#line 505 "gpu/lolfx-scanner.l"
3816{ return token::HT_MUTABLE; }
3817        YY_BREAK
3818case 387:
3819YY_RULE_SETUP
3820#line 506 "gpu/lolfx-scanner.l"
3821{ return token::HT_NEW; }
3822        YY_BREAK
3823case 388:
3824YY_RULE_SETUP
3825#line 507 "gpu/lolfx-scanner.l"
3826{ return token::HT_OPERATOR; }
3827        YY_BREAK
3828case 389:
3829YY_RULE_SETUP
3830#line 508 "gpu/lolfx-scanner.l"
3831{ return token::HT_PRIVATE; }
3832        YY_BREAK
3833case 390:
3834YY_RULE_SETUP
3835#line 509 "gpu/lolfx-scanner.l"
3836{ return token::HT_PROTECTED; }
3837        YY_BREAK
3838case 391:
3839YY_RULE_SETUP
3840#line 510 "gpu/lolfx-scanner.l"
3841{ return token::HT_PUBLIC; }
3842        YY_BREAK
3843case 392:
3844YY_RULE_SETUP
3845#line 511 "gpu/lolfx-scanner.l"
3846{ return token::HT_REINTERPRET_CAST; }
3847        YY_BREAK
3848case 393:
3849YY_RULE_SETUP
3850#line 512 "gpu/lolfx-scanner.l"
3851{ return token::HT_SHORT; }
3852        YY_BREAK
3853case 394:
3854YY_RULE_SETUP
3855#line 513 "gpu/lolfx-scanner.l"
3856{ return token::HT_SIGNED; }
3857        YY_BREAK
3858case 395:
3859YY_RULE_SETUP
3860#line 514 "gpu/lolfx-scanner.l"
3861{ return token::HT_SIZEOF; }
3862        YY_BREAK
3863case 396:
3864YY_RULE_SETUP
3865#line 515 "gpu/lolfx-scanner.l"
3866{ return token::HT_STATIC_CAST; }
3867        YY_BREAK
3868case 397:
3869YY_RULE_SETUP
3870#line 516 "gpu/lolfx-scanner.l"
3871{ return token::HT_TEMPLATE; }
3872        YY_BREAK
3873case 398:
3874YY_RULE_SETUP
3875#line 517 "gpu/lolfx-scanner.l"
3876{ return token::HT_THIS; }
3877        YY_BREAK
3878case 399:
3879YY_RULE_SETUP
3880#line 518 "gpu/lolfx-scanner.l"
3881{ return token::HT_THROW; }
3882        YY_BREAK
3883case 400:
3884YY_RULE_SETUP
3885#line 519 "gpu/lolfx-scanner.l"
3886{ return token::HT_TRY; }
3887        YY_BREAK
3888case 401:
3889YY_RULE_SETUP
3890#line 520 "gpu/lolfx-scanner.l"
3891{ return token::HT_TYPENAME; }
3892        YY_BREAK
3893case 402:
3894YY_RULE_SETUP
3895#line 521 "gpu/lolfx-scanner.l"
3896{ return token::HT_UNION; }
3897        YY_BREAK
3898case 403:
3899YY_RULE_SETUP
3900#line 522 "gpu/lolfx-scanner.l"
3901{ return token::HT_UNSIGNED; }
3902        YY_BREAK
3903case 404:
3904YY_RULE_SETUP
3905#line 523 "gpu/lolfx-scanner.l"
3906{ return token::HT_USING; }
3907        YY_BREAK
3908case 405:
3909YY_RULE_SETUP
3910#line 524 "gpu/lolfx-scanner.l"
3911{ return token::HT_VIRTUAL; }
3912        YY_BREAK
3913/*
3914  * Various tokens
3915  */
3916case 406:
3917YY_RULE_SETUP
3918#line 530 "gpu/lolfx-scanner.l"
3919{ return token::T_INC; }
3920        YY_BREAK
3921case 407:
3922YY_RULE_SETUP
3923#line 531 "gpu/lolfx-scanner.l"
3924{ return token::T_DEC; }
3925        YY_BREAK
3926case 408:
3927YY_RULE_SETUP
3928#line 532 "gpu/lolfx-scanner.l"
3929{ return token::T_LE; }
3930        YY_BREAK
3931case 409:
3932YY_RULE_SETUP
3933#line 533 "gpu/lolfx-scanner.l"
3934{ return token::T_GE; }
3935        YY_BREAK
3936case 410:
3937YY_RULE_SETUP
3938#line 534 "gpu/lolfx-scanner.l"
3939{ return token::T_EQ; }
3940        YY_BREAK
3941case 411:
3942YY_RULE_SETUP
3943#line 535 "gpu/lolfx-scanner.l"
3944{ return token::T_NE; }
3945        YY_BREAK
3946case 412:
3947YY_RULE_SETUP
3948#line 536 "gpu/lolfx-scanner.l"
3949{ return token::T_LEFT; }
3950        YY_BREAK
3951case 413:
3952YY_RULE_SETUP
3953#line 537 "gpu/lolfx-scanner.l"
3954{ return token::T_RIGHT; }
3955        YY_BREAK
3956case 414:
3957YY_RULE_SETUP
3958#line 538 "gpu/lolfx-scanner.l"
3959{ return token::T_AND; }
3960        YY_BREAK
3961case 415:
3962YY_RULE_SETUP
3963#line 539 "gpu/lolfx-scanner.l"
3964{ return token::T_OR; }
3965        YY_BREAK
3966case 416:
3967YY_RULE_SETUP
3968#line 540 "gpu/lolfx-scanner.l"
3969{ return token::T_XOR; }
3970        YY_BREAK
3971case 417:
3972YY_RULE_SETUP
3973#line 542 "gpu/lolfx-scanner.l"
3974{ return token::T_MULEQ; }
3975        YY_BREAK
3976case 418:
3977YY_RULE_SETUP
3978#line 543 "gpu/lolfx-scanner.l"
3979{ return token::T_DIVEQ; }
3980        YY_BREAK
3981case 419:
3982YY_RULE_SETUP
3983#line 544 "gpu/lolfx-scanner.l"
3984{ return token::T_MODEQ; }
3985        YY_BREAK
3986case 420:
3987YY_RULE_SETUP
3988#line 545 "gpu/lolfx-scanner.l"
3989{ return token::T_ADDEQ; }
3990        YY_BREAK
3991case 421:
3992YY_RULE_SETUP
3993#line 546 "gpu/lolfx-scanner.l"
3994{ return token::T_SUBEQ; }
3995        YY_BREAK
3996case 422:
3997YY_RULE_SETUP
3998#line 547 "gpu/lolfx-scanner.l"
3999{ return token::T_LEFTEQ; }
4000        YY_BREAK
4001case 423:
4002YY_RULE_SETUP
4003#line 548 "gpu/lolfx-scanner.l"
4004{ return token::T_RIGHTEQ; }
4005        YY_BREAK
4006case 424:
4007YY_RULE_SETUP
4008#line 549 "gpu/lolfx-scanner.l"
4009{ return token::T_ANDEQ; }
4010        YY_BREAK
4011case 425:
4012YY_RULE_SETUP
4013#line 550 "gpu/lolfx-scanner.l"
4014{ return token::T_XOREQ; }
4015        YY_BREAK
4016case 426:
4017YY_RULE_SETUP
4018#line 551 "gpu/lolfx-scanner.l"
4019{ return token::T_OREQ; }
4020        YY_BREAK
4021case 427:
4022YY_RULE_SETUP
4023#line 553 "gpu/lolfx-scanner.l"
4024{
4025    yylval->fval = std::atof(yytext);
4026    return token::FLOATCONSTANT;
4027}
4028        YY_BREAK
4029case 428:
4030YY_RULE_SETUP
4031#line 557 "gpu/lolfx-scanner.l"
4032{
4033    yylval->uval = std::atoi(yytext);
4034    return token::UINTCONSTANT;
4035}
4036        YY_BREAK
4037case 429:
4038YY_RULE_SETUP
4039#line 561 "gpu/lolfx-scanner.l"
4040{
4041    yylval->ival = std::atoi(yytext);
4042    return token::INTCONSTANT;
4043}
4044        YY_BREAK
4045case 430:
4046YY_RULE_SETUP
4047#line 566 "gpu/lolfx-scanner.l"
4048{
4049    /* Copy token for now */
4050    yylval->sval = strdup(yytext);
4051    return token::FIELDSELECTION;
4052}
4053        YY_BREAK
4054case 431:
4055YY_RULE_SETUP
4056#line 572 "gpu/lolfx-scanner.l"
4057{
4058    /* Copy token for now */
4059    yylval->sval = strdup(yytext);
4060    return token::IDENTIFIER;
4061}
4062        YY_BREAK
4063case 432:
4064YY_RULE_SETUP
4065#line 578 "gpu/lolfx-scanner.l"
4066{ /* ignore whitespace */ }
4067        YY_BREAK
4068case 433:
4069/* rule 433 can match eol */
4070YY_RULE_SETUP
4071#line 579 "gpu/lolfx-scanner.l"
4072{ yylloc->lines(1); }
4073        YY_BREAK
4074case 434:
4075YY_RULE_SETUP
4076#line 580 "gpu/lolfx-scanner.l"
4077{ return (token_type)*yytext; /* accept all characters */ }
4078        YY_BREAK
4079/*
4080  * Ignore C comments
4081  */
4082case 435:
4083YY_RULE_SETUP
4084#line 586 "gpu/lolfx-scanner.l"
4085{ BEGIN(C_COMMENT); }
4086        YY_BREAK
4087case 436:
4088YY_RULE_SETUP
4089#line 587 "gpu/lolfx-scanner.l"
4090{ BEGIN(INITIAL); }
4091        YY_BREAK
4092case 437:
4093YY_RULE_SETUP
4094#line 588 "gpu/lolfx-scanner.l"
4095{ }
4096        YY_BREAK
4097case 438:
4098/* rule 438 can match eol */
4099YY_RULE_SETUP
4100#line 589 "gpu/lolfx-scanner.l"
4101{ yylloc->lines(1); }
4102        YY_BREAK
4103case 439:
4104YY_RULE_SETUP
4105#line 590 "gpu/lolfx-scanner.l"
4106{ }
4107        YY_BREAK
4108/*
4109  * Ignore C++ comments
4110  */
4111case 440:
4112YY_RULE_SETUP
4113#line 596 "gpu/lolfx-scanner.l"
4114{ BEGIN(CPP_COMMENT); }
4115        YY_BREAK
4116case 441:
4117/* rule 441 can match eol */
4118YY_RULE_SETUP
4119#line 597 "gpu/lolfx-scanner.l"
4120{ yylloc->lines(1); BEGIN(INITIAL); }
4121        YY_BREAK
4122case 442:
4123YY_RULE_SETUP
4124#line 598 "gpu/lolfx-scanner.l"
4125{ }
4126        YY_BREAK
4127case 443:
4128YY_RULE_SETUP
4129#line 600 "gpu/lolfx-scanner.l"
4130ECHO;
4131        YY_BREAK
4132#line 4133 "generated/lolfx-scanner.cpp"
4133case YY_STATE_EOF(INITIAL):
4134case YY_STATE_EOF(C_COMMENT):
4135case YY_STATE_EOF(CPP_COMMENT):
4136        yyterminate();
4137
4138        case YY_END_OF_BUFFER:
4139                {
4140                /* Amount of text matched not including the EOB char. */
4141                int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
4142
4143                /* Undo the effects of YY_DO_BEFORE_ACTION. */
4144                *yy_cp = (yy_hold_char);
4145                YY_RESTORE_YY_MORE_OFFSET
4146
4147                if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4148                        {
4149                        /* We're scanning a new file or input source.  It's
4150                         * possible that this happened because the user
4151                         * just pointed yyin at a new source and called
4152                         * yylex().  If so, then we have to assure
4153                         * consistency between YY_CURRENT_BUFFER and our
4154                         * globals.  Here is the right place to do so, because
4155                         * this is the first action (other than possibly a
4156                         * back-up) that will match for the new input source.
4157                         */
4158                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4159                        YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4160                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4161                        }
4162
4163                /* Note that here we test for yy_c_buf_p "<=" to the position
4164                 * of the first EOB in the buffer, since yy_c_buf_p will
4165                 * already have been incremented past the NUL character
4166                 * (since all states make transitions on EOB to the
4167                 * end-of-buffer state).  Contrast this with the test
4168                 * in input().
4169                 */
4170                if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4171                        { /* This was really a NUL. */
4172                        yy_state_type yy_next_state;
4173
4174                        (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
4175
4176                        yy_current_state = yy_get_previous_state(  );
4177
4178                        /* Okay, we're now positioned to make the NUL
4179                         * transition.  We couldn't have
4180                         * yy_get_previous_state() go ahead and do it
4181                         * for us because it doesn't know how to deal
4182                         * with the possibility of jamming (and we don't
4183                         * want to build jamming into it because then it
4184                         * will run more slowly).
4185                         */
4186
4187                        yy_next_state = yy_try_NUL_trans( yy_current_state );
4188
4189                        yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4190
4191                        if ( yy_next_state )
4192                                {
4193                                /* Consume the NUL. */
4194                                yy_cp = ++(yy_c_buf_p);
4195                                yy_current_state = yy_next_state;
4196                                goto yy_match;
4197                                }
4198
4199                        else
4200                                {
4201                                yy_cp = (yy_last_accepting_cpos);
4202                                yy_current_state = (yy_last_accepting_state);
4203                                goto yy_find_action;
4204                                }
4205                        }
4206
4207                else switch ( yy_get_next_buffer(  ) )
4208                        {
4209                        case EOB_ACT_END_OF_FILE:
4210                                {
4211                                (yy_did_buffer_switch_on_eof) = 0;
4212
4213                                if ( yywrap(  ) )
4214                                        {
4215                                        /* Note: because we've taken care in
4216                                         * yy_get_next_buffer() to have set up
4217                                         * yytext, we can now set up
4218                                         * yy_c_buf_p so that if some total
4219                                         * hoser (like flex itself) wants to
4220                                         * call the scanner after we return the
4221                                         * YY_NULL, it'll still work - another
4222                                         * YY_NULL will get returned.
4223                                         */
4224                                        (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
4225
4226                                        yy_act = YY_STATE_EOF(YY_START);
4227                                        goto do_action;
4228                                        }
4229
4230                                else
4231                                        {
4232                                        if ( ! (yy_did_buffer_switch_on_eof) )
4233                                                YY_NEW_FILE;
4234                                        }
4235                                break;
4236                                }
4237
4238                        case EOB_ACT_CONTINUE_SCAN:
4239                                (yy_c_buf_p) =
4240                                        (yytext_ptr) + yy_amount_of_matched_text;
4241
4242                                yy_current_state = yy_get_previous_state(  );
4243
4244                                yy_cp = (yy_c_buf_p);
4245                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4246                                goto yy_match;
4247
4248                        case EOB_ACT_LAST_MATCH:
4249                                (yy_c_buf_p) =
4250                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
4251
4252                                yy_current_state = yy_get_previous_state(  );
4253
4254                                yy_cp = (yy_c_buf_p);
4255                                yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4256                                goto yy_find_action;
4257                        }
4258                break;
4259                }
4260
4261        default:
4262                YY_FATAL_ERROR(
4263                        "fatal flex scanner internal error--no action found" );
4264        } /* end of action switch */
4265                } /* end of scanning one token */
4266} /* end of yylex */
4267
4268/* The contents of this function are C++ specific, so the () macro is not used.
4269 */
4270yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
4271{
4272        yyin = arg_yyin;
4273        yyout = arg_yyout;
4274        yy_c_buf_p = 0;
4275        yy_init = 0;
4276        yy_start = 0;
4277        yy_flex_debug = 0;
4278        yylineno = 1;   // this will only get updated if %option yylineno
4279
4280        yy_did_buffer_switch_on_eof = 0;
4281
4282        yy_looking_for_trail_begin = 0;
4283        yy_more_flag = 0;
4284        yy_more_len = 0;
4285        yy_more_offset = yy_prev_more_offset = 0;
4286
4287        yy_start_stack_ptr = yy_start_stack_depth = 0;
4288        yy_start_stack = NULL;
4289
4290        yy_buffer_stack = 0;
4291        yy_buffer_stack_top = 0;
4292        yy_buffer_stack_max = 0;
4293
4294        yy_state_buf = 0;
4295
4296}
4297
4298/* The contents of this function are C++ specific, so the () macro is not used.
4299 */
4300yyFlexLexer::~yyFlexLexer()
4301{
4302        delete [] yy_state_buf;
4303        LolFxfree(yy_start_stack  );
4304        yy_delete_buffer( YY_CURRENT_BUFFER );
4305        LolFxfree(yy_buffer_stack  );
4306}
4307
4308/* The contents of this function are C++ specific, so the () macro is not used.
4309 */
4310void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
4311{
4312        if ( new_in )
4313                {
4314                yy_delete_buffer( YY_CURRENT_BUFFER );
4315                yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE  ) );
4316                }
4317
4318        if ( new_out )
4319                yyout = new_out;
4320}
4321
4322#ifdef YY_INTERACTIVE
4323int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
4324#else
4325int yyFlexLexer::LexerInput( char* buf, int max_size )
4326#endif
4327{
4328        if ( yyin->eof() || yyin->fail() )
4329                return 0;
4330
4331#ifdef YY_INTERACTIVE
4332        yyin->get( buf[0] );
4333
4334        if ( yyin->eof() )
4335                return 0;
4336
4337        if ( yyin->bad() )
4338                return -1;
4339
4340        return 1;
4341
4342#else
4343        (void) yyin->read( buf, max_size );
4344
4345        if ( yyin->bad() )
4346                return -1;
4347        else
4348                return yyin->gcount();
4349#endif
4350}
4351
4352void yyFlexLexer::LexerOutput( const char* buf, int size )
4353{
4354        (void) yyout->write( buf, size );
4355}
4356
4357/* yy_get_next_buffer - try to read in a new buffer
4358 *
4359 * Returns a code representing an action:
4360 *      EOB_ACT_LAST_MATCH -
4361 *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4362 *      EOB_ACT_END_OF_FILE - end of file
4363 */
4364int yyFlexLexer::yy_get_next_buffer()
4365{
4366        register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4367        register char *source = (yytext_ptr);
4368        register int number_to_move, i;
4369        int ret_val;
4370
4371        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
4372                YY_FATAL_ERROR(
4373                "fatal flex scanner internal error--end of buffer missed" );
4374
4375        if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4376                { /* Don't try to fill the buffer, so this is an EOF. */
4377                if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
4378                        {
4379                        /* We matched a single character, the EOB, so
4380                         * treat this as a final EOF.
4381                         */
4382                        return EOB_ACT_END_OF_FILE;
4383                        }
4384
4385                else
4386                        {
4387                        /* We matched some text prior to the EOB, first
4388                         * process it.
4389                         */
4390                        return EOB_ACT_LAST_MATCH;
4391                        }
4392                }
4393
4394        /* Try to read more data. */
4395
4396        /* First move last chars to start of buffer. */
4397        number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
4398
4399        for ( i = 0; i < number_to_move; ++i )
4400                *(dest++) = *(source++);
4401
4402        if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4403                /* don't do the read, it's not guaranteed to return an EOF,
4404                 * just force an EOF
4405                 */
4406                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
4407
4408        else
4409                {
4410                        int num_to_read =
4411                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4412
4413                while ( num_to_read <= 0 )
4414                        { /* Not enough room in the buffer - grow it. */
4415
4416                        /* just a shorter name for the current buffer */
4417                        YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
4418
4419                        int yy_c_buf_p_offset =
4420                                (int) ((yy_c_buf_p) - b->yy_ch_buf);
4421
4422                        if ( b->yy_is_our_buffer )
4423                                {
4424                                int new_size = b->yy_buf_size * 2;
4425
4426                                if ( new_size <= 0 )
4427                                        b->yy_buf_size += b->yy_buf_size / 8;
4428                                else
4429                                        b->yy_buf_size *= 2;
4430
4431                                b->yy_ch_buf = (char *)
4432                                        /* Include room in for 2 EOB chars. */
4433                                        LolFxrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
4434                                }
4435                        else
4436                                /* Can't grow it, we don't own it. */
4437                                b->yy_ch_buf = 0;
4438
4439                        if ( ! b->yy_ch_buf )
4440                                YY_FATAL_ERROR(
4441                                "fatal error - scanner input buffer overflow" );
4442
4443                        (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4444
4445                        num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4446                                                number_to_move - 1;
4447
4448                        }
4449
4450                if ( num_to_read > YY_READ_BUF_SIZE )
4451                        num_to_read = YY_READ_BUF_SIZE;
4452
4453                /* Read in more data. */
4454                YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4455                        (yy_n_chars), (size_t) num_to_read );
4456
4457                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4458                }
4459
4460        if ( (yy_n_chars) == 0 )
4461                {
4462                if ( number_to_move == YY_MORE_ADJ )
4463                        {
4464                        ret_val = EOB_ACT_END_OF_FILE;
4465                        yyrestart( yyin  );
4466                        }
4467
4468                else
4469                        {
4470                        ret_val = EOB_ACT_LAST_MATCH;
4471                        YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4472                                YY_BUFFER_EOF_PENDING;
4473                        }
4474                }
4475
4476        else
4477                ret_val = EOB_ACT_CONTINUE_SCAN;
4478
4479        if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4480                /* Extend the array by 50%, plus the number we really need. */
4481                yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
4482                YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) LolFxrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
4483                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4484                        YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4485        }
4486
4487        (yy_n_chars) += number_to_move;
4488        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4489        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4490
4491        (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4492
4493        return ret_val;
4494}
4495
4496/* yy_get_previous_state - get the state just before the EOB char was reached */
4497
4498    yy_state_type yyFlexLexer::yy_get_previous_state()
4499{
4500        register yy_state_type yy_current_state;
4501        register char *yy_cp;
4502   
4503        yy_current_state = (yy_start);
4504
4505        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4506                {
4507                register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4508                if ( yy_accept[yy_current_state] )
4509                        {
4510                        (yy_last_accepting_state) = yy_current_state;
4511                        (yy_last_accepting_cpos) = yy_cp;
4512                        }
4513                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4514                        {
4515                        yy_current_state = (int) yy_def[yy_current_state];
4516                        if ( yy_current_state >= 1627 )
4517                                yy_c = yy_meta[(unsigned int) yy_c];
4518                        }
4519                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4520                }
4521
4522        return yy_current_state;
4523}
4524
4525/* yy_try_NUL_trans - try to make a transition on the NUL character
4526 *
4527 * synopsis
4528 *      next_state = yy_try_NUL_trans( current_state );
4529 */
4530    yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
4531{
4532        register int yy_is_jam;
4533        register char *yy_cp = (yy_c_buf_p);
4534
4535        register YY_CHAR yy_c = 1;
4536        if ( yy_accept[yy_current_state] )
4537                {
4538                (yy_last_accepting_state) = yy_current_state;
4539                (yy_last_accepting_cpos) = yy_cp;
4540                }
4541        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4542                {
4543                yy_current_state = (int) yy_def[yy_current_state];
4544                if ( yy_current_state >= 1627 )
4545                        yy_c = yy_meta[(unsigned int) yy_c];
4546                }
4547        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4548        yy_is_jam = (yy_current_state == 1626);
4549
4550        return yy_is_jam ? 0 : yy_current_state;
4551}
4552
4553    void yyFlexLexer::yyunput( int c, register char* yy_bp)
4554{
4555        register char *yy_cp;
4556   
4557    yy_cp = (yy_c_buf_p);
4558
4559        /* undo effects of setting up yytext */
4560        *yy_cp = (yy_hold_char);
4561
4562        if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4563                { /* need to shift things up to make room */
4564                /* +2 for EOB chars. */
4565                register int number_to_move = (yy_n_chars) + 2;
4566                register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
4567                                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
4568                register char *source =
4569                                &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
4570
4571                while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4572                        *--dest = *--source;
4573
4574                yy_cp += (int) (dest - source);
4575                yy_bp += (int) (dest - source);
4576                YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
4577                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
4578
4579                if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4580                        YY_FATAL_ERROR( "flex scanner push-back overflow" );
4581                }
4582
4583        *--yy_cp = (char) c;
4584
4585        (yytext_ptr) = yy_bp;
4586        (yy_hold_char) = *yy_cp;
4587        (yy_c_buf_p) = yy_cp;
4588}
4589
4590    int yyFlexLexer::yyinput()
4591{
4592        int c;
4593   
4594        *(yy_c_buf_p) = (yy_hold_char);
4595
4596        if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4597                {
4598                /* yy_c_buf_p now points to the character we want to return.
4599                 * If this occurs *before* the EOB characters, then it's a
4600                 * valid NUL; if not, then we've hit the end of the buffer.
4601                 */
4602                if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4603                        /* This was really a NUL. */
4604                        *(yy_c_buf_p) = '\0';
4605
4606                else
4607                        { /* need more input */
4608                        int offset = (yy_c_buf_p) - (yytext_ptr);
4609                        ++(yy_c_buf_p);
4610
4611                        switch ( yy_get_next_buffer(  ) )
4612                                {
4613                                case EOB_ACT_LAST_MATCH:
4614                                        /* This happens because yy_g_n_b()
4615                                         * sees that we've accumulated a
4616                                         * token and flags that we need to
4617                                         * try matching the token before
4618                                         * proceeding.  But for input(),
4619                                         * there's no matching to consider.
4620                                         * So convert the EOB_ACT_LAST_MATCH
4621                                         * to EOB_ACT_END_OF_FILE.
4622                                         */
4623
4624                                        /* Reset buffer status. */
4625                                        yyrestart( yyin );
4626
4627                                        /*FALLTHROUGH*/
4628
4629                                case EOB_ACT_END_OF_FILE:
4630                                        {
4631                                        if ( yywrap(  ) )
4632                                                return EOF;
4633
4634                                        if ( ! (yy_did_buffer_switch_on_eof) )
4635                                                YY_NEW_FILE;
4636#ifdef __cplusplus
4637                                        return yyinput();
4638#else
4639                                        return input();
4640#endif
4641                                        }
4642
4643                                case EOB_ACT_CONTINUE_SCAN:
4644                                        (yy_c_buf_p) = (yytext_ptr) + offset;
4645                                        break;
4646                                }
4647                        }
4648                }
4649
4650        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
4651        *(yy_c_buf_p) = '\0';   /* preserve yytext */
4652        (yy_hold_char) = *++(yy_c_buf_p);
4653
4654        return c;
4655}
4656
4657/** Immediately switch to a different input stream.
4658 * @param input_file A readable stream.
4659 *
4660 * @note This function does not reset the start condition to @c INITIAL .
4661 */
4662    void yyFlexLexer::yyrestart( std::istream* input_file )
4663{
4664   
4665        if ( ! YY_CURRENT_BUFFER ){
4666        yyensure_buffer_stack ();
4667                YY_CURRENT_BUFFER_LVALUE =
4668            yy_create_buffer( yyin, YY_BUF_SIZE );
4669        }
4670
4671        yy_init_buffer( YY_CURRENT_BUFFER, input_file );
4672        yy_load_buffer_state(  );
4673}
4674
4675/** Switch to a different input buffer.
4676 * @param new_buffer The new input buffer.
4677 *
4678 */
4679    void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
4680{
4681   
4682        /* TODO. We should be able to replace this entire function body
4683         * with
4684         *              yypop_buffer_state();
4685         *              yypush_buffer_state(new_buffer);
4686     */
4687        yyensure_buffer_stack ();
4688        if ( YY_CURRENT_BUFFER == new_buffer )
4689                return;
4690
4691        if ( YY_CURRENT_BUFFER )
4692                {
4693                /* Flush out information for old buffer. */
4694                *(yy_c_buf_p) = (yy_hold_char);
4695                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4696                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4697                }
4698
4699        YY_CURRENT_BUFFER_LVALUE = new_buffer;
4700        yy_load_buffer_state(  );
4701
4702        /* We don't actually know whether we did this switch during
4703         * EOF (yywrap()) processing, but the only time this flag
4704         * is looked at is after yywrap() is called, so it's safe
4705         * to go ahead and always set it.
4706         */
4707        (yy_did_buffer_switch_on_eof) = 1;
4708}
4709
4710    void yyFlexLexer::yy_load_buffer_state()
4711{
4712        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4713        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4714        yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4715        (yy_hold_char) = *(yy_c_buf_p);
4716}
4717
4718/** Allocate and initialize an input buffer state.
4719 * @param file A readable stream.
4720 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4721 *
4722 * @return the allocated buffer state.
4723 */
4724    YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
4725{
4726        YY_BUFFER_STATE b;
4727   
4728        b = (YY_BUFFER_STATE) LolFxalloc(sizeof( struct yy_buffer_state )  );
4729        if ( ! b )
4730                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4731
4732        b->yy_buf_size = size;
4733
4734        /* yy_ch_buf has to be 2 characters longer than the size given because
4735         * we need to put in 2 end-of-buffer characters.
4736         */
4737        b->yy_ch_buf = (char *) LolFxalloc(b->yy_buf_size + 2  );
4738        if ( ! b->yy_ch_buf )
4739                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4740
4741        b->yy_is_our_buffer = 1;
4742
4743        yy_init_buffer( b, file );
4744
4745        return b;
4746}
4747
4748/** Destroy the buffer.
4749 * @param b a buffer created with yy_create_buffer()
4750 *
4751 */
4752    void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
4753{
4754   
4755        if ( ! b )
4756                return;
4757
4758        if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4759                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4760
4761        if ( b->yy_is_our_buffer )
4762                LolFxfree((void *) b->yy_ch_buf  );
4763
4764        LolFxfree((void *) b  );
4765}
4766
4767extern "C" int isatty (int );
4768
4769/* Initializes or reinitializes a buffer.
4770 * This function is sometimes called more than once on the same buffer,
4771 * such as during a yyrestart() or at EOF.
4772 */
4773    void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
4774
4775{
4776        int oerrno = errno;
4777   
4778        yy_flush_buffer( b );
4779
4780        b->yy_input_file = file;
4781        b->yy_fill_buffer = 1;
4782
4783    /* If b is the current buffer, then yy_init_buffer was _probably_
4784     * called from yyrestart() or through yy_get_next_buffer.
4785     * In that case, we don't want to reset the lineno or column.
4786     */
4787    if (b != YY_CURRENT_BUFFER){
4788        b->yy_bs_lineno = 1;
4789        b->yy_bs_column = 0;
4790    }
4791
4792        b->yy_is_interactive = 0;
4793        errno = oerrno;
4794}
4795
4796/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4797 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4798 *
4799 */
4800    void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
4801{
4802        if ( ! b )
4803                return;
4804
4805        b->yy_n_chars = 0;
4806
4807        /* We always need two end-of-buffer characters.  The first causes
4808         * a transition to the end-of-buffer state.  The second causes
4809         * a jam in that state.
4810         */
4811        b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4812        b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4813
4814        b->yy_buf_pos = &b->yy_ch_buf[0];
4815
4816        b->yy_at_bol = 1;
4817        b->yy_buffer_status = YY_BUFFER_NEW;
4818
4819        if ( b == YY_CURRENT_BUFFER )
4820                yy_load_buffer_state(  );
4821}
4822
4823/** Pushes the new state onto the stack. The new state becomes
4824 *  the current state. This function will allocate the stack
4825 *  if necessary.
4826 *  @param new_buffer The new state.
4827 * 
4828 */
4829void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)
4830{
4831        if (new_buffer == NULL)
4832                return;
4833
4834        yyensure_buffer_stack();
4835
4836        /* This block is copied from yy_switch_to_buffer. */
4837        if ( YY_CURRENT_BUFFER )
4838                {
4839                /* Flush out information for old buffer. */
4840                *(yy_c_buf_p) = (yy_hold_char);
4841                YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4842                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4843                }
4844
4845        /* Only push if top exists. Otherwise, replace top. */
4846        if (YY_CURRENT_BUFFER)
4847                (yy_buffer_stack_top)++;
4848        YY_CURRENT_BUFFER_LVALUE = new_buffer;
4849
4850        /* copied from yy_switch_to_buffer. */
4851        yy_load_buffer_state(  );
4852        (yy_did_buffer_switch_on_eof) = 1;
4853}
4854
4855/** Removes and deletes the top of the stack, if present.
4856 *  The next element becomes the new top.
4857 * 
4858 */
4859void yyFlexLexer::yypop_buffer_state (void)
4860{
4861        if (!YY_CURRENT_BUFFER)
4862                return;
4863
4864        yy_delete_buffer(YY_CURRENT_BUFFER );
4865        YY_CURRENT_BUFFER_LVALUE = NULL;
4866        if ((yy_buffer_stack_top) > 0)
4867                --(yy_buffer_stack_top);
4868
4869        if (YY_CURRENT_BUFFER) {
4870                yy_load_buffer_state(  );
4871                (yy_did_buffer_switch_on_eof) = 1;
4872        }
4873}
4874
4875/* Allocates the stack if it does not exist.
4876 *  Guarantees space for at least one push.
4877 */
4878void yyFlexLexer::yyensure_buffer_stack(void)
4879{
4880        int num_to_alloc;
4881   
4882        if (!(yy_buffer_stack)) {
4883
4884                /* First allocation is just for 2 elements, since we don't know if this
4885                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4886                 * immediate realloc on the next call.
4887         */
4888                num_to_alloc = 1;
4889                (yy_buffer_stack) = (struct yy_buffer_state**)LolFxalloc
4890                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
4891                                                                );
4892                if ( ! (yy_buffer_stack) )
4893                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4894                                                                 
4895                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4896                               
4897                (yy_buffer_stack_max) = num_to_alloc;
4898                (yy_buffer_stack_top) = 0;
4899                return;
4900        }
4901
4902        if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4903
4904                /* Increase the buffer to prepare for a possible push. */
4905                int grow_size = 8 /* arbitrary grow size */;
4906
4907                num_to_alloc = (yy_buffer_stack_max) + grow_size;
4908                (yy_buffer_stack) = (struct yy_buffer_state**)LolFxrealloc
4909                                                                ((yy_buffer_stack),
4910                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
4911                                                                );
4912                if ( ! (yy_buffer_stack) )
4913                        YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4914
4915                /* zero only the new slots.*/
4916                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4917                (yy_buffer_stack_max) = num_to_alloc;
4918        }
4919}
4920
4921    void yyFlexLexer::yy_push_state( int new_state )
4922{
4923        if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4924                {
4925                yy_size_t new_size;
4926
4927                (yy_start_stack_depth) += YY_START_STACK_INCR;
4928                new_size = (yy_start_stack_depth) * sizeof( int );
4929
4930                if ( ! (yy_start_stack) )
4931                        (yy_start_stack) = (int *) LolFxalloc(new_size  );
4932
4933                else
4934                        (yy_start_stack) = (int *) LolFxrealloc((void *) (yy_start_stack),new_size  );
4935
4936                if ( ! (yy_start_stack) )
4937                        YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
4938                }
4939
4940        (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4941
4942        BEGIN(new_state);
4943}
4944
4945    void yyFlexLexer::yy_pop_state()
4946{
4947        if ( --(yy_start_stack_ptr) < 0 )
4948                YY_FATAL_ERROR( "start-condition stack underflow" );
4949
4950        BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4951}
4952
4953    int yyFlexLexer::yy_top_state()
4954{
4955        return (yy_start_stack)[(yy_start_stack_ptr) - 1];
4956}
4957
4958#ifndef YY_EXIT_FAILURE
4959#define YY_EXIT_FAILURE 2
4960#endif
4961
4962void yyFlexLexer::LexerError( yyconst char msg[] )
4963{
4964        std::cerr << msg << std::endl;
4965        exit( YY_EXIT_FAILURE );
4966}
4967
4968/* Redefine yyless() so it works in section 3 code. */
4969
4970#undef yyless
4971#define yyless(n) \
4972        do \
4973                { \
4974                /* Undo effects of setting up yytext. */ \
4975        int yyless_macro_arg = (n); \
4976        YY_LESS_LINENO(yyless_macro_arg);\
4977                yytext[yyleng] = (yy_hold_char); \
4978                (yy_c_buf_p) = yytext + yyless_macro_arg; \
4979                (yy_hold_char) = *(yy_c_buf_p); \
4980                *(yy_c_buf_p) = '\0'; \
4981                yyleng = yyless_macro_arg; \
4982                } \
4983        while ( 0 )
4984
4985/* Accessor  methods (get/set functions) to struct members. */
4986
4987/*
4988 * Internal utility routines.
4989 */
4990
4991#ifndef yytext_ptr
4992static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4993{
4994        register int i;
4995        for ( i = 0; i < n; ++i )
4996                s1[i] = s2[i];
4997}
4998#endif
4999
5000#ifdef YY_NEED_STRLEN
5001static int yy_flex_strlen (yyconst char * s )
5002{
5003        register int n;
5004        for ( n = 0; s[n]; ++n )
5005                ;
5006
5007        return n;
5008}
5009#endif
5010
5011void *LolFxalloc (yy_size_t  size )
5012{
5013        return (void *) malloc( size );
5014}
5015
5016void *LolFxrealloc  (void * ptr, yy_size_t  size )
5017{
5018        /* The cast to (char *) in the following accommodates both
5019         * implementations that use char* generic pointers, and those
5020         * that use void* generic pointers.  It works with the latter
5021         * because both ANSI C and C++ allow castless assignment from
5022         * any pointer type to void*, and deal with argument conversions
5023         * as though doing an assignment.
5024         */
5025        return (void *) realloc( (char *) ptr, size );
5026}
5027
5028void LolFxfree (void * ptr )
5029{
5030        free( (char *) ptr );   /* see LolFxrealloc() for (char *) cast */
5031}
5032
5033#define YYTABLES_NAME "yytables"
5034
5035#line 600 "gpu/lolfx-scanner.l"
5036
5037
5038
5039lol::LolFxScanner::LolFxScanner(char const *command)
5040    : LolFxFlexLexer(0, 0),
5041      m_input(command)
5042{
5043}
5044
5045lol::LolFxScanner::~LolFxScanner()
5046{
5047}
5048
5049int lol::LolFxScanner::LexerInput(char* buf, int max_size)
5050{
5051    buf[0] = m_input[0];
5052    if (buf[0])
5053        ++m_input;
5054    return buf[0] ? 1 : 0;
5055}
5056
5057#ifdef yylex
5058#undef yylex
5059#endif
5060int LolFxFlexLexer::yylex()
5061{
5062    std::cerr << "in LolFxFlexLexer::yylex() !" << std::endl;
5063    return 0;
5064}
5065
5066int LolFxFlexLexer::yywrap()
5067{
5068    return 1;
5069}
5070
5071
Note: See TracBrowser for help on using the repository browser.