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

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

Powered by Google App Engine
This is Rietveld 408576698