lib/bb/parse/parse_c: Throw Parse Exceptions, crash less often
[vuplus_bitbake] / lib / bb / parse / parse_c / bitbakescanner.cc
1
2 #line 3 "<stdout>"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 31
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with  platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
34 #include <inttypes.h>
35 typedef int8_t flex_int8_t;
36 typedef uint8_t flex_uint8_t;
37 typedef int16_t flex_int16_t;
38 typedef uint16_t flex_uint16_t;
39 typedef int32_t flex_int32_t;
40 typedef uint32_t flex_uint32_t;
41 #else
42 typedef signed char flex_int8_t;
43 typedef short int flex_int16_t;
44 typedef int flex_int32_t;
45 typedef unsigned char flex_uint8_t; 
46 typedef unsigned short int flex_uint16_t;
47 typedef unsigned int flex_uint32_t;
48 #endif /* ! C99 */
49
50 /* Limits of integral types. */
51 #ifndef INT8_MIN
52 #define INT8_MIN               (-128)
53 #endif
54 #ifndef INT16_MIN
55 #define INT16_MIN              (-32767-1)
56 #endif
57 #ifndef INT32_MIN
58 #define INT32_MIN              (-2147483647-1)
59 #endif
60 #ifndef INT8_MAX
61 #define INT8_MAX               (127)
62 #endif
63 #ifndef INT16_MAX
64 #define INT16_MAX              (32767)
65 #endif
66 #ifndef INT32_MAX
67 #define INT32_MAX              (2147483647)
68 #endif
69 #ifndef UINT8_MAX
70 #define UINT8_MAX              (255U)
71 #endif
72 #ifndef UINT16_MAX
73 #define UINT16_MAX             (65535U)
74 #endif
75 #ifndef UINT32_MAX
76 #define UINT32_MAX             (4294967295U)
77 #endif
78
79 #endif /* ! FLEXINT_H */
80
81 #ifdef __cplusplus
82
83 /* The "const" storage-class-modifier is valid. */
84 #define YY_USE_CONST
85
86 #else   /* ! __cplusplus */
87
88 #if __STDC__
89
90 #define YY_USE_CONST
91
92 #endif  /* __STDC__ */
93 #endif  /* ! __cplusplus */
94
95 #ifdef YY_USE_CONST
96 #define yyconst const
97 #else
98 #define yyconst
99 #endif
100
101 /* Returned upon end-of-file. */
102 #define YY_NULL 0
103
104 /* Promotes a possibly negative, possibly signed char to an unsigned
105  * integer for use as an array index.  If the signed char is negative,
106  * we want to instead treat it as an 8-bit unsigned char, hence the
107  * double cast.
108  */
109 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
110
111 /* An opaque pointer. */
112 #ifndef YY_TYPEDEF_YY_SCANNER_T
113 #define YY_TYPEDEF_YY_SCANNER_T
114 typedef void* yyscan_t;
115 #endif
116
117 /* For convenience, these vars (plus the bison vars far below)
118    are macros in the reentrant scanner. */
119 #define yyin yyg->yyin_r
120 #define yyout yyg->yyout_r
121 #define yyextra yyg->yyextra_r
122 #define yyleng yyg->yyleng_r
123 #define yytext yyg->yytext_r
124 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
125 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
126 #define yy_flex_debug yyg->yy_flex_debug_r
127
128 int yylex_init (yyscan_t* scanner);
129
130 /* Enter a start condition.  This macro really ought to take a parameter,
131  * but we do it the disgusting crufty way forced on us by the ()-less
132  * definition of BEGIN.
133  */
134 #define BEGIN yyg->yy_start = 1 + 2 *
135
136 /* Translate the current start state into a value that can be later handed
137  * to BEGIN to return to the state.  The YYSTATE alias is for lex
138  * compatibility.
139  */
140 #define YY_START ((yyg->yy_start - 1) / 2)
141 #define YYSTATE YY_START
142
143 /* Action number for EOF rule of a given start state. */
144 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
145
146 /* Special action meaning "start processing a new file". */
147 #define YY_NEW_FILE yyrestart(yyin ,yyscanner )
148
149 #define YY_END_OF_BUFFER_CHAR 0
150
151 /* Size of default input buffer. */
152 #ifndef YY_BUF_SIZE
153 #define YY_BUF_SIZE 16384
154 #endif
155
156 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
157 #define YY_TYPEDEF_YY_BUFFER_STATE
158 typedef struct yy_buffer_state *YY_BUFFER_STATE;
159 #endif
160
161 #define EOB_ACT_CONTINUE_SCAN 0
162 #define EOB_ACT_END_OF_FILE 1
163 #define EOB_ACT_LAST_MATCH 2
164
165     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
166      *       access to the local variable yy_act. Since yyless() is a macro, it would break
167      *       existing scanners that call yyless() from OUTSIDE yylex. 
168      *       One obvious solution it to make yy_act a global. I tried that, and saw
169      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
170      *       normally declared as a register variable-- so it is not worth it.
171      */
172     #define  YY_LESS_LINENO(n) \
173             do { \
174                 int yyl;\
175                 for ( yyl = n; yyl < yyleng; ++yyl )\
176                     if ( yytext[yyl] == '\n' )\
177                         --yylineno;\
178             }while(0)
179     
180 /* Return all but the first "n" matched characters back to the input stream. */
181 #define yyless(n) \
182         do \
183                 { \
184                 /* Undo effects of setting up yytext. */ \
185         int yyless_macro_arg = (n); \
186         YY_LESS_LINENO(yyless_macro_arg);\
187                 *yy_cp = yyg->yy_hold_char; \
188                 YY_RESTORE_YY_MORE_OFFSET \
189                 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
190                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
191                 } \
192         while ( 0 )
193
194 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
195
196 /* The following is because we cannot portably get our hands on size_t
197  * (without autoconf's help, which isn't available because we want
198  * flex-generated scanners to compile on their own).
199  */
200
201 #ifndef YY_TYPEDEF_YY_SIZE_T
202 #define YY_TYPEDEF_YY_SIZE_T
203 typedef unsigned int yy_size_t;
204 #endif
205
206 #ifndef YY_STRUCT_YY_BUFFER_STATE
207 #define YY_STRUCT_YY_BUFFER_STATE
208 struct yy_buffer_state
209         {
210         FILE *yy_input_file;
211
212         char *yy_ch_buf;                /* input buffer */
213         char *yy_buf_pos;               /* current position in input buffer */
214
215         /* Size of input buffer in bytes, not including room for EOB
216          * characters.
217          */
218         yy_size_t yy_buf_size;
219
220         /* Number of characters read into yy_ch_buf, not including EOB
221          * characters.
222          */
223         int yy_n_chars;
224
225         /* Whether we "own" the buffer - i.e., we know we created it,
226          * and can realloc() it to grow it, and should free() it to
227          * delete it.
228          */
229         int yy_is_our_buffer;
230
231         /* Whether this is an "interactive" input source; if so, and
232          * if we're using stdio for input, then we want to use getc()
233          * instead of fread(), to make sure we stop fetching input after
234          * each newline.
235          */
236         int yy_is_interactive;
237
238         /* Whether we're considered to be at the beginning of a line.
239          * If so, '^' rules will be active on the next match, otherwise
240          * not.
241          */
242         int yy_at_bol;
243
244     int yy_bs_lineno; /**< The line count. */
245     int yy_bs_column; /**< The column count. */
246     
247         /* Whether to try to fill the input buffer when we reach the
248          * end of it.
249          */
250         int yy_fill_buffer;
251
252         int yy_buffer_status;
253
254 #define YY_BUFFER_NEW 0
255 #define YY_BUFFER_NORMAL 1
256         /* When an EOF's been seen but there's still some text to process
257          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
258          * shouldn't try reading from the input source any more.  We might
259          * still have a bunch of tokens to match, though, because of
260          * possible backing-up.
261          *
262          * When we actually see the EOF, we change the status to "new"
263          * (via yyrestart()), so that the user can continue scanning by
264          * just pointing yyin at a new input file.
265          */
266 #define YY_BUFFER_EOF_PENDING 2
267
268         };
269 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
270
271 /* We provide macros for accessing buffer states in case in the
272  * future we want to put the buffer states in a more general
273  * "scanner state".
274  *
275  * Returns the top of the stack, or NULL.
276  */
277 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
278                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
279                           : NULL)
280
281 /* Same as previous macro, but useful when we know that the buffer stack is not
282  * NULL or when we need an lvalue. For internal use only.
283  */
284 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
285
286 void yyrestart (FILE *input_file ,yyscan_t yyscanner );
287 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
288 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
289 void yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
290 void yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
291 void yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
292 void yypop_buffer_state (yyscan_t yyscanner );
293
294 static void yyensure_buffer_stack (yyscan_t yyscanner );
295 static void yy_load_buffer_state (yyscan_t yyscanner );
296 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
297
298 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
299
300 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
301 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
302 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
303
304 void *yyalloc (yy_size_t ,yyscan_t yyscanner );
305 void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
306 void yyfree (void * ,yyscan_t yyscanner );
307
308 #define yy_new_buffer yy_create_buffer
309
310 #define yy_set_interactive(is_interactive) \
311         { \
312         if ( ! YY_CURRENT_BUFFER ){ \
313         yyensure_buffer_stack (yyscanner); \
314                 YY_CURRENT_BUFFER_LVALUE =    \
315             yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
316         } \
317         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
318         }
319
320 #define yy_set_bol(at_bol) \
321         { \
322         if ( ! YY_CURRENT_BUFFER ){\
323         yyensure_buffer_stack (yyscanner); \
324                 YY_CURRENT_BUFFER_LVALUE =    \
325             yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
326         } \
327         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
328         }
329
330 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
331
332 /* Begin user sect3 */
333
334 #define yywrap(n) 1
335 #define YY_SKIP_YYWRAP
336
337 typedef unsigned char YY_CHAR;
338
339 typedef int yy_state_type;
340
341 #define yytext_ptr yytext_r
342
343 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
344 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
345 static int yy_get_next_buffer (yyscan_t yyscanner );
346 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
347
348 /* Done after the current pattern has been matched and before the
349  * corresponding action - sets up yytext.
350  */
351 #define YY_DO_BEFORE_ACTION \
352         yyg->yytext_ptr = yy_bp; \
353         yyleng = (size_t) (yy_cp - yy_bp); \
354         yyg->yy_hold_char = *yy_cp; \
355         *yy_cp = '\0'; \
356         yyg->yy_c_buf_p = yy_cp;
357
358 #define YY_NUM_RULES 47
359 #define YY_END_OF_BUFFER 48
360 /* This struct is not used in this scanner,
361    but its presence is necessary. */
362 struct yy_trans_info
363         {
364         flex_int32_t yy_verify;
365         flex_int32_t yy_nxt;
366         };
367 static yyconst flex_int16_t yy_accept[813] =
368     {   0,
369         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
370         0,    0,    0,    0,    0,    0,   26,   26,    0,    0,
371         0,    0,   48,   46,   45,   45,   46,   46,   46,   46,
372        46,   46,    4,   46,   35,   35,   35,   35,   35,   35,
373        35,   35,   35,   28,   28,   28,   28,   28,   28,   46,
374        45,   30,   45,   46,   46,   46,   46,   29,    4,   46,
375        46,   46,   46,   46,   46,   33,   33,   32,   33,   33,
376        33,   33,   33,   33,    4,   33,   33,   33,   33,   33,
377        33,   43,   38,   38,   38,   38,   38,   38,   46,   40,
378        40,   40,   40,   40,   40,   40,   44,   39,   39,   39,
379
380        39,   39,   39,   46,   41,   41,   41,   41,   41,   41,
381        41,   26,   26,   26,   26,   26,   26,   26,   26,    4,
382        26,   26,   26,   26,   26,   26,   25,   11,   45,   12,
383        11,   46,   11,   46,   11,   11,   11,   11,    4,   11,
384        11,   11,   11,   11,   11,   11,   42,   37,   37,   37,
385        37,   37,   37,   37,    0,   34,   36,    0,    0,    1,
386         5,    3,    2,    6,    7,    0,   35,    0,   35,   35,
387        35,   35,   35,   35,   35,   35,   28,   28,   28,   28,
388        28,   28,    0,   29,    0,   30,    0,   29,    0,    0,
389         1,    5,    2,    6,    7,    0,    0,    0,    0,    0,
390
391         0,    0,   31,    0,    0,    0,    0,    0,   38,   38,
392        38,   38,   38,   38,    0,    0,   40,   40,   40,   40,
393        40,   40,   39,   39,   39,   39,   39,   39,    0,    0,
394        41,   41,   41,   41,   41,   41,   26,   26,   26,   26,
395        26,   26,    1,    5,    3,    2,    6,    7,   26,   26,
396        26,   26,   26,   25,   25,   11,    0,   11,    0,   12,
397         0,    9,    0,   11,    0,   11,    0,   10,    0,    0,
398        11,    1,    5,    3,    2,    6,    7,   11,    8,   11,
399        11,   11,   11,   37,   37,   37,   37,   37,   37,   37,
400        37,   36,    0,   24,    0,    0,   36,   35,   35,   27,
401
402        35,   35,   35,   35,   35,   35,   28,   28,   27,   28,
403        28,   28,    0,   24,    0,    0,   27,    0,    0,    0,
404         0,    0,   27,    0,    0,    0,   38,   38,   27,   38,
405        38,   38,    0,    0,   40,   40,   27,   40,   40,   40,
406        39,   39,   27,   39,   39,   39,    0,    0,   41,   41,
407        27,   41,   41,   41,   26,   24,   26,   26,   26,   26,
408        26,   26,   34,    0,   11,   11,    8,   11,   11,   11,
409        11,   11,   37,   37,   37,   37,   27,   37,   37,   37,
410        24,   24,    0,   35,   35,   35,   35,   35,   35,   35,
411        35,   35,   28,   28,   28,   28,   28,   28,   24,    0,
412
413         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
414         0,   38,   38,   38,   38,   38,   38,    0,   40,    0,
415        40,   40,   40,   40,   40,   40,   39,   39,   39,   39,
416        39,   39,    0,   41,    0,   41,   41,   41,   41,   41,
417        41,   24,   24,   26,   26,   26,   26,   26,   26,   24,
418        11,   11,   11,   11,   11,   11,   37,   37,   37,   37,
419        37,   37,   37,   37,    0,   36,   35,   35,   35,   35,
420        35,   35,   35,   35,   35,   28,   28,   28,   28,   28,
421        28,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,   38,   38,   38,   38,   38,   38,    0,
423
424        40,   40,   40,   40,   40,   40,   40,   39,   39,   39,
425        39,   39,   39,    0,   41,   41,   41,   41,   41,   41,
426        41,   26,   26,   26,   26,   26,   26,   11,   11,   11,
427        11,   11,   11,   37,   37,   37,   20,   37,   37,   37,
428        37,   35,   35,   35,   21,   35,   35,   35,   23,   35,
429        28,   28,   28,   28,   28,   28,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,   38,   38,
431        38,   38,   38,   38,   40,   40,   40,   40,   40,   40,
432        39,   39,   39,   39,   39,   39,   41,   41,   41,   41,
433        41,   41,   26,   26,   26,   26,   26,   26,   11,   11,
434
435        11,   11,   11,   11,   37,   37,   37,   19,   37,   37,
436        37,   35,   35,   16,   35,   13,   15,   14,   28,   28,
437        16,   13,   15,   14,    0,    0,   16,   13,   15,   14,
438         0,    0,   16,   13,   15,   14,   38,   38,   16,   13,
439        15,   14,   40,   40,   16,   13,   15,   14,   39,   39,
440        16,   13,   15,   14,   41,   41,   16,   13,   15,   14,
441        26,   26,   16,   13,   15,   14,   11,   11,   11,   11,
442        11,   11,   37,   37,   16,   13,   15,   14,   35,   35,
443        22,   28,   28,    0,    0,    0,    0,   38,   38,   40,
444        40,   39,   39,   41,   41,   26,   26,   11,   11,   37,
445
446        37,   35,   35,   28,   28,    0,    0,    0,    0,   38,
447        38,   40,   40,   39,   39,   41,   41,   26,   26,   11,
448        11,   37,   37,   35,   17,   28,   17,    0,   17,    0,
449        17,   38,   17,   40,   17,   39,   17,   41,   17,   26,
450        17,   11,   11,   37,   17,   35,   28,    0,    0,   38,
451        40,   39,   41,   26,   11,   37,   35,   28,    0,    0,
452        38,   40,   39,   41,   26,   11,   37,   35,   28,    0,
453         0,   38,   40,   39,   41,   26,   11,   37,   35,   28,
454         0,    0,   38,   40,   39,   41,   26,   11,   37,   35,
455        28,    0,    0,   38,   40,   39,   41,   26,   11,   37,
456
457        18,   18,   18,   18,   18,   18,   18,   18,   18,   11,
458        18,    0
459     } ;
460
461 static yyconst flex_int32_t yy_ec[256] =
462     {   0,
463         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
464         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
465         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
466         1,    2,    1,    5,    6,    7,    1,    1,    8,    9,
467        10,    1,   11,   12,   13,   14,   15,   16,   16,   16,
468        16,   16,   16,   16,   16,   16,   16,   17,    1,    1,
469        18,    1,   19,    1,   20,   20,   21,   20,   22,   23,
470        20,   20,   24,   20,   20,   20,   20,   25,   26,   27,
471        20,   28,   29,   30,   31,   20,   20,   32,   20,   20,
472        33,   34,   35,    1,   36,    1,   37,   38,   39,   40,
473
474        41,   42,   20,   43,   44,   20,   45,   46,   20,   47,
475        48,   49,   50,   51,   52,   53,   54,   20,   20,   55,
476        56,   20,   57,    1,   58,    1,    1,    1,    1,    1,
477         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
478         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
479         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
480         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
481         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
482         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
483         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
484
485         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
486         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
487         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
488         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
489         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
490         1,    1,    1,    1,    1
491     } ;
492
493 static yyconst flex_int32_t yy_meta[59] =
494     {   0,
495         1,    1,    2,    3,    1,    1,    4,    1,    1,    1,
496         5,    6,    5,    5,    5,    7,    1,    8,    1,    9,
497         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
498         9,    9,   10,    1,   11,    9,    9,    9,    9,    9,
499         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
500         9,    9,    9,    9,    9,    9,    1,   12
501     } ;
502
503 static yyconst flex_int16_t yy_base[847] =
504     {   0,
505         0,    0,   58,    0,  115,  165,  215,  265,  316,    0,
506       374,    0,  432,    0,  490,    0,  547,  604,  661,  711,
507       762,    0, 2308, 2309, 2309, 2309, 2304,    0,  118, 2288,
508      2287, 2286,  111, 2285,  116,  124,  120,  129,  131,  128,
509       144,  139,  140,    0, 2270, 2261, 2259, 2252, 2257, 2280,
510       137, 2309, 2279,  127,  183,  124,  171, 2277,  187,  179,
511       126,  163,  158,  131,  173, 2309,  204, 2309, 2309, 2291,
512       210, 2275, 2274, 2273,  197, 2272, 2257, 2248, 2246, 2239,
513      2244, 2309,    0, 2252, 2243, 2241, 2234, 2239, 2222,  218,
514       220,  221,  223,  224,  228,  236, 2309,    0, 2246, 2237,
515
516      2235, 2228, 2233, 2216,  233,  238,  240,  255,  263,  242,
517       273, 2269, 2268, 2267, 2266,  283,  285,  289,  293,  287,
518       294,  160,  210,  207,  147,  220,  297,  552,  560, 2265,
519       565,  210,  569,  544,  580,  622,  627,  634,  623,  669,
520       689,  819,  684,  702,  821,  823, 2309,    0, 2235,  266,
521      2225, 2224, 2217, 2222, 2259, 2309,  548,  566,  581, 2309,
522      2309, 2309, 2309, 2309, 2309, 2204,  568, 2225,  626,  610,
523       640,  651,  699,  823,  678,  702,    0, 2232, 2218, 2215,
524       550, 2206, 2238, 2309,  577, 2309,  261, 2251,  594,  830,
525      2236, 2235, 2234, 2233, 2232,  575,  580,  634,  710,  599,
526
527      2245,  735, 2309, 2220, 2206, 2203,  703, 2194,    0, 2216,
528      2202, 2199,  711, 2190,    0, 2182,  681,  827,  830,  831,
529       826,  828,    0, 2211, 2197, 2194,  717, 2185,    0, 2177,
530       740,  832,  834,  833,  853,  854, 2230, 2229, 2228, 2227,
531       874,  840, 2226, 2225, 2224, 2223, 2222, 2221,  592,  254,
532       651,  855,  833,  737, 2220,  877,  897,  898,  878, 2219,
533       881,  883,  886,  905,  916,  920,  700,  859,  906,  925,
534       936,  940,  941,  950,  955,  960,  964,  974, 2219,  975,
535       983,  994,  995,    0, 2193, 2179, 2165, 2175, 2174,  718,
536      2165,  883,  910,  934,    0, 2179, 2309,  979,  971,  940,
537
538       974,  954,  985,  999,  983, 1003, 2187,  968,    0, 2166,
539      2170, 2156, 1017, 1036,  583, 1003, 2192,  996,  685,  917,
540      2182,  998, 2309, 2161, 2165, 2151, 2178, 1001,    0, 2157,
541      2161, 2147, 2142,    0, 1040, 1041,  946, 1042, 1045, 1043,
542      2173, 1012,    0, 2152, 2156, 2142, 2137,    0, 1055, 1057,
543      1060, 1061, 1062, 1064, 1074, 1087, 1067, 1069, 2191, 1080,
544      1082,  687, 1090, 1094, 1103, 1112, 2191, 1111, 1125, 1127,
545      1134, 1142, 2166, 1048, 2150, 2142,    0, 2143, 2147, 2133,
546      1138, 2183, 2127, 1127, 1141, 1146, 1136, 1149, 1151, 1155,
547      1156, 1158, 2156, 2146, 2145, 2127, 2129, 2135, 1164, 1087,
548
549      1006, 1135, 1132,  595,  912, 2150, 2140, 2139, 2121, 2123,
550      2129, 2144, 2134, 2133, 2115, 2117, 2123, 2108, 1183, 2107,
551      1185, 1190, 1191, 1192, 1200, 1204, 2136, 2126, 2125, 2107,
552      2109, 2115, 2100, 1205, 2099, 1207, 1208, 1212, 1213, 1214,
553      1222, 1168, 2153,  923, 1084, 1213, 1182, 1106, 1190, 1236,
554      1250, 1251, 1252, 1266, 1267, 1271, 2127, 2117, 2116, 2101,
555      2100, 2096, 2098, 2104, 2089, 1210, 1257, 1230, 1273, 1274,
556      1275, 1276, 1284, 1286, 1288, 2116, 2098, 2092, 2103, 2098,
557      2090, 1280, 1177, 1244, 1282, 1285, 1275, 2110, 2092, 2086,
558      2097, 2092, 2084, 2104, 2086, 2080, 2091, 2086, 2078, 2070,
559
560      1296, 1306, 1323, 1324, 1325, 1327, 1328, 2097, 2079, 2073,
561      2084, 2079, 2071, 2063, 1330, 1331, 1333, 1337, 1345, 1340,
562      1346, 1347, 1309, 1259, 1351, 1354, 1356, 1370, 1385, 1394,
563      1401, 1403, 1408, 2090, 2072, 2066,    0, 2076, 2076, 2071,
564      2063, 1359, 1361, 1379, 1355, 1407, 1410, 1411, 1415, 1416,
565      2077, 2072, 2066, 2069, 2056, 2067, 1398, 1343, 1408, 1404,
566       643, 1409, 2071, 2066, 2060, 2063, 2050, 2061, 2065, 2060,
567      2054, 2057, 2044, 2055, 1420, 1445, 1413, 1447, 1453, 1454,
568      2059, 2053, 2047, 2049, 2032, 2043, 1455, 1459, 1460, 1461,
569      1462, 1463, 1471, 1436, 1430, 1192, 1433, 1479, 1482, 1492,
570
571      1506, 1519, 1520, 1528, 2046, 2037, 2031,    0, 2033, 2016,
572      2027, 1486, 1496, 1505, 1506, 1510, 1516, 1524, 2043, 2015,
573         0,    0,    0,    0, 1281, 1517, 2043, 2041, 2036, 2034,
574      2024, 1995, 2309, 2309, 2309, 2309, 2005, 1981,    0,    0,
575         0,    0, 1538, 1528, 1530, 1534, 1537, 1540, 1981, 1957,
576         0,    0,    0,    0, 1557, 1558, 1559, 1560, 1561, 1563,
577      1568, 1547, 1988, 1959, 1955, 1948, 1580, 1581, 1582, 1590,
578      1592, 1594, 1924, 1863,    0,    0,    0,    0, 1598, 1599,
579      1600, 1875, 1859, 1350, 1584, 1803, 1792, 1801, 1790, 1603,
580      1601, 1799, 1788, 1604, 1602, 1610, 1609, 1643, 1644, 1797,
581
582      1786, 1611, 1630, 1800, 1773, 1010, 1606, 1798, 1771, 1795,
583      1768, 1640, 1646, 1793, 1766, 1648, 1649, 1614, 1379, 1667,
584      1674, 1791, 1764, 1647, 1653, 1793,    0, 1352, 1796, 1791,
585      2309, 1790,    0, 1677, 1652, 1789,    0, 1681, 1676, 1480,
586      1805, 1685, 1702, 1786,    0, 1682, 1775, 1679, 1774, 1769,
587      1696, 1768, 1698, 1688, 1715, 1765, 1706, 1765, 1472, 1763,
588      1757, 1714, 1753, 1717, 1719, 1729, 1703, 1722, 1685, 1645,
589      1604, 1546, 1726, 1466, 1733, 1635, 1752, 1403, 1739, 1349,
590      1725, 1269, 1222, 1740, 1217, 1749, 1758, 1768, 1155, 1755,
591      1148, 1481, 1096, 1001, 1761,  866, 1762, 1763, 1792,  834,
592
593      1768,    0,  742, 2309,    0, 1764,    0, 1778,  678, 1801,
594         0, 2309, 1835, 1847, 1859, 1871, 1883,  550, 1892, 1898,
595      1907, 1919, 1931, 1939, 1945, 1950, 1956, 1965, 1977, 1989,
596      2001, 2013, 2025, 2033, 2039, 2043,  306,  304,  301, 2050,
597       213, 2058,  136, 2066, 2074, 2082
598     } ;
599
600 static yyconst flex_int16_t yy_def[847] =
601     {   0,
602       812,    1,  812,    3,  813,  813,  814,  814,  812,    9,
603       812,   11,  812,   13,  812,   15,  815,  815,  816,  816,
604       812,   21,  812,  812,  812,  812,  817,  818,  812,  812,
605       812,  812,  812,  812,  819,  819,  819,  819,  819,  819,
606       819,  819,  819,  820,  820,  820,  820,  820,  820,  821,
607       821,  812,  821,  822,  821,  821,  821,  812,  821,  821,
608       821,  821,  821,  821,  821,  812,  823,  812,  812,  817,
609       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
610       812,  812,  824,  824,  824,  824,  824,  824,  812,  825,
611       825,  825,  825,  825,  825,  825,  812,  826,  826,  826,
612
613       826,  826,  826,  812,  827,  827,  827,  827,  827,  827,
614       827,  828,  828,  828,  829,  828,  828,  828,  828,  828,
615       828,  828,  828,  828,  828,  828,  812,  830,  812,  812,
616       830,  831,  832,  833,  830,  830,  830,  830,  830,  830,
617       830,  830,  830,  830,  830,  830,  812,  834,  834,  834,
618       834,  834,  834,  834,  817,  812,  835,  812,  812,  812,
619       812,  812,  812,  812,  812,  812,  819,  836,  819,  819,
620       819,  819,  819,  819,  819,  819,  820,  820,  820,  820,
621       820,  820,  821,  812,  821,  812,  822,  817,  821,  821,
622       821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
623
624       823,  823,  812,  812,  812,  812,  812,  812,  824,  824,
625       824,  824,  824,  824,  837,  812,  825,  825,  825,  825,
626       825,  825,  826,  826,  826,  826,  826,  826,  838,  812,
627       827,  827,  827,  827,  827,  827,  828,  812,  829,  812,
628       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
629       828,  828,  828,  812,  812,  830,  830,  830,  812,  812,
630       831,  831,  831,  832,  832,  832,  833,  833,  833,  830,
631       830,  830,  830,  830,  830,  830,  830,  830,  812,  830,
632       830,  830,  830,  834,  834,  834,  834,  834,  834,  834,
633       834,  835,  812,  812,  839,  836,  812,  819,  819,  819,
634
635       819,  819,  819,  819,  819,  819,  820,  820,  820,  820,
636       820,  820,  821,  821,  821,  821,  821,  821,  821,  821,
637       812,  812,  812,  812,  812,  812,  824,  824,  824,  824,
638       824,  824,  840,  841,  825,  825,  825,  825,  825,  825,
639       826,  826,  826,  826,  826,  826,  842,  843,  827,  827,
640       827,  827,  827,  827,  828,  828,  828,  828,  828,  828,
641       828,  828,  830,  830,  830,  830,  812,  830,  830,  830,
642       830,  830,  834,  834,  834,  834,  834,  834,  834,  834,
643       812,  812,  844,  819,  819,  819,  819,  819,  819,  819,
644       819,  819,  820,  820,  820,  820,  820,  820,  821,  821,
645
646       821,  821,  821,  821,  821,  812,  812,  812,  812,  812,
647       812,  824,  824,  824,  824,  824,  824,  840,  825,  845,
648       825,  825,  825,  825,  825,  825,  826,  826,  826,  826,
649       826,  826,  842,  827,  846,  827,  827,  827,  827,  827,
650       827,  828,  812,  828,  828,  828,  828,  828,  828,  830,
651       830,  830,  830,  830,  830,  830,  834,  834,  834,  834,
652       834,  834,  834,  834,  844,  835,  819,  819,  819,  819,
653       819,  819,  819,  819,  819,  820,  820,  820,  820,  820,
654       820,  821,  821,  821,  821,  821,  821,  812,  812,  812,
655       812,  812,  812,  824,  824,  824,  824,  824,  824,  845,
656
657       825,  825,  825,  825,  825,  825,  825,  826,  826,  826,
658       826,  826,  826,  846,  827,  827,  827,  827,  827,  827,
659       827,  828,  828,  828,  828,  828,  828,  830,  830,  830,
660       830,  830,  830,  834,  834,  834,  834,  834,  834,  834,
661       834,  819,  819,  819,  819,  819,  819,  819,  819,  819,
662       820,  820,  820,  820,  820,  820,  821,  821,  821,  821,
663       821,  821,  812,  812,  812,  812,  812,  812,  824,  824,
664       824,  824,  824,  824,  825,  825,  825,  825,  825,  825,
665       826,  826,  826,  826,  826,  826,  827,  827,  827,  827,
666       827,  827,  828,  828,  828,  828,  828,  828,  830,  830,
667
668       830,  830,  830,  830,  834,  834,  834,  834,  834,  834,
669       834,  819,  819,  819,  819,  819,  819,  819,  820,  820,
670       820,  820,  820,  820,  821,  821,  821,  821,  821,  821,
671       812,  812,  812,  812,  812,  812,  824,  824,  824,  824,
672       824,  824,  825,  825,  825,  825,  825,  825,  826,  826,
673       826,  826,  826,  826,  827,  827,  827,  827,  827,  827,
674       828,  828,  828,  828,  828,  828,  830,  830,  830,  830,
675       830,  830,  834,  834,  834,  834,  834,  834,  819,  819,
676       819,  820,  820,  821,  821,  812,  812,  824,  824,  825,
677       825,  826,  826,  827,  827,  828,  828,  830,  830,  834,
678
679       834,  819,  819,  820,  820,  821,  821,  812,  812,  824,
680       824,  825,  825,  826,  826,  827,  827,  828,  828,  830,
681       830,  834,  834,  819,  819,  820,  820,  821,  821,  812,
682       812,  824,  824,  825,  825,  826,  826,  827,  827,  828,
683       828,  830,  830,  834,  834,  819,  820,  821,  812,  824,
684       825,  826,  827,  828,  830,  834,  819,  820,  821,  812,
685       824,  825,  826,  827,  828,  830,  834,  819,  820,  821,
686       812,  824,  825,  826,  827,  828,  830,  834,  819,  820,
687       821,  812,  824,  825,  826,  827,  828,  830,  834,  819,
688       820,  821,  812,  824,  825,  826,  827,  828,  830,  834,
689
690       819,  820,  821,  812,  824,  825,  826,  827,  828,  830,
691       834,    0,  812,  812,  812,  812,  812,  812,  812,  812,
692       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
693       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
694       812,  812,  812,  812,  812,  812
695     } ;
696
697 static yyconst flex_int16_t yy_nxt[2368] =
698     {   0,
699        24,   25,   26,   25,   24,   27,   28,   24,   29,   24,
700        30,   24,   24,   31,   24,   24,   32,   33,   34,   35,
701        35,   36,   35,   35,   35,   35,   35,   35,   35,   35,
702        35,   35,   24,   24,   24,   35,   37,   35,   35,   38,
703        39,   40,   35,   41,   35,   35,   35,   35,   42,   35,
704        43,   35,   35,   35,   35,   35,   24,   24,   24,   25,
705        26,   25,   24,   27,   24,   24,   29,   24,   30,   24,
706        24,   31,   24,   24,   32,   33,   34,   44,   44,   45,
707        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
708        24,   24,   24,   44,   46,   44,   44,   47,   44,   44,
709
710        44,   48,   44,   44,   44,   44,   44,   44,   49,   44,
711        44,   44,   44,   44,   24,   24,   51,   52,   53,  158,
712        54,  163,  166,   55,  164,   56,  166,  159,   57,  156,
713       166,   58,   59,   60,  166,  166,   61,  166,  185,  186,
714       184,  191,  184,  188,  435,  166,  166,  184,  168,  238,
715       166,   62,  168,  184,   63,  169,  168,  196,   64,  170,
716       168,  168,  238,  168,  173,   65,   51,   52,   53,  171,
717        54,  168,  168,   55,  184,   56,  168,  199,   57,  184,
718       176,   58,   59,   60,  189,  172,   61,  184,  192,  184,
719       174,  249,  190,  252,  175,  184,  195,  193,  198,  184,
720
721       194,   62,  197,  184,   63,  202,  203,  163,   64,  238,
722       164,  158,  238,  200,  262,   65,   67,   68,   69,  159,
723        70,  420,  238,   71,  216,   72,  216,  216,   73,  216,
724       216,   74,   75,   76,  216,  161,   77,  812,  812,  230,
725       812,  812,  216,  263,  230,  812,  230,  251,  230,  250,
726       161,   78,  218,  812,   79,  812,  238,  812,   80,  812,
727       253,  230,  219,  156,  220,   81,   67,   68,   69,  230,
728        70,  232,  812,   71,  221,   72,  222,  188,   73,  230,
729       812,   74,   75,   76,  241,  238,   77,  238,  235,  238,
730       812,  238,  242,  358,  233,  238,  238,  246,  254,  255,
731
732       247,   78,  243,  234,   79,  286,  244,  287,   80,  383,
733       245,  248,  347,  236,  333,   81,   24,   25,   82,   25,
734        24,   27,   24,   24,   29,   24,   30,   24,   24,   31,
735        24,   24,   32,   33,   34,   83,   83,   84,   83,   83,
736        83,   83,   83,   83,   83,   83,   83,   83,   24,   24,
737        24,   83,   85,   83,   83,   86,   83,   83,   83,   87,
738        83,   83,   83,   83,   83,   83,   88,   83,   83,   83,
739        83,   83,   24,   24,   24,   25,   26,   25,   24,   27,
740        89,   24,   29,   24,   30,   24,   24,   90,   91,   24,
741        32,   33,   34,   91,   91,   92,   91,   91,   91,   91,
742
743        91,   91,   91,   91,   91,   91,   24,   24,   24,   91,
744        93,   91,   91,   94,   91,   91,   91,   95,   91,   91,
745        91,   91,   91,   91,   96,   91,   91,   91,   91,   91,
746        24,   24,   24,   25,   97,   25,   24,   27,   24,   24,
747        29,   24,   30,   24,   24,   31,   24,   24,   32,   33,
748        34,   98,   98,   99,   98,   98,   98,   98,   98,   98,
749        98,   98,   98,   98,   24,   24,   24,   98,  100,   98,
750        98,  101,   98,   98,   98,  102,   98,   98,   98,   98,
751        98,   98,  103,   98,   98,   98,   98,   98,   24,   24,
752        24,   25,   26,   25,   24,   27,  104,   24,   29,   24,
753
754        30,   24,   24,  105,  106,   24,   32,   33,   34,  106,
755       106,  107,  106,  106,  106,  106,  106,  106,  106,  106,
756       106,  106,   24,   24,   24,  106,  108,  106,  106,  109,
757       106,  106,  106,  110,  106,  106,  106,  106,  106,  106,
758       111,  106,  106,  106,  106,  106,   24,   24,  113,  114,
759       113,  268,  115,  257,  166,  116,  257,  117,  157,  257,
760       118,  259,  260,  119,  120,  121,  257,  158,  122,  257,
761       265,  156,  257,  265,  166,  159,  265,  269,  185,  186,
762       168,  270,  293,  123,  257,  258,  124,  257,  310,  271,
763       125,  184,  311,  184,  238,  189,  184,  126,  258,  184,
764
765       168,  315,  266,  190,  127,  113,  114,  113,  400,  115,
766       184,  184,  116,  258,  117,  184,  166,  118,  357,  316,
767       119,  120,  121,  257,  257,  122,  257,  257,  257,  257,
768       257,  257,  166,  275,  257,  257,  276,  294,  257,  272,
769       123,  257,  168,  124,  273,  486,  166,  125,  320,  299,
770       184,  274,  298,  238,  126,  258,  258,  166,  168,  184,
771       258,  127,  129,  130,  131,  132,  133,  258,  134,  135,
772       257,  136,  168,  257,  137,  317,  257,  138,  139,  140,
773       238,  300,  141,  168,  166,  257,  277,  216,  257,  238,
774       257,  257,  359,  257,  142,  629,  257,  143,  812,  301,
775
776       144,  184,  258,  257,  145,  166,  257,  268,  166,  257,
777       168,  146,  129,  130,  131,  132,  133,  258,  134,  135,
778       278,  136,  258,  280,  137,  404,  184,  138,  139,  140,
779       305,  168,  141,  269,  168,  258,  202,  203,  254,  255,
780       449,  324,  281,  302,  142,  325,  230,  143,  318,  330,
781       144,  306,  319,  331,  145,  344,  378,  812,  184,  345,
782       379,  146,   24,   25,  147,   25,   24,   27,   24,   24,
783        29,   24,   30,   24,   24,   31,   24,   24,   32,   33,
784        34,  148,  148,  149,  148,  148,  148,  148,  148,  148,
785       148,  148,  148,  148,   24,   24,   24,  148,  150,  151,
786
787       148,  152,  148,  148,  148,  153,  148,  148,  148,  148,
788       148,  148,  154,  148,  148,  148,  148,  148,   24,   24,
789       257,  279,  257,  257,  257,  257,  257,  257,  257,  166,
790       257,  313,  216,  216,  216,  238,  216,  216,  230,  230,
791       230,  355,  238,  812,  812,  812,  184,  812,  812,  812,
792       812,  812,  258,  335,  258,  168,  258,  238,  349,  230,
793       230,  303,  811,  283,  338,  304,  268,  282,  339,  336,
794       812,  812,  337,  350,  351,  241,  238,  340,  257,  259,
795       260,  257,  362,  242,  257,  262,  314,  262,  261,  166,
796       262,  352,  269,  360,  807,  353,  356,  361,  257,  257,
797
798       257,  257,  257,  354,  257,  257,  265,  156,  267,  265,
799       258,  293,  265,  268,  263,  168,  263,  265,  156,  263,
800       265,  265,  363,  265,  265,  238,  270,  265,  184,  257,
801       258,  258,  257,  184,  271,  381,  382,  364,  266,  269,
802       257,  257,  257,  257,  257,  257,  166,  257,  257,  266,
803       522,  257,  216,  266,  257,  487,  257,  257,  258,  257,
804       166,  257,  257,  812,  257,  257,  294,  257,  257,  258,
805       405,  257,  168,  258,  258,  257,  257,  166,  257,  257,
806       166,  257,  257,  258,  257,  166,  168,  257,  258,  166,
807       257,  166,  365,  258,  388,  257,  257,  258,  257,  257,
808
809       366,  257,  257,  168,  384,  166,  168,  258,  258,  166,
810       394,  168,  184,  385,  368,  168,  258,  168,  313,  184,
811       395,  387,  184,  386,  369,  391,  184,  258,  258,  805,
812       389,  168,  370,  184,  728,  168,  371,  399,  382,  390,
813       407,  403,  483,  413,  372,  401,  216,  216,  216,  216,
814       408,  216,  184,  414,  428,  402,  392,  812,  812,  812,
815       812,  230,  812,  230,  429,  421,  230,  230,  230,  238,
816       230,  238,  812,  314,  812,  355,  238,  812,  812,  812,
817       436,  812,  238,  422,  238,  425,  238,  424,  442,  443,
818       458,  257,  444,  423,  257,  364,  426,  257,  257,  437,
819
820       459,  257,  440,  184,  450,  382,  439,  257,  238,  438,
821       257,  445,  257,  257,  482,  257,  257,  441,  257,  257,
822       523,  446,  448,  258,  804,  447,  257,  258,  257,  257,
823       356,  257,  257,  166,  257,  257,  258,  451,  257,  381,
824       382,  257,  166,  257,  258,  258,  257,  166,  184,  257,
825       365,  184,  166,  452,  467,  166,  526,  166,  258,  168,
826       258,  166,  166,  453,  166,  399,  382,  258,  168,  442,
827       443,  484,  454,  168,  455,  258,  802,  468,  168,  800,
828       184,  168,  469,  168,  238,  485,  470,  168,  168,  216,
829       168,  216,  238,  184,  238,  456,  216,  216,  216,  471,
830
831       812,  475,  812,  474,  472,  473,  216,  812,  812,  812,
832       216,  230,  502,  230,  230,  238,  166,  812,  230,  230,
833       230,  812,  812,  558,  812,  812,  503,  504,  230,  812,
834       812,  812,  664,  527,  516,  525,  166,  450,  382,  812,
835       257,  796,  168,  257,  517,  505,  794,  507,  518,  524,
836       506,  257,  257,  257,  257,  257,  257,  257,  257,  257,
837       184,  238,  168,  166,  520,  521,  519,  257,  257,  258,
838       257,  257,  257,  257,  257,  257,  543,  528,  257,  166,
839       166,  166,  166,  258,  258,  258,  542,  529,  530,  168,
840       166,  184,  166,  793,  166,  559,  184,  184,  184,  258,
841
842       258,  184,  216,  684,  258,  168,  168,  168,  168,  557,
843       595,  238,  216,  812,  533,  547,  168,  532,  168,  531,
844       168,  560,  546,  812,  544,  562,  545,  548,  561,  216,
845       216,  216,  549,  216,  216,  575,  230,  230,  550,  230,
846       812,  812,  812,  230,  812,  812,  230,  812,  812,  238,
847       812,  230,  230,  238,  812,  594,  238,  812,  238,  184,
848       587,  166,  812,  812,  578,  166,  184,  166,  184,  576,
849       579,  257,  748,  791,  257,  577,  593,  257,  580,  588,
850       706,  238,  626,  591,  590,  166,  257,  168,  589,  257,
851       596,  168,  257,  168,  612,  257,  592,  597,  257,  599,
852
853       613,  257,  257,  258,  257,  257,  598,  257,  257,  257,
854       257,  168,  257,  166,  184,  257,  166,  166,  258,  216,
855       184,  166,  166,  614,  184,  184,  216,  258,  789,  741,
856       812,  600,  238,  625,  258,  238,  258,  812,  238,  168,
857       602,  258,  168,  168,  628,  601,  603,  168,  168,  630,
858       616,  216,  627,  216,  615,  643,  618,  645,  604,  216,
859       216,  230,  812,  617,  812,  230,  230,  230,  230,  230,
860       812,  812,  812,  238,  663,  662,  812,  812,  812,  812,
861       812,  238,  238,  257,  644,  665,  257,  646,  184,  257,
862       655,  785,  166,  257,  648,  770,  257,  184,  656,  257,
863
864       754,  658,  166,  660,  657,  647,  661,  257,  679,  803,
865       257,  166,  166,  257,  659,  258,  166,  667,  168,  666,
866       257,  257,  166,  257,  257,  258,  257,  257,  168,  257,
867       166,  668,  257,  184,  216,  257,  216,  168,  168,  258,
868       216,  680,  168,  216,  216,  812,  216,  812,  168,  238,
869       669,  812,  258,  258,  812,  812,  168,  812,  681,  670,
870       690,  258,  685,  230,  230,  230,  230,  230,  672,  230,
871       238,  783,  671,  691,  812,  812,  812,  812,  812,  694,
872       812,  257,  257,  257,  257,  257,  257,  257,  257,  257,
873       696,  257,  697,  257,  257,  257,  257,  257,  257,  257,
874
875       184,  257,  698,  695,  166,  166,  166,  216,  230,  216,
876       230,  238,  238,  258,  258,  258,  238,  166,  812,  812,
877       812,  812,  184,  258,  707,  258,  699,  258,  702,  782,
878       168,  168,  168,  712,  716,  724,  166,  238,  740,  703,
879       718,  713,  717,  168,  257,  257,  216,  257,  257,  719,
880       257,  257,  216,  166,  230,  230,  729,  812,  216,  166,
881       787,  184,  168,  812,  734,  812,  812,  746,  257,  812,
882       781,  257,  738,  720,  257,  257,  258,  258,  257,  168,
883       725,  257,  230,  216,  721,  168,  257,  230,  166,  257,
884       238,  742,  257,  812,  812,  184,  735,  751,  812,  739,
885
886       258,  753,  216,  257,  230,  755,  257,  258,  759,  257,
887       780,  757,  166,  812,  168,  812,  257,  765,  258,  257,
888       216,  238,  257,  230,  743,  762,  778,  764,  166,  768,
889       257,  812,  216,  257,  812,  258,  257,  773,  168,  230,
890       775,  184,  776,  812,  766,  166,  216,  779,  258,  792,
891       812,  784,  777,  257,  168,  230,  257,  812,  786,  257,
892       238,  166,  258,  790,  795,  238,  812,  216,  230,  257,
893       216,  168,  257,  797,  166,  257,  774,  788,  812,  812,
894       772,  812,  798,  801,  230,  258,  771,  168,  769,  806,
895       808,  809,  799,  257,  767,  812,  257,  763,  761,  257,
896
897       168,  258,  257,  760,  758,  257,  756,  238,  257,  752,
898       750,  749,  184,  747,  745,  744,  737,  736,  733,  732,
899       810,  731,  730,  727,  726,  258,  723,  722,  715,  714,
900       711,  710,  709,  708,  258,   50,   50,   50,   50,   50,
901        50,   50,   50,   50,   50,   50,   50,   66,   66,   66,
902        66,   66,   66,   66,   66,   66,   66,   66,   66,  112,
903       112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
904       112,  128,  128,  128,  128,  128,  128,  128,  128,  128,
905       128,  128,  128,  155,  155,  155,  155,  155,  155,  155,
906       155,  155,  155,  155,  155,  167,  167,  167,  167,  705,
907
908       167,  167,  177,  177,  177,  704,  177,  183,  701,  183,
909       183,  183,  183,  183,  183,  183,  183,  183,  183,  187,
910       187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
911       187,  201,  201,  201,  201,  201,  201,  201,  201,  201,
912       201,  201,  201,  209,  209,  209,  700,  209,  217,  217,
913       238,  217,  217,  217,  223,  223,  223,  238,  223,  231,
914       231,  238,  231,  231,  231,  237,  237,  237,  237,  237,
915       237,  237,  237,  237,  237,  237,  237,  239,  239,  239,
916       239,  239,  239,  239,  239,  239,  239,  239,  239,  256,
917       238,  256,  256,  256,  256,  256,  256,  256,  256,  256,
918
919       256,  261,  693,  692,  261,  261,  261,  261,  261,  261,
920       261,  261,  261,  264,  264,  264,  264,  264,  264,  264,
921       264,  264,  264,  264,  264,  267,  689,  688,  267,  267,
922       267,  267,  267,  267,  267,  267,  267,  284,  284,  284,
923       687,  284,  292,  292,  292,  292,  686,  292,  292,  296,
924       184,  296,  184,  296,  418,  418,  418,  184,  418,  184,
925       683,  418,  433,  433,  433,  682,  433,  678,  677,  433,
926       465,  465,  465,  676,  465,  675,  674,  465,  500,  500,
927       500,  673,  500,  654,  653,  500,  514,  514,  514,  652,
928       514,  651,  650,  514,  649,  642,  641,  640,  639,  638,
929
930       637,  636,  635,  634,  633,  632,  631,  624,  623,  622,
931       621,  620,  619,  611,  610,  609,  608,  607,  606,  605,
932       515,  586,  585,  584,  583,  582,  581,  501,  574,  573,
933       572,  571,  570,  569,  568,  567,  566,  565,  564,  563,
934       556,  555,  554,  553,  552,  551,  466,  541,  540,  539,
935       538,  537,  536,  535,  534,  443,  515,  434,  513,  512,
936       511,  510,  509,  508,  501,  419,  499,  498,  497,  496,
937       495,  494,  493,  492,  491,  490,  489,  488,  481,  480,
938       479,  478,  477,  476,  466,  382,  464,  463,  462,  461,
939       460,  457,  367,  238,  434,  432,  431,  430,  427,  419,
940
941       417,  416,  415,  412,  411,  410,  409,  406,  184,  398,
942       397,  396,  393,  297,  380,  377,  376,  375,  374,  373,
943       367,  260,  255,  238,  238,  238,  238,  238,  238,  238,
944       240,  238,  238,  348,  346,  343,  342,  341,  334,  332,
945       329,  328,  327,  326,  323,  322,  321,  203,  184,  184,
946       184,  184,  184,  156,  184,  312,  309,  308,  307,  297,
947       295,  156,  291,  290,  289,  288,  285,  260,  240,  238,
948       238,  238,  229,  228,  227,  226,  225,  224,  215,  214,
949       213,  212,  211,  210,  208,  207,  206,  205,  204,  165,
950       162,  161,  160,  156,  162,  184,  184,  182,  181,  180,
951
952       179,  178,  165,  162,  161,  160,  156,  812,   23,  812,
953       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
954       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
955       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
956       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
957       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
958       812,  812,  812,  812,  812,  812,  812
959     } ;
960
961 static yyconst flex_int16_t yy_chk[2368] =
962     {   0,
963         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
964         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
965         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
966         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
967         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
968         1,    1,    1,    1,    1,    1,    1,    1,    3,    3,
969         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
970         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
971         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
972         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
973
974         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
975         3,    3,    3,    3,    3,    3,    5,    5,    5,   29,
976         5,   33,   35,    5,   33,    5,   37,   29,    5,   54,
977        36,    5,    5,    5,   40,   38,    5,   39,   51,   51,
978        56,   56,   61,   54,  843,   42,   43,   64,   35,  125,
979        41,    5,   37,   51,    5,   36,   36,   61,    5,   37,
980        40,   38,  122,   39,   40,    5,    6,    6,    6,   38,
981         6,   42,   43,    6,   63,    6,   41,   64,    6,   62,
982        43,    6,    6,    6,   55,   39,    6,   57,   57,   65,
983        41,  122,   55,  125,   42,   60,   60,   59,   63,   55,
984
985        59,    6,   62,   59,    6,   67,   67,   75,    6,  124,
986        75,   71,  123,   65,  132,    6,    7,    7,    7,   71,
987         7,  841,  126,    7,   90,    7,   91,   92,    7,   93,
988        94,    7,    7,    7,   95,   90,    7,   91,   92,  105,
989        93,   94,   96,  132,  106,   95,  107,  124,  110,  123,
990       105,    7,   92,   96,    7,  106,  250,  107,    7,  110,
991       126,  108,   93,  187,   94,    7,    8,    8,    8,  109,
992         8,  107,  108,    8,   95,    8,   96,  187,    8,  111,
993       109,    8,    8,    8,  116,  116,    8,  117,  110,  120,
994       111,  118,  116,  250,  108,  119,  121,  120,  127,  127,
995
996       120,    8,  117,  109,    8,  150,  118,  150,    8,  839,
997       119,  121,  838,  111,  837,    8,    9,    9,    9,    9,
998         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
999         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
1000         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
1001         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
1002         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
1003         9,    9,    9,    9,   11,   11,   11,   11,   11,   11,
1004        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
1005        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
1006
1007        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
1008        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
1009        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
1010        11,   11,   13,   13,   13,   13,   13,   13,   13,   13,
1011        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1012        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1013        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1014        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1015        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1016        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1017
1018        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1019        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1020        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1021        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1022        15,   15,   15,   15,   15,   15,   15,   15,   17,   17,
1023        17,  134,   17,  128,  157,   17,  128,   17,  818,  128,
1024        17,  129,  129,   17,   17,   17,  131,  158,   17,  131,
1025       133,  133,  131,  133,  167,  158,  133,  134,  185,  185,
1026       157,  135,  159,   17,  135,  128,   17,  135,  181,  135,
1027        17,  196,  181,  185,  249,  189,  197,   17,  131,  315,
1028
1029       167,  196,  133,  189,   17,   18,   18,   18,  315,   18,
1030       189,  404,   18,  135,   18,  200,  170,   18,  249,  197,
1031        18,   18,   18,  136,  139,   18,  136,  139,  137,  136,
1032       139,  137,  169,  139,  137,  138,  139,  159,  138,  136,
1033        18,  138,  170,   18,  137,  404,  171,   18,  200,  170,
1034       198,  138,  169,  251,   18,  136,  139,  172,  169,  561,
1035       137,   18,   19,   19,   19,   19,   19,  138,   19,   19,
1036       140,   19,  171,  140,   19,  198,  140,   19,   19,   19,
1037       809,  171,   19,  172,  175,  143,  140,  217,  143,  362,
1038       141,  143,  251,  141,   19,  561,  141,   19,  217,  172,
1039
1040        19,  319,  140,  144,   19,  173,  144,  267,  176,  144,
1041       175,   19,   20,   20,   20,   20,   20,  143,   20,   20,
1042       141,   20,  141,  143,   20,  319,  199,   20,   20,   20,
1043       175,  173,   20,  267,  176,  144,  202,  202,  254,  254,
1044       362,  207,  144,  173,   20,  207,  231,   20,  199,  213,
1045        20,  176,  199,  213,   20,  227,  290,  231,  803,  227,
1046       290,   20,   21,   21,   21,   21,   21,   21,   21,   21,
1047        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1048        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1049        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1050
1051        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1052        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1053       142,  142,  145,  142,  146,  145,  142,  146,  145,  174,
1054       146,  190,  221,  218,  222,  253,  219,  220,  232,  234,
1055       233,  242,  242,  221,  218,  222,  190,  219,  220,  232,
1056       234,  233,  142,  218,  145,  174,  146,  252,  232,  235,
1057       236,  174,  800,  146,  221,  174,  268,  145,  221,  219,
1058       235,  236,  220,  233,  234,  241,  241,  222,  256,  259,
1059       259,  256,  253,  241,  256,  261,  190,  262,  263,  292,
1060       263,  235,  268,  252,  796,  235,  242,  252,  257,  258,
1061
1062       258,  257,  258,  236,  257,  258,  264,  264,  269,  264,
1063       256,  293,  264,  269,  261,  292,  262,  265,  265,  263,
1064       265,  266,  266,  265,  266,  444,  270,  266,  405,  270,
1065       257,  258,  270,  320,  270,  294,  294,  271,  264,  269,
1066       271,  272,  273,  271,  272,  273,  300,  272,  273,  265,
1067       444,  274,  337,  266,  274,  405,  275,  274,  270,  275,
1068       302,  276,  275,  337,  276,  277,  293,  276,  277,  271,
1069       320,  277,  300,  272,  273,  278,  280,  299,  278,  280,
1070       301,  278,  280,  274,  281,  298,  302,  281,  275,  305,
1071       281,  303,  271,  276,  302,  282,  283,  277,  282,  283,
1072
1073       278,  282,  283,  299,  298,  304,  301,  278,  280,  306,
1074       308,  298,  318,  299,  280,  305,  281,  303,  313,  316,
1075       308,  301,  401,  299,  281,  305,  706,  282,  283,  794,
1076       303,  304,  282,  313,  706,  306,  282,  314,  314,  304,
1077       322,  318,  401,  328,  283,  316,  335,  336,  338,  340,
1078       322,  339,  314,  328,  342,  316,  306,  335,  336,  338,
1079       340,  349,  339,  350,  342,  335,  351,  352,  353,  357,
1080       354,  358,  349,  313,  350,  355,  355,  351,  352,  353,
1081       349,  354,  360,  336,  361,  339,  445,  338,  356,  356,
1082       374,  363,  357,  336,  363,  364,  340,  363,  364,  350,
1083
1084       374,  364,  353,  400,  365,  365,  352,  365,  448,  350,
1085       365,  358,  368,  366,  400,  368,  366,  354,  368,  366,
1086       445,  358,  361,  363,  793,  360,  369,  364,  370,  369,
1087       355,  370,  369,  384,  370,  371,  365,  366,  371,  381,
1088       381,  371,  387,  372,  368,  366,  372,  385,  403,  372,
1089       364,  402,  386,  368,  384,  388,  448,  389,  369,  384,
1090       370,  390,  391,  368,  392,  399,  399,  371,  387,  442,
1091       442,  402,  370,  385,  371,  372,  791,  385,  386,  789,
1092       399,  388,  386,  389,  447,  403,  387,  390,  391,  419,
1093       392,  421,  449,  483,  596,  372,  422,  423,  424,  388,
1094
1095       419,  392,  421,  391,  389,  390,  425,  422,  423,  424,
1096       426,  434,  421,  436,  437,  446,  466,  425,  438,  439,
1097       440,  426,  434,  483,  436,  437,  422,  423,  441,  438,
1098       439,  440,  596,  449,  436,  447,  468,  450,  450,  441,
1099       450,  785,  466,  450,  437,  424,  783,  426,  438,  446,
1100       425,  451,  452,  453,  451,  452,  453,  451,  452,  453,
1101       484,  524,  468,  467,  440,  441,  439,  454,  455,  450,
1102       454,  455,  456,  454,  455,  456,  468,  451,  456,  469,
1103       470,  471,  472,  451,  452,  453,  467,  452,  453,  467,
1104       473,  487,  474,  782,  475,  484,  482,  625,  485,  454,
1105
1106       455,  486,  501,  625,  456,  469,  470,  471,  472,  482,
1107       524,  523,  502,  501,  456,  472,  473,  455,  474,  454,
1108       475,  485,  471,  502,  469,  487,  470,  473,  486,  503,
1109       504,  505,  474,  506,  507,  502,  515,  516,  475,  517,
1110       503,  504,  505,  518,  506,  507,  520,  515,  516,  522,
1111       517,  519,  521,  525,  518,  523,  526,  520,  527,  558,
1112       516,  545,  519,  521,  505,  542,  684,  543,  728,  503,
1113       506,  528,  728,  780,  528,  504,  522,  528,  507,  517,
1114       684,  719,  558,  520,  519,  544,  529,  545,  518,  529,
1115       525,  542,  529,  543,  542,  530,  521,  526,  530,  528,
1116
1117       543,  530,  531,  528,  532,  531,  527,  532,  531,  533,
1118       532,  544,  533,  546,  557,  533,  547,  548,  529,  577,
1119       560,  549,  550,  544,  559,  562,  575,  530,  778,  719,
1120       577,  529,  595,  557,  531,  597,  532,  575,  594,  546,
1121       531,  533,  547,  548,  560,  530,  532,  549,  550,  562,
1122       547,  576,  559,  578,  546,  575,  550,  577,  533,  579,
1123       580,  587,  576,  548,  578,  588,  589,  590,  591,  592,
1124       579,  580,  587,  593,  595,  594,  588,  589,  590,  591,
1125       592,  598,  740,  599,  576,  597,  599,  578,  759,  599,
1126       587,  774,  612,  600,  580,  759,  600,  792,  588,  600,
1127
1128       740,  590,  613,  592,  589,  579,  593,  601,  612,  792,
1129       601,  614,  615,  601,  591,  599,  616,  599,  612,  598,
1130       602,  603,  617,  602,  603,  600,  602,  603,  613,  604,
1131       618,  600,  604,  626,  644,  604,  645,  614,  615,  601,
1132       646,  613,  616,  647,  643,  644,  648,  645,  617,  662,
1133       601,  646,  602,  603,  647,  643,  618,  648,  615,  602,
1134       643,  604,  626,  655,  656,  657,  658,  659,  604,  660,
1135       661,  772,  603,  644,  655,  656,  657,  658,  659,  655,
1136       660,  667,  668,  669,  667,  668,  669,  667,  668,  669,
1137       661,  670,  662,  671,  670,  672,  671,  670,  672,  671,
1138
1139       685,  672,  667,  656,  679,  680,  681,  691,  695,  690,
1140       694,  697,  696,  667,  668,  669,  718,  702,  691,  695,
1141       690,  694,  707,  670,  685,  671,  668,  672,  679,  771,
1142       679,  680,  681,  690,  694,  702,  703,  776,  718,  680,
1143       696,  691,  695,  702,  698,  699,  712,  698,  699,  697,
1144       698,  699,  713,  724,  716,  717,  707,  712,  735,  725,
1145       776,  770,  703,  713,  712,  716,  717,  724,  720,  735,
1146       770,  720,  716,  698,  720,  721,  698,  699,  721,  724,
1147       703,  721,  739,  734,  699,  725,  742,  738,  746,  742,
1148       754,  720,  742,  739,  734,  748,  713,  734,  738,  717,
1149
1150       720,  738,  751,  743,  753,  742,  743,  721,  748,  743,
1151       769,  746,  757,  751,  746,  753,  755,  754,  742,  755,
1152       762,  765,  755,  764,  721,  751,  767,  753,  768,  757,
1153       766,  762,  773,  766,  764,  743,  766,  762,  757,  775,
1154       764,  781,  765,  773,  755,  779,  784,  768,  755,  781,
1155       775,  773,  766,  777,  768,  786,  777,  784,  775,  777,
1156       787,  790,  766,  779,  784,  798,  786,  795,  797,  788,
1157       806,  779,  788,  786,  801,  788,  763,  777,  795,  797,
1158       761,  806,  787,  790,  808,  777,  760,  790,  758,  795,
1159       797,  798,  788,  799,  756,  808,  799,  752,  750,  799,
1160
1161       801,  788,  810,  749,  747,  810,  744,  741,  810,  736,
1162       732,  730,  729,  726,  723,  722,  715,  714,  711,  710,
1163       799,  709,  708,  705,  704,  799,  701,  700,  693,  692,
1164       689,  688,  687,  686,  810,  813,  813,  813,  813,  813,
1165       813,  813,  813,  813,  813,  813,  813,  814,  814,  814,
1166       814,  814,  814,  814,  814,  814,  814,  814,  814,  815,
1167       815,  815,  815,  815,  815,  815,  815,  815,  815,  815,
1168       815,  816,  816,  816,  816,  816,  816,  816,  816,  816,
1169       816,  816,  816,  817,  817,  817,  817,  817,  817,  817,
1170       817,  817,  817,  817,  817,  819,  819,  819,  819,  683,
1171
1172       819,  819,  820,  820,  820,  682,  820,  821,  674,  821,
1173       821,  821,  821,  821,  821,  821,  821,  821,  821,  822,
1174       822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
1175       822,  823,  823,  823,  823,  823,  823,  823,  823,  823,
1176       823,  823,  823,  824,  824,  824,  673,  824,  825,  825,
1177       666,  825,  825,  825,  826,  826,  826,  665,  826,  827,
1178       827,  664,  827,  827,  827,  828,  828,  828,  828,  828,
1179       828,  828,  828,  828,  828,  828,  828,  829,  829,  829,
1180       829,  829,  829,  829,  829,  829,  829,  829,  829,  830,
1181       663,  830,  830,  830,  830,  830,  830,  830,  830,  830,
1182
1183       830,  831,  650,  649,  831,  831,  831,  831,  831,  831,
1184       831,  831,  831,  832,  832,  832,  832,  832,  832,  832,
1185       832,  832,  832,  832,  832,  833,  638,  637,  833,  833,
1186       833,  833,  833,  833,  833,  833,  833,  834,  834,  834,
1187       632,  834,  835,  835,  835,  835,  631,  835,  835,  836,
1188       630,  836,  629,  836,  840,  840,  840,  628,  840,  627,
1189       620,  840,  842,  842,  842,  619,  842,  611,  610,  842,
1190       844,  844,  844,  609,  844,  607,  606,  844,  845,  845,
1191       845,  605,  845,  586,  585,  845,  846,  846,  846,  584,
1192       846,  583,  582,  846,  581,  574,  573,  572,  571,  570,
1193
1194       569,  568,  567,  566,  565,  564,  563,  556,  555,  554,
1195       553,  552,  551,  541,  540,  539,  538,  536,  535,  534,
1196       514,  513,  512,  511,  510,  509,  508,  500,  499,  498,
1197       497,  496,  495,  494,  493,  492,  491,  490,  489,  488,
1198       481,  480,  479,  478,  477,  476,  465,  464,  463,  462,
1199       461,  460,  459,  458,  457,  443,  435,  433,  432,  431,
1200       430,  429,  428,  427,  420,  418,  417,  416,  415,  414,
1201       413,  412,  411,  410,  409,  408,  407,  406,  398,  397,
1202       396,  395,  394,  393,  383,  382,  380,  379,  378,  376,
1203       375,  373,  367,  359,  347,  346,  345,  344,  341,  333,
1204
1205       332,  331,  330,  327,  326,  325,  324,  321,  317,  312,
1206       311,  310,  307,  296,  291,  289,  288,  287,  286,  285,
1207       279,  260,  255,  248,  247,  246,  245,  244,  243,  240,
1208       239,  238,  237,  230,  228,  226,  225,  224,  216,  214,
1209       212,  211,  210,  208,  206,  205,  204,  201,  195,  194,
1210       193,  192,  191,  188,  183,  182,  180,  179,  178,  168,
1211       166,  155,  154,  153,  152,  151,  149,  130,  115,  114,
1212       113,  112,  104,  103,  102,  101,  100,   99,   89,   88,
1213        87,   86,   85,   84,   81,   80,   79,   78,   77,   76,
1214        74,   73,   72,   70,   58,   53,   50,   49,   48,   47,
1215
1216        46,   45,   34,   32,   31,   30,   27,   23,  812,  812,
1217       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
1218       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
1219       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
1220       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
1221       812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
1222       812,  812,  812,  812,  812,  812,  812
1223     } ;
1224
1225 /* Table of booleans, true if rule could match eol. */
1226 static yyconst flex_int32_t yy_rule_can_match_eol[48] =
1227     {   0,
1228 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
1229     0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 
1230     0, 0, 1, 1, 1, 1, 0, 0,     };
1231
1232 /* The intent behind this definition is that it'll catch
1233  * any uses of REJECT which flex missed.
1234  */
1235 #define REJECT reject_used_but_not_detected
1236 #define yymore() yymore_used_but_not_detected
1237 #define YY_MORE_ADJ 0
1238 #define YY_RESTORE_YY_MORE_OFFSET
1239 #line 1 "bitbakescanner.l"
1240 /* bbf.flex 
1241
1242    written by Marc Singer
1243    6 January 2005
1244
1245    This program is free software; you can redistribute it and/or
1246    modify it under the terms of the GNU General Public License as
1247    published by the Free Software Foundation; either version 2 of the
1248    License, or (at your option) any later version.
1249
1250    This program is distributed in the hope that it will be useful, but
1251    WITHOUT ANY WARRANTY; without even the implied warranty of
1252    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1253    General Public License for more details.
1254
1255    You should have received a copy of the GNU General Public License
1256    along with this program; if not, write to the Free Software
1257    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
1258    USA.
1259
1260    DESCRIPTION
1261    -----------
1262
1263    flex lexer specification for a BitBake input file parser.
1264
1265    Unfortunately, flex doesn't welcome comments within the rule sets.
1266    I say unfortunately because this lexer is unreasonably complex and
1267    comments would make the code much easier to comprehend.
1268
1269    The BitBake grammar is not regular.  In order to interpret all
1270    of the available input files, the lexer maintains much state as it
1271    parses.  There are places where this lexer will emit tokens that
1272    are invalid.  The parser will tend to catch these. 
1273
1274    The lexer requires C++ at the moment.  The only reason for this has
1275    to do with a very small amount of managed state.  Producing a C
1276    lexer should be a reasonably easy task as long as the %reentrant
1277    option is used.
1278
1279
1280    NOTES
1281    -----
1282
1283    o RVALUES.  There are three kinds of RVALUES.  There are unquoted
1284      values, double quote enclosed strings, and single quote 
1285      strings.  Quoted strings may contain unescaped quotes (of either
1286      type), *and* any type may span more than one line by using a
1287      continuation '\' at the end of the line.  This requires us to
1288      recognize all types of values with a single expression.
1289      Moreover, the only reason to quote a value is to include
1290      trailing or leading whitespace.  Whitespace within a value is
1291      preserved, ugh.
1292
1293    o CLASSES.  C_ patterns define classes.  Classes ought not include
1294      a repitition operator, instead letting the reference to the class
1295      define the repitition count.
1296
1297      C_SS - symbol start
1298      C_SB - symbol body
1299      C_SP - whitespace
1300
1301 */
1302 #line 71 "bitbakescanner.l"
1303
1304 #include "token.h"
1305 #include "lexer.h"
1306 #include "bitbakeparser.h"
1307 #include <ctype.h>
1308
1309 extern void *bbparseAlloc(void *(*mallocProc)(size_t));
1310 extern void bbparseFree(void *p, void (*freeProc)(void*));
1311 extern void *bbparseAlloc(void *(*mallocProc)(size_t));
1312 extern void *bbparse(void*, int, token_t, lex_t*);
1313 extern void bbparseTrace(FILE *TraceFILE, char *zTracePrompt);
1314
1315 //static const char* rgbInput;
1316 //static size_t cbInput;
1317
1318 extern "C" {
1319
1320 int lineError;
1321 int errorParse;
1322
1323 enum {
1324   errorNone = 0,
1325   errorUnexpectedInput,
1326   errorUnsupportedFeature,
1327 };
1328
1329 }
1330
1331 #define YY_EXTRA_TYPE lex_t*
1332
1333         /* Read from buffer */
1334 #define YY_INPUT(buf,result,max_size) \
1335  { yyextra->input(buf, &result, max_size); }
1336
1337 //#define YY_DECL static size_t yylex ()
1338
1339 #define ERROR(e) \
1340   do { lineError = yylineno; errorParse = e; yyterminate (); } while (0)
1341
1342 static const char* fixup_escapes (const char* sz);
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354 #line 1355 "<stdout>"
1355
1356 #define INITIAL 0
1357 #define S_DEF 1
1358 #define S_DEF_ARGS 2
1359 #define S_DEF_BODY 3
1360 #define S_FUNC 4
1361 #define S_INCLUDE 5
1362 #define S_INHERIT 6
1363 #define S_REQUIRE 7
1364 #define S_PROC 8
1365 #define S_RVALUE 9
1366 #define S_TASK 10
1367
1368 #ifndef YY_NO_UNISTD_H
1369 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1370  * down here because we want the user's section 1 to have been scanned first.
1371  * The user has a chance to override it with an option.
1372  */
1373 #include <unistd.h>
1374 #endif
1375
1376 #ifndef YY_EXTRA_TYPE
1377 #define YY_EXTRA_TYPE void *
1378 #endif
1379
1380 /* Holds the entire state of the reentrant scanner. */
1381 struct yyguts_t
1382     {
1383
1384     /* User-defined. Not touched by flex. */
1385     YY_EXTRA_TYPE yyextra_r;
1386
1387     /* The rest are the same as the globals declared in the non-reentrant scanner. */
1388     FILE *yyin_r, *yyout_r;
1389     size_t yy_buffer_stack_top; /**< index of top of stack. */
1390     size_t yy_buffer_stack_max; /**< capacity of stack. */
1391     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1392     char yy_hold_char;
1393     int yy_n_chars;
1394     int yyleng_r;
1395     char *yy_c_buf_p;
1396     int yy_init;
1397     int yy_start;
1398     int yy_did_buffer_switch_on_eof;
1399     int yy_start_stack_ptr;
1400     int yy_start_stack_depth;
1401     int *yy_start_stack;
1402     yy_state_type yy_last_accepting_state;
1403     char* yy_last_accepting_cpos;
1404
1405     int yylineno_r;
1406     int yy_flex_debug_r;
1407
1408     char *yytext_r;
1409     int yy_more_flag;
1410     int yy_more_len;
1411
1412     }; /* end struct yyguts_t */
1413
1414 static int yy_init_globals (yyscan_t yyscanner );
1415
1416 /* Accessor methods to globals.
1417    These are made visible to non-reentrant scanners for convenience. */
1418
1419 int yylex_destroy (yyscan_t yyscanner );
1420
1421 int yyget_debug (yyscan_t yyscanner );
1422
1423 void yyset_debug (int debug_flag ,yyscan_t yyscanner );
1424
1425 YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner );
1426
1427 void yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1428
1429 FILE *yyget_in (yyscan_t yyscanner );
1430
1431 void yyset_in  (FILE * in_str ,yyscan_t yyscanner );
1432
1433 FILE *yyget_out (yyscan_t yyscanner );
1434
1435 void yyset_out  (FILE * out_str ,yyscan_t yyscanner );
1436
1437 int yyget_leng (yyscan_t yyscanner );
1438
1439 char *yyget_text (yyscan_t yyscanner );
1440
1441 int yyget_lineno (yyscan_t yyscanner );
1442
1443 void yyset_lineno (int line_number ,yyscan_t yyscanner );
1444
1445 /* Macros after this point can all be overridden by user definitions in
1446  * section 1.
1447  */
1448
1449 #ifndef YY_SKIP_YYWRAP
1450 #ifdef __cplusplus
1451 extern "C" int yywrap (yyscan_t yyscanner );
1452 #else
1453 extern int yywrap (yyscan_t yyscanner );
1454 #endif
1455 #endif
1456
1457     static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
1458     
1459 #ifndef yytext_ptr
1460 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1461 #endif
1462
1463 #ifdef YY_NEED_STRLEN
1464 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1465 #endif
1466
1467 #ifndef YY_NO_INPUT
1468
1469 #ifdef __cplusplus
1470 static int yyinput (yyscan_t yyscanner );
1471 #else
1472 static int input (yyscan_t yyscanner );
1473 #endif
1474
1475 #endif
1476
1477     static void yy_push_state (int new_state ,yyscan_t yyscanner);
1478     
1479     static void yy_pop_state (yyscan_t yyscanner );
1480     
1481     static int yy_top_state (yyscan_t yyscanner );
1482     
1483 /* Amount of stuff to slurp up with each read. */
1484 #ifndef YY_READ_BUF_SIZE
1485 #define YY_READ_BUF_SIZE 8192
1486 #endif
1487
1488 /* Copy whatever the last rule matched to the standard output. */
1489 #ifndef ECHO
1490 /* This used to be an fputs(), but since the string might contain NUL's,
1491  * we now use fwrite().
1492  */
1493 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1494 #endif
1495
1496 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1497  * is returned in "result".
1498  */
1499 #ifndef YY_INPUT
1500 #define YY_INPUT(buf,result,max_size) \
1501         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1502                 { \
1503                 int c = '*'; \
1504                 size_t n; \
1505                 for ( n = 0; n < max_size && \
1506                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1507                         buf[n] = (char) c; \
1508                 if ( c == '\n' ) \
1509                         buf[n++] = (char) c; \
1510                 if ( c == EOF && ferror( yyin ) ) \
1511                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
1512                 result = n; \
1513                 } \
1514         else \
1515                 { \
1516                 errno=0; \
1517                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1518                         { \
1519                         if( errno != EINTR) \
1520                                 { \
1521                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1522                                 break; \
1523                                 } \
1524                         errno=0; \
1525                         clearerr(yyin); \
1526                         } \
1527                 }\
1528 \
1529
1530 #endif
1531
1532 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1533  * we don't want an extra ';' after the "return" because that will cause
1534  * some compilers to complain about unreachable statements.
1535  */
1536 #ifndef yyterminate
1537 #define yyterminate() return YY_NULL
1538 #endif
1539
1540 /* Number of entries by which start-condition stack grows. */
1541 #ifndef YY_START_STACK_INCR
1542 #define YY_START_STACK_INCR 25
1543 #endif
1544
1545 /* Report a fatal error. */
1546 #ifndef YY_FATAL_ERROR
1547 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1548 #endif
1549
1550 /* end tables serialization structures and prototypes */
1551
1552 /* Default declaration of generated scanner - a define so the user can
1553  * easily add parameters.
1554  */
1555 #ifndef YY_DECL
1556 #define YY_DECL_IS_OURS 1
1557
1558 extern int yylex (yyscan_t yyscanner);
1559
1560 #define YY_DECL int yylex (yyscan_t yyscanner)
1561 #endif /* !YY_DECL */
1562
1563 /* Code executed at the beginning of each rule, after yytext and yyleng
1564  * have been set up.
1565  */
1566 #ifndef YY_USER_ACTION
1567 #define YY_USER_ACTION
1568 #endif
1569
1570 /* Code executed at the end of each rule. */
1571 #ifndef YY_BREAK
1572 #define YY_BREAK break;
1573 #endif
1574
1575 #define YY_RULE_SETUP \
1576         YY_USER_ACTION
1577
1578 /** The main scanner function which does all the work.
1579  */
1580 YY_DECL
1581 {
1582         register yy_state_type yy_current_state;
1583         register char *yy_cp, *yy_bp;
1584         register int yy_act;
1585     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1586
1587 #line 164 "bitbakescanner.l"
1588
1589
1590 #line 1591 "<stdout>"
1591
1592         if ( yyg->yy_init )
1593                 {
1594                 yyg->yy_init = 0;
1595
1596 #ifdef YY_USER_INIT
1597                 YY_USER_INIT;
1598 #endif
1599
1600                 if ( ! yyg->yy_start )
1601                         yyg->yy_start = 1;      /* first start state */
1602
1603                 if ( ! yyin )
1604                         yyin = stdin;
1605
1606                 if ( ! yyout )
1607                         yyout = stdout;
1608
1609                 if ( ! YY_CURRENT_BUFFER ) {
1610                         yyensure_buffer_stack (yyscanner);
1611                         YY_CURRENT_BUFFER_LVALUE =
1612                                 yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1613                 }
1614
1615                 yy_load_buffer_state(yyscanner );
1616                 }
1617
1618         while ( 1 )             /* loops until end-of-file is reached */
1619                 {
1620                 yy_cp = yyg->yy_c_buf_p;
1621
1622                 /* Support of yytext. */
1623                 *yy_cp = yyg->yy_hold_char;
1624
1625                 /* yy_bp points to the position in yy_ch_buf of the start of
1626                  * the current run.
1627                  */
1628                 yy_bp = yy_cp;
1629
1630                 yy_current_state = yyg->yy_start;
1631 yy_match:
1632                 do
1633                         {
1634                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1635                         if ( yy_accept[yy_current_state] )
1636                                 {
1637                                 yyg->yy_last_accepting_state = yy_current_state;
1638                                 yyg->yy_last_accepting_cpos = yy_cp;
1639                                 }
1640                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1641                                 {
1642                                 yy_current_state = (int) yy_def[yy_current_state];
1643                                 if ( yy_current_state >= 813 )
1644                                         yy_c = yy_meta[(unsigned int) yy_c];
1645                                 }
1646                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1647                         ++yy_cp;
1648                         }
1649                 while ( yy_current_state != 812 );
1650                 yy_cp = yyg->yy_last_accepting_cpos;
1651                 yy_current_state = yyg->yy_last_accepting_state;
1652
1653 yy_find_action:
1654                 yy_act = yy_accept[yy_current_state];
1655
1656                 YY_DO_BEFORE_ACTION;
1657
1658                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1659                         {
1660                         int yyl;
1661                         for ( yyl = 0; yyl < yyleng; ++yyl )
1662                                 if ( yytext[yyl] == '\n' )
1663                                            
1664     do{ yylineno++;
1665         yycolumn=0;
1666     }while(0)
1667 ;
1668                         }
1669
1670 do_action:      /* This label is used only to access EOF actions. */
1671
1672                 switch ( yy_act )
1673         { /* beginning of action switch */
1674                         case 0: /* must back up */
1675                         /* undo the effects of YY_DO_BEFORE_ACTION */
1676                         *yy_cp = yyg->yy_hold_char;
1677                         yy_cp = yyg->yy_last_accepting_cpos;
1678                         yy_current_state = yyg->yy_last_accepting_state;
1679                         goto yy_find_action;
1680
1681 case 1:
1682 YY_RULE_SETUP
1683 #line 166 "bitbakescanner.l"
1684 { BEGIN S_RVALUE;
1685                                   yyextra->accept (T_OP_APPEND); }
1686         YY_BREAK
1687 case 2:
1688 YY_RULE_SETUP
1689 #line 168 "bitbakescanner.l"
1690 { BEGIN S_RVALUE;
1691                                   yyextra->accept (T_OP_PREPEND); }
1692         YY_BREAK
1693 case 3:
1694 YY_RULE_SETUP
1695 #line 170 "bitbakescanner.l"
1696 { BEGIN S_RVALUE;
1697                                   yyextra->accept (T_OP_IMMEDIATE); }
1698         YY_BREAK
1699 case 4:
1700 YY_RULE_SETUP
1701 #line 172 "bitbakescanner.l"
1702 { BEGIN S_RVALUE;
1703                                   yyextra->accept (T_OP_ASSIGN); }
1704         YY_BREAK
1705 case 5:
1706 YY_RULE_SETUP
1707 #line 174 "bitbakescanner.l"
1708 { BEGIN S_RVALUE;
1709                                   yyextra->accept (T_OP_PREDOT); }
1710         YY_BREAK
1711 case 6:
1712 YY_RULE_SETUP
1713 #line 176 "bitbakescanner.l"
1714 { BEGIN S_RVALUE;
1715                                   yyextra->accept (T_OP_POSTDOT); }
1716         YY_BREAK
1717 case 7:
1718 YY_RULE_SETUP
1719 #line 178 "bitbakescanner.l"
1720 { BEGIN S_RVALUE;
1721                                   yyextra->accept (T_OP_COND); }
1722         YY_BREAK
1723 case 8:
1724 /* rule 8 can match eol */
1725 YY_RULE_SETUP
1726 #line 181 "bitbakescanner.l"
1727 {  }
1728         YY_BREAK
1729 case 9:
1730 /* rule 9 can match eol */
1731 YY_RULE_SETUP
1732 #line 182 "bitbakescanner.l"
1733 { BEGIN INITIAL;
1734                                   size_t cb = yyleng;
1735                                   while (cb && isspace (yytext[cb - 1]))
1736                                       --cb;
1737                                   yytext[cb - 1] = 0;
1738                                   yyextra->accept (T_STRING, yytext + 1); }
1739         YY_BREAK
1740 case 10:
1741 /* rule 10 can match eol */
1742 YY_RULE_SETUP
1743 #line 188 "bitbakescanner.l"
1744 { BEGIN INITIAL;
1745                                   size_t cb = yyleng;
1746                                   while (cb && isspace (yytext[cb - 1]))
1747                                       --cb;
1748                                   yytext[cb - 1] = 0;
1749                                   yyextra->accept (T_STRING, yytext + 1); }
1750         YY_BREAK
1751 case 11:
1752 /* rule 11 can match eol */
1753 YY_RULE_SETUP
1754 #line 195 "bitbakescanner.l"
1755 { ERROR (errorUnexpectedInput);  }
1756         YY_BREAK
1757 case 12:
1758 /* rule 12 can match eol */
1759 YY_RULE_SETUP
1760 #line 196 "bitbakescanner.l"
1761 { BEGIN INITIAL;
1762                                   yyextra->accept (T_STRING, NULL); }
1763         YY_BREAK
1764 case 13:
1765 YY_RULE_SETUP
1766 #line 199 "bitbakescanner.l"
1767 { BEGIN S_INCLUDE;
1768                                   yyextra->accept (T_INCLUDE); }
1769         YY_BREAK
1770 case 14:
1771 YY_RULE_SETUP
1772 #line 201 "bitbakescanner.l"
1773 { BEGIN S_REQUIRE;
1774                                   yyextra->accept (T_REQUIRE); }
1775         YY_BREAK
1776 case 15:
1777 YY_RULE_SETUP
1778 #line 203 "bitbakescanner.l"
1779 { BEGIN S_INHERIT;
1780                                   yyextra->accept (T_INHERIT); }
1781         YY_BREAK
1782 case 16:
1783 YY_RULE_SETUP
1784 #line 205 "bitbakescanner.l"
1785 { BEGIN S_TASK;
1786                                   yyextra->accept (T_ADDTASK); }
1787         YY_BREAK
1788 case 17:
1789 YY_RULE_SETUP
1790 #line 207 "bitbakescanner.l"
1791 { yyextra->accept (T_ADDHANDLER); }
1792         YY_BREAK
1793 case 18:
1794 YY_RULE_SETUP
1795 #line 208 "bitbakescanner.l"
1796 { BEGIN S_FUNC;
1797                                   yyextra->accept (T_EXPORT_FUNC); }
1798         YY_BREAK
1799 case 19:
1800 YY_RULE_SETUP
1801 #line 210 "bitbakescanner.l"
1802 { yyextra->accept (T_BEFORE); }
1803         YY_BREAK
1804 case 20:
1805 YY_RULE_SETUP
1806 #line 211 "bitbakescanner.l"
1807 { yyextra->accept (T_AFTER); }
1808         YY_BREAK
1809 case 21:
1810 YY_RULE_SETUP
1811 #line 212 "bitbakescanner.l"
1812 { yyextra->accept (T_EXPORT); }
1813         YY_BREAK
1814 case 22:
1815 YY_RULE_SETUP
1816 #line 214 "bitbakescanner.l"
1817 { yyextra->accept (T_FAKEROOT); }
1818         YY_BREAK
1819 case 23:
1820 YY_RULE_SETUP
1821 #line 215 "bitbakescanner.l"
1822 { yyextra->accept (T_PYTHON); }
1823         YY_BREAK
1824 case 24:
1825 /* rule 24 can match eol */
1826 YY_RULE_SETUP
1827 #line 216 "bitbakescanner.l"
1828 { BEGIN S_PROC;
1829                                   yyextra->accept (T_PROC_OPEN); }
1830         YY_BREAK
1831 case 25:
1832 /* rule 25 can match eol */
1833 YY_RULE_SETUP
1834 #line 218 "bitbakescanner.l"
1835 { BEGIN INITIAL;
1836                                   yyextra->accept (T_PROC_CLOSE); }
1837         YY_BREAK
1838 case 26:
1839 /* rule 26 can match eol */
1840 YY_RULE_SETUP
1841 #line 220 "bitbakescanner.l"
1842 { yyextra->accept (T_PROC_BODY, yytext); }
1843         YY_BREAK
1844 case 27:
1845 YY_RULE_SETUP
1846 #line 222 "bitbakescanner.l"
1847 { BEGIN S_DEF; }
1848         YY_BREAK
1849 case 28:
1850 YY_RULE_SETUP
1851 #line 223 "bitbakescanner.l"
1852 { BEGIN S_DEF_ARGS;
1853                                   yyextra->accept (T_SYMBOL, yytext); }
1854         YY_BREAK
1855 case 29:
1856 YY_RULE_SETUP
1857 #line 225 "bitbakescanner.l"
1858 { yyextra->accept (T_DEF_ARGS, yytext); }
1859         YY_BREAK
1860 case 30:
1861 /* rule 30 can match eol */
1862 YY_RULE_SETUP
1863 #line 226 "bitbakescanner.l"
1864 { BEGIN S_DEF_BODY; }
1865         YY_BREAK
1866 case 31:
1867 /* rule 31 can match eol */
1868 YY_RULE_SETUP
1869 #line 227 "bitbakescanner.l"
1870 { yyextra->accept (T_DEF_BODY, yytext); }
1871         YY_BREAK
1872 case 32:
1873 /* rule 32 can match eol */
1874 YY_RULE_SETUP
1875 #line 228 "bitbakescanner.l"
1876 { yyextra->accept (T_DEF_BODY, yytext); }
1877         YY_BREAK
1878 case 33:
1879 YY_RULE_SETUP
1880 #line 229 "bitbakescanner.l"
1881 { BEGIN INITIAL; unput (yytext[0]); }
1882         YY_BREAK
1883 case 34:
1884 /* rule 34 can match eol */
1885 YY_RULE_SETUP
1886 #line 231 "bitbakescanner.l"
1887 { }
1888         YY_BREAK
1889 case 35:
1890 YY_RULE_SETUP
1891 #line 233 "bitbakescanner.l"
1892 { yyextra->accept (T_SYMBOL, yytext); }
1893         YY_BREAK
1894 case 36:
1895 YY_RULE_SETUP
1896 #line 234 "bitbakescanner.l"
1897 { yyextra->accept (T_VARIABLE, yytext); }
1898         YY_BREAK
1899 case 37:
1900 YY_RULE_SETUP
1901 #line 236 "bitbakescanner.l"
1902 { yyextra->accept (T_TSYMBOL, yytext); }
1903         YY_BREAK
1904 case 38:
1905 YY_RULE_SETUP
1906 #line 237 "bitbakescanner.l"
1907 { yyextra->accept (T_FSYMBOL, yytext); }
1908         YY_BREAK
1909 case 39:
1910 YY_RULE_SETUP
1911 #line 238 "bitbakescanner.l"
1912 { yyextra->accept (T_ISYMBOL, yytext); }
1913         YY_BREAK
1914 case 40:
1915 YY_RULE_SETUP
1916 #line 239 "bitbakescanner.l"
1917 { BEGIN INITIAL;
1918                                   yyextra->accept (T_ISYMBOL, yytext); }
1919         YY_BREAK
1920 case 41:
1921 YY_RULE_SETUP
1922 #line 241 "bitbakescanner.l"
1923 { BEGIN INITIAL;
1924                                   yyextra->accept (T_ISYMBOL, yytext); }
1925         YY_BREAK
1926 case 42:
1927 /* rule 42 can match eol */
1928 YY_RULE_SETUP
1929 #line 243 "bitbakescanner.l"
1930 { BEGIN INITIAL; }
1931         YY_BREAK
1932 case 43:
1933 /* rule 43 can match eol */
1934 YY_RULE_SETUP
1935 #line 244 "bitbakescanner.l"
1936 { BEGIN INITIAL; }
1937         YY_BREAK
1938 case 44:
1939 /* rule 44 can match eol */
1940 YY_RULE_SETUP
1941 #line 245 "bitbakescanner.l"
1942 { BEGIN INITIAL; }
1943         YY_BREAK
1944 case 45:
1945 /* rule 45 can match eol */
1946 YY_RULE_SETUP
1947 #line 247 "bitbakescanner.l"
1948 /* Insignificant whitespace */
1949         YY_BREAK
1950 case 46:
1951 YY_RULE_SETUP
1952 #line 249 "bitbakescanner.l"
1953 { ERROR (errorUnexpectedInput); }
1954         YY_BREAK
1955 /* Check for premature termination */
1956 case YY_STATE_EOF(INITIAL):
1957 case YY_STATE_EOF(S_DEF):
1958 case YY_STATE_EOF(S_DEF_ARGS):
1959 case YY_STATE_EOF(S_DEF_BODY):
1960 case YY_STATE_EOF(S_FUNC):
1961 case YY_STATE_EOF(S_INCLUDE):
1962 case YY_STATE_EOF(S_INHERIT):
1963 case YY_STATE_EOF(S_REQUIRE):
1964 case YY_STATE_EOF(S_PROC):
1965 case YY_STATE_EOF(S_RVALUE):
1966 case YY_STATE_EOF(S_TASK):
1967 #line 252 "bitbakescanner.l"
1968 { return T_EOF; }
1969         YY_BREAK
1970 case 47:
1971 YY_RULE_SETUP
1972 #line 254 "bitbakescanner.l"
1973 ECHO;
1974         YY_BREAK
1975 #line 1976 "<stdout>"
1976
1977         case YY_END_OF_BUFFER:
1978                 {
1979                 /* Amount of text matched not including the EOB char. */
1980                 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1981
1982                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1983                 *yy_cp = yyg->yy_hold_char;
1984                 YY_RESTORE_YY_MORE_OFFSET
1985
1986                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1987                         {
1988                         /* We're scanning a new file or input source.  It's
1989                          * possible that this happened because the user
1990                          * just pointed yyin at a new source and called
1991                          * yylex().  If so, then we have to assure
1992                          * consistency between YY_CURRENT_BUFFER and our
1993                          * globals.  Here is the right place to do so, because
1994                          * this is the first action (other than possibly a
1995                          * back-up) that will match for the new input source.
1996                          */
1997                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1998                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1999                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2000                         }
2001
2002                 /* Note that here we test for yy_c_buf_p "<=" to the position
2003                  * of the first EOB in the buffer, since yy_c_buf_p will
2004                  * already have been incremented past the NUL character
2005                  * (since all states make transitions on EOB to the
2006                  * end-of-buffer state).  Contrast this with the test
2007                  * in input().
2008                  */
2009                 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2010                         { /* This was really a NUL. */
2011                         yy_state_type yy_next_state;
2012
2013                         yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
2014
2015                         yy_current_state = yy_get_previous_state( yyscanner );
2016
2017                         /* Okay, we're now positioned to make the NUL
2018                          * transition.  We couldn't have
2019                          * yy_get_previous_state() go ahead and do it
2020                          * for us because it doesn't know how to deal
2021                          * with the possibility of jamming (and we don't
2022                          * want to build jamming into it because then it
2023                          * will run more slowly).
2024                          */
2025
2026                         yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
2027
2028                         yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2029
2030                         if ( yy_next_state )
2031                                 {
2032                                 /* Consume the NUL. */
2033                                 yy_cp = ++yyg->yy_c_buf_p;
2034                                 yy_current_state = yy_next_state;
2035                                 goto yy_match;
2036                                 }
2037
2038                         else
2039                                 {
2040                                 yy_cp = yyg->yy_last_accepting_cpos;
2041                                 yy_current_state = yyg->yy_last_accepting_state;
2042                                 goto yy_find_action;
2043                                 }
2044                         }
2045
2046                 else switch ( yy_get_next_buffer( yyscanner ) )
2047                         {
2048                         case EOB_ACT_END_OF_FILE:
2049                                 {
2050                                 yyg->yy_did_buffer_switch_on_eof = 0;
2051
2052                                 if ( yywrap(yyscanner ) )
2053                                         {
2054                                         /* Note: because we've taken care in
2055                                          * yy_get_next_buffer() to have set up
2056                                          * yytext, we can now set up
2057                                          * yy_c_buf_p so that if some total
2058                                          * hoser (like flex itself) wants to
2059                                          * call the scanner after we return the
2060                                          * YY_NULL, it'll still work - another
2061                                          * YY_NULL will get returned.
2062                                          */
2063                                         yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2064
2065                                         yy_act = YY_STATE_EOF(YY_START);
2066                                         goto do_action;
2067                                         }
2068
2069                                 else
2070                                         {
2071                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
2072                                                 YY_NEW_FILE;
2073                                         }
2074                                 break;
2075                                 }
2076
2077                         case EOB_ACT_CONTINUE_SCAN:
2078                                 yyg->yy_c_buf_p =
2079                                         yyg->yytext_ptr + yy_amount_of_matched_text;
2080
2081                                 yy_current_state = yy_get_previous_state( yyscanner );
2082
2083                                 yy_cp = yyg->yy_c_buf_p;
2084                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2085                                 goto yy_match;
2086
2087                         case EOB_ACT_LAST_MATCH:
2088                                 yyg->yy_c_buf_p =
2089                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
2090
2091                                 yy_current_state = yy_get_previous_state( yyscanner );
2092
2093                                 yy_cp = yyg->yy_c_buf_p;
2094                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2095                                 goto yy_find_action;
2096                         }
2097                 break;
2098                 }
2099
2100         default:
2101                 YY_FATAL_ERROR(
2102                         "fatal flex scanner internal error--no action found" );
2103         } /* end of action switch */
2104                 } /* end of scanning one token */
2105 } /* end of yylex */
2106
2107 /* yy_get_next_buffer - try to read in a new buffer
2108  *
2109  * Returns a code representing an action:
2110  *      EOB_ACT_LAST_MATCH -
2111  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2112  *      EOB_ACT_END_OF_FILE - end of file
2113  */
2114 static int yy_get_next_buffer (yyscan_t yyscanner)
2115 {
2116     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2117         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2118         register char *source = yyg->yytext_ptr;
2119         register int number_to_move, i;
2120         int ret_val;
2121
2122         if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2123                 YY_FATAL_ERROR(
2124                 "fatal flex scanner internal error--end of buffer missed" );
2125
2126         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2127                 { /* Don't try to fill the buffer, so this is an EOF. */
2128                 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2129                         {
2130                         /* We matched a single character, the EOB, so
2131                          * treat this as a final EOF.
2132                          */
2133                         return EOB_ACT_END_OF_FILE;
2134                         }
2135
2136                 else
2137                         {
2138                         /* We matched some text prior to the EOB, first
2139                          * process it.
2140                          */
2141                         return EOB_ACT_LAST_MATCH;
2142                         }
2143                 }
2144
2145         /* Try to read more data. */
2146
2147         /* First move last chars to start of buffer. */
2148         number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
2149
2150         for ( i = 0; i < number_to_move; ++i )
2151                 *(dest++) = *(source++);
2152
2153         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2154                 /* don't do the read, it's not guaranteed to return an EOF,
2155                  * just force an EOF
2156                  */
2157                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2158
2159         else
2160                 {
2161                         int num_to_read =
2162                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2163
2164                 while ( num_to_read <= 0 )
2165                         { /* Not enough room in the buffer - grow it. */
2166
2167                         /* just a shorter name for the current buffer */
2168                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2169
2170                         int yy_c_buf_p_offset =
2171                                 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2172
2173                         if ( b->yy_is_our_buffer )
2174                                 {
2175                                 int new_size = b->yy_buf_size * 2;
2176
2177                                 if ( new_size <= 0 )
2178                                         b->yy_buf_size += b->yy_buf_size / 8;
2179                                 else
2180                                         b->yy_buf_size *= 2;
2181
2182                                 b->yy_ch_buf = (char *)
2183                                         /* Include room in for 2 EOB chars. */
2184                                         yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
2185                                 }
2186                         else
2187                                 /* Can't grow it, we don't own it. */
2188                                 b->yy_ch_buf = 0;
2189
2190                         if ( ! b->yy_ch_buf )
2191                                 YY_FATAL_ERROR(
2192                                 "fatal error - scanner input buffer overflow" );
2193
2194                         yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2195
2196                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2197                                                 number_to_move - 1;
2198
2199                         }
2200
2201                 if ( num_to_read > YY_READ_BUF_SIZE )
2202                         num_to_read = YY_READ_BUF_SIZE;
2203
2204                 /* Read in more data. */
2205                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2206                         yyg->yy_n_chars, num_to_read );
2207
2208                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2209                 }
2210
2211         if ( yyg->yy_n_chars == 0 )
2212                 {
2213                 if ( number_to_move == YY_MORE_ADJ )
2214                         {
2215                         ret_val = EOB_ACT_END_OF_FILE;
2216                         yyrestart(yyin  ,yyscanner);
2217                         }
2218
2219                 else
2220                         {
2221                         ret_val = EOB_ACT_LAST_MATCH;
2222                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2223                                 YY_BUFFER_EOF_PENDING;
2224                         }
2225                 }
2226
2227         else
2228                 ret_val = EOB_ACT_CONTINUE_SCAN;
2229
2230         yyg->yy_n_chars += number_to_move;
2231         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2232         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2233
2234         yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2235
2236         return ret_val;
2237 }
2238
2239 /* yy_get_previous_state - get the state just before the EOB char was reached */
2240
2241     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
2242 {
2243         register yy_state_type yy_current_state;
2244         register char *yy_cp;
2245     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2246
2247         yy_current_state = yyg->yy_start;
2248
2249         for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2250                 {
2251                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2252                 if ( yy_accept[yy_current_state] )
2253                         {
2254                         yyg->yy_last_accepting_state = yy_current_state;
2255                         yyg->yy_last_accepting_cpos = yy_cp;
2256                         }
2257                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2258                         {
2259                         yy_current_state = (int) yy_def[yy_current_state];
2260                         if ( yy_current_state >= 813 )
2261                                 yy_c = yy_meta[(unsigned int) yy_c];
2262                         }
2263                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2264                 }
2265
2266         return yy_current_state;
2267 }
2268
2269 /* yy_try_NUL_trans - try to make a transition on the NUL character
2270  *
2271  * synopsis
2272  *      next_state = yy_try_NUL_trans( current_state );
2273  */
2274     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
2275 {
2276         register int yy_is_jam;
2277     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2278         register char *yy_cp = yyg->yy_c_buf_p;
2279
2280         register YY_CHAR yy_c = 1;
2281         if ( yy_accept[yy_current_state] )
2282                 {
2283                 yyg->yy_last_accepting_state = yy_current_state;
2284                 yyg->yy_last_accepting_cpos = yy_cp;
2285                 }
2286         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2287                 {
2288                 yy_current_state = (int) yy_def[yy_current_state];
2289                 if ( yy_current_state >= 813 )
2290                         yy_c = yy_meta[(unsigned int) yy_c];
2291                 }
2292         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2293         yy_is_jam = (yy_current_state == 812);
2294
2295         return yy_is_jam ? 0 : yy_current_state;
2296 }
2297
2298     static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
2299 {
2300         register char *yy_cp;
2301     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2302
2303     yy_cp = yyg->yy_c_buf_p;
2304
2305         /* undo effects of setting up yytext */
2306         *yy_cp = yyg->yy_hold_char;
2307
2308         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2309                 { /* need to shift things up to make room */
2310                 /* +2 for EOB chars. */
2311                 register int number_to_move = yyg->yy_n_chars + 2;
2312                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2313                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2314                 register char *source =
2315                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2316
2317                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2318                         *--dest = *--source;
2319
2320                 yy_cp += (int) (dest - source);
2321                 yy_bp += (int) (dest - source);
2322                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2323                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2324
2325                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2326                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
2327                 }
2328
2329         *--yy_cp = (char) c;
2330
2331     if ( c == '\n' ){
2332         --yylineno;
2333     }
2334
2335         yyg->yytext_ptr = yy_bp;
2336         yyg->yy_hold_char = *yy_cp;
2337         yyg->yy_c_buf_p = yy_cp;
2338 }
2339
2340 #ifndef YY_NO_INPUT
2341 #ifdef __cplusplus
2342     static int yyinput (yyscan_t yyscanner)
2343 #else
2344     static int input  (yyscan_t yyscanner)
2345 #endif
2346
2347 {
2348         int c;
2349     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2350
2351         *yyg->yy_c_buf_p = yyg->yy_hold_char;
2352
2353         if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2354                 {
2355                 /* yy_c_buf_p now points to the character we want to return.
2356                  * If this occurs *before* the EOB characters, then it's a
2357                  * valid NUL; if not, then we've hit the end of the buffer.
2358                  */
2359                 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2360                         /* This was really a NUL. */
2361                         *yyg->yy_c_buf_p = '\0';
2362
2363                 else
2364                         { /* need more input */
2365                         int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2366                         ++yyg->yy_c_buf_p;
2367
2368                         switch ( yy_get_next_buffer( yyscanner ) )
2369                                 {
2370                                 case EOB_ACT_LAST_MATCH:
2371                                         /* This happens because yy_g_n_b()
2372                                          * sees that we've accumulated a
2373                                          * token and flags that we need to
2374                                          * try matching the token before
2375                                          * proceeding.  But for input(),
2376                                          * there's no matching to consider.
2377                                          * So convert the EOB_ACT_LAST_MATCH
2378                                          * to EOB_ACT_END_OF_FILE.
2379                                          */
2380
2381                                         /* Reset buffer status. */
2382                                         yyrestart(yyin ,yyscanner);
2383
2384                                         /*FALLTHROUGH*/
2385
2386                                 case EOB_ACT_END_OF_FILE:
2387                                         {
2388                                         if ( yywrap(yyscanner ) )
2389                                                 return EOF;
2390
2391                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
2392                                                 YY_NEW_FILE;
2393 #ifdef __cplusplus
2394                                         return yyinput(yyscanner);
2395 #else
2396                                         return input(yyscanner);
2397 #endif
2398                                         }
2399
2400                                 case EOB_ACT_CONTINUE_SCAN:
2401                                         yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2402                                         break;
2403                                 }
2404                         }
2405                 }
2406
2407         c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
2408         *yyg->yy_c_buf_p = '\0';        /* preserve yytext */
2409         yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2410
2411         if ( c == '\n' )
2412                    
2413     do{ yylineno++;
2414         yycolumn=0;
2415     }while(0)
2416 ;
2417
2418         return c;
2419 }
2420 #endif  /* ifndef YY_NO_INPUT */
2421
2422 /** Immediately switch to a different input stream.
2423  * @param input_file A readable stream.
2424  * @param yyscanner The scanner object.
2425  * @note This function does not reset the start condition to @c INITIAL .
2426  */
2427     void yyrestart  (FILE * input_file , yyscan_t yyscanner)
2428 {
2429     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2430
2431         if ( ! YY_CURRENT_BUFFER ){
2432         yyensure_buffer_stack (yyscanner);
2433                 YY_CURRENT_BUFFER_LVALUE =
2434             yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
2435         }
2436
2437         yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
2438         yy_load_buffer_state(yyscanner );
2439 }
2440
2441 /** Switch to a different input buffer.
2442  * @param new_buffer The new input buffer.
2443  * @param yyscanner The scanner object.
2444  */
2445     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
2446 {
2447     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2448
2449         /* TODO. We should be able to replace this entire function body
2450          * with
2451          *              yypop_buffer_state();
2452          *              yypush_buffer_state(new_buffer);
2453      */
2454         yyensure_buffer_stack (yyscanner);
2455         if ( YY_CURRENT_BUFFER == new_buffer )
2456                 return;
2457
2458         if ( YY_CURRENT_BUFFER )
2459                 {
2460                 /* Flush out information for old buffer. */
2461                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2462                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2463                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2464                 }
2465
2466         YY_CURRENT_BUFFER_LVALUE = new_buffer;
2467         yy_load_buffer_state(yyscanner );
2468
2469         /* We don't actually know whether we did this switch during
2470          * EOF (yywrap()) processing, but the only time this flag
2471          * is looked at is after yywrap() is called, so it's safe
2472          * to go ahead and always set it.
2473          */
2474         yyg->yy_did_buffer_switch_on_eof = 1;
2475 }
2476
2477 static void yy_load_buffer_state  (yyscan_t yyscanner)
2478 {
2479     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2480         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2481         yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2482         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2483         yyg->yy_hold_char = *yyg->yy_c_buf_p;
2484 }
2485
2486 /** Allocate and initialize an input buffer state.
2487  * @param file A readable stream.
2488  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2489  * @param yyscanner The scanner object.
2490  * @return the allocated buffer state.
2491  */
2492     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
2493 {
2494         YY_BUFFER_STATE b;
2495     
2496         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2497         if ( ! b )
2498                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2499
2500         b->yy_buf_size = size;
2501
2502         /* yy_ch_buf has to be 2 characters longer than the size given because
2503          * we need to put in 2 end-of-buffer characters.
2504          */
2505         b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ,yyscanner );
2506         if ( ! b->yy_ch_buf )
2507                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2508
2509         b->yy_is_our_buffer = 1;
2510
2511         yy_init_buffer(b,file ,yyscanner);
2512
2513         return b;
2514 }
2515
2516 /** Destroy the buffer.
2517  * @param b a buffer created with yy_create_buffer()
2518  * @param yyscanner The scanner object.
2519  */
2520     void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
2521 {
2522     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2523
2524         if ( ! b )
2525                 return;
2526
2527         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2528                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2529
2530         if ( b->yy_is_our_buffer )
2531                 yyfree((void *) b->yy_ch_buf ,yyscanner );
2532
2533         yyfree((void *) b ,yyscanner );
2534 }
2535
2536 /* Initializes or reinitializes a buffer.
2537  * This function is sometimes called more than once on the same buffer,
2538  * such as during a yyrestart() or at EOF.
2539  */
2540     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
2541
2542 {
2543         int oerrno = errno;
2544     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2545
2546         yy_flush_buffer(b ,yyscanner);
2547
2548         b->yy_input_file = file;
2549         b->yy_fill_buffer = 1;
2550
2551     /* If b is the current buffer, then yy_init_buffer was _probably_
2552      * called from yyrestart() or through yy_get_next_buffer.
2553      * In that case, we don't want to reset the lineno or column.
2554      */
2555     if (b != YY_CURRENT_BUFFER){
2556         b->yy_bs_lineno = 1;
2557         b->yy_bs_column = 0;
2558     }
2559
2560         b->yy_is_interactive = 0;
2561     
2562         errno = oerrno;
2563 }
2564
2565 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2566  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2567  * @param yyscanner The scanner object.
2568  */
2569     void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
2570 {
2571     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2572         if ( ! b )
2573                 return;
2574
2575         b->yy_n_chars = 0;
2576
2577         /* We always need two end-of-buffer characters.  The first causes
2578          * a transition to the end-of-buffer state.  The second causes
2579          * a jam in that state.
2580          */
2581         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2582         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2583
2584         b->yy_buf_pos = &b->yy_ch_buf[0];
2585
2586         b->yy_at_bol = 1;
2587         b->yy_buffer_status = YY_BUFFER_NEW;
2588
2589         if ( b == YY_CURRENT_BUFFER )
2590                 yy_load_buffer_state(yyscanner );
2591 }
2592
2593 /** Pushes the new state onto the stack. The new state becomes
2594  *  the current state. This function will allocate the stack
2595  *  if necessary.
2596  *  @param new_buffer The new state.
2597  *  @param yyscanner The scanner object.
2598  */
2599 void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2600 {
2601     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2602         if (new_buffer == NULL)
2603                 return;
2604
2605         yyensure_buffer_stack(yyscanner);
2606
2607         /* This block is copied from yy_switch_to_buffer. */
2608         if ( YY_CURRENT_BUFFER )
2609                 {
2610                 /* Flush out information for old buffer. */
2611                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2612                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2613                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2614                 }
2615
2616         /* Only push if top exists. Otherwise, replace top. */
2617         if (YY_CURRENT_BUFFER)
2618                 yyg->yy_buffer_stack_top++;
2619         YY_CURRENT_BUFFER_LVALUE = new_buffer;
2620
2621         /* copied from yy_switch_to_buffer. */
2622         yy_load_buffer_state(yyscanner );
2623         yyg->yy_did_buffer_switch_on_eof = 1;
2624 }
2625
2626 /** Removes and deletes the top of the stack, if present.
2627  *  The next element becomes the new top.
2628  *  @param yyscanner The scanner object.
2629  */
2630 void yypop_buffer_state (yyscan_t yyscanner)
2631 {
2632     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2633         if (!YY_CURRENT_BUFFER)
2634                 return;
2635
2636         yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2637         YY_CURRENT_BUFFER_LVALUE = NULL;
2638         if (yyg->yy_buffer_stack_top > 0)
2639                 --yyg->yy_buffer_stack_top;
2640
2641         if (YY_CURRENT_BUFFER) {
2642                 yy_load_buffer_state(yyscanner );
2643                 yyg->yy_did_buffer_switch_on_eof = 1;
2644         }
2645 }
2646
2647 /* Allocates the stack if it does not exist.
2648  *  Guarantees space for at least one push.
2649  */
2650 static void yyensure_buffer_stack (yyscan_t yyscanner)
2651 {
2652         int num_to_alloc;
2653     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2654
2655         if (!yyg->yy_buffer_stack) {
2656
2657                 /* First allocation is just for 2 elements, since we don't know if this
2658                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
2659                  * immediate realloc on the next call.
2660          */
2661                 num_to_alloc = 1;
2662                 yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
2663                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
2664                                                                 , yyscanner);
2665                 
2666                 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2667                                 
2668                 yyg->yy_buffer_stack_max = num_to_alloc;
2669                 yyg->yy_buffer_stack_top = 0;
2670                 return;
2671         }
2672
2673         if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2674
2675                 /* Increase the buffer to prepare for a possible push. */
2676                 int grow_size = 8 /* arbitrary grow size */;
2677
2678                 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2679                 yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
2680                                                                 (yyg->yy_buffer_stack,
2681                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
2682                                                                 , yyscanner);
2683
2684                 /* zero only the new slots.*/
2685                 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2686                 yyg->yy_buffer_stack_max = num_to_alloc;
2687         }
2688 }
2689
2690 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2691  * @param base the character buffer
2692  * @param size the size in bytes of the character buffer
2693  * @param yyscanner The scanner object.
2694  * @return the newly allocated buffer state object. 
2695  */
2696 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
2697 {
2698         YY_BUFFER_STATE b;
2699     
2700         if ( size < 2 ||
2701              base[size-2] != YY_END_OF_BUFFER_CHAR ||
2702              base[size-1] != YY_END_OF_BUFFER_CHAR )
2703                 /* They forgot to leave room for the EOB's. */
2704                 return 0;
2705
2706         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2707         if ( ! b )
2708                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2709
2710         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
2711         b->yy_buf_pos = b->yy_ch_buf = base;
2712         b->yy_is_our_buffer = 0;
2713         b->yy_input_file = 0;
2714         b->yy_n_chars = b->yy_buf_size;
2715         b->yy_is_interactive = 0;
2716         b->yy_at_bol = 1;
2717         b->yy_fill_buffer = 0;
2718         b->yy_buffer_status = YY_BUFFER_NEW;
2719
2720         yy_switch_to_buffer(b ,yyscanner );
2721
2722         return b;
2723 }
2724
2725 /** Setup the input buffer state to scan a string. The next call to yylex() will
2726  * scan from a @e copy of @a str.
2727  * @param str a NUL-terminated string to scan
2728  * @param yyscanner The scanner object.
2729  * @return the newly allocated buffer state object.
2730  * @note If you want to scan bytes that may contain NUL values, then use
2731  *       yy_scan_bytes() instead.
2732  */
2733 YY_BUFFER_STATE yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner)
2734 {
2735     
2736         return yy_scan_bytes(yy_str,strlen(yy_str) ,yyscanner);
2737 }
2738
2739 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2740  * scan from a @e copy of @a bytes.
2741  * @param bytes the byte buffer to scan
2742  * @param len the number of bytes in the buffer pointed to by @a bytes.
2743  * @param yyscanner The scanner object.
2744  * @return the newly allocated buffer state object.
2745  */
2746 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * bytes, int  len , yyscan_t yyscanner)
2747 {
2748         YY_BUFFER_STATE b;
2749         char *buf;
2750         yy_size_t n;
2751         int i;
2752     
2753         /* Get memory for full buffer, including space for trailing EOB's. */
2754         n = len + 2;
2755         buf = (char *) yyalloc(n ,yyscanner );
2756         if ( ! buf )
2757                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2758
2759         for ( i = 0; i < len; ++i )
2760                 buf[i] = bytes[i];
2761
2762         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2763
2764         b = yy_scan_buffer(buf,n ,yyscanner);
2765         if ( ! b )
2766                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2767
2768         /* It's okay to grow etc. this buffer, and we should throw it
2769          * away when we're done.
2770          */
2771         b->yy_is_our_buffer = 1;
2772
2773         return b;
2774 }
2775
2776     static void yy_push_state (int  new_state , yyscan_t yyscanner)
2777 {
2778     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2779         if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
2780                 {
2781                 yy_size_t new_size;
2782
2783                 yyg->yy_start_stack_depth += YY_START_STACK_INCR;
2784                 new_size = yyg->yy_start_stack_depth * sizeof( int );
2785
2786                 if ( ! yyg->yy_start_stack )
2787                         yyg->yy_start_stack = (int *) yyalloc(new_size ,yyscanner );
2788
2789                 else
2790                         yyg->yy_start_stack = (int *) yyrealloc((void *) yyg->yy_start_stack,new_size ,yyscanner );
2791
2792                 if ( ! yyg->yy_start_stack )
2793                         YY_FATAL_ERROR(
2794                         "out of memory expanding start-condition stack" );
2795                 }
2796
2797         yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START;
2798
2799         BEGIN(new_state);
2800 }
2801
2802     static void yy_pop_state  (yyscan_t yyscanner)
2803 {
2804     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2805         if ( --yyg->yy_start_stack_ptr < 0 )
2806                 YY_FATAL_ERROR( "start-condition stack underflow" );
2807
2808         BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]);
2809 }
2810
2811     static int yy_top_state  (yyscan_t yyscanner)
2812 {
2813     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2814         return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1];
2815 }
2816
2817 #ifndef YY_EXIT_FAILURE
2818 #define YY_EXIT_FAILURE 2
2819 #endif
2820
2821 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
2822 {
2823         (void) fprintf( stderr, "%s\n", msg );
2824         exit( YY_EXIT_FAILURE );
2825 }
2826
2827 /* Redefine yyless() so it works in section 3 code. */
2828
2829 #undef yyless
2830 #define yyless(n) \
2831         do \
2832                 { \
2833                 /* Undo effects of setting up yytext. */ \
2834         int yyless_macro_arg = (n); \
2835         YY_LESS_LINENO(yyless_macro_arg);\
2836                 yytext[yyleng] = yyg->yy_hold_char; \
2837                 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2838                 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2839                 *yyg->yy_c_buf_p = '\0'; \
2840                 yyleng = yyless_macro_arg; \
2841                 } \
2842         while ( 0 )
2843
2844 /* Accessor  methods (get/set functions) to struct members. */
2845
2846 /** Get the user-defined data for this scanner.
2847  * @param yyscanner The scanner object.
2848  */
2849 YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
2850 {
2851     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2852     return yyextra;
2853 }
2854
2855 /** Get the current line number.
2856  * @param yyscanner The scanner object.
2857  */
2858 int yyget_lineno  (yyscan_t yyscanner)
2859 {
2860     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2861     
2862         if (! YY_CURRENT_BUFFER)
2863             return 0;
2864     
2865     return yylineno;
2866 }
2867
2868 /** Get the current column number.
2869  * @param yyscanner The scanner object.
2870  */
2871 int yyget_column  (yyscan_t yyscanner)
2872 {
2873     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2874     
2875         if (! YY_CURRENT_BUFFER)
2876             return 0;
2877     
2878     return yycolumn;
2879 }
2880
2881 /** Get the input stream.
2882  * @param yyscanner The scanner object.
2883  */
2884 FILE *yyget_in  (yyscan_t yyscanner)
2885 {
2886     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2887     return yyin;
2888 }
2889
2890 /** Get the output stream.
2891  * @param yyscanner The scanner object.
2892  */
2893 FILE *yyget_out  (yyscan_t yyscanner)
2894 {
2895     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2896     return yyout;
2897 }
2898
2899 /** Get the length of the current token.
2900  * @param yyscanner The scanner object.
2901  */
2902 int yyget_leng  (yyscan_t yyscanner)
2903 {
2904     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2905     return yyleng;
2906 }
2907
2908 /** Get the current token.
2909  * @param yyscanner The scanner object.
2910  */
2911
2912 char *yyget_text  (yyscan_t yyscanner)
2913 {
2914     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2915     return yytext;
2916 }
2917
2918 /** Set the user-defined data. This data is never touched by the scanner.
2919  * @param user_defined The data to be associated with this scanner.
2920  * @param yyscanner The scanner object.
2921  */
2922 void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
2923 {
2924     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2925     yyextra = user_defined ;
2926 }
2927
2928 /** Set the current line number.
2929  * @param line_number
2930  * @param yyscanner The scanner object.
2931  */
2932 void yyset_lineno (int  line_number , yyscan_t yyscanner)
2933 {
2934     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2935
2936         /* lineno is only valid if an input buffer exists. */
2937         if (! YY_CURRENT_BUFFER )
2938            yy_fatal_error( "yyset_lineno called with no buffer" , yyscanner); 
2939     
2940     yylineno = line_number;
2941 }
2942
2943 /** Set the current column.
2944  * @param line_number
2945  * @param yyscanner The scanner object.
2946  */
2947 void yyset_column (int  column_no , yyscan_t yyscanner)
2948 {
2949     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2950
2951         /* column is only valid if an input buffer exists. */
2952         if (! YY_CURRENT_BUFFER )
2953            yy_fatal_error( "yyset_column called with no buffer" , yyscanner); 
2954     
2955     yycolumn = column_no;
2956 }
2957
2958 /** Set the input stream. This does not discard the current
2959  * input buffer.
2960  * @param in_str A readable stream.
2961  * @param yyscanner The scanner object.
2962  * @see yy_switch_to_buffer
2963  */
2964 void yyset_in (FILE *  in_str , yyscan_t yyscanner)
2965 {
2966     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2967     yyin = in_str ;
2968 }
2969
2970 void yyset_out (FILE *  out_str , yyscan_t yyscanner)
2971 {
2972     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2973     yyout = out_str ;
2974 }
2975
2976 int yyget_debug  (yyscan_t yyscanner)
2977 {
2978     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2979     return yy_flex_debug;
2980 }
2981
2982 void yyset_debug (int  bdebug , yyscan_t yyscanner)
2983 {
2984     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2985     yy_flex_debug = bdebug ;
2986 }
2987
2988 /* Accessor methods for yylval and yylloc */
2989
2990 static int yy_init_globals (yyscan_t yyscanner)
2991 {
2992     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2993     /* Initialization is the same as for the non-reentrant scanner.
2994        This function is called once per scanner lifetime. */
2995
2996     yyg->yy_buffer_stack = 0;
2997     yyg->yy_buffer_stack_top = 0;
2998     yyg->yy_buffer_stack_max = 0;
2999     yyg->yy_c_buf_p = (char *) 0;
3000     yyg->yy_init = 1;
3001     yyg->yy_start = 0;
3002     yyg->yy_start_stack_ptr = 0;
3003     yyg->yy_start_stack_depth = 0;
3004     yyg->yy_start_stack = (int *) 0;
3005
3006 /* Defined in main.c */
3007 #ifdef YY_STDINIT
3008     yyin = stdin;
3009     yyout = stdout;
3010 #else
3011     yyin = (FILE *) 0;
3012     yyout = (FILE *) 0;
3013 #endif
3014
3015     /* For future reference: Set errno on error, since we are called by
3016      * yylex_init()
3017      */
3018     return 0;
3019 }
3020
3021 /* User-visible API */
3022
3023 /* yylex_init is special because it creates the scanner itself, so it is
3024  * the ONLY reentrant function that doesn't take the scanner as the last argument.
3025  * That's why we explicitly handle the declaration, instead of using our macros.
3026  */
3027
3028 int yylex_init(yyscan_t* ptr_yy_globals)
3029
3030 {
3031     if (ptr_yy_globals == NULL){
3032         errno = EINVAL;
3033         return 1;
3034     }
3035
3036     *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
3037
3038     if (*ptr_yy_globals == NULL){
3039         errno = ENOMEM;
3040         return 1;
3041     }
3042
3043     memset(*ptr_yy_globals,0,sizeof(struct yyguts_t));
3044
3045     return yy_init_globals ( *ptr_yy_globals );
3046 }
3047
3048 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
3049 int yylex_destroy  (yyscan_t yyscanner)
3050 {
3051     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3052
3053     /* Pop the buffer stack, destroying each element. */
3054         while(YY_CURRENT_BUFFER){
3055                 yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
3056                 YY_CURRENT_BUFFER_LVALUE = NULL;
3057                 yypop_buffer_state(yyscanner);
3058         }
3059
3060         /* Destroy the stack itself. */
3061         yyfree(yyg->yy_buffer_stack ,yyscanner);
3062         yyg->yy_buffer_stack = NULL;
3063
3064     /* Destroy the start condition stack. */
3065         yyfree(yyg->yy_start_stack ,yyscanner );
3066         yyg->yy_start_stack = NULL;
3067
3068     /* Destroy the main struct (reentrant only). */
3069     yyfree ( yyscanner , yyscanner );
3070     return 0;
3071 }
3072
3073 /*
3074  * Internal utility routines.
3075  */
3076
3077 #ifndef yytext_ptr
3078 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
3079 {
3080         register int i;
3081     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3082         for ( i = 0; i < n; ++i )
3083                 s1[i] = s2[i];
3084 }
3085 #endif
3086
3087 #ifdef YY_NEED_STRLEN
3088 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
3089 {
3090         register int n;
3091     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3092         for ( n = 0; s[n]; ++n )
3093                 ;
3094
3095         return n;
3096 }
3097 #endif
3098
3099 void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
3100 {
3101         return (void *) malloc( size );
3102 }
3103
3104 void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
3105 {
3106         /* The cast to (char *) in the following accommodates both
3107          * implementations that use char* generic pointers, and those
3108          * that use void* generic pointers.  It works with the latter
3109          * because both ANSI C and C++ allow castless assignment from
3110          * any pointer type to void*, and deal with argument conversions
3111          * as though doing an assignment.
3112          */
3113         return (void *) realloc( (char *) ptr, size );
3114 }
3115
3116 void yyfree (void * ptr , yyscan_t yyscanner)
3117 {
3118         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
3119 }
3120
3121 #define YYTABLES_NAME "yytables"
3122
3123 #undef YY_NEW_FILE
3124 #undef YY_FLUSH_BUFFER
3125 #undef yy_set_bol
3126 #undef yy_new_buffer
3127 #undef yy_set_interactive
3128 #undef yytext_ptr
3129 #undef YY_DO_BEFORE_ACTION
3130
3131 #ifdef YY_DECL_IS_OURS
3132 #undef YY_DECL_IS_OURS
3133 #undef YY_DECL
3134 #endif
3135 #line 254 "bitbakescanner.l"
3136
3137
3138
3139 void lex_t::accept (int token, const char* sz) 
3140 {
3141     token_t t;
3142     memset (&t, 0, sizeof (t));
3143     t.copyString(sz);
3144
3145     /* tell lemon to parse the token */
3146     parse (parser, token, t, this);
3147 }
3148
3149 void lex_t::input (char *buf, int *result, int max_size)
3150 {
3151     /* printf("lex_t::input %p %d\n", buf, max_size); */
3152     *result = fread(buf, 1, max_size, file);
3153     /* printf("lex_t::input result %d\n", *result); */
3154 }
3155
3156 int lex_t::line ()const
3157 {
3158     /* printf("lex_t::line\n"); */
3159     return yyget_lineno (scanner);
3160 }
3161
3162
3163 extern "C" {
3164
3165     void parse (FILE* file, char* name, PyObject* data)
3166     {
3167         /* printf("parse bbparseAlloc\n"); */
3168         void* parser = bbparseAlloc (malloc);
3169         yyscan_t scanner;
3170         lex_t lex;
3171
3172         /* printf("parse yylex_init\n"); */
3173         yylex_init (&scanner);
3174
3175         lex.parser = parser;
3176         lex.scanner = scanner;
3177         lex.file = file;
3178         lex.name = name;
3179         lex.data = data;
3180         lex.parse = bbparse;
3181         /*printf("parse yyset_extra\n"); */
3182         yyset_extra (&lex, scanner);
3183
3184         /* printf("parse yylex\n"); */
3185         int result = yylex (scanner);
3186
3187         /* printf("parse result %d\n", result); */
3188
3189         lex.accept (0);
3190         /* printf("parse lex.accept\n"); */
3191         bbparseTrace (NULL, NULL);
3192         /* printf("parse bbparseTrace\n"); */
3193
3194         if (result != T_EOF)
3195            printf ("premature end of file\n");
3196
3197         yylex_destroy (scanner);
3198         bbparseFree (parser, free);
3199     }
3200
3201 }
3202