2 #line 3 "surf/surfxml.c"
4 #define YY_INT_ALIGNED short int
6 /* A lexical scanner generated by flex */
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 33
12 #if YY_FLEX_SUBMINOR_VERSION > 0
16 /* First, we deal with platform-specific or compiler-specific issues. */
18 /* begin standard C headers. */
24 /* end standard C headers. */
26 /* flex integer type definitions */
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33 #if __STDC_VERSION__ >= 199901L
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36 * if you want the limit (max/min) macros for int types.
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
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;
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;
58 /* Limits of integral types. */
60 #define INT8_MIN (-128)
63 #define INT16_MIN (-32767-1)
66 #define INT32_MIN (-2147483647-1)
69 #define INT8_MAX (127)
72 #define INT16_MAX (32767)
75 #define INT32_MAX (2147483647)
78 #define UINT8_MAX (255U)
81 #define UINT16_MAX (65535U)
84 #define UINT32_MAX (4294967295U)
87 #endif /* ! FLEXINT_H */
91 /* The "const" storage-class-modifier is valid. */
94 #else /* ! __cplusplus */
100 #endif /* __STDC__ */
101 #endif /* ! __cplusplus */
104 #define yyconst const
109 /* Returned upon end-of-file. */
112 /* Promotes a possibly negative, possibly signed char to an unsigned
113 * integer for use as an array index. If the signed char is negative,
114 * we want to instead treat it as an 8-bit unsigned char, hence the
117 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119 /* Enter a start condition. This macro really ought to take a parameter,
120 * but we do it the disgusting crufty way forced on us by the ()-less
121 * definition of BEGIN.
123 #define BEGIN (yy_start) = 1 + 2 *
125 /* Translate the current start state into a value that can be later handed
126 * to BEGIN to return to the state. The YYSTATE alias is for lex
129 #define YY_START (((yy_start) - 1) / 2)
130 #define YYSTATE YY_START
132 /* Action number for EOF rule of a given start state. */
133 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135 /* Special action meaning "start processing a new file". */
136 #define YY_NEW_FILE surf_parse_restart(surf_parse_in )
138 #define YY_END_OF_BUFFER_CHAR 0
140 /* Size of default input buffer. */
142 #define YY_BUF_SIZE 16384
145 /* The state buf must be large enough to hold one state per character in the main buffer.
147 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
150 #define YY_TYPEDEF_YY_BUFFER_STATE
151 typedef struct yy_buffer_state *YY_BUFFER_STATE;
154 extern int surf_parse_leng;
156 extern FILE *surf_parse_in, *surf_parse_out;
158 #define EOB_ACT_CONTINUE_SCAN 0
159 #define EOB_ACT_END_OF_FILE 1
160 #define EOB_ACT_LAST_MATCH 2
162 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
163 * access to the local variable yy_act. Since yyless() is a macro, it would break
164 * existing scanners that call yyless() from OUTSIDE surf_parse_lex.
165 * One obvious solution it to make yy_act a global. I tried that, and saw
166 * a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
167 * normally declared as a register variable-- so it is not worth it.
169 #define YY_LESS_LINENO(n) \
172 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
173 if ( surf_parse_text[yyl] == '\n' )\
174 --surf_parse_lineno;\
177 /* Return all but the first "n" matched characters back to the input stream. */
181 /* Undo effects of setting up surf_parse_text. */ \
182 int yyless_macro_arg = (n); \
183 YY_LESS_LINENO(yyless_macro_arg);\
184 *yy_cp = (yy_hold_char); \
185 YY_RESTORE_YY_MORE_OFFSET \
186 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
187 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
191 #define unput(c) yyunput( c, (yytext_ptr) )
193 /* The following is because we cannot portably get our hands on size_t
194 * (without autoconf's help, which isn't available because we want
195 * flex-generated scanners to compile on their own).
198 #ifndef YY_TYPEDEF_YY_SIZE_T
199 #define YY_TYPEDEF_YY_SIZE_T
200 typedef unsigned int yy_size_t;
203 #ifndef YY_STRUCT_YY_BUFFER_STATE
204 #define YY_STRUCT_YY_BUFFER_STATE
205 struct yy_buffer_state
209 char *yy_ch_buf; /* input buffer */
210 char *yy_buf_pos; /* current position in input buffer */
212 /* Size of input buffer in bytes, not including room for EOB
215 yy_size_t yy_buf_size;
217 /* Number of characters read into yy_ch_buf, not including EOB
222 /* Whether we "own" the buffer - i.e., we know we created it,
223 * and can realloc() it to grow it, and should free() it to
226 int yy_is_our_buffer;
228 /* Whether this is an "interactive" input source; if so, and
229 * if we're using stdio for input, then we want to use getc()
230 * instead of fread(), to make sure we stop fetching input after
233 int yy_is_interactive;
235 /* Whether we're considered to be at the beginning of a line.
236 * If so, '^' rules will be active on the next match, otherwise
241 int yy_bs_lineno; /**< The line count. */
242 int yy_bs_column; /**< The column count. */
244 /* Whether to try to fill the input buffer when we reach the
249 int yy_buffer_status;
251 #define YY_BUFFER_NEW 0
252 #define YY_BUFFER_NORMAL 1
253 /* When an EOF's been seen but there's still some text to process
254 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
255 * shouldn't try reading from the input source any more. We might
256 * still have a bunch of tokens to match, though, because of
257 * possible backing-up.
259 * When we actually see the EOF, we change the status to "new"
260 * (via surf_parse_restart()), so that the user can continue scanning by
261 * just pointing surf_parse_in at a new input file.
263 #define YY_BUFFER_EOF_PENDING 2
266 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
268 /* Stack of input buffers. */
269 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
270 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
271 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
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
277 * Returns the top of the stack, or NULL.
279 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
280 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
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.
286 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
288 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
289 static char yy_hold_char;
290 static int yy_n_chars; /* number of characters read into yy_ch_buf */
293 /* Points to current character in buffer. */
294 static char *yy_c_buf_p = (char *) 0;
295 static int yy_init = 0; /* whether we need to initialize */
296 static int yy_start = 0; /* start state number */
298 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
299 * instead of setting up a fresh surf_parse_in. A bit of a hack ...
301 static int yy_did_buffer_switch_on_eof;
303 void surf_parse_restart (FILE *input_file );
304 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
305 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size );
306 void surf_parse__delete_buffer (YY_BUFFER_STATE b );
307 void surf_parse__flush_buffer (YY_BUFFER_STATE b );
308 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
309 void surf_parse_pop_buffer_state (void );
311 static void surf_parse_ensure_buffer_stack (void );
312 static void surf_parse__load_buffer_state (void );
313 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
315 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
317 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size );
318 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str );
319 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len );
321 void *surf_parse_alloc (yy_size_t );
322 void *surf_parse_realloc (void *,yy_size_t );
323 void surf_parse_free (void * );
325 #define yy_new_buffer surf_parse__create_buffer
327 #define yy_set_interactive(is_interactive) \
329 if ( ! YY_CURRENT_BUFFER ){ \
330 surf_parse_ensure_buffer_stack (); \
331 YY_CURRENT_BUFFER_LVALUE = \
332 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
334 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
337 #define yy_set_bol(at_bol) \
339 if ( ! YY_CURRENT_BUFFER ){\
340 surf_parse_ensure_buffer_stack (); \
341 YY_CURRENT_BUFFER_LVALUE = \
342 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
344 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
347 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
349 /* Begin user sect3 */
351 #define surf_parse_wrap() 1
352 #define YY_SKIP_YYWRAP
354 typedef unsigned char YY_CHAR;
356 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
358 typedef int yy_state_type;
360 extern int surf_parse_lineno;
362 int surf_parse_lineno = 1;
364 extern char *surf_parse_text;
365 #define yytext_ptr surf_parse_text
367 static yy_state_type yy_get_previous_state (void );
368 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
369 static int yy_get_next_buffer (void );
370 static void yy_fatal_error (yyconst char msg[] );
372 /* Done after the current pattern has been matched and before the
373 * corresponding action - sets up surf_parse_text.
375 #define YY_DO_BEFORE_ACTION \
376 (yytext_ptr) = yy_bp; \
377 surf_parse_leng = (size_t) (yy_cp - yy_bp); \
378 (yy_hold_char) = *yy_cp; \
380 (yy_c_buf_p) = yy_cp;
382 #define YY_NUM_RULES 189
383 #define YY_END_OF_BUFFER 190
384 /* This struct is not used in this scanner,
385 but its presence is necessary. */
388 flex_int32_t yy_verify;
391 static yyconst flex_int16_t yy_accept[1433] =
393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
402 0, 0, 0, 0, 0, 0, 0, 0, 190, 188,
404 23, 10, 10, 23, 23, 168, 10, 168, 5, 6,
405 5, 8, 9, 8, 184, 176, 177, 185, 182, 185,
406 183, 187, 176, 177, 187, 188, 29, 10, 29, 29,
407 29, 27, 29, 33, 10, 33, 188, 33, 188, 39,
408 10, 39, 39, 39, 37, 39, 43, 10, 43, 43,
409 188, 69, 10, 69, 69, 69, 67, 69, 69, 69,
410 69, 69, 69, 73, 10, 73, 188, 79, 10, 79,
411 79, 79, 77, 79, 83, 10, 83, 188, 107, 10,
412 107, 107, 107, 105, 107, 107, 107, 107, 111, 10,
413 111, 188, 127, 10, 127, 127, 127, 125, 127, 127,
415 127, 131, 10, 131, 188, 131, 137, 10, 137, 137,
416 137, 135, 137, 141, 10, 141, 188, 153, 10, 153,
417 153, 153, 151, 153, 153, 153, 153, 157, 10, 157,
418 188, 157, 163, 10, 163, 163, 163, 161, 163, 167,
419 10, 167, 185, 184, 10, 0, 2, 2, 0, 4,
420 7, 179, 178, 0, 0, 0, 0, 0, 0, 0,
421 28, 30, 30, 0, 0, 0, 0, 0, 0, 38,
422 40, 40, 0, 68, 70, 70, 70, 70, 70, 70,
423 70, 0, 0, 78, 80, 80, 0, 106, 108, 108,
424 108, 108, 108, 108, 0, 0, 126, 128, 128, 128,
426 128, 0, 0, 136, 138, 138, 0, 152, 154, 154,
427 154, 154, 154, 0, 0, 162, 164, 164, 0, 0,
428 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
429 0, 0, 0, 186, 0, 30, 0, 0, 0, 0,
430 0, 0, 0, 40, 0, 0, 70, 70, 70, 70,
431 70, 70, 0, 0, 0, 80, 0, 0, 108, 108,
432 108, 108, 108, 0, 0, 0, 128, 128, 128, 0,
433 0, 0, 138, 0, 0, 154, 154, 154, 154, 0,
434 0, 0, 164, 0, 0, 0, 181, 0, 22, 1,
435 0, 0, 174, 0, 0, 0, 171, 170, 0, 0,
437 30, 0, 0, 32, 0, 44, 0, 0, 0, 0,
438 40, 0, 0, 42, 0, 70, 70, 70, 70, 70,
439 70, 0, 0, 72, 0, 0, 80, 0, 0, 82,
440 0, 108, 108, 108, 108, 108, 0, 0, 110, 0,
441 0, 0, 0, 128, 0, 0, 0, 0, 130, 0,
442 0, 138, 0, 0, 140, 0, 154, 154, 154, 154,
443 0, 0, 156, 0, 0, 164, 0, 0, 166, 0,
444 0, 0, 0, 175, 169, 0, 0, 0, 30, 0,
445 44, 0, 0, 0, 0, 0, 0, 0, 70, 70,
446 70, 0, 0, 70, 70, 0, 0, 0, 0, 0,
448 108, 108, 0, 0, 108, 108, 0, 0, 0, 116,
449 115, 128, 0, 114, 113, 0, 0, 0, 0, 0,
450 154, 0, 0, 154, 154, 0, 0, 164, 0, 0,
451 0, 0, 0, 12, 0, 172, 173, 0, 30, 0,
452 0, 0, 0, 112, 0, 36, 35, 0, 70, 70,
453 70, 0, 46, 45, 0, 0, 0, 0, 70, 0,
454 71, 0, 0, 76, 75, 0, 108, 108, 0, 86,
455 85, 108, 0, 0, 108, 0, 112, 128, 0, 0,
456 0, 134, 133, 0, 154, 0, 144, 143, 154, 154,
457 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
459 0, 30, 0, 0, 0, 0, 112, 74, 0, 70,
460 70, 70, 0, 48, 47, 0, 0, 0, 70, 0,
461 108, 108, 108, 0, 0, 0, 108, 0, 128, 0,
462 0, 0, 154, 154, 154, 0, 0, 0, 160, 159,
463 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,
464 0, 142, 74, 0, 70, 70, 70, 0, 0, 70,
465 0, 108, 0, 0, 108, 108, 0, 0, 108, 0,
466 128, 0, 129, 0, 0, 154, 154, 154, 0, 0,
467 0, 0, 0, 0, 0, 0, 0, 26, 25, 0,
468 34, 0, 142, 0, 70, 70, 70, 0, 0, 0,
470 0, 70, 0, 81, 108, 0, 92, 91, 108, 108,
471 0, 0, 0, 0, 108, 0, 128, 0, 0, 0,
472 0, 154, 154, 0, 158, 0, 180, 0, 0, 0,
473 0, 0, 0, 0, 41, 70, 70, 70, 0, 54,
474 0, 53, 70, 0, 0, 108, 108, 108, 0, 96,
475 0, 95, 108, 0, 128, 0, 0, 0, 146, 145,
476 0, 0, 154, 0, 155, 158, 0, 0, 0, 0,
477 0, 0, 0, 0, 0, 0, 0, 0, 70, 70,
478 70, 56, 55, 0, 0, 0, 88, 87, 108, 108,
479 108, 98, 97, 0, 0, 0, 128, 128, 0, 0,
481 0, 150, 149, 0, 0, 0, 165, 0, 0, 0,
482 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
483 70, 70, 0, 58, 57, 108, 108, 108, 0, 100,
484 99, 0, 128, 128, 0, 0, 0, 148, 147, 0,
485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
486 84, 0, 0, 70, 70, 70, 108, 0, 0, 108,
487 0, 128, 128, 0, 0, 0, 0, 0, 0, 0,
488 0, 0, 0, 0, 0, 0, 0, 84, 0, 50,
489 49, 70, 70, 70, 70, 108, 0, 94, 93, 108,
490 0, 0, 0, 128, 0, 0, 128, 132, 0, 0,
492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
493 0, 0, 0, 70, 70, 70, 70, 0, 0, 0,
494 0, 0, 109, 0, 120, 119, 128, 0, 118, 117,
495 128, 132, 0, 0, 0, 0, 0, 0, 0, 0,
496 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
497 70, 70, 70, 0, 90, 89, 0, 0, 0, 128,
498 128, 0, 139, 0, 0, 0, 0, 0, 0, 0,
499 0, 0, 0, 0, 12, 0, 12, 0, 0, 0,
500 70, 70, 70, 70, 0, 0, 0, 0, 128, 128,
501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504 0, 70, 0, 0, 0, 0, 0, 0, 128, 128,
505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
506 0, 0, 0, 52, 51, 0, 62, 61, 0, 60,
507 59, 70, 0, 66, 65, 0, 0, 0, 0, 128,
508 128, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509 11, 0, 0, 70, 0, 0, 0, 0, 128, 128,
510 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
511 0, 70, 0, 0, 0, 0, 128, 128, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0, 24, 0,
514 70, 0, 0, 0, 0, 128, 128, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 31, 0,
516 0, 0, 102, 0, 101, 128, 128, 0, 0, 0,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,
518 63, 104, 103, 128, 128, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 128, 128, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 128, 128, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
523 128, 128, 0, 0, 0, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 128, 128, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 0, 0, 0, 128, 128, 0, 0, 0, 0,
528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531 0, 0, 124, 123, 0, 122, 121, 0, 0, 0,
532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
538 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
541 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
543 0, 0, 18, 0, 0, 14, 0, 0, 0, 0,
544 0, 17, 0, 0, 0, 19, 0, 0, 0, 0,
545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
548 16, 0, 0, 0, 0, 0, 0, 20, 0, 0,
549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
553 static yyconst flex_int32_t yy_ec[256] =
555 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
556 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
557 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
559 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
560 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
561 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
562 14, 26, 27, 14, 14, 14, 28, 29, 30, 31,
563 14, 32, 33, 34, 14, 14, 14, 14, 35, 14,
564 36, 1, 37, 1, 38, 1, 39, 40, 41, 42,
566 43, 44, 45, 46, 47, 14, 48, 49, 50, 51,
567 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
568 62, 14, 1, 1, 1, 1, 1, 1, 1, 1,
569 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
571 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
573 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
577 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
578 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
579 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
580 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
581 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
585 static yyconst flex_int32_t yy_meta[63] =
587 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
588 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
589 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
590 5, 5, 5, 5, 5, 1, 1, 5, 7, 7,
591 7, 7, 7, 7, 5, 5, 5, 5, 5, 5,
592 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
596 static yyconst flex_int16_t yy_base[1494] =
598 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
599 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
600 98, 157, 73, 76, 116, 120, 123, 126, 175, 179,
601 182, 185, 216, 260, 234, 238, 241, 278, 282, 285,
602 289, 304, 307, 310, 326, 0, 387, 390, 393, 396,
603 412, 463, 430, 434, 437, 440, 514, 570, 481, 485,
604 488, 491, 626, 682, 532, 536, 539, 542, 588, 592,
605 595, 598, 644, 648, 738, 789, 651, 654, 700, 704,
606 840, 896, 707, 710, 756, 760, 763, 766, 807, 811,
607 814, 817, 952, 1011, 858, 862, 879, 914, 3945, 3946,
609 3946, 91, 141, 47, 62, 3946, 144, 132, 3946, 3946,
610 3934, 3946, 3946, 3925, 3946, 3938, 3938, 882, 3946, 3946,
611 3946, 3946, 3936, 3936, 3901, 194, 3946, 150, 3919, 0,
612 136, 3946, 3893, 3946, 200, 990, 991, 195, 192, 3946,
613 206, 3917, 0, 187, 3946, 3887, 3946, 313, 1044, 440,
614 849, 3946, 458, 3915, 0, 491, 3946, 3873, 3880, 3891,
615 3890, 3876, 3870, 3946, 509, 548, 604, 3946, 613, 3908,
616 0, 542, 3946, 3886, 3946, 672, 660, 819, 3946, 728,
617 3906, 0, 661, 3946, 3884, 3883, 3882, 92, 3946, 731,
618 766, 817, 3946, 784, 3902, 0, 717, 3946, 3863, 3868,
620 3862, 3946, 877, 929, 918, 967, 3946, 889, 3898, 0,
621 866, 3946, 3876, 3946, 922, 971, 924, 3946, 943, 3896,
622 0, 930, 3946, 3855, 3860, 3864, 3853, 3946, 978, 986,
623 1034, 973, 3946, 997, 3891, 0, 988, 3946, 3869, 3946,
624 1031, 1045, 3902, 3869, 1056, 34, 3844, 3946, 3894, 3885,
625 3946, 3946, 3946, 26, 32, 3845, 3844, 3842, 3881, 3849,
626 3946, 0, 3842, 3843, 3842, 3843, 3850, 3837, 3839, 3946,
627 0, 3841, 3842, 3946, 0, 3849, 3830, 3825, 3835, 3824,
628 3844, 3841, 3829, 3946, 0, 3830, 3824, 3946, 0, 3827,
629 3820, 3826, 3836, 3835, 3822, 3820, 3946, 0, 3814, 3817,
631 3828, 3813, 3815, 3946, 0, 3816, 3810, 3946, 0, 3813,
632 3807, 3813, 3822, 3807, 3804, 3946, 0, 3809, 3818, 3820,
633 3837, 3836, 3843, 5, 3802, 3946, 75, 0, 3798, 3798,
634 3834, 3833, 3795, 3946, 3807, 3789, 1063, 1072, 3786, 3802,
635 3785, 3789, 3782, 3796, 1075, 1080, 3791, 3794, 3798, 3792,
636 3791, 3776, 1084, 1101, 3774, 3788, 1104, 1107, 3788, 3786,
637 3785, 3772, 3769, 1110, 1114, 3767, 1131, 3785, 1134, 1137,
638 1140, 3765, 3779, 1143, 1160, 3780, 3763, 3770, 3763, 1163,
639 1166, 3772, 3758, 1169, 1172, 3793, 3946, 3796, 3946, 3946,
640 233, 3764, 3946, 3797, 3796, 3754, 3946, 3946, 3752, 3751,
642 3760, 1191, 1195, 3946, 1198, 1201, 3757, 3745, 3763, 3746,
643 1215, 1204, 1221, 3946, 1226, 3753, 3746, 3748, 1231, 3744,
644 3755, 1238, 1243, 3946, 1247, 3740, 1251, 1255, 1260, 3946,
645 1267, 3736, 3744, 1272, 3747, 3750, 1277, 1280, 3946, 1284,
646 3735, 1289, 1305, 3750, 1313, 1317, 1325, 1329, 3946, 1332,
647 3733, 1335, 1342, 1351, 3946, 1354, 3732, 1359, 3750, 3730,
648 1362, 1371, 3946, 1375, 3728, 3742, 1379, 1382, 3946, 1392,
649 3761, 122, 1399, 3946, 3946, 3768, 3767, 3737, 3728, 1402,
650 1297, 3721, 3726, 3734, 3733, 1405, 1422, 1411, 3736, 3730,
651 3715, 1430, 1436, 1446, 1449, 1452, 3729, 1465, 1469, 1477,
653 3724, 3729, 1481, 1487, 3718, 1497, 1500, 3725, 1503, 3946,
654 3946, 3710, 1513, 3946, 3946, 1521, 3723, 1524, 1527, 1540,
655 3718, 1544, 1547, 3707, 3725, 1561, 3712, 1564, 1567, 3741,
656 115, 3742, 1570, 3946, 3741, 3946, 3946, 3706, 3706, 1573,
657 3714, 3700, 3698, 1580, 1590, 3946, 3946, 1601, 3713, 3709,
658 3694, 1605, 3946, 3946, 1619, 1624, 1635, 1638, 3706, 1646,
659 3946, 3694, 1651, 3946, 3946, 1659, 3706, 3685, 1663, 3946,
660 3946, 3701, 1671, 1676, 3701, 1687, 1690, 3706, 1693, 3705,
661 1697, 3946, 3946, 1705, 3690, 1710, 3946, 3946, 3694, 3683,
662 1722, 3696, 1718, 1725, 1739, 3704, 66, 197, 153, 3946,
664 3682, 1742, 1748, 3693, 3687, 3678, 1751, 1758, 1765, 3686,
665 3677, 3686, 1768, 3946, 3946, 1776, 3700, 3699, 3681, 1784,
666 3670, 1788, 3688, 1792, 3695, 3694, 3676, 1806, 3670, 1809,
667 3678, 1812, 3669, 3669, 3671, 1815, 3666, 1819, 3946, 3946,
668 1833, 3696, 300, 281, 194, 3665, 1838, 1843, 1854, 1860,
669 3676, 1863, 1866, 1871, 3664, 3669, 3659, 296, 376, 3661,
670 1875, 3663, 1878, 1881, 3664, 3654, 379, 382, 3657, 1894,
671 3654, 1897, 3946, 3655, 1900, 1903, 3660, 3652, 1919, 3644,
672 1922, 3664, 1926, 238, 510, 3661, 1929, 3946, 3946, 1943,
673 1946, 3649, 1949, 1952, 3650, 3645, 3648, 3669, 3687, 3667,
675 3682, 3647, 1956, 3946, 1960, 1963, 3946, 3946, 3642, 3636,
676 3662, 3680, 3660, 3675, 3640, 1976, 3644, 3638, 1979, 1982,
677 1986, 1998, 3637, 2001, 2004, 2007, 3946, 2063, 241, 256,
678 3637, 2014, 3631, 2018, 3946, 3620, 3635, 3624, 3668, 3946,
679 3664, 3946, 2027, 2031, 2036, 3628, 3622, 3621, 3663, 3946,
680 3659, 3946, 2051, 2054, 952, 3617, 2057, 2067, 3946, 3946,
681 2075, 2080, 2091, 2094, 3946, 2047, 2103, 240, 433, 384,
682 162, 622, 485, 408, 541, 3623, 2120, 3614, 3602, 3620,
683 3617, 3946, 3946, 2123, 2126, 2139, 3946, 3946, 3614, 3617,
684 3612, 3946, 3946, 2147, 2150, 2163, 3602, 3602, 3613, 2166,
686 2169, 3946, 3946, 2183, 2186, 2194, 3946, 539, 73, 436,
687 546, 678, 663, 172, 710, 816, 3599, 2199, 3606, 2202,
688 3615, 3614, 2205, 3946, 3946, 3602, 2218, 3609, 2221, 3946,
689 3946, 2229, 3488, 3503, 3483, 2234, 2242, 3946, 3946, 440,
690 2251, 600, 813, 604, 762, 755, 660, 2254, 3490, 2257,
691 2260, 2264, 2280, 3484, 450, 3470, 3479, 2288, 2291, 3457,
692 2299, 2304, 2307, 3459, 2312, 734, 2316, 491, 811, 876,
693 932, 1018, 2323, 2333, 2350, 3458, 2358, 2329, 2363, 3946,
694 3946, 3463, 3464, 3457, 3456, 2371, 2375, 3946, 3946, 2383,
695 2387, 2390, 2400, 3430, 2393, 2409, 3425, 2417, 2420, 1037,
697 284, 1050, 392, 817, 819, 2423, 2426, 2430, 2447, 2478,
698 2515, 3433, 2455, 3426, 3429, 3414, 3403, 2443, 2460, 2472,
699 2496, 2535, 3946, 2538, 3946, 3946, 3240, 2552, 3946, 3946,
700 3239, 2468, 2546, 1076, 587, 1053, 956, 948, 1033, 2563,
701 1083, 2566, 2569, 550, 41, 2596, 2633, 3231, 2625, 3240,
702 3223, 3239, 3237, 2586, 3946, 3946, 2614, 1029, 1090, 3222,
703 3221, 2653, 3946, 1131, 703, 2656, 901, 1022, 2659, 1034,
704 1111, 2662, 606, 1134, 3270, 103, 3256, 2679, 3207, 2682,
705 2509, 2685, 2688, 2704, 3238, 3231, 3234, 3212, 3096, 2997,
706 2707, 484, 2710, 1161, 1082, 2713, 1178, 1171, 1208, 3023,
708 2977, 2972, 2716, 2861, 2720, 2737, 2746, 2754, 2758, 2766,
709 2770, 2850, 2778, 2782, 2869, 2860, 2844, 2810, 2782, 2709,
710 2790, 910, 1242, 1138, 1173, 1278, 1202, 1132, 1279, 2719,
711 2627, 2794, 2797, 3946, 3946, 2807, 3946, 3946, 2815, 3946,
712 3946, 2578, 2823, 3946, 3946, 2478, 2456, 2411, 2385, 2346,
713 2319, 1324, 2831, 1285, 1370, 1306, 1425, 759, 1349, 1276,
714 3946, 2295, 2834, 2303, 2261, 2249, 2202, 2204, 2125, 2123,
715 1428, 2841, 1353, 1322, 1234, 1401, 969, 1393, 1106, 2504,
716 2851, 2118, 2124, 2124, 2088, 2023, 1967, 1966, 1423, 1248,
717 1380, 1159, 2854, 1350, 1162, 2858, 1405, 1446, 2622, 2861,
719 2864, 1972, 1910, 1780, 1790, 1738, 1655, 1468, 1479, 1522,
720 1492, 2871, 1458, 1493, 2881, 2889, 2892, 2909, 3946, 2912,
721 2915, 1670, 3946, 1479, 3946, 1293, 1176, 1527, 1534, 1569,
722 2928, 1381, 1304, 2931, 1476, 1539, 2934, 2938, 2951, 3946,
723 3946, 3946, 3946, 968, 872, 2959, 1568, 1572, 2962, 1582,
724 1412, 2970, 1588, 1600, 1616, 1614, 1625, 772, 726, 2980,
725 1669, 1686, 1627, 1700, 1520, 1541, 1719, 1720, 1613, 1779,
726 1638, 1715, 1745, 684, 682, 1775, 1788, 1699, 1714, 1802,
727 1830, 1814, 1668, 1836, 1899, 1666, 1740, 1825, 1916, 1921,
728 618, 416, 1969, 2005, 1459, 1892, 2019, 2025, 1592, 1220,
730 2044, 2091, 2029, 2070, 1868, 2067, 2069, 258, 187, 2102,
731 2119, 551, 821, 2073, 2116, 2988, 1973, 2195, 2197, 1918,
732 2083, 2165, 2097, 2118, 2991, 2997, 2232, 2252, 1811, 2121,
733 2173, 2261, 3001, 3009, 2267, 2294, 2200, 2225, 3013, 2126,
734 2176, 3018, 3030, 3021, 3038, 2321, 2340, 1544, 2247, 2320,
735 2330, 2143, 2396, 3046, 2390, 2417, 2346, 2517, 3049, 2280,
736 2419, 3057, 3946, 3946, 3066, 3946, 3946, 2486, 2507, 2281,
737 2413, 2511, 2525, 2325, 2527, 1873, 2528, 2544, 2541, 2564,
738 2398, 2591, 2568, 2635, 2545, 2558, 607, 2269, 2657, 2683,
739 2612, 2675, 2008, 2685, 2718, 2562, 2709, 2573, 2686, 2636,
741 2733, 2796, 2804, 3074, 2745, 2747, 2655, 2760, 1893, 2828,
742 2859, 2864, 2880, 2735, 2784, 2882, 2891, 2908, 2927, 3078,
743 3946, 2902, 2940, 2787, 2810, 1895, 2952, 2969, 2485, 2483,
744 2879, 2907, 2960, 3012, 3000, 3027, 3044, 3047, 2626, 2925,
745 2714, 3053, 3055, 3096, 2967, 3056, 2604, 2822, 3065, 3067,
746 2727, 2833, 3038, 3070, 3100, 3087, 3028, 3108, 3946, 3072,
747 3073, 3125, 3088, 3106, 3128, 3090, 3102, 3131, 3148, 3098,
748 3107, 3151, 3946, 3155, 3158, 3946, 3103, 3121, 3118, 3123,
749 3168, 3946, 3157, 3166, 3178, 3946, 3126, 3130, 2870, 3120,
750 3146, 3147, 3149, 3167, 3172, 3174, 3175, 3176, 3189, 3188,
752 3180, 3181, 3184, 3186, 3212, 3182, 3183, 3199, 3194, 3216,
753 3946, 3190, 3192, 3219, 3213, 3217, 3243, 3946, 3230, 3238,
754 3218, 3221, 3193, 3195, 3233, 3235, 3249, 3250, 3267, 3270,
755 3946, 3946, 3288, 3295, 3302, 3309, 3316, 3323, 3330, 3337,
756 3344, 3351, 3358, 3365, 3372, 3379, 3386, 3393, 3400, 3407,
757 3414, 3421, 3428, 3435, 3442, 3449, 3454, 3459, 3464, 3469,
758 3474, 3479, 3484, 3489, 3494, 3501, 3504, 3507, 3510, 3513,
759 3516, 3519, 3522, 3525, 3528, 3535, 3539, 3545, 3551, 3557,
760 3563, 3569, 3575, 3581, 3587, 3593, 3600, 3607, 3614, 3621,
765 static yyconst flex_int16_t yy_def[1494] =
767 1433, 1433, 1434, 1434, 1434, 1434, 1435, 1435, 1436, 1436,
768 1437, 1437, 1438, 1438, 1438, 1438, 1439, 1439, 1433, 1433,
769 1440, 1440, 1441, 1441, 1433, 1433, 1441, 1441, 1441, 1441,
770 1433, 1433, 1442, 1442, 1443, 1443, 1433, 1433, 1443, 1443,
771 1443, 1443, 1433, 1433, 1432, 45, 1444, 1444, 1433, 1433,
772 1445, 1445, 1446, 1446, 1433, 1433, 1447, 1447, 1448, 1448,
773 1433, 1433, 1449, 1449, 1450, 1450, 1433, 1433, 1450, 1450,
774 1450, 1450, 1433, 1433, 1451, 1451, 1452, 1452, 1433, 1433,
775 1453, 1453, 1454, 1454, 1433, 1433, 1454, 1454, 1454, 1454,
776 1433, 1433, 1455, 1455, 1456, 1456, 1438, 1438, 1432, 1432,
778 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
779 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
780 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1457,
781 1432, 1432, 1457, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
782 1432, 1432, 1458, 1432, 1432, 1458, 1432, 1432, 1432, 1432,
783 1432, 1432, 1432, 1432, 1459, 1432, 1432, 1459, 1459, 1459,
784 1459, 1459, 1459, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
785 1460, 1432, 1432, 1460, 1432, 1432, 1432, 1432, 1432, 1432,
786 1432, 1461, 1432, 1432, 1461, 1461, 1461, 1461, 1432, 1432,
787 1432, 1432, 1432, 1432, 1432, 1462, 1432, 1432, 1462, 1462,
789 1462, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1463,
790 1432, 1432, 1463, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
791 1464, 1432, 1432, 1464, 1464, 1464, 1464, 1432, 1432, 1432,
792 1432, 1432, 1432, 1432, 1432, 1465, 1432, 1432, 1465, 1432,
793 1432, 1432, 1432, 1432, 1432, 1466, 1432, 1432, 1432, 1432,
794 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
795 1432, 1457, 1457, 1467, 1432, 1432, 1432, 1432, 1432, 1432,
796 1458, 1458, 1468, 1432, 1459, 1459, 1459, 1459, 1459, 1459,
797 1459, 1469, 1432, 1432, 1460, 1460, 1470, 1432, 1461, 1461,
798 1461, 1461, 1461, 1461, 1471, 1432, 1432, 1462, 1462, 1462,
800 1462, 1472, 1432, 1432, 1463, 1463, 1473, 1432, 1464, 1464,
801 1464, 1464, 1464, 1474, 1432, 1432, 1465, 1465, 1475, 1432,
802 1432, 1476, 1432, 1476, 1432, 1432, 1432, 1477, 1432, 1432,
803 1432, 1432, 1432, 1432, 1432, 1457, 1478, 1478, 1432, 1432,
804 1432, 1432, 1432, 1458, 1479, 1479, 1459, 1459, 1459, 1459,
805 1459, 1459, 1480, 1480, 1432, 1460, 1481, 1481, 1461, 1461,
806 1461, 1461, 1461, 1482, 1482, 1432, 1462, 1462, 1462, 1483,
807 1483, 1432, 1463, 1484, 1484, 1464, 1464, 1464, 1464, 1485,
808 1485, 1432, 1465, 1486, 1486, 1432, 1432, 1476, 1432, 1432,
809 1476, 1432, 1432, 1477, 1432, 1432, 1432, 1432, 1432, 1432,
811 1457, 1432, 1478, 1432, 1478, 1432, 1432, 1432, 1432, 1432,
812 1458, 1432, 1479, 1432, 1479, 1459, 1459, 1459, 1459, 1459,
813 1459, 1432, 1480, 1432, 1480, 1432, 1460, 1432, 1481, 1432,
814 1481, 1461, 1461, 1461, 1461, 1461, 1432, 1482, 1432, 1482,
815 1432, 1432, 1432, 1462, 1432, 1432, 1432, 1483, 1432, 1483,
816 1432, 1463, 1432, 1484, 1432, 1484, 1464, 1464, 1464, 1464,
817 1432, 1485, 1432, 1485, 1432, 1465, 1432, 1486, 1432, 1486,
818 1432, 1476, 1487, 1432, 1432, 1432, 1432, 1432, 1457, 1478,
819 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1479, 1459, 1459,
820 1459, 1432, 1432, 1459, 1459, 1480, 1432, 1432, 1432, 1481,
822 1461, 1461, 1432, 1432, 1461, 1461, 1482, 1432, 1432, 1432,
823 1432, 1462, 1432, 1432, 1432, 1483, 1432, 1432, 1432, 1484,
824 1464, 1432, 1432, 1464, 1464, 1485, 1432, 1465, 1486, 1432,
825 1476, 1487, 1487, 1432, 1487, 1432, 1432, 1432, 1457, 1478,
826 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1479, 1459, 1459,
827 1459, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1459, 1432,
828 1432, 1432, 1432, 1432, 1432, 1481, 1461, 1461, 1432, 1432,
829 1432, 1461, 1432, 1432, 1461, 1482, 1432, 1462, 1483, 1432,
830 1432, 1432, 1432, 1484, 1464, 1432, 1432, 1432, 1464, 1464,
831 1485, 1432, 1432, 1432, 1486, 1432, 1476, 1487, 1487, 1432,
833 1432, 1457, 1478, 1432, 1432, 1432, 1432, 1432, 1479, 1459,
834 1459, 1459, 1432, 1432, 1432, 1432, 1432, 1432, 1459, 1481,
835 1461, 1461, 1461, 1432, 1432, 1432, 1461, 1482, 1462, 1483,
836 1432, 1484, 1464, 1464, 1464, 1485, 1432, 1432, 1432, 1432,
837 1486, 1432, 1476, 1487, 1487, 1432, 1432, 1432, 1478, 1432,
838 1432, 1432, 1432, 1479, 1459, 1459, 1459, 1432, 1432, 1459,
839 1481, 1461, 1432, 1432, 1461, 1461, 1432, 1432, 1461, 1482,
840 1462, 1432, 1432, 1432, 1484, 1464, 1464, 1464, 1485, 1432,
841 1486, 1432, 1476, 1487, 1487, 1432, 1432, 1432, 1432, 1478,
842 1432, 1432, 1432, 1479, 1459, 1459, 1459, 1432, 1432, 1432,
844 1432, 1459, 1432, 1432, 1461, 1432, 1432, 1432, 1461, 1461,
845 1432, 1432, 1432, 1432, 1461, 1482, 1462, 1432, 1484, 1432,
846 1432, 1464, 1464, 1485, 1432, 1486, 1432, 1476, 1487, 1487,
847 1432, 1478, 1432, 1432, 1432, 1459, 1459, 1459, 1432, 1432,
848 1432, 1432, 1459, 1432, 1432, 1461, 1461, 1461, 1432, 1432,
849 1432, 1432, 1461, 1482, 1462, 1432, 1484, 1432, 1432, 1432,
850 1432, 1432, 1464, 1432, 1432, 1432, 1486, 1476, 1476, 1476,
851 1476, 1476, 1476, 1487, 1487, 1432, 1478, 1432, 1459, 1459,
852 1459, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1461, 1461,
853 1461, 1432, 1432, 1432, 1432, 1482, 1462, 1462, 1432, 1484,
855 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1476, 1476, 1476,
856 1476, 1476, 1476, 1476, 1487, 1487, 1432, 1478, 1432, 1459,
857 1459, 1459, 1432, 1432, 1432, 1461, 1461, 1461, 1432, 1432,
858 1432, 1482, 1462, 1462, 1432, 1484, 1432, 1432, 1432, 1476,
859 1476, 1476, 1476, 1476, 1476, 1476, 1487, 1487, 1432, 1478,
860 1432, 1432, 1432, 1459, 1459, 1459, 1461, 1432, 1432, 1461,
861 1482, 1462, 1462, 1432, 1484, 1476, 1476, 1476, 1476, 1476,
862 1476, 1476, 1487, 1487, 1487, 1432, 1478, 1432, 1432, 1432,
863 1432, 1459, 1459, 1459, 1459, 1461, 1432, 1432, 1432, 1461,
864 1482, 1432, 1432, 1462, 1432, 1432, 1462, 1432, 1484, 1476,
866 1476, 1476, 1476, 1476, 1476, 1476, 1487, 1487, 1487, 1488,
867 1489, 1432, 1478, 1459, 1459, 1459, 1459, 1432, 1432, 1432,
868 1432, 1432, 1432, 1432, 1432, 1432, 1462, 1432, 1432, 1432,
869 1462, 1432, 1484, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
870 1476, 1476, 1487, 1490, 1491, 1488, 1489, 1432, 1478, 1459,
871 1459, 1459, 1459, 1432, 1432, 1432, 1432, 1432, 1432, 1462,
872 1462, 1432, 1432, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
873 1476, 1476, 1490, 1487, 1492, 1491, 1493, 1487, 1432, 1478,
874 1459, 1459, 1459, 1459, 1432, 1432, 1432, 1432, 1462, 1462,
875 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1492,
877 1432, 1493, 1487, 1432, 1478, 1432, 1432, 1432, 1432, 1432,
878 1432, 1459, 1432, 1432, 1432, 1432, 1432, 1432, 1462, 1462,
879 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1432,
880 1432, 1478, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
881 1432, 1459, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1462,
882 1462, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
883 1432, 1432, 1478, 1459, 1432, 1432, 1432, 1432, 1462, 1462,
884 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1432,
885 1478, 1459, 1432, 1432, 1432, 1432, 1462, 1462, 1476, 1476,
886 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1432, 1478,
888 1459, 1432, 1432, 1432, 1432, 1462, 1462, 1476, 1476, 1476,
889 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1432, 1432, 1432,
890 1432, 1432, 1432, 1432, 1432, 1462, 1462, 1476, 1476, 1476,
891 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1432, 1432,
892 1432, 1432, 1432, 1462, 1462, 1476, 1476, 1476, 1476, 1476,
893 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1462, 1462, 1476,
894 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
895 1476, 1476, 1476, 1462, 1462, 1476, 1476, 1476, 1476, 1476,
896 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
897 1462, 1462, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
899 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1462, 1462, 1476,
900 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
901 1476, 1476, 1476, 1476, 1462, 1462, 1476, 1476, 1476, 1476,
902 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
903 1476, 1432, 1432, 1432, 1432, 1476, 1476, 1476, 1476, 1476,
904 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
905 1476, 1432, 1432, 1432, 1432, 1432, 1432, 1476, 1476, 1476,
906 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
907 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
908 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
910 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
911 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
912 1432, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
913 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
914 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
915 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1432, 1476,
916 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
917 1476, 1476, 1432, 1476, 1476, 1432, 1476, 1476, 1476, 1476,
918 1476, 1432, 1476, 1476, 1476, 1432, 1476, 1476, 1476, 1476,
919 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
921 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
922 1432, 1476, 1476, 1476, 1476, 1476, 1476, 1432, 1476, 1476,
923 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
924 1432, 0, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
925 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
926 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
927 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
928 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
929 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
934 static yyconst flex_int16_t yy_nxt[4009] =
936 1432, 102, 103, 102, 102, 103, 102, 102, 103, 102,
937 102, 103, 102, 110, 1432, 104, 110, 113, 104, 113,
938 111, 105, 389, 111, 105, 107, 103, 107, 107, 103,
939 107, 116, 117, 114, 391, 114, 118, 119, 327, 108,
940 116, 117, 108, 323, 120, 118, 119, 116, 117, 974,
941 121, 246, 118, 120, 116, 117, 324, 121, 977, 118,
942 120, 123, 124, 123, 124, 247, 246, 120, 103, 103,
943 103, 103, 103, 103, 135, 103, 135, 135, 103, 135,
944 248, 329, 126, 389, 330, 126, 328, 327, 136, 393,
945 389, 136, 245, 245, 245, 125, 643, 125, 127, 128,
947 103, 128, 127, 127, 127, 127, 127, 127, 127, 129,
948 127, 974, 127, 131, 127, 132, 127, 103, 103, 103,
949 977, 103, 103, 103, 135, 103, 135, 135, 103, 135,
950 841, 137, 389, 127, 127, 137, 249, 293, 136, 389,
951 249, 136, 245, 245, 245, 245, 245, 245, 294, 597,
952 248, 245, 245, 245, 248, 531, 133, 127, 128, 103,
953 128, 127, 127, 127, 127, 127, 127, 127, 129, 127,
954 534, 127, 131, 127, 132, 127, 135, 103, 135, 389,
955 135, 103, 135, 103, 103, 103, 103, 103, 103, 389,
956 138, 249, 127, 127, 138, 645, 249, 139, 249, 249,
958 139, 245, 245, 245, 811, 248, 264, 245, 245, 245,
959 248, 534, 248, 248, 534, 133, 140, 141, 103, 141,
960 140, 140, 140, 140, 140, 140, 140, 142, 140, 846,
961 140, 144, 140, 145, 140, 148, 103, 148, 266, 148,
962 103, 148, 103, 103, 103, 1226, 260, 644, 685, 149,
963 389, 140, 140, 149, 472, 534, 137, 389, 534, 146,
964 140, 141, 103, 141, 140, 140, 140, 140, 140, 140,
965 140, 142, 140, 534, 140, 144, 140, 145, 140, 103,
966 103, 103, 774, 148, 103, 148, 148, 103, 148, 729,
967 148, 103, 148, 137, 808, 140, 140, 149, 534, 1225,
969 149, 389, 775, 146, 150, 148, 103, 148, 103, 103,
970 103, 103, 103, 103, 245, 245, 245, 389, 935, 150,
971 698, 684, 151, 683, 699, 151, 152, 153, 103, 153,
972 152, 152, 152, 152, 152, 152, 152, 154, 152, 155,
973 152, 156, 152, 157, 152, 155, 155, 155, 155, 155,
974 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
975 155, 152, 152, 155, 158, 155, 155, 155, 155, 155,
976 155, 155, 159, 155, 155, 160, 161, 155, 162, 155,
977 155, 163, 155, 155, 155, 155, 155, 155, 165, 103,
978 165, 165, 103, 165, 103, 103, 103, 103, 103, 103,
980 700, 389, 166, 711, 701, 166, 713, 712, 167, 389,
981 714, 167, 168, 169, 103, 169, 168, 168, 168, 168,
982 168, 168, 168, 170, 168, 534, 168, 172, 168, 173,
983 168, 176, 103, 176, 810, 176, 103, 176, 103, 103,
984 103, 103, 103, 103, 249, 177, 937, 168, 168, 177,
985 389, 273, 178, 389, 815, 178, 1209, 389, 248, 245,
986 245, 245, 174, 168, 169, 103, 169, 168, 168, 168,
987 168, 168, 168, 168, 170, 168, 842, 168, 172, 168,
988 173, 168, 190, 103, 190, 809, 190, 103, 190, 103,
989 103, 103, 103, 103, 103, 249, 191, 866, 168, 168,
991 191, 389, 389, 192, 883, 884, 192, 1022, 389, 248,
992 245, 245, 245, 174, 179, 180, 103, 180, 179, 179,
993 179, 179, 179, 179, 179, 181, 179, 534, 179, 183,
994 179, 184, 179, 203, 103, 203, 814, 203, 103, 203,
995 103, 103, 103, 103, 103, 103, 249, 204, 902, 179,
996 179, 204, 249, 185, 205, 974, 389, 205, 534, 282,
997 248, 1229, 186, 389, 187, 730, 248, 975, 389, 188,
998 179, 180, 103, 180, 179, 179, 179, 179, 179, 179,
999 179, 181, 179, 840, 179, 183, 179, 184, 179, 203,
1000 103, 203, 816, 203, 103, 203, 203, 103, 203, 203,
1002 103, 203, 843, 204, 389, 179, 179, 204, 249, 185,
1003 206, 974, 1304, 206, 245, 245, 245, 389, 186, 965,
1004 187, 389, 248, 975, 389, 188, 193, 194, 103, 194,
1005 193, 193, 193, 193, 193, 193, 193, 195, 193, 389,
1006 193, 197, 193, 198, 193, 103, 103, 103, 868, 103,
1007 103, 103, 215, 103, 215, 215, 103, 215, 283, 205,
1008 870, 193, 193, 205, 249, 249, 216, 199, 1208, 216,
1009 812, 287, 200, 245, 245, 245, 813, 534, 248, 248,
1010 389, 201, 193, 194, 103, 194, 193, 193, 193, 193,
1011 193, 193, 193, 195, 193, 389, 193, 197, 193, 198,
1013 193, 103, 103, 103, 873, 103, 103, 103, 229, 103,
1014 229, 229, 103, 229, 845, 217, 844, 193, 193, 217,
1015 389, 249, 230, 199, 1192, 230, 1191, 534, 200, 245,
1016 245, 245, 245, 245, 245, 248, 992, 201, 207, 208,
1017 103, 208, 207, 207, 207, 207, 207, 207, 207, 209,
1018 207, 389, 207, 211, 207, 212, 207, 103, 103, 103,
1019 847, 103, 103, 103, 229, 103, 229, 229, 103, 229,
1020 249, 231, 389, 207, 207, 231, 389, 295, 230, 389,
1021 1175, 230, 1077, 900, 248, 245, 245, 245, 213, 207,
1022 208, 103, 208, 207, 207, 207, 207, 207, 207, 207,
1024 209, 207, 871, 207, 211, 207, 212, 207, 229, 103,
1025 229, 872, 229, 103, 229, 103, 103, 103, 103, 103,
1026 103, 249, 232, 249, 207, 207, 232, 1174, 389, 231,
1027 389, 1230, 231, 534, 389, 248, 389, 248, 389, 213,
1028 218, 219, 103, 219, 218, 218, 218, 218, 218, 218,
1029 218, 220, 218, 249, 218, 222, 218, 223, 218, 241,
1030 103, 241, 903, 241, 103, 241, 848, 248, 938, 267,
1031 249, 296, 869, 242, 939, 218, 218, 242, 245, 245,
1032 245, 116, 117, 224, 248, 225, 118, 226, 254, 265,
1033 245, 245, 245, 389, 243, 227, 218, 219, 103, 219,
1035 218, 218, 218, 218, 218, 218, 218, 220, 218, 1159,
1036 218, 222, 218, 223, 218, 244, 116, 117, 389, 904,
1037 255, 118, 249, 245, 245, 245, 256, 389, 249, 243,
1038 257, 218, 218, 249, 249, 258, 248, 1053, 994, 224,
1039 302, 225, 248, 226, 245, 245, 245, 248, 248, 389,
1040 244, 227, 233, 234, 103, 234, 233, 233, 233, 233,
1041 233, 233, 233, 235, 233, 389, 233, 237, 233, 238,
1042 233, 249, 303, 389, 905, 249, 268, 249, 302, 245,
1043 245, 245, 307, 303, 314, 248, 389, 233, 233, 248,
1044 249, 248, 249, 797, 249, 249, 1096, 314, 245, 245,
1046 245, 264, 968, 967, 248, 1158, 248, 798, 248, 248,
1047 239, 233, 234, 103, 234, 233, 233, 233, 233, 233,
1048 233, 233, 235, 233, 315, 233, 237, 233, 238, 233,
1049 265, 265, 245, 245, 245, 389, 266, 266, 249, 389,
1050 267, 267, 268, 268, 269, 269, 233, 233, 249, 249,
1051 389, 389, 248, 985, 389, 273, 319, 245, 245, 245,
1052 906, 986, 248, 248, 402, 402, 402, 389, 997, 239,
1053 389, 995, 315, 402, 402, 402, 412, 412, 412, 934,
1054 404, 412, 412, 412, 265, 422, 422, 422, 969, 404,
1055 266, 936, 414, 389, 267, 966, 268, 414, 269, 389,
1057 389, 424, 422, 422, 422, 428, 428, 428, 428, 428,
1058 428, 437, 437, 437, 987, 437, 437, 437, 424, 1025,
1059 405, 430, 988, 389, 430, 971, 964, 439, 389, 1098,
1060 415, 439, 442, 442, 442, 445, 445, 445, 447, 447,
1061 447, 447, 447, 447, 453, 453, 453, 443, 389, 389,
1062 446, 534, 535, 425, 449, 389, 440, 449, 431, 998,
1063 455, 453, 453, 453, 461, 461, 461, 461, 461, 461,
1064 467, 467, 467, 467, 467, 467, 389, 455, 389, 389,
1065 463, 1059, 1111, 463, 1055, 1114, 469, 991, 389, 469,
1066 389, 450, 402, 402, 402, 389, 402, 402, 402, 402,
1068 402, 402, 481, 481, 481, 412, 412, 412, 404, 1024,
1069 1027, 456, 404, 1028, 1056, 404, 486, 486, 486, 389,
1070 464, 414, 412, 412, 412, 389, 470, 412, 412, 412,
1071 1145, 487, 492, 492, 492, 1058, 480, 389, 414, 422,
1072 422, 422, 1029, 414, 422, 422, 422, 493, 422, 422,
1073 422, 389, 498, 498, 498, 424, 428, 428, 428, 389,
1074 424, 428, 428, 428, 424, 389, 488, 499, 428, 428,
1075 428, 1217, 430, 503, 503, 503, 1054, 430, 437, 437,
1076 437, 437, 437, 437, 430, 437, 437, 437, 504, 1094,
1077 442, 442, 442, 389, 439, 389, 389, 439, 481, 481,
1079 481, 439, 389, 1109, 496, 443, 509, 509, 509, 1079,
1080 510, 1060, 1057, 511, 445, 445, 445, 1073, 513, 513,
1081 513, 389, 514, 389, 500, 515, 447, 447, 447, 446,
1082 447, 447, 447, 447, 447, 447, 518, 518, 518, 389,
1083 507, 389, 449, 453, 453, 453, 449, 1144, 1075, 449,
1084 1151, 519, 453, 453, 453, 453, 453, 453, 1071, 455,
1085 522, 522, 522, 461, 461, 461, 389, 389, 455, 1093,
1086 389, 455, 461, 461, 461, 523, 461, 461, 461, 463,
1087 467, 467, 467, 467, 467, 467, 1092, 389, 463, 516,
1088 1113, 1078, 463, 467, 467, 467, 469, 389, 389, 469,
1090 533, 533, 533, 402, 402, 402, 486, 486, 486, 469,
1091 389, 520, 412, 412, 412, 1150, 534, 535, 389, 404,
1092 1074, 487, 389, 545, 545, 545, 526, 546, 414, 389,
1093 547, 492, 492, 492, 1095, 1110, 529, 552, 552, 552,
1094 389, 553, 389, 1097, 554, 389, 493, 555, 555, 555,
1095 557, 557, 557, 560, 560, 560, 1108, 1076, 540, 548,
1096 1089, 1116, 556, 389, 1166, 558, 498, 498, 498, 561,
1097 563, 563, 563, 1117, 564, 389, 389, 565, 428, 428,
1098 428, 499, 503, 503, 503, 389, 559, 1143, 569, 569,
1099 569, 1128, 570, 389, 430, 571, 389, 504, 573, 573,
1101 573, 437, 437, 437, 509, 509, 509, 1212, 510, 389,
1102 389, 511, 1133, 574, 513, 513, 513, 439, 514, 1131,
1103 1134, 515, 447, 447, 447, 518, 518, 518, 581, 581,
1104 581, 1153, 582, 566, 575, 583, 1129, 389, 449, 389,
1105 519, 453, 453, 453, 389, 522, 522, 522, 586, 586,
1106 586, 389, 587, 1182, 1146, 588, 389, 455, 389, 576,
1107 523, 389, 461, 461, 461, 593, 593, 593, 467, 467,
1108 467, 533, 533, 533, 402, 402, 402, 579, 463, 1130,
1109 594, 607, 607, 607, 469, 389, 389, 534, 1147, 389,
1110 404, 545, 545, 545, 1154, 546, 584, 1183, 547, 389,
1112 1270, 591, 412, 412, 412, 389, 552, 552, 552, 389,
1113 553, 1161, 598, 554, 1165, 1162, 603, 389, 414, 1216,
1114 555, 555, 555, 1148, 595, 613, 613, 613, 599, 614,
1115 389, 389, 615, 389, 608, 556, 557, 557, 557, 616,
1116 616, 616, 389, 617, 389, 1169, 618, 560, 560, 560,
1117 1171, 558, 563, 563, 563, 389, 564, 1170, 609, 565,
1118 428, 428, 428, 561, 569, 569, 569, 1186, 570, 1172,
1119 1188, 571, 573, 573, 573, 1142, 430, 624, 624, 624,
1120 1173, 625, 1180, 389, 626, 389, 389, 574, 437, 437,
1121 437, 607, 607, 607, 447, 447, 447, 1127, 581, 581,
1123 581, 620, 582, 389, 439, 583, 453, 453, 453, 1203,
1124 449, 586, 586, 586, 1200, 587, 389, 389, 588, 593,
1125 593, 593, 455, 461, 461, 461, 638, 638, 638, 1178,
1126 639, 389, 389, 640, 594, 630, 389, 389, 628, 463,
1127 467, 467, 467, 647, 647, 647, 1179, 632, 1195, 402,
1128 402, 402, 607, 607, 607, 1181, 469, 389, 648, 653,
1129 653, 653, 389, 1196, 636, 404, 412, 412, 412, 613,
1130 613, 613, 1189, 614, 1184, 1185, 615, 616, 616, 616,
1131 1126, 617, 414, 1204, 618, 428, 428, 428, 641, 663,
1132 663, 663, 389, 624, 624, 624, 389, 625, 1125, 649,
1134 626, 430, 1190, 1124, 664, 389, 654, 437, 437, 437,
1135 672, 672, 672, 453, 453, 453, 461, 461, 461, 389,
1136 638, 638, 638, 439, 639, 665, 673, 640, 389, 455,
1137 1193, 389, 463, 1187, 467, 467, 467, 1199, 661, 647,
1138 647, 647, 389, 1194, 687, 687, 687, 389, 688, 675,
1139 469, 689, 1248, 389, 648, 402, 402, 402, 1205, 1197,
1140 670, 691, 691, 691, 693, 693, 693, 653, 653, 653,
1141 679, 404, 412, 412, 412, 681, 703, 703, 703, 663,
1142 663, 663, 706, 706, 706, 389, 707, 1198, 414, 708,
1143 389, 1222, 704, 1201, 664, 437, 437, 437, 672, 672,
1145 672, 453, 453, 453, 720, 720, 720, 1293, 690, 389,
1146 389, 439, 389, 694, 673, 1123, 389, 455, 1341, 721,
1147 461, 461, 461, 467, 467, 467, 1326, 728, 728, 728,
1148 687, 687, 687, 389, 688, 389, 463, 689, 389, 469,
1149 1213, 716, 719, 389, 402, 402, 402, 691, 691, 691,
1150 693, 693, 693, 734, 734, 734, 1202, 703, 703, 703,
1151 404, 744, 744, 744, 706, 706, 706, 1237, 707, 735,
1152 1206, 708, 726, 704, 724, 1207, 745, 437, 437, 437,
1153 453, 453, 453, 720, 720, 720, 389, 758, 758, 758,
1154 389, 759, 732, 439, 760, 1122, 455, 746, 721, 761,
1156 761, 761, 764, 764, 764, 766, 766, 766, 467, 467,
1157 467, 1107, 1106, 754, 762, 402, 402, 402, 765, 734,
1158 734, 734, 389, 1234, 469, 389, 1210, 757, 784, 784,
1159 784, 404, 744, 744, 744, 735, 389, 786, 786, 786,
1160 1309, 787, 389, 785, 788, 1105, 389, 745, 766, 766,
1161 766, 777, 794, 794, 794, 437, 437, 437, 453, 453,
1162 453, 389, 1211, 767, 728, 728, 728, 795, 758, 758,
1163 758, 439, 759, 1214, 455, 760, 761, 761, 761, 1215,
1164 389, 801, 801, 801, 389, 802, 389, 389, 803, 1220,
1165 389, 762, 804, 804, 804, 764, 764, 764, 1218, 800,
1167 389, 768, 796, 769, 806, 806, 806, 805, 389, 770,
1168 1223, 765, 1224, 771, 389, 772, 1231, 773, 1104, 389,
1169 807, 402, 402, 402, 784, 784, 784, 823, 823, 823,
1170 1221, 824, 1238, 389, 825, 389, 389, 404, 389, 785,
1171 786, 786, 786, 389, 787, 1219, 1103, 788, 794, 794,
1172 794, 829, 829, 829, 1102, 830, 1227, 1240, 831, 1232,
1173 389, 818, 1249, 795, 437, 437, 437, 453, 453, 453,
1174 801, 801, 801, 1228, 802, 1260, 1101, 803, 1241, 1088,
1175 439, 1087, 389, 455, 804, 804, 804, 837, 837, 837,
1176 389, 838, 1239, 389, 839, 806, 806, 806, 1274, 805,
1178 402, 402, 402, 852, 852, 852, 823, 823, 823, 832,
1179 824, 807, 389, 825, 389, 836, 404, 389, 853, 858,
1180 858, 858, 829, 829, 829, 1261, 830, 1086, 1085, 831,
1181 437, 437, 437, 1250, 859, 453, 453, 453, 1235, 854,
1182 1236, 850, 389, 837, 837, 837, 439, 838, 1257, 389,
1183 839, 455, 867, 867, 867, 874, 874, 874, 402, 402,
1184 402, 878, 878, 878, 389, 852, 852, 852, 389, 389,
1185 875, 534, 1084, 1258, 404, 1246, 865, 1304, 389, 861,
1186 853, 879, 879, 879, 389, 880, 389, 1083, 881, 858,
1187 858, 858, 887, 887, 887, 1247, 888, 389, 389, 889,
1189 437, 437, 437, 1271, 859, 892, 892, 892, 895, 895,
1190 895, 389, 877, 453, 453, 453, 439, 867, 867, 867,
1191 893, 1251, 1287, 896, 907, 907, 907, 1255, 1283, 455,
1192 878, 878, 878, 389, 874, 874, 874, 389, 389, 908,
1193 534, 894, 389, 1082, 897, 1080, 891, 389, 901, 875,
1194 534, 909, 909, 909, 1256, 910, 1279, 389, 911, 402,
1195 402, 402, 899, 389, 879, 879, 879, 534, 880, 1272,
1196 1070, 881, 918, 918, 918, 404, 887, 887, 887, 1273,
1197 888, 1268, 1291, 889, 920, 920, 920, 919, 922, 922,
1198 922, 892, 892, 892, 895, 895, 895, 1069, 913, 921,
1200 1269, 924, 924, 924, 923, 925, 893, 389, 926, 896,
1201 928, 928, 928, 389, 929, 389, 1068, 930, 932, 932,
1202 932, 453, 453, 453, 940, 940, 940, 907, 907, 907,
1203 389, 943, 943, 943, 389, 944, 389, 455, 945, 1277,
1204 389, 1067, 908, 534, 918, 918, 918, 534, 909, 909,
1205 909, 1275, 910, 1298, 1288, 911, 402, 402, 402, 919,
1206 941, 954, 954, 954, 534, 955, 1278, 1284, 956, 932,
1207 932, 932, 404, 920, 920, 920, 933, 942, 532, 532,
1208 532, 532, 532, 532, 532, 532, 532, 1066, 921, 532,
1209 1344, 1344, 532, 532, 532, 534, 532, 957, 957, 957,
1211 389, 958, 389, 389, 959, 1099, 1099, 1099, 1065, 949,
1212 1006, 1006, 1006, 532, 532, 532, 532, 532, 532, 532,
1213 532, 532, 532, 532, 389, 1007, 532, 1280, 389, 532,
1214 532, 532, 534, 532, 389, 1285, 922, 922, 922, 924,
1215 924, 924, 389, 925, 389, 389, 926, 962, 962, 962,
1216 532, 532, 923, 928, 928, 928, 1286, 929, 389, 1289,
1217 930, 389, 389, 963, 940, 940, 940, 972, 972, 972,
1218 943, 943, 943, 1290, 944, 389, 1294, 945, 1300, 389,
1219 389, 389, 1296, 389, 1292, 389, 534, 954, 954, 954,
1220 389, 955, 1295, 1302, 956, 970, 532, 532, 532, 532,
1222 532, 978, 532, 532, 532, 1297, 1303, 532, 389, 1362,
1223 532, 532, 532, 534, 532, 957, 957, 957, 1312, 958,
1224 1064, 389, 959, 1099, 1099, 1099, 402, 402, 402, 389,
1225 1314, 532, 532, 532, 532, 532, 532, 532, 532, 532,
1226 532, 978, 404, 389, 532, 1301, 1299, 532, 532, 532,
1227 534, 532, 389, 389, 962, 962, 962, 993, 993, 993,
1228 996, 996, 996, 972, 972, 972, 1307, 1305, 532, 532,
1229 963, 980, 389, 389, 389, 1353, 389, 1316, 1062, 389,
1230 1003, 1003, 1003, 402, 402, 402, 1008, 1008, 1008, 1010,
1231 1010, 1010, 389, 1306, 999, 1310, 534, 535, 1324, 404,
1233 389, 1009, 389, 389, 1011, 1013, 1013, 1013, 1021, 1021,
1234 1021, 993, 993, 993, 996, 996, 996, 1003, 1003, 1003,
1235 1014, 402, 402, 402, 389, 1012, 389, 389, 1311, 1308,
1236 389, 389, 1365, 534, 1005, 389, 1061, 404, 1006, 1006,
1237 1006, 1355, 1023, 1315, 389, 1026, 1051, 1033, 1033, 1033,
1238 389, 1034, 389, 1007, 1035, 1008, 1008, 1008, 598, 1036,
1239 1036, 1036, 389, 1037, 389, 1313, 1038, 1010, 1010, 1010,
1240 1009, 1039, 1039, 1039, 1317, 1040, 1032, 389, 1041, 1013,
1241 1013, 1013, 1011, 1043, 1043, 1043, 1322, 1044, 1323, 1331,
1242 1045, 1021, 1021, 1021, 1014, 402, 402, 402, 1033, 1033,
1244 1033, 389, 1034, 1325, 389, 1035, 1318, 389, 1036, 1036,
1245 1036, 404, 1037, 389, 1319, 1038, 1039, 1039, 1039, 1050,
1246 1040, 389, 1052, 1041, 1043, 1043, 1043, 389, 1044, 1049,
1247 1362, 1045, 1072, 1072, 1072, 402, 402, 402, 1332, 389,
1248 1063, 1365, 1072, 1072, 1072, 389, 1090, 1339, 389, 1091,
1249 389, 404, 402, 402, 402, 1112, 1112, 1112, 389, 1115,
1250 1115, 1115, 1118, 1118, 1118, 1120, 1120, 1120, 404, 1327,
1251 1340, 389, 1112, 1112, 1112, 389, 389, 1048, 1119, 1047,
1252 1121, 389, 1115, 1115, 1115, 1081, 1135, 389, 389, 1136,
1253 1137, 1137, 1137, 1138, 1138, 1138, 389, 389, 389, 389,
1255 1328, 1100, 1046, 1132, 1042, 1329, 389, 1031, 389, 389,
1256 1118, 1118, 1118, 1120, 1120, 1120, 1139, 1139, 1139, 389,
1257 1140, 1330, 1345, 1141, 389, 389, 1119, 1395, 1121, 1149,
1258 1149, 1149, 1152, 1152, 1152, 1137, 1137, 1137, 1333, 1138,
1259 1138, 1138, 389, 1156, 389, 389, 1157, 1334, 389, 1335,
1260 1346, 389, 1139, 1139, 1139, 389, 1140, 389, 1337, 1141,
1261 1160, 1160, 1160, 1149, 1149, 1149, 1155, 1163, 1336, 389,
1262 1164, 1152, 1152, 1152, 1354, 1167, 389, 389, 1168, 389,
1263 1001, 1160, 1160, 1160, 389, 1176, 389, 389, 1177, 1233,
1264 1233, 1233, 1242, 1242, 1242, 1030, 1338, 389, 1244, 1244,
1266 1244, 1347, 1233, 1233, 1233, 389, 1252, 1243, 1342, 1253,
1267 1254, 1254, 1254, 1245, 1259, 1259, 1259, 389, 389, 1242,
1268 1242, 1242, 1244, 1244, 1244, 1343, 389, 1360, 1001, 389,
1269 389, 1262, 1262, 1262, 1243, 1263, 1369, 1245, 1264, 1265,
1270 1265, 1265, 1020, 1266, 389, 389, 1267, 1254, 1254, 1254,
1271 1259, 1259, 1259, 1348, 1281, 389, 1349, 1282, 1262, 1262,
1272 1262, 389, 1263, 389, 389, 1264, 389, 1265, 1265, 1265,
1273 389, 1266, 389, 389, 1267, 1320, 1320, 1320, 1276, 1320,
1274 1320, 1320, 389, 1350, 389, 1351, 1366, 389, 1352, 389,
1275 389, 1321, 1369, 1374, 1356, 1321, 1357, 1358, 1358, 1358,
1277 1377, 1368, 1368, 1368, 389, 389, 1363, 389, 1364, 1358,
1278 1358, 1358, 1378, 1359, 1374, 389, 1361, 389, 1367, 389,
1279 389, 1370, 1371, 389, 389, 1359, 1372, 1372, 1372, 1375,
1280 1375, 1375, 1368, 1368, 1368, 389, 1379, 389, 389, 1380,
1281 389, 1019, 1373, 389, 1387, 1376, 1383, 389, 389, 1381,
1282 1381, 1381, 1372, 1372, 1372, 1384, 1385, 1385, 1385, 1375,
1283 1375, 1375, 1388, 389, 389, 1382, 389, 1391, 1373, 1381,
1284 1381, 1381, 1386, 1389, 389, 1376, 1392, 1396, 1390, 1385,
1285 1385, 1385, 1393, 389, 389, 1382, 1394, 1397, 1398, 389,
1286 1399, 389, 389, 389, 1405, 1386, 1405, 389, 389, 389,
1288 389, 389, 1414, 389, 1414, 389, 389, 389, 1400, 389,
1289 389, 389, 389, 1410, 1410, 1410, 389, 1410, 1410, 1410,
1290 1417, 1417, 1417, 1406, 1407, 1408, 1401, 1409, 1402, 1411,
1291 389, 1403, 1404, 1411, 389, 389, 1418, 1018, 389, 1415,
1292 1421, 1416, 1412, 1413, 1417, 1417, 1417, 389, 1422, 1425,
1293 389, 1426, 389, 1017, 1429, 389, 1016, 1015, 1429, 1423,
1294 1418, 1419, 1424, 1004, 1001, 1420, 389, 389, 1430, 1430,
1295 1430, 1430, 1430, 1430, 1427, 1001, 1428, 990, 989, 984,
1296 983, 982, 981, 979, 1431, 961, 960, 1431, 100, 100,
1297 100, 100, 100, 100, 100, 101, 101, 101, 101, 101,
1299 101, 101, 106, 106, 106, 106, 106, 106, 106, 109,
1300 109, 109, 109, 109, 109, 109, 112, 112, 112, 112,
1301 112, 112, 112, 115, 115, 115, 115, 115, 115, 115,
1302 122, 122, 122, 122, 122, 122, 122, 130, 130, 130,
1303 130, 130, 130, 130, 134, 134, 134, 134, 134, 134,
1304 134, 143, 143, 143, 143, 143, 143, 143, 147, 147,
1305 147, 147, 147, 147, 147, 164, 164, 164, 164, 164,
1306 164, 164, 171, 171, 171, 171, 171, 171, 171, 175,
1307 175, 175, 175, 175, 175, 175, 182, 182, 182, 182,
1308 182, 182, 182, 189, 189, 189, 189, 189, 189, 189,
1310 196, 196, 196, 196, 196, 196, 196, 202, 202, 202,
1311 202, 202, 202, 202, 210, 210, 210, 210, 210, 210,
1312 210, 214, 214, 214, 214, 214, 214, 214, 221, 221,
1313 221, 221, 221, 221, 221, 228, 228, 228, 228, 228,
1314 228, 228, 236, 236, 236, 236, 236, 236, 236, 240,
1315 240, 240, 240, 240, 240, 240, 262, 262, 262, 953,
1316 262, 271, 271, 271, 952, 271, 275, 275, 275, 951,
1317 275, 285, 285, 285, 950, 285, 289, 289, 289, 948,
1318 289, 298, 298, 298, 931, 298, 305, 305, 305, 927,
1319 305, 309, 309, 309, 917, 309, 317, 317, 317, 916,
1321 317, 322, 322, 322, 322, 322, 915, 322, 337, 914,
1322 337, 345, 912, 345, 353, 898, 353, 357, 890, 357,
1323 364, 886, 364, 370, 885, 370, 374, 882, 374, 380,
1324 876, 380, 384, 864, 384, 388, 388, 388, 388, 388,
1325 388, 388, 394, 863, 862, 394, 403, 403, 403, 403,
1326 403, 403, 413, 413, 413, 413, 413, 413, 423, 423,
1327 423, 423, 423, 423, 429, 429, 429, 429, 429, 429,
1328 438, 438, 438, 438, 438, 438, 448, 448, 448, 448,
1329 448, 448, 454, 454, 454, 454, 454, 454, 462, 462,
1330 462, 462, 462, 462, 468, 468, 468, 468, 468, 468,
1332 532, 532, 532, 532, 532, 532, 532, 946, 946, 946,
1333 946, 946, 946, 946, 947, 947, 947, 947, 947, 947,
1334 947, 973, 973, 973, 973, 973, 973, 973, 976, 976,
1335 976, 976, 976, 976, 976, 1000, 1000, 1000, 1000, 1000,
1336 1000, 1000, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 860,
1337 857, 856, 855, 851, 849, 835, 834, 833, 828, 827,
1338 826, 822, 821, 820, 819, 817, 799, 793, 792, 791,
1339 790, 789, 783, 782, 781, 780, 779, 778, 776, 763,
1340 756, 755, 753, 752, 751, 750, 749, 748, 747, 743,
1341 742, 741, 740, 739, 738, 737, 736, 733, 731, 727,
1343 725, 723, 722, 718, 717, 715, 710, 709, 705, 702,
1344 697, 696, 695, 692, 686, 682, 680, 678, 677, 676,
1345 674, 671, 669, 668, 667, 666, 662, 660, 659, 658,
1346 657, 656, 655, 652, 651, 650, 646, 642, 637, 635,
1347 634, 633, 631, 629, 627, 623, 622, 621, 608, 619,
1348 612, 611, 610, 606, 605, 604, 602, 601, 600, 534,
1349 596, 592, 590, 589, 585, 580, 578, 577, 572, 568,
1350 567, 562, 551, 550, 549, 544, 543, 542, 541, 539,
1351 538, 537, 536, 530, 528, 527, 525, 524, 521, 517,
1352 512, 508, 506, 505, 502, 501, 497, 495, 494, 491,
1354 490, 489, 485, 484, 483, 482, 479, 478, 477, 476,
1355 475, 474, 473, 389, 471, 466, 465, 460, 459, 458,
1356 457, 452, 451, 444, 441, 436, 435, 434, 433, 432,
1357 427, 426, 421, 420, 419, 418, 417, 416, 411, 410,
1358 409, 408, 407, 406, 401, 400, 399, 398, 397, 396,
1359 395, 392, 390, 389, 387, 386, 385, 383, 382, 381,
1360 379, 378, 377, 376, 375, 373, 372, 371, 369, 368,
1361 367, 366, 365, 363, 362, 361, 360, 359, 358, 356,
1362 355, 354, 352, 351, 350, 349, 348, 347, 346, 344,
1363 343, 342, 341, 340, 339, 338, 336, 335, 334, 333,
1365 332, 331, 326, 323, 325, 321, 320, 318, 316, 313,
1366 312, 311, 310, 308, 306, 304, 301, 300, 299, 297,
1367 292, 291, 290, 288, 286, 284, 281, 280, 279, 278,
1368 277, 276, 274, 272, 270, 263, 261, 259, 253, 252,
1369 253, 252, 251, 250, 1432, 99, 1432, 1432, 1432, 1432,
1370 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1371 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1372 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1373 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1374 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1376 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432
1379 static yyconst flex_int16_t yy_chk[4009] =
1381 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1382 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1383 9, 5, 324, 10, 6, 7, 7, 7, 8, 8,
1384 8, 13, 13, 11, 324, 12, 13, 13, 254, 7,
1385 14, 14, 8, 246, 13, 14, 14, 15, 15, 945,
1386 15, 104, 15, 14, 16, 16, 246, 16, 945, 16,
1387 15, 17, 17, 18, 18, 104, 105, 16, 19, 19,
1388 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1389 105, 255, 19, 597, 255, 20, 254, 327, 23, 327,
1390 809, 24, 102, 102, 102, 17, 597, 18, 21, 21,
1392 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1393 21, 976, 21, 21, 21, 21, 21, 25, 25, 25,
1394 976, 26, 26, 26, 27, 27, 27, 28, 28, 28,
1395 809, 25, 531, 21, 21, 26, 108, 188, 27, 472,
1396 131, 28, 103, 103, 103, 107, 107, 107, 188, 531,
1397 108, 128, 128, 128, 131, 472, 21, 22, 22, 22,
1398 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1399 599, 22, 22, 22, 22, 22, 29, 29, 29, 771,
1400 30, 30, 30, 31, 31, 31, 32, 32, 32, 814,
1401 29, 144, 22, 22, 30, 599, 139, 31, 126, 138,
1403 32, 135, 135, 135, 771, 144, 138, 141, 141, 141,
1404 139, 645, 126, 138, 598, 22, 33, 33, 33, 33,
1405 33, 33, 33, 33, 33, 33, 33, 33, 33, 814,
1406 33, 33, 33, 33, 33, 35, 35, 35, 139, 36,
1407 36, 36, 37, 37, 37, 1209, 126, 598, 645, 35,
1408 391, 33, 33, 36, 391, 684, 37, 768, 729, 33,
1409 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1410 34, 34, 34, 730, 34, 34, 34, 34, 34, 38,
1411 38, 38, 729, 39, 39, 39, 40, 40, 40, 684,
1412 41, 41, 41, 38, 768, 34, 34, 39, 644, 1208,
1414 40, 901, 730, 34, 41, 42, 42, 42, 43, 43,
1415 43, 44, 44, 44, 148, 148, 148, 643, 901, 42,
1416 658, 644, 43, 643, 658, 44, 45, 45, 45, 45,
1417 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1418 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1419 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1420 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1421 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1422 45, 45, 45, 45, 45, 45, 45, 45, 47, 47,
1423 47, 48, 48, 48, 49, 49, 49, 50, 50, 50,
1425 659, 770, 47, 667, 659, 48, 668, 667, 49, 903,
1426 668, 50, 51, 51, 51, 51, 51, 51, 51, 51,
1427 51, 51, 51, 51, 51, 774, 51, 51, 51, 51,
1428 51, 53, 53, 53, 770, 54, 54, 54, 55, 55,
1429 55, 56, 56, 56, 150, 53, 903, 51, 51, 54,
1430 769, 150, 55, 810, 774, 56, 1192, 840, 150, 153,
1431 153, 153, 51, 52, 52, 52, 52, 52, 52, 52,
1432 52, 52, 52, 52, 52, 52, 810, 52, 52, 52,
1433 52, 52, 59, 59, 59, 769, 60, 60, 60, 61,
1434 61, 61, 62, 62, 62, 156, 59, 840, 52, 52,
1436 60, 992, 773, 61, 855, 855, 62, 992, 868, 156,
1437 165, 165, 165, 52, 57, 57, 57, 57, 57, 57,
1438 57, 57, 57, 57, 57, 57, 57, 685, 57, 57,
1439 57, 57, 57, 65, 65, 65, 773, 66, 66, 66,
1440 67, 67, 67, 68, 68, 68, 172, 65, 868, 57,
1441 57, 66, 166, 57, 67, 944, 808, 68, 775, 166,
1442 172, 1212, 57, 811, 57, 685, 166, 944, 1212, 57,
1443 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1444 58, 58, 58, 808, 58, 58, 58, 58, 58, 69,
1445 69, 69, 775, 70, 70, 70, 71, 71, 71, 72,
1447 72, 72, 811, 69, 935, 58, 58, 70, 167, 58,
1448 71, 973, 1287, 72, 169, 169, 169, 842, 58, 935,
1449 58, 844, 167, 973, 1287, 58, 63, 63, 63, 63,
1450 63, 63, 63, 63, 63, 63, 63, 63, 63, 772,
1451 63, 63, 63, 63, 63, 73, 73, 73, 842, 74,
1452 74, 74, 77, 77, 77, 78, 78, 78, 167, 73,
1453 844, 63, 63, 74, 177, 183, 77, 63, 1191, 78,
1454 772, 177, 63, 176, 176, 176, 772, 847, 177, 183,
1455 813, 63, 64, 64, 64, 64, 64, 64, 64, 64,
1456 64, 64, 64, 64, 64, 812, 64, 64, 64, 64,
1458 64, 79, 79, 79, 847, 80, 80, 80, 83, 83,
1459 83, 84, 84, 84, 813, 79, 812, 64, 64, 80,
1460 965, 197, 83, 64, 1175, 84, 1174, 815, 64, 180,
1461 180, 180, 190, 190, 190, 197, 965, 64, 75, 75,
1462 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1463 75, 866, 75, 75, 75, 75, 75, 85, 85, 85,
1464 815, 86, 86, 86, 87, 87, 87, 88, 88, 88,
1465 191, 85, 846, 75, 75, 86, 1058, 191, 87, 845,
1466 1159, 88, 1058, 866, 191, 194, 194, 194, 75, 76,
1467 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
1469 76, 76, 845, 76, 76, 76, 76, 76, 89, 89,
1470 89, 846, 90, 90, 90, 91, 91, 91, 92, 92,
1471 92, 192, 89, 178, 76, 76, 90, 1158, 869, 91,
1472 843, 1213, 92, 816, 904, 192, 905, 178, 1213, 76,
1473 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
1474 81, 81, 81, 151, 81, 81, 81, 81, 81, 95,
1475 95, 95, 869, 96, 96, 96, 816, 151, 904, 178,
1476 211, 192, 843, 95, 905, 81, 81, 96, 203, 203,
1477 203, 97, 97, 81, 211, 81, 97, 81, 118, 151,
1478 208, 208, 208, 870, 97, 81, 82, 82, 82, 82,
1480 82, 82, 82, 82, 82, 82, 82, 82, 82, 1145,
1481 82, 82, 82, 82, 82, 97, 98, 98, 967, 870,
1482 118, 98, 205, 215, 215, 215, 118, 1022, 217, 98,
1483 118, 82, 82, 204, 222, 118, 205, 1022, 967, 82,
1484 204, 82, 217, 82, 219, 219, 219, 204, 222, 871,
1485 98, 82, 93, 93, 93, 93, 93, 93, 93, 93,
1486 93, 93, 93, 93, 93, 938, 93, 93, 93, 93,
1487 93, 206, 205, 937, 871, 216, 217, 232, 206, 229,
1488 229, 229, 216, 204, 232, 206, 1077, 93, 93, 216,
1489 230, 232, 237, 755, 136, 137, 1077, 230, 234, 234,
1491 234, 136, 938, 937, 230, 1144, 237, 755, 136, 137,
1492 93, 94, 94, 94, 94, 94, 94, 94, 94, 94,
1493 94, 94, 94, 94, 230, 94, 94, 94, 94, 94,
1494 136, 137, 241, 241, 241, 872, 136, 137, 231, 968,
1495 136, 137, 136, 137, 136, 137, 94, 94, 149, 242,
1496 939, 970, 231, 958, 900, 149, 242, 245, 245, 245,
1497 872, 958, 149, 242, 337, 337, 337, 902, 970, 94,
1498 936, 968, 231, 338, 338, 338, 345, 345, 345, 900,
1499 337, 346, 346, 346, 149, 353, 353, 353, 939, 338,
1500 149, 902, 345, 934, 149, 936, 149, 346, 149, 995,
1502 941, 353, 354, 354, 354, 357, 357, 357, 358, 358,
1503 358, 364, 364, 364, 959, 365, 365, 365, 354, 995,
1504 338, 357, 959, 1079, 358, 941, 934, 364, 971, 1079,
1505 346, 365, 367, 367, 367, 369, 369, 369, 370, 370,
1506 370, 371, 371, 371, 374, 374, 374, 367, 964, 1028,
1507 369, 974, 974, 354, 370, 1024, 365, 371, 358, 971,
1508 374, 375, 375, 375, 380, 380, 380, 381, 381, 381,
1509 384, 384, 384, 385, 385, 385, 1092, 375, 994, 1095,
1510 380, 1028, 1092, 381, 1024, 1095, 384, 964, 998, 385,
1511 1025, 371, 402, 402, 402, 997, 403, 403, 403, 405,
1513 405, 405, 406, 406, 406, 412, 412, 412, 402, 994,
1514 997, 375, 403, 998, 1025, 405, 411, 411, 411, 1027,
1515 381, 412, 413, 413, 413, 999, 385, 415, 415, 415,
1516 1127, 411, 419, 419, 419, 1027, 405, 1200, 413, 422,
1517 422, 422, 999, 415, 423, 423, 423, 419, 425, 425,
1518 425, 1075, 427, 427, 427, 422, 428, 428, 428, 1023,
1519 423, 429, 429, 429, 425, 1090, 415, 427, 431, 431,
1520 431, 1200, 428, 434, 434, 434, 1023, 429, 437, 437,
1521 437, 438, 438, 438, 431, 440, 440, 440, 434, 1075,
1522 442, 442, 442, 1060, 437, 1026, 1029, 438, 481, 481,
1524 481, 440, 1054, 1090, 425, 442, 443, 443, 443, 1060,
1525 443, 1029, 1026, 443, 445, 445, 445, 1054, 446, 446,
1526 446, 1133, 446, 1056, 431, 446, 447, 447, 447, 445,
1527 448, 448, 448, 450, 450, 450, 452, 452, 452, 1074,
1528 440, 1052, 447, 453, 453, 453, 448, 1126, 1056, 450,
1529 1133, 452, 454, 454, 454, 456, 456, 456, 1052, 453,
1530 458, 458, 458, 461, 461, 461, 1059, 1094, 454, 1074,
1531 1073, 456, 462, 462, 462, 458, 464, 464, 464, 461,
1532 467, 467, 467, 468, 468, 468, 1073, 1055, 462, 450,
1533 1094, 1059, 464, 470, 470, 470, 467, 1091, 1132, 468,
1535 473, 473, 473, 480, 480, 480, 486, 486, 486, 470,
1536 1078, 456, 488, 488, 488, 1132, 473, 473, 1076, 480,
1537 1055, 486, 1097, 487, 487, 487, 464, 487, 488, 1151,
1538 487, 492, 492, 492, 1076, 1091, 470, 493, 493, 493,
1539 1089, 493, 1057, 1078, 493, 1071, 492, 494, 494, 494,
1540 495, 495, 495, 496, 496, 496, 1089, 1057, 480, 488,
1541 1071, 1097, 494, 1098, 1151, 495, 498, 498, 498, 496,
1542 499, 499, 499, 1098, 499, 1113, 1195, 499, 500, 500,
1543 500, 498, 503, 503, 503, 1108, 495, 1124, 504, 504,
1544 504, 1108, 504, 1135, 500, 504, 1109, 503, 506, 506,
1546 506, 507, 507, 507, 509, 509, 509, 1195, 509, 1111,
1547 1114, 509, 1113, 506, 513, 513, 513, 507, 513, 1111,
1548 1114, 513, 516, 516, 516, 518, 518, 518, 519, 519,
1549 519, 1135, 519, 500, 506, 519, 1109, 1165, 516, 1110,
1550 518, 520, 520, 520, 1128, 522, 522, 522, 523, 523,
1551 523, 1129, 523, 1165, 1128, 523, 1136, 520, 1166, 507,
1552 522, 1248, 526, 526, 526, 528, 528, 528, 529, 529,
1553 529, 533, 533, 533, 540, 540, 540, 516, 526, 1110,
1554 528, 544, 544, 544, 529, 1147, 1130, 533, 1129, 1148,
1555 540, 545, 545, 545, 1136, 545, 520, 1166, 545, 1150,
1557 1248, 526, 548, 548, 548, 1153, 552, 552, 552, 1199,
1558 552, 1147, 533, 552, 1150, 1148, 540, 1154, 548, 1199,
1559 555, 555, 555, 1130, 529, 556, 556, 556, 533, 556,
1560 1169, 1156, 556, 1155, 544, 555, 557, 557, 557, 558,
1561 558, 558, 1157, 558, 1163, 1153, 558, 560, 560, 560,
1562 1155, 557, 563, 563, 563, 1171, 563, 1154, 548, 563,
1563 566, 566, 566, 560, 569, 569, 569, 1169, 569, 1156,
1564 1171, 569, 573, 573, 573, 1122, 566, 574, 574, 574,
1565 1157, 574, 1163, 1186, 574, 1183, 1161, 573, 576, 576,
1566 576, 577, 577, 577, 579, 579, 579, 1107, 581, 581,
1568 581, 566, 581, 1162, 576, 581, 584, 584, 584, 1186,
1569 579, 586, 586, 586, 1183, 586, 1178, 1164, 586, 593,
1570 593, 593, 584, 591, 591, 591, 594, 594, 594, 1161,
1571 594, 1179, 1172, 594, 593, 579, 1167, 1168, 576, 591,
1572 595, 595, 595, 602, 602, 602, 1162, 584, 1178, 603,
1573 603, 603, 607, 607, 607, 1164, 595, 1187, 602, 608,
1574 608, 608, 1173, 1179, 591, 603, 609, 609, 609, 613,
1575 613, 613, 1172, 613, 1167, 1168, 613, 616, 616, 616,
1576 1106, 616, 609, 1187, 616, 620, 620, 620, 595, 622,
1577 622, 622, 1176, 624, 624, 624, 1170, 624, 1105, 603,
1579 624, 620, 1173, 1104, 622, 1177, 609, 628, 628, 628,
1580 630, 630, 630, 632, 632, 632, 636, 636, 636, 1180,
1581 638, 638, 638, 628, 638, 622, 630, 638, 1229, 632,
1582 1176, 1182, 636, 1170, 641, 641, 641, 1182, 620, 647,
1583 647, 647, 1188, 1177, 648, 648, 648, 1181, 648, 632,
1584 641, 648, 1229, 1184, 647, 649, 649, 649, 1188, 1180,
1585 628, 650, 650, 650, 652, 652, 652, 653, 653, 653,
1586 636, 649, 654, 654, 654, 641, 661, 661, 661, 663,
1587 663, 663, 664, 664, 664, 1205, 664, 1181, 654, 664,
1588 1276, 1205, 661, 1184, 663, 670, 670, 670, 672, 672,
1590 672, 675, 675, 675, 676, 676, 676, 1276, 649, 1196,
1591 1309, 670, 1326, 654, 672, 1103, 1185, 675, 1326, 676,
1592 679, 679, 679, 681, 681, 681, 1309, 683, 683, 683,
1593 687, 687, 687, 1189, 687, 1220, 679, 687, 1190, 681,
1594 1196, 670, 675, 683, 690, 690, 690, 691, 691, 691,
1595 693, 693, 693, 694, 694, 694, 1185, 703, 703, 703,
1596 690, 705, 705, 705, 706, 706, 706, 1220, 706, 694,
1597 1189, 706, 681, 703, 679, 1190, 705, 716, 716, 716,
1598 719, 719, 719, 720, 720, 720, 1193, 721, 721, 721,
1599 1217, 721, 690, 716, 721, 1102, 719, 705, 720, 722,
1601 722, 722, 724, 724, 724, 725, 725, 725, 726, 726,
1602 726, 1088, 1087, 716, 722, 732, 732, 732, 724, 734,
1603 734, 734, 1194, 1217, 726, 1293, 1193, 719, 743, 743,
1604 743, 732, 744, 744, 744, 734, 1197, 745, 745, 745,
1605 1293, 745, 1198, 743, 745, 1086, 1203, 744, 766, 766,
1606 766, 732, 753, 753, 753, 754, 754, 754, 757, 757,
1607 757, 1201, 1194, 726, 728, 728, 728, 753, 758, 758,
1608 758, 754, 758, 1197, 757, 758, 761, 761, 761, 1198,
1609 728, 762, 762, 762, 1206, 762, 1207, 1204, 762, 1203,
1610 1214, 761, 763, 763, 763, 764, 764, 764, 1201, 757,
1612 1221, 728, 754, 728, 767, 767, 767, 763, 1202, 728,
1613 1206, 764, 1207, 728, 1223, 728, 1214, 728, 1085, 1210,
1614 767, 777, 777, 777, 784, 784, 784, 785, 785, 785,
1615 1204, 785, 1221, 1215, 785, 1224, 1211, 777, 1230, 784,
1616 786, 786, 786, 1240, 786, 1202, 1084, 786, 794, 794,
1617 794, 795, 795, 795, 1083, 795, 1210, 1223, 795, 1215,
1618 1252, 777, 1230, 794, 796, 796, 796, 800, 800, 800,
1619 801, 801, 801, 1211, 801, 1240, 1082, 801, 1224, 1070,
1620 796, 1069, 1222, 800, 804, 804, 804, 805, 805, 805,
1621 1231, 805, 1222, 1241, 805, 806, 806, 806, 1252, 804,
1623 818, 818, 818, 820, 820, 820, 823, 823, 823, 796,
1624 823, 806, 1218, 823, 1219, 800, 818, 1237, 820, 827,
1625 827, 827, 829, 829, 829, 1241, 829, 1068, 1067, 829,
1626 832, 832, 832, 1231, 827, 836, 836, 836, 1218, 820,
1627 1219, 818, 1238, 837, 837, 837, 832, 837, 1237, 1227,
1628 837, 836, 841, 841, 841, 848, 848, 848, 850, 850,
1629 850, 851, 851, 851, 1249, 852, 852, 852, 841, 1228,
1630 848, 848, 1066, 1238, 850, 1227, 836, 1288, 1232, 832,
1631 852, 853, 853, 853, 1235, 853, 1288, 1065, 853, 858,
1632 858, 858, 859, 859, 859, 1228, 859, 1260, 1270, 859,
1634 861, 861, 861, 1249, 858, 862, 862, 862, 863, 863,
1635 863, 1236, 850, 865, 865, 865, 861, 867, 867, 867,
1636 862, 1232, 1270, 863, 873, 873, 873, 1235, 1260, 865,
1637 878, 878, 878, 867, 874, 874, 874, 1250, 1246, 873,
1638 873, 862, 1274, 1064, 863, 1062, 861, 1251, 867, 874,
1639 874, 875, 875, 875, 1236, 875, 1257, 1247, 875, 877,
1640 877, 877, 865, 1257, 879, 879, 879, 875, 879, 1250,
1641 1051, 879, 886, 886, 886, 877, 887, 887, 887, 1251,
1642 887, 1246, 1274, 887, 890, 890, 890, 886, 891, 891,
1643 891, 892, 892, 892, 895, 895, 895, 1050, 877, 890,
1645 1247, 893, 893, 893, 891, 893, 892, 1255, 893, 895,
1646 896, 896, 896, 1253, 896, 1281, 1049, 896, 898, 898,
1647 898, 899, 899, 899, 906, 906, 906, 907, 907, 907,
1648 1271, 908, 908, 908, 1256, 908, 1261, 899, 908, 1255,
1649 906, 1048, 907, 907, 918, 918, 918, 908, 909, 909,
1650 909, 1253, 909, 1281, 1271, 909, 913, 913, 913, 918,
1651 906, 919, 919, 919, 909, 919, 1256, 1261, 919, 932,
1652 932, 932, 913, 920, 920, 920, 899, 906, 910, 910,
1653 910, 910, 910, 910, 910, 910, 910, 1047, 920, 910,
1654 1329, 1330, 910, 910, 910, 910, 910, 921, 921, 921,
1656 1330, 921, 1329, 1268, 921, 1080, 1080, 1080, 1046, 913,
1657 981, 981, 981, 910, 910, 911, 911, 911, 911, 911,
1658 911, 911, 911, 911, 1269, 981, 911, 1258, 1272, 911,
1659 911, 911, 911, 911, 1258, 1268, 922, 922, 922, 924,
1660 924, 924, 1273, 924, 1275, 1277, 924, 933, 933, 933,
1661 911, 911, 922, 928, 928, 928, 1269, 928, 1279, 1272,
1662 928, 1278, 1285, 933, 940, 940, 940, 942, 942, 942,
1663 943, 943, 943, 1273, 943, 1286, 1277, 943, 1283, 1296,
1664 940, 1280, 1279, 942, 1275, 1283, 943, 954, 954, 954,
1665 1298, 954, 1278, 1285, 954, 940, 946, 946, 946, 946,
1667 946, 946, 946, 946, 946, 1280, 1286, 946, 1282, 1347,
1668 946, 946, 946, 946, 946, 957, 957, 957, 1296, 957,
1669 1042, 1347, 957, 1099, 1099, 1099, 949, 949, 949, 1291,
1670 1298, 946, 946, 947, 947, 947, 947, 947, 947, 947,
1671 947, 947, 949, 1339, 947, 1284, 1282, 947, 947, 947,
1672 947, 947, 1284, 1300, 962, 962, 962, 966, 966, 966,
1673 969, 969, 969, 972, 972, 972, 1291, 1289, 947, 947,
1674 962, 949, 1307, 966, 1289, 1339, 969, 1300, 1031, 972,
1675 978, 978, 978, 980, 980, 980, 982, 982, 982, 983,
1676 983, 983, 1292, 1290, 972, 1294, 978, 978, 1307, 980,
1678 1290, 982, 1294, 1299, 983, 984, 984, 984, 991, 991,
1679 991, 993, 993, 993, 996, 996, 996, 1003, 1003, 1003,
1680 984, 1005, 1005, 1005, 991, 983, 1297, 993, 1295, 1292,
1681 996, 1341, 1351, 1003, 980, 1295, 1030, 1005, 1006, 1006,
1682 1006, 1341, 993, 1299, 1351, 996, 1020, 1007, 1007, 1007,
1683 1301, 1007, 1314, 1006, 1007, 1008, 1008, 1008, 1003, 1009,
1684 1009, 1009, 1305, 1009, 1306, 1297, 1009, 1010, 1010, 1010,
1685 1008, 1011, 1011, 1011, 1301, 1011, 1005, 1308, 1011, 1013,
1686 1013, 1013, 1010, 1014, 1014, 1014, 1305, 1014, 1306, 1314,
1687 1014, 1021, 1021, 1021, 1013, 1032, 1032, 1032, 1033, 1033,
1689 1033, 1315, 1033, 1308, 1324, 1033, 1302, 1021, 1036, 1036,
1690 1036, 1032, 1036, 1302, 1303, 1036, 1039, 1039, 1039, 1019,
1691 1039, 1303, 1021, 1039, 1043, 1043, 1043, 1325, 1043, 1018,
1692 1348, 1043, 1053, 1053, 1053, 1063, 1063, 1063, 1315, 1348,
1693 1032, 1352, 1072, 1072, 1072, 1310, 1072, 1324, 1053, 1072,
1694 1352, 1063, 1081, 1081, 1081, 1093, 1093, 1093, 1072, 1096,
1695 1096, 1096, 1100, 1100, 1100, 1101, 1101, 1101, 1081, 1310,
1696 1325, 1093, 1112, 1112, 1112, 1096, 1311, 1017, 1100, 1016,
1697 1101, 1312, 1115, 1115, 1115, 1063, 1115, 1389, 1112, 1115,
1698 1116, 1116, 1116, 1117, 1117, 1117, 1331, 1313, 1115, 1316,
1700 1311, 1081, 1015, 1112, 1012, 1312, 1116, 1004, 1317, 1117,
1701 1118, 1118, 1118, 1120, 1120, 1120, 1121, 1121, 1121, 1322,
1702 1121, 1313, 1331, 1121, 1332, 1318, 1118, 1389, 1120, 1131,
1703 1131, 1131, 1134, 1134, 1134, 1137, 1137, 1137, 1316, 1138,
1704 1138, 1138, 1340, 1138, 1319, 1131, 1138, 1317, 1134, 1318,
1705 1332, 1137, 1139, 1139, 1139, 1138, 1139, 1323, 1322, 1139,
1706 1146, 1146, 1146, 1149, 1149, 1149, 1137, 1149, 1319, 1327,
1707 1149, 1152, 1152, 1152, 1340, 1152, 1146, 1333, 1152, 1149,
1708 1002, 1160, 1160, 1160, 1345, 1160, 1328, 1152, 1160, 1216,
1709 1216, 1216, 1225, 1225, 1225, 1001, 1323, 1160, 1226, 1226,
1711 1226, 1333, 1233, 1233, 1233, 1216, 1233, 1225, 1327, 1233,
1712 1234, 1234, 1234, 1226, 1239, 1239, 1239, 1335, 1233, 1242,
1713 1242, 1242, 1244, 1244, 1244, 1328, 1234, 1345, 1000, 1334,
1714 1239, 1243, 1243, 1243, 1242, 1243, 1357, 1244, 1243, 1245,
1715 1245, 1245, 990, 1245, 1336, 1357, 1245, 1254, 1254, 1254,
1716 1259, 1259, 1259, 1334, 1259, 1353, 1335, 1259, 1262, 1262,
1717 1262, 1337, 1262, 1254, 1338, 1262, 1259, 1265, 1265, 1265,
1718 1342, 1265, 1343, 1346, 1265, 1304, 1304, 1304, 1254, 1320,
1719 1320, 1320, 1349, 1336, 1350, 1337, 1353, 1354, 1338, 1360,
1720 1361, 1304, 1356, 1363, 1342, 1320, 1343, 1344, 1344, 1344,
1722 1366, 1355, 1355, 1355, 1356, 1363, 1349, 1366, 1350, 1358,
1723 1358, 1358, 1367, 1344, 1364, 1370, 1346, 1355, 1354, 1367,
1724 1377, 1360, 1361, 1364, 1371, 1358, 1362, 1362, 1362, 1365,
1725 1365, 1365, 1368, 1368, 1368, 1379, 1368, 1390, 1378, 1368,
1726 1380, 989, 1362, 1387, 1377, 1365, 1370, 1388, 1368, 1369,
1727 1369, 1369, 1372, 1372, 1372, 1371, 1374, 1374, 1374, 1375,
1728 1375, 1375, 1378, 1391, 1392, 1369, 1393, 1383, 1372, 1381,
1729 1381, 1381, 1374, 1379, 1383, 1375, 1384, 1390, 1380, 1385,
1730 1385, 1385, 1387, 1384, 1394, 1381, 1388, 1391, 1392, 1395,
1731 1393, 1396, 1397, 1398, 1399, 1385, 1400, 1401, 1402, 1406,
1733 1407, 1403, 1409, 1404, 1408, 1400, 1399, 1412, 1394, 1413,
1734 1423, 1409, 1424, 1405, 1405, 1405, 1408, 1410, 1410, 1410,
1735 1414, 1414, 1414, 1401, 1402, 1403, 1395, 1404, 1396, 1405,
1736 1415, 1397, 1398, 1410, 1416, 1421, 1414, 988, 1422, 1412,
1737 1419, 1413, 1406, 1407, 1417, 1417, 1417, 1419, 1420, 1423,
1738 1425, 1424, 1426, 987, 1427, 1420, 986, 985, 1428, 1421,
1739 1417, 1415, 1422, 979, 977, 1416, 1427, 1428, 1429, 1429,
1740 1429, 1430, 1430, 1430, 1425, 975, 1426, 961, 960, 953,
1741 952, 951, 950, 948, 1429, 931, 927, 1430, 1433, 1433,
1742 1433, 1433, 1433, 1433, 1433, 1434, 1434, 1434, 1434, 1434,
1744 1434, 1434, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1436,
1745 1436, 1436, 1436, 1436, 1436, 1436, 1437, 1437, 1437, 1437,
1746 1437, 1437, 1437, 1438, 1438, 1438, 1438, 1438, 1438, 1438,
1747 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1440, 1440, 1440,
1748 1440, 1440, 1440, 1440, 1441, 1441, 1441, 1441, 1441, 1441,
1749 1441, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1443, 1443,
1750 1443, 1443, 1443, 1443, 1443, 1444, 1444, 1444, 1444, 1444,
1751 1444, 1444, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1446,
1752 1446, 1446, 1446, 1446, 1446, 1446, 1447, 1447, 1447, 1447,
1753 1447, 1447, 1447, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
1755 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1450, 1450, 1450,
1756 1450, 1450, 1450, 1450, 1451, 1451, 1451, 1451, 1451, 1451,
1757 1451, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1453, 1453,
1758 1453, 1453, 1453, 1453, 1453, 1454, 1454, 1454, 1454, 1454,
1759 1454, 1454, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1456,
1760 1456, 1456, 1456, 1456, 1456, 1456, 1457, 1457, 1457, 917,
1761 1457, 1458, 1458, 1458, 916, 1458, 1459, 1459, 1459, 915,
1762 1459, 1460, 1460, 1460, 914, 1460, 1461, 1461, 1461, 912,
1763 1461, 1462, 1462, 1462, 897, 1462, 1463, 1463, 1463, 894,
1764 1463, 1464, 1464, 1464, 885, 1464, 1465, 1465, 1465, 884,
1766 1465, 1466, 1466, 1466, 1466, 1466, 883, 1466, 1467, 882,
1767 1467, 1468, 876, 1468, 1469, 864, 1469, 1470, 860, 1470,
1768 1471, 857, 1471, 1472, 856, 1472, 1473, 854, 1473, 1474,
1769 849, 1474, 1475, 835, 1475, 1476, 1476, 1476, 1476, 1476,
1770 1476, 1476, 1477, 834, 833, 1477, 1478, 1478, 1478, 1478,
1771 1478, 1478, 1479, 1479, 1479, 1479, 1479, 1479, 1480, 1480,
1772 1480, 1480, 1480, 1480, 1481, 1481, 1481, 1481, 1481, 1481,
1773 1482, 1482, 1482, 1482, 1482, 1482, 1483, 1483, 1483, 1483,
1774 1483, 1483, 1484, 1484, 1484, 1484, 1484, 1484, 1485, 1485,
1775 1485, 1485, 1485, 1485, 1486, 1486, 1486, 1486, 1486, 1486,
1777 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1488, 1488, 1488,
1778 1488, 1488, 1488, 1488, 1489, 1489, 1489, 1489, 1489, 1489,
1779 1489, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1491, 1491,
1780 1491, 1491, 1491, 1491, 1491, 1492, 1492, 1492, 1492, 1492,
1781 1492, 1492, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 828,
1782 826, 822, 821, 819, 817, 799, 798, 797, 791, 790,
1783 789, 781, 780, 779, 778, 776, 756, 751, 749, 748,
1784 747, 746, 741, 739, 738, 737, 736, 733, 731, 723,
1785 718, 717, 715, 714, 713, 712, 711, 710, 709, 702,
1786 701, 700, 699, 698, 697, 696, 695, 692, 686, 682,
1788 680, 678, 677, 674, 671, 669, 666, 665, 662, 660,
1789 657, 656, 655, 651, 646, 642, 637, 635, 634, 633,
1790 631, 629, 627, 626, 625, 623, 621, 619, 618, 617,
1791 612, 611, 610, 606, 605, 604, 601, 596, 592, 590,
1792 589, 585, 580, 578, 575, 572, 568, 567, 562, 559,
1793 551, 550, 549, 543, 542, 541, 539, 538, 535, 532,
1794 530, 527, 525, 524, 521, 517, 512, 508, 505, 502,
1795 501, 497, 491, 490, 489, 485, 484, 483, 482, 479,
1796 478, 477, 476, 471, 466, 465, 460, 459, 457, 451,
1797 444, 441, 436, 435, 433, 432, 426, 421, 420, 418,
1799 417, 416, 410, 409, 408, 407, 401, 400, 399, 396,
1800 395, 394, 392, 388, 386, 383, 382, 379, 378, 377,
1801 376, 373, 372, 368, 366, 363, 362, 361, 360, 359,
1802 356, 355, 352, 351, 350, 349, 348, 347, 344, 343,
1803 342, 341, 340, 339, 336, 335, 333, 332, 331, 330,
1804 329, 325, 323, 322, 321, 320, 319, 318, 315, 314,
1805 313, 312, 311, 310, 307, 306, 303, 302, 301, 300,
1806 299, 296, 295, 294, 293, 292, 291, 290, 287, 286,
1807 283, 282, 281, 280, 279, 278, 277, 276, 273, 272,
1808 269, 268, 267, 266, 265, 264, 263, 260, 259, 258,
1810 257, 256, 250, 249, 247, 244, 243, 239, 235, 227,
1811 226, 225, 224, 220, 213, 209, 201, 200, 199, 195,
1812 187, 186, 185, 181, 174, 170, 163, 162, 161, 160,
1813 159, 158, 154, 146, 142, 133, 129, 125, 124, 123,
1814 117, 116, 114, 111, 99, 1432, 1432, 1432, 1432, 1432,
1815 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1816 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1817 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1818 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1819 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1821 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432
1824 /* Table of booleans, true if rule could match eol. */
1825 static yyconst flex_int32_t yy_rule_can_match_eol[190] =
1827 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1828 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0,
1829 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1830 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0,
1831 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1832 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
1833 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1,
1834 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
1835 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
1836 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1838 static yy_state_type yy_last_accepting_state;
1839 static char *yy_last_accepting_cpos;
1841 extern int surf_parse__flex_debug;
1842 int surf_parse__flex_debug = 0;
1844 /* The intent behind this definition is that it'll catch
1845 * any uses of REJECT which flex missed.
1847 #define REJECT reject_used_but_not_detected
1848 #define yymore() yymore_used_but_not_detected
1849 #define YY_MORE_ADJ 0
1850 #define YY_RESTORE_YY_MORE_OFFSET
1851 char *surf_parse_text;
1852 /* Validating XML processor for surf/surfxml.dtd.
1853 * Generated 2007/05/16 11:14:15.
1855 * This program was generated with the FleXML XML processor generator.
1856 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
1857 * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1858 * (Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp).
1860 * There are two, intertwined parts to this program, part A and part B.
1865 * Some parts, here collectively called "Part A", are found in the
1866 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
1867 * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1869 * You can redistribute, use, perform, display and/or modify "Part A"
1870 * provided the following two conditions hold:
1872 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1873 * FleXML; without even the implied warranty of MERCHANTABILITY or
1874 * FITNESS FOR A PARTICULAR PURPOSE.
1876 * 2. The program distribution conditions do not in any way affect the
1877 * distribution conditions of the FleXML system used to generate this
1878 * file or any version of FleXML derived from that system.
1880 * Notice that these are explicit rights granted to you for files
1881 * generated by the FleXML system. For your rights in connection with
1882 * the FleXML system itself please consult the GNU General Public License.
1887 * The other parts, here collectively called "Part B", and which came
1888 * from the DTD used by FleXML to generate this program, can be
1889 * distributed (or not, as the case may be) under the terms of whoever
1890 * wrote them, provided these terms respect and obey the two conditions
1891 * above under the heading "Part A".
1893 * The author of and contributors to FleXML specifically disclaim
1894 * any copyright interest in "Part B", unless "Part B" was written
1895 * by the author of or contributors to FleXML.
1899 /* Version strings. */
1900 const char rcs_surfxml_flexml_skeleton[] =
1901 "$" "Id: skel,v 1.38 2006/09/12 18:05:45 wdowling Exp $";
1902 const char rcs_surfxml_flexml[] =
1903 "$" "Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp $";
1913 #ifndef FLEXML_INDEXSTACKSIZE
1914 #define FLEXML_INDEXSTACKSIZE 1000
1917 /* Generated definitions. */
1918 #define FLEXML_yylineno
1919 #ifndef FLEXML_BUFFERSTACKSIZE
1920 #define FLEXML_BUFFERSTACKSIZE 1000000
1922 #define FLEXML_NEED_BUFFERLIT
1924 /* XML processor api. */
1925 /* FleXML-provided data. */
1926 int surfxml_pcdata_ix;
1927 extern char *surfxml_bufferstack;
1928 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
1929 AT_surfxml_network_link_bandwidth AX_surfxml_network_link_bandwidth;
1930 #define A_surfxml_network_link_bandwidth (surfxml_bufferstack + AX_surfxml_network_link_bandwidth)
1931 AT_surfxml_router_name AX_surfxml_router_name;
1932 #define A_surfxml_router_name (surfxml_bufferstack + AX_surfxml_router_name)
1933 AT_surfxml_process_host AX_surfxml_process_host;
1934 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
1935 AT_surfxml_network_link_latency_file AX_surfxml_network_link_latency_file;
1936 #define A_surfxml_network_link_latency_file (surfxml_bufferstack + AX_surfxml_network_link_latency_file)
1937 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
1938 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
1939 AT_surfxml_cpu_interference_send_recv AX_surfxml_cpu_interference_send_recv;
1940 #define A_surfxml_cpu_interference_send_recv (surfxml_bufferstack + AX_surfxml_cpu_interference_send_recv)
1941 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
1942 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
1943 AT_surfxml_platform_description_version AX_surfxml_platform_description_version;
1944 #define A_surfxml_platform_description_version (surfxml_bufferstack + AX_surfxml_platform_description_version)
1945 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
1946 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
1947 AT_surfxml_route_element_name AX_surfxml_route_element_name;
1948 #define A_surfxml_route_element_name (surfxml_bufferstack + AX_surfxml_route_element_name)
1949 AT_surfxml_process_start_time AX_surfxml_process_start_time;
1950 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
1951 AT_surfxml_process_function AX_surfxml_process_function;
1952 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
1953 AT_surfxml_cpu_state AX_surfxml_cpu_state;
1954 #define A_surfxml_cpu_state AX_surfxml_cpu_state
1955 AT_surfxml_cpu_interference_send AX_surfxml_cpu_interference_send;
1956 #define A_surfxml_cpu_interference_send (surfxml_bufferstack + AX_surfxml_cpu_interference_send)
1957 AT_surfxml_network_link_bandwidth_file AX_surfxml_network_link_bandwidth_file;
1958 #define A_surfxml_network_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_network_link_bandwidth_file)
1959 AT_surfxml_cpu_name AX_surfxml_cpu_name;
1960 #define A_surfxml_cpu_name (surfxml_bufferstack + AX_surfxml_cpu_name)
1961 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
1962 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
1963 AT_surfxml_network_link_state AX_surfxml_network_link_state;
1964 #define A_surfxml_network_link_state AX_surfxml_network_link_state
1965 AT_surfxml_cpu_availability_file AX_surfxml_cpu_availability_file;
1966 #define A_surfxml_cpu_availability_file (surfxml_bufferstack + AX_surfxml_cpu_availability_file)
1967 AT_surfxml_argument_value AX_surfxml_argument_value;
1968 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
1969 AT_surfxml_route_src AX_surfxml_route_src;
1970 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
1971 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
1972 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
1973 AT_surfxml_cpu_max_outgoing_rate AX_surfxml_cpu_max_outgoing_rate;
1974 #define A_surfxml_cpu_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_cpu_max_outgoing_rate)
1975 AT_surfxml_cpu_availability AX_surfxml_cpu_availability;
1976 #define A_surfxml_cpu_availability (surfxml_bufferstack + AX_surfxml_cpu_availability)
1977 AT_surfxml_cpu_interference_recv AX_surfxml_cpu_interference_recv;
1978 #define A_surfxml_cpu_interference_recv (surfxml_bufferstack + AX_surfxml_cpu_interference_recv)
1979 AT_surfxml_network_link_name AX_surfxml_network_link_name;
1980 #define A_surfxml_network_link_name (surfxml_bufferstack + AX_surfxml_network_link_name)
1981 AT_surfxml_cpu_power AX_surfxml_cpu_power;
1982 #define A_surfxml_cpu_power (surfxml_bufferstack + AX_surfxml_cpu_power)
1983 AT_surfxml_include_file AX_surfxml_include_file;
1984 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
1985 AT_surfxml_network_link_sharing_policy AX_surfxml_network_link_sharing_policy;
1986 #define A_surfxml_network_link_sharing_policy AX_surfxml_network_link_sharing_policy
1987 AT_surfxml_route_dst AX_surfxml_route_dst;
1988 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
1989 AT_surfxml_network_link_latency AX_surfxml_network_link_latency;
1990 #define A_surfxml_network_link_latency (surfxml_bufferstack + AX_surfxml_network_link_latency)
1991 AT_surfxml_cpu_state_file AX_surfxml_cpu_state_file;
1992 #define A_surfxml_cpu_state_file (surfxml_bufferstack + AX_surfxml_cpu_state_file)
1993 AT_surfxml_network_link_state_file AX_surfxml_network_link_state_file;
1994 #define A_surfxml_network_link_state_file (surfxml_bufferstack + AX_surfxml_network_link_state_file)
1998 # define ENTER(state) debug_enter(state,#state)
1999 # define LEAVE debug_leave()
2000 # define SET(state) debug_set(state,#state)
2001 static void debug_enter(int, const char*);
2002 static void debug_leave(void);
2003 static void debug_set(int, const char*);
2005 # define ENTER(state) (yy_push_state(state))
2006 # define LEAVE (yy_pop_state())
2007 # define SET(state) BEGIN(state)
2010 /* Generic actions. */
2011 #define SKIP /*skip*/
2012 #define SUCCEED CLEANUP; return 0
2014 #define FAIL return fail
2015 static int fail(const char*, ...);
2017 enum {flexml_max_err_msg_size = 512};
2018 static char flexml_err_msg[flexml_max_err_msg_size];
2019 const char * surfxml_parse_err_msg()
2021 return flexml_err_msg;
2023 static void reset_surfxml_parse_err_msg()
2025 flexml_err_msg[0] = '\0';
2029 static void cleanup(void);
2030 #define CLEANUP cleanup()
2032 /* Text buffer stack handling. */
2033 char *surfxml_bufferstack = NULL;
2034 static int blimit = FLEXML_BUFFERSTACKSIZE;
2035 static int bnext = 1;
2037 static int *indexstack = NULL;
2038 static int ilimit = FLEXML_INDEXSTACKSIZE;
2039 static int inext = 1;
2041 #define BUFFERSET(P) (P = bnext)
2042 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
2043 #define BUFFERDONE (BUFFERPUTC('\0'))
2045 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
2047 /* after this is called, there are at least 2 slots left in the stack */
2048 static int ck_blimit()
2050 if (bnext >= blimit) {
2051 blimit += FLEXML_BUFFERSTACKSIZE + 2;
2053 char *temp = (char *) realloc(surfxml_bufferstack, blimit);
2055 surfxml_bufferstack = temp;
2061 /* after this is called, there are at least 2 slots left in the stack */
2062 static int ck_ilimit()
2064 if (inext >= ilimit) {
2065 ilimit += FLEXML_INDEXSTACKSIZE + 2;
2067 int *temp = (int *) realloc(indexstack, ilimit);
2075 #ifdef FLEXML_NEED_BUFFERLIT
2076 static void surfxml_bufferliteral(char c, int* pp, const char* text)
2078 const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
2079 assert(s <= e); BUFFERSET(*pp);
2081 if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
2082 else BUFFERPUTC(*s);
2088 static void pushbuffer(int p)
2091 indexstack[inext++] = p;
2092 indexstack[inext++] = bnext;
2095 static int popbuffer(void)
2098 bnext = indexstack[--inext];
2099 return indexstack[--inext];
2102 /* General internal entities are `unput' back onto the input stream... */
2103 #define ENTITYTEXT(T) \
2104 { char *s = (T), *e = s+strlen(s);\
2105 while (--e >= s) { unput(*e); }}
2107 /* Flex standard options. */
2108 #define YY_NO_INPUT 1
2109 /* Flex user-requested options. */
2110 /* XML character classes (currently restricted to ASCII). */
2111 /* "Common syntactic structures." */
2112 /* "Names and Tokens." */
2113 /* Miscellaneous. */
2114 /* Parser states (flex `exclusive start conditions'):
2116 * PROLOG the XML prolog of the document before <?xml...>
2117 * DOCTYPE the XML prolog of the document after <?xml...>
2118 * EPILOG after the root element
2119 * INCOMMENT inside an XML comment <!--....-->
2120 * INPI inside an XML PI <?...?>
2121 * VALUE1 inside a '...'-delimited literal
2122 * VALUE2 inside a "..."-delimited literal
2123 * CDATA inside a <![CDATA[...] ]> section.
2124 * ROOT_<tag> expect root element <tag>
2125 * AL_<tag> inside the attribute list for <tag>
2126 * IN_<tag> inside a <tag> with element contents (ready for end tag)
2127 * IMPOSSIBLE dummy to permit disabling rules; must be last
2131 const char* *surfxml_statenames=NULL;
2142 #define ROOT_surfxml_platform_description 9
2143 #define AL_surfxml_platform_description 10
2144 #define S_surfxml_platform_description 11
2145 #define S_surfxml_platform_description_1 12
2146 #define S_surfxml_platform_description_2 13
2147 #define E_surfxml_platform_description 14
2148 #define ROOT_surfxml_include 15
2149 #define AL_surfxml_include 16
2150 #define S_surfxml_include 17
2151 #define S_surfxml_include_1 18
2152 #define S_surfxml_include_2 19
2153 #define E_surfxml_include 20
2154 #define ROOT_surfxml_cpu 21
2155 #define AL_surfxml_cpu 22
2156 #define E_surfxml_cpu 23
2157 #define ROOT_surfxml_router 24
2158 #define AL_surfxml_router 25
2159 #define E_surfxml_router 26
2160 #define ROOT_surfxml_network_link 27
2161 #define AL_surfxml_network_link 28
2162 #define E_surfxml_network_link 29
2163 #define ROOT_surfxml_route 30
2164 #define AL_surfxml_route 31
2165 #define S_surfxml_route 32
2166 #define S_surfxml_route_1 33
2167 #define S_surfxml_route_2 34
2168 #define E_surfxml_route 35
2169 #define ROOT_surfxml_route_element 36
2170 #define AL_surfxml_route_element 37
2171 #define E_surfxml_route_element 38
2172 #define ROOT_surfxml_process 39
2173 #define AL_surfxml_process 40
2174 #define S_surfxml_process 41
2175 #define S_surfxml_process_1 42
2176 #define S_surfxml_process_2 43
2177 #define E_surfxml_process 44
2178 #define ROOT_surfxml_argument 45
2179 #define AL_surfxml_argument 46
2180 #define E_surfxml_argument 47
2181 #define IMPOSSIBLE 48
2183 #ifndef YY_NO_UNISTD_H
2184 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2185 * down here because we want the user's section 1 to have been scanned first.
2186 * The user has a chance to override it with an option.
2191 #ifndef YY_EXTRA_TYPE
2192 #define YY_EXTRA_TYPE void *
2195 static int yy_init_globals (void );
2197 /* Macros after this point can all be overridden by user definitions in
2201 #ifndef YY_SKIP_YYWRAP
2203 extern "C" int surf_parse_wrap (void );
2205 extern int surf_parse_wrap (void );
2210 static void yy_flex_strncpy (char *,yyconst char *,int );
2213 #ifdef YY_NEED_STRLEN
2214 static int yy_flex_strlen (yyconst char * );
2220 static int yyinput (void );
2222 static int input (void );
2227 static int yy_start_stack_ptr = 0;
2228 static int yy_start_stack_depth = 0;
2229 static int *yy_start_stack = NULL;
2231 static void yy_push_state (int new_state );
2233 static void yy_pop_state (void );
2235 /* Amount of stuff to slurp up with each read. */
2236 #ifndef YY_READ_BUF_SIZE
2237 #define YY_READ_BUF_SIZE 8192
2240 /* Copy whatever the last rule matched to the standard output. */
2242 /* This used to be an fputs(), but since the string might contain NUL's,
2243 * we now use fwrite().
2245 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2248 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2249 * is returned in "result".
2252 #define YY_INPUT(buf,result,max_size) \
2253 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2257 for ( n = 0; n < max_size && \
2258 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2259 buf[n] = (char) c; \
2261 buf[n++] = (char) c; \
2262 if ( c == EOF && ferror( surf_parse_in ) ) \
2263 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2269 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2271 if( errno != EINTR) \
2273 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2277 clearerr(surf_parse_in); \
2284 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2285 * we don't want an extra ';' after the "return" because that will cause
2286 * some compilers to complain about unreachable statements.
2289 #define yyterminate() return YY_NULL
2292 /* Number of entries by which start-condition stack grows. */
2293 #ifndef YY_START_STACK_INCR
2294 #define YY_START_STACK_INCR 25
2297 /* Report a fatal error. */
2298 #ifndef YY_FATAL_ERROR
2299 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2302 /* end tables serialization structures and prototypes */
2304 /* Default declaration of generated scanner - a define so the user can
2305 * easily add parameters.
2308 #define YY_DECL_IS_OURS 1
2310 extern int surf_parse_lex (void);
2312 #define YY_DECL int surf_parse_lex (void)
2313 #endif /* !YY_DECL */
2315 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2318 #ifndef YY_USER_ACTION
2319 #define YY_USER_ACTION
2322 /* Code executed at the end of each rule. */
2324 #define YY_BREAK break;
2327 #define YY_RULE_SETUP \
2330 /** The main scanner function which does all the work.
2334 register yy_state_type yy_current_state;
2335 register char *yy_cp, *yy_bp;
2336 register int yy_act;
2338 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2340 reset_surfxml_parse_err_msg();
2341 surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
2342 assert(surfxml_bufferstack);
2346 for (i = 0; i < blimit; i++) {
2347 surfxml_bufferstack[i] = '\377';
2351 surfxml_bufferstack[0] = '\0';
2352 indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
2358 surfxml_bufferliteral('\0', &bnext, "0.0");
2359 surfxml_bufferliteral('\0', &bnext, "1.0");
2360 surfxml_bufferliteral('\0', &bnext, "1.0");
2361 surfxml_bufferliteral('\0', &bnext, "1.0");
2362 surfxml_bufferliteral('\0', &bnext, "1.0");
2363 surfxml_bufferliteral('\0', &bnext, "-1.0");
2364 surfxml_bufferliteral('\0', &bnext, "0.0");
2365 surfxml_bufferliteral('\0', &bnext, "0.0");
2366 surfxml_bufferliteral('\0', &bnext, "0.0");
2367 surfxml_bufferliteral('\0', &bnext, "0.0");
2368 surfxml_bufferliteral('\0', &bnext, "0.0");
2369 surfxml_bufferliteral('\0', &bnext, "-1.0");
2370 surfxml_bufferliteral('\0', &bnext, "-1.0");
2371 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2372 surfxml_statenames[PROLOG] = NULL;
2373 surfxml_statenames[DOCTYPE] = NULL;
2374 surfxml_statenames[EPILOG] = NULL;
2375 surfxml_statenames[INCOMMENT] = NULL;
2376 surfxml_statenames[INPI] = NULL;
2377 surfxml_statenames[VALUE1] = NULL;
2378 surfxml_statenames[VALUE2] = NULL;
2379 surfxml_statenames[CDATA] = NULL;
2380 surfxml_statenames[ROOT_surfxml_platform_description] = NULL;
2381 surfxml_statenames[AL_surfxml_platform_description] = NULL;
2382 surfxml_statenames[S_surfxml_platform_description] = "platform_description";
2383 surfxml_statenames[S_surfxml_platform_description_1] = "platform_description";
2384 surfxml_statenames[S_surfxml_platform_description_2] = "platform_description";
2385 surfxml_statenames[E_surfxml_platform_description] = "platform_description";
2386 surfxml_statenames[ROOT_surfxml_include] = NULL;
2387 surfxml_statenames[AL_surfxml_include] = NULL;
2388 surfxml_statenames[S_surfxml_include] = "include";
2389 surfxml_statenames[S_surfxml_include_1] = "include";
2390 surfxml_statenames[S_surfxml_include_2] = "include";
2391 surfxml_statenames[E_surfxml_include] = "include";
2392 surfxml_statenames[ROOT_surfxml_cpu] = NULL;
2393 surfxml_statenames[AL_surfxml_cpu] = NULL;
2394 surfxml_statenames[E_surfxml_cpu] = "cpu";
2395 surfxml_statenames[ROOT_surfxml_router] = NULL;
2396 surfxml_statenames[AL_surfxml_router] = NULL;
2397 surfxml_statenames[E_surfxml_router] = "router";
2398 surfxml_statenames[ROOT_surfxml_network_link] = NULL;
2399 surfxml_statenames[AL_surfxml_network_link] = NULL;
2400 surfxml_statenames[E_surfxml_network_link] = "network_link";
2401 surfxml_statenames[ROOT_surfxml_route] = NULL;
2402 surfxml_statenames[AL_surfxml_route] = NULL;
2403 surfxml_statenames[S_surfxml_route] = "route";
2404 surfxml_statenames[S_surfxml_route_1] = "route";
2405 surfxml_statenames[S_surfxml_route_2] = "route";
2406 surfxml_statenames[E_surfxml_route] = "route";
2407 surfxml_statenames[ROOT_surfxml_route_element] = NULL;
2408 surfxml_statenames[AL_surfxml_route_element] = NULL;
2409 surfxml_statenames[E_surfxml_route_element] = "route_element";
2410 surfxml_statenames[ROOT_surfxml_process] = NULL;
2411 surfxml_statenames[AL_surfxml_process] = NULL;
2412 surfxml_statenames[S_surfxml_process] = "process";
2413 surfxml_statenames[S_surfxml_process_1] = "process";
2414 surfxml_statenames[S_surfxml_process_2] = "process";
2415 surfxml_statenames[E_surfxml_process] = "process";
2416 surfxml_statenames[ROOT_surfxml_argument] = NULL;
2417 surfxml_statenames[AL_surfxml_argument] = NULL;
2418 surfxml_statenames[E_surfxml_argument] = "argument";
2421 /* COMMENTS and PIs: handled uniformly for efficiency. */
2432 (yy_start) = 1; /* first start state */
2434 if ( ! surf_parse_in )
2435 surf_parse_in = stdin;
2437 if ( ! surf_parse_out )
2438 surf_parse_out = stdout;
2440 if ( ! YY_CURRENT_BUFFER ) {
2441 surf_parse_ensure_buffer_stack ();
2442 YY_CURRENT_BUFFER_LVALUE =
2443 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2446 surf_parse__load_buffer_state( );
2449 while ( 1 ) /* loops until end-of-file is reached */
2451 yy_cp = (yy_c_buf_p);
2453 /* Support of surf_parse_text. */
2454 *yy_cp = (yy_hold_char);
2456 /* yy_bp points to the position in yy_ch_buf of the start of
2461 yy_current_state = (yy_start);
2465 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2466 if ( yy_accept[yy_current_state] )
2468 (yy_last_accepting_state) = yy_current_state;
2469 (yy_last_accepting_cpos) = yy_cp;
2471 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2473 yy_current_state = (int) yy_def[yy_current_state];
2474 if ( yy_current_state >= 1433 )
2475 yy_c = yy_meta[(unsigned int) yy_c];
2477 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2480 while ( yy_base[yy_current_state] != 3946 );
2483 yy_act = yy_accept[yy_current_state];
2485 { /* have to back up */
2486 yy_cp = (yy_last_accepting_cpos);
2487 yy_current_state = (yy_last_accepting_state);
2488 yy_act = yy_accept[yy_current_state];
2491 YY_DO_BEFORE_ACTION;
2493 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2496 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2497 if ( surf_parse_text[yyl] == '\n' )
2499 surf_parse_lineno++;
2503 do_action: /* This label is used only to access EOF actions. */
2506 { /* beginning of action switch */
2507 case 0: /* must back up */
2508 /* undo the effects of YY_DO_BEFORE_ACTION */
2509 *yy_cp = (yy_hold_char);
2510 yy_cp = (yy_last_accepting_cpos);
2511 yy_current_state = (yy_last_accepting_state);
2512 goto yy_find_action;
2530 /* rule 6 can match eol */
2534 case YY_STATE_EOF(INCOMMENT):
2535 FAIL("EOF in comment.");
2544 /* rule 9 can match eol */
2548 case YY_STATE_EOF(INPI):
2549 FAIL("EOF in PI (processing instruction).");
2552 /* SPACES: skipped uniformly */
2554 /* rule 10 can match eol */
2558 /* PROLOG: determine root element and process it. */
2561 /* rule 11 can match eol */
2566 /* rule 12 can match eol */
2568 FAIL("Bad declaration %s.",surf_parse_text);
2572 /* rule 13 can match eol */
2574 SET(ROOT_surfxml_cpu);
2577 /* rule 14 can match eol */
2579 SET(ROOT_surfxml_include);
2582 /* rule 15 can match eol */
2584 SET(ROOT_surfxml_route);
2587 /* rule 16 can match eol */
2589 SET(ROOT_surfxml_network_link);
2592 /* rule 17 can match eol */
2594 SET(ROOT_surfxml_process);
2597 /* rule 18 can match eol */
2599 SET(ROOT_surfxml_router);
2602 /* rule 19 can match eol */
2604 SET(ROOT_surfxml_argument);
2607 /* rule 20 can match eol */
2609 SET(ROOT_surfxml_route_element);
2612 /* rule 21 can match eol */
2614 SET(ROOT_surfxml_platform_description);
2617 /* rule 22 can match eol */
2619 FAIL("Bad declaration %s.",surf_parse_text);
2623 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2625 case YY_STATE_EOF(PROLOG):
2626 case YY_STATE_EOF(DOCTYPE):
2627 FAIL("EOF in prolog.");
2630 /* RULES DERIVED FROM DTD. */
2631 /* <!-- Small DTD for SURF based tools. --> */
2633 /* rule 24 can match eol */
2636 AX_surfxml_platform_description_version = 1;
2637 ENTER(AL_surfxml_platform_description); pushbuffer(0);
2642 /* rule 25 can match eol */
2644 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_description_version);
2647 /* rule 26 can match eol */
2649 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_description_version);
2654 LEAVE; STag_surfxml_platform_description();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform_description);
2660 LEAVE; STag_surfxml_platform_description(); surfxml_pcdata_ix = 0; ETag_surfxml_platform_description(); popbuffer(); /* attribute */
2662 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2668 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2672 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2674 case YY_STATE_EOF(AL_surfxml_platform_description):
2675 FAIL("EOF in attribute list of `platform_description' element.");
2679 /* rule 31 can match eol */
2683 ETag_surfxml_platform_description();
2684 popbuffer(); /* attribute */
2686 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2691 /* rule 32 can match eol */
2693 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2697 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2699 case YY_STATE_EOF(E_surfxml_platform_description):
2700 case YY_STATE_EOF(S_surfxml_platform_description_2):
2701 case YY_STATE_EOF(S_surfxml_platform_description):
2702 FAIL("Premature EOF: `</platform_description>' expected.");
2706 /* rule 34 can match eol */
2709 AX_surfxml_include_file = 0;
2710 ENTER(AL_surfxml_include); pushbuffer(0);
2715 /* rule 35 can match eol */
2717 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
2720 /* rule 36 can match eol */
2722 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
2727 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2728 LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
2734 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2735 LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
2737 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2738 case ROOT_surfxml_include: SET(EPILOG); break;
2739 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2745 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2749 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2751 case YY_STATE_EOF(AL_surfxml_include):
2752 FAIL("EOF in attribute list of `include' element.");
2756 /* rule 41 can match eol */
2760 ETag_surfxml_include();
2761 popbuffer(); /* attribute */
2763 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2764 case ROOT_surfxml_include: SET(EPILOG); break;
2765 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2770 /* rule 42 can match eol */
2772 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2776 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2778 case YY_STATE_EOF(E_surfxml_include):
2779 case YY_STATE_EOF(S_surfxml_include):
2780 case YY_STATE_EOF(S_surfxml_include_2):
2781 FAIL("Premature EOF: `</include>' expected.");
2785 /* rule 44 can match eol */
2788 AX_surfxml_cpu_name = 0;
2789 AX_surfxml_cpu_power = 0;
2790 AX_surfxml_cpu_availability = 5;
2791 AX_surfxml_cpu_availability_file = 0;
2792 AX_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2793 AX_surfxml_cpu_state_file = 0;
2794 AX_surfxml_cpu_interference_send = 9;
2795 AX_surfxml_cpu_interference_recv = 13;
2796 AX_surfxml_cpu_interference_send_recv = 17;
2797 AX_surfxml_cpu_max_outgoing_rate = 21;
2798 ENTER(AL_surfxml_cpu); pushbuffer(0);
2803 /* rule 45 can match eol */
2805 ENTER(VALUE1); BUFFERSET(AX_surfxml_cpu_name);
2808 /* rule 46 can match eol */
2810 ENTER(VALUE2); BUFFERSET(AX_surfxml_cpu_name);
2813 /* rule 47 can match eol */
2815 ENTER(VALUE1); BUFFERSET(AX_surfxml_cpu_power);
2818 /* rule 48 can match eol */
2820 ENTER(VALUE2); BUFFERSET(AX_surfxml_cpu_power);
2823 /* rule 49 can match eol */
2825 ENTER(VALUE1); BUFFERSET(AX_surfxml_cpu_availability);
2828 /* rule 50 can match eol */
2830 ENTER(VALUE2); BUFFERSET(AX_surfxml_cpu_availability);
2833 /* rule 51 can match eol */
2835 ENTER(VALUE1); BUFFERSET(AX_surfxml_cpu_availability_file);
2838 /* rule 52 can match eol */
2840 ENTER(VALUE2); BUFFERSET(AX_surfxml_cpu_availability_file);
2843 /* rule 53 can match eol */
2845 /* rule 54 can match eol */
2847 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2850 /* rule 55 can match eol */
2852 /* rule 56 can match eol */
2854 A_surfxml_cpu_state = A_surfxml_cpu_state_OFF;
2857 /* rule 57 can match eol */
2859 ENTER(VALUE1); BUFFERSET(AX_surfxml_cpu_state_file);
2862 /* rule 58 can match eol */
2864 ENTER(VALUE2); BUFFERSET(AX_surfxml_cpu_state_file);
2867 /* rule 59 can match eol */
2869 ENTER(VALUE1); BUFFERSET(AX_surfxml_cpu_interference_send);
2872 /* rule 60 can match eol */
2874 ENTER(VALUE2); BUFFERSET(AX_surfxml_cpu_interference_send);
2877 /* rule 61 can match eol */
2879 ENTER(VALUE1); BUFFERSET(AX_surfxml_cpu_interference_recv);
2882 /* rule 62 can match eol */
2884 ENTER(VALUE2); BUFFERSET(AX_surfxml_cpu_interference_recv);
2887 /* rule 63 can match eol */
2889 ENTER(VALUE1); BUFFERSET(AX_surfxml_cpu_interference_send_recv);
2892 /* rule 64 can match eol */
2894 ENTER(VALUE2); BUFFERSET(AX_surfxml_cpu_interference_send_recv);
2897 /* rule 65 can match eol */
2899 ENTER(VALUE1); BUFFERSET(AX_surfxml_cpu_max_outgoing_rate);
2902 /* rule 66 can match eol */
2904 ENTER(VALUE2); BUFFERSET(AX_surfxml_cpu_max_outgoing_rate);
2909 if (!AX_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2910 if (!AX_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2911 LEAVE; STag_surfxml_cpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cpu);
2917 if (!AX_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2918 if (!AX_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2919 LEAVE; STag_surfxml_cpu(); surfxml_pcdata_ix = 0; ETag_surfxml_cpu(); popbuffer(); /* attribute */
2921 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2922 case ROOT_surfxml_cpu: SET(EPILOG); break;
2923 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2929 FAIL("Unexpected character `%c' in attribute list of cpu element.", surf_parse_text[0]);
2933 FAIL("Bad attribute `%s' in `cpu' element start tag.",surf_parse_text);
2935 case YY_STATE_EOF(AL_surfxml_cpu):
2936 FAIL("EOF in attribute list of `cpu' element.");
2940 /* rule 71 can match eol */
2945 popbuffer(); /* attribute */
2947 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2948 case ROOT_surfxml_cpu: SET(EPILOG); break;
2949 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2954 /* rule 72 can match eol */
2956 FAIL("Unexpected end-tag `%s': `</cpu>' expected.",surf_parse_text);
2960 FAIL("Unexpected character `%c': `</cpu>' expected.",surf_parse_text[0]);
2962 case YY_STATE_EOF(E_surfxml_cpu):
2963 FAIL("Premature EOF: `</cpu>' expected.");
2967 /* rule 74 can match eol */
2970 AX_surfxml_router_name = 0;
2971 ENTER(AL_surfxml_router); pushbuffer(0);
2976 /* rule 75 can match eol */
2978 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_name);
2981 /* rule 76 can match eol */
2983 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_name);
2988 if (!AX_surfxml_router_name) FAIL("Required attribute `name' not set for `router' element.");
2989 LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
2995 if (!AX_surfxml_router_name) FAIL("Required attribute `name' not set for `router' element.");
2996 LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
2998 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2999 case ROOT_surfxml_router: SET(EPILOG); break;
3000 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3006 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
3010 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
3012 case YY_STATE_EOF(AL_surfxml_router):
3013 FAIL("EOF in attribute list of `router' element.");
3017 /* rule 81 can match eol */
3021 ETag_surfxml_router();
3022 popbuffer(); /* attribute */
3024 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3025 case ROOT_surfxml_router: SET(EPILOG); break;
3026 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3031 /* rule 82 can match eol */
3033 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
3037 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
3039 case YY_STATE_EOF(E_surfxml_router):
3040 FAIL("Premature EOF: `</router>' expected.");
3044 /* rule 84 can match eol */
3047 AX_surfxml_network_link_name = 0;
3048 AX_surfxml_network_link_bandwidth = 0;
3049 AX_surfxml_network_link_bandwidth_file = 0;
3050 AX_surfxml_network_link_latency = 26;
3051 AX_surfxml_network_link_latency_file = 0;
3052 AX_surfxml_network_link_state = A_surfxml_network_link_state_ON;
3053 AX_surfxml_network_link_state_file = 0;
3054 AX_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
3055 ENTER(AL_surfxml_network_link); pushbuffer(0);
3060 /* rule 85 can match eol */
3062 ENTER(VALUE1); BUFFERSET(AX_surfxml_network_link_name);
3065 /* rule 86 can match eol */
3067 ENTER(VALUE2); BUFFERSET(AX_surfxml_network_link_name);
3070 /* rule 87 can match eol */
3072 ENTER(VALUE1); BUFFERSET(AX_surfxml_network_link_bandwidth);
3075 /* rule 88 can match eol */
3077 ENTER(VALUE2); BUFFERSET(AX_surfxml_network_link_bandwidth);
3080 /* rule 89 can match eol */
3082 ENTER(VALUE1); BUFFERSET(AX_surfxml_network_link_bandwidth_file);
3085 /* rule 90 can match eol */
3087 ENTER(VALUE2); BUFFERSET(AX_surfxml_network_link_bandwidth_file);
3090 /* rule 91 can match eol */
3092 ENTER(VALUE1); BUFFERSET(AX_surfxml_network_link_latency);
3095 /* rule 92 can match eol */
3097 ENTER(VALUE2); BUFFERSET(AX_surfxml_network_link_latency);
3100 /* rule 93 can match eol */
3102 ENTER(VALUE1); BUFFERSET(AX_surfxml_network_link_latency_file);
3105 /* rule 94 can match eol */
3107 ENTER(VALUE2); BUFFERSET(AX_surfxml_network_link_latency_file);
3110 /* rule 95 can match eol */
3112 /* rule 96 can match eol */
3114 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
3117 /* rule 97 can match eol */
3119 /* rule 98 can match eol */
3121 A_surfxml_network_link_state = A_surfxml_network_link_state_OFF;
3124 /* rule 99 can match eol */
3126 ENTER(VALUE1); BUFFERSET(AX_surfxml_network_link_state_file);
3129 /* rule 100 can match eol */
3131 ENTER(VALUE2); BUFFERSET(AX_surfxml_network_link_state_file);
3134 /* rule 101 can match eol */
3136 /* rule 102 can match eol */
3138 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
3141 /* rule 103 can match eol */
3143 /* rule 104 can match eol */
3145 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_FATPIPE;
3150 if (!AX_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
3151 if (!AX_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
3152 LEAVE; STag_surfxml_network_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_network_link);
3158 if (!AX_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
3159 if (!AX_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
3160 LEAVE; STag_surfxml_network_link(); surfxml_pcdata_ix = 0; ETag_surfxml_network_link(); popbuffer(); /* attribute */
3162 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3163 case ROOT_surfxml_network_link: SET(EPILOG); break;
3164 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3170 FAIL("Unexpected character `%c' in attribute list of network_link element.", surf_parse_text[0]);
3174 FAIL("Bad attribute `%s' in `network_link' element start tag.",surf_parse_text);
3176 case YY_STATE_EOF(AL_surfxml_network_link):
3177 FAIL("EOF in attribute list of `network_link' element.");
3181 /* rule 109 can match eol */
3185 ETag_surfxml_network_link();
3186 popbuffer(); /* attribute */
3188 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3189 case ROOT_surfxml_network_link: SET(EPILOG); break;
3190 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3195 /* rule 110 can match eol */
3197 FAIL("Unexpected end-tag `%s': `</network_link>' expected.",surf_parse_text);
3201 FAIL("Unexpected character `%c': `</network_link>' expected.",surf_parse_text[0]);
3203 case YY_STATE_EOF(E_surfxml_network_link):
3204 FAIL("Premature EOF: `</network_link>' expected.");
3208 /* rule 112 can match eol */
3211 AX_surfxml_route_src = 0;
3212 AX_surfxml_route_dst = 0;
3213 AX_surfxml_route_impact_on_src = 30;
3214 AX_surfxml_route_impact_on_dst = 34;
3215 AX_surfxml_route_impact_on_src_with_other_recv = 38;
3216 AX_surfxml_route_impact_on_dst_with_other_send = 42;
3217 ENTER(AL_surfxml_route); pushbuffer(0);
3222 /* rule 113 can match eol */
3224 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
3227 /* rule 114 can match eol */
3229 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
3232 /* rule 115 can match eol */
3234 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
3237 /* rule 116 can match eol */
3239 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
3242 /* rule 117 can match eol */
3244 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src);
3247 /* rule 118 can match eol */
3249 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src);
3252 /* rule 119 can match eol */
3254 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst);
3257 /* rule 120 can match eol */
3259 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst);
3262 /* rule 121 can match eol */
3264 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
3267 /* rule 122 can match eol */
3269 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
3272 /* rule 123 can match eol */
3274 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
3277 /* rule 124 can match eol */
3279 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
3284 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3285 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3286 LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
3292 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3293 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3294 LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
3296 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3297 case ROOT_surfxml_route: SET(EPILOG); break;
3298 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3304 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3308 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3310 case YY_STATE_EOF(AL_surfxml_route):
3311 FAIL("EOF in attribute list of `route' element.");
3315 /* rule 129 can match eol */
3319 ETag_surfxml_route();
3320 popbuffer(); /* attribute */
3322 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3323 case ROOT_surfxml_route: SET(EPILOG); break;
3324 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3329 /* rule 130 can match eol */
3331 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3335 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3337 case YY_STATE_EOF(S_surfxml_route):
3338 case YY_STATE_EOF(S_surfxml_route_2):
3339 case YY_STATE_EOF(E_surfxml_route):
3340 FAIL("Premature EOF: `</route>' expected.");
3344 /* rule 132 can match eol */
3347 AX_surfxml_route_element_name = 0;
3348 ENTER(AL_surfxml_route_element); pushbuffer(0);
3353 /* rule 133 can match eol */
3355 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_element_name);
3358 /* rule 134 can match eol */
3360 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_element_name);
3365 if (!AX_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3366 LEAVE; STag_surfxml_route_element();surfxml_pcdata_ix = 0; ENTER(E_surfxml_route_element);
3372 if (!AX_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3373 LEAVE; STag_surfxml_route_element(); surfxml_pcdata_ix = 0; ETag_surfxml_route_element(); popbuffer(); /* attribute */
3375 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3376 case ROOT_surfxml_route_element: SET(EPILOG); break;
3382 FAIL("Unexpected character `%c' in attribute list of route_element element.", surf_parse_text[0]);
3386 FAIL("Bad attribute `%s' in `route_element' element start tag.",surf_parse_text);
3388 case YY_STATE_EOF(AL_surfxml_route_element):
3389 FAIL("EOF in attribute list of `route_element' element.");
3393 /* rule 139 can match eol */
3397 ETag_surfxml_route_element();
3398 popbuffer(); /* attribute */
3400 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3401 case ROOT_surfxml_route_element: SET(EPILOG); break;
3406 /* rule 140 can match eol */
3408 FAIL("Unexpected end-tag `%s': `</route_element>' expected.",surf_parse_text);
3412 FAIL("Unexpected character `%c': `</route_element>' expected.",surf_parse_text[0]);
3414 case YY_STATE_EOF(E_surfxml_route_element):
3415 FAIL("Premature EOF: `</route_element>' expected.");
3419 /* rule 142 can match eol */
3422 AX_surfxml_process_host = 0;
3423 AX_surfxml_process_function = 0;
3424 AX_surfxml_process_start_time = 46;
3425 AX_surfxml_process_kill_time = 51;
3426 ENTER(AL_surfxml_process); pushbuffer(0);
3431 /* rule 143 can match eol */
3433 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
3436 /* rule 144 can match eol */
3438 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
3441 /* rule 145 can match eol */
3443 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
3446 /* rule 146 can match eol */
3448 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
3451 /* rule 147 can match eol */
3453 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
3456 /* rule 148 can match eol */
3458 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
3461 /* rule 149 can match eol */
3463 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
3466 /* rule 150 can match eol */
3468 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
3473 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3474 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3475 LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
3481 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3482 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3483 LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
3485 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3486 case ROOT_surfxml_process: SET(EPILOG); break;
3487 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3493 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3497 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3499 case YY_STATE_EOF(AL_surfxml_process):
3500 FAIL("EOF in attribute list of `process' element.");
3504 /* rule 155 can match eol */
3508 ETag_surfxml_process();
3509 popbuffer(); /* attribute */
3511 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3512 case ROOT_surfxml_process: SET(EPILOG); break;
3513 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3518 /* rule 156 can match eol */
3520 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3524 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3526 case YY_STATE_EOF(S_surfxml_process):
3527 case YY_STATE_EOF(E_surfxml_process):
3528 case YY_STATE_EOF(S_surfxml_process_2):
3529 FAIL("Premature EOF: `</process>' expected.");
3533 /* rule 158 can match eol */
3536 AX_surfxml_argument_value = 0;
3537 ENTER(AL_surfxml_argument); pushbuffer(0);
3542 /* rule 159 can match eol */
3544 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
3547 /* rule 160 can match eol */
3549 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
3554 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3555 LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
3561 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3562 LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
3564 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3565 case ROOT_surfxml_argument: SET(EPILOG); break;
3571 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3575 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3577 case YY_STATE_EOF(AL_surfxml_argument):
3578 FAIL("EOF in attribute list of `argument' element.");
3582 /* rule 165 can match eol */
3586 ETag_surfxml_argument();
3587 popbuffer(); /* attribute */
3589 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3590 case ROOT_surfxml_argument: SET(EPILOG); break;
3595 /* rule 166 can match eol */
3597 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3601 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3603 case YY_STATE_EOF(E_surfxml_argument):
3604 FAIL("Premature EOF: `</argument>' expected.");
3607 /* EPILOG: after the root element. */
3611 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3613 case YY_STATE_EOF(EPILOG):
3617 /* CHARACTER DATA. */
3619 /* Non-defined standard entities... */
3640 /* Character entities. */
3643 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3647 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3651 /* rule 176 can match eol */
3653 /* rule 177 can match eol */
3655 /* rule 178 can match eol */
3657 /* rule 179 can match eol */
3668 FAIL("Unexpected `]""]>' in character data.");
3675 case YY_STATE_EOF(VALUE1):
3676 FAIL("EOF in literal (\"'\" expected).");
3683 case YY_STATE_EOF(VALUE2):
3684 FAIL("EOF in literal (`\"' expected).");
3688 /* rule 184 can match eol */
3690 BUFFERPUTC(surf_parse_text[0]);
3694 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3701 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3704 BUFFERPUTC(surf_parse_text[0]);
3706 case YY_STATE_EOF(CDATA):
3707 FAIL("EOF in CDATA section.");
3710 /* Impossible rules to avoid warnings from flex(1). */
3711 /* Ideally, this should be replaced by code in flexml.pl that
3712 generates just the states not covered by other rules. */
3715 /* rule 188 can match eol */
3717 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3724 case YY_STATE_EOF(INITIAL):
3725 case YY_STATE_EOF(ROOT_surfxml_platform_description):
3726 case YY_STATE_EOF(S_surfxml_platform_description_1):
3727 case YY_STATE_EOF(ROOT_surfxml_include):
3728 case YY_STATE_EOF(S_surfxml_include_1):
3729 case YY_STATE_EOF(ROOT_surfxml_cpu):
3730 case YY_STATE_EOF(ROOT_surfxml_router):
3731 case YY_STATE_EOF(ROOT_surfxml_network_link):
3732 case YY_STATE_EOF(ROOT_surfxml_route):
3733 case YY_STATE_EOF(S_surfxml_route_1):
3734 case YY_STATE_EOF(ROOT_surfxml_route_element):
3735 case YY_STATE_EOF(ROOT_surfxml_process):
3736 case YY_STATE_EOF(S_surfxml_process_1):
3737 case YY_STATE_EOF(ROOT_surfxml_argument):
3738 case YY_STATE_EOF(IMPOSSIBLE):
3741 case YY_END_OF_BUFFER:
3743 /* Amount of text matched not including the EOB char. */
3744 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3746 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3747 *yy_cp = (yy_hold_char);
3748 YY_RESTORE_YY_MORE_OFFSET
3750 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3752 /* We're scanning a new file or input source. It's
3753 * possible that this happened because the user
3754 * just pointed surf_parse_in at a new source and called
3755 * surf_parse_lex(). If so, then we have to assure
3756 * consistency between YY_CURRENT_BUFFER and our
3757 * globals. Here is the right place to do so, because
3758 * this is the first action (other than possibly a
3759 * back-up) that will match for the new input source.
3761 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3762 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3763 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3766 /* Note that here we test for yy_c_buf_p "<=" to the position
3767 * of the first EOB in the buffer, since yy_c_buf_p will
3768 * already have been incremented past the NUL character
3769 * (since all states make transitions on EOB to the
3770 * end-of-buffer state). Contrast this with the test
3773 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3774 { /* This was really a NUL. */
3775 yy_state_type yy_next_state;
3777 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3779 yy_current_state = yy_get_previous_state( );
3781 /* Okay, we're now positioned to make the NUL
3782 * transition. We couldn't have
3783 * yy_get_previous_state() go ahead and do it
3784 * for us because it doesn't know how to deal
3785 * with the possibility of jamming (and we don't
3786 * want to build jamming into it because then it
3787 * will run more slowly).
3790 yy_next_state = yy_try_NUL_trans( yy_current_state );
3792 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3794 if ( yy_next_state )
3796 /* Consume the NUL. */
3797 yy_cp = ++(yy_c_buf_p);
3798 yy_current_state = yy_next_state;
3804 yy_cp = (yy_c_buf_p);
3805 goto yy_find_action;
3809 else switch ( yy_get_next_buffer( ) )
3811 case EOB_ACT_END_OF_FILE:
3813 (yy_did_buffer_switch_on_eof) = 0;
3815 if ( surf_parse_wrap( ) )
3817 /* Note: because we've taken care in
3818 * yy_get_next_buffer() to have set up
3819 * surf_parse_text, we can now set up
3820 * yy_c_buf_p so that if some total
3821 * hoser (like flex itself) wants to
3822 * call the scanner after we return the
3823 * YY_NULL, it'll still work - another
3824 * YY_NULL will get returned.
3826 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3828 yy_act = YY_STATE_EOF(YY_START);
3834 if ( ! (yy_did_buffer_switch_on_eof) )
3840 case EOB_ACT_CONTINUE_SCAN:
3842 (yytext_ptr) + yy_amount_of_matched_text;
3844 yy_current_state = yy_get_previous_state( );
3846 yy_cp = (yy_c_buf_p);
3847 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3850 case EOB_ACT_LAST_MATCH:
3852 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3854 yy_current_state = yy_get_previous_state( );
3856 yy_cp = (yy_c_buf_p);
3857 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3858 goto yy_find_action;
3865 "fatal flex scanner internal error--no action found" );
3866 } /* end of action switch */
3867 } /* end of scanning one token */
3868 } /* end of surf_parse_lex */
3870 /* yy_get_next_buffer - try to read in a new buffer
3872 * Returns a code representing an action:
3873 * EOB_ACT_LAST_MATCH -
3874 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3875 * EOB_ACT_END_OF_FILE - end of file
3877 static int yy_get_next_buffer (void)
3879 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3880 register char *source = (yytext_ptr);
3881 register int number_to_move, i;
3884 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3886 "fatal flex scanner internal error--end of buffer missed" );
3888 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3889 { /* Don't try to fill the buffer, so this is an EOF. */
3890 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3892 /* We matched a single character, the EOB, so
3893 * treat this as a final EOF.
3895 return EOB_ACT_END_OF_FILE;
3900 /* We matched some text prior to the EOB, first
3903 return EOB_ACT_LAST_MATCH;
3907 /* Try to read more data. */
3909 /* First move last chars to start of buffer. */
3910 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3912 for ( i = 0; i < number_to_move; ++i )
3913 *(dest++) = *(source++);
3915 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3916 /* don't do the read, it's not guaranteed to return an EOF,
3919 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3924 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3926 while ( num_to_read <= 0 )
3927 { /* Not enough room in the buffer - grow it. */
3929 /* just a shorter name for the current buffer */
3930 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3932 int yy_c_buf_p_offset =
3933 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3935 if ( b->yy_is_our_buffer )
3937 int new_size = b->yy_buf_size * 2;
3939 if ( new_size <= 0 )
3940 b->yy_buf_size += b->yy_buf_size / 8;
3942 b->yy_buf_size *= 2;
3944 b->yy_ch_buf = (char *)
3945 /* Include room in for 2 EOB chars. */
3946 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3949 /* Can't grow it, we don't own it. */
3952 if ( ! b->yy_ch_buf )
3954 "fatal error - scanner input buffer overflow" );
3956 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3958 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3963 if ( num_to_read > YY_READ_BUF_SIZE )
3964 num_to_read = YY_READ_BUF_SIZE;
3966 /* Read in more data. */
3967 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3968 (yy_n_chars), (size_t) num_to_read );
3970 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3973 if ( (yy_n_chars) == 0 )
3975 if ( number_to_move == YY_MORE_ADJ )
3977 ret_val = EOB_ACT_END_OF_FILE;
3978 surf_parse_restart(surf_parse_in );
3983 ret_val = EOB_ACT_LAST_MATCH;
3984 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3985 YY_BUFFER_EOF_PENDING;
3990 ret_val = EOB_ACT_CONTINUE_SCAN;
3992 (yy_n_chars) += number_to_move;
3993 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3994 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3996 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4001 /* yy_get_previous_state - get the state just before the EOB char was reached */
4003 static yy_state_type yy_get_previous_state (void)
4005 register yy_state_type yy_current_state;
4006 register char *yy_cp;
4008 yy_current_state = (yy_start);
4010 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4012 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4013 if ( yy_accept[yy_current_state] )
4015 (yy_last_accepting_state) = yy_current_state;
4016 (yy_last_accepting_cpos) = yy_cp;
4018 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4020 yy_current_state = (int) yy_def[yy_current_state];
4021 if ( yy_current_state >= 1433 )
4022 yy_c = yy_meta[(unsigned int) yy_c];
4024 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4027 return yy_current_state;
4030 /* yy_try_NUL_trans - try to make a transition on the NUL character
4033 * next_state = yy_try_NUL_trans( current_state );
4035 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
4037 register int yy_is_jam;
4038 register char *yy_cp = (yy_c_buf_p);
4040 register YY_CHAR yy_c = 1;
4041 if ( yy_accept[yy_current_state] )
4043 (yy_last_accepting_state) = yy_current_state;
4044 (yy_last_accepting_cpos) = yy_cp;
4046 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4048 yy_current_state = (int) yy_def[yy_current_state];
4049 if ( yy_current_state >= 1433 )
4050 yy_c = yy_meta[(unsigned int) yy_c];
4052 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4053 yy_is_jam = (yy_current_state == 1432);
4055 return yy_is_jam ? 0 : yy_current_state;
4060 static int yyinput (void)
4062 static int input (void)
4068 *(yy_c_buf_p) = (yy_hold_char);
4070 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4072 /* yy_c_buf_p now points to the character we want to return.
4073 * If this occurs *before* the EOB characters, then it's a
4074 * valid NUL; if not, then we've hit the end of the buffer.
4076 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4077 /* This was really a NUL. */
4078 *(yy_c_buf_p) = '\0';
4081 { /* need more input */
4082 int offset = (yy_c_buf_p) - (yytext_ptr);
4085 switch ( yy_get_next_buffer( ) )
4087 case EOB_ACT_LAST_MATCH:
4088 /* This happens because yy_g_n_b()
4089 * sees that we've accumulated a
4090 * token and flags that we need to
4091 * try matching the token before
4092 * proceeding. But for input(),
4093 * there's no matching to consider.
4094 * So convert the EOB_ACT_LAST_MATCH
4095 * to EOB_ACT_END_OF_FILE.
4098 /* Reset buffer status. */
4099 surf_parse_restart(surf_parse_in );
4103 case EOB_ACT_END_OF_FILE:
4105 if ( surf_parse_wrap( ) )
4108 if ( ! (yy_did_buffer_switch_on_eof) )
4117 case EOB_ACT_CONTINUE_SCAN:
4118 (yy_c_buf_p) = (yytext_ptr) + offset;
4124 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4125 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
4126 (yy_hold_char) = *++(yy_c_buf_p);
4130 surf_parse_lineno++;
4135 #endif /* ifndef YY_NO_INPUT */
4137 /** Immediately switch to a different input stream.
4138 * @param input_file A readable stream.
4140 * @note This function does not reset the start condition to @c INITIAL .
4142 void surf_parse_restart (FILE * input_file )
4145 if ( ! YY_CURRENT_BUFFER ){
4146 surf_parse_ensure_buffer_stack ();
4147 YY_CURRENT_BUFFER_LVALUE =
4148 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4151 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
4152 surf_parse__load_buffer_state( );
4155 /** Switch to a different input buffer.
4156 * @param new_buffer The new input buffer.
4159 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
4162 /* TODO. We should be able to replace this entire function body
4164 * surf_parse_pop_buffer_state();
4165 * surf_parse_push_buffer_state(new_buffer);
4167 surf_parse_ensure_buffer_stack ();
4168 if ( YY_CURRENT_BUFFER == new_buffer )
4171 if ( YY_CURRENT_BUFFER )
4173 /* Flush out information for old buffer. */
4174 *(yy_c_buf_p) = (yy_hold_char);
4175 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4176 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4179 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4180 surf_parse__load_buffer_state( );
4182 /* We don't actually know whether we did this switch during
4183 * EOF (surf_parse_wrap()) processing, but the only time this flag
4184 * is looked at is after surf_parse_wrap() is called, so it's safe
4185 * to go ahead and always set it.
4187 (yy_did_buffer_switch_on_eof) = 1;
4190 static void surf_parse__load_buffer_state (void)
4192 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4193 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4194 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4195 (yy_hold_char) = *(yy_c_buf_p);
4198 /** Allocate and initialize an input buffer state.
4199 * @param file A readable stream.
4200 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4202 * @return the allocated buffer state.
4204 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
4208 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4210 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4212 b->yy_buf_size = size;
4214 /* yy_ch_buf has to be 2 characters longer than the size given because
4215 * we need to put in 2 end-of-buffer characters.
4217 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
4218 if ( ! b->yy_ch_buf )
4219 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4221 b->yy_is_our_buffer = 1;
4223 surf_parse__init_buffer(b,file );
4228 /** Destroy the buffer.
4229 * @param b a buffer created with surf_parse__create_buffer()
4232 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4238 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4239 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4241 if ( b->yy_is_our_buffer )
4242 surf_parse_free((void *) b->yy_ch_buf );
4244 surf_parse_free((void *) b );
4248 extern int isatty (int );
4249 #endif /* __cplusplus */
4251 /* Initializes or reinitializes a buffer.
4252 * This function is sometimes called more than once on the same buffer,
4253 * such as during a surf_parse_restart() or at EOF.
4255 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4260 surf_parse__flush_buffer(b );
4262 b->yy_input_file = file;
4263 b->yy_fill_buffer = 1;
4265 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4266 * called from surf_parse_restart() or through yy_get_next_buffer.
4267 * In that case, we don't want to reset the lineno or column.
4269 if (b != YY_CURRENT_BUFFER){
4270 b->yy_bs_lineno = 1;
4271 b->yy_bs_column = 0;
4274 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4279 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4280 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4283 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4290 /* We always need two end-of-buffer characters. The first causes
4291 * a transition to the end-of-buffer state. The second causes
4292 * a jam in that state.
4294 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4295 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4297 b->yy_buf_pos = &b->yy_ch_buf[0];
4300 b->yy_buffer_status = YY_BUFFER_NEW;
4302 if ( b == YY_CURRENT_BUFFER )
4303 surf_parse__load_buffer_state( );
4306 /** Pushes the new state onto the stack. The new state becomes
4307 * the current state. This function will allocate the stack
4309 * @param new_buffer The new state.
4312 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4314 if (new_buffer == NULL)
4317 surf_parse_ensure_buffer_stack();
4319 /* This block is copied from surf_parse__switch_to_buffer. */
4320 if ( YY_CURRENT_BUFFER )
4322 /* Flush out information for old buffer. */
4323 *(yy_c_buf_p) = (yy_hold_char);
4324 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4325 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4328 /* Only push if top exists. Otherwise, replace top. */
4329 if (YY_CURRENT_BUFFER)
4330 (yy_buffer_stack_top)++;
4331 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4333 /* copied from surf_parse__switch_to_buffer. */
4334 surf_parse__load_buffer_state( );
4335 (yy_did_buffer_switch_on_eof) = 1;
4338 /** Removes and deletes the top of the stack, if present.
4339 * The next element becomes the new top.
4342 void surf_parse_pop_buffer_state (void)
4344 if (!YY_CURRENT_BUFFER)
4347 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4348 YY_CURRENT_BUFFER_LVALUE = NULL;
4349 if ((yy_buffer_stack_top) > 0)
4350 --(yy_buffer_stack_top);
4352 if (YY_CURRENT_BUFFER) {
4353 surf_parse__load_buffer_state( );
4354 (yy_did_buffer_switch_on_eof) = 1;
4358 /* Allocates the stack if it does not exist.
4359 * Guarantees space for at least one push.
4361 static void surf_parse_ensure_buffer_stack (void)
4365 if (!(yy_buffer_stack)) {
4367 /* First allocation is just for 2 elements, since we don't know if this
4368 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4369 * immediate realloc on the next call.
4372 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4373 (num_to_alloc * sizeof(struct yy_buffer_state*)
4376 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4378 (yy_buffer_stack_max) = num_to_alloc;
4379 (yy_buffer_stack_top) = 0;
4383 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4385 /* Increase the buffer to prepare for a possible push. */
4386 int grow_size = 8 /* arbitrary grow size */;
4388 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4389 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4391 num_to_alloc * sizeof(struct yy_buffer_state*)
4394 /* zero only the new slots.*/
4395 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4396 (yy_buffer_stack_max) = num_to_alloc;
4400 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4401 * @param base the character buffer
4402 * @param size the size in bytes of the character buffer
4404 * @return the newly allocated buffer state object.
4406 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4411 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4412 base[size-1] != YY_END_OF_BUFFER_CHAR )
4413 /* They forgot to leave room for the EOB's. */
4416 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4418 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4420 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4421 b->yy_buf_pos = b->yy_ch_buf = base;
4422 b->yy_is_our_buffer = 0;
4423 b->yy_input_file = 0;
4424 b->yy_n_chars = b->yy_buf_size;
4425 b->yy_is_interactive = 0;
4427 b->yy_fill_buffer = 0;
4428 b->yy_buffer_status = YY_BUFFER_NEW;
4430 surf_parse__switch_to_buffer(b );
4435 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4436 * scan from a @e copy of @a str.
4437 * @param yystr a NUL-terminated string to scan
4439 * @return the newly allocated buffer state object.
4440 * @note If you want to scan bytes that may contain NUL values, then use
4441 * surf_parse__scan_bytes() instead.
4443 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
4446 return surf_parse__scan_bytes(yystr,strlen(yystr) );
4449 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4450 * scan from a @e copy of @a bytes.
4451 * @param bytes the byte buffer to scan
4452 * @param len the number of bytes in the buffer pointed to by @a bytes.
4454 * @return the newly allocated buffer state object.
4456 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * yybytes, int _yybytes_len )
4463 /* Get memory for full buffer, including space for trailing EOB's. */
4464 n = _yybytes_len + 2;
4465 buf = (char *) surf_parse_alloc(n );
4467 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4469 for ( i = 0; i < _yybytes_len; ++i )
4470 buf[i] = yybytes[i];
4472 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4474 b = surf_parse__scan_buffer(buf,n );
4476 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4478 /* It's okay to grow etc. this buffer, and we should throw it
4479 * away when we're done.
4481 b->yy_is_our_buffer = 1;
4486 static void yy_push_state (int new_state )
4488 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4492 (yy_start_stack_depth) += YY_START_STACK_INCR;
4493 new_size = (yy_start_stack_depth) * sizeof( int );
4495 if ( ! (yy_start_stack) )
4496 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4499 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4501 if ( ! (yy_start_stack) )
4503 "out of memory expanding start-condition stack" );
4506 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4511 static void yy_pop_state (void)
4513 if ( --(yy_start_stack_ptr) < 0 )
4514 YY_FATAL_ERROR( "start-condition stack underflow" );
4516 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4519 #ifndef YY_EXIT_FAILURE
4520 #define YY_EXIT_FAILURE 2
4523 static void yy_fatal_error (yyconst char* msg )
4525 (void) fprintf( stderr, "%s\n", msg );
4526 exit( YY_EXIT_FAILURE );
4529 /* Redefine yyless() so it works in section 3 code. */
4535 /* Undo effects of setting up surf_parse_text. */ \
4536 int yyless_macro_arg = (n); \
4537 YY_LESS_LINENO(yyless_macro_arg);\
4538 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4539 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4540 (yy_hold_char) = *(yy_c_buf_p); \
4541 *(yy_c_buf_p) = '\0'; \
4542 surf_parse_leng = yyless_macro_arg; \
4546 /* Accessor methods (get/set functions) to struct members. */
4548 /** Get the current line number.
4551 int surf_parse_get_lineno (void)
4554 return surf_parse_lineno;
4557 /** Get the input stream.
4560 FILE *surf_parse_get_in (void)
4562 return surf_parse_in;
4565 /** Get the output stream.
4568 FILE *surf_parse_get_out (void)
4570 return surf_parse_out;
4573 /** Get the length of the current token.
4576 int surf_parse_get_leng (void)
4578 return surf_parse_leng;
4581 /** Get the current token.
4585 char *surf_parse_get_text (void)
4587 return surf_parse_text;
4590 /** Set the current line number.
4591 * @param line_number
4594 void surf_parse_set_lineno (int line_number )
4597 surf_parse_lineno = line_number;
4600 /** Set the input stream. This does not discard the current
4602 * @param in_str A readable stream.
4604 * @see surf_parse__switch_to_buffer
4606 void surf_parse_set_in (FILE * in_str )
4608 surf_parse_in = in_str ;
4611 void surf_parse_set_out (FILE * out_str )
4613 surf_parse_out = out_str ;
4616 int surf_parse_get_debug (void)
4618 return surf_parse__flex_debug;
4621 void surf_parse_set_debug (int bdebug )
4623 surf_parse__flex_debug = bdebug ;
4626 static int yy_init_globals (void)
4628 /* Initialization is the same as for the non-reentrant scanner.
4629 * This function is called from surf_parse_lex_destroy(), so don't allocate here.
4632 /* We do not touch surf_parse_lineno unless the option is enabled. */
4633 surf_parse_lineno = 1;
4635 (yy_buffer_stack) = 0;
4636 (yy_buffer_stack_top) = 0;
4637 (yy_buffer_stack_max) = 0;
4638 (yy_c_buf_p) = (char *) 0;
4642 (yy_start_stack_ptr) = 0;
4643 (yy_start_stack_depth) = 0;
4644 (yy_start_stack) = NULL;
4646 /* Defined in main.c */
4648 surf_parse_in = stdin;
4649 surf_parse_out = stdout;
4651 surf_parse_in = (FILE *) 0;
4652 surf_parse_out = (FILE *) 0;
4655 /* For future reference: Set errno on error, since we are called by
4656 * surf_parse_lex_init()
4661 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4662 int surf_parse_lex_destroy (void)
4665 /* Pop the buffer stack, destroying each element. */
4666 while(YY_CURRENT_BUFFER){
4667 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4668 YY_CURRENT_BUFFER_LVALUE = NULL;
4669 surf_parse_pop_buffer_state();
4672 /* Destroy the stack itself. */
4673 surf_parse_free((yy_buffer_stack) );
4674 (yy_buffer_stack) = NULL;
4676 /* Destroy the start condition stack. */
4677 surf_parse_free((yy_start_stack) );
4678 (yy_start_stack) = NULL;
4680 /* Reset the globals. This is important in a non-reentrant scanner so the next time
4681 * surf_parse_lex() is called, initialization will occur. */
4688 * Internal utility routines.
4692 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4695 for ( i = 0; i < n; ++i )
4700 #ifdef YY_NEED_STRLEN
4701 static int yy_flex_strlen (yyconst char * s )
4704 for ( n = 0; s[n]; ++n )
4711 void *surf_parse_alloc (yy_size_t size )
4713 return (void *) malloc( size );
4716 void *surf_parse_realloc (void * ptr, yy_size_t size )
4718 /* The cast to (char *) in the following accommodates both
4719 * implementations that use char* generic pointers, and those
4720 * that use void* generic pointers. It works with the latter
4721 * because both ANSI C and C++ allow castless assignment from
4722 * any pointer type to void*, and deal with argument conversions
4723 * as though doing an assignment.
4725 return (void *) realloc( (char *) ptr, size );
4728 void surf_parse_free (void * ptr )
4730 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4733 #define YYTABLES_NAME "yytables"
4735 /* Element context stack lookup. */
4736 int surfxml_element_context(int i)
4738 return (0<i && i<yy_start_stack_depth
4739 ? yy_start_stack[yy_start_stack_ptr - i]
4744 void print_yy_stack(char* fmt, ...)
4746 int i = 0; va_list ap; va_start(ap, fmt);
4747 vfprintf(stderr, fmt, ap);
4748 if (surfxml_statenames) {
4749 for (i=1; i<yy_start_stack_ptr; i++) {
4750 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4752 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4757 void print_surfxml_bufferstack()
4760 fputs("Buffer: ", stderr);
4761 for (i = 0; i < blimit; i++) {
4762 if ( surfxml_bufferstack[i] == '\377' ) break;
4763 putc(surfxml_bufferstack[i], stderr);
4768 static void debug_enter(int state, const char* statename) {
4769 yy_push_state(state);
4770 if (surf_parse__flex_debug) {
4771 print_yy_stack("--ENTER(%s) : ",statename);
4772 print_surfxml_bufferstack();
4776 static void debug_leave(void) {
4777 if (surf_parse__flex_debug) {
4778 print_yy_stack("--LEAVE : ");
4779 print_surfxml_bufferstack();
4784 static void debug_set(int state, const char* statename) {
4786 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4790 static void cleanup(void)
4792 if (surfxml_statenames) {
4793 free(surfxml_statenames);
4794 surfxml_statenames = NULL;
4796 free(surfxml_bufferstack);
4797 surfxml_bufferstack = NULL;
4803 static int fail(const char* fmt, ...)
4805 int chars_left, used;
4806 va_list ap; va_start(ap, fmt);
4807 #ifdef FLEXML_yylineno
4808 used = sprintf(flexml_err_msg,
4809 "Invalid XML (XML input line %d, state %d): ",
4810 surf_parse_lineno, YY_START);
4812 used = sprintf(flexml_err_msg,
4813 "Invalid XML (state %d): ",
4816 chars_left = flexml_max_err_msg_size - used - 1;
4817 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4820 #ifndef FLEXML_quiet_parser
4821 /* print directly to sdterr */
4822 fprintf(stderr, "%s\n", flexml_err_msg);
4823 flexml_err_msg[0] = '\0';