Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(312)

Side by Side Diff: third_party/wds/gen/headerscanner.cpp

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

Powered by Google App Engine
This is Rietveld 408576698