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

Last change on this file since 2786 was 2786, checked in by sam, 9 years ago

build: fix PS3 and Android builds.

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